RustTip

OnAddVendingOffer

OxideCarbonVending

Called 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). Код методов — декомпиляция сервера этой ветки.