mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-25 06:07:46 +00:00
Figured out and implemented the Retainer scripts.
This commit is contained in:
parent
f437b36f5a
commit
40ad1d8a29
3 changed files with 105 additions and 15 deletions
|
@ -10,23 +10,47 @@ eventPushRetainerCallCaution() - Shows warning that a open bazaar will be closed
|
||||||
eventTalkRetainerMenu(hasPossessions, showDispatchChoice) - Opens retainer menu.
|
eventTalkRetainerMenu(hasPossessions, showDispatchChoice) - Opens retainer menu.
|
||||||
eventTalkRetainerDismissal(hasPossessions) - Show dismiss confirmation.
|
eventTalkRetainerDismissal(hasPossessions) - Show dismiss confirmation.
|
||||||
eventTalkRetainerMannequin(0:Enable/1:Disable) - Shows dialog to enable/disable modeling.
|
eventTalkRetainerMannequin(0:Enable/1:Disable) - Shows dialog to enable/disable modeling.
|
||||||
eventTalkRetainerItemTrade(?) - ??Opens retainer storage??
|
eventTalkRetainerItemTrade(operationCode) - Operate RetainerTradeWidget. Codes: 1 - Open, 2 - Select Mode, 3 - Close.
|
||||||
eventTalkRetainerItemList(?) - ??Opens bazaar??
|
eventTalkRetainerItemList(operationCode) - Operate Bazaar Widget. Codes: 1 - Open, 2 - Select Mode, 3 - Close.
|
||||||
eventReturnResult(?, ?) - ??Trade related??
|
eventReturnResult(resultCode, ?) - Redraws the RetainerTrade UI.
|
||||||
eventTalkSelectBazaarStreet(limitsWardChoices) - Shows the dialog to send a retainer to a street. Set to 20.
|
eventTalkSelectBazaarStreet(limitsWardChoices) - Shows the dialog to send a retainer to a street. Set to 20.
|
||||||
eventTalkFinish() - Finishs the talk with retainer
|
eventTalkFinish() - Finishs the talk with retainer
|
||||||
eventPlayerTurn(rotation) - Turns the player
|
eventPlayerTurn(rotation) - Turns the player
|
||||||
--]]
|
--]]
|
||||||
|
|
||||||
require ("global")
|
require ("global")
|
||||||
|
require ("retainer")
|
||||||
|
|
||||||
function init(npc)
|
function init(npc)
|
||||||
return false, false, 0, 0;
|
return false, false, 0, 0;
|
||||||
end
|
end
|
||||||
|
|
||||||
function onEventStarted(player, npc, triggerName)
|
function onEventStarted(player, npc, triggerName)
|
||||||
retainerNumber = callClientFunction(player, "eventPushRetainerCallCaution", true, false);
|
retainerNumber = callClientFunction(player, "eventPushStepOpenRetainerMenu");
|
||||||
--player:SpawnMyRetainer(npc, retainerNumber);
|
|
||||||
--callClientFunction(player, "eventRingBell");
|
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, npc);
|
||||||
|
elseif (choice == 2) then
|
||||||
|
doBazaar(player, npc);
|
||||||
|
elseif (choice == 7) then
|
||||||
|
callClientFunction(player, "eventTalkRetainerMannequin", 0);
|
||||||
|
elseif (choice == 8) then
|
||||||
|
callClientFunction(player, "eventTalkSelectBazaarStreet", 20);
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
player:DespawnMyRetainer();
|
||||||
player:EndEvent();
|
player:EndEvent();
|
||||||
end
|
end
|
|
@ -8,9 +8,9 @@ eventTalkRetainerOther() -
|
||||||
eventTalkRetainerMenu(mode, hasPossessions) - Opens the main menu. If mode == 2, hide dismiss option.
|
eventTalkRetainerMenu(mode, hasPossessions) - Opens the main menu. If mode == 2, hide dismiss option.
|
||||||
eventTalkRetainerDismissal(hasPossessions) - Show dismiss confirmation.
|
eventTalkRetainerDismissal(hasPossessions) - Show dismiss confirmation.
|
||||||
eventTalkRetainerMannequin(0:enable/1:disable confirm) - Show bazaar modeling confirmation.
|
eventTalkRetainerMannequin(0:enable/1:disable confirm) - Show bazaar modeling confirmation.
|
||||||
eventTalkRetainerItemTrade(?) - ??Opens retainer storage??
|
eventTalkRetainerItemTrade(operationCode) - Operate RetainerTradeWidget. Codes: 1 - Open, 2 - Select Mode, 3 - Close.
|
||||||
eventTalkRetainerItemList(?) - ??Opens bazaar??
|
eventTalkRetainerItemList(operationCode) - Operate Bazaar Widget. Codes: 1 - Open, 2 - Select Mode, 3 - Close.
|
||||||
eventReturnResult(?, ?) - ??Trade related??
|
eventReturnResult(resultCode, ?) - Redraws the RetainerTrade UI.
|
||||||
sayToPlayer(actorClassId, messageType, argument) - Makes the retainer say a phrase to the player.
|
sayToPlayer(actorClassId, messageType, argument) - Makes the retainer say a phrase to the player.
|
||||||
eventTalkFinish() - Stops npc from looking at player.
|
eventTalkFinish() - Stops npc from looking at player.
|
||||||
eventPlayerTurn(angle) - Turns player to angle.
|
eventPlayerTurn(angle) - Turns player to angle.
|
||||||
|
@ -18,14 +18,29 @@ eventPlayerTurn(angle) - Turns player to angle.
|
||||||
--]]
|
--]]
|
||||||
|
|
||||||
require ("global")
|
require ("global")
|
||||||
|
require ("retainer")
|
||||||
|
|
||||||
function init(npc)
|
function init(npc)
|
||||||
return false, false, 0, 0;
|
return false, false, 0, 0;
|
||||||
end
|
end
|
||||||
|
|
||||||
function onEventStarted(player, npc, triggerName)
|
function onEventStarted(player, retainer, triggerName)
|
||||||
|
|
||||||
|
while (true) do
|
||||||
|
choice = callClientFunction(player, "eventTalkRetainerMenu", 1);
|
||||||
|
if (choice == 1) then
|
||||||
|
doItemTrade(player, retainer);
|
||||||
|
elseif (choice == 2) then
|
||||||
|
doBazaar(player, retainer);
|
||||||
|
elseif (choice == 7) then
|
||||||
|
callClientFunction(player, "eventTalkRetainerMannequin", 0);
|
||||||
|
elseif (choice == 5) then
|
||||||
|
player:DespawnMyRetainer();
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
callClientFunction(player, "eventTalkRetainerItemList", 1);
|
|
||||||
--callClientFunction(player, "eventTalkRetainerDismissal", 0, false);
|
|
||||||
player:EndEvent();
|
player:EndEvent();
|
||||||
|
|
||||||
end
|
end
|
51
data/scripts/retainer.lua
Normal file
51
data/scripts/retainer.lua
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
--[[
|
||||||
|
|
||||||
|
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, type7Param, un1, quantity, itemId, unk2 = callClientFunction(player, "eventTalkRetainerItemTrade", 2);
|
||||||
|
|
||||||
|
--Retreieve
|
||||||
|
if (resultCode == 31) then
|
||||||
|
--UpdatePlayer
|
||||||
|
--UpdateRetainer
|
||||||
|
--Entrust
|
||||||
|
elseif (resultCode == 32) then
|
||||||
|
--UpdatePlayer
|
||||||
|
--UpdateRetainer
|
||||||
|
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
|
Loading…
Add table
Reference in a new issue