RustTip

OnEntityDistanceCheck

OxideCarbonEntity

Called when entity distance check occurs.

object OnEntityDistanceCheck(BaseEntity ent, BasePlayer player, uint id, string debugName, float maximumDistance, bool checkParent)
Works — the game method in this build is the one the hook was written for.

Parameters

ent
BaseEntity
player
BasePlayer
id
uint
debugName
string
maximumDistance
float
checkParent
bool

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 OnEntityDistanceCheck(BaseEntity ent, BasePlayer player, uint id, string debugName, float maximumDistance, bool checkParent)
{
    Puts("OnEntityDistanceCheck");

    // 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

Rust.opj (Oxide)
bool BaseEntity.RPC_Server.MaxDistance.Test(uint, string, BaseEntity, BasePlayer, float, bool)

Passes: BaseEntity ent, BasePlayer player, uint id, string debugName, float maximumDistance, bool checkParent

WorksReturnBehavior: ExitWhenValidTypeArgumentBehavior: UseArgumentString (a2, a3, a0, a1, a4, a5)Assembly-CSharp.dll

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

public static bool Test(uint id, string debugName, BaseEntity ent, BasePlayer player, float maximumDistance, bool checkParent = false)
{
	if (ent == null || player == null)
	{
		return false;
	}
	object returnvar = Interface.CallHook("OnEntityDistanceCheck", ent, player, id, debugName, maximumDistance, checkParent);
	if (returnvar is bool)
	{
		return (bool)returnvar;
	}
	bool flag = ent.Distance(player.eyes.position) <= maximumDistance;
	if (checkParent && !flag)
	{
		BaseEntity parentEntity = ent.GetParentEntity();
// …

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.