* parse and verbosely display smartAI for creatures, gameobjects and areatrigger
This commit is contained in:
Sarjuuk
2018-10-07 13:07:40 +02:00
parent 8620cbcf20
commit 484944bfc0
17 changed files with 4287 additions and 135 deletions

View File

@@ -336,6 +336,372 @@ $lang = array(
"Knight-Champion / Centurion", "Lieutenant Commander / Champion", "Commander / Lieutenant General",
"Marshal / General", "Field Marshal / Warlord", "Grand Marshal / High Warlord"
),
'orientation' => ['North', 'Northeast', 'East', 'Southeast', 'South', 'Southwest', 'West', 'Northwest']
),
'unit' => array(
'flags' => array(
UNIT_FLAG_SERVER_CONTROLLED => 'Server controlled',
UNIT_FLAG_NON_ATTACKABLE => 'Not attackable',
UNIT_FLAG_REMOVE_CLIENT_CONTROL => 'Remove client control',
UNIT_FLAG_PVP_ATTACKABLE => 'PvP attackable',
UNIT_FLAG_RENAME => 'Rename',
UNIT_FLAG_PREPARATION => 'Arena preparation',
UNIT_FLAG_UNK_6 => 'UNK-6',
UNIT_FLAG_NOT_ATTACKABLE_1 => 'Not Attackable',
UNIT_FLAG_IMMUNE_TO_PC => 'Immune to players',
UNIT_FLAG_IMMUNE_TO_NPC => 'Immune to creatures',
UNIT_FLAG_LOOTING => 'Loot animation',
UNIT_FLAG_PET_IN_COMBAT => 'Pet in combat',
UNIT_FLAG_PVP => 'PvP',
UNIT_FLAG_SILENCED => 'Silenced',
UNIT_FLAG_CANNOT_SWIM => 'Cannot swim',
UNIT_FLAG_UNK_15 => 'UNK-15 (can only swim)',
UNIT_FLAG_UNK_16 => 'UNK-16 (cannot attack)',
UNIT_FLAG_PACIFIED => 'Pacified',
UNIT_FLAG_STUNNED => 'Stunned',
UNIT_FLAG_IN_COMBAT => 'In combat',
UNIT_FLAG_TAXI_FLIGHT => 'Taxi flight',
UNIT_FLAG_DISARMED => 'Disarmed',
UNIT_FLAG_CONFUSED => 'Confused',
UNIT_FLAG_FLEEING => 'Fleeing',
UNIT_FLAG_PLAYER_CONTROLLED => 'Player controlled',
UNIT_FLAG_NOT_SELECTABLE => 'Not selectable',
UNIT_FLAG_SKINNABLE => 'Skinnable',
UNIT_FLAG_MOUNT => 'Mounted',
UNIT_FLAG_UNK_28 => 'UNK-28',
UNIT_FLAG_UNK_29 => 'UNK-29 (Prevent emotes)',
UNIT_FLAG_SHEATHE => 'Sheathe weapon',
UNIT_FLAG_UNK_31 => 'UNK-31'
),
'flags2' => array(
UNIT_FLAG2_FEIGN_DEATH => 'Feign Death',
UNIT_FLAG2_UNK1 => 'UNK-1 (hide unit model)',
UNIT_FLAG2_IGNORE_REPUTATION => 'Ignore reputation',
UNIT_FLAG2_COMPREHEND_LANG => 'Comprehend language',
UNIT_FLAG2_MIRROR_IMAGE => 'Mirror Image',
UNIT_FLAG2_INSTANTLY_APPEAR_MODEL => 'Instant spawn',
UNIT_FLAG2_FORCE_MOVEMENT => 'Force movement',
UNIT_FLAG2_DISARM_OFFHAND => 'Disarm offhand weapon',
UNIT_FLAG2_DISABLE_PRED_STATS => 'Disable predicted stats',
UNIT_FLAG2_DISARM_RANGED => 'Disarm ranged weapon',
UNIT_FLAG2_REGENERATE_POWER => 'Regenerate power',
UNIT_FLAG2_RESTRICT_PARTY_INTERACTION => 'Restrict party interaction',
UNIT_FLAG2_PREVENT_SPELL_CLICK => 'Prevent spell click',
UNIT_FLAG2_ALLOW_ENEMY_INTERACT => 'Allow enemy interaction',
UNIT_FLAG2_DISABLE_TURN => 'Disable turn',
UNIT_FLAG2_UNK2 => 'UNK-2',
UNIT_FLAG2_PLAY_DEATH_ANIM => 'Play special death animation',
UNIT_FLAG2_ALLOW_CHEAT_SPELLS => 'allow cheat spells'
),
'dynFlags' => array(
UNIT_DYNFLAG_LOOTABLE => 'Lootable',
UNIT_DYNFLAG_TRACK_UNIT => 'Tracked',
UNIT_DYNFLAG_TAPPED => 'Tapped',
UNIT_DYNFLAG_TAPPED_BY_PLAYER => 'Tapped by player',
UNIT_DYNFLAG_SPECIALINFO => 'Special info',
UNIT_DYNFLAG_DEAD => 'Dead',
UNIT_DYNFLAG_REFER_A_FRIEND => 'Refer-a-friend',
UNIT_DYNFLAG_TAPPED_BY_ALL_THREAT_LIST => 'Tapped by all threat list'
),
'bytes1' => array(
/*idx:0*/ ['Standing', 'Sitting on ground', 'Sitting on chair', 'Sleeping', 'Sitting on low chair', 'Sitting on medium chair', 'Sitting on high chair', 'Dead', 'Kneeing', 'Submerged'], // STAND_STATE_*
null,
/*idx:2*/ array(
UNIT_STAND_FLAGS_UNK1 => 'UNK-1',
UNIT_STAND_FLAGS_CREEP => 'Creep',
UNIT_STAND_FLAGS_UNTRACKABLE => 'Untrackable',
UNIT_STAND_FLAGS_UNK4 => 'UNK-4',
UNIT_STAND_FLAGS_UNK5 => 'UNK-5'
),
/*idx:3*/ array(
UNIT_BYTE1_FLAG_ALWAYS_STAND => 'Always standing',
UNIT_BYTE1_FLAG_HOVER => 'Hovering',
UNIT_BYTE1_FLAG_UNK_3 => 'UNK-3'
),
'valueUNK' => '[span class=q10]unhandled value [b class=q1]%d[/b] provided for UnitFieldBytes1 on offset [b class=q1]%d[/b][/span]',
'idxUNK' => '[span class=q10]unused offset [b class=q1]%d[/b] provided for UnitFieldBytes1[/span]'
)
),
'smartAI' => array(
'eventUNK' => '[span class=q10]Unknwon event #[b class=q1]%d[/b] in use.[/span]',
'eventTT' => '[b class=q1]EventType %d[/b][br][table][tr][td]PhaseMask[/td][td=header]0x%04X[/td][/tr][tr][td]Chance[/td][td=header]%d%%%%[/td][/tr][tr][td]Flags[/td][td=header]0x%04X[/td][/tr][tr][td]Param1[/td][td=header]%d[/td][/tr][tr][td]Param2[/td][td=header]%d[/td][/tr][tr][td]Param3[/td][td=header]%d[/td][/tr][tr][td]Param4[/td][td=header]%d[/td][/tr][tr][td]Param5[/td][td=header]%d[/td][/tr][/table]',
'events' => array(
SAI_EVENT_UPDATE_IC => ['(%7$d)?:When in combat, ;(%6$s)?After %6$s:Instantly;', 'Repeat every %s'],
SAI_EVENT_UPDATE_OOC => ['(%7$d)?:When out of combat, ;(%6$s)?After %6$s:Instantly;', 'Repeat every %s'],
SAI_EVENT_HEALT_PCT => ['At %6$s%% Health', 'Repeat every %s'],
SAI_EVENT_MANA_PCT => ['At %6$s%% Mana', 'Repeat every %s'],
SAI_EVENT_AGGRO => ['On Aggro', null],
SAI_EVENT_KILL => ['On killing (%3$d)?player:;(%4$d)?[npc=%4$d]:any creature;', 'Cooldown: %s'],
SAI_EVENT_DEATH => ['On death', null],
SAI_EVENT_EVADE => ['When evading', null],
SAI_EVENT_SPELLHIT => ['When hit by (%6$s)?%6$s :;(%1$d)?[spell=%1$d]:Spell;', 'Cooldown: %s'],
SAI_EVENT_RANGE => ['On target at %6$sm', 'Repeat every %s'],
/* 10*/ SAI_EVENT_OOC_LOS => ['While out of combat, (%1$d)?friendly:hostile; (%5$d)?player:unit; enters line of sight within %2$dm', 'Cooldown: %s'],
SAI_EVENT_RESPAWN => ['On respawn', null],
SAI_EVENT_TARGET_HEALTH_PCT => ['On target at %6$s%% health', 'Repeat every %s'],
SAI_EVENT_VICTIM_CASTING => ['Current target is casting (%3$d)?[spell=%3$d]:any spell;', 'Repeat every %s'],
SAI_EVENT_FRIENDLY_HEALTH => ['Friendly NPC within %2$dm is at %1$d health', 'Repeat every %s'],
SAI_EVENT_FRIENDLY_IS_CC => ['Friendly NPC within %1$dm is crowd controlled', 'Repeat every %s'],
SAI_EVENT_FRIENDLY_MISSING_BUFF => ['Friendly NPC within %2$dm is missing [spell=%1$d]', 'Repeat every %s'],
SAI_EVENT_SUMMONED_UNIT => ['Just summoned (%1$d)?[npc=%1$d]:any creature;', 'Cooldown: %s'],
SAI_EVENT_TARGET_MANA_PCT => ['On target at %6$s%% mana', 'Repeat every %s'],
SAI_EVENT_ACCEPTED_QUEST => ['Giving (%1$d)?[quest=%1$d]:any quest;', null],
/* 20*/ SAI_EVENT_REWARD_QUEST => ['Rewarding (%1$d)?[quest=%1$d]:any quest;', null],
SAI_EVENT_REACHED_HOME => ['Arriving at home coordinates', null],
SAI_EVENT_RECEIVE_EMOTE => ['Being targeted with [emote=%1$d]', 'Cooldown: %s'],
SAI_EVENT_HAS_AURA => ['(%2$d)?Having %2$d stacks of:Missing aura; [spell=%1$d]', 'Repeat every %s'],
SAI_EVENT_TARGET_BUFFED => ['#target# has (%2$d)?%2$d stacks of:aura; [spell=%1$d]', 'Repeat every %s'],
SAI_EVENT_RESET => ['On reset', null],
SAI_EVENT_IC_LOS => ['While in combat, (%1$d)?friendly:hostile; (%5$d)?player:unit; enters line of sight within %2$dm', 'Cooldown: %s'],
SAI_EVENT_PASSENGER_BOARDED => ['A passenger has boarded', 'Cooldown: %s'],
SAI_EVENT_PASSENGER_REMOVED => ['A passenger got off', 'Cooldown: %s'],
SAI_EVENT_CHARMED => ['(%1$d)?On being charmed:On charm wearing off;', null],
/* 30*/ SAI_EVENT_CHARMED_TARGET => ['When charming #target#', null],
SAI_EVENT_SPELLHIT_TARGET => ['When #target# gets hit by (%6$s)?%6$s :;(%1$d)?[spell=%1$d]:Spell;', 'Cooldown: %s'],
SAI_EVENT_DAMAGED => ['After taking %6$s points of damage', 'Repeat every %s'],
SAI_EVENT_DAMAGED_TARGET => ['After #target# took %6$s points of damage', 'Repeat every %s'],
SAI_EVENT_MOVEMENTINFORM => ['Started moving to point #[b]%2$d[/b](%1$d)? using MotionType #[b]%1$d[/b]:;', null],
SAI_EVENT_SUMMON_DESPAWNED => ['Summoned [npc=%1$d] despawned', 'Cooldown: %s'],
SAI_EVENT_CORPSE_REMOVED => ['On corpse despawn', null],
SAI_EVENT_AI_INIT => ['AI initialized', null],
SAI_EVENT_DATA_SET => ['Data field #[b]%1$d[/b] is set to [b]%2$d[/b]', 'Cooldown: %s'],
SAI_EVENT_WAYPOINT_START => ['Start pathing on (%1$d)?waypoint #[b]%1$d[/b]:any waypoint;(%2$d)? on path #[b]%2$d[/b]:;', null],
/* 40*/ SAI_EVENT_WAYPOINT_REACHED => ['Reaching (%1$d)?waypoint #[b]%1$d[/b]:any waypoint;(%2$d)? on path #[b]%2$d[/b]:;', null],
null,
null,
null,
null,
null,
SAI_EVENT_AREATRIGGER_ONTRIGGER => ['On activation', null],
null,
null,
null,
/* 50*/ null,
null,
SAI_EVENT_TEXT_OVER => ['(%2$d)?[npc=%2$d]:any creature; is done talking TextGroup #[b]%1$d[/b]', null],
SAI_EVENT_RECEIVE_HEAL => ['Received %6$s points of healing', 'Cooldown: %s'],
SAI_EVENT_JUST_SUMMONED => ['On being summoned', null],
SAI_EVENT_WAYPOINT_PAUSED => ['Pausing path on (%1$d)?waypoint #[b]%1$d[/b]:any waypoint;(%2$d)? on path #[b]%2$d[/b]:;', null],
SAI_EVENT_WAYPOINT_RESUMED => ['Resuming path on (%1$d)?waypoint #[b]%1$d[/b]:any waypoint;(%2$d)? on path #[b]%2$d[/b]:;', null],
SAI_EVENT_WAYPOINT_STOPPED => ['Stopping path on (%1$d)?waypoint #[b]%1$d[/b]:any waypoint;(%2$d)? on path #[b]%2$d[/b]:;', null],
SAI_EVENT_WAYPOINT_ENDED => ['Ending current path on (%1$d)?waypoint #[b]%1$d[/b]:any waypoint;(%2$d)? on path #[b]%2$d[/b]:;', null],
SAI_EVENT_TIMED_EVENT_TRIGGERED => ['Timed event #[b]%1$d[/b] is triggered', null],
/* 60*/ SAI_EVENT_UPDATE => ['(%6$s)?After %6$s:Instantly;', 'Repeat every %s'],
SAI_EVENT_LINK => ['After Event %6$s', null],
SAI_EVENT_GOSSIP_SELECT => ['Selecting Gossip Option:[br](%6$s)?[span class=q1]%6$s[/span]:Menu #[b]%1$d[/b] - Option #[b]%2$d[/b];', null],
SAI_EVENT_JUST_CREATED => ['On being spawned for the first time', null],
SAI_EVENT_GOSSIP_HELLO => ['Opening Gossip', null],
SAI_EVENT_FOLLOW_COMPLETED => ['Finished following', null],
SAI_EVENT_EVENT_PHASE_CHANGE => ['Event Phase changed and matches %6$s', null],
SAI_EVENT_IS_BEHIND_TARGET => ['Facing the backside of #target#', 'Cooldown: %s'],
SAI_EVENT_GAME_EVENT_START => ['[event=%1$d] started', null],
SAI_EVENT_GAME_EVENT_END => ['[event=%1$d] ended', null],
/* 70*/ SAI_EVENT_GO_STATE_CHANGED => ['State has changed', null],
SAI_EVENT_GO_EVENT_INFORM => ['Taxi path event #[b]%1$d[/b] trigered', null],
SAI_EVENT_ACTION_DONE => ['Executed action #[b]%1$d[/b] requested by script', null],
SAI_EVENT_ON_SPELLCLICK => ['Spellclick triggered', null],
SAI_EVENT_FRIENDLY_HEALTH_PCT => ['Health of #target# is at %6$s%%', 'Repeat every %s'],
SAI_EVENT_DISTANCE_CREATURE => ['[npc=%6$d](%1$d)? with GUID #%1$d:; enters range at or below %2$dm', 'Repeat every %s'],
SAI_EVENT_DISTANCE_GAMEOBJECT => ['[object=%6$d](%1$d)? with GUID #%1$d:; enters range at or below %2$dm', 'Repeat every %s'],
SAI_EVENT_COUNTER_SET => ['Counter #[b]%1$d[/b] is equal to [b]%2$d[/b]', null],
),
'eventFlags' => array(
SAI_EVENT_FLAG_NO_REPEAT => 'No Repeat',
SAI_EVENT_FLAG_DIFFICULTY_0 => 'Normal Dungeon',
SAI_EVENT_FLAG_DIFFICULTY_1 => 'Heroic Dungeon',
SAI_EVENT_FLAG_DIFFICULTY_2 => 'Normal Raid',
SAI_EVENT_FLAG_DIFFICULTY_3 => 'Heroic Raid',
SAI_EVENT_FLAG_NO_RESET => 'No Reset',
SAI_EVENT_FLAG_WHILE_CHARMED => 'While Charmed'
),
'actionUNK' => '[span class=q10]Unknown action #[b class=q1]%d[/b] in use.[/span]',
'actionTT' => '[b class=q1]ActionType %d[/b][br][table][tr][td]Param1[/td][td=header]%d[/td][/tr][tr][td]Param2[/td][td=header]%d[/td][/tr][tr][td]Param3[/td][td=header]%d[/td][/tr][tr][td]Param4[/td][td=header]%d[/td][/tr][tr][td]Param5[/td][td=header]%d[/td][/tr][tr][td]Param6[/td][td=header]%d[/td][/tr][/table]',
'actions' => array( // [body, footer]
null,
SAI_ACTION_TALK => ['(%3$d)?Say:#target# says; (%7$d)?TextGroup:[span class=q10]unknown text[/span]; #[b]%1$d[/b] to #target#%8$s', 'Duration: %s'],
SAI_ACTION_SET_FACTION => ['(%1$d)?Set faction of #target# to [faction=%7$d]:Reset faction of #target#;.', null],
SAI_ACTION_MORPH_TO_ENTRY_OR_MODEL => ['(%7$d)?Reset apperance.:Take the appearance of;(%1$d)?[npc=%1$d].:;(%2$d)?[model npc=%2$d border=1 float=right][/model]:;', null],
SAI_ACTION_SOUND => ['Play sound(%2$d)? to invoking player:;:[div float=right width=270px][sound=%1$d][/div]', 'Played by environment.'],
SAI_ACTION_PLAY_EMOTE => ['Emote [emote=%1$d] to #target#.', null],
SAI_ACTION_FAIL_QUEST => ['Fail [quest=%1$d] for #target#.', null],
SAI_ACTION_OFFER_QUEST => ['(%2$d)?Add [quest=%1$d] to #target#\'s log:Offer [quest=%1$d] to #target#;.', null],
SAI_ACTION_SET_REACT_STATE => ['#target# becomes %7$s.', null],
SAI_ACTION_ACTIVATE_GOBJECT => ['#target# becomes activated.', null],
/* 10*/ SAI_ACTION_RANDOM_EMOTE => ['Emote %7$s to #target#.', null],
SAI_ACTION_CAST => ['Cast [spell=%1$d] at #target#.', null],
SAI_ACTION_SUMMON_CREATURE => ['Summon [npc=%1$d](%3$d)? for %7$d:;(%4$d)?, attacking invoker:;.', null],
SAI_ACTION_THREAT_SINGLE_PCT => ['Modify #target#\'s threat by %7$d%%.', null],
SAI_ACTION_THREAT_ALL_PCT => ['Modify the threat of all targets by %7$d%%.', null],
SAI_ACTION_CALL_AREAEXPLOREDOREVENTHAPPENS => ['Exploration event of [quest=%1$d] is completed for #target#.', null],
SAI_ACTION_SET_EMOTE_STATE => ['Continuously emote [emote=%1$d] to #target#.', null],
SAI_ACTION_SET_UNIT_FLAG => ['Set (%2$d)?UnitFlags2:UnitFlags; %7$s.', null],
SAI_ACTION_REMOVE_UNIT_FLAG => ['Unset (%2$d)?UnitFlags2:UnitFlags; %7$s.', null],
/* 20*/ SAI_ACTION_AUTO_ATTACK => ['(%1$d)?Start:Stop; auto attacking #target#.', null],
SAI_ACTION_ALLOW_COMBAT_MOVEMENT => ['(%1$d)?Enable:Disable; combat movement.', null],
SAI_ACTION_SET_EVENT_PHASE => ['Set Event Phase of #target# to [b]%1$d[/b].', null],
SAI_ACTION_INC_EVENT_PHASE => ['(%1$d)?Increment:Decrement; Event Phase of #target#.', null],
SAI_ACTION_EVADE => ['#target# enters Evade Mode.', null],
SAI_ACTION_FLEE_FOR_ASSIST => ['Flee for assistance.', 'Use default flee emote'],
SAI_ACTION_CALL_GROUPEVENTHAPPENS => ['Satisfy objective of [quest=%1$d] for #target#.', null],
SAI_ACTION_COMBAT_STOP => ['End current combat.', null],
SAI_ACTION_REMOVEAURASFROMSPELL => ['Remove (%1$d)?all auras:auras of [spell=%1$d]; from #target#.', null],
SAI_ACTION_FOLLOW => ['Follow #target#(%1$d)? at %1$dm distance:;(%3$d)? until reaching [npc=%3$d]:;.', '(%7$d)?Angle: %7$.2f°:;(%8$d)? Some form of Quest Credit is given:;'],
/* 30*/ SAI_ACTION_RANDOM_PHASE => ['Pick random Event Phase from %7$s.', null],
SAI_ACTION_RANDOM_PHASE_RANGE => ['Pick random Event Phase between %1$d and %2$d.', null],
SAI_ACTION_RESET_GOBJECT => ['Reset #target#.', null],
SAI_ACTION_CALL_KILLEDMONSTER => ['A kill of [npc=%1$d] is credited to #target#.', null],
SAI_ACTION_SET_INST_DATA => ['Set Instance (%3$d)?Boss State:Data Field; #[b]]%1$d[/b] to [b]%2$d[/b].', null],
null,
SAI_ACTION_UPDATE_TEMPLATE => ['Transform to become [npc=%1$d](%2$d)? with level [b]%2$d[/b]:;.', null],
SAI_ACTION_DIE => ['Die...   painfully.', null],
SAI_ACTION_SET_IN_COMBAT_WITH_ZONE => ['Set in combat with units in zone.', null],
SAI_ACTION_CALL_FOR_HELP => ['Call for help.', 'Use default help emote'],
/* 40*/ SAI_ACTION_SET_SHEATH => ['Sheath %7$s weapons.', null],
SAI_ACTION_FORCE_DESPAWN => ['Despawn #target#(%1$d)? after %7$s:;(%2$d)? and then respawn after %8$s:;.', null],
SAI_ACTION_SET_INVINCIBILITY_HP_LEVEL => ['Become invincable below (%2$d)?%2$d%%:%1$d; HP.', null],
SAI_ACTION_MOUNT_TO_ENTRY_OR_MODEL => ['(%7$d)?Dismount.:Mount ;(%1$d)?[npc=%1$d].:;(%2$d)?[model npc=%2$d border=1 float=right][/model]:;', null],
SAI_ACTION_SET_INGAME_PHASE_MASK => ['Set visibility of #target# to phase %7$s.', null],
SAI_ACTION_SET_DATA => ['[b]%2$d[/b] is stored in data field #[b]%1$d[/b] of #target#.', null],
null,
SAI_ACTION_SET_VISIBILITY => ['#target# becomes (%1$d)?visible:invisible;.', null],
SAI_ACTION_SET_ACTIVE => ['#target# becomes Grid (%1$d)?active:inactive;.', null],
SAI_ACTION_ATTACK_START => ['Start attacking #target#.', null],
/* 50*/ SAI_ACTION_SUMMON_GO => ['Summon [object=%1$d](%2$d)? for ?%7$d:; at #target#.', 'Despawn linked to summoner'],
SAI_ACTION_KILL_UNIT => ['#target# dies!', null],
SAI_ACTION_ACTIVATE_TAXI => ['Fly from [span class=q1]%7$s[/span] to [span class=q1]%8$s[/span]', null],
SAI_ACTION_WP_START => ['(%1$d)?Walk:Run; on waypoint path #[b]%2$d[/b].(%4$d)? Is linked to [quest=%4$d].:; React %8$s while following the path.(%5$d)? Despawn after %7$s.:;', 'Repeatable'],
SAI_ACTION_WP_PAUSE => ['Pause waypoint path for %7$d.', null],
SAI_ACTION_WP_STOP => ['End waypoint path(%1$d)? and despawn after %7$s:;.(%8$d)? [quest=%2$d] fails.:;(%9$d)? [quest=%2$d] is completed.:;', null],
SAI_ACTION_ADD_ITEM => ['Give %2$d [item=%1$d] to #target#.', null],
SAI_ACTION_REMOVE_ITEM => ['Remove %2$d [item=%1$d] from #target#.', null],
SAI_ACTION_INSTALL_AI_TEMPLATE => ['Behave as a %7$s.', null],
SAI_ACTION_SET_RUN => ['(%1$d)?Enable:Disable; run speed.', null],
/* 60*/ SAI_ACTION_SET_DISABLE_GRAVITY => ['(%1$d)?Defy:Respect; gravity!', null],
SAI_ACTION_SET_SWIM => ['(%1$d)?Enable:Disable; swimming.', null],
SAI_ACTION_TELEPORT => ['#target# is teleported to [zone=%7$d].', null],
SAI_ACTION_SET_COUNTER => ['(%3$d)?Reset:Increase; Counter #[b]%1$d[/b] of #target#(%3$d)?: by [b]%2$d[/b];.', null],
SAI_ACTION_STORE_TARGET_LIST => ['Store #target# as target in #[b]%1$d[/b].', null],
SAI_ACTION_WP_RESUME => ['Continue on waypoint path.', null],
SAI_ACTION_SET_ORIENTATION => ['Set orientation to (%7$s)?face %7$s:Home Position;.', null],
SAI_ACTION_CREATE_TIMED_EVENT => ['(%8$d)?%6$d%% chance to:; Trigger timed event #[b]%1$d[/b](%7$s)? after %7$s:;.', 'Repeat every %s'],
SAI_ACTION_PLAYMOVIE => ['Play Movie #[b]%1$d[/b] to #target#.', null],
SAI_ACTION_MOVE_TO_POS => ['Move (%4$d)?within %4$dm of:to; Point #[b]%1$d[/b] at #target#(%2$d)? on a transport:;.', 'pathfinding disabled'],
/* 70*/ SAI_ACTION_ENABLE_TEMP_GOBJ => ['#target# is respawned for %7$s.', null],
SAI_ACTION_EQUIP => ['(%8$d)?Unequip non-standard items:Equip %7$s;(%1$d)? from equipment template #[b]%1$d[/b]:; on #target#.', 'Note: creature items do not nessecarily have an item template'],
SAI_ACTION_CLOSE_GOSSIP => ['Close Gossip Window.', null],
SAI_ACTION_TRIGGER_TIMED_EVENT => ['Trigger previously defined timed event #[b]%1$d[/b].', null],
SAI_ACTION_REMOVE_TIMED_EVENT => ['Delete previously defined timed event #[b]%1$d[/b].', null],
SAI_ACTION_ADD_AURA => ['Apply aura from [spell=%1$d] on #target#.', null],
SAI_ACTION_OVERRIDE_SCRIPT_BASE_OBJECT => ['Set #target# as base for further SmartAI-Events.', null],
SAI_ACTION_RESET_SCRIPT_BASE_OBJECT => ['Reset base for SmartAI-Events.', null],
SAI_ACTION_CALL_SCRIPT_RESET => ['Reset current SmartAI.', null],
SAI_ACTION_SET_RANGED_MOVEMENT => ['Set ranged attack distance to [b]%1$d[/b]m(%2$d)?, at %2$d°:;.', null],
/* 80*/ SAI_ACTION_CALL_TIMED_ACTIONLIST => ['Call [html]<a href=#sai-actionlist-%1$d onclick=\\"\$(\\\'#dsf67g4d-sai\\\').find(\\\'[href=\\\\\'#sai-actionlist-%1$d\\\\\']\\\').click()\\">Timed Actionlist #%1$d</a>[/html]. Updates %7$s.', null],
SAI_ACTION_SET_NPC_FLAG => ['Set #target#\'s npc flags to %7$s.', null],
SAI_ACTION_ADD_NPC_FLAG => ['Add %7$s npc flags to #target#.', null],
SAI_ACTION_REMOVE_NPC_FLAG => ['Remove %7$s npc flags from #target#.', null],
SAI_ACTION_SIMPLE_TALK => ['#target# says (%7$s)?TextGroup:[span class=q10]unknown text[/span]; #[b]%1$d[/b] to #target#%7$s', null],
SAI_ACTION_INVOKER_CAST => ['Invoker casts [spell=%1$d] at #target#.', null],
SAI_ACTION_CROSS_CAST => ['%7$s casts [spell=%1$d] at #target#.', null],
SAI_ACTION_CALL_RANDOM_TIMED_ACTIONLIST => ['Call Timed Actionlist at random: [html]%7$s[/html]', null],
SAI_ACTION_CALL_RANDOM_RANGE_TIMED_ACTIONLIST => ['Call Timed Actionlist at random from range: [html]%7$s[/html]', null],
SAI_ACTION_RANDOM_MOVE => ['Move #target# to a random point within %1$dm.', null],
/* 90*/ SAI_ACTION_SET_UNIT_FIELD_BYTES_1 => ['Set UnitFieldBytes1 %7$s for #target#.', null],
SAI_ACTION_REMOVE_UNIT_FIELD_BYTES_1 => ['Unset UnitFieldBytes1 %7$s for #target#.', null],
SAI_ACTION_INTERRUPT_SPELL => ['Interrupt (%2$d)?cast of [spell=%2$d]:current spell cast;.', '(%1$d)?Instantly:Delayed;'],
SAI_ACTION_SEND_GO_CUSTOM_ANIM => ['Set animation progress to [b]%1$d[/b].', null],
SAI_ACTION_SET_DYNAMIC_FLAG => ['Set Dynamic Flag to %7$s on #target#.', null],
SAI_ACTION_ADD_DYNAMIC_FLAG => ['Add Dynamic Flag %7$s to #target#.', null],
SAI_ACTION_REMOVE_DYNAMIC_FLAG => ['Remove Dynamic Flag %7$s from #target#.', null],
SAI_ACTION_JUMP_TO_POS => ['Jump to fixed position — [b]X: %7$.2f, Y: %8$.2f, Z: %9$.2f, [i]v[/i][sub]xy[/sub]: %1$.2f [i]v[/i][sub]z[/sub]: %2$.2f[/b]', null],
SAI_ACTION_SEND_GOSSIP_MENU => ['Display Gossip entry #[b]%1$d[/b] / TextID #[b]%2$d[/b].', null],
SAI_ACTION_GO_SET_LOOT_STATE => ['Set loot state of #target# to %7$s.', null],
/*100*/ SAI_ACTION_SEND_TARGET_TO_TARGET => ['Send targets stored in #[b]%1$d[/b] to #target#.', null],
SAI_ACTION_SET_HOME_POS => ['Set Home Position to (%10$d)?current position.:fixed position — [b]X: %7$.2f, Y: %8$.2f, Z: %9$.2f[/b];', null],
SAI_ACTION_SET_HEALTH_REGEN => ['(%1$d)?Allow:Prevent; health regeneration for #target#.', null],
SAI_ACTION_SET_ROOT => ['(%1$d)?Prevent:Allow; movement for #target#.', null],
SAI_ACTION_SET_GO_FLAG => ['Set GameObject Flag to %7$s on #target#.', null],
SAI_ACTION_ADD_GO_FLAG => ['Add GameObject Flag %7$s to #target#.', null],
SAI_ACTION_REMOVE_GO_FLAG => ['Remove GameObject Flag %7$s from #target#.', null],
SAI_ACTION_SUMMON_CREATURE_GROUP => ['Summon Creature Group #[b]%1$d[/b](%2$d)?, attacking invoker:;.[br](%7$s)?[span class=breadcrumb-arrow]&nbsp;[/span]%7$s:[span class=q0]<empty group>[/span];', null],
SAI_ACTION_SET_POWER => ['%7$s is set to [b]%2$d[/b] for #target#.', null],
SAI_ACTION_ADD_POWER => ['Add [b]%2$d[/b] %7$s to #target#.', null],
/*110*/ SAI_ACTION_REMOVE_POWER => ['Remove [b]%2$d[/b] %7$s from #target#.', null],
SAI_ACTION_GAME_EVENT_STOP => ['Stop [event=%1$d].', null],
SAI_ACTION_GAME_EVENT_START => ['Start [event=%1$d].', null],
SAI_ACTION_START_CLOSEST_WAYPOINT => ['#target# starts moving along a defined waypoint path. Enter path on the closest of these nodes: %7$s.', null],
SAI_ACTION_MOVE_OFFSET => ['Move to relative position — [b]X: %7$.2f, Y: %8$.2f, Z: %9$.2f[/b]', null],
SAI_ACTION_RANDOM_SOUND => ['Play a random sound(%5$d)? to invoking player:;:[div float=right width=270px]%7$s[/div]', 'Played by environment.'],
SAI_ACTION_SET_CORPSE_DELAY => ['Set corpse despawn delay for #target# to %7$s.', null],
SAI_ACTION_DISABLE_EVADE => ['(%1$d)?Prevent:Allow; entering Evade Mode.', null],
SAI_ACTION_GO_SET_GO_STATE => ['Set gameobject state to %7$s.'. null],
SAI_ACTION_SET_CAN_FLY => ['(%1$d)?Enable:Disable; flight.', null],
/*120*/ SAI_ACTION_REMOVE_AURAS_BY_TYPE => ['Remove all Auras with [b]%7$s[/b] from #target#.', null],
SAI_ACTION_SET_SIGHT_DIST => ['Set sight range to %1$dm for #target#.', null],
SAI_ACTION_FLEE => ['#target# flees for assistance for %7$s.', null],
SAI_ACTION_ADD_THREAT => ['Modify threat level of #target# by %7$d points.', null],
SAI_ACTION_LOAD_EQUIPMENT => ['(%2$d)?Unequip non-standard items:Equip %7$s; from equipment template #[b]%1$d[/b] on #target#.', 'Note: creature items do not nessecarily have an item template'],
SAI_ACTION_TRIGGER_RANDOM_TIMED_EVENT => ['Trigger previously defined timed event in id range %7$s.', null],
SAI_ACTION_REMOVE_ALL_GAMEOBJECTS => ['Remove all gameobjects owned by #target#.', null],
SAI_ACTION_STOP_MOTION => ['(%1$d)?Remove motion type #[b]%1$d[/b] from #target#. :;(%2$d)?Stop moving.:;', null],
),
'targetUNK' => '[span class=q10]unknown target #[b class=q1]%d[/b][/span]',
'targetTT' => '[b class=q1]TargetType %d[/b][br][table][tr][td]Param1[/td][td=header]%d[/td][/tr][tr][td]Param2[/td][td=header]%d[/td][/tr][tr][td]Param3[/td][td=header]%d[/td][/tr][tr][td]X[/td][td=header]%.2f[/td][/tr][tr][td]Y[/td][td=header]%.2f[/td][/tr][tr][td]Z[/td][td=header]%.2f[/td][/tr][tr][td]O[/td][td=header]%.2f[/td][/tr][/table]',
'targets' => array(
null,
SAI_TARGET_SELF => 'self',
SAI_TARGET_VICTIM => 'current target',
SAI_TARGET_HOSTILE_SECOND_AGGRO => '2nd in threat list',
SAI_TARGET_HOSTILE_LAST_AGGRO => 'last in threat list',
SAI_TARGET_HOSTILE_RANDOM => 'random target',
SAI_TARGET_HOSTILE_RANDOM_NOT_TOP => 'random non-tank target',
SAI_TARGET_ACTION_INVOKER => 'Invoker',
SAI_TARGET_POSITION => 'world coordinates',
SAI_TARGET_CREATURE_RANGE => '(%1$d)?random instance of [npc=%1$d]:arbitrary creature; within %4$sm',
/*10*/ SAI_TARGET_CREATURE_GUID => '(%4$d)?[npc=%4$d]:NPC; with GUID #%1$d',
SAI_TARGET_CREATURE_DISTANCE => '(%1$d)?random instance of [npc=%1$d]:arbitrary creature; within %4$sm',
SAI_TARGET_STORED => 'previously stored targets',
SAI_TARGET_GAMEOBJECT_RANGE => '(%1$d)?random instance of [object=%1$d]:arbitrary object; within %4$sm',
SAI_TARGET_GAMEOBJECT_GUID => '(%4$d)?[object=%4$d]:gameobject; with GUID #%1$d',
SAI_TARGET_GAMEOBJECT_DISTANCE => '(%1$d)?random instance of [object=%1$d]:arbitrary object; within %4$sm',
SAI_TARGET_INVOKER_PARTY => 'Invokers party',
SAI_TARGET_PLAYER_RANGE => 'random player within %4$sm',
SAI_TARGET_PLAYER_DISTANCE => 'random player within %4$sm',
SAI_TARGET_CLOSEST_CREATURE => 'closest (%3$d)?dead:alive; (%1$d)?[npc=%1$d]:arbitrary creature; within %4$sm',
/*20*/ SAI_TARGET_CLOSEST_GAMEOBJECT => 'closest (%1$d)?[object=%1$d]:arbitrary gameobject; within %4$sm',
SAI_TARGET_CLOSEST_PLAYER => 'closest player within %1$dm',
SAI_TARGET_ACTION_INVOKER_VEHICLE => 'Invokers vehicle',
SAI_TARGET_OWNER_OR_SUMMONER => 'Invokers owner or summoner',
SAI_TARGET_THREAT_LIST => 'all units engaged in combat with self',
SAI_TARGET_CLOSEST_ENEMY => 'closest attackable (%2$d)?player:enemy; within %1$dm',
SAI_TARGET_CLOSEST_FRIENDLY => 'closest friendly (%2$d)?player:creature; within %1$dm',
SAI_TARGET_LOOT_RECIPIENTS => 'all players eligible for loot',
SAI_TARGET_FARTHEST => 'furthest engaged (%2$d)?player:creature; within %1$dm(%3$d)? and line of sight:;',
SAI_TARGET_VEHICLE_ACCESSORY => 'accessory in Invokers vehicle in seat %1$d'
),
'castFlags' => array(
SAI_CAST_FLAG_INTERRUPT_PREV => 'Interrupt current cast',
SAI_CAST_FLAG_TRIGGERED => 'Triggered',
SAI_CAST_FLAG_AURA_MISSING => 'Aura missing',
SAI_CAST_FLAG_COMBAT_MOVE => 'Combat movement'
),
'GOStates' => ['active', 'ready', 'active alternative'],
'summonTypes' => [null, 'Despawn timed or when corpse disappears', 'Despawn timed or when dying', 'Despawn timed', 'Despawn timed out of combat', 'Despawn when dying', 'Despawn timed after death', 'Despawn when corpse disappears', 'Despawn manually'],
'aiTpl' => ['basic AI', 'spell caster', 'turret', 'passive creature', 'cage for creature', 'caged creature'],
'reactStates' => ['passive', 'defensive', 'aggressive', 'assisting'],
'sheaths' => ['all', 'melee', 'ranged'],
'saiUpdate' => ['out of combat', 'in combat', 'always'],
'lootStates' => ['Not ready', 'Ready', 'Activated', 'Just Deactivated'],
'GOStateUNK' => '[span class=q10]unknown gameobject state #[b class=q1]%d[/b][/span]',
'summonTypeUNK' => '[span class=q10]unknown SummonType #[b class=q1]%d[/b][/span]',
'aiTplUNK' => '[span class=q10]unknown AI-Template #[b class=q1]%d[/b][/span]',
'reactStateUNK' => '[span class=q10]unknown ReactState #[b class=q1]%d[/b][/span]',
'sheathUNK' => '[span class=q10]unknown sheath #[b class=q1]%d[/b][/span]',
'saiUpdateUNK' => '[span class=q10]unknown update condition #[b class=q1]%d[/b][/span]',
'lootStateUNK' => '[span class=q10]unknown loot state #[b class=q1]%d[/b][/span]',
'empty' => '[span class=q0]<empty>[/span]'
),
'account' => array(
'title' => "Aowow Account",
@@ -461,7 +827,17 @@ $lang = array(
'triggeredBy' => "Triggered by",
'capturePoint' => "Capture Point",
'foundIn' => "This object can be found in",
'restock' => "Restocks every %s."
'restock' => "Restocks every %s.",
'goFlags' => array(
GO_FLAG_IN_USE => 'In use',
GO_FLAG_LOCKED => 'Locked',
GO_FLAG_INTERACT_COND => 'Cannot interact',
GO_FLAG_TRANSPORT => 'Transport',
GO_FLAG_NOT_SELECTABLE => 'Not selectable',
GO_FLAG_TRIGGERED => 'Triggered',
GO_FLAG_DAMAGED => 'Siege damaged',
GO_FLAG_DESTROYED => 'Siege destroyed'
)
),
'npc' => array(
'notFound' => "This NPC doesn't exist.",
@@ -499,6 +875,32 @@ $lang = array(
"Uncategorized", "Beasts", "Dragonkins", "Demons", "Elementals", "Giants", "Undead", "Humanoids",
"Critters", "Mechanicals", "Not specified", "Totems", "Non-combat Pets", "Gas Clouds"
),
'npcFlags' => array(
NPC_FLAG_GOSSIP => 'Gossip',
NPC_FLAG_QUEST_GIVER => 'Quest Giver',
NPC_FLAG_TRAINER => 'Trainer',
NPC_FLAG_CLASS_TRAINER => 'Class Trainer',
NPC_PROFESSION_TRAINER => 'Profession Trainer',
NPC_FLAG_VENDOR => 'Vendor',
NPC_FLAG_VENDOR_AMMO => 'Ammo Vendor',
NPC_FLAG_VENDOR_FOOD => 'Food Vendor',
NPC_FLAG_VENDOR_POISON => 'Poison Vendor',
NPC_FLAG_VENDOR_REAGENT => 'Reagent Vendor',
NPC_FLAG_REPAIRER => 'Repair',
NPC_FLAG_FLIGHT_MASTER => 'Flight Master',
NPC_FLAG_SPIRIT_HEALER => 'Spirit Healer',
NPC_FLAG_SPIRIT_GUIDE => 'Spirit Guide',
NPC_FLAG_INNKEEPER => 'Innkeeper',
NPC_FLAG_BANKER => 'Banker',
NPC_FLAG_PETITIONER => 'Petitioner',
NPC_FLAG_GUILD_MASTER => 'Guild Master',
NPC_FLAG_BATTLEMASTER => 'Battle Master',
NPC_FLAG_AUCTIONEER => 'Auctioneer',
NPC_FLAG_STABLE_MASTER => 'Stable Master',
NPC_FLAG_GUILD_BANK => 'Guild Bank',
NPC_FLAG_SPELLCLICK => 'Spellclick',
NPC_FLAG_MAILBOX => 'Mailbox'
)
),
'event' => array(
'notFound' => "This world event doesn't exist.",