19,499
edits
m (→General settings: added a " ) ") |
m (added family to footer template call) |
||
(19 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
{{OBD OBJC Header | align=center | type=CMBT | prev=CHAR | next=CONS | name=Combat Profile}} | {{OBD OBJC Header | align=center | type=CMBT | prev=CHAR | next=CONS | name=Combat Profile | stuff=b_cb}} | ||
Line 9: | Line 9: | ||
{{Table}} | {{Table}} | ||
{{OBDth}} | {{OBDth}} | ||
{{OBDtr| 0x00 | | {{OBDtr| 0x00 | 4CC |FF0000| 43 4A 42 4F | OBJC | objects }} | ||
{{OBDtr| 0x04 | int32 |FFFF00| B0 0D 00 00 | 35628 | | {{OBDtr| 0x04 | int32 |FFFF00| B0 0D 00 00 | 35628 | length (in bytes) to end of OBJC from here }} | ||
{{OBDtr| 0x08 | int32 |00FF00| 27 00 00 00 | 39 | | {{OBDtr| 0x08 | int32 |00FF00| 27 00 00 00 | 39 | object list version }} | ||
{{OBDtr| 0x0C | int32 |00FFFF| B4 00 00 00 | 180 | size of the following | {{OBDtr| 0x0C | int32 |00FFFF| B4 00 00 00 | 180 | size of the following object in bytes }} | ||
{{OBDtrBK}} | {{OBDtrBK|First object (black outline)}} | ||
{{OBDtr| 0x00 | | {{OBDtr| 0x00 | 4CC |FFC8C8| 54 42 4D 43 | TBMC | combat }} | ||
{{OBDtr| 0x04 | int32 |FFFFC8| 70 01 00 00 | 368 | | {{OBDtr| 0x04 | int32 |FFFFC8| 70 01 00 00 | 368 | object ID }} | ||
{{OBDtr| 0x08 | int32 |C8FFC8| 00 00 00 00 | 0 | | {{OBDtr| 0x08 | int32 |C8FFC8| 00 00 00 00 | 0 | object flags }} | ||
{{OBDtr| 0x0C | float |C8FFFF| 13 55 5F C3 |-223.332321| x-position of | {{OBDtr| 0x0C | float |C8FFFF| 13 55 5F C3 |-223.332321| x-position of handle }} | ||
{{OBDtr| 0x10 | float |C8FFFF| D4 A8 8E 41 | 17.832436 | y-position | {{OBDtr| 0x10 | float |C8FFFF| D4 A8 8E 41 | 17.832436 | y-position of handle }} | ||
{{OBDtr| 0x14 | float |C8FFFF| C3 05 E9 C2 |-116.511253| z-position of | {{OBDtr| 0x14 | float |C8FFFF| C3 05 E9 C2 |-116.511253| z-position of handle }} | ||
{{OBDtr| 0x18 | float |FFC8FF| 00 00 00 00 | 0.000000 | | {{OBDtr| 0x18 | float |FFC8FF| 00 00 00 00 | 0.000000 | x-rotation of handle in degrees }} | ||
{{OBDtr| 0x1C | float |FFC8FF| 00 00 00 00 | 0.000000 | | {{OBDtr| 0x1C | float |FFC8FF| 00 00 00 00 | 0.000000 | y-rotation of handle in degrees }} | ||
{{OBDtr| 0x20 | float |FFC8FF| 00 00 00 00 | 0.000000 | | {{OBDtr| 0x20 | float |FFC8FF| 00 00 00 00 | 0.000000 | z-rotation of handle in degrees }} | ||
{{OBDtr2|0x24 | char[64] |FFC800| Stand_and_Fire | | {{OBDtr2|0x24 | char[64] |FFC800| Stand_and_Fire | name }} | ||
{{OBDtr| 0x64 | int32 |C800C8| 00 00 00 00 | 0 | combat ID (looked up from [[OBD:BINA/OBJC/CHAR|Character.BINA]]) }} | {{OBDtr| 0x64 | int32 |C800C8| 00 00 00 00 | 0 | combat ID (looked up from [[OBD:BINA/OBJC/CHAR|Character.BINA]]) }} | ||
|} | |} | ||
Line 32: | Line 32: | ||
{{OBDtr| 0x68 | int32 |C87C64| 02 00 00 00 | 2 | long range behavior; the following values are possible (values in dec): | {{OBDtr| 0x68 | int32 |C87C64| 02 00 00 00 | 2 | long range behavior; the following values are possible (values in dec): | ||
:00 - none | |||
:00 - | |||
:01 - stare | :01 - stare | ||
:02 - hold and fire | :02 - hold and fire | ||
Line 47: | Line 46: | ||
:12 - Mutant Muro melee | :12 - Mutant Muro melee | ||
:13 - Muro thunderbolt | :13 - Muro thunderbolt | ||
}} | }} | ||
{{OBDtr| 0x6C | int32 |B0C3D4| 02 00 00 00 | 2 | medium range behavior; values as above }} | {{OBDtr| 0x6C | int32 |B0C3D4| 02 00 00 00 | 2 | medium range behavior; values as above }} | ||
Line 62: | Line 59: | ||
{{OBDtr| 0x7C | float |EBEBEB| 00 00 F0 42 | 120.000000| long/medium range; distance of the border between long and medium ranges; you can make it visible with the script command *ai2_showcombatranges <nowiki>=</nowiki> 1* }} | {{OBDtr| 0x7C | float |EBEBEB| 00 00 F0 42 | 120.000000| long/medium range; distance of the border between long and medium ranges; you can make it visible with the script command *ai2_showcombatranges <nowiki>=</nowiki> 1* }} | ||
{{OBDtr| 0x80 | int32 |8C8CCC| 01 00 00 00 | 1 | melee override; see below; the following values are possible: | {{OBDtr| 0x80 | int32 |8C8CCC| 01 00 00 00 | 1 | melee override; see below; the following values are possible: | ||
:0 - nothing | :0 - nothing | ||
Line 70: | Line 66: | ||
:4 - medium range | :4 - medium range | ||
:5 - always melee | :5 - always melee | ||
}} | }} | ||
{{OBDtr| 0x84 | int32 |FF00C8| 00 00 00 00 | 0 | if no gun; behavior of AI which doesn't have a gun in its hand ( but can have it holstered); the following values are possible: | {{OBDtr| 0x84 | int32 |FF00C8| 00 00 00 00 | 0 | if no gun; behavior of AI which doesn't have a gun in its hand ( but can have it holstered); the following values are possible: | ||
:0 - melee | :0 - melee | ||
:1 - retreat | :1 - retreat | ||
:2 - run to alarm | :2 - run to alarm | ||
}} | }} | ||
{{OBDtr| 0x88 | float |F0F096| 00 00 20 42 | 40.000000 | medium/short range; distance of the border between medium and short ranges; you can make it visible with the script command *ai2_showcombatranges <nowiki>=</nowiki> 1* }} | {{OBDtr| 0x88 | float |F0F096| 00 00 20 42 | 40.000000 | medium/short range; distance of the border between medium and short ranges; you can make it visible with the script command *ai2_showcombatranges <nowiki>=</nowiki> 1* }} | ||
Line 108: | Line 99: | ||
These settings affect the behavior of an AI that's running for a console (e.g., script command *ai2_doalarm*). | These settings affect the behavior of an AI that's running for a console (e.g., script command *ai2_doalarm*). For an example of how flexible the AI is when using alarm behavior, see [https://www.youtube.com/watch?v=CkzguNxjGEs this demo from Loser] where an AI completes Chapter 1. | ||
;alarm search distance | ;alarm search distance | ||
:area around AI, where engine checks if there is some console with 40 bit (see [[OBD:BINA/OBJC/CONS|CONS]]). | :area around AI, where engine checks if there is some console with 40 bit (see [[OBD:BINA/OBJC/CONS|CONS]]). | ||
Line 128: | Line 119: | ||
* ???Find alarm??? pm_pursue action, still unknown | * ???Find alarm??? pm_pursue action, still unknown | ||
---- | ---- | ||
==Further info== | |||
===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 [[OBD:ONCC|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): | 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 [[OBD:ONCC|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 | :*Find Alarm | ||
Line 142: | Line 133: | ||
:*GoTo | :*GoTo | ||
:*Forget | :*Forget | ||
What AI does while in pursuit mode depends on the last values in [[OBD:BINA/OBJC/CHAR|CHAR]]. | What AI does while in pursuit mode depends on the last values in [[OBD:BINA/OBJC/CHAR|CHAR]].Go there for further info. | ||
So...what is the pursuit distance??? It is distance that is AI allowed to travel from its original location for *pursue* purposes. Set it high and AI can run through whole level if it hears or spots something. Set it low and AI will do just a few steps in a direction of disturbing action. | So...what is the pursuit distance??? It is distance that is AI allowed to travel from its original location for *pursue* purposes. Set it high and AI can run through whole level if it hears or spots something. Set it low and AI will do just a few steps in a direction of disturbing action. | ||
---- | ---- | ||
===About melee override=== | |||
First something about minimal shooting distance.It is in the [[OBD:ONWC|ONWC]] and determines closest range for AI to fire that weapon. If enemy goes closer, AI stops shooting and tends to run away until it reahes minimal shooting distance again. | First something about minimal shooting distance.It is in the [[OBD:ONWC|ONWC]] and determines closest range for AI to fire that weapon. If enemy goes closer, AI stops shooting and tends to run away until it reahes minimal shooting distance again. | ||
Now if you set this minimal shooting distance higher than it is originally (for example try 200) you can have some fun chasing AIs as they are running away from you. | Now if you set this minimal shooting distance higher than it is originally (for example try 200) you can have some fun chasing AIs as they are running away from you. | ||
Line 158: | Line 150: | ||
--[[User:Loser|Loser]] 09:03, 29 July 2007 (CEST) | --[[User:Loser|Loser]] 09:03, 29 July 2007 (CEST) | ||
Try using ai2_report on a character, I noticed a timer next to the mode or something of that sort - Gumby :) | |||
==Dialogs from level0_Tools== | |||
[[Image:Tool dialog - Choose Combat.png]] | |||
[[Image:Tool dialog - Edit Combat.png]] | |||
{{OBD OBJC Footer | type=CMBT | prev=CHAR | next=CONS | name=Combat profile | family=Level}} | |||
{{OBD | {{OBD}} |