mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-20 11:47:48 +00:00
55 lines
1.6 KiB
Lua
55 lines
1.6 KiB
Lua
![]() |
--[[
|
||
|
|
||
|
BazaarTradeCommand Script
|
||
|
|
||
|
Handles bazaar trade
|
||
|
|
||
|
All bazaar args have a Reward (The item the person who fufills the request gets) and a Seek (The item the player wants, either gil or an item).
|
||
|
|
||
|
--]]
|
||
|
|
||
|
--TODO REFACTOR
|
||
|
|
||
|
function onEventStarted(player, actor, triggerName, rewardItem, seekItemOrCost, seekAmount, arg1, bazaarActorId, rewardAmount, rewardItemId, nameIndex, arg2, type9ItemIds)
|
||
|
|
||
|
local originalReward = nil;
|
||
|
local originalSeek = nil;
|
||
|
local bazaarActor = nil;
|
||
|
|
||
|
--Get the bazaar actor
|
||
|
if (bazaarActorId ~= nil) then
|
||
|
bazaarActor = player:GetZone():FindActorInArea(bazaarActorId);
|
||
|
end
|
||
|
|
||
|
--Abort if no actor
|
||
|
if (bazaarActor == nil) then
|
||
|
player:SendGameMessage(player, worldMaster, 25111, 0x20);
|
||
|
player:EndEvent();
|
||
|
return;
|
||
|
end
|
||
|
|
||
|
--If seekItem is a number, we are buying an item (ExecuteBazaarBuy)
|
||
|
if (type(seekItemOrCost) == "number") then
|
||
|
if (player:GetCurrentGil() >= seekItemOrCost) then
|
||
|
if (GetWorldManager():BazaarBuyOperation(bazaarActor, player, bazaarActor:GetItem(rewardItem), rewardAmount, seekItemOrCost)) then
|
||
|
else
|
||
|
player:SendGameMessage(player, worldMaster, 25111, 0x20);
|
||
|
end
|
||
|
else
|
||
|
player:SendGameMessage(player, worldMaster, 40252, 0x20);
|
||
|
end
|
||
|
else --Else we are fufilling a sought out item (ExecuteBazaarSell)
|
||
|
local rewardItem = bazaarActor:GetItem(rewardItem);
|
||
|
local seekItem = player:GetItem(seekItemOrCost);
|
||
|
if (rewardItem ~= nil and seekItem ~= nil) then
|
||
|
if (GetWorldManager():BazaarSellOperation(bazaarActor, player, rewardItem, rewardAmount, seekItem, seekAmount)) then
|
||
|
else
|
||
|
player:SendGameMessage(player, worldMaster, 25111, 0x20);
|
||
|
end
|
||
|
else
|
||
|
end
|
||
|
end
|
||
|
|
||
|
player:EndEvent();
|
||
|
|
||
|
end
|