Create  Edit  Diff  すぐ消える  Index  Search  Changes  History  Source  RSS  Note  wikifarm  Login

j_inc_constants.nss

include

const

const string COMBAT_FILE = "j_ai_detercombat"; // FILENAME

FILE

const string FILE_WALK_WAYPOINTS = "j_ai_walkwaypoin"; // FILENAME
const string FILE_RE_SET_WEAPONS = "j_ai_setweapons"; // FILENAME
const string FILE_DEATH_CLEANUP = "j_ai_destroyself"; // FILENAME
const string FILE_HEARTBEAT_TALENT_BUFF = "j_ai_heart_buff";
const string FILE_HEARTBEAT_LOOT = "j_ai_heart_loot";
const string FILE_HEARTBEAT_ANIMATIONS = "j_ai_heart_aimate";
const string FILE_HEARTBEAT_WALK_TO_PC = "j_ai_heart_serch";
const string FILE_DRAGON_WING_BUFFET = "j_ai_wingbuffet";
const string FILE_FLY_ATTACK = "j_ai_wingflying";
const string FILE_SPELLTRIGGER_START = "j_ai_spelltrig1";
const string AI_CUSTOM_AI_SCRIPT = "AI_CUSTOM_AI_SCRIPT";

Simple constants to save re-typing ETC.

const int iM10 = -10;// Dying threshold - die at -11
const int iM1 = -1;
const int i0 = 0;
const int i1 = 1;
const int i2 = 2;
const int i3 = 3;
const int i4 = 4;
const int i5 = 5;
const int i6 = 6;
const int i7 = 7;
const int i8 = 8;
const int i9 = 9;
const int i10 = 10;
const int i11 = 11;
const int i12 = 12;
const int i13 = 13;
const int i14 = 14;
const int i15 = 15;
const int i16 = 16;
const int i17 = 17;
const int i18 = 18;
const int i19 = 19;
const int i20 = 20;
const int i21 = 21;
const int i22 = 22;
const int i23 = 23;// SpellAllSpells
const int i24 = 24;
const int i25 = 25;
const int i30 = 30;
const int i35 = 35;
const int i40 = 40;// Here onwards are normally %'s
const int i50 = 50;
const int i60 = 60;
const int i70 = 70;
const int i80 = 80;
const int i90 = 90;
const int i99 = 99;
const int i100 = 100;
const int i150 = 150;// Limit for PW Stun
const float f0 = 0.0;
const float f1 = 1.0;
const float f2 = 2.0;
const float f3 = 3.0;
const float f4 = 4.0;
const float f5 = 5.0;
const float f6 = 6.0;// 1 heartbeat/round
const float f8 = 8.0;// Useful...for some reason
const float f9 = 9.0;
const float f10 = 10.0;
const float f11 = 11.0;// Range for some spell cones
const float f12 = 12.0;// 2 heartbeats/rounds
const float f15 = 15.0;
const float f16 = 16.0;// Double f8, the range of summon spells.
const float f18 = 18.0;// 3 heartbeats/rounds
const float f20 = 20.0;
const float f24 = 24.0;// 4 heartbeats/rounds
const float f30 = 30.0;
const float f35 = 35.0;
const float f40 = 40.0;
const float f50 = 50.0;
const float f60 = 60.0;
const float fTouchRange = 2.25;
const float fShortRange = 8.0;
const float fMediumRange = 20.0;
const float fLongRange = 40.0;

Global overriding actions

const int AI_SPECIAL_ACTIONS_ME_RUNNER = 1; // CONSTANT
const int AI_SPECIAL_ACTIONS_FLEE = 2; // CONSTANT
const int AI_SPECIAL_ACTIONS_MOVE_OUT_OF_AOE = 3; // CONSTANT
const string TRAP_CAN_IGNORE_IN_COMBAT = "TRAP_CAN_IGNORE_IN_COMBAT";// S.INTEGER
const string AI_TOGGLE = "AI_TOGGLE"; // INTEGER
const string AI_SPECIAL_AI = "AI_SPECIAL_AI";
const string ITEM_TALENT_VALUE = "ITEM_TALENT_VALUE"; // S.CONSTANT

String constants not associated with On Spawn options. Usually values.

const string AI_INTELLIGENCE = "AI_INTELLIGENCE"; // S.INTEGER
const string AI_MORALE = "AI_MORALE"; // S.INTEGER
const string AI_SPONTAEUOUSLY_CAST_HEALING = "AI_SPONTAEUOUSLY_CAST_HEALING";// S.INTEGER
const string AI_LAST_SUMMONED_LEVEL = "AI_LAST_SUMMONED_LEVEL"; // S.INTEGER
const string AI_TURNING_LEVEL = "AI_TURNING_LEVEL"; // S.INTEGER
const string AI_SPELL_IMMUNE_LEVEL = "AI_SPELL_IMMUNE_LEVEL"; // S.INTEGER
const string AI_EFFECT_HEX = "AI_EFFECT_HEX";
const string AI_SPELL_HEX = "AI_SPELL_HEX";
const string AI_ABILITY_DECREASE = "AI_ABILITY_DECREASE";
const string AI_TIMER_EFFECT_SET = "AI_TIMER_EFFECT_SET";
const string AI_JASPERRES_EFFECT_SET = "AI_JASPERRES_EFFECT_SET";
const string AI_TIMER_BUFF_ALLY_SPELL = "AI_TIMER_BUFF_ALLY_SPELL";
const string AI_HEARTBEAT_FLEE_SPELLS = "AI_HEARTBEAT_FLEE_SPELLS";// S.INTEGER
const string AI_TIMER_BLOCKED = "AI_TIMER_BLOCKED";
const string AI_DEFAULT_AI_COOLDOWN = "AI_DEFAULT_AI_COOLDOWN";
const string AI_TIMER_DEATH_EFFECT_DEATH = "AI_TIMER_DEATH_EFFECT_DEATH";

Spell Trigger numbers/constants/settings

const string SPELLTRIGGER_NOT_GOT_FIRST_SPELL = "AIST_FRST";// - When we !GetHasSpellEffect(iFirstSpell);
const string SPELLTRIGGER_DAMAGED_AT_PERCENT = "AIST_DAMA";// - When we are below X percent of HP, it fires
const string SPELLTRIGGER_IMMOBILE = "AIST_IMMB";// - When we are uncommandable/paralyzed/sleeping, etc.
const string SPELLTRIGGER_START_OF_COMBAT = "AIST_STCM";// - Fired first, whatever condition
const string USED = "USED";
const string VALUE = "VALUE";
const string AI_SPELL_TRIGGER_CREATURE = "AI_SPELL_TRIGGER_CREATURE";
const string AI_SPELLTRIG_MAXSPELLS = "AI_SPELLTRIG_MAXSPELLS";
const string AI_SPELLTRIG_PREFIX = "AI_SPELLTRIG_PREFIX";

These are the "forgotten" constants, for spells/feats in SoU.

const int AI_FEAT_BG_CREATE_UNDEAD = 474; // CONSTANT
const int AI_FEAT_BG_FIENDISH_SERVANT = 475; // CONSTANT
const int AI_FEAT_PM_CREATE_UNDEAD = 890;
const int AI_FEAT_PM_ANIMATE_DEAD = 889;
const int AI_FEAT_PM_CREATE_GREATER_UNDEAD = 895;
const int AI_FEAT_EPIC_WILD_SHAPE_UNDEAD = 872;
const int AI_FEAT_EPIC_WILD_SHAPE_DRAGON = 873;
const int AI_FEAT_GREATER_WILDSHAPE_1 = 898;
const int AI_FEAT_GREATER_WILDSHAPE_2 = 900;
const int AI_FEAT_GREATER_WILDSHAPE_3 = 901;
const int AI_FEAT_HUMANOID_SHAPE = 902;
const int AI_FEAT_GREATER_WILDSHAPE_4 = 903;
const int AI_FEAT_EPIC_OUTSIDER_SHAPE = 1060;
const int AI_FEAT_EPIC_CONSTRUCT_SHAPE = 1061;
const int AI_FEAT_EPIC_SHIFTER_INFINITE_WILDSHAPE_1 = 1062;
const int AI_FEAT_EPIC_SHIFTER_INFINITE_WILDSHAPE_2 = 1063;
const int AI_FEAT_EPIC_SHIFTER_INFINITE_WILDSHAPE_3 = 1064;
const int AI_FEAT_EPIC_SHIFTER_INFINITE_WILDSHAPE_4 = 1065;
const int AI_FEAT_EPIC_SHIFTER_INFINITE_HUMANOID_SHAPE = 1066;
const int AI_FEAT_EPIC_DRUID_INFINITE_WILDSHAPE = 1068;
const int AI_FEAT_EPIC_DRUID_INFINITE_ELEMENTAL_SHAPE = 1069;
const int AI_FEAT_EPIC_PLANAR_TURNING = 854;
const int AI_SPELL_FEAT_TURN_UNDEAD = 308;
const int AI_SPELL_EVIL_BLIGHT = 566;
const int AI_SPELL_FEAT_PLANAR_TURNING = 643;
const int AI_FEAT_EPIC_SPELL_MUMMY_DUST = 874;
const int AI_FEAT_EPIC_SPELL_DRAGON_KNIGHT = 875;
const int AI_FEAT_EPIC_SPELL_HELLBALL = 876;
const int AI_FEAT_EPIC_SPELL_EPIC_MAGE_ARMOR = 877;
const int AI_FEAT_EPIC_SPELL_RUIN = 878;
const int AI_FEAT_EPIC_SPELL_EPIC_WARDING = 990;
const int AI_SPELL_EPIC_WARDING = 695;
const int AI_SPELLABILITY_UNDEAD_HARM_SELF = 759;
const int AI_SPELLABILITY_CURE_CRITICAL_WOUNDS_OTHER= 567;
const string AI_SPELL_SUB_SPELL_CAST = "AI_SPELL_SUB_SPELL_CAST";
const int AI_SPELL_BARD_SONG = 411; // CONSTANT
const int AI_SPELL_CURSE_SONG = 644; // CONSTANT
const int AI_SPELL_OWLS_INSIGHT = 438; // CONSTANT
const int AI_SPELL_HARPER_CATS_GRACE = 481;
const int AI_SPELL_HARPER_EAGLE_SPLEDOR = 482;
const int AI_SPELLABILITY_GWILDSHAPE_STONEGAZE = 687;
const int AI_SPELLABILITY_GWILDSHAPE_DRIDER_DARKNESS= 688;
const int AI_SPELLABILITY_GWILDSHAPE_SPIKES = 692;// Manticore Spikes - no limit
const int AI_SPELLABILITY_GWILDSHAPE_MINDBLAST = 693;// GWildShape_Mindblast
const int AI_SPELLABILITY_VAMPIRE_DOMINATION_GAZE = 800;// Dom gaze.
const int AI_SPELLABILITY_HARPYSONG = 686;// SHIFT - Harpysong
const int AI_SPELLABILITY_SUMMON_BAATEZU = 701;
const int AI_SPELLABILITY_EYEBALL_RAY_0 = 710;// EyeballRay0
const int AI_SPELLABILITY_EYEBALL_RAY_1 = 711;// EyeballRay1
const int AI_SPELLABILITY_EYEBALL_RAY_2 = 712;// EyeballRay2
const int AI_SPELLABILITY_MINDFLAYER_MINDBLAST_10 = 713;// Mindflayer Mindblast 10
const int AI_SPELLABILITY_MINDFLAYER_PARAGON_MINDBLAST = 714;// Mindflayer Paragon Mindblast
const int AI_SPELLABILITY_GOLEM_RANGED_SLAM = 715;
const int AI_SPELLABILITY_SUCKBRAIN = 716;// SuckBrain
const int AI_SPELLABILITY_BEHOLDER_MAGIC_CONE = 727;// Beholder_Anti_Magic_Cone
const int AI_SPELLABILITY_BEBELITH_WEB = 731;// Bebelith Web
const int AI_SPELLABILITY_BEHOLDER_ALLRAYS = 736;// Beholder_Special_Spell_AI
const int AI_SPELLABILITY_PSIONIC_INERTIAL_BARRIER = 741;// Psionic Inertial Barrier
const int AI_SPELLABILITY_SHADOWBLEND = 757;// ShadowBlend - Shadow dragon.
const int AI_SPELLABILITY_AURA_OF_HELLFIRE = 761;// Aura
const int AI_SPELLABILITY_HELL_INFERNO = 762;// Hell Inferno - worse then SPELL_INFERNO
const int AI_SPELLABILITY_PSIONIC_MASS_CONCUSSION = 763;// Damage to AOE - psiconic mass concussion
const int AI_SPELLABILITY_SHADOW_ATTACK = 769;// SHIFTER Shadow Attack - also shifter
const int AI_SPELLABILITY_SLAAD_CHAOS_SPITTLE = 770;// SHIFTER Slaad Chaos Spittle - also shifter
const int AI_SPELLABILITY_BATTLE_BOULDER_TOSS = 773;
const int AI_SPELLABILITY_PRISMATIC_DEFLECTING_FORCE= 774;// Deflecting_Force
const int AI_SPELLABILITY_GIANT_HURL_ROCK = 775;
const int AI_SPELLABILITY_ILLITHID_MINDBLAST = 789;
const int AI_SPELLABILITY_VAMPIRE_INVISIBILITY = 799;// SHIFTER Vampire Invis.
const int AI_SPELLABILITY_AZER_FIRE_BLAST = 801;// SHIFTER Fire Blast.
const int AI_SPELLABILITY_SHIFTER_SPECTRE_ATTACK = 802;// SHIFTER Spectire Attack.
const string AI_AOE_PER_STORM = "AOE_PER_STORM";
const string AI_AOE_PER_CREEPING_DOOM = "AOE_PER_CREEPING_DOOM";
const string AI_AOE_PER_FOGSTINK = "AOE_PER_FOGSTINK";
const string AI_AOE_PER_GREASE = "AOE_PER_GREASE";
const string AI_AOE_PER_WALLFIRE = "AOE_PER_WALLFIRE";
const string AI_AOE_PER_WALLBLADE = "AOE_PER_WALLBLADE";
const string AI_AOE_PER_FOGACID = "VFX_PER_FOGACID";
const string AI_AOE_PER_FOGFIRE = "VFX_PER_FOGFIRE";
const string AI_AOE_PER_FOGKILL = "AOE_PER_FOGKILL";
const string AI_AOE_PER_FOGMIND = "VFX_PER_FOGMIND";
const string AI_AOE_PER_ENTANGLE = "VFX_PER_ENTANGLE";
const string AI_AOE_PER_EVARDS_BLACK_TENTACLES = "VFX_PER_EVARDS_BLACK_TENTACLES";
const string AI_AOE_PER_FOGBEWILDERMENT = "VFX_PER_FOGBEWILDERMENT";
const string AI_AOE_PER_STONEHOLD = "VFX_PER_STONEHOLD";
const string AI_AOE_PER_WEB = "VFX_PER_WEB";
const int AI_NORMAL_MELEE_ATTACK = 1000; // CONSTANT
const int AI_PARRY_ATTACK = 2000; // CONSTANT

The ignore string. If a creature has this set to anything but 0, then the AI ignores them.

const string AI_IGNORE_TOGGLE = "AI_IGNORE_TOGGLE"; // S.INTEGER

String constants not associated with Different Workings during play.

const string AI_MORALE_PENALTY = "AI_MORALE_PENALTY"; // S.INTEGER
const string AI_CURRENT_ACTION = "AI_CURRENT_ACTION"; // S.INTEGER
const string WE_HAVE_DIED_ONCE = "WE_HAVE_DIED_ONCE"; // S.INTEGER
const string AMOUNT_OF_DEATHS = "AMOUNT_OF_DEATHS"; // S.INTEGER
const string I_AM_TOTALLY_DEAD = "I_AM_TOTALLY_DEAD"; // S.INTEGER
const string MAX_ELEMENTAL_DAMAGE = "MAX_ELEMENTAL_DAMAGE"; // S.INTEGER
const string LAST_ELEMENTAL_DAMAGE = "LAST_ELEMENTAL_DAMAGE"; // S.INTEGER
const string AI_HIGHEST_DAMAGE_AMOUNT = "AI_HIGHEST_DAMAGE_AMOUNT";// S.INTEGER
const string AI_HIGHEST_PHISICAL_DAMAGE_AMOUNT = "AI_HIGHEST_PHISICAL_DAMAGE_AMOUNT";// S.INTEGER
const string AI_VALID_HEALING_KIT_OBJECT = "AI_VALID_HEALING_KIT_OBJECT";// S.INTEGER
const string AI_VALID_HEALING_KITS = "AI_VALID_HEALING_KITS"; // S.INTEGER
const string RESET_HEALING_KITS = "RESET_HEALING_KITS"; // S.INTEGER
const string AI_VALID_ANIMATIONS = "AI_VALID_ANIMATIONS";
const string WAYPOINT_RUN = "WAYPOINT_RUN";
const string WAYPOINT_PAUSE = "WAYPOINT_PAUSE";

Shout strings.

const string I_WAS_ATTACKED = "I_WAS_ATTACKED"; // CONSTANT
const string CALL_TO_ARMS = "CALL_TO_ARMS"; // CONSTANT
const string HELP_MY_FRIEND = "HELP_MY_FRIEND"; // CONSTANT
const string LEADER_FLEE_NOW = "LEADER_FLEE_NOW"; // CONSTANT
const string LEADER_ATTACK_TARGET = "LEADER_ATTACK_TARGET"; // CONSTANT
const string I_WAS_KILLED = "I_WAS_KILLED"; // CONSTANT
const string I_WAS_OPENED = "I_WAS_OPENED"; // CONSTANT
const string AI_HELP_MY_FRIEND_LOCATION = "AI_HELP_MY_FRIEND_LOCATION";// LOCATION
const string PLACEABLE_LAST_OPENED_BY = "PLACEABLE_LAST_OPENED_BY";// Object

All timers (the end bits. Not the prefixes.)

const string AI_TIMER_TURN_OFF_HIDE = "AI_TURN_OFF_HIDE"; // S.INTEGER
const string AI_TIMER_JUST_CAST_INVISIBILITY = "AI_TIMER_JUST_CAST_INVISIBILITY";//S.INTEGER
const string AI_TIMER_SHOUT_IGNORE_ANYTHING_SAID = "AI_TIMER_SHOUT_IGNORE_ANYTHING_SAID";// S.INTEGER
const string AI_TIMER_SEARCHING = "AI_TIMER_SEARCHING"; // S.INTEGER
const string AI_TIMER_STILL_PICKING_UP_ITEMS = "AI_TIMER_STILL_PICKING_UP_ITEMS";// S.INTEGER
const string AI_TIMER_AIMATIONS_PAUSE = "AI_TIMER_AIMATIONS_PAUSE"; // S.INTEGER
const string AI_TIMER_ATTACKED_IN_HTH = "AI_TIMER_ATTACKED_IN_HTH"; // S.INTEGER
const string AI_TIMER_TAUNT = "AI_TIMER_TAUNT"; // S.INTEGER
const string AI_TIMER_EMPATHY = "AI_TIMER_EMPATHY"; // S.INTEGER
const string AI_TIMER_AOE_SPELL_EVENT = "AI_TIMER_AOE_SPELL_EVENT";
const string AI_TIMER_FLEE = "AI_TIMER_FLEE";
const string AI_TIMER_LEADER_SENT_RUNNER = "AI_TIMER_LEADER_SENT_RUNNER";
const string AI_TIMER_SEARCH = "AI_TIMER_SEARCH_TIMER"; // S.INTEGER
const string AI_TIMER_KNOCKDOWN = "AI_TIMER_KNOCKDOWN_TIMER";
const string AI_TIMER_CURE_CONDITION = "AI_TIMER_CURE_CONDITION";

All speak talk arrays

const string AI_TALK_ON_PERCIEVE_ENEMY = "AI_TALK_ON_PERCIEVE_ENEMY";// S.STRING
const string AI_TALK_ON_CONVERSATION = "AI_TALK_ON_CONVERSATION"; // S.STRING
const string AI_TALK_ON_PHISICALLY_ATTACKED = "AI_TALK_ON_PHISICALLY_ATTACKED";// S.STRING
const string AI_TALK_ON_DAMAGED = "AI_TALK_ON_DAMAGED"; // S.STRING
const string AI_TALK_ON_DEATH = "AI_TALK_ON_DEATH"; // S.STRING
const string AI_TALK_ON_HOSTILE_SPELL_CAST_AT = "AI_TALK_ON_HOSTILE_SPELL_CAST_AT";// S.STRING
const string AI_TALK_ON_MORALE_BREAK = "AI_TALK_ON_MORALE_BREAK";// S.STRING
const string AI_TALK_ON_COMBAT_ROUND = "AI_TALK_ON_COMBAT_ROUND";// S.STRING
const string AI_TALK_WE_PASS_POTION = "AI_TALK_WE_PASS_POTION";
const string AI_TALK_WE_GOT_POTION = "AI_TALK_WE_GOT_POTION";
const string AI_TALK_ON_CANNOT_RUN = "AI_TALK_ON_CANNOT_RUN";
const string AI_TALK_ON_STUPID_RUN = "AI_TALK_ON_STUPID_RUN";
const string AI_TALK_ON_COMBAT_ROUND_EQUAL = "AI_TALK_ON_COMBAT_ROUND_EQUAL";
const string AI_TALK_ON_COMBAT_ROUND_THEM_OVER_US = "AI_TALK_ON_COMBAT_ROUND_THEM_OVER_US";
const string AI_TALK_ON_COMBAT_ROUND_US_OVER_THEM = "AI_TALK_ON_COMBAT_ROUND_US_OVER_THEM";
const string AI_TALK_ON_TAUNT = "AI_TALK_ON_TAUNT";
const string AI_TALK_ON_LEADER_SEND_RUNNER = "AI_TALK_ON_LEADER_SEND_RUNNER";
const string AI_TALK_ON_LEADER_ATTACK_TARGET = "AI_TALK_ON_LEADER_ATTACK_TARGET";
const string ARRAY_SIZE = "ARRAY_SIZE_"; // S.STRING
const string ARRAY_PERCENT = "ARRAY_PER_"; // S.STRING
const string TIME_STOP_LAST_ = "TIME_STOP_LAST_";
const string TIME_STOP_LAST_ARRAY_SIZE = "TIME_STOP_LAST_ARRAY_SIZE";

Objects

const string AI_ATTACK_SPECIFIC_OBJECT = "AI_ATTACK_SPECIFIC_OBJECT";// S.OBJECT
const string AI_FLEE_TO = "AI_FLEE_TO"; // S.OBJECT
const string AI_AOE_FLEE_FROM = "AI_AOE_FLEE_FROM"; // S.OBJECT
const string AI_AOE_FLEE_FROM_RANGE = "AI_AOE_FLEE_FROM_RANGE"; // S.FLOAT
const string AI_TO_ATTACK = "AI_TO_ATTACK"; // S.OBJECT
const string AI_STORED_LAST_ATTACKER = "AI_STORED_LAST_ATTACKER";// S.OBJECT
const string AI_HIGHEST_DAMAGER = "AI_HIGHEST_DAMAGER"; // S.OBJECT
const string AI_LAST_TO_GO_INVISIBLE = "AI_LAST_TO_GO_INVISIBLE";// S.OBJECT
const string AI_RUNNER_TARGET = "AI_RUNNER_TARGET"; // S.OBJECT

Looting special

const string AI_CURRENT_TAKER = "AI_CURRENT_TAKER"; // S.OBJECT
const string BODY_BAG = "BodyBag";

Weapons.

const string AI_WEAPON_PRIMARY = "AI_WEAPON_PRIMARY"; // S.OBJECT
const string AI_WEAPON_SECONDARY = "AI_WEAPON_SECONDARY"; // S.OBJECT
const string AI_WEAPON_TWO_HANDED = "AI_WEAPON_TWO_HANDED"; // S.OBJECT
const string AI_WEAPON_RANGED = "AI_WEAPON_RANGED"; // S.OBJECT
const string AI_WEAPON_RANGED_2 = "AI_WEAPON_RANGED_2"; // S.OBJECT
const string AI_WEAPON_RANGED_SHIELD = "AI_WEAPON_RANGED_SHIELD";// S.INTEGER
const string AI_WEAPON_RANGED_AMMOSLOT = "AI_WEAPON_RANGED_AMMOSLOT";// S.INTEGER
const string AI_WEAPON_RANGED_IS_UNLIMITED = "AI_WEAPON_RANGED_IS_UNLIMITED";// S.INTEGER
const string AI_WEAPON_SHIELD = "AI_WEAPON_SHIELD"; // S.OBJECT
const string AI_WEAPON_SHIELD_2 = "AI_WEAPON_SHIELD_2"; // S.OBJECT
const string WEAP_SIZE = "AI_WEAP_SIZE"; // CONSTANT
const string WEAP_DAMAGE = "AI_WEAP_DAMAGE"; // CONSTANT

Master Constants for UDEs

const string AI_UDE_MASTER = "AI_UDE_MASTER";
const string EXIT_UDE_PREFIX_ = "EXIT_UDE_PREFIX_";// Exit string, like EXIT_UDE_PREFIX_1001 is the heartbeat exit
const int AI_FLAG_UDE_HEARTBEAT_EVENT = 0x00000001; // 1001
const int EVENT_HEARTBEAT_EVENT = 1001;
const int AI_FLAG_UDE_HEARTBEAT_PRE_EVENT = 0x00000002; // 1021
const int EVENT_HEARTBEAT_PRE_EVENT = 1021;
const int AI_FLAG_UDE_PERCIEVE_EVENT = 0x00000004; // 1002
const int EVENT_PERCIEVE_EVENT = 1002;
const int AI_FLAG_UDE_PERCIEVE_PRE_EVENT = 0x00000008; // 1022
const int EVENT_PERCIEVE_PRE_EVENT = 1022;
const int AI_FLAG_UDE_END_COMBAT_ROUND_EVENT = 0x00000010; // 1003
const int EVENT_END_COMBAT_ROUND_EVENT = 1003;
const int AI_FLAG_UDE_END_COMBAT_ROUND_PRE_EVENT = 0x00000020; // 1023
const int EVENT_END_COMBAT_ROUND_PRE_EVENT = 1023;
const int AI_FLAG_UDE_ON_DIALOGUE_EVENT = 0x00000040; // 1004
const int EVENT_ON_DIALOGUE_EVENT = 1004;
const int AI_FLAG_UDE_ON_DIALOGUE_PRE_EVENT = 0x00000080; // 1024
const int EVENT_ON_DIALOGUE_PRE_EVENT = 1024;
const int AI_FLAG_UDE_ATTACK_EVENT = 0x00000010; // 1005
const int EVENT_ATTACK_EVENT = 1005;
const int AI_FLAG_UDE_ATTACK_PRE_EVENT = 0x00000020; // 1025
const int EVENT_ATTACK_PRE_EVENT = 1025;
const int AI_FLAG_UDE_DAMAGED_EVENT = 0x00000040; // 1006
const int EVENT_DAMAGED_EVENT = 1006;
const int AI_FLAG_UDE_DAMAGED_PRE_EVENT = 0x00000080; // 1026
const int EVENT_DAMAGED_PRE_EVENT = 1026;
const int AI_FLAG_UDE_DEATH_EVENT = 0x00000100; // 1007
const int EVENT_DEATH_EVENT = 1007;
const int AI_FLAG_UDE_DEATH_PRE_EVENT = 0x00000200; // 1027
const int EVENT_DEATH_PRE_EVENT = 1027;
const int AI_FLAG_UDE_DISTURBED_EVENT = 0x00000400; // 1008
const int EVENT_DISTURBED_EVENT = 1008;
const int AI_FLAG_UDE_DISTURBED_PRE_EVENT = 0x00000800; // 1028
const int EVENT_DISTURBED_PRE_EVENT = 1028;
const int AI_FLAG_UDE_RESTED_EVENT = 0x00004000; // 1009
const int EVENT_RESTED_EVENT = 1009;
const int AI_FLAG_UDE_RESTED_PRE_EVENT = 0x00004000; // 1029
const int EVENT_RESTED_PRE_EVENT = 1029;
const int AI_FLAG_UDE_SPELL_CAST_AT_EVENT = 0x00001000; // 1011
const int EVENT_SPELL_CAST_AT_EVENT = 1011;
const int AI_FLAG_UDE_SPELL_CAST_AT_PRE_EVENT = 0x00002000; // 1031
const int EVENT_SPELL_CAST_AT_PRE_EVENT = 1031;
const int AI_FLAG_UDE_COMBAT_ACTION_EVENT = 0x00004000; // 1012
const int EVENT_COMBAT_ACTION_EVENT = 1012;
const int AI_FLAG_UDE_COMBAT_ACTION_PRE_EVENT = 0x00004000; // 1032
const int EVENT_COMBAT_ACTION_PRE_EVENT = 1032;
const int AI_FLAG_UDE_DAMAGED_AT_1_HP = 0x80000000; // 1014
const int EVENT_DAMAGED_AT_1_HP = 1014;
const int AI_FLAG_UDE_ON_BLOCKED_EVENT = 0x00008000; // 1015
const int EVENT_ON_BLOCKED_EVENT = 1015;
const int AI_FLAG_UDE_ON_BLOCKED_PRE_EVENT = 0x00010000; // 1035
const int EVENT_ON_BLOCKED_PRE_EVENT = 1035;

Fleeing & Targeting settings, under AI_TARGETING_FLEE_MASTER

const string AI_TARGETING_FLEE_MASTER = "AI_TARGETING_FLEE_MASTER";
const int AI_FLAG_TARGETING_LIKE_LOWER_HP = 0x00000001;
const int AI_FLAG_TARGETING_LIKE_LOWER_AC = 0x00000002;
const int AI_FLAG_TARGETING_LIKE_MAGE_CLASSES = 0x00000004;
const int AI_FLAG_TARGETING_LIKE_ARCHERS = 0x00000008;
const int AI_FLAG_TARGETING_LIKE_PCS = 0x00000010;
const int AI_FLAG_TARGETING_FILTER_FOR_PC_TARGETS = 0x00000020;
const int AI_FLAG_TARGETING_LIKE_LOWER_HD = 0x00000040;
const int AI_FLAG_FLEEING_FLEE_TO_WAYPOINT_IF_VALID = 0x00000080;
const int AI_FLAG_FLEEING_FEARLESS = 0x00000100;
const int AI_FLAG_FLEEING_FLEE_TO_OBJECT = 0x00000200;
const int AI_FLAG_FLEEING_FLEE_TO_NEAREST_NONE_SEEN = 0x00000400;
const int AI_FLAG_FLEEING_NEVER_FIGHT_IMPOSSIBLE_ODDS = 0x00000800;
const int AI_FLAG_FLEEING_TURN_OFF_GROUP_MORALE = 0x00001000;
const int AI_FLAG_FLEEING_NO_OVERRIDING_HP_AMOUNT = 0x00002000;
const string BASE_MORALE_SAVE = "BASE_MORALE_SAVE";// S.INTEGER
const string AI_DAMAGE_AT_ONCE_FOR_MORALE_PENALTY = "AI_DAMAGE_AT_ONCE_FOR_MORALE_PENALTY";// S.INTEGER
const string AI_DAMAGE_AT_ONCE_PENALTY = "AI_DAMAGE_AT_ONCE_PENALTY";// S.INTEGER
const string AMOUNT_OF_HD_DIFFERENCE_TO_CHECK = "AMOUNT_OF_HD_DIFFERENCE_TO_CHECK";// S.INTEGER
const string HP_PERCENT_TO_CHECK_AT = "HP_PERCENT_TO_CHECK_AT"; // S.INTEGER
const string AI_FLEE_OBJECT = "AI_FLEE_OBJECT"; // S.OBJECT
const string AI_FAVOURED_ENEMY_RACE = "AI_FAVOURED_ENEMY_RACE"; // S.CONSTANT
const string AI_FAVOURED_ENEMY_CLASS = "AI_FAVOURED_ENEMY_CLASS"; // S.CONSTANT
const string AI_MAX_TURNS_TO_ATTACK_ONE_TARGET = "AI_MAX_TURNS_TO_ATTACK_ONE_TARGET";
const string AI_MELEE_TURNS_ATTACKING = "AI_MELEE_TURNS_ATTACKING";
const string AI_SPELL_TURNS_ATTACKING = "AI_SPELL_TURNS_ATTACKING";
const string AI_RANGED_TURNS_ATTACKING = "AI_RANGED_TURNS_ATTACKING";
const string AI_MELEE_LAST_TO_NEW_TARGET_CHANCE = "AI_MELEE_NT_CHANCE";
const string AI_RANGED_LAST_TO_NEW_TARGET_CHANCE = "AI_RANGE_NT_CHANCE";
const string AI_SPELL_LAST_TO_NEW_TARGET_CHANCE = "AI_SPELLS_NT_CHANCE";
const string MAXIMUM = "MAXIMUM";
const string MINIMUM = "MINIMUM";
const int TARGET_HIGHER = 1;
const int TARGET_LOWER = 0;
const string TARGETING_ISPC = "TARGETING_ISPC";
const string TARGETING_MANTALS = "TARGETING_MANTALS";
const string TARGETING_RANGE = "TARGETING_RANGE";
const string TARGETING_AC = "TARGETING_AC";
const string TARGETING_SAVES = "TARGETING_SAVES";
const string TARGETING_PHISICALS = "TARGETING_PHISICALS";
const string TARGETING_BAB = "TARGETING_BAB";
const string TARGETING_HITDICE = "TARGETING_HITDICE";
const string TARGETING_HP_PERCENT = "TARGETING_HP_PERCENT";
const string TARGETING_HP_CURRENT = "TARGETING_HP_CURRENT";
const string TARGETING_HP_MAXIMUM = "TARGETING_HP_MAXIMUM";
const string AI_LAST_MELEE_TARGET = "AI_LAST_MELEE_TARGET";
const string AI_LAST_SPELL_TARGET = "AI_LAST_SPELL_TARGET";
const string AI_LAST_RANGED_TARGET = "AI_LAST_RANGED_TARGET";
const string GLOBAL_TURNS_ATTACKING_MELEE_TARGET = "GLOBAL_TURNS_ATTACKING_MELEE_TARGET";//S.INTEGER
const string GLOBAL_TURNS_ATTACKING_SPELL_TARGET = "GLOBAL_TURNS_ATTACKING_SPELL_TARGET";//S.INTEGER
const string GLOBAL_TURNS_ATTACKING_RANGED_TARGET = "GLOBAL_TURNS_ATTACKING_RANGED_TARGET";//S.INTEGER

Fighting & Spells variables, set under AI_COMBAT_MASTER

const string AI_COMBAT_MASTER = "AI_COMBAT_MASTER";

Mage settings

const int AI_FLAG_COMBAT_COUNTER_SPELL_ARCANE = 0x00000001;
const int AI_FLAG_COMBAT_COUNTER_SPELL_DIVINE = 0x00000002;
const int AI_FLAG_COMBAT_COUNTER_SPELL_ONLY_IN_GROUP = 0x00000004;
const int AI_FLAG_COMBAT_NEVER_HIT_ALLIES = 0x00000010;
const int AI_FLAG_COMBAT_AOE_DONT_MIND_IF_THEY_SURVIVE = 0x00000020;
const int AI_FLAG_COMBAT_SINGLE_TARGETING = 0x00000040;
const int AI_FLAG_COMBAT_MANY_TARGETING = 0x00000080;
const int AI_FLAG_COMBAT_IMPROVED_INSTANT_DEATH_SPELLS = 0x00002000;
const int AI_FLAG_COMBAT_IMPROVED_SUMMON_TARGETING = 0x00004000;
const int AI_FLAG_COMBAT_IMPROVED_IMMUNITY_CHECKING = 0x00008000;
const int AI_FLAG_COMBAT_IMPROVED_SPECIFIC_SPELL_IMMUNITY= 0x00010000;
const int AI_FLAG_COMBAT_USE_ALL_POTIONS = 0x00020000;
const int AI_FLAG_COMBAT_LONGER_RANGED_SPELLS_FIRST = 0x00040000;
const int AI_FLAG_COMBAT_DISPEL_MAGES_MORE = 0x00080000;
const int AI_FLAG_COMBAT_DISPEL_IN_ORDER = 0x00100000;
const int AI_FLAG_COMBAT_MORE_ALLY_BUFFING_SPELLS = 0x00200000;
const int AI_FLAG_COMBAT_SUMMON_FAMILIAR = 0x00400000;
const int AI_FLAG_COMBAT_FLAG_FAST_BUFF_ENEMY = 0x00800000;
const string AI_AOE_HD_DIFFERENCE = "AI_AOE_HD_DIFFERENCE";
const string AI_AOE_ALLIES_LOWEST_IN_AOE = "AI_AOE_ALLIES_LOWEST_IN_AOE";
const string AI_CHEAT_CAST_SPELL = "AI_CHEAT_CAST_SPELL";
const string GLOBAL_LAST_SPELL_INFORMATION = "GLOBAL_LAST_SPELL_INFORMATION";

Fighter settings

const int AI_FLAG_COMBAT_PICK_UP_DISARMED_WEAPONS = 0x01000000;
const int AI_FLAG_COMBAT_BETTER_AT_HAND_TO_HAND = 0x02000000;
const int AI_FLAG_COMBAT_ARCHER_ATTACKING = 0x04000000;
const int AI_FLAG_COMBAT_ARCHER_ALWAYS_MOVE_BACK = 0x08000000;
const int AI_FLAG_COMBAT_ARCHER_ALWAYS_USE_BOW = 0x10000000;
const int AI_FLAG_COMBAT_NO_GO_FOR_THE_KILL = 0x20000000;
const string AI_RANGED_WEAPON_RANGE = "AI_RANGED_WEAPON_RANGE";

Dragon settings

const int AI_FLAG_COMBAT_NO_WING_BUFFET = 0x40000000;
const int AI_FLAG_COMBAT_FLYING = 0x80000000;
const string AI_DRAGON_FREQUENCY_OF_BUFFET = "AI_DRAGON_FREQUENCY_OF_BUFFET";
const string AI_DRAGON_FREQUENCY_OF_BREATH = "AI_DRAGON_FREQUENCY_OF_BREATH";
const string AI_DRAGONS_BREATH = "AI_DRAGONS_BREATH";
const string AI_WING_BUFFET = "AI_WING_BUFFET";
const string AI_FLYING_TARGET = "AI_FLYING_TARGET";

Other Combat - Healing, Skills & bosses - AI_OTHER_COMBAT_MASTER

const string AI_OTHER_COMBAT_MASTER = "AI_OTHER_COMBAT_MASTER";

Healing settings

const int AI_FLAG_OTHER_COMBAT_HEAL_AT_PERCENT_NOT_AMOUNT = 0x00000001;
const int AI_FLAG_OTHER_COMBAT_WILL_RAISE_ALLIES_IN_BATTLE = 0x00000002;
const int AI_FLAG_OTHER_COMBAT_NO_CURING = 0x00000004;
const int AI_FLAG_OTHER_COMBAT_ONLY_CURE_SELF = 0x00000008;
const int AI_FLAG_OTHER_COMBAT_ONLY_RESTORE_SELF = 0x00000010;
const int AI_FLAG_OTHER_COMBAT_GIVE_POTIONS_TO_HELP = 0x00000020;
const int AI_FLAG_OTHER_COMBAT_USE_BAD_HEALING_SPELLS = 0x00000040;
const string AI_HEALING_US_PERCENT = "AI_HEALING_US_PERCENT"; // S.INTEGER
const string AI_HEALING_ALLIES_PERCENT = "AI_HEALING_ALLIES_PERCENT"; // S.INTEGER
const string SECONDS_BETWEEN_STATUS_CHECKS = "ROUNDS_BETWEEN_STATUS_CHECKS";// S.INTEGER

Skill settings

const int AI_FLAG_OTHER_COMBAT_NO_PICKPOCKETING = 0x00000080;
const int AI_FLAG_OTHER_COMBAT_FORCE_PICKPOCKETING = 0x00000100;
const int AI_FLAG_OTHER_COMBAT_NO_TAUNTING = 0x00000200;
const int AI_FLAG_OTHER_COMBAT_FORCE_TAUNTING = 0x00000400;
const int AI_FLAG_OTHER_COMBAT_NO_EMPATHY = 0x00000800;
const int AI_FLAG_OTHER_COMBAT_FORCE_EMPATHY = 0x00001000;
const int AI_FLAG_OTHER_COMBAT_NO_HIDING = 0x00002000;
const int AI_FLAG_OTHER_COMBAT_FORCE_HIDING = 0x00004000;
const int AI_FLAG_OTHER_COMBAT_NO_OPENING_LOCKED_DOORS = 0x00008000;
const int AI_FLAG_OTHER_COMBAT_FORCE_OPENING_LOCKED_DOORS = 0x00010000;
const int AI_FLAG_OTHER_COMBAT_NO_USING_HEALING_KITS = 0x00020000;
const int AI_FLAG_OTHER_COMBAT_FORCE_USING_HEALING_KITS = 0x00040000;
const int AI_FLAG_OTHER_COMBAT_NO_SEARCH = 0x00080000;
const int AI_FLAG_OTHER_COMBAT_FORCE_SEARCH = 0x00100000;
const int AI_FLAG_OTHER_COMBAT_NO_CONCENTRATION = 0x00200000;
const int AI_FLAG_OTHER_COMBAT_FORCE_CONCENTRATION = 0x00400000;
const int AI_FLAG_OTHER_COMBAT_NO_PARRYING = 0x00800000;
const int AI_FLAG_OTHER_COMBAT_FORCE_PARRYING = 0x01000000;
const string AI_CONCENTRATIONMOVE_COUNTER = "AI_CONCENTRATIONMOVE_COUNTER";

Boss settings, AI_BOSS_MASTER

const int AI_FLAG_OTHER_COMBAT_BOSS_MONSTER_SHOUT = 0x02000000;
const int AI_FLAG_OTHER_COMBAT_GROUP_LEADER = 0x04000000;
const string AI_BOSS_MONSTER_SHOUT_RANGE = "AI_BOSS_MONSTER_SHOUT_RANGE";
const string AI_LEADER_SHOUT_COUNT = "AI_LEADER_SHOUT_COUNT";

Bioware variables

const string NW_GENERIC_MASTER = "NW_GENERIC_MASTER";
//const int NW_FLAG_SPECIAL_CONVERSATION = 0x00000001;
//const int NW_FLAG_SHOUT_ATTACK_MY_TARGET = 0x00000002;
const int NW_FLAG_STEALTH = 0x00000004;
const int NW_FLAG_SEARCH = 0x00000008;
//const int NW_FLAG_SET_WARNINGS = 0x00000010;
//const int NW_FLAG_ESCAPE_RETURN = 0x00000020; //Failed
//const int NW_FLAG_ESCAPE_LEAVE = 0x00000040;
//const int NW_FLAG_TELEPORT_RETURN = 0x00000080; //Failed
//const int NW_FLAG_TELEPORT_LEAVE = 0x00000100;
//const int NW_FLAG_PERCIEVE_EVENT = 0x00000200;
//const int NW_FLAG_ATTACK_EVENT = 0x00000400;
//const int NW_FLAG_DAMAGED_EVENT = 0x00000800;
//const int NW_FLAG_SPELL_CAST_AT_EVENT = 0x00001000;
//const int NW_FLAG_DISTURBED_EVENT = 0x00002000;
//const int NW_FLAG_END_COMBAT_ROUND_EVENT = 0x00004000;
//const int NW_FLAG_ON_DIALOGUE_EVENT = 0x00008000;
//const int NW_FLAG_RESTED_EVENT = 0x00010000;
//const int NW_FLAG_DEATH_EVENT = 0x00020000;
//const int NW_FLAG_SPECIAL_COMBAT_CONVERSATION = 0x00040000;
const int NW_FLAG_AMBIENT_ANIMATIONS = 0x00080000;
//const int NW_FLAG_HEARTBEAT_EVENT = 0x00100000;
const int NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS = 0x00200000;
const int NW_FLAG_DAY_NIGHT_POSTING = 0x00400000;
const int NW_FLAG_AMBIENT_ANIMATIONS_AVIAN = 0x00800000;
//const int NW_FLAG_APPEAR_SPAWN_IN_ANIMATION = 0x01000000;
//const int NW_FLAG_SLEEPING_AT_NIGHT = 0x02000000;
//const int NW_FLAG_FAST_BUFF_ENEMY = 0x04000000;

Other settings, AI_OTHER_MASTER

const string AI_OTHER_MASTER = "AI_OTHER_MASTER";

Death

const int AI_FLAG_OTHER_TURN_OFF_CORPSES = 0x00000001;
const int AI_FLAG_OTHER_USE_BIOWARE_LOOTING = 0x00400000;
const string AI_WE_WILL_CREATE_ON_DEATH = "AI_WE_WILL_CREATE_ON_DEATH";// S.STRING
const string AI_DEATH_VISUAL_EFFECT = "AI_DEATH_VISUAL_EFFECT"; // S.CONSTANT
const string AI_CORPSE_DESTROY_TIME = "AI_CORPSE_DESTROY_TIME"; // S.INTEGER

Behaviour

const int AI_FLAG_OTHER_SEARCH_IF_ENEMIES_NEAR = 0x00000002;
const int AI_FLAG_OTHER_CHANGE_FACTIONS_TO_HOSTILE_ON_ATTACK = 0x00000004;
const int AI_FLAG_OTHER_ONLY_ATTACK_IF_ATTACKED = 0x00000008;
const int AI_FLAG_OTHER_REST_AFTER_COMBAT = 0x00000010;
const int AI_FLAG_OTHER_NO_PLAYING_VOICE_CHAT = 0x00000040;
const string AI_SEARCH_IF_ENEMIES_NEAR_RANGE = "AI_SEARCH_IF_ENEMIES_NEAR_RANGE";// S.INTEGER
const string AI_DOOR_INTELLIGENCE = "AI_DOOR_INTELLIGENCE"; // S.INTEGER
const string AI_LOOT_BAG_OTHER_1 = "AI_LOOT_BAG_OTHER_1"; // S.STRING
const string AI_LOOT_BAG_OTHER_2 = "AI_LOOT_BAG_OTHER_2"; // S.STRING
const string AI_LOOT_BAG_OTHER_3 = "AI_LOOT_BAG_OTHER_3"; // S.STRING

Alignment - only 2 things

const int AI_FLAG_OTHER_NO_COMMONER_ALIGNMENT_CHANGE = 0x00000080;
const int AI_FLAG_OTHER_FORCE_COMMONER_ALIGNMENT_CHANGE = 0x00000100;

Lag settings

const int AI_FLAG_OTHER_LAG_NO_ITEMS = 0x00000200;
const int AI_FLAG_OTHER_LAG_NO_SPELLS = 0x00000400;
const int AI_FLAG_OTHER_LAG_NO_LISTENING = 0x00000800;
const int AI_FLAG_OTHER_LAG_EQUIP_MOST_DAMAGING = 0x00001000;
const int AI_FLAG_OTHER_LAG_NO_CURING_ALLIES = 0x00002000;
const int AI_FLAG_OTHER_LAG_IGNORE_HEARTBEAT = 0x00004000;
const int AI_FLAG_OTHER_LAG_TARGET_NEAREST_ENEMY = 0x00008000;
const string LAG_AI_LEVEL_NO_PC_OR_ENEMY_50M = "LAG_AI_LEVEL_NO_PC_OR_ENEMY_50M";
const string LAG_AI_LEVEL_YES_PC_OR_ENEMY_50M = "LAG_AI_LEVEL_YES_PC_OR_ENEMY_50M";
const string LAG_AI_LEVEL_COMBAT = "LAG_AI_LEVEL_COMBAT";

Other settings

const int AI_FLAG_OTHER_CHEAT_MORE_POTIONS = 0x00010000;
const int AI_FLAG_OTHER_RETURN_TO_SPAWN_LOCATION = 0x00020000;
const int AI_FLAG_OTHER_NO_CLEAR_ACTIONS_BEFORE_CONVERSATION = 0x00040000;
const int AI_FLAG_OTHER_NO_POLYMORPHING = 0x00080000;
const int AI_FLAG_OTHER_DONT_RESPOND_TO_EMOTES = 0x00100000;
const int AI_FLAG_OTHER_DONT_SHOUT = 0x00200000;
const string EMOTE_STAR = "*";
const string AI_POLYMORPH_INTO = "AI_POLYMORPH_INTO"; // S.CONSTANT
const string AI_RETURN_TO_POINT = "AI_RETURN_TO_POINT"; // S.INTEGER

The spell validnessess:

const string AI_VALID_SPELLS = "AI_VALID_SPELLS";
const int MAXCR = 20;
const int AI_VALID_TALENT_HARMFUL_AREAEFFECT_DISCRIMINANT = 0x00000001;// 1 - This is the constant number added to AI_VALID_SPELLS spawn settings.
const int AI_VALID_TALENT_HARMFUL_RANGED = 0x00000002;// 2
const int AI_VALID_TALENT_HARMFUL_TOUCH = 0x00000004;
const int AI_VALID_TALENT_BENEFICIAL_HEALING_AREAEFFECT = 0x00000008;
const int AI_VALID_TALENT_BENEFICIAL_HEALING_TOUCH = 0x00000010;
const int AI_VALID_TALENT_BENEFICIAL_CONDITIONAL_AREAEFFECT = 0x00000020;
const int AI_VALID_TALENT_BENEFICIAL_CONDITIONAL_SINGLE = 0x00000040;
const int AI_VALID_TALENT_BENEFICIAL_ENHANCEMENT_AREAEFFECT = 0x00000080;
const int AI_VALID_TALENT_BENEFICIAL_ENHANCEMENT_SINGLE = 0x00000100;
const int AI_VALID_TALENT_BENEFICIAL_ENHANCEMENT_SELF = 0x00000200;
const int AI_VALID_TALENT_HARMFUL_AREAEFFECT_INDISCRIMINANT = 0x00000400;
const int AI_VALID_TALENT_BENEFICIAL_PROTECTION_SELF = 0x00000800;
const int AI_VALID_TALENT_BENEFICIAL_PROTECTION_SINGLE = 0x00001000;
const int AI_VALID_TALENT_BENEFICIAL_PROTECTION_AREAEFFECT = 0x00002000;
const int AI_VALID_TALENT_BENEFICIAL_OBTAIN_ALLIES = 0x00004000;
const int AI_VALID_TALENT_PERSISTENT_AREA_OF_EFFECT = 0x00008000;
const int AI_VALID_TALENT_BENEFICIAL_HEALING_POTION = 0x00010000;
const int AI_VALID_TALENT_DRAGONS_BREATH = 0x00040000;
const int AI_VALID_TALENT_HARMFUL_MELEE = 0x00200000;
const int AI_VALID_CURE_CONDITION_SPELLS = 0x00400000;
const int AI_VALID_OTHER_SPELL = 0x00800000;
const int AI_VALID_ANY_SPELL = 0x80000000;
//const string AI_TALENT_HARMFUL_MELEE = "AI_TALENT_HM";

Other file constants (default1, 2, 4-9, a, b, e

const string AI_TEMP_SET_TARGET = "AI_TEMP_SET_TARGET";
const string AI_TIMER = "AI_TIMER_"; // Prefix for timers
const string AI_CONSTANT = "AI_CONSTANT_"; // Prefix for constansts
const string AI_INTEGER = "AI_INTEGER_"; // Prefix for integers
const string AI_OBJECT = "AI_OBJECT_"; // Prefix for objects
const string MAXINT_ = "MAXINT_";
const string s1 = "1";
const string s0 = "0";// Used mainly for spell triggers
const string ARRAY_TEMP_ENEMIES = "ARRAY_TEMP_ENEMIES";
const string ARRAY_TEMP_ALLIES = "ARRAY_TEMP_ALLIES";
const string ARRAY_TEMP_ARRAY = "ARRAY_TEMP_ARRAY";
const string ARRAY_MELEE_ENEMY = "ARRAY_MELEE_ENEMY";
const string ARRAY_RANGED_ENEMY = "ARRAY_RANGED_ENEMY";
const string ARRAY_SPELL_ENEMY = "ARRAY_SPELL_ENEMY";
const string ARRAY_ENEMY_RANGE = "ARRAY_ENEMY_RANGE";
const string ARRAY_ENEMY_RANGE_SEEN = "ARRAY_ENEMY_RANGE_SEEN";
const string ARRAY_ENEMY_RANGE_HEARD = "ARRAY_ENEMY_RANGE_HEARD";
const string ARRAY_ALLIES_RANGE = "ARRAY_ALLIES_RANGE";
const string ARRAY_ALLIES_RANGE_SEEN = "ARRAY_ALLIES_RANGE_SEEN";
const string ARRAY_ALLIES_RANGE_SEEN_BUFF = "ARRAY_ALLIES_RANGE_SEEN_BUFF";
const string AI_WEAPONSETTING_SETWEAPONS = "AI_WEAPONSETTING_SETWEAPONS";

function

// This reports the AI toggle of oTarget.
// * If the AI is OFF, it is TRUE.
// * Returns Dead + Commandable + AI Off integers
int GetAIOff(object oTarget = OBJECT_SELF);
// Sets the AI to NOT use any scripts (or run through them) EXCEPT death!
void SetAIOff(object oTarget = OBJECT_SELF);
// Resets the AI off integer, so the AI scripts run.
void SetAIOn(object oTarget = OBJECT_SELF);
// This sets a spawn in condition.
// * nCondition - the condition to check for (From the "j_inc_constants" file)
// * sName - The name its stored under
void SetSpawnInCondition(int nCondition, string sName);
// This removes a spawn in condition.
// * nCondition - the condition to check for (From the "j_inc_constants" file)
// * sName - The name its stored under
void DeleteSpawnInCondition(int nCondition, string sName);
// Gets a spawn in condition.
// * nCondition - the condition to check for (From the "j_inc_constants" file)
// * sName - The name its stored under
// * oTarget - The target to look at (Ususally ourselves)
int GetSpawnInCondition(int nCondition, string sName, object oTarget = OBJECT_SELF);
// We can only ever set ONE special action. These are special things, such as
// fleeing (that are a mixture of special things).
// * Use the AI_SPECIAL_ACTIONS_ constants in the constant file.
void SetCurrentAction(int nAction);
// Deletes the special action stored.
// * Use the AI_SPECIAL_ACTIONS_ constants in the constant file.
void ResetCurrentAction();
// Gets the current special action stored.
// * Use the AI_SPECIAL_ACTIONS_ constants in the constant file.
int GetCurrentSetAction();
// Sets a local constant to sName, adding one to set right (so values of 0 become 1).
// * Use GetLocalConstant to return original value set.
// (To stop local's going awary, we set them with pre-fixes.)
void SetAIConstant(string sName, int iConstant);
// Returns a constant set to sName (Takes one away).
// * Therefore, returns -1 on error.
// (To stop local's going awary, we set them with pre-fixes.)
int GetAIConstant(string sName);
// Deletes a constant set to sName.
// (To stop local's going awary, we set them with pre-fixes.)
int DeleteAIConstant(string sName);
// Sets a local AI integers to ourselves.
// (To stop local's going awary, we set them with pre-fixes.)
void SetAIInteger(string sName, int iValue);
// Gets a local AI integers from ourselves.
// (To stop local's going awary, we set them with pre-fixes.)
int GetAIInteger(string sName);
// Gets a local AI integers from ourselves.
// - We can define boundries for what it returns.
// (To stop local's going awary, we set them with pre-fixes.)
// If X is < iBottom or > iTop, return iDefault.
int GetBoundriedAIInteger(string sName, int iDefault = 10, int iTop = 10, int iBottom = 1);
// Deletes a local AI integers from ourselves.
// (To stop local's going awary, we set them with pre-fixes.)
int DeleteAIInteger(string sName);
// Sets a local AI object to ourselves.
// (To stop local's going awary, we set them with pre-fixes.)
void SetAIObject(string sName, object oObject);
// Gets a local AI object from ourselves.
// (To stop local's going awary, we set them with pre-fixes.)
object GetAIObject(string sName);
// Deletes a local AI object from ourselves.
// (To stop local's going awary, we set them with pre-fixes.)
void DeleteAIObject(string sName);
// Sets up a timer.
// * sName - the variable name (Adds a pre-fix).
// * fDuration - the time until it is removed.
void SetLocalTimer(string sName, float fDuration);
// TRUE if the timer set to sName is still running.
int GetLocalTimer(string sName);
// Arrays
// Sets a local INTEGER array on ourselves.
// * sArray - the array name.
// * oObjectArray - The object we will set.
// * iValue - The value to check. It is done HIGHEST to LOWEST.
void SetArrayIntegerValue(string sArray, object oObjectArray, int iValue);
// This will move all integer values from a point back a position
// * sArray - the array name.
// * iNumberStart - The value to start at.
// * iMax - The old-highest (or highest in the order) of the array (EG the 10th of 10)
void MoveArrayIntegerBackOne(string sArray, int iNumberStart, int iMax);
// Sets a local FLOAT array on ourselves.
// * sArray - the array name.
// * oObjectArray - The object we will set.
// * fValue - The value to check. It is done LOWEST (nearest) to HIGHEST (fathest).
void SetArrayFloatValue(string sArray, object oObjectArray, float fValue);
// This will move all float values from a point back a position
// * sArray - the array name.
// * iNumberStart - The value to start at.
// * iMax - The old-highest (or highest in the order) of the array (EG the 10th of 10)
void MoveArrayFloatBackOne(string sArray, int iNumberStart, int iMax);
// Deletes all the things in an array...set to sArray
void DeleteArray(string sArray);
// Set the oTarget to ignorable.
// * The AI ignores, and shouldn't intentioally target, the creature.
void SetIgnore(object oTarget);
// Gets if the oTarget is ignorable.
// * The AI ignores, and shouldn't intentioally target, the creature.
int GetIgnore(object oTarget);
// This gets if the oTarget can be targeted as an enemy.
// * Returns if a DM, is faction Equal, is dead or the ignore variable.
int GetIgnoreNoFriend(object oTarget);
// Fires a User Defined Event.
// * iSpawnValue - The spawn value (like NW_FLAG_PERCIEVE_PRE_EVENT)
// * iNumber - The number to fire (like EVENT_PERCIEVE_PRE_EVENT)
// Returns TRUE if the event fires.
int FireUserEvent(int iSpawnValue, int iNumber);
// This sets to exit the script. Use in the defaultd (On User Defined) file.
// For example: We want to not attack PC's with the item "ROCK" (Tag). We
// therefore use the event EVENT_PERCIEVE_PRE_EVENT to exit if they have that item
// because we go friendly to them.
// * iNumber - The user defined number to exit from.
void SetToExitFromUDE(int iNumber);
// This is used for Pre-events. If we exit from EVENT_PERCIEVE_PRE_EVENT, and
// use SetToExitFromUDE, this returns TRUE (ONCE!)
// * iNumber - The user defined number to exit from.
int ExitFromUDE(int iNumber);
// We check if we are attacking anything
// * Checks Attempted* Targets, Get the AttackTarget of us.
// * Checks GetIsInCombat at the end. If that is TRUE, we should be doing proper rounds anyway.
int GetIsFighting();
// We check if we can perform a combat action currently.
// * Checks our action list. Some things like skills, opening doors and so on
//   we don't want to interrupt before they are done.
// * Also used within DetermineCombatRound
int GetIsBusyWithAction();
// This checks GetIsFighting and GetIsBusyWithAction, returns FALSE if we can
// do a combat round (IE we don't have anything to interrupt and are not already
// in combat!)
// * IE it adds GetIsBusyWithAction with GetIsFighting to give 0, 1 or 2.
// * Checks if we are fleeing too
int CannotPerformCombatRound();
// This will SpeakString a value from sName's array. i1000 uses a d1000 for % chance
void SpeakArrayString(string sName, int i1000 = FALSE);
// This is used in combat (at the end thereof) and when something shouts, and is a placeable.
// * oTarget - The target which may have shouted, or similar. Moves to and closes normally.
// If no oTarget, it still searches
void Search(object oTarget = OBJECT_INVALID);
// Used in Search(). This apply Trueseeing, See invisibility, or Invisiblity purge
// if we have neither of the 3 on us.
void SearchSpells();
// Returns our custom AI file (if any)
// - Blank string if not set
string GetCustomAIFileName();
// Sets our custom AI file
// - Needs a 16 or less character string
// - Should execute actions
// - Can sort actions against a imputted target (EG: On Percieved enemy) by
//   "GetLocalObject(OBJECT_SELF, AI_TEMP_SET_TARGET)"
void SetCustomAIFileName(string sAIFileName);
// This is still used - we just set a local object and execute script.
// Set the script to use by COMBAT_FILE constant
void DetermineCombatRound(object oTarget = OBJECT_INVALID);
// This checks the current special action (fleeing, runner, door smashing)
// - Returns FALSE if none of them are performed
// Use this to make sure that an ActionMoveTo or DCR doesn't fire if we are fleeing.
// - This does not perform any actions.
int GetIsPerformingSpecialAction();
// This will, if we are set that we can, shout the string.
void AISpeakString(string sString);
Last modified:2005/04/19 11:19:12
Keyword(s):[nwn] [ai] [j_inc_constants]
References:[AI_Jass_Customs.erf] [AI_Jass_NonOver.erf] [AI_Jass_Optional.erf] [AI_Jass_Override.erf] [AI_Jass_Spawns.erf]