InventoryTransaction
InventoryTransaction contains a list of actions that will be performed when the transaction is passed to Inventory.CommitTransaction. Because each function returns the InventoryTransaction, they can be chained to quickly add all the actions to the object.
Methods
Adds the given quantity of the given item to the holder's inventory.
Parameters
holderId
itemId
quantity
Returns
This is the equivalent of calling Give(player.user.id, itemId, quantity).
--!SerializeField
local itemId: string = "Money"
--!SerializeField
local amountPerPickup: number = 1
local collectPickupRequest = Event.new("CollectPickupRequest")
function self:ClientStart()
function self:OnTriggerEnter(other : Collider)
self.gameObject:SetActive(false)
collectPickupRequest:FireServer()
end
end
function self:ServerStart()
collectPickupRequest:Connect(function(player: Player)
local transaction = InventoryTransaction.new()
:GivePlayer(player, itemId, amountPerPickup)
Inventory.CommitTransaction(transaction)
end)
end
Parameters
Returns
Removes the given quantity of the given item from the holder's inventory.
Parameters
holderId
itemId
quantity
Returns
This is the equivalent of calling Take(player.user.id, itemId, quantity).
function Purchase(player: Player, itemId: string, currencyId: string, cost: number)
local transaction = InventoryTransaction.new()
:GivePlayer(player, itemId, 1)
:TakePlayer(player, currencyId, cost)
Inventory.CommitTransaction(transaction)
end
Parameters
Returns
Removes the given quantity of the given item from the from holder's inventory and adds the same quantity of that item to the to holder's inventory.
Parameters
fromHolderId
toHolderId
itemId
quantity
Returns
This is the equivalent of calling Move(fromPlayer.user.id, toPlayer.user.id, itemId, quantity).
function FinalizeTrade(playerA: Player, playerAItems: {string}, playerB: Player, playerBItems: {string})
local transaction = InventoryTransaction.new()
for index, itemId in playerAItems do
transaction:MovePlayers(playerA, playerB, itemId, 1)
end
for index, itemId in playerBItems do
transaction:MovePlayers(playerB, playerA, itemId, 1)
end
Inventory.CommitTransaction(transaction)
end
Returns
Adds the given quantity of the given item to the holder's reserved items. Items that are reserved cannot be added or removed with Give, Take or Move. Use Release to remove the items from the reserved items.
Parameters
holderId
itemId
reservedFor
quantity
Returns
This is the equivalent of calling Reserve(player.user.id, itemId, reservedFor, quantity).
Parameters
Returns
Removes the given quantity of the given item from the player's reserved items.
Parameters
Returns
This is the equivalent of calling Release(player.user.id, itemId, reservedFor, quantity).