mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-02 15:53:51 +00:00
feat(animation): 452 named constants, 30-phase character animation state machine
Add animation_ids.hpp/cpp with all 452 WoW animation ID constants (anim::STAND, anim::RUN, anim::FIRE_BOW, ... anim::FLY_BACKWARDS, etc.), nameFromId() O(1) lookup, and flyVariant() compact 218-element ground→FLY_* resolver. Expand AnimationController into a full state machine with 20+ named states: spell cast (directed→omni→cast fallback chain, instant one-shot release), hit reactions (WOUND/CRIT/DODGE/BLOCK/SHIELD_BLOCK), stun, wounded idle, stealth animation substitution, loot, fishing channel, sit/sleep/kneel down→loop→up transitions, sheathe/unsheathe combat enter/exit, ranged weapons (BOW/GUN/CROSSBOW/THROWN with reload states), game object OPEN/CLOSE/DESTROY, vehicle enter/exit, mount flight directionals (FLY_LEFT/RIGHT/UP/DOWN/BACKWARDS), emote state variants, off-hand/pierce/dual-wield alternation, NPC birth/spawn/drown/rise, sprint aura override, totem idle, NPC greeting/farewell. Add spell_defines.hpp with SpellEffect (~45 constants) and SpellMissInfo (12 constants) namespaces; replace all magic numbers in spell_handler.cpp. Add GAMEOBJECT_BYTES_1 to update field table (all 4 expansion JSONs) and wire GameObjectStateCallback. Add DBC cross-validation on world entry. Expand tools/_ANIM_NAMES from ~35 to 452 entries in m2_viewer.py and asset_pipeline_gui.py. Add tests/test_animation_ids.cpp. Bug fixes included: - Stand state 1 was animating READY_2H(27) — fixed to SITTING(97) - Spell casts ended freeze-frame — add one-shot release animation - NPC 2H swing probe chain missing ATTACK_2H_LOOSE (polearm/staff) - Chair sits (states 2/4/5/6) incorrectly played floor-sit transition - STOP(3) used for all spell casts — replaced with model-aware chain
This commit is contained in:
parent
d54e262048
commit
e58f9b4b40
59 changed files with 3903 additions and 483 deletions
|
|
@ -538,15 +538,196 @@ class M2Parser:
|
|||
# ---------------------------------------------------------------------------
|
||||
|
||||
_ANIM_NAMES: dict[int, str] = {
|
||||
0: "Stand", 1: "Death", 2: "Spell", 3: "Stop", 4: "Walk", 5: "Run",
|
||||
6: "Dead", 7: "Rise", 8: "StandWound", 9: "CombatWound", 10: "CombatCritical",
|
||||
11: "ShuffleLeft", 12: "ShuffleRight", 13: "Walkbackwards", 14: "Stun",
|
||||
15: "HandsClosed", 16: "AttackUnarmed", 17: "Attack1H", 18: "Attack2H",
|
||||
24: "ShieldBlock", 25: "ReadyUnarmed", 26: "Ready1H",
|
||||
27: "Ready2H", 34: "NPCWelcome", 35: "NPCGoodbye",
|
||||
37: "JumpStart", 38: "Jump", 39: "JumpEnd", 40: "Fall",
|
||||
41: "SwimIdle", 42: "Swim", 60: "SpellChannelDirected",
|
||||
69: "CombatAbility", 138: "Fly", 157: "EmoteTalk", 185: "FlyIdle",
|
||||
# ── Classic (Vanilla WoW 1.x) — IDs 0–145 ──
|
||||
0: "STAND", 1: "DEATH", 2: "SPELL", 3: "STOP", 4: "WALK", 5: "RUN",
|
||||
6: "DEAD", 7: "RISE", 8: "STAND_WOUND", 9: "COMBAT_WOUND",
|
||||
10: "COMBAT_CRITICAL", 11: "SHUFFLE_LEFT", 12: "SHUFFLE_RIGHT",
|
||||
13: "WALK_BACKWARDS", 14: "STUN", 15: "HANDS_CLOSED",
|
||||
16: "ATTACK_UNARMED", 17: "ATTACK_1H", 18: "ATTACK_2H",
|
||||
19: "ATTACK_2H_LOOSE", 20: "PARRY_UNARMED", 21: "PARRY_1H",
|
||||
22: "PARRY_2H", 23: "PARRY_2H_LOOSE", 24: "SHIELD_BLOCK",
|
||||
25: "READY_UNARMED", 26: "READY_1H", 27: "READY_2H",
|
||||
28: "READY_2H_LOOSE", 29: "READY_BOW", 30: "DODGE",
|
||||
31: "SPELL_PRECAST", 32: "SPELL_CAST", 33: "SPELL_CAST_AREA",
|
||||
34: "NPC_WELCOME", 35: "NPC_GOODBYE", 36: "BLOCK",
|
||||
37: "JUMP_START", 38: "JUMP", 39: "JUMP_END", 40: "FALL",
|
||||
41: "SWIM_IDLE", 42: "SWIM", 43: "SWIM_LEFT", 44: "SWIM_RIGHT",
|
||||
45: "SWIM_BACKWARDS", 46: "ATTACK_BOW", 47: "FIRE_BOW",
|
||||
48: "READY_RIFLE", 49: "ATTACK_RIFLE", 50: "LOOT",
|
||||
51: "READY_SPELL_DIRECTED", 52: "READY_SPELL_OMNI",
|
||||
53: "SPELL_CAST_DIRECTED", 54: "SPELL_CAST_OMNI", 55: "BATTLE_ROAR",
|
||||
56: "READY_ABILITY", 57: "SPECIAL_1H", 58: "SPECIAL_2H",
|
||||
59: "SHIELD_BASH", 60: "EMOTE_TALK", 61: "EMOTE_EAT",
|
||||
62: "EMOTE_WORK", 63: "EMOTE_USE_STANDING", 64: "EMOTE_EXCLAMATION",
|
||||
65: "EMOTE_QUESTION", 66: "EMOTE_BOW", 67: "EMOTE_WAVE",
|
||||
68: "EMOTE_CHEER", 69: "EMOTE_DANCE", 70: "EMOTE_LAUGH",
|
||||
71: "EMOTE_SLEEP", 72: "EMOTE_SIT_GROUND", 73: "EMOTE_RUDE",
|
||||
74: "EMOTE_ROAR", 75: "EMOTE_KNEEL", 76: "EMOTE_KISS",
|
||||
77: "EMOTE_CRY", 78: "EMOTE_CHICKEN", 79: "EMOTE_BEG",
|
||||
80: "EMOTE_APPLAUD", 81: "EMOTE_SHOUT", 82: "EMOTE_FLEX",
|
||||
83: "EMOTE_SHY", 84: "EMOTE_POINT", 85: "ATTACK_1H_PIERCE",
|
||||
86: "ATTACK_2H_LOOSE_PIERCE", 87: "ATTACK_OFF", 88: "ATTACK_OFF_PIERCE",
|
||||
89: "SHEATHE", 90: "HIP_SHEATHE", 91: "MOUNT",
|
||||
92: "RUN_RIGHT", 93: "RUN_LEFT", 94: "MOUNT_SPECIAL", 95: "KICK",
|
||||
96: "SIT_GROUND_DOWN", 97: "SITTING", 98: "SIT_GROUND_UP",
|
||||
99: "SLEEP_DOWN", 100: "SLEEP", 101: "SLEEP_UP",
|
||||
102: "SIT_CHAIR_LOW", 103: "SIT_CHAIR_MED", 104: "SIT_CHAIR_HIGH",
|
||||
105: "LOAD_BOW", 106: "LOAD_RIFLE", 107: "ATTACK_THROWN",
|
||||
108: "READY_THROWN", 109: "HOLD_BOW", 110: "HOLD_RIFLE",
|
||||
111: "HOLD_THROWN", 112: "LOAD_THROWN", 113: "EMOTE_SALUTE",
|
||||
114: "KNEEL_START", 115: "KNEEL_LOOP", 116: "KNEEL_END",
|
||||
117: "ATTACK_UNARMED_OFF", 118: "SPECIAL_UNARMED",
|
||||
119: "STEALTH_WALK", 120: "STEALTH_STAND", 121: "KNOCKDOWN",
|
||||
122: "EATING_LOOP", 123: "USE_STANDING_LOOP",
|
||||
124: "CHANNEL_CAST_DIRECTED", 125: "CHANNEL_CAST_OMNI",
|
||||
126: "WHIRLWIND", 127: "BIRTH", 128: "USE_STANDING_START",
|
||||
129: "USE_STANDING_END", 130: "CREATURE_SPECIAL", 131: "DROWN",
|
||||
132: "DROWNED", 133: "FISHING_CAST", 134: "FISHING_LOOP", 135: "FLY",
|
||||
136: "EMOTE_WORK_NO_SHEATHE", 137: "EMOTE_STUN_NO_SHEATHE",
|
||||
138: "EMOTE_USE_STANDING_NO_SHEATHE", 139: "SPELL_SLEEP_DOWN",
|
||||
140: "SPELL_KNEEL_START", 141: "SPELL_KNEEL_LOOP",
|
||||
142: "SPELL_KNEEL_END", 143: "SPRINT", 144: "IN_FLIGHT", 145: "SPAWN",
|
||||
# ── The Burning Crusade (TBC 2.x) — IDs 146–199 ──
|
||||
146: "CLOSE", 147: "CLOSED", 148: "OPEN", 149: "DESTROY",
|
||||
150: "DESTROYED", 151: "UNSHEATHE", 152: "SHEATHE_ALT",
|
||||
153: "ATTACK_UNARMED_NO_SHEATHE", 154: "STEALTH_RUN",
|
||||
155: "READY_CROSSBOW", 156: "ATTACK_CROSSBOW",
|
||||
157: "EMOTE_TALK_EXCLAMATION", 158: "FLY_IDLE", 159: "FLY_FORWARD",
|
||||
160: "FLY_BACKWARDS", 161: "FLY_LEFT", 162: "FLY_RIGHT",
|
||||
163: "FLY_UP", 164: "FLY_DOWN", 165: "FLY_LAND_START",
|
||||
166: "FLY_LAND_RUN", 167: "FLY_LAND_END",
|
||||
168: "EMOTE_TALK_QUESTION", 169: "EMOTE_READ",
|
||||
170: "EMOTE_SHIELDBLOCK", 171: "EMOTE_CHOP", 172: "EMOTE_HOLDRIFLE",
|
||||
173: "EMOTE_HOLDBOW", 174: "EMOTE_HOLDTHROWN",
|
||||
175: "CUSTOM_SPELL_02", 176: "CUSTOM_SPELL_03", 177: "CUSTOM_SPELL_04",
|
||||
178: "CUSTOM_SPELL_05", 179: "CUSTOM_SPELL_06", 180: "CUSTOM_SPELL_07",
|
||||
181: "CUSTOM_SPELL_08", 182: "CUSTOM_SPELL_09", 183: "CUSTOM_SPELL_10",
|
||||
184: "EMOTE_STATE_DANCE",
|
||||
# ── Wrath of the Lich King (WotLK 3.x) — IDs 185+ ──
|
||||
185: "FLY_STAND", 186: "EMOTE_STATE_LAUGH", 187: "EMOTE_STATE_POINT",
|
||||
188: "EMOTE_STATE_EAT", 189: "EMOTE_STATE_WORK",
|
||||
190: "EMOTE_STATE_SIT_GROUND", 191: "EMOTE_STATE_HOLD_BOW",
|
||||
192: "EMOTE_STATE_HOLD_RIFLE", 193: "EMOTE_STATE_HOLD_THROWN",
|
||||
194: "FLY_COMBAT_WOUND", 195: "FLY_COMBAT_CRITICAL", 196: "RECLINED",
|
||||
197: "EMOTE_STATE_ROAR", 198: "EMOTE_USE_STANDING_LOOP_2",
|
||||
199: "EMOTE_STATE_APPLAUD", 200: "READY_FIST",
|
||||
201: "SPELL_CHANNEL_DIRECTED_OMNI", 202: "SPECIAL_ATTACK_1H_OFF",
|
||||
203: "ATTACK_FIST_1H", 204: "ATTACK_FIST_1H_OFF",
|
||||
205: "PARRY_FIST_1H", 206: "READY_FIST_1H",
|
||||
207: "EMOTE_STATE_READ_AND_TALK", 208: "EMOTE_STATE_WORK_NO_SHEATHE",
|
||||
209: "FLY_RUN", 210: "EMOTE_STATE_KNEEL_2",
|
||||
211: "EMOTE_STATE_SPELL_KNEEL", 212: "EMOTE_STATE_USE_STANDING",
|
||||
213: "EMOTE_STATE_STUN", 214: "EMOTE_STATE_STUN_NO_SHEATHE",
|
||||
215: "EMOTE_TRAIN", 216: "EMOTE_DEAD",
|
||||
217: "EMOTE_STATE_DANCE_ONCE", 218: "FLY_DEATH",
|
||||
219: "FLY_STAND_WOUND", 220: "FLY_SHUFFLE_LEFT",
|
||||
221: "FLY_SHUFFLE_RIGHT", 222: "FLY_WALK_BACKWARDS",
|
||||
223: "FLY_STUN", 224: "FLY_HANDS_CLOSED", 225: "FLY_ATTACK_UNARMED",
|
||||
226: "FLY_ATTACK_1H", 227: "FLY_ATTACK_2H",
|
||||
228: "FLY_ATTACK_2H_LOOSE", 229: "FLY_SPELL", 230: "FLY_STOP",
|
||||
231: "FLY_WALK", 232: "FLY_DEAD", 233: "FLY_RISE", 234: "FLY_RUN_2",
|
||||
235: "FLY_FALL", 236: "FLY_SWIM_IDLE", 237: "FLY_SWIM",
|
||||
238: "FLY_SWIM_LEFT", 239: "FLY_SWIM_RIGHT",
|
||||
240: "FLY_SWIM_BACKWARDS", 241: "FLY_ATTACK_BOW",
|
||||
242: "FLY_FIRE_BOW", 243: "FLY_READY_RIFLE",
|
||||
244: "FLY_ATTACK_RIFLE", 245: "TOTEM_SMALL", 246: "TOTEM_MEDIUM",
|
||||
247: "TOTEM_LARGE", 248: "FLY_LOOT",
|
||||
249: "FLY_READY_SPELL_DIRECTED", 250: "FLY_READY_SPELL_OMNI",
|
||||
251: "FLY_SPELL_CAST_DIRECTED", 252: "FLY_SPELL_CAST_OMNI",
|
||||
253: "FLY_BATTLE_ROAR", 254: "FLY_READY_ABILITY",
|
||||
255: "FLY_SPECIAL_1H", 256: "FLY_SPECIAL_2H",
|
||||
257: "FLY_SHIELD_BASH", 258: "FLY_EMOTE_TALK", 259: "FLY_EMOTE_EAT",
|
||||
260: "FLY_EMOTE_WORK", 261: "FLY_EMOTE_USE_STANDING",
|
||||
262: "FLY_EMOTE_BOW", 263: "FLY_EMOTE_WAVE", 264: "FLY_EMOTE_CHEER",
|
||||
265: "FLY_EMOTE_DANCE", 266: "FLY_EMOTE_LAUGH",
|
||||
267: "FLY_EMOTE_SLEEP", 268: "FLY_EMOTE_SIT_GROUND",
|
||||
269: "FLY_EMOTE_RUDE", 270: "FLY_EMOTE_ROAR",
|
||||
271: "FLY_EMOTE_KNEEL", 272: "FLY_EMOTE_KISS", 273: "FLY_EMOTE_CRY",
|
||||
274: "FLY_EMOTE_CHICKEN", 275: "FLY_EMOTE_BEG",
|
||||
276: "FLY_EMOTE_APPLAUD", 277: "FLY_EMOTE_SHOUT",
|
||||
278: "FLY_EMOTE_FLEX", 279: "FLY_EMOTE_SHY", 280: "FLY_EMOTE_POINT",
|
||||
281: "FLY_ATTACK_1H_PIERCE", 282: "FLY_ATTACK_2H_LOOSE_PIERCE",
|
||||
283: "FLY_ATTACK_OFF", 284: "FLY_ATTACK_OFF_PIERCE",
|
||||
285: "FLY_SHEATHE", 286: "FLY_HIP_SHEATHE", 287: "FLY_MOUNT",
|
||||
288: "FLY_RUN_RIGHT", 289: "FLY_RUN_LEFT",
|
||||
290: "FLY_MOUNT_SPECIAL", 291: "FLY_KICK",
|
||||
292: "FLY_SIT_GROUND_DOWN", 293: "FLY_SITTING",
|
||||
294: "FLY_SIT_GROUND_UP", 295: "FLY_SLEEP_DOWN", 296: "FLY_SLEEP",
|
||||
297: "FLY_SLEEP_UP", 298: "FLY_SIT_CHAIR_LOW",
|
||||
299: "FLY_SIT_CHAIR_MED", 300: "FLY_SIT_CHAIR_HIGH",
|
||||
301: "FLY_LOAD_BOW", 302: "FLY_LOAD_RIFLE",
|
||||
303: "FLY_ATTACK_THROWN", 304: "FLY_READY_THROWN",
|
||||
305: "FLY_HOLD_BOW", 306: "FLY_HOLD_RIFLE", 307: "FLY_HOLD_THROWN",
|
||||
308: "FLY_LOAD_THROWN", 309: "FLY_EMOTE_SALUTE",
|
||||
310: "FLY_KNEEL_START", 311: "FLY_KNEEL_LOOP", 312: "FLY_KNEEL_END",
|
||||
313: "FLY_ATTACK_UNARMED_OFF", 314: "FLY_SPECIAL_UNARMED",
|
||||
315: "FLY_STEALTH_WALK", 316: "FLY_STEALTH_STAND",
|
||||
317: "FLY_KNOCKDOWN", 318: "FLY_EATING_LOOP",
|
||||
319: "FLY_USE_STANDING_LOOP", 320: "FLY_CHANNEL_CAST_DIRECTED",
|
||||
321: "FLY_CHANNEL_CAST_OMNI", 322: "FLY_WHIRLWIND",
|
||||
323: "FLY_BIRTH", 324: "FLY_USE_STANDING_START",
|
||||
325: "FLY_USE_STANDING_END", 326: "FLY_CREATURE_SPECIAL",
|
||||
327: "FLY_DROWN", 328: "FLY_DROWNED", 329: "FLY_FISHING_CAST",
|
||||
330: "FLY_FISHING_LOOP", 331: "FLY_FLY",
|
||||
332: "FLY_EMOTE_WORK_NO_SHEATHE", 333: "FLY_EMOTE_STUN_NO_SHEATHE",
|
||||
334: "FLY_EMOTE_USE_STANDING_NO_SHEATHE",
|
||||
335: "FLY_SPELL_SLEEP_DOWN", 336: "FLY_SPELL_KNEEL_START",
|
||||
337: "FLY_SPELL_KNEEL_LOOP", 338: "FLY_SPELL_KNEEL_END",
|
||||
339: "FLY_SPRINT", 340: "FLY_IN_FLIGHT", 341: "FLY_SPAWN",
|
||||
342: "FLY_CLOSE", 343: "FLY_CLOSED", 344: "FLY_OPEN",
|
||||
345: "FLY_DESTROY", 346: "FLY_DESTROYED", 347: "FLY_UNSHEATHE",
|
||||
348: "FLY_SHEATHE_ALT", 349: "FLY_ATTACK_UNARMED_NO_SHEATHE",
|
||||
350: "FLY_STEALTH_RUN", 351: "FLY_READY_CROSSBOW",
|
||||
352: "FLY_ATTACK_CROSSBOW", 353: "FLY_EMOTE_TALK_EXCLAMATION",
|
||||
354: "FLY_EMOTE_TALK_QUESTION", 355: "FLY_EMOTE_READ",
|
||||
356: "EMOTE_HOLD_CROSSBOW", 357: "FLY_EMOTE_HOLD_BOW",
|
||||
358: "FLY_EMOTE_HOLD_RIFLE", 359: "FLY_EMOTE_HOLD_THROWN",
|
||||
360: "FLY_EMOTE_HOLD_CROSSBOW", 361: "FLY_CUSTOM_SPELL_02",
|
||||
362: "FLY_CUSTOM_SPELL_03", 363: "FLY_CUSTOM_SPELL_04",
|
||||
364: "FLY_CUSTOM_SPELL_05", 365: "FLY_CUSTOM_SPELL_06",
|
||||
366: "FLY_CUSTOM_SPELL_07", 367: "FLY_CUSTOM_SPELL_08",
|
||||
368: "FLY_CUSTOM_SPELL_09", 369: "FLY_CUSTOM_SPELL_10",
|
||||
370: "FLY_EMOTE_STATE_DANCE", 371: "EMOTE_EAT_NO_SHEATHE",
|
||||
372: "MOUNT_RUN_RIGHT", 373: "MOUNT_RUN_LEFT",
|
||||
374: "MOUNT_WALK_BACKWARDS", 375: "MOUNT_SWIM_IDLE",
|
||||
376: "MOUNT_SWIM", 377: "MOUNT_SWIM_LEFT", 378: "MOUNT_SWIM_RIGHT",
|
||||
379: "MOUNT_SWIM_BACKWARDS", 380: "MOUNT_FLIGHT_IDLE",
|
||||
381: "MOUNT_FLIGHT_FORWARD", 382: "MOUNT_FLIGHT_BACKWARDS",
|
||||
383: "MOUNT_FLIGHT_LEFT", 384: "MOUNT_FLIGHT_RIGHT",
|
||||
385: "MOUNT_FLIGHT_UP", 386: "MOUNT_FLIGHT_DOWN",
|
||||
387: "MOUNT_FLIGHT_LAND_START", 388: "MOUNT_FLIGHT_LAND_RUN",
|
||||
389: "MOUNT_FLIGHT_LAND_END", 390: "FLY_EMOTE_STATE_LAUGH",
|
||||
391: "FLY_EMOTE_STATE_POINT", 392: "FLY_EMOTE_STATE_EAT",
|
||||
393: "FLY_EMOTE_STATE_WORK", 394: "FLY_EMOTE_STATE_SIT_GROUND",
|
||||
395: "FLY_EMOTE_STATE_HOLD_BOW", 396: "FLY_EMOTE_STATE_HOLD_RIFLE",
|
||||
397: "FLY_EMOTE_STATE_HOLD_THROWN", 398: "FLY_EMOTE_STATE_ROAR",
|
||||
399: "FLY_RECLINED", 400: "EMOTE_TRAIN_2", 401: "EMOTE_DEAD_2",
|
||||
402: "FLY_EMOTE_USE_STANDING_LOOP_2", 403: "FLY_EMOTE_STATE_APPLAUD",
|
||||
404: "FLY_READY_FIST", 405: "FLY_SPELL_CHANNEL_DIRECTED_OMNI",
|
||||
406: "FLY_SPECIAL_ATTACK_1H_OFF", 407: "FLY_ATTACK_FIST_1H",
|
||||
408: "FLY_ATTACK_FIST_1H_OFF", 409: "FLY_PARRY_FIST_1H",
|
||||
410: "FLY_READY_FIST_1H", 411: "FLY_EMOTE_STATE_READ_AND_TALK",
|
||||
412: "FLY_EMOTE_STATE_WORK_NO_SHEATHE",
|
||||
413: "FLY_EMOTE_STATE_KNEEL_2", 414: "FLY_EMOTE_STATE_SPELL_KNEEL",
|
||||
415: "FLY_EMOTE_STATE_USE_STANDING", 416: "FLY_EMOTE_STATE_STUN",
|
||||
417: "FLY_EMOTE_STATE_STUN_NO_SHEATHE", 418: "FLY_EMOTE_TRAIN",
|
||||
419: "FLY_EMOTE_DEAD", 420: "FLY_EMOTE_STATE_DANCE_ONCE",
|
||||
421: "FLY_EMOTE_EAT_NO_SHEATHE", 422: "FLY_MOUNT_RUN_RIGHT",
|
||||
423: "FLY_MOUNT_RUN_LEFT", 424: "FLY_MOUNT_WALK_BACKWARDS",
|
||||
425: "FLY_MOUNT_SWIM_IDLE", 426: "FLY_MOUNT_SWIM",
|
||||
427: "FLY_MOUNT_SWIM_LEFT", 428: "FLY_MOUNT_SWIM_RIGHT",
|
||||
429: "FLY_MOUNT_SWIM_BACKWARDS", 430: "FLY_MOUNT_FLIGHT_IDLE",
|
||||
431: "FLY_MOUNT_FLIGHT_FORWARD", 432: "FLY_MOUNT_FLIGHT_BACKWARDS",
|
||||
433: "FLY_MOUNT_FLIGHT_LEFT", 434: "FLY_MOUNT_FLIGHT_RIGHT",
|
||||
435: "FLY_MOUNT_FLIGHT_UP", 436: "FLY_MOUNT_FLIGHT_DOWN",
|
||||
437: "FLY_MOUNT_FLIGHT_LAND_START", 438: "FLY_MOUNT_FLIGHT_LAND_RUN",
|
||||
439: "FLY_MOUNT_FLIGHT_LAND_END", 440: "FLY_TOTEM_SMALL",
|
||||
441: "FLY_TOTEM_MEDIUM", 442: "FLY_TOTEM_LARGE",
|
||||
443: "FLY_EMOTE_HOLD_CROSSBOW_2", 444: "VEHICLE_GRAB",
|
||||
445: "VEHICLE_THROW", 446: "FLY_VEHICLE_GRAB",
|
||||
447: "FLY_VEHICLE_THROW", 448: "GUILD_CHAMPION_1",
|
||||
449: "GUILD_CHAMPION_2", 450: "FLY_GUILD_CHAMPION_1",
|
||||
451: "FLY_GUILD_CHAMPION_2",
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue