2017-10-21 13:01:14 -04:00
--[[
BazaarDealCommand Script
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 ) .
2019-06-06 01:45:06 -04:00
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 .
2017-10-21 13:01:14 -04:00
--]]
2019-06-06 01:45:06 -04:00
require ( " global " )
2017-10-21 13:01:14 -04:00
function onEventStarted ( player , actor , triggerName , rewardItem , seekItem , bazaarMode , arg1 , bazaarActor , rewardAmount , seekAmount , arg2 , arg3 , type9ItemIds )
2019-06-06 01:45:06 -04:00
local rewarding = nil ;
local seeking = nil ;
2017-11-11 17:05:07 -05:00
2019-06-06 01:45:06 -04:00
--Handle special case for offering an item.
2017-12-10 22:54:47 -05:00
if ( seekItem == nil ) then
2019-06-06 01:45:06 -04:00
rewarding = player : GetItemPackage ( rewardItem.offerPackageId ) : GetItemAtSlot ( rewardItem.offerSlot ) ;
seeking = player : GetItemPackage ( rewardItem.seekPackageId ) : GetItemAtSlot ( rewardItem.seekSlot ) ;
2017-12-10 22:54:47 -05:00
end
2017-11-11 17:05:07 -05:00
--Handle Reward
2019-06-06 01:45:06 -04:00
if ( rewarding == nil ) then
if ( type ( rewardItem ) == " number " ) then
rewarding = player : GetItemPackage ( INVENTORY_CURRENCY ) : GetItemByCatelogId ( rewardItem ) ;
else
rewarding = player : GetItem ( rewardItem ) ;
2017-11-11 17:05:07 -05:00
end
end
--Handle Seek
2019-06-06 01:45:06 -04:00
if ( seeking == nil ) then
if ( type ( seekItem ) == " number " ) then
seeking = player : GetItemPackage ( INVENTORY_CURRENCY ) : GetItemByCatelogId ( seekItem ) ;
else
seeking = player : GetItem ( seekItem ) ;
2017-11-11 17:05:07 -05:00
end
end
2019-06-06 01:45:06 -04:00
result = GetWorldManager ( ) : AddToBazaar ( player , rewarding , seeking , rewardAmount , seekAmount , bazaarMode ) ;
2017-10-21 13:01:14 -04:00
2019-06-06 01:45:06 -04:00
2017-10-21 13:01:14 -04:00
player : EndEvent ( ) ;
end