Logic random outputs
Jump to navigation
Jump to search


Template:Base point It randomly fires one of up to eight separate outputs. Use logic_case in older engine branches or if you need twice as many outputs.


OnTriggerChance0-7
(and not 1-8), mapping to the outputs OnTrigger1-8
.code This means that the KeyValue OnTriggerChance8
doesn't exist and that the output OnTrigger1
can only be fired if the KeyValue OnTriggerChance0
is given (and > 0), which however is !FGD. See below for a fix. [todo tested in ?]
Trigger
input while OnTriggerChance1
equals 0.25, this entity will fire its OnTrigger1
output with a probability of 25 %. 

OnTrigger2
is fired with 25 %. [todo tested in ?]Keyvalues
- OnTrigger1 Chance (OnTriggerChance1) to OnTrigger8 Chance (OnTriggerChance8) <float>
- Chance (from 0 to 1) of the OnTrigger1-8 output firing when this entity is triggered.
- Start Disabled (StartDisabled) <boolean>
- Stay dormant until activated (with the
Enable
input).
Flags
- Only trigger once : [1]
- Allow fast retrigger : [2]
Inputs
- Trigger
- Trigger this entity, causing its OnTrigger outputs to fire if it is enabled.
- Toggle
- Toggle this entity between enabled and disabled.
- CancelPending
- Cancel any events fired by this entity that are currently pending in the I/O event queue.
EnableDisable:
- Enable / Disable
- Enable/disable this entity from performing its task. It might also disappear from view.
Outputs
- OnSpawn
- Fired when this entity is spawned. If this entity is set to only trigger once, it will delete itself after firing this output.
- OnTrigger1 to OnTrigger8
- This output has a chance to fire when the entity is triggered.
FGD Code
[other games?] This code belongs to base.fgd. In the highlighted lines, the index of the KeyValue's name was decreased by 1 each but not their display text, so that with this fix, the numbering of the KeyValues and outputs will match in Hammer as long as SmartEdit is turned on.
@PointClass base(Targetname, EnableDisable) iconsprite("editor/logic_random_outputs.vmt") = logic_random_outputs :
"A message forwarder. Fires up to eight separate outputs, each with a different chance of firing."
[
spawnflags(flags) =
[
1: "Only trigger once" : 0
2: "Allow fast retrigger" : 0
]
OnTriggerChance0(float) : "OnTrigger1 Chance" : "1.0" : "Chance (from 0 to 1) of the OnTrigger1 output firing when this entity is triggered."
OnTriggerChance1(float) : "OnTrigger2 Chance" : "1.0" : "Chance (from 0 to 1) of the OnTrigger2 output firing when this entity is triggered."
OnTriggerChance2(float) : "OnTrigger3 Chance" : "1.0" : "Chance (from 0 to 1) of the OnTrigger3 output firing when this entity is triggered."
OnTriggerChance3(float) : "OnTrigger4 Chance" : "1.0" : "Chance (from 0 to 1) of the OnTrigger4 output firing when this entity is triggered."
OnTriggerChance4(float) : "OnTrigger5 Chance" : "1.0" : "Chance (from 0 to 1) of the OnTrigger5 output firing when this entity is triggered."
OnTriggerChance5(float) : "OnTrigger6 Chance" : "1.0" : "Chance (from 0 to 1) of the OnTrigger6 output firing when this entity is triggered."
OnTriggerChance6(float) : "OnTrigger7 Chance" : "1.0" : "Chance (from 0 to 1) of the OnTrigger7 output firing when this entity is triggered."
OnTriggerChance7(float) : "OnTrigger8 Chance" : "1.0" : "Chance (from 0 to 1) of the OnTrigger8 output firing when this entity is triggered."
// Inputs
input Trigger(void) : "Trigger this entity, causing its OnTrigger outputs to fire if it is enabled."
input Toggle(void) : "Toggle this entity between enabled and disabled."
input CancelPending(void) : "Cancel any events fired by this entity that are currently pending in the I/O event queue."
// Outputs
output OnSpawn(void) : "Fired when this entity is spawned. If this entity is set to only trigger once, it will "+
"delete itself after firing this output."
output OnTrigger1(void) : "This output has a chance to fire when the entity is triggered."
output OnTrigger2(void) : "This output has a chance to fire when the entity is triggered."
output OnTrigger3(void) : "This output has a chance to fire when the entity is triggered."
output OnTrigger4(void) : "This output has a chance to fire when the entity is triggered."
output OnTrigger5(void) : "This output has a chance to fire when the entity is triggered."
output OnTrigger6(void) : "This output has a chance to fire when the entity is triggered."
output OnTrigger7(void) : "This output has a chance to fire when the entity is triggered."
output OnTrigger8(void) : "This output has a chance to fire when the entity is triggered."
]