RustTip

CanPickupFromRack

CarbonGlobal

Called to check whether the player can take a specific weapon from a weapon rack.

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

void CanPickupFromRack(WeaponRack rack, BasePlayer player, Item item, int mountSlotIndex, int playerBeltIndex, bool tryHold)
Работает — метод игры в этой сборке тот же, под который написан хук.

Параметры

rack
WeaponRack
player
BasePlayer
item
Item
mountSlotIndex
int
playerBeltIndex
int
tryHold
bool

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

voidПоведение не описано.

Пример

private void CanPickupFromRack(WeaponRack rack, BasePlayer player, Item item, int mountSlotIndex, int playerBeltIndex, bool tryHold)
{
    Puts("CanPickupFromRack");
}

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

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

Carbon
void WeaponRack.GivePlayerWeapon(BasePlayer player, int mountSlotIndex, int playerBeltIndex, bool tryHold, bool sendUpdate)
РаботаетAssembly-CSharp

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

private void GivePlayerWeapon(BasePlayer player, int mountSlotIndex, int playerBeltIndex = -1, bool tryHold = true, bool sendUpdate = true)
{
	Interface.CallHook("CanPickupFromRack", this, player, item, mountSlotIndex, playerBeltIndex, tryHold);
	if (player == null)
	{
		return;
	}
	WeaponRackSlot weaponAtIndex = GetWeaponAtIndex(mountSlotIndex);
	if (weaponAtIndex == null)
	{
		return;
// …

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