RustTip

CanAdministerVending

OxideCarbonVending

Called to determine whether to administer vending.

Return true to allow the action and false to block it.

object CanAdministerVending(BasePlayer player, VendingMachine vendingMachine)
object CanAdministerVending(BasePlayer player, NPCVendingMachine nPCVendingMachine)
Работает — метод игры в этой сборке тот же, под который написан хук.

Параметры

player
BasePlayer
vendingMachine
VendingMachine

Возвращаемое значение

objectВозвращённое значение заменяет результат игры; null — игра решает сама.

Пример

object — можно повлиять на игру: вернуть значение, чтобы изменить или отменить действие.

private object CanAdministerVending(BasePlayer player, VendingMachine vendingMachine)
{
    Puts("CanAdministerVending");

    // ничего не меняем — игра продолжит как обычно
    return null;

    // повлиять на игру:
    // return false; // своё значение вместо результата игры
}

Работает и в Oxide, и в Carbon: Carbon загружает плагины Oxide без изменений.

Место встраивания 1

Rust.opj (Oxide)
bool VendingMachine.CanPlayerAdmin(BasePlayer)

Передаёт: BasePlayer player, VendingMachine vendingMachine

РаботаетReturnBehavior: ExitWhenValidTypeArgumentBehavior: UseArgumentString (a0, this)Assembly-CSharp.dll

Где вызывается (код игры этой ветки)

public virtual bool CanPlayerAdmin(BasePlayer player)
{
	object returnvar = Interface.CallHook("CanAdministerVending", player, this);
	if (returnvar is bool)
	{
		return (bool)returnvar;
	}
	if (PlayerBehind(player))
	{
		return OccupiedCheck(player);
	}
// …

Место встраивания 2

Rust.opj (Oxide)
bool NPCVendingMachine.CanPlayerAdmin(BasePlayer)

Передаёт: BasePlayer player, NPCVendingMachine nPCVendingMachine

РаботаетReturnBehavior: ExitWhenValidTypeArgumentBehavior: UseArgumentString (a0, this)Assembly-CSharp.dll

Где вызывается (код игры этой ветки)

public override bool CanPlayerAdmin(BasePlayer player)
{
	object returnvar = Interface.CallHook("CanAdministerVending", player, this);
	if (returnvar is bool)
	{
		return (bool)returnvar;
	}
	return false;
}

Источники: Rust.opj из OxideMod/Oxide.Rust (MIT) и метаданные хуков документации Carbon (MIT). Код методов — декомпиляция сервера этой ветки.