mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-22 12:47:46 +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:
parent
3dcd9af6c0
commit
c286df6a91
4 changed files with 36 additions and 46 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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;
|
||||
|
|
|
@ -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));
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue