OnAddVendingOffer
OxideCarbonVendingCalled when add vending offer occurs.
void OnAddVendingOffer(VendingMachine vendingMachine, ProtoBuf.VendingMachine.SellOrder local2)Работает — метод игры в этой сборке тот же, под который написан хук.
Параметры
- vendingMachine
- VendingMachine
- local2
- ProtoBuf.VendingMachine.SellOrder
Возвращаемое значение
voidВозвращаемое значение игнорируется — хук только уведомляет.
Пример
private void OnAddVendingOffer(VendingMachine vendingMachine, ProtoBuf.VendingMachine.SellOrder local2)
{
Puts("OnAddVendingOffer");
}Работает и в Oxide, и в Carbon: Carbon загружает плагины Oxide без изменений.
Место встраивания
Rust.opj (Oxide)
void VendingMachine.AddSellOrder(int, int, int, int, byte, ulong, ulong)
Передаёт: VendingMachine vendingMachine, ProtoBuf.VendingMachine.SellOrder local2
РаботаетReturnBehavior: ContinueArgumentBehavior: UseArgumentString (this, l2)Assembly-CSharp.dll
Где вызывается (код игры этой ветки)
// …
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();
}
}Источники: Rust.opj из OxideMod/Oxide.Rust (MIT) и метаданные хуков документации Carbon (MIT). Код методов — декомпиляция сервера этой ветки.