OBD:BINA/OBJC/CMBT
|
|
Alarm behavior
These settings affect the behavior of an AI that's running for a console (e.g., script command ai2_doalarm).
- Offsets relative to start of CMBT chunk
Offset | Type | Raw Hex | Value | Description |
---|---|---|---|---|
0xA0 | float | 00 00 96 43 | 300.000000 | alarm search distance |
0xA4 | float | 00 00 A0 42 | 80.000000 | alarm enemy ignore distance |
0xA8 | float | 00 00 00 00 | 0 | alarm enemy attack distance |
0xAC | long | 1E 00 00 00 | 30 | alarm damage threshold |
0xB0 | long | 68 01 00 00 | 360 | alarm fight timer |
- alarm search distance
- area around AI, where engine checks if there is some console with 40 bit (see CONS).
- Alarm enemy ignore distance
- This one specifies an "ignore range". Enemies which are inside this range are not ignored but AI doesn't attack them.
- Alarm enemy attack distance
- Zero by default.
- This one specifies an "attack range" around an AI running for an alarm. When there is an enemy inside, AI stops running for the console and attack the enemy (if AI knows about him, of course)
- Nevertheless AI still keeps in mind that it should run for the console. So when there is no enemy inside this range and fight timer runs out, AI resumes running to the specified console.
- Fight timer
- When AI, which is running for the console, is engaged in a fight and enemy manages to disappear (either by phase-cloak or simply by hiding behind some corner), AI tries to chase him or looks for him. Alarm timer specifies how long should AI chase/look for the enemy. For chasing, timer starts when the enemy is outside *Alarm enemy attack distance*. Of course when the enemy escapes even from *Alarm enemy ignore range*, AI abandons him automatically.
- Alarm damage threshold
- Specifies how long AI, which is running for the console, remembers someone hurt it. Until this timer runs away, AI doesn't tend to use console. It only stays in fight stance near console, ready to fight. If someone hurts AI which is running for the console, then escapes and then tries to hurt it again while this timer isn't finished yet, AI remembers him and initatively attacks him the moment he steps inside *Alarm enemy attack distance*.
Whole alarm logic can be tripped by:
- *ai2_doalarm* command (suitable for geyser's rugby)
- *run for alarm* (0b) behavior, altough this behavior alone does NOTHING, it just turns on *alarm search distance*. If there is no console with 40 bit in reach, AI stands still and just stares.
- *run to alarm* if no gun event ( only when AI is unarmed ), again it turns on *alarm search distance*, but this time AI can do normal actions (attack, hunt) if there is no 40 bit console within reach.
- ???Find alarm??? pm_pursue action, still unknown
- About pursuit distance
First of all, pursuit is NOT when you have been seen and now running away. If you do that, AI is in *combat* mode, not *pursue* mode. You are pursued only when you have NOT been seen by central vision field (see ONCC). So if some enemy does sound that touches AI's sound detection sphere, or when some enemy interferes with AI's peripheral vision field, AI goes into pursue mode with him. In this mode AI uses special behavior for investigating. According to the EXE, possibilities are (dunno if it is in proper order, it is raw EXE rip):
- Find Alarm
- Keep Looking
- Return To Job
- Glance
- Hunt - not implemented in Oni (accidentaly I have read error message in Manplant a few months ago saying that)
- Move
- Look
- Wait
- GoTo
- Forget
While in pursuit mode, AI thanks to the pursuit distance decides what to do. If source of danger is inside pursuit distance, AI will run to the place where disturbing action was (GoTo mode) and then starts looking (Look or Glance modes). If source of danger lies out of the pursuit range, AI just turns to the position of it while being in Glance or Look mode.
The behavior above doesn't have to be true for all AI. What to do and when is also decided by last values in CHAR. But it is still unknown how it works.
Blue Box Beta WMDD
ONI BINARY DATA |
---|
AKVA << Other file types >> CBPI |
BINA : Binary data |
TMBD << Other BINA >> ONIE |
OBJC : Objects |
CHAR << Other OBJC >> CONS |
CMBT : Combat profile |
[[OBD:File types/{{{family}}}|{{{family}}} file]] |