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)
Works — the game method in this build is the one the hook was written for.

Parameters

heli
PatrolHelicopterAI
player
BasePlayer

Return value

objectThe returned value replaces the game result; null lets the game decide.

Example

object — you can affect the game: return a value to change or cancel the action.

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

    // change nothing — the game continues as usual
    return null;

    // to affect the game:
    // return false; // your value instead of the game result
}

Works in both Oxide and Carbon: Carbon loads Oxide plugins as is.

Injection point

Carbon
bool PatrolHelicopterAI.PlayerVisible(BasePlayer ply)
WorksAssembly-CSharp

Where it is called (this branch's game code)

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)
		{
// …

Sources: Rust.opj from OxideMod/Oxide.Rust (MIT) and hook metadata of the Carbon documentation (MIT). Method code is decompiled from this branch's server.