mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-06-09 05:54:50 +02: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
|
@ -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
|
Loading…
Add table
Add a link
Reference in a new issue