|NEUT : Neutral behavior list|
- The xml code on this page is based on onisplit v0.9.61.0
- BINACJBONeutral.oni is level specific. (It can be found in AE/AEInstaller/vanilla/levelX_Final.dat)
- Press control to talk with a character (if possible). The interaction depends on what id that character has.
<?xml version="1.0" encoding="utf-8"?> <Oni> <Objects> [...] </Objects> </Oni>
[...] means at least one neutral behavior block. Paste all a behavior data into there (this includes <NEUT Id="..."> and </NEUT> tag).
<NEUT Id="1853"> <Header> <Flags></Flags> <Position>146.41217 -48.8205528 1027.55249</Position> <Rotation>0 0 0</Rotation> </Header> <OSD> <Name>Give VDG Pistol (CivFem)</Name> <NeutralId>2</NeutralId> <Flags>NoResumeAfterGive</Flags> <Ranges> <Trigger>100</Trigger> <Talk>40</Talk> <Follow>200</Follow> <Enemy>70</Enemy> </Ranges> <Speech> <Trigger>civfem_trigger</Trigger> <Abort>civfem_abort</Abort> <Enemy>civfem_enemy</Enemy> </Speech> <Script> <AfterTalk></AfterTalk> </Script> <Rewards> <WeaponClass>w6_vdg</WeaponClass> <Ammo>0</Ammo> <EnergyCell>0</EnergyCell> <Hypo>0</Hypo> <Other></Other> </Rewards> <DialogLines> <DialogLine> <Flags></Flags> <Anim>0</Anim> <OtherAnim>0</OtherAnim> <SpeechName>civfem_gift_weapon</SpeechName> </DialogLine> <DialogLine> <Flags>GiveItems</Flags> <Anim>202</Anim> <OtherAnim>0</OtherAnim> <SpeechName></SpeechName> </DialogLine> </DialogLines> </OSD> </NEUT>
|XML tag||content type||description|
|<?xml version="1.0" encoding="utf-8"?>||flag, float||Don't change this.|
|<NEUT Id="1853">||integer||Id doesn't matter here.|
|<Position>||float x3||x y z position, useless here|
|<Rotation>||float x3||x y z rotation, useless here|
|<Name>||char||A name of the NEUT profile. Used by a BSL command ai2_neutralbehavior|
|<NeutralId>||integer||used by BINA/OBJC/CHAR and BINA/CJBO/MELE|
|<Trigger>||float||A distance between the AI2 character and the player character when the NEUT behavior mechanics kick in.|
Outside of this distance, NEUT behavior of the given AI2 character does not execute.
A threshold distance for approaching the player character:
An allowed "travel distance" for the NEUT driven AI2 character, starting from the moment player entered the Trigger range.
A range in which NEUT driven AI2 character will react on present enemies, even those which are behind its back. Who is considered "enemy" is defined according to Oni team affiliations.
The further reaction of the NEUT driven AI2 character on enemy differs acording to CHAR setup - it can start cowering in fear (NonCombatant flag is set) or go attack the enemy (default setup).
|<Trigger>||char||Speech sound for hailing the player.
If "distance to player" =< "Talk range" then NEUT driven AI2 character stands still, attempts to rotate in order to keep looking at the player character and keeps repeating the TRAM animType=230 (0xE6, Hail) + this Speech "Trigger" in a 5 second interval.
|<Abort>||char||Speech sound for when player interrupts the conversation.|
This sound is played when the player aborts the conversation by performing some offensive action such as a punch/kick or breaking away in the middle of the conversation by moving the mouse at a speed greater than the "conversation lock-on" threshold.
|<Enemy>||char||Speech sound for conversation interruption because of some enemy is present within the Enemy range.|
This sound is played if some enemy gets inside the Enemy range in the middle of the conversation.
|<AfterTalk>||char||A name of a BSL function. The function will will be executed after the conversation is finished.|
The function in BSL has an optional parameter (string type) - name of the NEUT driven AI2 character.
|<Rewards>||-||You can get rewards for saving people. A reward can be a weapon, ammo, cells, hypos, shield, phase cloak, and LSI.|
|<WeaponClass>||char||Any weapon, filename without prefix ONWC and suffix .oni; for example "w6_vdg"|
|<Ammo>||integer||Number of ammo clips.|
|<EnergyCell>||integer||Number of energy cells.|
|<Hypo>||integer||Number of hypo sprays.|
|<Other>||flag||Combinations of flags are possible. Flags:
|<DialogLine>||-||There can be multiple dialog lines.|
|<Flags>||flag||Combinations of flags are possible. Flags:
|<Anim>||integer||AnimType ID of the TRAM applied on NEUT driven AI2 character during this dialog line.|
Any TRAM which has animState="Standing" and is present in a NEUT driven AI2 character's TRAC should be valid.
|<OtherAnim>||integer||AnimType ID of the TRAM applied on the player character during this dialog line.|
Any TRAM which has animState="Standing" and is present in the player character's TRAC should be valid.
|<SpeechName>||char||The actual sound played during the dialog line. Length of this sound file defines length of the dialog line.
OSBDfile.amb.oni (without file pre-/suffix) for example: