OBD:BINA/OBJC/CMBT: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
m (a few notes on alarm behavior) |
||
Line 163: | Line 163: | ||
| 1200 | | 1200 | ||
| ALIGN=LEFT | panic sight (time in 1/60 seconds) | | ALIGN=LEFT | panic sight (time in 1/60 seconds) | ||
|- | |} | ||
| | |} | ||
| | |||
---- | |||
==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 | |||
{{Table}} | |||
{{OBD_Table_Header}} | |||
|- align=center | |||
| 0xA0 | |||
| float | |||
| BGCOLOR="#C80040" | 00 00 96 43 | | BGCOLOR="#C80040" | 00 00 96 43 | ||
| 300.000000 | | 300.000000 | ||
| ALIGN=LEFT | | | ALIGN=LEFT | alarm search distance (defunct?) | ||
|- | |- align=center | ||
| 0xA4 | |||
| float | |||
| BGCOLOR="#C80040" | 00 00 A0 42 | | BGCOLOR="#C80040" | 00 00 A0 42 | ||
| 80.000000 | | 80.000000 | ||
| ALIGN=LEFT | | | ALIGN=LEFT | alarm enemy ignore distance (see below) | ||
|- | |- align=center | ||
| 0xA8 | |||
| float | |||
| BGCOLOR="#FFCD96" | 00 00 00 00 | | BGCOLOR="#FFCD96" | 00 00 00 00 | ||
| 0 | | 0 | ||
| ALIGN=LEFT | | | ALIGN=LEFT | alarm enemy attack distance (see below) | ||
|- | |- align=center | ||
| 0xAC | |||
| long | |||
| BGCOLOR="#C8C864" | 1E 00 00 00 | | BGCOLOR="#C8C864" | 1E 00 00 00 | ||
| 30 | | 30 | ||
| ALIGN=LEFT | | | ALIGN=LEFT | alarm damage threshold; don't exactly know what it is (see below) | ||
|- | |- align=center | ||
| 0xB0 | |||
| long | |||
| BGCOLOR="#C8C864" | 68 01 00 00 | | BGCOLOR="#C8C864" | 68 01 00 00 | ||
| 360 | | 360 | ||
| ALIGN=LEFT | | | ALIGN=LEFT | alarm fight timer; same as fight timer in [[OBD:ONCC|ONCC]], but this works while AI is in run for alarm mode | ||
|} | |} | ||
;Alarm enemy ignore distance | |||
:This one specifies an "ignore range". Enemies which are inside this range are NOT ignored. Ignored are those ''outside'' this range. | |||
::(''well, naturally'' [[User:Geyser|geyser]]) | |||
:When AI doesn't ignore it does NOT mean it attacks. It only knows when there's an enemy nearby and it tries to face that enemy while still on the move. So it runs in a weird way. | |||
::(''that's probably meant for more efficient auto-blocking or something'' [[User:Geyser|geyser]]) | |||
;Alarm enemy attack distance | |||
:WHY - IS - IT - '''ZERO'''??? Seriously. It is ''really'' set to zero by default. | |||
::(''same reason as for the weapon dodging, heh'' [[User:Geyser|geyser]]) | |||
:This one specifies another range around an AI that's running for a console. | |||
:When there is an enemy inside this range and the AI ''knows'' about that enemy (i.e., doesn't ignore it due to the "ignore" range above), it will stop running for the console and attack the enemy. | |||
:But, at the same time, AI still keeps in mind that it should run for alarm. So when there is no enemy inside this range, AI resumes running to the specified console. | |||
;Note | |||
:So if you have "ignore range" > "attack range" > 0, you get what I was searching for (for half a year or so): | |||
::If an enemy is running for an alarm and you get too close, they'll stop, turn and start fighting with you. When you are far enough (or dead), they'll resume running ^_^'. | |||
::You don't know how evil this feature is until you try it itself. | |||
::^_- | |||
;Alarm damage threshold | |||
:it has something to do with run to alarm abortion, but I don't quite get it. | |||
:It looks like an amount of damage when AI exits run for alarm state and acts as usual. | |||
:But damage taken while fighting someone within the "alarm enemy attack range" doesn't count. | |||
::[[User:Loser|Loser]] 11:31, 17 December 2006 (CET) | |||
---- | |||
:As for the "alarm damage threshold", what would make sense to me is the following: | |||
:*an AI is supposed to run for a console | |||
:*there's an enemy in its way (within the ranges above) | |||
:*it stops to fight that enemy | |||
:*it takes more damage than a certain threshold | |||
:*it says "So long, sucker" and resumes with its alarm job | |||
:*(''overriding'' the "attack" range, and maybe the "ignore" range as well) | |||
:So, it's rather the opposite of your idea, Loser: | |||
:*alarm running would have top priority | |||
:*it's the ''fighting'' that would be aborted | |||
:Doesn't that seem likely? I haven't checked. | |||
::[[User:Geyser|geyser]] 15:47, 17 December 2006 (CET) | |||
:Another possibility (perhaps more likely), is suggested by the Big Blue Bow Beta WMDD below. | |||
:Namely, the "damage threshold" and the timer may be meant to work together | |||
::(note that they're grouped under the "Attack If Knockdown" label) | |||
:The idea here is that if there's a physical contact between the runner and an enemy | |||
::(the enemy attacking the runner) | |||
:then the runner will stop running and start defending itself | |||
::(provided the damage it received was above the threshold) | |||
:and will resume running after a certain delay (the timer). | |||
:Obviously, that "attack if knockdown" logic would be somewhat redundant if the attack range is large enough. | |||
:If an AI has already stopped running for a console and is engaging enemies, what use is the "knockdown" check? | |||
:So I'm not sure, maybe it's the first possibility after all. | |||
::[[User:Geyser|geyser]] 15:47, 17 December 2006 (CET) | |||
:Boy, that is ''so'' promising for CTF and Rugby... Thankee, Loser ^^ | |||
::[[User:Geyser|geyser]] 15:47, 17 December 2006 (CET) | |||
---- | ---- | ||
==Blue Box Beta WMDD== | ==Blue Box Beta WMDD== |
Revision as of 14:47, 17 December 2006
|
|
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 (defunct?) |
0xA4 | float | 00 00 A0 42 | 80.000000 | alarm enemy ignore distance (see below) |
0xA8 | float | 00 00 00 00 | 0 | alarm enemy attack distance (see below) |
0xAC | long | 1E 00 00 00 | 30 | alarm damage threshold; don't exactly know what it is (see below) |
0xB0 | long | 68 01 00 00 | 360 | alarm fight timer; same as fight timer in ONCC, but this works while AI is in run for alarm mode |
- Alarm enemy ignore distance
- This one specifies an "ignore range". Enemies which are inside this range are NOT ignored. Ignored are those outside this range.
- (well, naturally geyser)
- When AI doesn't ignore it does NOT mean it attacks. It only knows when there's an enemy nearby and it tries to face that enemy while still on the move. So it runs in a weird way.
- (that's probably meant for more efficient auto-blocking or something geyser)
- Alarm enemy attack distance
- WHY - IS - IT - ZERO??? Seriously. It is really set to zero by default.
- (same reason as for the weapon dodging, heh geyser)
- This one specifies another range around an AI that's running for a console.
- When there is an enemy inside this range and the AI knows about that enemy (i.e., doesn't ignore it due to the "ignore" range above), it will stop running for the console and attack the enemy.
- But, at the same time, AI still keeps in mind that it should run for alarm. So when there is no enemy inside this range, AI resumes running to the specified console.
- Note
- So if you have "ignore range" > "attack range" > 0, you get what I was searching for (for half a year or so):
- If an enemy is running for an alarm and you get too close, they'll stop, turn and start fighting with you. When you are far enough (or dead), they'll resume running ^_^'.
- You don't know how evil this feature is until you try it itself.
- ^_-
- Alarm damage threshold
- it has something to do with run to alarm abortion, but I don't quite get it.
- It looks like an amount of damage when AI exits run for alarm state and acts as usual.
- But damage taken while fighting someone within the "alarm enemy attack range" doesn't count.
- Loser 11:31, 17 December 2006 (CET)
- As for the "alarm damage threshold", what would make sense to me is the following:
- an AI is supposed to run for a console
- there's an enemy in its way (within the ranges above)
- it stops to fight that enemy
- it takes more damage than a certain threshold
- it says "So long, sucker" and resumes with its alarm job
- (overriding the "attack" range, and maybe the "ignore" range as well)
- So, it's rather the opposite of your idea, Loser:
- alarm running would have top priority
- it's the fighting that would be aborted
- Doesn't that seem likely? I haven't checked.
- geyser 15:47, 17 December 2006 (CET)
- Another possibility (perhaps more likely), is suggested by the Big Blue Bow Beta WMDD below.
- Namely, the "damage threshold" and the timer may be meant to work together
- (note that they're grouped under the "Attack If Knockdown" label)
- The idea here is that if there's a physical contact between the runner and an enemy
- (the enemy attacking the runner)
- then the runner will stop running and start defending itself
- (provided the damage it received was above the threshold)
- and will resume running after a certain delay (the timer).
- Obviously, that "attack if knockdown" logic would be somewhat redundant if the attack range is large enough.
- If an AI has already stopped running for a console and is engaging enemies, what use is the "knockdown" check?
- So I'm not sure, maybe it's the first possibility after all.
- geyser 15:47, 17 December 2006 (CET)
- Boy, that is so promising for CTF and Rugby... Thankee, Loser ^^
- geyser 15:47, 17 December 2006 (CET)
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]] |