Scripts for retainers. Adds item storage functionality.

This commit is contained in:
Filip Maj 2017-09-09 14:12:38 -04:00
parent 64006d2351
commit 4160622556
3 changed files with 15 additions and 9 deletions

View File

@ -39,9 +39,9 @@ function onEventStarted(player, npc, triggerName)
while (true) do while (true) do
choice = callClientFunction(player, "eventTalkRetainerMenu", false, true); choice = callClientFunction(player, "eventTalkRetainerMenu", false, true);
if (choice == 1) then if (choice == 1) then
doItemTrade(player, npc); doItemTrade(player, retainer);
elseif (choice == 2) then elseif (choice == 2) then
doBazaar(player, npc); doBazaar(player, retainer);
elseif (choice == 7) then elseif (choice == 7) then
callClientFunction(player, "eventTalkRetainerMannequin", 0); callClientFunction(player, "eventTalkRetainerMannequin", 0);
elseif (choice == 8) then elseif (choice == 8) then

View File

@ -24,6 +24,10 @@ function init(npc)
return false, false, 0, 0; return false, false, 0, 0;
end end
function onSpawn(player, npc)
npc:SendFullRetainerInventory(player);
end
function onEventStarted(player, retainer, triggerName) function onEventStarted(player, retainer, triggerName)
while (true) do while (true) do

View File

@ -22,16 +22,18 @@ function doItemTrade(player, retainer)
callClientFunction(player, "eventTalkRetainerItemTrade", 1); callClientFunction(player, "eventTalkRetainerItemTrade", 1);
while (true) do while (true) do
resultCode, type7Param, un1, quantity, itemId, unk2 = callClientFunction(player, "eventTalkRetainerItemTrade", 2); resultCode, type7Param, un1, quantity, itemId, quality = callClientFunction(player, "eventTalkRetainerItemTrade", 2);
--Retreieve --Retreieve
if (resultCode == 31) then if (resultCode == 31) then
--UpdatePlayer retainer:GetInventory(type7Param.inventoryType):RemoveItemAtSlot(type7Param.slot, quantity);
--UpdateRetainer retainer:GetInventory(type7Param.inventoryType):SendUpdatePackets(player, true);
player:GetInventory(type7Param.inventoryType):AddItem(itemId, quantity, quality);
--Entrust --Entrust
elseif (resultCode == 32) then elseif (resultCode == 32) then
--UpdatePlayer player:GetInventory(type7Param.inventoryType):RemoveItemAtSlot(type7Param.slot, quantity);
--UpdateRetainer retainer:GetInventory(type7Param.inventoryType):AddItem(itemId, quantity, quality);
retainer:GetInventory(type7Param.inventoryType):SendUpdatePackets(player, true);
end end
callClientFunction(player, "eventReturnResult", resultCode, false); callClientFunction(player, "eventReturnResult", resultCode, false);