require("global"); properties = { permissions = 0, parameters = "dddd", description = [[ Sets anim id for current target !anim | !anim ]], } function onTrigger(player, argc, aType, a1, a2, uID) --if uID == nil then uID = "test"; end local npc = GetWorldManager():GetActorInWorld(player.currentTarget) or nil; --npc = GetWorldManager():GetActorInWorldByUniqueId(uID); --[[ if argc == 1 then -- aType = tonumber(aType, 16) or 0; if aType > 4294967295 then player:SendMessage(0x20, "[anim] ", "Error: Value too large"); return; else player:PlayAnimation(aType); end else--]] aType = tonumber(aType) or 0; a1 = tonumber(a1) or 0; a2 = tonumber(a2) or 1; a1 = bit32.band(a1, 0xFFF); a2 = bit32.band(a2, 0xFFF); aType = bit32.band(aType, 0xFF); animId = bit32.bor(bit32.lshift(a2, 12), a1); animId = bit32.bor(bit32.lshift(aType, 24), animId); print(animId); --[[ if npc == nil then player:PlayAnimation(animId); else npc:PlayAnimation(animId); end --]] local actor = player.CurrentArea.FindActorInArea(player.currentTarget) or nil; if player and actor then a1 = bit32.band(a1, 0xFFF); a2 = bit32.band(a2, 0xFFF); aType = bit32.band(aType, 0xFF); animId = bit32.bor(bit32.lshift(a2, 12), a1); animId = bit32.bor(bit32.lshift(aType, 24), animId); -- player:SendMessage(0x20, "[anim] ", tostring(animId)); actor:PlayAnimation(animId); local output = string.format("%x", animId) player:SendMessage(0x20, "[anim] ", "0x"..tostring(output).. " Target:"..tostring(actor)); end; end; --[[ Categories: 1 MGK: 01 - Magic 2 SYS: 02 - System noises 3 ETC: 03 - ?? - Item sound? 4 LIB: 04 - Posing animations 5-9 ITM: 05-09 - Items 10 KAO: 0A - KAO = Face emotes? 11-12 GLI1/2/3: 0B/0C - Leve card things 13 CBI: 0D - Two small effects 14 ABL: 0E - Cooldown buffs 15 POP: 0F - Warp effects 16 CFT: 10 - Crafting? 17 BTL: 11 - More Crafting? 18 WSC: 12 - Weapon Skills Arg1 - Weapon Skill Arg2 - Player Animation 19 WSS: 13 - Mob animations 20 PIC: 14 - Gathering weapons? 21 LIU: 15 - Player Hand Emotes 22 LIN: 16 - Doesn't exist? 23 LIF: 17 - Doesn't exist? 24 LIL: 18 - Mouth 25 ATK: 19 - Autoattacks 33 = ? 34 = Crash 120 = ??? CATEGORY Shift 18 bits right CMP 0xB ANIMATION?????? Shift 0xC bits right AND 0x0FFF PARTICLE EFFECT AND 0x0FFF This number is in the subfolder (wsc, abi, etc) That 12 is: CMP 7C CMP 6f CMP 70 CMP 71 7C000062 ec000000 00FFFFFF BTL: ETC: GL2: KAO: MGK: 01 SYS: 02 LIB: 046 ITM: 05-09 GL?: 0B GL1: 0C CBI: 0D ABL: 0E POP: 0F CFT: 10 PIC: 14 WSC: 12 19: Auto Attack? 6F: Casting 71: Seems to deal with signaling monster parts 7C: Sheath/Unsheath 7F: Cast failed --]]