multi_manager
Last edited 1 year ago2023-11-26 20:52:23 UTC
- Wiki
- View Page
-
You are viewing an older revision of this wiki page. The current revision may be more detailed and up-to-date.
Click here to see the current revision of this page.
Point Entity
This entity can activate several different events (including itself) at specific times. It can only be used when the SmartEdit option in the multi_manager's properties is disabled. To add targets, click "Add" and enter the name of your first target entity in the "Key" dialog, and a delay of activation in seconds as the "Value", then click OK.
Attributes
- Name (targetname) - Property used to identify entities. You need this in order to activate the multi_manager.
Flags
- Multithreaded (1) - See notes below for an explanation.
Notes
- Be aware that a multi_manager can only have a maximum of 16 individual targets. If you add more than that, then some of them will simply not activate. If you need to activate more than 16, then you should use more than one multi_manager and activate all of them at once to get the timings more easily.
- The keyvalues list are placed in the order that they were created in, instead of when they get activated first. This means that reading what a specific multi_manager does is messy, because it's not clearly visible what entity gets activated first. Keep that in mind when trying to edit already existing multi_managers.
- Multithreading: Normally, If the multi_manager is called again before it has finished its work-order, it will ignore the new call and will just carry on with its work. However, with the Multithreaded flag enabled, when the manager is called again, it will continue working while another 'copy' of the multi_manager will start up. This solves various problems, mainly related to multiplayer games (where you might want a multi_manager to start up for each player that joins - if one player joins while the multimanager is still going for another player, a new thread needs to be created).
- Beware of the above feature in maps with lots of entities, as a new copy of this entity will be spawned when it's triggered. This also happens when the entity calls itself as part of a looping routine. If the map is near the entity limit, after a number of copies are called (or a number of loops) the limit will be reached and the game will crash. If you're getting unexpected/unexplained crashes, this might be a reason.
- Naming: When naming a multi_manager, do not call it "multi_manager", as the entity will not function properly. Make sure to give it a name that relates to your entity setup. Ex: "explosion_mm".
- You can call the same entity multiple times in a single
multi_manager
by appending a number sign (#
) and a number or letter to the entity name. eg. having the following keys and values will toggle the entity foo
three times:
"foo#0" "0.001"
"foo#1" "1"
"foo#2" "2"
6 Comments
You must log in to post a comment.
You can login or register a new account.
If your using an MM as a continuous loop (by having the MM call itself at the end of it's routine), it will only loop if you have the "multithreaded" flag checked!
More like 8, to keep it safe. Check out this thread for more info! = )
Also don't forget to make the start time 0.1 and not 0, as 0 can cause the map to crash and/or other game bugs.
That said, when deactivating something, lets say:
00laser1 0.1
00laser1#1 2.1
00laser1#2 ??
Do NOT start it after it is deactivated (00laser1#2 2.1), give it 0.1 seconds freeze time (or more if you need it):
00laser1 0.1
00laser1#1 2.1
00laser1#2 2.2
And remember not to use long entity names, for example (i use):
0lsrmm (Laser control multi manager)
0expmm (Explosion control multi manager)
Proper looping is done with an env_beam repeatedly shooting through a func_button with health = 1. info_targets must sandwich the button. The button activates the multi.
The env_beam must have damage set to >=1. Change Strike again time to set the loop frequency.
Note: You'll lose the activator (current player) reference.
Add a "#x" at the end of the value, where "x" is the triggerstate value:
"0.001#0" means to trigger via use-type Off after 0.001s
"0.001#1" means to trigger via use-type On after 0.001s
"0.001#2" means to trigger via "killtarget" triggerstate after 0.001s
multi_manager is basically a trigger_relay now with this knowledge!
opens up the code
Yeah, there's nothing in HL SDK that points to the parsing of
#N
there. It is alwaysUSE_TOGGLE
. Either way though, good to know!