RustTip

CanPatrolHeliSeePlayer

CarbonGlobal

Called to check whether the patrol helicopter has line???of???sight to the player.

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

object CanPatrolHeliSeePlayer(PatrolHelicopterAI heli, BasePlayer player)
Работает — метод игры в этой сборке тот же, под который написан хук.

Параметры

heli
PatrolHelicopterAI
player
BasePlayer

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

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

Пример

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

private object CanPatrolHeliSeePlayer(PatrolHelicopterAI heli, BasePlayer player)
{
    Puts("CanPatrolHeliSeePlayer");

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

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

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

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

Carbon
bool PatrolHelicopterAI.PlayerVisible(BasePlayer ply)
РаботаетAssembly-CSharp

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

public bool PlayerVisible(BasePlayer ply)
{
	if (Interface.CallHook("CanPatrolHeliSeePlayer", this, ply) is bool result)
	{
		return result;
	}
	using (TimeWarning.New("PatrolHelicoperAI.PlayerVisible"))
	{
		Vector3 position = ply.eyes.position;
		if (ply.eyes.position.y < WaterSystem.OceanLevel && Mathf.Abs(WaterSystem.OceanLevel - ply.eyes.position.y) > oceanDepthTargetCutoff)
		{
// …

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