mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-02 19:42:05 -04:00
57 lines
1.9 KiB
Lua
57 lines
1.9 KiB
Lua
--[[
|
|
|
|
RetainerFurniture Script
|
|
|
|
Functions:
|
|
|
|
eventPushStepOpenRetainerMenu() - Opens menu to choose retainer
|
|
eventRingBell() - Plays the bell ring animation
|
|
eventPushRetainerCallCaution() - Shows warning that a open bazaar will be closed if retainer chosen
|
|
eventTalkRetainerMenu(hasPossessions, showDispatchChoice) - Opens retainer menu.
|
|
eventTalkRetainerDismissal(hasPossessions) - Show dismiss confirmation.
|
|
eventTalkRetainerMannequin(0:Enable/1:Disable) - Shows dialog to enable/disable modeling.
|
|
eventTalkRetainerItemTrade(operationCode) - Operate RetainerTradeWidget. Codes: 1 - Open, 2 - Select Mode, 3 - Close.
|
|
eventTalkRetainerItemList(operationCode) - Operate Bazaar Widget. Codes: 1 - Open, 2 - Select Mode, 3 - Close.
|
|
eventReturnResult(resultCode, ?) - Redraws the RetainerTrade UI.
|
|
eventTalkSelectBazaarStreet(limitsWardChoices) - Shows the dialog to send a retainer to a street. Set to 20.
|
|
eventTalkFinish() - Finishs the talk with retainer
|
|
eventPlayerTurn(rotation) - Turns the player
|
|
--]]
|
|
|
|
require ("global")
|
|
require ("retainer")
|
|
|
|
function init(npc)
|
|
return false, false, 0, 0;
|
|
end
|
|
|
|
function onEventStarted(player, npc, triggerName)
|
|
retainerNumber = callClientFunction(player, "eventPushStepOpenRetainerMenu");
|
|
|
|
if (retainerNumber == nil or retainerNumber == 0) then
|
|
player:EndEvent();
|
|
return;
|
|
end
|
|
|
|
callClientFunction(player, "eventRingBell");
|
|
retainer = player:SpawnMyRetainer(npc, retainerNumber);
|
|
|
|
while (true) do
|
|
choice = callClientFunction(player, "eventTalkRetainerMenu", false, true);
|
|
if (choice == 1) then
|
|
doItemTrade(player, retainer);
|
|
elseif (choice == 2) then
|
|
doBazaar(player, retainer);
|
|
elseif (choice == 7) then
|
|
callClientFunction(player, "eventTalkRetainerMannequin", 0);
|
|
elseif (choice == 8) then
|
|
callClientFunction(player, "eventTalkSelectBazaarStreet", 20);
|
|
else
|
|
break;
|
|
end
|
|
end
|
|
|
|
player:DespawnMyRetainer();
|
|
player:EndEvent();
|
|
end
|