|
|
Line 84: |
Line 84: |
|
| |
|
| [[User:Gumby|Gumby]] 18:39, 31 August 2008 (CEST) | | [[User:Gumby|Gumby]] 18:39, 31 August 2008 (CEST) |
|
| |
|
| |
|
| |
|
| |
| ==XML==
| |
|
| |
| {{Template:XMLModdingHints}}
| |
| {| border=0 cellspacing=20 cellpadding=0 align=center
| |
| | The xml code on this page is based on onisplit '''v0.9.61.0'''
| |
| |}
| |
|
| |
|
| |
| '''general information'''
| |
| * '''BINACJBOCharacter.oni''' is level specific. (It can be found in edition/GameDataFolder/level''XX''_... )
| |
| * An alternative is [[OBD:AISA|AISA]].
| |
| * All original characters can be seen [http://ssg.oni2.net/subfold/charas/charas.htm HERE.] (The lists include used ONCC, character's BSL name, health, team and BSL function.)
| |
|
| |
|
| |
| '''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 '''<font color="#0A0"><CHAR Id="..."></font>''' and '''<font color="#0A0"></CHAR></font>''' tag).
| |
|
| |
| '''example'''
| |
|
| |
| '''<font color="#0A0"><CHAR Id="3860"></font>'''
| |
| <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>
| |
| '''<font color="#0A0"></CHAR></font>'''
| |
|
| |
|
| |
| {| class="wikitable" width="100%"
| |
| !width=200px| XML tag
| |
| !width=200px| content type
| |
| ! description
| |
| |-
| |
| |valign=top| <?xml version="1.0" encoding="utf-8"?>
| |
| |valign=top| string
| |
| | There's no reason to change this.
| |
| |-
| |
| |valign=top| <Oni>
| |
| |valign=top| -
| |
| |
| |
| |-
| |
| |valign=top| <Objects>
| |
| |valign=top| -
| |
| |
| |
| |-
| |
| |valign=top| <CHAR Id="3860">
| |
| |valign=top| integer
| |
| | Id doesn't matter.
| |
| |-
| |
| | <Header>
| |
| |valign=top| -
| |
| |
| |
| |-
| |
| |valign=top| <Flags>
| |
| |valign=top| -
| |
| | unknown; usually empty
| |
| |-
| |
| |valign=top| <Position>
| |
| |valign=top| float x3
| |
| | character is spawned at this xyz-position
| |
| |-
| |
| |valign=top| <Rotation>
| |
| |valign=top| float x3
| |
| | character is spawned with this xyz-rotation, only y is useful
| |
| |-
| |
| |valign=top| <OSD>
| |
| |valign=top| -
| |
| |
| |
| |-
| |
| |valign=top| <Flags>
| |
| |valign=top| flag
| |
| | determines some special properties
| |
| : IsPlayer (1) (if you have two of them then delete one and spawn the other one at same time, if not made simultaneously camera glitch can appear)
| |
| : RandomCostume (2) (flag belongs to [[OBD_talk:ONCV|ONCV]])
| |
| : NotInitiallyPresent (4)
| |
| : NonCombatant (8)
| |
| : CanSpawnMultiple (16) (needs WasSpawned)
| |
| : WasSpawned (32) (...)
| |
| : Unkillable (64) (character won't loss more life points if it reaches 1, same as BSL command "chr_unkillable")
| |
| : InfiniteAmmo (128) (Raiden: "You got enough ?" Snake points to his head. "Infinite ammo...")
| |
| : Omniscient (256) ('''?'''; tested ideas: doesn't unlock moves for player)
| |
| : HasLSI (512) (this character drops an level specific item like truck keys in [[CHAPTER_14_._DAWN_OF_THE_CHRYSALIS|level 19]])
| |
| : Boss (1024) (used for boss mode fights. makes the AI ignore this character unless there is nobody else around)
| |
| : UpgradeDifficulty (2048) (spawns a stronger enemy if you play on medium or hard)
| |
| : NoAutoDrop (4096) (doesn't drop "used" shield, "used" invisibility and LSI when killed)
| |
|
| |
| '''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.
| |
| |-
| |
| |valign=top| <Class>
| |
| |valign=top| link
| |
| | ONCC file name without file pre- and suffix. Character can change appearance with "chr_set_class".
| |
| |-
| |
| |valign=top| <Name>
| |
| |valign=top| string
| |
| | used by BSL commands
| |
| |-
| |
| |valign=top| <Weapon>
| |
| |valign=top| link
| |
| | ONWC file name without file pre- and suffix. The character is spawned with that weapon.
| |
|
| |
| Original weapon classes:
| |
| : w1_tap (TCTF pistol)
| |
| : w2_sap (Syndicate uzi)
| |
| : w3_phr (plasma rifle)
| |
| : w4_psm (phase stream projector)
| |
| : w5_sbg (super ball gun)
| |
| : w6_vdg (shocker)
| |
| : w7_scc (scram cannon (mini-rockets))
| |
| : w8_mbo (mercury bow)
| |
| : w9_scr (screamer gun)
| |
| : w10_sni (Mukade's firework)
| |
| : w11_ba1 (Barabas' gun)
| |
| : w12_ba2 (-)
| |
| |-
| |
| |valign=top| <Scripts>
| |
| |valign=top| string
| |
| | BSL function
| |
| : <Spawn> (called when character is spawned)
| |
| : <Die> (called when character dies (health reaches 0); can work multiple times)
| |
| : <Combat> (called when character notices an enemy; works only once)
| |
| : <Alarm> (called when character is alarmed)
| |
| : <Hurt> (called when character is hurt for the first time; works only once)
| |
| : <Defeated> (called when character is "defeated" (health reaches 1); works only once)
| |
| : <OutOfAmmo> (called when character runs out of ammo (reloads a weapon with the last clip/cell); works only once, and the character must have the ammo at spawn-time)
| |
| : <font style="color:#777"><NoPath> (should be called when a character has trouble pathfinding, but isn't</font>)
| |
| |-
| |
| |valign=top| <AdditionalHealth>
| |
| |valign=top| integer
| |
| | ''main'' health is stored in ONCC, "additional health" will be added to that ''main'' health; also negative value possible here (which would then reduce main health)
| |
| |-
| |
| |valign=top| <Job>
| |
| |valign=top| -
| |
| |
| |
| |-
| |
| |valign=top| <Type>
| |
| |valign=top| flag
| |
| |
| |
| : None
| |
| : Idle
| |
| : <font color="#777">Guard (never used in Oni)</font>
| |
| : Patrol
| |
| : <font color="#777">Teambattle (never used in Oni)</font>
| |
| : Combat (not tested)
| |
| : Melee (not tested)
| |
| : Alarm (not tested)
| |
| : Neutral (not tested)
| |
| : Panic (not tested)
| |
| |-
| |
| |valign=top| [[OBD_talk:BINA/OBJC/PATR|<PatrolPathId>]]
| |
| |valign=top| integer
| |
| |
| |
| |-
| |
| |valign=top| <Behaviors>
| |
| |valign=top| -
| |
| | specified by IDs linking to melee, combat and neutral profile collection file
| |
| |-
| |
| |valign=top| [[OBD_talk:BINA/OBJC/CMBT|<CombatId>]]
| |
| |valign=top| flag
| |
| |
| |
| : 0 (Stand_and_Fire)
| |
| : 1 (Murder)
| |
| : 2 (Shoot_And_Fight)
| |
| : 3 (Take_my_Big_Black_Stuff)
| |
| : 4 (Assault)
| |
| : 5 (Civilian)
| |
| : 6 (Pursuit)
| |
| : 7 (Group_battle)
| |
| : 8 (Watchman)
| |
| : 9 (Barabbas_TCTF)
| |
| : 10 (COMGUY)
| |
| : 11 (SuperNinja)
| |
| : 12 (Griffin)
| |
| : 13 (Mutant_Muro)
| |
| : 14 (Alarm Guard)
| |
| : 15 (Non-Combatant)
| |
| : 16 (Griffin_Final)
| |
| : 207 (Sniper)
| |
| : 208 (Sniper For Joe)
| |
| : 17 (Average_striker; new profile for AE)
| |
| |-
| |
| |valign=top| <MeleeId>
| |
| |valign=top| flag
| |
| | [[OBD:BINA/OBJC/MELE#All_profiles_sorted_by_ID|here are all melee IDs sorted by ID]]
| |
| |-
| |
| |valign=top| <NeutralId>
| |
| |valign=top| flag
| |
| |[[OBD:BINA/OBJC/NEUT|...]] (no overview so far)
| |
| |-
| |
| |valign=top| <Inventory>
| |
| |valign=top| -
| |
| |
| |
| |-
| |
| |valign=top| <Ammo>
| |
| |valign=top| integer
| |
| |
| |
| : <Use> (Player becomes spawned with ammo clips, here you set the amount.)
| |
| : <Drop> (AI drop these items when defeated.)
| |
| |-
| |
| |valign=top| <EnergyCell>
| |
| |valign=top| integer
| |
| |
| |
| : <Use>
| |
| : <Drop>
| |
| |-
| |
| |valign=top| <Hypo>
| |
| |valign=top| integer
| |
| |
| |
| : <Use>
| |
| : <Drop> (AI cannot use hypos.)
| |
| |-
| |
| |valign=top| <Shield>
| |
| |valign=top| integer
| |
| |
| |
| : <Use>
| |
| : <Drop>
| |
| |-
| |
| |valign=top| <Invisibility>
| |
| |valign=top| integer
| |
| |
| |
| : <Use>
| |
| : <Drop>
| |
| |-
| |
| |valign=top| <Team>
| |
| |valign=top| flag
| |
| |
| |
| : Konoko
| |
| : TCTF
| |
| : Syndicate
| |
| : Neutral
| |
| : SecurityGuard
| |
| : RogueKonoko
| |
| : Switzlerland (is melee-immune)
| |
| : SyndicateAccessory
| |
| |-
| |
| |valign=top| <AmmoPercentage>
| |
| |valign=top| integer
| |
| | ammo in weapon, percent value: 0 - 100, ''overload'' not tested
| |
| |-
| |
| |valign=top| <Alert>
| |
| |valign=top| -
| |
| | [[Tricks_behind_Oni_A.I.|HERE]] you get some helpful information on how to use "Alert" and "Pursuit".
| |
| : Lull
| |
| : Low
| |
| : Medium
| |
| : High
| |
| : Combat
| |
| |-
| |
| |valign=top| <Initial>
| |
| |valign=top| flag
| |
| | initial alert level, see <Alert> for all flags
| |
| |-
| |
| |valign=top| <Minimal>
| |
| |valign=top| flag
| |
| | minimal alert level, see <Alert> for all flags
| |
| |-
| |
| |valign=top| <JobStarting>
| |
| |valign=top| flag
| |
| | alert level when starting a job, see <Alert> for all flags
| |
| |-
| |
| |valign=top| <Investigating>
| |
| |valign=top| flag
| |
| | alert level when investigating, see <Alert> for all flags
| |
| |-
| |
| |valign=top| <AlarmGroups>
| |
| |valign=top| integer
| |
| |It's a bitset32 converted to int32. If Ns bit = TRUE then a bot gets highest alert level by a console command ai2_tripalarm(N)
| |
| : <AlarmGroups>VAR</AlarmGroups>
| |
| :: VAR = 2^N1 + 2^N2 + 2^N3 etc.
| |
| |-
| |
| |valign=top| <Pursuit>
| |
| |valign=top| -
| |
| |
| |
| : None
| |
| : Forget
| |
| : GoTo
| |
| : Wait
| |
| : Look
| |
| : Move
| |
| : Hunt
| |
| : Glanc
| |
| |-
| |
| |valign=top| <nowiki><StrongUnseen></nowiki>
| |
| |valign=top| flag
| |
| | usually ''Look'', see <Pursuit> for all flags
| |
| |-
| |
| |valign=top| <WeakUnseen>
| |
| |valign=top| flag
| |
| | usually ''Forget'', see <Pursuit> for all flags
| |
| |-
| |
| |valign=top| <StrongSeen>
| |
| |valign=top| flag
| |
| | usually ''Look'', see <Pursuit> for all flags
| |
| |-
| |
| |valign=top| <WeakSeen>
| |
| |valign=top| flag
| |
| | usually ''Look'', see <Pursuit> for all flags
| |
| |-
| |
| |valign=top| <Lost>
| |
| |valign=top| flag
| |
| | usually ''ReturnToJob''
| |
| : ReturnToJob
| |
| : KeepLooking
| |
| : FindAlarm
| |
| |}
| |