-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(boat/anchor): update anchor natives (#1193)
Co-authored-by: Dillon Skaggs <[email protected]>
- Loading branch information
1 parent
daecc21
commit 5d99608
Showing
12 changed files
with
355 additions
and
118 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,61 @@ | ||
--- | ||
ns: VEHICLE | ||
aliases: ["0x2467A2D807D37CA3","_GET_BOAT_ANCHOR","_CAN_BOAT_BE_ANCHORED"] | ||
--- | ||
## CAN_ANCHOR_BOAT_HERE | ||
|
||
```c | ||
// 0x26C10ECBDA5D043B 0xE97A4F5E | ||
BOOL CAN_ANCHOR_BOAT_HERE(Vehicle vehicle); | ||
``` | ||
## Parameters | ||
* **vehicle**: | ||
## Return value | ||
--- | ||
ns: VEHICLE | ||
aliases: ["0x2467A2D807D37CA3","_GET_BOAT_ANCHOR","_CAN_BOAT_BE_ANCHORED"] | ||
--- | ||
## CAN_ANCHOR_BOAT_HERE | ||
|
||
```c | ||
// 0x26C10ECBDA5D043B 0xE97A4F5E | ||
BOOL CAN_ANCHOR_BOAT_HERE(Vehicle boat); | ||
``` | ||
Checks if a boat can be anchored at its present position without possibly intersecting collision later. | ||
``` | ||
NativeDB Introduced: v323 | ||
``` | ||
## Parameters | ||
* **boat**: The boat to check. | ||
## Return value | ||
Returns `true` if the boat can be safely anchored at its current position, `false` otherwise. | ||
## Examples | ||
```lua | ||
local boat = GetVehiclePedIsIn(PlayerPedId(), false) | ||
if not boat or not IsThisModelABoat(GetEntityModel(boat)) then return end | ||
if CanAnchorBoatHere(boat) then | ||
print("It's safe to anchor the boat here") | ||
else | ||
print("It's not safe to anchor the boat at this location") | ||
end | ||
``` | ||
|
||
```js | ||
const boat = GetVehiclePedIsIn(PlayerPedId(), false); | ||
if (!boat || !IsThisModelABoat(GetEntityModel(boat))) return; | ||
|
||
if (CanAnchorBoatHere(boat)) { | ||
console.log("It's safe to anchor the boat here"); | ||
} else { | ||
console.log("It's not safe to anchor the boat at this location"); | ||
} | ||
``` | ||
|
||
```cs | ||
using static CitizenFX.Core.Native.API; | ||
|
||
int boat = GetVehiclePedIsIn(PlayerPedId(), false); | ||
if (boat == 0 || !IsThisModelABoat(GetEntityModel(boat))) return; | ||
|
||
if (CanAnchorBoatHere(boat)) | ||
{ | ||
Debug.WriteLine("It's safe to anchor the boat here"); | ||
} | ||
else | ||
{ | ||
Debug.WriteLine("It's not safe to anchor the boat at this location"); | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
--- | ||
ns: VEHICLE | ||
aliases: ["_CAN_BOAT_BE_ANCHORED_2", "_CAN_ANCHOR_BOAT_HERE_2"] | ||
--- | ||
## CAN_ANCHOR_BOAT_HERE_IGNORE_PLAYERS | ||
|
||
```c | ||
// 0x24F4121D07579880 | ||
BOOL CAN_ANCHOR_BOAT_HERE_IGNORE_PLAYERS(Vehicle boat); | ||
``` | ||
Checks if a boat can be anchored at its present position, ignoring any players standing on the boat. | ||
``` | ||
NativeDB Introduced: v678 | ||
``` | ||
## Parameters | ||
* **boat**: The boat to check. | ||
## Return value | ||
Returns `true` if the boat can be safely anchored at its current position (ignoring players on the boat), `false` otherwise. | ||
## Examples | ||
```lua | ||
local boat = GetVehiclePedIsIn(PlayerPedId(), false) | ||
if not boat or not IsThisModelABoat(GetEntityModel(boat)) then return end | ||
if CanAnchorBoatHereIgnorePlayers(boat) then | ||
print("It's safe to anchor the boat here, ignoring players on the boat") | ||
else | ||
print("It's not safe to anchor the boat at this location, even ignoring players") | ||
end | ||
``` | ||
|
||
```js | ||
const boat = GetVehiclePedIsIn(PlayerPedId(), false); | ||
if (!boat || !IsThisModelABoat(GetEntityModel(boat))) return; | ||
|
||
if (CanAnchorBoatHereIgnorePlayers(boat)) { | ||
console.log("It's safe to anchor the boat here, ignoring players on the boat"); | ||
} else { | ||
console.log("It's not safe to anchor the boat at this location, even ignoring players"); | ||
} | ||
``` | ||
|
||
```cs | ||
using static CitizenFX.Core.Native.API; | ||
|
||
int boat = GetVehiclePedIsIn(PlayerPedId(), false); | ||
if (boat == 0 || !IsThisModelABoat(GetEntityModel(boat))) return; | ||
|
||
if (CanAnchorBoatHereIgnorePlayers(boat)) | ||
{ | ||
Debug.WriteLine("It's safe to anchor the boat here, ignoring players on the boat"); | ||
} | ||
else | ||
{ | ||
Debug.WriteLine("It's not safe to anchor the boat at this location, even ignoring players"); | ||
} | ||
``` |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
--- | ||
ns: VEHICLE | ||
aliases: ["0xB0AD1238A709B1A2", "_IS_BOAT_ANCHORED_AND_FROZEN"] | ||
--- | ||
## IS_BOAT_ANCHORED | ||
|
||
```c | ||
// 0xB0AD1238A709B1A2 | ||
BOOL IS_BOAT_ANCHORED(Vehicle boat); | ||
``` | ||
Checks if a boat is currently anchored. | ||
This native is a getter for [SET_BOAT_ANCHOR](#_0x75DBEC174AEEAD10). | ||
``` | ||
NativeDB Introduced: v573 | ||
``` | ||
## Parameters | ||
* **boat**: The boat to check. | ||
## Return value | ||
Returns `true` if the boat is currently anchored, `false` otherwise. |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,85 @@ | ||
--- | ||
ns: VEHICLE | ||
--- | ||
## SET_BOAT_ANCHOR | ||
|
||
```c | ||
// 0x75DBEC174AEEAD10 0xA3906284 | ||
void SET_BOAT_ANCHOR(Vehicle vehicle, BOOL toggle); | ||
``` | ||
## Parameters | ||
* **vehicle**: | ||
* **toggle**: | ||
--- | ||
ns: VEHICLE | ||
--- | ||
## SET_BOAT_ANCHOR | ||
|
||
```c | ||
// 0x75DBEC174AEEAD10 0xA3906284 | ||
void SET_BOAT_ANCHOR(Vehicle boat, BOOL toggle); | ||
``` | ||
Sets the anchor state for a boat. | ||
``` | ||
NativeDB Introduced: v323 | ||
``` | ||
**Note**: You might want to check if you can use your anchor before with [CAN_ANCHOR_BOAT_HERE](#_0x26C10ECBDA5D043B). | ||
## Parameters | ||
* **boat**: The target boat. | ||
* **toggle**: Set the anchor state `true` deploys the anchor, false `raises` it. | ||
## Examples | ||
```lua | ||
local boat = GetVehiclePedIsIn(PlayerPedId(), false) | ||
if not boat or not IsThisModelABoat(GetEntityModel(boat)) then return end | ||
-- Check if we can anchor the boat here | ||
if CanAnchorBoatHere(boat) then | ||
-- Deploy the boat's anchor | ||
SetBoatAnchor(boat, true) | ||
-- Wait for 10 seconds | ||
Wait(10000) | ||
-- Raise the boat's anchor | ||
SetBoatAnchor(boat, false) | ||
else | ||
print("Cannot anchor the boat at this location") | ||
end | ||
``` | ||
|
||
```js | ||
const boat = GetVehiclePedIsIn(PlayerPedId(), false); | ||
if (!boat || !IsThisModelABoat(GetEntityModel(boat))) return; | ||
|
||
// Check if we can anchor the boat here | ||
if (CanAnchorBoatHere(boat)) { | ||
// Deploy the boat's anchor | ||
SetBoatAnchor(boat, true); | ||
|
||
// Wait for 10 seconds | ||
await new Promise(resolve => setTimeout(resolve, 10000)); | ||
|
||
// Raise the boat's anchor | ||
SetBoatAnchor(boat, false); | ||
} else { | ||
console.log("Cannot anchor the boat at this location"); | ||
} | ||
``` | ||
|
||
```cs | ||
using CitizenFX.Core; | ||
using static CitizenFX.Core.Native.API; | ||
|
||
int boat = GetVehiclePedIsIn(PlayerPedId(), false); | ||
if (boat == 0 || !IsThisModelABoat(GetEntityModel(boat))) return; | ||
|
||
// Check if we can anchor the boat here | ||
if (CanAnchorBoatHere(boat)) | ||
{ | ||
// Deploy the boat's anchor | ||
SetBoatAnchor(boat, true); | ||
|
||
// Wait for 10 seconds | ||
await BaseScript.Delay(10000); | ||
|
||
// Raise the boat's anchor | ||
SetBoatAnchor(boat, false); | ||
} | ||
else | ||
{ | ||
Debug.WriteLine("Cannot anchor the boat at this location"); | ||
} | ||
``` |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
--- | ||
ns: VEHICLE | ||
aliases: ["0xE842A9398079BD82","_SET_BOAT_ANCHOR_BUOYANCY_COEFFICIENT", "_SET_BOAT_MOVEMENT_RESISTANCE"] | ||
--- | ||
## SET_BOAT_LOW_LOD_ANCHOR_DISTANCE | ||
|
||
```c | ||
// 0xE842A9398079BD82 0x66FA450C | ||
void SET_BOAT_LOW_LOD_ANCHOR_DISTANCE(Vehicle boat, float value); | ||
``` | ||
Sets the distance from the player at which anchored boats switch between high and low LOD (Level of Detail) buoyancy mode. | ||
``` | ||
NativeDB Introduced: v323 | ||
``` | ||
## Parameters | ||
* **boat**: The target boat. | ||
* **value**: The distance at which the LOD switch occurs. Set to `-1.0` to reset the LOD distance to the default value. | ||
## Examples | ||
```lua | ||
local boat = GetVehiclePedIsIn(PlayerPedId(), false) | ||
if not boat or not IsThisModelABoat(GetEntityModel(boat)) then return end | ||
-- Set the low LOD anchor distance to 100 units | ||
SetBoatLowLodAnchorDistance(boat, 100.0) | ||
print("Set low LOD anchor distance to 100 units") | ||
``` | ||
|
||
```js | ||
const boat = GetVehiclePedIsIn(PlayerPedId(), false); | ||
if (!boat || !IsThisModelABoat(GetEntityModel(boat))) return; | ||
|
||
// Set the low LOD anchor distance to 100 units | ||
SetBoatLowLodAnchorDistance(boat, 100.0); | ||
console.log("Set low LOD anchor distance to 100 units"); | ||
``` | ||
|
||
```cs | ||
using static CitizenFX.Core.Native.API; | ||
|
||
int boat = GetVehiclePedIsIn(PlayerPedId(), false); | ||
if (boat == 0 || !IsThisModelABoat(GetEntityModel(boat))) return; | ||
|
||
// Set the low LOD anchor distance to 100 units | ||
SetBoatLowLodAnchorDistance(boat, 100.0f); | ||
Debug.WriteLine("Set low LOD anchor distance to 100 units"); | ||
``` |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.