OnVendingShopOpened
OxideVendingvoid OnVendingShopOpened(VendingMachine vendingMachine, BasePlayer player)
void OnVendingShopOpened(InvisibleVendingMachine invisibleVendingMachine, BasePlayer player)
void OnVendingShopOpened(NPCVendingMachine vendingMachine, BasePlayer player)Работает — метод игры в этой сборке тот же, под который написан хук.
Параметры
- vendingMachine
- VendingMachine
- player
- BasePlayer
Возвращаемое значение
voidВозвращаемое значение игнорируется — хук только уведомляет.
Пример
private void OnVendingShopOpened(VendingMachine vendingMachine, BasePlayer player)
{
Puts("OnVendingShopOpened");
}Работает и в Oxide, и в Carbon: Carbon загружает плагины Oxide без изменений.
Место встраивания 1
Rust.opj (Oxide)
void VendingMachine.RPC_OpenShop(BaseEntity.RPCMessage)
Передаёт: VendingMachine vendingMachine, BasePlayer player
РаботаетReturnBehavior: ContinueArgumentBehavior: UseArgumentString (this, a0.player)Assembly-CSharp.dll
Место встраивания 2
Rust.opj (Oxide)
void NPCTalking.OnConversationAction(BasePlayer, string)
Передаёт: InvisibleVendingMachine invisibleVendingMachine, BasePlayer player
РаботаетReturnBehavior: ContinueArgumentBehavior: UseArgumentString (l1, a0)Assembly-CSharp.dll
Где вызывается (код игры этой ветки)
// …
{
ForceEndConversation(player);
vendingMachine.PlayerOpenLoot(player, "vendingmachine.customer", doPositionChecks: false);
return;
}
}
ItemDefinition itemDefinition = ItemManager.FindItemDefinition("scrap");
NPCConversationResultAction[] array = conversationResultActions;
Interface.CallHook("OnVendingShopOpened", vendingMachine, player);
foreach (NPCConversationResultAction nPCConversationResultAction in array)
{
if (!(nPCConversationResultAction.action == action))
{
continue;
}
CleanupConversingPlayers();
foreach (BasePlayer conversingPlayer in conversingPlayers)
// …Место встраивания 3
Rust.opj (Oxide)
void TravellingVendor.SV_OpenMenu(BaseEntity.RPCMessage)
Передаёт: NPCVendingMachine vendingMachine, BasePlayer player
РаботаетReturnBehavior: ContinueArgumentBehavior: UseArgumentString (this.vendingMachine, a0.player)Assembly-CSharp.dll
Источники: Rust.opj из OxideMod/Oxide.Rust (MIT) и метаданные хуков документации Carbon (MIT). Код методов — декомпиляция сервера этой ветки.