From Valve Developer Community
Jump to: navigation, search

Map placed entities have up to three "context" keypairs that can be specified. They take the form:

"key:value" (key, single colon separator, value)

When an entity with any such context keypairs is asked to dispatch a response, the keypairs are added to the Criteria set passed to the Rules system. Thus, map placed entities and triggers can specify their own context keypairs and these can be hooked up to response rules to do map-specific and appropriate responses.

For example, there is a npc_citizen with ResponseContext keyvalue is "customs_queue:1" in sdk_d1_trainstation_01.vmf.

This context will match the following criterion from script/talker/npc_citizen_terminal.txt:

criterion "IsTerminalCustomsQueue" "customs_queue" "1" required

And then according to this rule, response CitizenCustomsQueue would be chosen.

rule CitizenCustomsQueue
	criteria		IsCitizen ConceptTalkUse IsTerminalCustomsQueue NPCIdle
	response		CitizenCustomsQueue

Related Entities

  • worldspawn
  • NPC
    • KeyValue:
      • ResponseContext(string) : "Response Contexts" : "" : "Response system context(s) for this entity. Format should be: 'key:value,key2:value2,etc'. When this entity speaks, the list of keys & values will be passed to the response rules system."
    • Input
      • AddContext(string) : "Adds a context to this entity's list of response contexts. The format should be 'key:value'."
      • RemoveContext(string) : "Remove a context from this entity's list of response contexts. The name should match the 'key' of a previously added context."
      • ClearContext(void) : "Removes all contexts in this entity's list of response contexts."
  • env_speaker (this can have a script file containing rules for playing appropriate sounds.)
  • ai_speechfilter
  • filter_activator_context (allow filtering based on the contexts of an entity)