RustTip

CanDestroyLock

OxideCarbonVehicle

Called when an admin repair action fixes nearby vehicles.

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

object CanDestroyLock(BasePlayer player, ModularCar modularCar, BaseVehicleModule viaModule)
Работает — метод игры в этой сборке тот же, под который написан хук.

Параметры

player
BasePlayer
modularCar
ModularCar
viaModule
BaseVehicleModule

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

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

Пример

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

private object CanDestroyLock(BasePlayer player, ModularCar modularCar, BaseVehicleModule viaModule)
{
    Puts("CanDestroyLock");

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

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

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

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

Rust.opj (Oxide)
bool ModularCar.PlayerCanDestroyLock(BasePlayer, BaseVehicleModule)

Передаёт: BasePlayer player, ModularCar modularCar, BaseVehicleModule viaModule

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

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

public bool PlayerCanDestroyLock(BasePlayer player, BaseVehicleModule viaModule)
{
	object returnvar = Interface.CallHook("CanDestroyLock", player, this, viaModule);
	if (returnvar is bool)
	{
		return (bool)returnvar;
	}
	return CarLock.PlayerCanDestroyLock(viaModule);
}

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