# TASK::_GET_WHISTLE_RANGE_MAX_FOR_BONDING_LEVEL

- **Hash:** `0x78D8C1D4EB80C588`
- **Namespace:** TASK
- **Runtime name (Lua/JS):** `GetWhistleRangeMaxForBondingLevel`
- **Side:** client (game native)
- **Name status:** community guess (may change)
- **Documentation:** described
- **Since game build:** 1207
- **URL:** https://natives.borderlinerp.com/natives/TASK/_GET_WHISTLE_RANGE_MAX_FOR_BONDING_LEVEL

## Signature

```c
float _GET_WHISTLE_RANGE_MAX_FOR_BONDING_LEVEL(int bondingLevel);
```

## Parameters

- `bondingLevel` (`int`)

## Returns

`float`

## Description

Returns the maximum (target) whistle/call distance associated with the next horse bonding level.
Used together with the current level's minimum to derive an effective whistle range based on the horse's bonding progress toward the next rank.

## Usage

### Lua

```lua
local retval = GetWhistleRangeMaxForBondingLevel(bondingLevel)

-- always available, by hash
local retval = Citizen.InvokeNative(0x78D8C1D4EB80C588, bondingLevel, Citizen.ResultAsFloat())
```

### JavaScript

```js
const retval = GetWhistleRangeMaxForBondingLevel(bondingLevel);

// by hash
const retval = Citizen.invokeNative('0x78D8C1D4EB80C588', bondingLevel, Citizen.returnResultAnyway(), Citizen.resultAsFloat());
```

### C#

```csharp
float retval = Function.Call<float>((Hash)0x78D8C1D4EB80C588, bondingLevel);
```

- The name is a community guess and may change. If the named call is missing in your client build, use `InvokeNative` with the hash — it always works.

*Sources: alloc8or RDR3 NativeDB.*
