CanPlaceOnRack
CarbonGlobalCalled to determine whether to place on rack.
Return true to allow the action and false to block it.
object CanPlaceOnRack(WeaponRack rack, BasePlayer player, Item item, int gridCellIndex, int rotation)Работает — метод игры в этой сборке тот же, под который написан хук.
Параметры
- rack
- WeaponRack
- player
- BasePlayer
- item
- Item
- gridCellIndex
- int
- rotation
- int
Возвращаемое значение
objectВозвращённое значение заменяет результат игры; null — игра решает сама.
Пример
object — можно повлиять на игру: вернуть значение, чтобы изменить или отменить действие.
private object CanPlaceOnRack(WeaponRack rack, BasePlayer player, Item item, int gridCellIndex, int rotation)
{
Puts("CanPlaceOnRack");
// ничего не меняем — игра продолжит как обычно
return null;
// повлиять на игру:
// return false; // своё значение вместо результата игры
}Работает и в Oxide, и в Carbon: Carbon загружает плагины Oxide без изменений.
Место встраивания
Carbon
bool WeaponRack.MountWeapon(Item item, BasePlayer player, int gridCellIndex, int rotation, bool sendUpdate)
РаботаетAssembly-CSharp
Где вызывается (код игры этой ветки)
private bool MountWeapon(Item item, BasePlayer player, int gridCellIndex, int rotation, bool sendUpdate = true)
{
if (Interface.CallHook("CanPlaceOnRack", this, player, item, gridCellIndex, rotation) is bool result)
{
return result;
}
if (item == null)
{
return false;
}
if (player == null)
// …Источники: Rust.opj из OxideMod/Oxide.Rust (MIT) и метаданные хуков документации Carbon (MIT). Код методов — декомпиляция сервера этой ветки.