1
Fork 0
mirror of https://bitbucket.org/Ioncannon/project-meteor-server.git synced 2025-04-20 11:47:48 +00:00
project-meteor-server/Data/scripts/retainer.lua

59 lines
No EOL
1.8 KiB
Lua

--[[
Common Retainer Stuff
Retainer Say Codes:
1: Hired
2: When called
3: Error when cannot call retainer
4: Dismissed
5: ??
6: Sold X items report.
7: Nothing got sold.
8: Retainer payed???
9: Retainer dismissed due to not paid.
10: Retainer dismissed by player.
--]]
function doItemTrade(player, retainer)
callClientFunction(player, "eventTalkRetainerItemTrade", 1);
while (true) do
resultCode, item, un1, quantity, itemId, quality = callClientFunction(player, "eventTalkRetainerItemTrade", 2);
player:SendMessage(0x20, "", "" .. tostring(resultCode));
player:SendMessage(0x20, "", "" .. tostring(un1));
player:SendMessage(0x20, "", "" .. tostring(quantity));
player:SendMessage(0x20, "", "" .. tostring(itemId));
player:SendMessage(0x20, "", "" .. tostring(quality));
--Retreieve
if (resultCode == 31) then
retainer:GetItemPackage(item.itemPackage):RemoveItemAtSlot(item.slot, quantity);
retainer:GetItemPackage(item.itemPackage):SendUpdatePackets(player, true);
player:GetItemPackage(item.itemPackage):AddItem(itemId, quantity, quality);
--Entrust
elseif (resultCode == 32) then
player:GetItemPackage(item.itemPackage):RemoveItemAtSlot(item.slot, quantity);
retainer:GetItemPackage(item.itemPackage):AddItem(itemId, quantity, quality);
retainer:GetItemPackage(item.itemPackage):SendUpdatePackets(player, true);
end
callClientFunction(player, "eventReturnResult", resultCode, false);
if (resultCode == 100) then
break
end
end
callClientFunction(player, "eventTalkRetainerItemTrade", 3);
end
function doBazaar(player, retainer)
callClientFunction(player, "eventTalkRetainerItemList", 1);
callClientFunction(player, "eventTalkRetainerItemList", 2);
callClientFunction(player, "eventTalkRetainerItemList", 3);
end