Logic director query

From Valve Developer Community
Revision as of 09:49, 12 January 2010 by Isathar (talk | contribs) (Created page with '== logic_director_query == This entity is used in Left 4 Dead 2 to create a reference to the AI Director's 'Anger' value and create different outputs for different values. Basi…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

logic_director_query

This entity is used in Left 4 Dead 2 to create a reference to the AI Director's 'Anger' value and create different outputs for different values. Basically the whole point of this entity is to create a range of numbers to judge the anger level of the director.

Usage:

Keyvalues:

Name – required to reference this entity from another entity.

Min/Max Anger Range – A range of integers that will be used to represent the director's anger. The director's anger level does not change when altering this, but is calculated into whatever range of values you placed here. This allows the use of multiple logic_director_queries on one map that each have their own ranges and noise settings. These numbers are what is actually sent to other entities.

Noise – Lets you change the way the director's anger value is calculated. “No noise” will result in the output of the exact remapped value of the director's anger, while “complete noise” will pick a random number in the range, with various levels between.


Input:

HowAngry – The primary input used to trigger dynamic changes of layout or events. Creating a HowAngry input from another entity or brush basically asks the director: “On a scale from 1 to X, how angry are you?”

Other Inputs:

AddOutput FireUser1-4 Kill/KillHierarchy


Output:

OutAnger – The primary Output used to dynamic changes of layout or events. OutAnger will send the current number value of the director's anger to an entity of your choice (logic_case appears to be most useful). On20SecondsToMob – (Note- I've not experimented with this one much yet) This Output seems to do exactly what it's name suggests, triggering an event 20 seconds before the director's anger forces it to spawn a mob.

Other Outputs:

OnKilled OnUser1-4

Examples:

The logic_director_query can be used both as a dynamic reference to the AI Director's anger and as semi-random number generator.

To use the entity to reference the AI director's anger level: Set up the events you want to use the entity to trigger, create the logic_director_query and whatever method you want to use to trigger it. Name the logic_director_query something you'll remember (directorAnger01 or whatever), then set its Min/Max Anger Range to 1 (or the lowest value you want it to output) and X (being the highest value you want the entity to output).

Select your triggering entity/brush and create an output pointing to the logic_director_query using HowAngry (such as OnTrigger – directorAnger01 – HowAngry).

Create a logic_case entity and name it something relevant or something you'll remember (ex. barricadePicker). Set the cases to do whatever it is you want them to do, keeping in mind that any case over CaseX (X being Max Anger Range) won't be called. Now go to your logic_director_query and create an output pointing at the logic_case entity that reads OutAnger – (logic_case) – InValue . This will send the value of the director's anger to the logic_case entity to execute the corresponding case number.


Playing around with the Noise setting will allow the output to less predictable, and combining this with multiple case statements will allow for a large amount of dynamic events.