XML:BINA/OBJC/CHAR: Difference between revisions
Jump to navigation
Jump to search
Paradox-01 (talk | contribs) mNo edit summary |
m (copy edit; hopefully I did not screw up the description of AlarmGroups, as I'm not sure I understand it) |
||
Line 1: | Line 1: | ||
{{XML_OBJC_Header | type=CHAR | prev=WEAP | next=CMBT | name=Character }} | {{XML_OBJC_Header | type=CHAR | prev=WEAP | next=CMBT | name=Character }} | ||
==General information== | |||
* The | * The XML code on this page is based on OniSplit '''v0.9.61.0''' | ||
* '''BINACJBOCharacter.oni''' is level specific | * '''BINACJBOCharacter.oni''' is level specific (it can be found in AE/AEInstaller/vanilla/level'''X'''_Final.dat). | ||
* An alternative is [[XML:AISA|AISA]]. | * An alternative method for creating characters is [[XML:AISA|AISA]]. | ||
* All original characters can be seen [http://ssg.oni2.net/subfold/charas/charas.htm HERE. | * All original characters can be seen [http://ssg.oni2.net/subfold/charas/charas.htm HERE]. (The lists include the ONCC name, character's BSL name, health, team and attached BSL event function names.) | ||
Line 113: | Line 113: | ||
|valign=top| <CHAR Id="3860"> | |valign=top| <CHAR Id="3860"> | ||
|valign=top| integer | |valign=top| integer | ||
| | | ID doesn't matter. -- For [[XML:ONLV|level import]] use <CHAR>. | ||
|- | |- | ||
| <Header> | | <Header> | ||
Line 125: | Line 125: | ||
|valign=top| <Position> | |valign=top| <Position> | ||
|valign=top| float x3 | |valign=top| float x3 | ||
| character is spawned at this | | character is spawned at this XYZ position | ||
|- | |- | ||
|valign=top| <Rotation> | |valign=top| <Rotation> | ||
|valign=top| float x3 | |valign=top| float x3 | ||
| character is spawned with this | | character is spawned with this XYZ rotation; only Y (facing) is useful | ||
|- | |- | ||
|valign=top| <OSD> | |valign=top| <OSD> | ||
Line 138: | Line 138: | ||
|valign=top| flag | |valign=top| flag | ||
| determines some special properties | | determines some special properties | ||
: IsPlayer (1) (if you have two of them | : IsPlayer (1) (if you have two of them, and delete one and then spawn the other, if not done simultaneously a camera glitch can appear) | ||
: RandomCostume (2) (flag belongs to [[XML:ONCV|ONCV]]) | : RandomCostume (2) (flag belongs to [[XML:ONCV|ONCV]]) | ||
: NotInitiallyPresent (4) | : NotInitiallyPresent (4) | ||
Line 144: | Line 144: | ||
: CanSpawnMultiple (16) (needs WasSpawned) | : CanSpawnMultiple (16) (needs WasSpawned) | ||
: WasSpawned (32) (...) | : WasSpawned (32) (...) | ||
: Unkillable (64) (character won't | : Unkillable (64) (character won't lose more HP if it reaches 1; same as BSL command "chr_unkillable") | ||
: InfiniteAmmo (128) (Raiden: "You got enough ?" Snake points to his head. "Infinite ammo...") | : InfiniteAmmo (128) (Raiden: "You got enough?" Snake points to his head. "Infinite ammo...") | ||
: Omniscient (256) ( | : Omniscient (256) (AI will not forget having seen an enemy) | ||
: HasLSI (512) (this character drops | : HasLSI (512) (this character drops a [[LSI|level specific item]]) | ||
: Boss (1024) ( | : Boss (1024) (makes the AI prefer to attack the player; used for Muro in final battle if Griffin's group is present) | ||
: UpgradeDifficulty (2048) (spawns a stronger enemy if you play on | : UpgradeDifficulty (2048) (spawns a stronger enemy if you play on Normal or Hard) | ||
: NoAutoDrop (4096) (doesn't drop "used" shield, "used" invisibility and LSI when killed) | : NoAutoDrop (4096) (doesn't drop "used" shield, "used" invisibility and LSI when killed) | ||
'''After | '''After OniSplit v0.9.54.0, merged integer flags can appear.''' Let's say you encounter a 6180: then it's actually 4096 + 2048 + 32 + 4. | ||
Let's say you encounter a 6180 | |||
|- | |- | ||
|valign=top| <Class> | |valign=top| <Class> | ||
|valign=top| char[64] | |valign=top| char[64] | ||
| ONCC file name without file | | ONCC file name without file prefix and suffix. Character can change appearance with "chr_set_class". | ||
|- | |- | ||
|valign=top| <Name> | |valign=top| <Name> | ||
Line 166: | Line 164: | ||
|valign=top| <Weapon> | |valign=top| <Weapon> | ||
|valign=top| char[64] | |valign=top| char[64] | ||
| ONWC file name without file | | ONWC file name without file prefix and suffix. The character is spawned with that weapon. | ||
Original weapon classes: | Original weapon classes: | ||
Line 174: | Line 172: | ||
: w4_psm (phase stream projector) | : w4_psm (phase stream projector) | ||
: w5_sbg (super ball gun) | : w5_sbg (super ball gun) | ||
: w6_vdg ( | : w6_vdg (van de graaff pistol) | ||
: w7_scc (scram cannon (mini-rockets)) | : w7_scc (scram cannon (mini-rockets)) | ||
: w8_mbo (mercury bow) | : w8_mbo (mercury bow) | ||
: w9_scr (screamer gun) | : w9_scr (screamer gun) | ||
: w10_sni (Mukade's | : w10_sni (Mukade's fireball) | ||
: w11_ba1 (Barabas' gun) | : w11_ba1 (Barabas' gun) | ||
: w12_ba2 (-) | : w12_ba2 (-) | ||
Line 196: | Line 194: | ||
|valign=top| <AdditionalHealth> | |valign=top| <AdditionalHealth> | ||
|valign=top| integer | |valign=top| integer | ||
| '' | | ''Base'' health is stored in ONCC; AdditionalHealth will be added to that base health; a negative value is allowed here, which would reduce base health | ||
|- | |- | ||
|valign=top| <Job> | |valign=top| <Job> | ||
Line 209: | Line 207: | ||
: <font color="#777">Guard (never used in Oni)</font> | : <font color="#777">Guard (never used in Oni)</font> | ||
: Patrol | : Patrol | ||
: <font color="#777"> | : <font color="#777">Team Battle (never used in Oni)</font> | ||
: Combat (not tested) | : Combat (not tested) | ||
: Melee (not tested) | : Melee (not tested) | ||
Line 263: | Line 261: | ||
|valign=top| integer | |valign=top| integer | ||
| | | | ||
: <Use> (Player | : <Use> (Player is spawned with this many ammo clips.) | ||
: <Drop> (AI | : <Drop> (AI drops these items when defeated.) | ||
|- | |- | ||
|valign=top| <EnergyCell> | |valign=top| <EnergyCell> | ||
Line 333: | Line 331: | ||
|valign=top| <AlarmGroups> | |valign=top| <AlarmGroups> | ||
|valign=top| integer | |valign=top| integer | ||
|It's a bitset32 converted to int32. | |It's a bitset32 converted to int32. For any bit ("N") that is 1, the scripting command "ai2_tripalarm N" is called, alerting the AI with that scripting ID | ||
: <AlarmGroups>VAR</AlarmGroups> | : <AlarmGroups>VAR</AlarmGroups> | ||
:: VAR = 2^N1 + 2^N2 + 2^N3 etc. | :: VAR = 2^N1 + 2^N2 + 2^N3 etc. |
Revision as of 22:24, 17 March 2014
CHAR : Character | ||
---|---|---|
XML
AKEV << Other file types >> CONS TMBD << Other BINA >> ONIE WEAP << Other OBJC >> CMBT |
General information
- The XML code on this page is based on OniSplit v0.9.61.0
- BINACJBOCharacter.oni is level specific (it can be found in AE/AEInstaller/vanilla/levelX_Final.dat).
- An alternative method for creating characters is AISA.
- All original characters can be seen HERE. (The lists include the ONCC name, character's BSL name, health, team and attached BSL event function names.)
XML structure
<?xml version="1.0" encoding="utf-8"?> <Oni> <Objects> [...] </Objects> </Oni>
[...] means at least one character. Paste all character data into there (this includes <CHAR Id="..."> and </CHAR> tag).
example
<CHAR Id="3860"> <Header> <Flags></Flags> <Position>-543.22 159 -630.0954</Position> <Rotation>0 180 0</Rotation> </Header> <OSD> <Flags>NotInitiallyPresent</Flags> <Class>konoko_generic</Class> <Name>konoko</Name> <Weapon>w1_tap</Weapon> <Scripts> <Spawn></Spawn> <Die>you_lose</Die> <Combat></Combat> <Alarm></Alarm> <Hurt></Hurt> <Defeated></Defeated> <OutOfAmmo></OutOfAmmo> <NoPath></NoPath> </Scripts> <AdditionalHealth>0</AdditionalHealth> <Job> <Type>None</Type> <PatrolPathId>0</PatrolPathId> </Job> <Behaviors> <CombatId>0</CombatId> <MeleeId>0</MeleeId> <NeutralId>0</NeutralId> </Behaviors> <Inventory> <Ammo> <Use>3</Use> <Drop>0</Drop> </Ammo> <EnergyCell> <Use>0</Use> <Drop>0</Drop> </EnergyCell> <Hypo> <Use>0</Use> <Drop>0</Drop> </Hypo> <Shield> <Use>0</Use> <Drop>0</Drop> </Shield> <Invisibility> <Use>0</Use> <Drop>0</Drop> </Invisibility> </Inventory> <Team>Konoko</Team> <AmmoPercentage>100</AmmoPercentage> <Alert> <Initial>Lull</Initial> <Minimal>Lull</Minimal> <JobStart>Low</JobStart> <Investigate>Medium</Investigate> </Alert> <AlarmGroups>0</AlarmGroups> <Pursuit> <StrongUnseen>Look</StrongUnseen> <WeakUnseen>Forget</WeakUnseen> <StrongSeen>Look</StrongSeen> <WeakSeen>Look</WeakSeen> <Lost>ReturnToJob</Lost> </Pursuit> </OSD> </CHAR>
XML tag | content type | description |
---|---|---|
<?xml version="1.0" encoding="utf-8"?> | float, flag | There's no reason to change this. |
<Oni> | - | |
<Objects> | - | |
<CHAR Id="3860"> | integer | ID doesn't matter. -- For level import use <CHAR>. |
<Header> | - | |
<Flags> | - | unknown; usually empty |
<Position> | float x3 | character is spawned at this XYZ position |
<Rotation> | float x3 | character is spawned with this XYZ rotation; only Y (facing) is useful |
<OSD> | - | |
<Flags> | flag | determines some special properties
After OniSplit v0.9.54.0, merged integer flags can appear. Let's say you encounter a 6180: then it's actually 4096 + 2048 + 32 + 4. |
<Class> | char[64] | ONCC file name without file prefix and suffix. Character can change appearance with "chr_set_class". |
<Name> | char[32] | used by BSL commands |
<Weapon> | char[64] | ONWC file name without file prefix and suffix. The character is spawned with that weapon.
Original weapon classes:
|
<Scripts> | string | BSL function
|
<AdditionalHealth> | integer | Base health is stored in ONCC; AdditionalHealth will be added to that base health; a negative value is allowed here, which would reduce base health |
<Job> | - | |
<Type> | flag |
|
<PatrolPathId> | integer | |
<Behaviors> | - | specified by IDs linking to melee, combat and neutral profile collection file |
<CombatId> | flag |
|
<MeleeId> | flag | here are all melee IDs sorted by ID |
<NeutralId> | flag | ... (no overview so far) |
<Inventory> | - | |
<Ammo> | integer |
|
<EnergyCell> | integer |
|
<Hypo> | integer |
|
<Shield> | integer |
|
<Invisibility> | integer |
|
<Team> | flag |
|
<AmmoPercentage> | integer | ammo in weapon, percent value: 0 - 100, overload not tested |
<Alert> | - | HERE you get some helpful information on how to use "Alert" and "Pursuit".
|
<Initial> | flag | initial alert level, see <Alert> for all flags |
<Minimal> | flag | minimal alert level, see <Alert> for all flags |
<JobStarting> | flag | alert level when starting a job, see <Alert> for all flags |
<Investigating> | flag | alert level when investigating, see <Alert> for all flags |
<AlarmGroups> | integer | It's a bitset32 converted to int32. For any bit ("N") that is 1, the scripting command "ai2_tripalarm N" is called, alerting the AI with that scripting ID
|
<Pursuit> | - |
|
<StrongUnseen> | flag | usually Look, see <Pursuit> for all flags |
<WeakUnseen> | flag | usually Forget, see <Pursuit> for all flags |
<StrongSeen> | flag | usually Look, see <Pursuit> for all flags |
<WeakSeen> | flag | usually Look, see <Pursuit> for all flags |
<Lost> | flag | usually ReturnToJob
|