1
Fork 0
mirror of https://bitbucket.org/Ioncannon/project-meteor-server.git synced 2025-04-22 20:57:47 +00:00

Cleaned up Bazaar deal/undeal scripts and disabled the check one due to an lockup. Needs lua rework to fix.

This commit is contained in:
Filip Maj 2019-06-06 01:45:06 -04:00
parent 3dcd9af6c0
commit c286df6a91
4 changed files with 36 additions and 46 deletions

View file

@ -19,7 +19,8 @@ function onEventStarted(player, actor, triggerName, name, arg1, arg2, arg3, baza
end end
if (bazaarActor ~= nil) then if (bazaarActor ~= nil) then
callClientFunction(player, "delegateCommand", GetStaticActor("BazaarCheckCommand"), "processChackBazaar"); player:SendMessage(MESSAGE_TYPE_SYSTEM_ERROR, "", "Currently disabled due to freezing characters.");
--callClientFunction(player, "delegateCommand", GetStaticActor("BazaarCheckCommand"), "processChackBazaar");
else else
--Show error --Show error
end end

View file

@ -6,65 +6,52 @@ Handles various bazaar transfer options
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). 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).
Args:
rewardItem: Item reference to what will be given to the buyer. If it's gil the itemID will be given instead. If offering an item to seek; reward/seek are combined and put here.
seekItem: Item reference to what the buyer will give us. If it's gil the itemID will be given instead,
bazaarMode: The tag value to set in the bazaar item's data.
arg1: Always nil
bazaarActor: The actor who owns this bazaar
rewardAmount: The amount of rewardItem the buyer will get.
seekAmount: The amount of seekItem we want.
--]] --]]
require ("global")
function onEventStarted(player, actor, triggerName, rewardItem, seekItem, bazaarMode, arg1, bazaarActor, rewardAmount, seekAmount, arg2, arg3, type9ItemIds) function onEventStarted(player, actor, triggerName, rewardItem, seekItem, bazaarMode, arg1, bazaarActor, rewardAmount, seekAmount, arg2, arg3, type9ItemIds)
local originalReward = nil; local rewarding = nil;
local originalSeek = nil; local seeking = nil;
--Handle special case for offers --Handle special case for offering an item.
if (seekItem == nil) then if (seekItem == nil) then
originalSeek = player:GetItemPackage(0):GetItemAtSlot(rewardItem.seekSlot); rewarding = player:GetItemPackage(rewardItem.offerPackageId):GetItemAtSlot(rewardItem.offerSlot);
originalReward = player:GetItemPackage(0):GetItemAtSlot(rewardItem.offerSlot); seeking = player:GetItemPackage(rewardItem.seekPackageId):GetItemAtSlot(rewardItem.seekSlot);
end end
--Handle Reward --Handle Reward
if (rewarding == nil) then
if (type(rewardItem) == "number") then if (type(rewardItem) == "number") then
rewardItem = GetWorldManager():CreateItem(rewardItem, rewardAmount); rewarding = player:GetItemPackage(INVENTORY_CURRENCY):GetItemByCatelogId(rewardItem);
player:RemoveItem(1000001, rewardAmount);
elseif (seekItem == nil) then
rewardItem = originalReward;
if (bazaarMode ~= 11) then
rewardItem = GetWorldManager():CreateItem(rewardItem.itemId, rewardAmount, rewardItem.quality, rewardItem.modifiers);
end
else else
rewardItem = player:GetItem(rewardItem); rewarding = player:GetItem(rewardItem);
originalReward = rewardItem;
if (bazaarMode ~= 11) then
rewardItem = GetWorldManager():CreateItem(rewardItem.itemId, rewardAmount, rewardItem.quality, rewardItem.modifiers);
end end
end end
--Handle Seek --Handle Seek
if (seeking == nil) then
if (type(seekItem) == "number") then if (type(seekItem) == "number") then
seekItem = GetWorldManager():CreateItem(seekItem, seekAmount); seeking = player:GetItemPackage(INVENTORY_CURRENCY):GetItemByCatelogId(seekItem);
elseif (seekItem == nil) then
seekItem = originalSeek;
if (bazaarMode ~= 11) then
seekItem = GetWorldManager():CreateItem(seekItem.itemId, seekAmount, seekItem.quality, seekItem.modifiers);
end
else else
seekItem = player:GetItem(seekItem); seeking = player:GetItem(seekItem);
originalSeek = seekItem;
if (bazaarMode ~= 11) then
seekItem = GetWorldManager():CreateItem(seekItem.itemId, seekAmount, seekItem.quality, seekItem.modifiers);
end end
end end
--If not selling, remove the seek item result = GetWorldManager():AddToBazaar(player, rewarding, seeking, rewardAmount, seekAmount, bazaarMode);
if (bazaarMode ~= 11 and bazaarMode ~= 12 and bazaarMode ~= 13) then
if (originalSeek ~= nil) then
player:RemoveItem(originalSeek, seekAmount);
end
end
--Remove the reward item
if (originalReward ~= nil) then
player:RemoveItem(originalReward, rewardAmount);
end
GetWorldManager():AddToBazaar(player, rewardItem, seekItem, rewardAmount, seekAmount, bazaarMode);
player:EndEvent(); player:EndEvent();

View file

@ -8,6 +8,8 @@ All bazaar args have a Reward (The item the person who fufills the request gets)
--]] --]]
--TODO REFACTOR
function onEventStarted(player, actor, triggerName, rewardItem, seekItemOrCost, seekAmount, arg1, bazaarActorId, rewardAmount, rewardItemId, nameIndex, arg2, type9ItemIds) function onEventStarted(player, actor, triggerName, rewardItem, seekItemOrCost, seekAmount, arg1, bazaarActorId, rewardAmount, rewardItemId, nameIndex, arg2, type9ItemIds)
local originalReward = nil; local originalReward = nil;

View file

@ -13,7 +13,7 @@ Handles canceling bazaar items
--]] --]]
function onEventStarted(player, actor, triggerName, rewardItem, arg1, bazaarType, arg2, bazaarActor, rewardAmount, seekAmount, arg3, arg4, type9ItemIds) function onEventStarted(player, actor, triggerName, rewardItem, seekItem, bazaarType, narg, bazaarActor, rewardAmount, seekAmount, narg, narg, type9ItemIds)
GetWorldManager():RemoveFromBazaar(player, player:GetItem(rewardItem)); GetWorldManager():RemoveFromBazaar(player, player:GetItem(rewardItem));