1
Fork 0
mirror of https://bitbucket.org/Ioncannon/project-meteor-server.git synced 2025-04-22 04:37:47 +00:00
project-meteor-server/Data/scripts/commands/gm/anim.lua

153 lines
3 KiB
Lua
Raw Normal View History

require("global");
properties = {
permissions = 0,
parameters = "dddd",
description =
[[
Sets anim id for current target
!anim <animID> |
!anim <category> <effect> <motion>
]],
}
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
--]]