WoWInterface

WoWInterface (https://www.wowinterface.com/forums/index.php)
-   Legion Beta archived threads (https://www.wowinterface.com/forums/forumdisplay.php?f=177)
-   -   PlayerModel:SetDisplayInfo (https://www.wowinterface.com/forums/showthread.php?t=53428)

Resike 05-21-16 08:26 AM

Quote:

Originally Posted by ceylina (Post 315077)
So just to understand, unlike keeping the way resike explains, you now would update models based on targeting and events and store the set model in a variable to be used to maintain a model's 3d portrait/display so long as said model was or is used on say a unit frame/ tooltip or other frame like how the storyline addon displays 3d models?

If that is the case and you use a combination of event triggers then I suppose this would cut down on bloat, resource usage, and potential errors?

Not it has 0 affect in performance.

TOM_RUS 05-21-16 09:42 AM

Quote:

Originally Posted by Resike (Post 315075)
I found the skinfile-displayid references on live, if you open the CreatureDisplayInfo.db2 you can see which skin files are compatible whit which displayID in the 8-9-10 table.

Are you talking about actual *.skin files or *.blp textures? Because *.skin files were never referenced in CreatureDisplayInfo.db2. Also it still works exact same way in legion, except there's now filedataid's instead of plain strings... Also I don't understand how that *.blp files are useful for anything, as you can't use them anyway (there's no model->settexture() or anything like that as far I know).

Resike 05-21-16 10:20 AM

Quote:

Originally Posted by TOM_RUS (Post 315082)
Are you talking about actual *.skin files or *.blp textures? Because *.skin files were never referenced in CreatureDisplayInfo.db2. Also it still works exact same way in legion, except there's now filedataid's instead of plain strings... Also I don't understand how that *.blp files are useful for anything, as you can't use them anyway (there's no model->settexture() or anything like that as far I know).

It's blp files, but i guess the skin files use those blps anyway.
You can iterate over every displayModel, exrtact their proper modelpath via GetModel(), then you can arrange a table for every model and all of it's reskinned blp/skin and use those displayIDs to recolor a model like this:

https://youtu.be/egzorLE4h8E?t=47

TOM_RUS 05-21-16 10:29 AM

So the only difference is that you can no longer group models by m2 file? It's not a big deal I think. You can still do everything else as before. You can also try to suggest them to add GetModel that returns filedataid back, probably not super hard to implement, as they lookup that id anyway...

Resike 05-21-16 10:42 AM

Quote:

Originally Posted by TOM_RUS (Post 315084)
So the only difference is that you can no longer group models by m2 file? It's not a big deal I think. You can still do everything else as before. You can also try to suggest them to add GetModel that returns filedataid back, probably not super hard to implement, as they lookup that id anyway...

Yes. It just makes no sense, they added the GetDisplayInfo() when GetModel() was removed, which is probably is the same table lookup method as GetModel() was, but this one returns an useless value.

I'm also not sure how could i get the modelpath with the filedataid, without using another external very big lookup table. The old GetModel() was perfect.

TOM_RUS 05-21-16 10:45 AM

Quote:

Originally Posted by Resike (Post 315085)
I'm also not sure how could i get the modelpath with the filedataid, without using another external very big lookup table. The old GetModel() was perfect.

You don't need modelpath if you have filedataid, they are essentially same thing, just different representation (string vs integer).

Resike 05-21-16 11:33 AM

Quote:

Originally Posted by TOM_RUS (Post 315086)
You don't need modelpath if you have filedataid, they are essentially same thing, just different representation (string vs integer).

I see. 10Char

TOM_RUS 05-21-16 01:47 PM

CreatureDisplayInfo id to FileData id as lua table: click.

Resike 05-21-16 02:06 PM

Quote:

Originally Posted by TOM_RUS (Post 315094)
CreatureDisplayInfo id to FileData id as lua table: click.

Thanks, that look solid, how did you got this info? Is it in any of the db files?

TOM_RUS 05-21-16 03:49 PM

Quote:

Originally Posted by Resike (Post 315095)
Thanks, that look solid, how did you got this info? Is it in any of the db files?

Code:

foreach (auto cdi in CreatureDisplayInfo.db2)
{
  auto cmd = CreatureModelData.db2[cdi->m_modelID];
  printf("[%u] = %u,", cdi->m_ID, cmd->m_FileDataId);
}


Resike 05-21-16 04:39 PM

Quote:

Originally Posted by TOM_RUS (Post 315098)
Code:

foreach (auto cdi in CreatureDisplayInfo.db2)
{
  auto cmd = CreatureModelData.db2[cdi->m_modelID];
  printf("[%u] = %u,", cdi->m_ID, cmd->m_FileDataId);
}


Sneaky, thanks for your help.

zork 05-22-16 03:02 PM

The following list contains my favorite displayids from my latest search (51000-73000)
http://imgur.com/a/34ce7

This one stands out:
http://imgur.com/xEKgYj2

I will make myself an afk addon because of it.

Resike 05-22-16 03:24 PM

Quote:

Originally Posted by zork (Post 315114)
The following list contains my favorite displayids from my latest search (51000-73000)
http://imgur.com/a/34ce7

This one stands out:
http://imgur.com/xEKgYj2

I will make myself an afk addon because of it.

How is that bucket is one of your favourite? xD

I think this function is gonna be pretty intresting ApplySpellVisualKit(), i guess you will be able to spawn spell effect on models, like shield wall, bloodlust, etc?

zork 05-22-16 04:17 PM

semlar posted in irc that you can extract animation ids from any model.
Lua Code:
  1. for i = 0,  1103 do if model:HasAnimation(i) end

Code:

[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",
[19] = "Attack2HL",
[20] = "ParryUnarmed",
[21] = "Parry1H",
[22] = "Parry2H",
[23] = "Parry2HL",
[24] = "ShieldBlock",
[25] = "ReadyUnarmed",
[26] = "Ready1H",
[27] = "Ready2H",
[28] = "Ready2HL",
[29] = "ReadyBow",
[30] = "Dodge",
[31] = "SpellPrecast",
[32] = "SpellCast",
[33] = "SpellCastArea",
[34] = "NPCWelcome",
[35] = "NPCGoodbye",
[36] = "Block",
[37] = "JumpStart",
[38] = "Jump",
[39] = "JumpEnd",
[40] = "Fall",
[41] = "SwimIdle",
[42] = "Swim",
[43] = "SwimLeft",
[44] = "SwimRight",
[45] = "SwimBackwards",
[46] = "AttackBow",
[47] = "FireBow",
[48] = "ReadyRifle",
[49] = "AttackRifle",
[50] = "Loot",
[51] = "ReadySpellDirected",
[52] = "ReadySpellOmni",
[53] = "SpellCastDirected",
[54] = "SpellCastOmni",
[55] = "BattleRoar",
[56] = "ReadyAbility",
[57] = "Special1H",
[58] = "Special2H",
[59] = "ShieldBash",
[60] = "EmoteTalk",
[61] = "EmoteEat",
[62] = "EmoteWork",
[63] = "EmoteUseStanding",
[64] = "EmoteTalkExclamation",
[65] = "EmoteTalkQuestion",
[66] = "EmoteBow",
[67] = "EmoteWave",
[68] = "EmoteCheer",
[69] = "EmoteDance",
[70] = "EmoteLaugh",
[71] = "EmoteSleep",
[72] = "EmoteSitGround",
[73] = "EmoteRude",
[74] = "EmoteRoar",
[75] = "EmoteKneel",
[76] = "EmoteKiss",
[77] = "EmoteCry",
[78] = "EmoteChicken",
[79] = "EmoteBeg",
[80] = "EmoteApplaud",
[81] = "EmoteShout",
[82] = "EmoteFlex",
[83] = "EmoteShy",
[84] = "EmotePoint",
[85] = "Attack1HPierce",
[86] = "Attack2HLoosePierce",
[87] = "AttackOff",
[88] = "AttackOffPierce",
[89] = "Sheath",
[90] = "HipSheath",
[91] = "Mount",
[92] = "RunRight",
[93] = "RunLeft",
[94] = "MountSpecial",
[95] = "Kick",
[96] = "SitGroundDown",
[97] = "SitGround",
[98] = "SitGroundUp",
[99] = "SleepDown",
[100] = "Sleep",
[101] = "SleepUp",
[102] = "SitChairLow",
[103] = "SitChairMed",
[104] = "SitChairHigh",
[105] = "LoadBow",
[106] = "LoadRifle",
[107] = "AttackThrown",
[108] = "ReadyThrown",
[109] = "HoldBow",
[110] = "HoldRifle",
[111] = "HoldThrown",
[112] = "LoadThrown",
[113] = "EmoteSalute",
[114] = "KneelStart",
[115] = "KneelLoop",
[116] = "KneelEnd",
[117] = "AttackUnarmedOff",
[118] = "SpecialUnarmed",
[119] = "StealthWalk",
[120] = "StealthStand",
[121] = "Knockdown",
[122] = "EatingLoop",
[123] = "UseStandingLoop",
[124] = "ChannelCastDirected",
[125] = "ChannelCastOmni",
[126] = "Whirlwind",
[127] = "Birth",
[128] = "UseStandingStart",
[129] = "UseStandingEnd",
[130] = "CreatureSpecial",
[131] = "Drown",
[132] = "Drowned",
[133] = "FishingCast",
[134] = "FishingLoop",
[135] = "Fly",
[136] = "EmoteWorkNoSheathe",
[137] = "EmoteStunNoSheathe",
[138] = "EmoteUseStandingNoSheathe",
[139] = "SpellSleepDown",
[140] = "SpellKneelStart",
[141] = "SpellKneelLoop",
[142] = "SpellKneelEnd",
[143] = "Sprint",
[144] = "InFlight",
[145] = "Spawn",
[146] = "Close",
[147] = "Closed",
[148] = "Open",
[149] = "Opened",
[150] = "Destroy",
[151] = "Destroyed",
[152] = "Rebuild",
[153] = "Custom0",
[154] = "Custom1",
[155] = "Custom2",
[156] = "Custom3",
[157] = "Despawn",
[158] = "Hold",
[159] = "Decay",
[160] = "BowPull",
[161] = "BowRelease",
[162] = "ShipStart",
[163] = "ShipMoving",
[164] = "ShipStop",
[165] = "GroupArrow",
[166] = "Arrow",
[167] = "CorpseArrow",
[168] = "GuideArrow",
[169] = "Sway",
[170] = "DruidCatPounce",
[171] = "DruidCatRip",
[172] = "DruidCatRake",
[173] = "DruidCatRavage",
[174] = "DruidCatClaw",
[175] = "DruidCatCower",
[176] = "DruidBearSwipe",
[177] = "DruidBearBite",
[178] = "DruidBearMaul",
[179] = "DruidBearBash",
[180] = "DragonTail",
[181] = "DragonStomp",
[182] = "DragonSpit",
[183] = "DragonSpitHover",
[184] = "DragonSpitFly",
[185] = "EmoteYes",
[186] = "EmoteNo",
[187] = "JumpLandRun",
[188] = "LootHold",
[189] = "LootUp",
[190] = "StandHigh",
[191] = "Impact",
[192] = "LiftOff",
[193] = "Hover",
[194] = "SuccubusEntice",
[195] = "EmoteTrain",
[196] = "EmoteDead",
[197] = "EmoteDanceOnce",
[198] = "Deflect",
[199] = "EmoteEatNoSheathe",
[200] = "Land",
[201] = "Submerge",
[202] = "Submerged",
[203] = "Cannibalize",
[204] = "ArrowBirth",
[205] = "GroupArrowBirth",
[206] = "CorpseArrowBirth",
[207] = "GuideArrowBirth",
[208] = "EmoteTalkNoSheathe",
[209] = "EmotePointNoSheathe",
[210] = "EmoteSaluteNoSheathe",
[211] = "EmoteDanceSpecial",
[212] = "Mutilate",
[213] = "CustomSpell01",
[214] = "CustomSpell02",
[215] = "CustomSpell03",
[216] = "CustomSpell04",
[217] = "CustomSpell05",
[218] = "CustomSpell06",
[219] = "CustomSpell07",
[220] = "CustomSpell08",
[221] = "CustomSpell09",
[222] = "CustomSpell10",
[223] = "StealthRun",
[224] = "Emerge",
[225] = "Cower",
[226] = "Grab",
[227] = "GrabClosed",
[228] = "GrabThrown",
[229] = "FlyStand",
[230] = "FlyDeath",
[231] = "FlySpell",
[232] = "FlyStop",
[233] = "FlyWalk",
[234] = "FlyRun",
[235] = "FlyDead",
[236] = "FlyRise",
[237] = "FlyStandWound",
[238] = "FlyCombatWound",
[239] = "FlyCombatCritical",
[240] = "FlyShuffleLeft",
[241] = "FlyShuffleRight",
[242] = "FlyWalkbackwards",
[243] = "FlyStun",
[244] = "FlyHandsClosed",
[245] = "FlyAttackUnarmed",
[246] = "FlyAttack1H",
[247] = "FlyAttack2H",
[248] = "FlyAttack2HL",
[249] = "FlyParryUnarmed",
[250] = "FlyParry1H",
[251] = "FlyParry2H",
[252] = "FlyParry2HL",
[253] = "FlyShieldBlock",
[254] = "FlyReadyUnarmed",
[255] = "FlyReady1H",
[256] = "FlyReady2H",
[257] = "FlyReady2HL",
[258] = "FlyReadyBow",
[259] = "FlyDodge",
[260] = "FlySpellPrecast",
[261] = "FlySpellCast",
[262] = "FlySpellCastArea",
[263] = "FlyNPCWelcome",
[264] = "FlyNPCGoodbye",
[265] = "FlyBlock",
[266] = "FlyJumpStart",
[267] = "FlyJump",
[268] = "FlyJumpEnd",
[269] = "FlyFall",
[270] = "FlySwimIdle",
[271] = "FlySwim",
[272] = "FlySwimLeft",
[273] = "FlySwimRight",
[274] = "FlySwimBackwards",
[275] = "FlyAttackBow",
[276] = "FlyFireBow",
[277] = "FlyReadyRifle",
[278] = "FlyAttackRifle",
[279] = "FlyLoot",
[280] = "FlyReadySpellDirected",
[281] = "FlyReadySpellOmni",
[282] = "FlySpellCastDirected",
[283] = "FlySpellCastOmni",
[284] = "FlyBattleRoar",
[285] = "FlyReadyAbility",
[286] = "FlySpecial1H",
[287] = "FlySpecial2H",
[288] = "FlyShieldBash",
[289] = "FlyEmoteTalk",
[290] = "FlyEmoteEat",
[291] = "FlyEmoteWork",
[292] = "FlyEmoteUseStanding",
[293] = "FlyEmoteTalkExclamation",
[294] = "FlyEmoteTalkQuestion",
[295] = "FlyEmoteBow",
[296] = "FlyEmoteWave",
[297] = "FlyEmoteCheer",
[298] = "FlyEmoteDance",
[299] = "FlyEmoteLaugh",
[300] = "FlyEmoteSleep",
[301] = "FlyEmoteSitGround",
[302] = "FlyEmoteRude",
[303] = "FlyEmoteRoar",
[304] = "FlyEmoteKneel",
[305] = "FlyEmoteKiss",
[306] = "FlyEmoteCry",
[307] = "FlyEmoteChicken",
[308] = "FlyEmoteBeg",
[309] = "FlyEmoteApplaud",
[310] = "FlyEmoteShout",
[311] = "FlyEmoteFlex",
[312] = "FlyEmoteShy",
[313] = "FlyEmotePoint",
[314] = "FlyAttack1HPierce",
[315] = "FlyAttack2HLoosePierce",
[316] = "FlyAttackOff",
[317] = "FlyAttackOffPierce",
[318] = "FlySheath",
[319] = "FlyHipSheath",
[320] = "FlyMount",
[321] = "FlyRunRight",
[322] = "FlyRunLeft",
[323] = "FlyMountSpecial",
[324] = "FlyKick",
[325] = "FlySitGroundDown",
[326] = "FlySitGround",
[327] = "FlySitGroundUp",
[328] = "FlySleepDown",
[329] = "FlySleep",
[330] = "FlySleepUp",
[331] = "FlySitChairLow",
[332] = "FlySitChairMed",
[333] = "FlySitChairHigh",
[334] = "FlyLoadBow",
[335] = "FlyLoadRifle",
[336] = "FlyAttackThrown",
[337] = "FlyReadyThrown",
[338] = "FlyHoldBow",
[339] = "FlyHoldRifle",
[340] = "FlyHoldThrown",
[341] = "FlyLoadThrown",
[342] = "FlyEmoteSalute",
[343] = "FlyKneelStart",
[344] = "FlyKneelLoop",
[345] = "FlyKneelEnd",
[346] = "FlyAttackUnarmedOff",
[347] = "FlySpecialUnarmed",
[348] = "FlyStealthWalk",
[349] = "FlyStealthStand",
[350] = "FlyKnockdown",
[351] = "FlyEatingLoop",
[352] = "FlyUseStandingLoop",
[353] = "FlyChannelCastDirected",
[354] = "FlyChannelCastOmni",
[355] = "FlyWhirlwind",
[356] = "FlyBirth",
[357] = "FlyUseStandingStart",
[358] = "FlyUseStandingEnd",
[359] = "FlyCreatureSpecial",
[360] = "FlyDrown",
[361] = "FlyDrowned",
[362] = "FlyFishingCast",
[363] = "FlyFishingLoop",
[364] = "FlyFly",
[365] = "FlyEmoteWorkNoSheathe",
[366] = "FlyEmoteStunNoSheathe",
[367] = "FlyEmoteUseStandingNoSheathe",
[368] = "FlySpellSleepDown",
[369] = "FlySpellKneelStart",
[370] = "FlySpellKneelLoop",
[371] = "FlySpellKneelEnd",
[372] = "FlySprint",
[373] = "FlyInFlight",
[374] = "FlySpawn",
[375] = "FlyClose",
[376] = "FlyClosed",
[377] = "FlyOpen",
[378] = "FlyOpened",
[379] = "FlyDestroy",
[380] = "FlyDestroyed",
[381] = "FlyRebuild",
[382] = "FlyCustom0",
[383] = "FlyCustom1",
[384] = "FlyCustom2",
[385] = "FlyCustom3",
[386] = "FlyDespawn",
[387] = "FlyHold",
[388] = "FlyDecay",
[389] = "FlyBowPull",
[390] = "FlyBowRelease",
[391] = "FlyShipStart",
[392] = "FlyShipMoving",
[393] = "FlyShipStop",
[394] = "FlyGroupArrow",
[395] = "FlyArrow",
[396] = "FlyCorpseArrow",
[397] = "FlyGuideArrow",
[398] = "FlySway",
[399] = "FlyDruidCatPounce",
[400] = "FlyDruidCatRip",
[401] = "FlyDruidCatRake",
[402] = "FlyDruidCatRavage",
[403] = "FlyDruidCatClaw",
[404] = "FlyDruidCatCower",
[405] = "FlyDruidBearSwipe",
[406] = "FlyDruidBearBite",
[407] = "FlyDruidBearMaul",
[408] = "FlyDruidBearBash",
[409] = "FlyDragonTail",
[410] = "FlyDragonStomp",
[411] = "FlyDragonSpit",
[412] = "FlyDragonSpitHover",
[413] = "FlyDragonSpitFly",
[414] = "FlyEmoteYes",
[415] = "FlyEmoteNo",
[416] = "FlyJumpLandRun",
[417] = "FlyLootHold",
[418] = "FlyLootUp",
[419] = "FlyStandHigh",
[420] = "FlyImpact",
[421] = "FlyLiftOff",
[422] = "FlyHover",
[423] = "FlySuccubusEntice",
[424] = "FlyEmoteTrain",
[425] = "FlyEmoteDead",
[426] = "FlyEmoteDanceOnce",
[427] = "FlyDeflect",
[428] = "FlyEmoteEatNoSheathe",
[429] = "FlyLand",
[430] = "FlySubmerge",
[431] = "FlySubmerged",
[432] = "FlyCannibalize",
[433] = "FlyArrowBirth",
[434] = "FlyGroupArrowBirth",
[435] = "FlyCorpseArrowBirth",
[436] = "FlyGuideArrowBirth",
[437] = "FlyEmoteTalkNoSheathe",
[438] = "FlyEmotePointNoSheathe",
[439] = "FlyEmoteSaluteNoSheathe",
[440] = "FlyEmoteDanceSpecial",
[441] = "FlyMutilate",
[442] = "FlyCustomSpell01",
[443] = "FlyCustomSpell02",
[444] = "FlyCustomSpell03",
[445] = "FlyCustomSpell04",
[446] = "FlyCustomSpell05",
[447] = "FlyCustomSpell06",
[448] = "FlyCustomSpell07",
[449] = "FlyCustomSpell08",
[450] = "FlyCustomSpell09",
[451] = "FlyCustomSpell10",
[452] = "FlyStealthRun",
[453] = "FlyEmerge",
[454] = "FlyCower",
[455] = "FlyGrab",
[456] = "FlyGrabClosed",
[457] = "FlyGrabThrown",
[458] = "ToFly",
[459] = "ToHover",
[460] = "ToGround",
[461] = "FlyToFly",
[462] = "FlyToHover",
[463] = "FlyToGround",
[464] = "Settle",
[465] = "FlySettle",
[466] = "DeathStart",
[467] = "DeathLoop",
[468] = "DeathEnd",
[469] = "FlyDeathStart",
[470] = "FlyDeathLoop",
[471] = "FlyDeathEnd",
[472] = "DeathEndHold",
[473] = "FlyDeathEndHold",
[474] = "Strangulate",
[475] = "FlyStrangulate",
[476] = "ReadyJoust",
[477] = "LoadJoust",
[478] = "HoldJoust",
[479] = "FlyReadyJoust",
[480] = "FlyLoadJoust",
[481] = "FlyHoldJoust",
[482] = "AttackJoust",
[483] = "FlyAttackJoust",
[484] = "ReclinedMount",
[485] = "FlyReclinedMount",
[486] = "ToAltered",
[487] = "FromAltered",
[488] = "FlyToAltered",
[489] = "FlyFromAltered",
[490] = "InStocks",
[491] = "FlyInStocks",
[492] = "VehicleGrab",
[493] = "VehicleThrow",
[494] = "FlyVehicleGrab",
[495] = "FlyVehicleThrow",
[496] = "ToAlteredPostSwap",
[497] = "FromAlteredPostSwap",
[498] = "FlyToAlteredPostSwap",
[499] = "FlyFromAlteredPostSwap",
[500] = "ReclinedMountPassenger",
[501] = "FlyReclinedMountPassenger",
[502] = "Carry2H",
[503] = "Carried2H",
[504] = "FlyCarry2H",
[505] = "FlyCarried2H",
[506] = "EmoteSniff",
[507] = "EmoteFlySniff",
[508] = "AttackFist1H",
[509] = "FlyAttackFist1H",
[510] = "AttackFist1HOff",
[511] = "FlyAttackFist1HOff",
[512] = "ParryFist1H",
[513] = "FlyParryFist1H",
[514] = "ReadyFist1H",
[515] = "FlyReadyFist1H",
[516] = "SpecialFist1H",
[517] = "FlySpecialFist1H",
[518] = "EmoteReadStart",
[519] = "FlyEmoteReadStart",
[520] = "EmoteReadLoop",
[521] = "FlyEmoteReadLoop",
[522] = "EmoteReadEnd",
[523] = "FlyEmoteReadEnd",
[524] = "SwimRun",
[525] = "FlySwimRun",
[526] = "SwimWalk",
[527] = "FlySwimWalk",
[528] = "SwimWalkBackwards",
[529] = "FlySwimWalkBackwards",
[530] = "SwimSprint",
[531] = "FlySwimSprint",
[532] = "MountSwimIdle",
[533] = "FlyMountSwimIdle",
[534] = "MountSwimBackwards",
[535] = "FlyMountSwimBackwards",
[536] = "MountSwimLeft",
[537] = "FlyMountSwimLeft",
[538] = "MountSwimRight",
[539] = "FlyMountSwimRight",
[540] = "MountSwimRun",
[541] = "FlyMountSwimRun",
[542] = "MountSwimSprint",
[543] = "FlyMountSwimSprint",
[544] = "MountSwimWalk",
[545] = "FlyMountSwimWalk",
[546] = "MountSwimWalkBackwards",
[547] = "FlyMountSwimWalkBackwards",
[548] = "MountFlightIdle",
[549] = "FlyMountFlightIdle",
[550] = "MountFlightBackwards",
[551] = "FlyMountFlightBackwards",
[552] = "MountFlightLeft",
[553] = "FlyMountFlightLeft",
[554] = "MountFlightRight",
[555] = "FlyMountFlightRight",
[556] = "MountFlightRun",
[557] = "FlyMountFlightRun",
[558] = "MountFlightSprint",
[559] = "FlyMountFlightSprint",
[560] = "MountFlightWalk",
[561] = "FlyMountFlightWalk",
[562] = "MountFlightWalkBackwards",
[563] = "FlyMountFlightWalkBackwards",
[564] = "MountFlightStart",
[565] = "FlyMountFlightStart",
[566] = "MountSwimStart",
[567] = "FlyMountSwimStart",
[568] = "MountSwimLand",
[569] = "FlyMountSwimLand",
[570] = "MountSwimLandRun",
[571] = "FlyMountSwimLandRun",
[572] = "MountFlightLand",
[573] = "FlyMountFlightLand",
[574] = "MountFlightLandRun",
[575] = "FlyMountFlightLandRun",
[576] = "ReadyBlowDart",
[577] = "FlyReadyBlowDart",
[578] = "LoadBlowDart",
[579] = "FlyLoadBlowDart",
[580] = "HoldBlowDart",
[581] = "FlyHoldBlowDart",
[582] = "AttackBlowDart",
[583] = "FlyAttackBlowDart",
[584] = "CarriageMount",
[585] = "FlyCarriageMount",
[586] = "CarriagePassengerMount",
[587] = "FlyCarriagePassengerMount",
[588] = "CarriageMountAttack",
[589] = "FlyCarriageMountAttack",
[590] = "BarTendStand",
[591] = "FlyBarTendStand",
[592] = "BarServerWalk",
[593] = "FlyBarServerWalk",
[594] = "BarServerRun",
[595] = "FlyBarServerRun",
[596] = "BarServerShuffleLeft",
[597] = "FlyBarServerShuffleLeft",
[598] = "BarServerShuffleRight",
[599] = "FlyBarServerShuffleRight",
[600] = "BarTendEmoteTalk",
[601] = "FlyBarTendEmoteTalk",
[602] = "BarTendEmotePoint",
[603] = "FlyBarTendEmotePoint",
[604] = "BarServerStand",
[605] = "FlyBarServerStand",
[606] = "BarSweepWalk",
[607] = "FlyBarSweepWalk",
[608] = "BarSweepRun",
[609] = "FlyBarSweepRun",
[610] = "BarSweepShuffleLeft",
[611] = "FlyBarSweepShuffleLeft",
[612] = "BarSweepShuffleRight",
[613] = "FlyBarSweepShuffleRight",
[614] = "BarSweepEmoteTalk",
[615] = "FlyBarSweepEmoteTalk",
[616] = "BarPatronSitEmotePoint",
[617] = "FlyBarPatronSitEmotePoint",
[618] = "MountSelfIdle",
[619] = "FlyMountSelfIdle",
[620] = "MountSelfWalk",
[621] = "FlyMountSelfWalk",
[622] = "MountSelfRun",
[623] = "FlyMountSelfRun",
[624] = "MountSelfSprint",
[625] = "FlyMountSelfSprint",
[626] = "MountSelfRunLeft",
[627] = "FlyMountSelfRunLeft",
[628] = "MountSelfRunRight",
[629] = "FlyMountSelfRunRight",
[630] = "MountSelfShuffleLeft",
[631] = "FlyMountSelfShuffleLeft",
[632] = "MountSelfShuffleRight",
[633] = "FlyMountSelfShuffleRight",
[634] = "MountSelfWalkBackwards",
[635] = "FlyMountSelfWalkBackwards",
[636] = "MountSelfSpecial",
[637] = "FlyMountSelfSpecial",
[638] = "MountSelfJump",
[639] = "FlyMountSelfJump",
[640] = "MountSelfJumpStart",
[641] = "FlyMountSelfJumpStart",
[642] = "MountSelfJumpEnd",
[643] = "FlyMountSelfJumpEnd",
[644] = "MountSelfJumpLandRun",
[645] = "FlyMountSelfJumpLandRun",
[646] = "MountSelfStart",
[647] = "FlyMountSelfStart",
[648] = "MountSelfFall",
[649] = "FlyMountSelfFall",
[650] = "Stormstrike",
[651] = "FlyStormstrike",
[652] = "ReadyJoustNoSheathe",
[653] = "FlyReadyJoustNoSheathe",
[654] = "Slam",
[655] = "FlySlam",
[656] = "DeathStrike",
[657] = "FlyDeathStrike",
[658] = "SwimAttackUnarmed",
[659] = "FlySwimAttackUnarmed",
[660] = "SpinningKick",
[661] = "FlySpinningKick",
[662] = "RoundHouseKick",
[663] = "FlyRoundHouseKick",
[664] = "RollStart",
[665] = "FlyRollStart",
[666] = "Roll",
[667] = "FlyRoll",
[668] = "RollEnd",
[669] = "FlyRollEnd",
[670] = "PalmStrike",
[671] = "FlyPalmStrike",
[672] = "MonkOffenseAttackUnarmed",
[673] = "FlyMonkOffenseAttackUnarmed",
[674] = "MonkOffenseAttackUnarmedOff",
[675] = "FlyMonkOffenseAttackUnarmedOff",
[676] = "MonkOffenseParryUnarmed",
[677] = "FlyMonkOffenseParryUnarmed",
[678] = "MonkOffenseReadyUnarmed",
[679] = "FlyMonkOffenseReadyUnarmed",
[680] = "MonkOffenseSpecialUnarmed",
[681] = "FlyMonkOffenseSpecialUnarmed",
[682] = "MonkDefenseAttackUnarmed",
[683] = "FlyMonkDefenseAttackUnarmed",
[684] = "MonkDefenseAttackUnarmedOff",
[685] = "FlyMonkDefenseAttackUnarmedOff",
[686] = "MonkDefenseParryUnarmed",
[687] = "FlyMonkDefenseParryUnarmed",
[688] = "MonkDefenseReadyUnarmed",
[689] = "FlyMonkDefenseReadyUnarmed",
[690] = "MonkDefenseSpecialUnarmed",
[691] = "FlyMonkDefenseSpecialUnarmed",
[692] = "MonkHealAttackUnarmed",
[693] = "FlyMonkHealAttackUnarmed",
[694] = "MonkHealAttackUnarmedOff",
[695] = "FlyMonkHealAttackUnarmedOff",
[696] = "MonkHealParryUnarmed",
[697] = "FlyMonkHealParryUnarmed",
[698] = "MonkHealReadyUnarmed",
[699] = "FlyMonkHealReadyUnarmed",
[700] = "MonkHealSpecialUnarmed",
[701] = "FlyMonkHealSpecialUnarmed",
[702] = "FlyingKick",
[703] = "FlyFlyingKick",
[704] = "FlyingKickStart",
[705] = "FlyFlyingKickStart",
[706] = "FlyingKickEnd",
[707] = "FlyFlyingKickEnd",
[708] = "CraneStart",
[709] = "FlyCraneStart",
[710] = "CraneLoop",
[711] = "FlyCraneLoop",
[712] = "CraneEnd",
[713] = "FlyCraneEnd",
[714] = "Despawned",
[715] = "FlyDespawned",
[716] = "ThousandFists",
[717] = "FlyThousandFists",
[718] = "MonkHealReadySpellDirected",
[719] = "FlyMonkHealReadySpellDirected",
[720] = "MonkHealReadySpellOmni",
[721] = "FlyMonkHealReadySpellOmni",
[722] = "MonkHealSpellCastDirected",
[723] = "FlyMonkHealSpellCastDirected",
[724] = "MonkHealSpellCastOmni",
[725] = "FlyMonkHealSpellCastOmni",
[726] = "MonkHealChannelCastDirected",
[727] = "FlyMonkHealChannelCastDirected",
[728] = "MonkHealChannelCastOmni",
[729] = "FlyMonkHealChannelCastOmni",
[730] = "Torpedo",
[731] = "FlyTorpedo",
[732] = "Meditate",
[733] = "FlyMeditate",
[734] = "BreathOfFire",
[735] = "FlyBreathOfFire",
[736] = "RisingSunKick",
[737] = "FlyRisingSunKick",
[738] = "GroundKick",
[739] = "FlyGroundKick",
[740] = "KickBack",
[741] = "FlyKickBack",
[742] = "PetBattleStand",
[743] = "FlyPetBattleStand",
[744] = "PetBattleDeath",
[745] = "FlyPetBattleDeath",
[746] = "PetBattleRun",
[747] = "FlyPetBattleRun",
[748] = "PetBattleWound",
[749] = "FlyPetBattleWound",
[750] = "PetBattleAttack",
[751] = "FlyPetBattleAttack",
[752] = "PetBattleReadySpell",
[753] = "FlyPetBattleReadySpell",
[754] = "PetBattleSpellCast",
[755] = "FlyPetBattleSpellCast",
[756] = "PetBattleCustom0",
[757] = "FlyPetBattleCustom0",
[758] = "PetBattleCustom1",
[759] = "FlyPetBattleCustom1",
[760] = "PetBattleCustom2",
[761] = "FlyPetBattleCustom2",
[762] = "PetBattleCustom3",
[763] = "FlyPetBattleCustom3",
[764] = "PetBattleVictory",
[765] = "FlyPetBattleVictory",
[766] = "PetBattleLoss",
[767] = "FlyPetBattleLoss",
[768] = "PetBattleStun",
[769] = "FlyPetBattleStun",
[770] = "PetBattleDead",
[771] = "FlyPetBattleDead",
[772] = "PetBattleFreeze",
[773] = "FlyPetBattleFreeze",
[774] = "MonkOffenseAttackWeapon",
[775] = "FlyMonkOffenseAttackWeapon",
[776] = "BarTendEmoteWave",
[777] = "FlyBarTendEmoteWave",
[778] = "BarServerEmoteTalk",
[779] = "FlyBarServerEmoteTalk",
[780] = "BarServerEmoteWave",
[781] = "FlyBarServerEmoteWave",
[782] = "BarServerPourDrinks",
[783] = "FlyBarServerPourDrinks",
[784] = "BarServerPickup",
[785] = "FlyBarServerPickup",
[786] = "BarServerPutDown",
[787] = "FlyBarServerPutDown",
[788] = "BarSweepStand",
[789] = "FlyBarSweepStand",
[790] = "BarPatronSit",
[791] = "FlyBarPatronSit",
[792] = "BarPatronSitEmoteTalk",
[793] = "FlyBarPatronSitEmoteTalk",
[794] = "BarPatronStand",
[795] = "FlyBarPatronStand",
[796] = "BarPatronStandEmoteTalk",
[797] = "FlyBarPatronStandEmoteTalk",
[798] = "BarPatronStandEmotePoint",
[799] = "FlyBarPatronStandEmotePoint",
[800] = "CarrionSwarm",
[801] = "FlyCarrionSwarm",
[802] = "WheelLoop",
[803] = "FlyWheelLoop",
[804] = "StandCharacterCreate",
[805] = "FlyStandCharacterCreate",
[806] = "MountChopper",
[807] = "FlyMountChopper",
[808] = "FacePose",
[809] = "FlyFacePose",
[810] = "CombatAbility2HBig01",
[811] = "FlyCombatAbility2HBig01",
[812] = "CombatAbility2H01",
[813] = "FlyCombatAbility2H01",
[814] = "CombatWhirlwind",
[815] = "FlyCombatWhirlwind",
[816] = "CombatChargeLoop",
[817] = "FlyCombatChargeLoop",
[818] = "CombatAbility1H01",
[819] = "FlyCombatAbility1H01",
[820] = "CombatChargeEnd",
[821] = "FlyCombatChargeEnd",
[822] = "CombatAbility1H02",
[823] = "FlyCombatAbility1H02",
[824] = "CombatAbility1HBig01",
[825] = "FlyCombatAbility1HBig01",
[826] = "CombatAbility2H02",
[827] = "FlyCombatAbility2H02",
[828] = "ShaSpellPrecastBoth",
[829] = "FlyShaSpellPrecastBoth",
[830] = "ShaSpellCastBothFront",
[831] = "FlyShaSpellCastBothFront",
[832] = "ShaSpellCastLeftFront",
[833] = "FlyShaSpellCastLeftFront",
[834] = "ShaSpellCastRightFront",
[835] = "FlyShaSpellCastRightFront",
[836] = "ReadyCrossbow",
[837] = "FlyReadyCrossbow",
[838] = "LoadCrossbow",
[839] = "FlyLoadCrossbow",
[840] = "AttackCrossbow",
[841] = "FlyAttackCrossbow",
[842] = "HoldCrossbow",
[843] = "FlyHoldCrossbow",
[844] = "CombatAbility2HL01",
[845] = "FlyCombatAbility2HL01",
[846] = "CombatAbility2HL02",
[847] = "FlyCombatAbility2HL02",
[848] = "CombatAbility2HLBig01",
[849] = "FlyCombatAbility2HLBig01",
[850] = "CombatUnarmed01",
[851] = "FlyCombatUnarmed01",
[852] = "CombatStompLeft",
[853] = "FlyCombatStompLeft",
[854] = "CombatStompRight",
[855] = "FlyCombatStompRight",
[856] = "CombatLeapLoop",
[857] = "FlyCombatLeapLoop",
[858] = "CombatLeapEnd",
[859] = "FlyCombatLeapEnd",
[860] = "ShaReadySpellCast",
[861] = "FlyShaReadySpellCast",
[862] = "ShaSpellPrecastBothChannel",
[863] = "FlyShaSpellPrecastBothChannel",
[864] = "ShaSpellCastBothUp",
[865] = "FlyShaSpellCastBothUp",
[866] = "ShaSpellCastBothUpChannel",
[867] = "FlyShaSpellCastBothUpChannel",
[868] = "ShaSpellCastBothFrontChannel",
[869] = "FlyShaSpellCastBothFrontChannel",
[870] = "ShaSpellCastLeftFrontChannel",
[871] = "FlyShaSpellCastLeftFrontChannel",
[872] = "ShaSpellCastRightFrontChannel",
[873] = "FlyShaSpellCastRightFrontChannel",
[874] = "PriReadySpellCast",
[875] = "FlyPriReadySpellCast",
[876] = "PriSpellPrecastBoth",
[877] = "FlyPriSpellPrecastBoth",
[878] = "PriSpellPrecastBothChannel",
[879] = "FlyPriSpellPrecastBothChannel",
[880] = "PriSpellCastBothUp",
[881] = "FlyPriSpellCastBothUp",
[882] = "PriSpellCastBothFront",
[883] = "FlyPriSpellCastBothFront",
[884] = "PriSpellCastLeftFront",
[885] = "FlyPriSpellCastLeftFront",
[886] = "PriSpellCastRightFront",
[887] = "FlyPriSpellCastRightFront",
[888] = "PriSpellCastBothUpChannel",
[889] = "FlyPriSpellCastBothUpChannel",
[890] = "PriSpellCastBothFrontChannel",
[891] = "FlyPriSpellCastBothFrontChannel",
[892] = "PriSpellCastLeftFrontChannel",
[893] = "FlyPriSpellCastLeftFrontChannel",
[894] = "PriSpellCastRightFrontChannel",
[895] = "FlyPriSpellCastRightFrontChannel",
[896] = "MagReadySpellCast",
[897] = "FlyMagReadySpellCast",
[898] = "MagSpellPrecastBoth",
[899] = "FlyMagSpellPrecastBoth",
[900] = "MagSpellPrecastBothChannel",
[901] = "FlyMagSpellPrecastBothChannel",
[902] = "MagSpellCastBothUp",
[903] = "FlyMagSpellCastBothUp",
[904] = "MagSpellCastBothFront",
[905] = "FlyMagSpellCastBothFront",
[906] = "MagSpellCastLeftFront",
[907] = "FlyMagSpellCastLeftFront",
[908] = "MagSpellCastRightFront",
[909] = "FlyMagSpellCastRightFront",
[910] = "MagSpellCastBothUpChannel",
[911] = "FlyMagSpellCastBothUpChannel",
[912] = "MagSpellCastBothFrontChannel",
[913] = "FlyMagSpellCastBothFrontChannel",
[914] = "MagSpellCastLeftFrontChannel",
[915] = "FlyMagSpellCastLeftFrontChannel",
[916] = "MagSpellCastRightFrontChannel",
[917] = "FlyMagSpellCastRightFrontChannel",
[918] = "LocReadySpellCast",
[919] = "FlyLocReadySpellCast",
[920] = "LocSpellPrecastBoth",
[921] = "FlyLocSpellPrecastBoth",
[922] = "LocSpellPrecastBothChannel",
[923] = "FlyLocSpellPrecastBothChannel",
[924] = "LocSpellCastBothUp",
[925] = "FlyLocSpellCastBothUp",
[926] = "LocSpellCastBothFront",
[927] = "FlyLocSpellCastBothFront",
[928] = "LocSpellCastLeftFront",
[929] = "FlyLocSpellCastLeftFront",
[930] = "LocSpellCastRightFront",
[931] = "FlyLocSpellCastRightFront",
[932] = "LocSpellCastBothUpChannel",
[933] = "FlyLocSpellCastBothUpChannel",
[934] = "LocSpellCastBothFrontChannel",
[935] = "FlyLocSpellCastBothFrontChannel",
[936] = "LocSpellCastLeftFrontChannel",
[937] = "FlyLocSpellCastLeftFrontChannel",
[938] = "LocSpellCastRightFrontChannel",
[939] = "FlyLocSpellCastRightFrontChannel",
[940] = "DruReadySpellCast",
[941] = "FlyDruReadySpellCast",
[942] = "DruSpellPrecastBoth",
[943] = "FlyDruSpellPrecastBoth",
[944] = "DruSpellPrecastBothChannel",
[945] = "FlyDruSpellPrecastBothChannel",
[946] = "DruSpellCastBothUp",
[947] = "FlyDruSpellCastBothUp",
[948] = "DruSpellCastBothFront",
[949] = "FlyDruSpellCastBothFront",
[950] = "DruSpellCastLeftFront",
[951] = "FlyDruSpellCastLeftFront",
[952] = "DruSpellCastRightFront",
[953] = "FlyDruSpellCastRightFront",
[954] = "DruSpellCastBothUpChannel",
[955] = "FlyDruSpellCastBothUpChannel",
[956] = "DruSpellCastBothFrontChannel",
[957] = "FlyDruSpellCastBothFrontChannel",
[958] = "DruSpellCastLeftFrontChannel",
[959] = "FlyDruSpellCastLeftFrontChannel",
[960] = "DruSpellCastRightFrontChannel",
[961] = "FlyDruSpellCastRightFrontChannel",
[962] = "ArtMainLoop",
[963] = "FlyArtMainLoop",
[964] = "ArtDualLoop",
[965] = "FlyArtDualLoop",
[966] = "ArtFistsLoop",
[967] = "FlyArtFistsLoop",
[968] = "ArtBowLoop",
[969] = "FlyArtBowLoop",
[970] = "CombatAbility1H01Off",
[971] = "FlyCombatAbility1H01Off",
[972] = "CombatAbility1H02Off",
[973] = "FlyCombatAbility1H02Off",
[974] = "CombatFuriousStrike01",
[975] = "FlyCombatFuriousStrike01",
[976] = "CombatFuriousStrike02",
[977] = "FlyCombatFuriousStrike02",
[978] = "CombatFuriousStrikes",
[979] = "FlyCombatFuriousStrikes",
[980] = "CombatReadySpellCast",
[981] = "FlyCombatReadySpellCast",
[982] = "CombatShieldThrow",
[983] = "FlyCombatShieldThrow",
[984] = "PalSpellCast1HUp",
[985] = "FlyPalSpellCast1HUp",
[986] = "CombatReadyPostSpellCast",
[987] = "FlyCombatReadyPostSpellCast",
[988] = "PriReadyPostSpellCast",
[989] = "FlyPriReadyPostSpellCast",
[990] = "DHCombatRun",
[991] = "FlyDHCombatRun",
[992] = "CombatShieldBash",
[993] = "FlyCombatShieldBash",
[994] = "CombatThrow",
[995] = "FlyCombatThrow",
[996] = "CombatAbility1HPierce",
[997] = "FlyCombatAbility1HPierce",
[998] = "CombatAbility1HOffPierce",
[999] = "FlyCombatAbility1HOffPierce",
[1000] = "CombatMutilate",
[1001] = "FlyCombatMutilate",
[1002] = "CombatBladeStorm",
[1003] = "FlyCombatBladeStorm",
[1004] = "CombatFinishingMove",
[1005] = "FlyCombatFinishingMove",
[1006] = "CombatLeapStart",
[1007] = "FlyCombatLeapStart",
[1008] = "GlvThrowMain",
[1009] = "FlyGlvThrowMain",
[1010] = "GlvThrownOff",
[1011] = "FlyGlvThrownOff",
[1012] = "DHCombatSprint",
[1013] = "FlyDHCombatSprint",
[1014] = "CombatAbilityGlv01",
[1015] = "FlyCombatAbilityGlv01",
[1016] = "CombatAbilityGlv02",
[1017] = "FlyCombatAbilityGlv02",
[1018] = "CombatAbilityGlvOff01",
[1019] = "FlyCombatAbilityGlvOff01",
[1020] = "CombatAbilityGlvOff02",
[1021] = "FlyCombatAbilityGlvOff02",
[1022] = "CombatAbilityGlvBig01",
[1023] = "FlyCombatAbilityGlvBig01",
[1024] = "CombatAbilityGlvBig02",
[1025] = "FlyCombatAbilityGlvBig02",
[1026] = "ReadyGlv",
[1027] = "FlyReadyGlv",
[1028] = "CombatAbilityGlvBig03",
[1029] = "FlyCombatAbilityGlvBig03",
[1030] = "DoubleJumpStart",
[1031] = "FlyDoubleJumpStart",
[1032] = "DoubleJump",
[1033] = "FlyDoubleJump",
[1034] = "CombatEviscerate",
[1035] = "FlyCombatEviscerate",
[1036] = "DoubleJumpLandRun",
[1037] = "FlyDoubleJumpLandRun",
[1038] = "BackFlipStart",
[1039] = "FlyBackFlipStart",
[1040] = "BackFlipLoop",
[1041] = "FlyBackFlipLoop",
[1042] = "FelRushLoop",
[1043] = "FlyFelRushLoop",
[1044] = "FelRushEnd",
[1045] = "FlyFelRushEnd",
[1046] = "DHToAlteredStart",
[1047] = "FlyDHToAlteredStart",
[1048] = "DHToAlteredEnd",
[1049] = "FlyDHToAlteredEnd",
[1050] = "DHGlide",
[1051] = "FlyDHGlide",
[1052] = "FanOfKnives",
[1053] = "FlyFanOfKnives",
[1054] = "SingleJumpStart",
[1055] = "FlySingleJumpStart",
[1056] = "DHBladeDance1",
[1057] = "FlyDHBladeDance1",
[1058] = "DHBladeDance2",
[1059] = "FlyDHBladeDance2",
[1060] = "DHBladeDance3",
[1061] = "FlyDHBladeDance3",
[1062] = "DHMeteorStrike",
[1063] = "FlyDHMeteorStrike",
[1064] = "CombatExecute",
[1065] = "FlyCombatExecute",
[1066] = "ArtLoop",
[1067] = "FlyArtLoop",
[1068] = "ParryGlv",
[1069] = "FlyParryGlv",
[1070] = "CombatUnarmed02",
[1071] = "FlyCombatUnarmed02",
[1072] = "CombatPistolShot",
[1073] = "FlyCombatPistolShot",
[1074] = "CombatPistolShotOff",
[1075] = "FlyCombatPistolShotOff",
[1076] = "Monk2HLIdle",
[1077] = "FlyMonk2HLIdle",
[1078] = "ArtShieldLoop",
[1079] = "FlyArtShieldLoop",
[1080] = "CombatAbility2H03",
[1081] = "FlyCombatAbility2H03",
[1082] = "CombatStomp",
[1083] = "FlyCombatStomp",
[1084] = "CombatRoar",
[1085] = "FlyCombatRoar",
[1086] = "PalReadySpellCast",
[1087] = "FlyPalReadySpellCast",
[1088] = "PalSpellPrecastRight",
[1089] = "FlyPalSpellPrecastRight",
[1090] = "PalSpellPrecastRightChannel",
[1091] = "FlyPalSpellPrecastRightChannel",
[1092] = "PalSpellCastRightFront",
[1093] = "FlyPalSpellCastRightFront",
[1094] = "ShaSpellCastBothOut",
[1095] = "FlyShaSpellCastBothOut",
[1096] = "AttackWeapon",
[1097] = "FlyAttackWeapon",
[1098] = "ReadyWeapon",
[1099] = "FlyReadyWeapon",
[1100] = "AttackWeaponOff",
[1101] = "FlyAttackWeaponOff",
[1102] = "SpecialDual",
[1103] = "FlySpecialDual",


Simca 05-27-16 11:49 PM

As an update to this, they removed FileDataComplete.db2 in yesterday's build (21796), so we will no longer know future file paths without guessing and bruteforcing.*

* There are a few exceptions: File paths in Interface\* are in ManifestInterfaceData. File paths in Shaders\* are hardcoded into the game client. Other than that, everything will be bruteforcing, guesswork, and extrapolating from adt, wmo, and m2 files (which use both filedataIDs and file paths, despite the redundancy).

Resike 05-28-16 10:43 AM

Quote:

Originally Posted by Simca (Post 315281)
As an update to this, they removed FileDataComplete.db2 in yesterday's build (21796), so we will no longer know future file paths without guessing and bruteforcing.*

* There are a few exceptions: File paths in Interface\* are in ManifestInterfaceData. File paths in Shaders\* are hardcoded into the game client. Other than that, everything will be bruteforcing, guesswork, and extrapolating from adt, wmo, and m2 files (which use both filedataIDs and file paths, despite the redundancy).

I don't see how could they do this without a filepath table. Maybe there is a table, but they moved it up to the C code?

Simca 05-28-16 10:58 AM

Quote:

Originally Posted by Resike (Post 315294)
I don't see how could they do this without a filepath table. Maybe there is a table, but they moved it up to the C code?

CASC files are indexed by FileDataID and NameHash. All the client needs to get a pointer to a file is a FileDataID.

Ketho 07-02-16 05:21 PM

I'm a complete noob with models and got no clue what the FileDataID and NameHash stuff is :confused:
Recently heard on #wowuidev that the reason for the change could be a combination of performance and memory

But my question is, why does playermodel:GetDisplayInfo() return 0 after running playermodel:SetUnit("target") ?
Is it even possible to get a displayId from a specific unitId?

Maybe then it would be possible to get the modelpath from Resike's AllModels.lua if it was put in a library

It could help the Storyline addon if that was possible. There also was a recent reddit post about it
https://www.reddit.com/r/wow/comment...xt_in_the_post



Lua Code:
  1. -- from CreatureDisplayInfo.db2 or CreatureModelData.db2 (?)
  2. local paths = {
  3.     [0] = "none",
  4.     [32806] = "character\\human\\female\\humanfemale_hd.m2", -- Vanessa VanCleef
  5. }
  6.  
  7. local m = CreateFrame("PlayerModel")
  8. m:SetPoint("CENTER")
  9. m:SetSize(500, 500)
  10.  
  11. local function GetDisplayId(unit)
  12.     m:SetUnit(unit)
  13.     return m:GetDisplayInfo() -- always returns 0 ...
  14. end
  15.  
  16. -- test target
  17. local displayId = GetDisplayId("target")
  18. local modelpath = paths[displayId]
  19. print(modelpath) -- prints "none"
  20.  
  21. -- test vancleef
  22. m:SetDisplayInfo(32806)
  23. local displayId = m:GetDisplayInfo() -- gets 32806
  24. local modelpath = paths[displayId]
  25. print(modelpath) -- prints "character\\human\\female\\humanfemale_hd.m2"

semlar 07-02-16 06:38 PM

Quote:

Originally Posted by Ketho (Post 316126)
But my question is, why does playermodel:GetDisplayInfo() return 0 after running playermodel:SetUnit("target") ?
Is it even possible to get a displayId from a specific unitId?

GetDisplayInfo returns the value of SetDisplayInfo. You can't get a displayID from a unit because they don't have one, or at least not in the same sense as that api function.

I only skimmed over that giant block of text they wrote because I'm practically illiterate, but if I understand the gist of the problem they can't scale the model properly because they don't know what it is since blizzard removed GetModel, which is absurd because they have the unitID and can get the race from that.

I'm not sure why they need the animation lengths as I've never used the addon, but you can just tell the model to play a specific animation with PlayAnimKit and it will play it through.

Actually PlayAnimKit appears to be broken at the moment, but you can use FreezeAnimation and SetSequence to do the same thing.

Resike 07-03-16 02:49 AM

Quote:

Originally Posted by semlar (Post 316127)
I only skimmed over that giant block of text they wrote because I'm practically illiterate, but if I understand the gist of the problem they can't scale the model properly because they don't know what it is since blizzard removed GetModel, which is absurd because they have the unitID and can get the race from that.

How is that gonna help on a totally random model i want to draw ont he screen? Also every model has different camera postions, i just want to get the proper values to manipulate the camera angles further.

Lua Code:
  1. function GetBaseCameraTarget(model)
  2.     local modelfile = model:GetModel()
  3.     if modelfile and modelfile ~= "" then
  4.         local tempmodel = CreateFrame("PlayerModel", nil, UIParent)
  5.         tempmodel:SetModel(modelfile)
  6.         tempmodel:SetCustomCamera(1)
  7.         local x, y, z = tempmodel:GetCameraTarget()
  8.         tempmodel:ClearModel()
  9.         return x, y, z
  10.     end
  11. end


All times are GMT -6. The time now is 10:26 PM.

vBulletin © 2020, Jelsoft Enterprises Ltd
© 2004 - 2020 MMOUI