It's your map, your choice.
For the sound trigger you best ask Ant, he knows a hell of a lot about triggers.
DM-DW'sStorageFaciity
-
- 1337 Haxor
- Posts: 395
- Joined: Tue Sep 08, 2009 1:21 pm
- Xfire: QuantumEquilibrium
- Location: Portugal
- Contact:
Sound triggers are buggy online. I would just use a scripted trigger. You can find a scripted trigger in the actor class browser ---> keypoint ---> AIScript ---> Scripted Trigger
Then you create your sequence of actions in the scripted trigger's properties in the AI script category.
As for the sequence of actions, it's fairly simple.
[0] Wait for Event
-InvWave# (assuming you know how the wave events work)
[1] You got two options here...
PlayLocalSound which will play sound on a global scale where everyone can hear it on a normal volume.
-or-
PlaySound that will play the sound, but providing you a few additional options (sound volume, radius, pitch, occlusions, etc...)
Then you create your sequence of actions in the scripted trigger's properties in the AI script category.
As for the sequence of actions, it's fairly simple.
[0] Wait for Event
-InvWave# (assuming you know how the wave events work)
[1] You got two options here...
PlayLocalSound which will play sound on a global scale where everyone can hear it on a normal volume.
-or-
PlaySound that will play the sound, but providing you a few additional options (sound volume, radius, pitch, occlusions, etc...)
The difference between successful people from others is
not in the lack of strength,
not in the lack of knowledge,
but rather in the lack of will.
FFE466
_________________________
{F}{AH}{CivFR}{XC}{U}{DF}{CJ}{SD}
not in the lack of strength,
not in the lack of knowledge,
but rather in the lack of will.
FFE466
_________________________
{F}{AH}{CivFR}{XC}{U}{DF}{CJ}{SD}
-
- DW Clan Member
- Posts: 647
- Joined: Thu May 31, 2007 11:00 pm
I would do as Ant says but I would use a third option.
3. attach the sound to an invisible mover.
Make a mover, set its property to hidden, turn its collision off, give it a tag, place it where you want the sound to emanate from, just make it move a little (doesn't matter cuz its invisible), set it to trigger opened timed with some small movement times (second or two to move and stay open), assign the sound to the opened (or closed) sound property of the mover (under the MoverSounds tab), adjust the sound properties of the mover (i.e. radius, volume, use full volume, etc. - under the Sound tab). If you place it in the center of the map and give it a big enough radius you should be able to hear it from anywhere on the map.
Then trigger it using Ant's scripted sequence instructions but use a trigger event instruction triggering the mover instead of PlaySound/PlayLocalSound. You might also want to insert a WaitForTimmer instruction after the WaitForEvent so you can delay the mover/sound a few seconds (so it plays after the announcer does the beginning of the wave countdown).
I say this because sound that comes from movers sounds infinitely (slight exaggeration) better than sounds initiated directly from scripted sequences (i.e. you can control the volume and radius much better).
3. attach the sound to an invisible mover.
Make a mover, set its property to hidden, turn its collision off, give it a tag, place it where you want the sound to emanate from, just make it move a little (doesn't matter cuz its invisible), set it to trigger opened timed with some small movement times (second or two to move and stay open), assign the sound to the opened (or closed) sound property of the mover (under the MoverSounds tab), adjust the sound properties of the mover (i.e. radius, volume, use full volume, etc. - under the Sound tab). If you place it in the center of the map and give it a big enough radius you should be able to hear it from anywhere on the map.
Then trigger it using Ant's scripted sequence instructions but use a trigger event instruction triggering the mover instead of PlaySound/PlayLocalSound. You might also want to insert a WaitForTimmer instruction after the WaitForEvent so you can delay the mover/sound a few seconds (so it plays after the announcer does the beginning of the wave countdown).
I say this because sound that comes from movers sounds infinitely (slight exaggeration) better than sounds initiated directly from scripted sequences (i.e. you can control the volume and radius much better).

There are only 10 kinds of people in the world. Those who read binary, and everyone else.
4013 is only a FAD
And 2989? Well that's just BAD
-
- 1337 Haxor
- Posts: 179
- Joined: Sat Aug 01, 2009 7:35 pm
- Location: Ithaca, NY
Thanks Ant and Brainpan.
One more problem, how do I convert movers and other pickups into MyLevel? I set the package to MyLevel, then do groups as mover (since I want to add that first) then I name it whatever seems appropriate. (Although I right click on the object and do convert>> to staticmesh since converting to brush doesn't apply to what I want)
One more problem, how do I convert movers and other pickups into MyLevel? I set the package to MyLevel, then do groups as mover (since I want to add that first) then I name it whatever seems appropriate. (Although I right click on the object and do convert>> to staticmesh since converting to brush doesn't apply to what I want)
So long as the static mesh you are using for the mover is myLeveled then there will not be a problem. As for the pickups ... if it is something you have taken from the server then don't worry about it. There will already be the right files and any testers just need to extract the right thing from their cache. If it is something you have downloaded use open package in the actors tab. Select the right .u files linking to the pickup and then add them in via there. I believe this automatically myLevels them, at least, it always has for me. You probably do need someone to clarify this as I am new to mapping myself.Anonymouse wrote:Thanks Ant and Brainpan.
One more problem, how do I convert movers and other pickups into MyLevel? I set the package to MyLevel, then do groups as mover (since I want to add that first) then I name it whatever seems appropriate. (Although I right click on the object and do convert>> to staticmesh since converting to brush doesn't apply to what I want)
To bring about the end you have to start at the beginning.
-
- 1337 Haxor
- Posts: 395
- Joined: Tue Sep 08, 2009 1:21 pm
- Xfire: QuantumEquilibrium
- Location: Portugal
- Contact:
Dynadin is right, as long as you add a static mesh to your myLevel, considering it's a custom mesh, you will have no problems using it as a mover.
However, if the mesh is ut default, you don't have to add it to your myLevel.
Select the static mesh you want to use as a mover, and then move the cube brush into the place you want the mesh to go.
Click on the mover icon which is located on the left toolbar, and the mover should appear right where the brush is located.
The mover should have a pink colour, if you look at one of the top, or sides view ports.
Adjust the mover to the desired location, and then right click > mover > key 1, and move the mover to the other location.
Do this again and select key 0 this time, and the mover will go back to the first place.
You can have up to 8 key points.
Don't forget to adjust the properties, and change as adequate.
For instance, you may want to apply stand on, instead of bump, etc...
Go here for a more detailed tutorial.
http://wiki.beyondunreal.com/Legacy:Making_Lifts
However, if the mesh is ut default, you don't have to add it to your myLevel.
Select the static mesh you want to use as a mover, and then move the cube brush into the place you want the mesh to go.
Click on the mover icon which is located on the left toolbar, and the mover should appear right where the brush is located.
The mover should have a pink colour, if you look at one of the top, or sides view ports.
Adjust the mover to the desired location, and then right click > mover > key 1, and move the mover to the other location.
Do this again and select key 0 this time, and the mover will go back to the first place.
You can have up to 8 key points.
Don't forget to adjust the properties, and change as adequate.
For instance, you may want to apply stand on, instead of bump, etc...
Go here for a more detailed tutorial.
http://wiki.beyondunreal.com/Legacy:Making_Lifts
You can have more. To go above 8, go to the mover propertie -> mover category -> numKey set to any int value.Nelsoncarmo26 wrote:You can have up to 8 key points.
Then you can position your first 7 keys (base key excluded) through the shortcut menu, but anything above 8, you'll have to go through the mover properties then set the current keypoint equal to the keyNum property, notice the slight property name change.
The moment you've adjusted this value, then the mover will reset back to the first keypoint. Then you'll know that you can move onto the next keypoint.
Just remember:
numKey (Number of keypoints) is the maximum key points you are going to use.
KeyNum (Keypoint number) is the current keypoint the mover is on.
The difference between successful people from others is
not in the lack of strength,
not in the lack of knowledge,
but rather in the lack of will.
FFE466
_________________________
{F}{AH}{CivFR}{XC}{U}{DF}{CJ}{SD}
not in the lack of strength,
not in the lack of knowledge,
but rather in the lack of will.
FFE466
_________________________
{F}{AH}{CivFR}{XC}{U}{DF}{CJ}{SD}
-
- DW Clan Member
- Posts: 647
- Joined: Thu May 31, 2007 11:00 pm
Movers:
As said, myLevel the static mesh (the mover is just a special instance of the mesh).
Note: You can have more than 8 keys for a mover (probably 255) according to Ant (and I believe him). You can only access 8 from the right click menu, the rest would need to be accessed through the movers properties (i.e. under the Mover tab set KeyNum to 9 to access the ninth key etc. - don't forget to adjust the NumKeys value appropriately)
Static meshes/pickups:
No need to myLevel stock meshes (as said) or any meshes taken from a map already on the server (the package is already on the server and/or the mesh is already myLeveled). No need to myLevel any mesh copied and pasted from another map if it is myLeveled in that map (if it's copied from myLevel in that map it pastes to myLevel in your map). For other individual meshes use the convert to static mesh procedure (make sure to delete the original when your done). I usually leave the group field blank unless I have many meshes that could be grouped.
To load an entire package to myLevel:
In the command line at the bottom of the editor type the following and hit enter:
obj load file=superdupermeshes.usx package=myLevel
(take note of spacing and lack thereof - and replace the filename appropriately)
I recommend building and saving before doing this, as it sometimes doesn't work and/or crashes the editor. I also recommend putting all the meshes you might want to use into the map immediately (you know just dump 'em in a pile), then build and save again (with a new name) then close and reopen the editor (the ones you added should be there, the others should be gone, and hopefully it worked and didn't crash the editor)
As said, myLevel the static mesh (the mover is just a special instance of the mesh).
Note: You can have more than 8 keys for a mover (probably 255) according to Ant (and I believe him). You can only access 8 from the right click menu, the rest would need to be accessed through the movers properties (i.e. under the Mover tab set KeyNum to 9 to access the ninth key etc. - don't forget to adjust the NumKeys value appropriately)
Static meshes/pickups:
No need to myLevel stock meshes (as said) or any meshes taken from a map already on the server (the package is already on the server and/or the mesh is already myLeveled). No need to myLevel any mesh copied and pasted from another map if it is myLeveled in that map (if it's copied from myLevel in that map it pastes to myLevel in your map). For other individual meshes use the convert to static mesh procedure (make sure to delete the original when your done). I usually leave the group field blank unless I have many meshes that could be grouped.
To load an entire package to myLevel:
In the command line at the bottom of the editor type the following and hit enter:
obj load file=superdupermeshes.usx package=myLevel
(take note of spacing and lack thereof - and replace the filename appropriately)
I recommend building and saving before doing this, as it sometimes doesn't work and/or crashes the editor. I also recommend putting all the meshes you might want to use into the map immediately (you know just dump 'em in a pile), then build and save again (with a new name) then close and reopen the editor (the ones you added should be there, the others should be gone, and hopefully it worked and didn't crash the editor)

There are only 10 kinds of people in the world. Those who read binary, and everyone else.
4013 is only a FAD
And 2989? Well that's just BAD
-
- Site Admin
- Posts: 2005
- Joined: Thu Mar 23, 2006 12:00 am
- Xfire: KarmaKat
For record keeping purposes, here's the error message I get when I open this map in UnrealEd:
Build UT2004_Build_[2005-11-23_16.22]
OS: Windows XP 5.1 (Build: 2600)
CPU: GenuineIntel Unknown processor @ 3595 MHz with 2046MB RAM
Video: NVIDIA GeForce 8800 GT (7516)
Assertion failed: (iCode&3)==0 [File:.\UnClass.cpp] [Line: 1522]
History: SerializeExpr <- (0C) <- UStruct::Serialize <- (Class myLevel.ShieldCharge0) <- UState::Serialize <- UClass::Serialize <- (Class myLevel.ShieldCharge0) <- LoadObject <- (Class myLevel.ShieldCharge0 165737==165737/784825 165682 73) <- ULinkerLoad::Preload <- PreLoadObjects <- UObject::EndLoad <- UObject::LoadPackage <- UEditorEngine::Exec_Map <- UEditorEngine::Exec <- (MAP LOAD FILE="F:\TESTING Facility\DM for MM\DM-DW'sStorageFacility.ut2").. <- UUnrealEdEngine::Exec <- FileOpen <- WEditorFrame::OnCommand <- WWindow::WndProc <- WWindow::StaticProc <- MessagePump <- MainLoop
It would seem that you're missing some resources...here's part of the error log from the editor..hope it'll help.
Cmd: MAP LOAD FILE="F:\TESTING Facility\DM for MM\DM-DW'sStorageFacility.ut2"
Log: New File, Existing Package (Package myLevel, Package DM-DW'sStorageFacility)
Log: Failed to load '2009BenderStaticMesh': Can't find file for package '2009BenderStaticMesh'
Log: Failed to load 'DCStatic': Can't find file for package 'DCStatic'
Log: Failed to load '2009BenderStaticMesh': Can't find file for package '2009BenderStaticMesh'
Log: Failed to load 'DCStatic': Can't find file for package 'DCStatic'
Warning: Missing StaticMesh StaticMesh BattleBikes_ST.WyvernST
Log: Failed to load 'DCStatic': Can't find file for package 'DCStatic'
Log: Failed to load 'DCStatic': Can't find file for package 'DCStatic'
Log: Failed to load 'DCStatic': Can't find file for package 'DCStatic'
Log: Failed to load '2009BenderStaticMesh': Can't find file for package '2009BenderStaticMesh'
Log: Failed to load 'DCStatic': Can't find file for package 'DCStatic'
Log: Failed to load 'DCStatic': Can't find file for package 'DCStatic'
Log: Failed to load 'DCStatic': Can't find file for package 'DCStatic'
Log: Failed to load '2009BenderStaticMesh': Can't find file for package '2009BenderStaticMesh'
Log: Failed to load '2009BenderStaticMesh': Can't find file for package '2009BenderStaticMesh'
Critical: Assertion failed: (iCode&3)==0 [File:.\UnClass.cpp] [Line: 1522]
Critical: Windows GetLastError: There are no more files. (18)
Exit: Executing UObject::StaticShutdownAfterError
KK
Build UT2004_Build_[2005-11-23_16.22]
OS: Windows XP 5.1 (Build: 2600)
CPU: GenuineIntel Unknown processor @ 3595 MHz with 2046MB RAM
Video: NVIDIA GeForce 8800 GT (7516)
Assertion failed: (iCode&3)==0 [File:.\UnClass.cpp] [Line: 1522]
History: SerializeExpr <- (0C) <- UStruct::Serialize <- (Class myLevel.ShieldCharge0) <- UState::Serialize <- UClass::Serialize <- (Class myLevel.ShieldCharge0) <- LoadObject <- (Class myLevel.ShieldCharge0 165737==165737/784825 165682 73) <- ULinkerLoad::Preload <- PreLoadObjects <- UObject::EndLoad <- UObject::LoadPackage <- UEditorEngine::Exec_Map <- UEditorEngine::Exec <- (MAP LOAD FILE="F:\TESTING Facility\DM for MM\DM-DW'sStorageFacility.ut2").. <- UUnrealEdEngine::Exec <- FileOpen <- WEditorFrame::OnCommand <- WWindow::WndProc <- WWindow::StaticProc <- MessagePump <- MainLoop
It would seem that you're missing some resources...here's part of the error log from the editor..hope it'll help.
Cmd: MAP LOAD FILE="F:\TESTING Facility\DM for MM\DM-DW'sStorageFacility.ut2"
Log: New File, Existing Package (Package myLevel, Package DM-DW'sStorageFacility)
Log: Failed to load '2009BenderStaticMesh': Can't find file for package '2009BenderStaticMesh'
Log: Failed to load 'DCStatic': Can't find file for package 'DCStatic'
Log: Failed to load '2009BenderStaticMesh': Can't find file for package '2009BenderStaticMesh'
Log: Failed to load 'DCStatic': Can't find file for package 'DCStatic'
Warning: Missing StaticMesh StaticMesh BattleBikes_ST.WyvernST
Log: Failed to load 'DCStatic': Can't find file for package 'DCStatic'
Log: Failed to load 'DCStatic': Can't find file for package 'DCStatic'
Log: Failed to load 'DCStatic': Can't find file for package 'DCStatic'
Log: Failed to load '2009BenderStaticMesh': Can't find file for package '2009BenderStaticMesh'
Log: Failed to load 'DCStatic': Can't find file for package 'DCStatic'
Log: Failed to load 'DCStatic': Can't find file for package 'DCStatic'
Log: Failed to load 'DCStatic': Can't find file for package 'DCStatic'
Log: Failed to load '2009BenderStaticMesh': Can't find file for package '2009BenderStaticMesh'
Log: Failed to load '2009BenderStaticMesh': Can't find file for package '2009BenderStaticMesh'
Critical: Assertion failed: (iCode&3)==0 [File:.\UnClass.cpp] [Line: 1522]
Critical: Windows GetLastError: There are no more files. (18)
Exit: Executing UObject::StaticShutdownAfterError
KK
Karma...a term that comprises the entire cycle of cause & effect...
Kat...a supercilious quadrupedal pile of fur that doesn´t give a flying fig for Karma...
Kat...a supercilious quadrupedal pile of fur that doesn´t give a flying fig for Karma...
-
- 1337 Haxor
- Posts: 179
- Joined: Sat Aug 01, 2009 7:35 pm
- Location: Ithaca, NY
Oh, thanks for the heads up. I think I can try to quickly fix this error and have this map ready ASAP :ssmile: