diff --git a/data/scripts/commands/BazaarCheckCommand.lua b/data/scripts/commands/BazaarCheckCommand.lua index 87b63e84..1dd99b5e 100644 --- a/data/scripts/commands/BazaarCheckCommand.lua +++ b/data/scripts/commands/BazaarCheckCommand.lua @@ -19,7 +19,8 @@ function onEventStarted(player, actor, triggerName, name, arg1, arg2, arg3, baza end 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 --Show error end diff --git a/data/scripts/commands/BazaarDealCommand.lua b/data/scripts/commands/BazaarDealCommand.lua index 17edb358..fe67817d 100644 --- a/data/scripts/commands/BazaarDealCommand.lua +++ b/data/scripts/commands/BazaarDealCommand.lua @@ -6,66 +6,53 @@ 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). +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) - local originalReward = nil; - local originalSeek = nil; + local rewarding = nil; + local seeking = nil; - --Handle special case for offers + --Handle special case for offering an item. if (seekItem == nil) then - originalSeek = player:GetItemPackage(0):GetItemAtSlot(rewardItem.seekSlot); - originalReward = player:GetItemPackage(0):GetItemAtSlot(rewardItem.offerSlot); + rewarding = player:GetItemPackage(rewardItem.offerPackageId):GetItemAtSlot(rewardItem.offerSlot); + seeking = player:GetItemPackage(rewardItem.seekPackageId):GetItemAtSlot(rewardItem.seekSlot); end --Handle Reward - if (type(rewardItem) == "number") then - rewardItem = GetWorldManager():CreateItem(rewardItem, rewardAmount); - 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 - rewardItem = player:GetItem(rewardItem); - originalReward = rewardItem; - if (bazaarMode ~= 11) then - rewardItem = GetWorldManager():CreateItem(rewardItem.itemId, rewardAmount, rewardItem.quality, rewardItem.modifiers); + if (rewarding == nil) then + if (type(rewardItem) == "number") then + rewarding = player:GetItemPackage(INVENTORY_CURRENCY):GetItemByCatelogId(rewardItem); + else + rewarding = player:GetItem(rewardItem); end end --Handle Seek - if (type(seekItem) == "number") then - seekItem = GetWorldManager():CreateItem(seekItem, seekAmount); - elseif (seekItem == nil) then - seekItem = originalSeek; - if (bazaarMode ~= 11) then - seekItem = GetWorldManager():CreateItem(seekItem.itemId, seekAmount, seekItem.quality, seekItem.modifiers); - end - else - seekItem = player:GetItem(seekItem); - originalSeek = seekItem; - if (bazaarMode ~= 11) then - seekItem = GetWorldManager():CreateItem(seekItem.itemId, seekAmount, seekItem.quality, seekItem.modifiers); + if (seeking == nil) then + if (type(seekItem) == "number") then + seeking = player:GetItemPackage(INVENTORY_CURRENCY):GetItemByCatelogId(seekItem); + else + seeking = player:GetItem(seekItem); end end + + result = GetWorldManager():AddToBazaar(player, rewarding, seeking, rewardAmount, seekAmount, bazaarMode); + - --If not selling, remove the seek item - 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(); end \ No newline at end of file diff --git a/data/scripts/commands/BazaarTradeCommand.lua b/data/scripts/commands/BazaarTradeCommand.lua index dbd3cf82..7a934abc 100644 --- a/data/scripts/commands/BazaarTradeCommand.lua +++ b/data/scripts/commands/BazaarTradeCommand.lua @@ -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) local originalReward = nil; diff --git a/data/scripts/commands/BazaarUndealCommand.lua b/data/scripts/commands/BazaarUndealCommand.lua index a42a82dd..a6b0ae16 100644 --- a/data/scripts/commands/BazaarUndealCommand.lua +++ b/data/scripts/commands/BazaarUndealCommand.lua @@ -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));