OnAddVendingOffer
OxideCarbonVendingCalled when add vending offer occurs.
void OnAddVendingOffer(VendingMachine vendingMachine, ProtoBuf.VendingMachine.SellOrder local2)Works — the game method in this build is the one the hook was written for.
Parameters
- vendingMachine
- VendingMachine
- local2
- ProtoBuf.VendingMachine.SellOrder
Return value
voidThe return value is ignored — the hook only notifies.
Example
private void OnAddVendingOffer(VendingMachine vendingMachine, ProtoBuf.VendingMachine.SellOrder local2)
{
Puts("OnAddVendingOffer");
}Works in both Oxide and Carbon: Carbon loads Oxide plugins as is.
Injection point
Rust.opj (Oxide)
void VendingMachine.AddSellOrder(int, int, int, int, byte, ulong, ulong)
Passes: VendingMachine vendingMachine, ProtoBuf.VendingMachine.SellOrder local2
WorksReturnBehavior: ContinueArgumentBehavior: UseArgumentString (this, l2)Assembly-CSharp.dll
Where it is called (this branch's game code)
// …
sellOrder.itemToSellID = itemToSellID;
sellOrder.itemToSellAmount = itemToSellAmount;
sellOrder.currencyID = currencyToUseID;
sellOrder.currencyAmountPerItem = currencyAmount;
sellOrder.currencyIsBP = bpState == 3 || bpState == 2;
sellOrder.itemToSellIsBP = bpState == 3 || bpState == 1;
sellOrder.sellSkinId = sellSkinId;
sellOrder.costSkinId = costSkinId;
Interface.CallHook("OnAddVendingOffer", this, sellOrder);
sellOrders.sellOrders.Add(sellOrder);
ClearPendingOrder();
RefreshSellOrderStockLevel(itemDefinition);
UpdateMapMarker();
SendNetworkUpdate();
}
}Sources: Rust.opj from OxideMod/Oxide.Rust (MIT) and hook metadata of the Carbon documentation (MIT). Method code is decompiled from this branch's server.