This article is a stub. You can help by adding to it.
A criterion is a match condition. If it doesn't match, it scores 0. If it does match, the score is its weight value.
The Response system checks each rule against the set, give it a numeric score based on the rule's set of criteria. Then the system picks one rule with the highest score, dispatch a response that the rule points.
criterion <criterionname> <matchkey> <matchvalue> weight nnn required
Many keyvalue pairs are updated in
ModifyOrAppendCriteria( AI_CriteriaSet& set ) &
CAI_ExpresserHost_DoModifyOrAppendCriteria( CAI_BaseNPC *pSpeaker, AI_CriteriaSet& set ) and player and NPC codes.
Also mappers can set keyvalue pairs via the Context system.
- "0"; numeric match to value 0
- "1"; numeric match to value 1
- "weapon_smg1"; string match to weapon_smg1 string
- "[npcstate::idle]"; match enumeration by looking up numeric value
- ">0"; match if greater than zero
- ">10,<=50"; match if greater than ten and less than or equal to 50
- ">0,<[npcstate::alert]"; match if greater than zer and les then value of enumeration for alert
- "!=0"; match if not equal to zero
- weight nnn: floating point weighting for score assuming criteria match (default value 1.0)
- required: if a rule has one or more criteria with the required flag set, then if any such criteria fail, the entire rule receives a score of zero