From cb8a2e6cf4884bd44d72cf60b82ca329e91a8e4a Mon Sep 17 00:00:00 2001 From: Space V Date: Tue, 24 Dec 2024 19:00:52 +0100 Subject: [PATCH] feat(natives/3407): support 3407 natives All credit goes to @gottfriedleibniz, @alloc8or and @fingaweg for finding those natives. --- ...SetEntityNoCollisionWithNetworkedEntity.md | 18 +++++++ GRAPHICS/HasScaleformMovieNamedLoaded.md | 23 +++++++++ HUD/ShowPurchaseInstructionalButton.md | 17 +++++++ PED/IsPedInSphereAreaOfAnyEnemyPeds.md | 23 +++++++++ PED/SetPedSurvivesBeingOutOfWater.md | 22 ++++++++ PHYSICS/GetDamping.md | 19 +++++++ ...tTaskIfRunningThreatResponseNonTempTask.md | 17 +++++++ TASK/TaskSharkCircleCoord.md | 50 +++++++++++++++++++ VEHICLE/DisableIndividualPlanePropeller.md | 8 ++- VEHICLE/EnableIndividualPlanePropeller.md | 32 ++++++++++++ VEHICLE/IsVehicleOnBoostPad.md | 19 +++++++ ...DisableExplodeFromBodyDamageOnCollision.md | 2 +- ...xplodeFromBodyDamageReceivedByAiVehicle.md | 22 ++++++++ .../SetDisableHeliExplodeFromBodyDamage.md | 2 +- VEHICLE/SetPlaneAvoidsOther.md | 18 +++++++ ...rolSectionsShouldBreakOffFromExplosions.md | 17 +++++++ VEHICLE/SetVehicleExplosiveDamageScale.md | 20 ++++++++ WEAPON/GetAmmoInVehicleWeaponClip.md | 19 +++++++ ...etTimeBeforeVehicleWeaponReloadFinishes.md | 18 +++++++ WEAPON/GetVehicleWeaponReloadTime.md | 18 +++++++ WEAPON/HasWeaponReloadingInVehicle.md | 18 +++++++ WEAPON/SetAmmoInVehicleWeaponClip.md | 19 +++++++ WEAPON/TriggerVehicleWeaponReload.md | 23 +++++++++ 23 files changed, 440 insertions(+), 4 deletions(-) create mode 100644 ENTITY/SetEntityNoCollisionWithNetworkedEntity.md create mode 100644 GRAPHICS/HasScaleformMovieNamedLoaded.md create mode 100644 HUD/ShowPurchaseInstructionalButton.md create mode 100644 PED/IsPedInSphereAreaOfAnyEnemyPeds.md create mode 100644 PED/SetPedSurvivesBeingOutOfWater.md create mode 100644 PHYSICS/GetDamping.md create mode 100644 TASK/ClearPedScriptTaskIfRunningThreatResponseNonTempTask.md create mode 100644 TASK/TaskSharkCircleCoord.md create mode 100644 VEHICLE/EnableIndividualPlanePropeller.md create mode 100644 VEHICLE/IsVehicleOnBoostPad.md create mode 100644 VEHICLE/SetDisableExplodeFromBodyDamageReceivedByAiVehicle.md create mode 100644 VEHICLE/SetPlaneAvoidsOther.md create mode 100644 VEHICLE/SetPlaneControlSectionsShouldBreakOffFromExplosions.md create mode 100644 VEHICLE/SetVehicleExplosiveDamageScale.md create mode 100644 WEAPON/GetAmmoInVehicleWeaponClip.md create mode 100644 WEAPON/GetTimeBeforeVehicleWeaponReloadFinishes.md create mode 100644 WEAPON/GetVehicleWeaponReloadTime.md create mode 100644 WEAPON/HasWeaponReloadingInVehicle.md create mode 100644 WEAPON/SetAmmoInVehicleWeaponClip.md create mode 100644 WEAPON/TriggerVehicleWeaponReload.md diff --git a/ENTITY/SetEntityNoCollisionWithNetworkedEntity.md b/ENTITY/SetEntityNoCollisionWithNetworkedEntity.md new file mode 100644 index 000000000..7fa876eb3 --- /dev/null +++ b/ENTITY/SetEntityNoCollisionWithNetworkedEntity.md @@ -0,0 +1,18 @@ +--- +ns: ENTITY +--- +## _SET_ENTITY_NO_COLLISION_WITH_NETWORKED_ENTITY + +```c +// 0x0A27A7827347B3B1 +void _SET_ENTITY_NO_COLLISION_WITH_NETWORKED_ENTITY(Entity entity1, Entity entity2); +``` + +``` +NativeDB Introduced: v3407 +``` + + +## Parameters +* **entity1**: +* **entity2**: diff --git a/GRAPHICS/HasScaleformMovieNamedLoaded.md b/GRAPHICS/HasScaleformMovieNamedLoaded.md new file mode 100644 index 000000000..5cac07ec9 --- /dev/null +++ b/GRAPHICS/HasScaleformMovieNamedLoaded.md @@ -0,0 +1,23 @@ +--- +ns: GRAPHICS +--- +## _HAS_SCALEFORM_MOVIE_NAMED_LOADED + +```c +// 0x9743BCCF7CD6E1F6 +BOOL _HAS_SCALEFORM_MOVIE_NAMED_LOADED(int* scaleformHandle, char* scaleformName); +``` + +Check if a Scaleform movie with the given name has been loaded. + +``` +NativeDB Introduced: v3407 +``` + +## Parameters +* **scaleformHandle**: Scaleform movie handle +* **scaleformName**: Name of the Scaleform movie to check + + +## Return value +`true` if the named Scaleform movie is loaded, `false` otherwise. diff --git a/HUD/ShowPurchaseInstructionalButton.md b/HUD/ShowPurchaseInstructionalButton.md new file mode 100644 index 000000000..45d1395c9 --- /dev/null +++ b/HUD/ShowPurchaseInstructionalButton.md @@ -0,0 +1,17 @@ +--- +ns: HUD +--- +## _SHOW_PURCHASE_INSTRUCTIONAL_BUTTON + +```c +// 0xF6865E26067B708C +void _SHOW_PURCHASE_INSTRUCTIONAL_BUTTON(BOOL toggle); +``` + +``` +NativeDB Introduced: v3407 +``` + + +## Parameters +* **toggle**: diff --git a/PED/IsPedInSphereAreaOfAnyEnemyPeds.md b/PED/IsPedInSphereAreaOfAnyEnemyPeds.md new file mode 100644 index 000000000..a69f5160b --- /dev/null +++ b/PED/IsPedInSphereAreaOfAnyEnemyPeds.md @@ -0,0 +1,23 @@ +--- +ns: PED +--- +## IS_PED_IN_SPHERE_AREA_OF_ANY_ENEMY_PEDS + +```c +// 0x082D79E15302F0C2 +BOOL IS_PED_IN_SPHERE_AREA_OF_ANY_ENEMY_PEDS(Ped ped, float x, float y, float z, float range); +``` + +``` +NativeDB Introduced: v3407 +``` + +## Parameters +* **ped**: The ped to check. +* **x**: X coordinate +* **y**: Y coordinate +* **z**: Z coordinate +* **range**: Radius of sphere. + +## Return value +Returns `true` if ped is within range of any enemies, `false` otherwise. diff --git a/PED/SetPedSurvivesBeingOutOfWater.md b/PED/SetPedSurvivesBeingOutOfWater.md new file mode 100644 index 000000000..12aa6cb1a --- /dev/null +++ b/PED/SetPedSurvivesBeingOutOfWater.md @@ -0,0 +1,22 @@ +--- +ns: PED +--- +## _SET_PED_SURVIVES_BEING_OUT_OF_WATER + +```c +// 0x100CD221F572F6E1 +BOOL _SET_PED_SURVIVES_BEING_OUT_OF_WATER(Ped ped, BOOL toggle); +``` + +Allows marine animals to survive outside of water (R* is using it for sharks). + +``` +NativeDB Introduced: v3407 +``` + +## Parameters +* **ped**: The marine animal ped +* **toggle**: `true` to allow survival out of water, `false` to apply normal water restrictions. + +## Return value +Returns `true` if successful. diff --git a/PHYSICS/GetDamping.md b/PHYSICS/GetDamping.md new file mode 100644 index 000000000..af27edde3 --- /dev/null +++ b/PHYSICS/GetDamping.md @@ -0,0 +1,19 @@ +--- +ns: PHYSICS +--- +## GET_DAMPING + +```c +// 0x8C520A929415BCD2 +Vector3 GET_DAMPING(Entity entity, int type); +``` + +``` +NativeDB Introduced: v3407 +``` + +## Parameters +* **entity**: +* **type**: + +## Return value diff --git a/TASK/ClearPedScriptTaskIfRunningThreatResponseNonTempTask.md b/TASK/ClearPedScriptTaskIfRunningThreatResponseNonTempTask.md new file mode 100644 index 000000000..1b834a8ab --- /dev/null +++ b/TASK/ClearPedScriptTaskIfRunningThreatResponseNonTempTask.md @@ -0,0 +1,17 @@ +--- +ns: TASK +--- +## CLEAR_PED_SCRIPT_TASK_IF_RUNNING_THREAT_RESPONSE_NON_TEMP_TASK + +```c +// 0xF6DC48E56BE1243A +void CLEAR_PED_SCRIPT_TASK_IF_RUNNING_THREAT_RESPONSE_NON_TEMP_TASK(Ped ped); +``` + +``` +NativeDB Introduced: v3407 +``` + + +## Parameters +* **ped**: diff --git a/TASK/TaskSharkCircleCoord.md b/TASK/TaskSharkCircleCoord.md new file mode 100644 index 000000000..312eb0694 --- /dev/null +++ b/TASK/TaskSharkCircleCoord.md @@ -0,0 +1,50 @@ +--- +ns: TASK +--- +## TASK_SHARK_CIRCLE_COORD + +```c +// 0x60A19CF85FF4CEFA +void TASK_SHARK_CIRCLE_COORD(Ped ped, float x, float y, float z, float moveBlendRatio, float radius); +``` + +Makes a shark ped circle around specified coordinates. + +``` +NativeDB Introduced: v3407 +``` + +## Parameters +* **ped**: The shark ped. +* **x**: X coordinate to circle around +* **y**: Y coordinate to circle around +* **z**: Z coordinate to circle around +* **moveBlendRatio**: Animation blend ratio from 0.0 to 1.0 +* **radius**: Radius of the circular path in meters + +## Examples +```lua +local function CreateShark(coords) + RequestModel(sharkModel) + while not HasModelLoaded(sharkModel) do + Wait(0) + end + + shark = CreatePed(28, sharkModel, coords.x, coords.y, coords.z, 0.0, true, true) + SetModelAsNoLongerNeeded(sharkModel) + return shark +end + +local function SharkCircle(sharkHandle, coords) + if (DoesEntityExist(shark)) then + TaskSharkCircleCoord(sharkHandle, coords.x, coords.y, coords.z - 5.0, 1.0, 10.0) + Wait(10000) -- We're letting the shark doing circles movement for 10 seconds + ClearPedTasks(shark) -- Going to shop the task + end +end + +local coords = GetEntityCoords(PlayerPedId()) +local shark = CreateShark(coords) +SharkCircle(shark, coords) +``` + diff --git a/VEHICLE/DisableIndividualPlanePropeller.md b/VEHICLE/DisableIndividualPlanePropeller.md index 6ff913cd3..6bba382bb 100644 --- a/VEHICLE/DisableIndividualPlanePropeller.md +++ b/VEHICLE/DisableIndividualPlanePropeller.md @@ -9,7 +9,11 @@ aliases: ["0x500873A45724C863","_DISABLE_PLANE_PROPELLER"] void DISABLE_INDIVIDUAL_PLANE_PROPELLER(Vehicle vehicle, int propeller); ``` +``` +NativeDB Introduced: v323 +``` + ## Parameters -* **vehicle**: -* **propeller**: +* **vehicle**: The propeller plane +* **propeller**: The propeller index to disable (starts at 0). diff --git a/VEHICLE/EnableIndividualPlanePropeller.md b/VEHICLE/EnableIndividualPlanePropeller.md new file mode 100644 index 000000000..002a88482 --- /dev/null +++ b/VEHICLE/EnableIndividualPlanePropeller.md @@ -0,0 +1,32 @@ +--- +ns: VEHICLE +--- +## _ENABLE_INDIVIDUAL_PLANE_PROPELLER + +```c +// 0xDC05D2777F855F44 +void _ENABLE_INDIVIDUAL_PLANE_PROPELLER(Vehicle plane, int propeller); +``` + +Enables individual propeller on a propeller plane. This native is the inverse of [`DISABLE_INDIVIDUAL_PLANE_PROPELLER`](#_0x500873A45724C863). + +``` +NativeDB Introduced: v3407 +``` + +## Parameters +* **vehicle**: The propeller plane. +* **propeller**: The propeller index to enable (starts at 0). + +## Examples +```lua +RegisterCommand("start", function() + local vehicle = GetVehiclePedIsIn(PlayerPedId(), false) -- The plane used in this example is the cuban800 + + DisableIndividualPlanePropeller(vehicle, 0) + DisableIndividualPlanePropeller(vehicle, 1) + -- We are disabling both propellers so we can start a specific one (since both are automatically started when entering the plane) + Wait(5000) -- We are waiting 5 seconds + EnableIndividualPlanePropeller(vehicle, 1) -- Starting the second propeller (since the index starts at 0) +end, false) +``` diff --git a/VEHICLE/IsVehicleOnBoostPad.md b/VEHICLE/IsVehicleOnBoostPad.md new file mode 100644 index 000000000..3e9897284 --- /dev/null +++ b/VEHICLE/IsVehicleOnBoostPad.md @@ -0,0 +1,19 @@ +--- +ns: VEHICLE +--- +## _IS_VEHICLE_ON_BOOST_PAD + +```c +// 0xFC40CBF7B90CA77C +BOOL _IS_VEHICLE_ON_BOOST_PAD(Vehicle vehicle); +``` + +``` +NativeDB Introduced: v3407 +``` + +## Parameters +* **vehicle**: The vehicle to check. + +## Return value +Return `true` if the vehicle is on a boost pad, `false` otherwise. diff --git a/VEHICLE/SetDisableExplodeFromBodyDamageOnCollision.md b/VEHICLE/SetDisableExplodeFromBodyDamageOnCollision.md index 946c5cefe..8ee8e6c69 100644 --- a/VEHICLE/SetDisableExplodeFromBodyDamageOnCollision.md +++ b/VEHICLE/SetDisableExplodeFromBodyDamageOnCollision.md @@ -9,7 +9,7 @@ aliases: ["0x26E13D440E7F6064"] void SET_DISABLE_EXPLODE_FROM_BODY_DAMAGE_ON_COLLISION(Vehicle vehicle, cs_type(float) BOOL disableExplode); ``` -Prevents a vehicle from exploding upon sustaining body damage from physical collisions. This can be used to increase the durability of vehicles in high-impact scenarios, such as races or combat situations, by preventing them from being destroyed due to collision-induced body damage. +Prevents a vehicle from exploding upon sustaining body damage from physical collisions. Only works for planes. For helicopters, you might want to check [`SET_DISABLE_HELI_EXPLODE_FROM_BODY_DAMAGE`](#_0xEDBC8405B3895CC9) instead. diff --git a/VEHICLE/SetDisableExplodeFromBodyDamageReceivedByAiVehicle.md b/VEHICLE/SetDisableExplodeFromBodyDamageReceivedByAiVehicle.md new file mode 100644 index 000000000..c0b427513 --- /dev/null +++ b/VEHICLE/SetDisableExplodeFromBodyDamageReceivedByAiVehicle.md @@ -0,0 +1,22 @@ +--- +ns: VEHICLE +--- +## _SET_DISABLE_EXPLODE_FROM_BODY_DAMAGE_RECEIVED_BY_AI_VEHICLE + +```c +// 0xB0B7DF5CB876FF5E +void _SET_DISABLE_EXPLODE_FROM_BODY_DAMAGE_RECEIVED_BY_AI_VEHICLE(Vehicle plane, BOOL disable); +``` + +``` +NativeDB Introduced: v3407 +``` + +Prevents the plane from exploding when taking body damage if the inflictor is an AI-controlled vehicle. Only works for planes. + +## Parameters +* **plane**: +* **disable**: + +## Return value +Does not actually return anything. diff --git a/VEHICLE/SetDisableHeliExplodeFromBodyDamage.md b/VEHICLE/SetDisableHeliExplodeFromBodyDamage.md index 82c671777..f014719ca 100644 --- a/VEHICLE/SetDisableHeliExplodeFromBodyDamage.md +++ b/VEHICLE/SetDisableHeliExplodeFromBodyDamage.md @@ -9,7 +9,7 @@ aliases: ["0xEDBC8405B3895CC9"] void SET_DISABLE_HELI_EXPLODE_FROM_BODY_DAMAGE(Vehicle helicopter, cs_type(Any) BOOL disableExplode); ``` -Prevents a helicopter from exploding due to relatively minor body damage. +Prevents a helicopter from exploding due to relatively minor body damage. (Only works for helicopters and planes) ``` NativeDB Introduced: v1103 diff --git a/VEHICLE/SetPlaneAvoidsOther.md b/VEHICLE/SetPlaneAvoidsOther.md new file mode 100644 index 000000000..1ead4e9e7 --- /dev/null +++ b/VEHICLE/SetPlaneAvoidsOther.md @@ -0,0 +1,18 @@ +--- +ns: VEHICLE +--- +## _SET_PLANE_AVOIDS_OTHERS + +```c +// 0xFC40CBF7B90CA77C +void _SET_PLANE_AVOIDS_OTHERS(Vehicle plane, BOOL toggle); +``` + +``` +NativeDB Introduced: v3407 +``` + + +## Parameters +* **plane**: +* **toggle**: diff --git a/VEHICLE/SetPlaneControlSectionsShouldBreakOffFromExplosions.md b/VEHICLE/SetPlaneControlSectionsShouldBreakOffFromExplosions.md new file mode 100644 index 000000000..c7685b25b --- /dev/null +++ b/VEHICLE/SetPlaneControlSectionsShouldBreakOffFromExplosions.md @@ -0,0 +1,17 @@ +--- +ns: VEHICLE +--- +## SET_PLANE_CONTROL_SECTIONS_SHOULD_BREAK_OFF_FROM_EXPLOSIONS + +```c +// 0xDD8A2D3337F04196 +void SET_PLANE_CONTROL_SECTIONS_SHOULD_BREAK_OFF_FROM_EXPLOSIONS(Vehicle plane, BOOL toggle); +``` + +``` +NativeDB Introduced: v3407 +``` + +## Parameters +* **vehicle**: +* **toggle**: diff --git a/VEHICLE/SetVehicleExplosiveDamageScale.md b/VEHICLE/SetVehicleExplosiveDamageScale.md new file mode 100644 index 000000000..cc62aa264 --- /dev/null +++ b/VEHICLE/SetVehicleExplosiveDamageScale.md @@ -0,0 +1,20 @@ +--- +ns: VEHICLE +--- +## _SET_VEHICLE_EXPLOSIVE_DAMAGE_SCALE + +```c +// 0x84D7FFD223CAAFFD +Any _SET_VEHICLE_EXPLOSIVE_DAMAGE_SCALE(Vehicle vehicle, float scale); +``` + +``` +NativeDB Introduced: v3407 +``` + +## Parameters +* **vehicle**: +* **scale**: + +## Return value +Does not actually return anything. diff --git a/WEAPON/GetAmmoInVehicleWeaponClip.md b/WEAPON/GetAmmoInVehicleWeaponClip.md new file mode 100644 index 000000000..d703dd581 --- /dev/null +++ b/WEAPON/GetAmmoInVehicleWeaponClip.md @@ -0,0 +1,19 @@ +--- +ns: WEAPON +--- +## _GET_AMMO_IN_VEHICLE_WEAPON_CLIP + +```c +// 0x2857938C5D407AFA +BOOL _GET_AMMO_IN_VEHICLE_WEAPON_CLIP(Vehicle vehicle, int seat, int ammo); +``` + +``` +NativeDB Introduced: v3407 +``` + +## Parameters +* **vehicle**: +* **seat**: +* **ammo**: + diff --git a/WEAPON/GetTimeBeforeVehicleWeaponReloadFinishes.md b/WEAPON/GetTimeBeforeVehicleWeaponReloadFinishes.md new file mode 100644 index 000000000..af992477b --- /dev/null +++ b/WEAPON/GetTimeBeforeVehicleWeaponReloadFinishes.md @@ -0,0 +1,18 @@ +--- +ns: WEAPON +--- +## _GET_TIME_BEFORE_VEHICLE_WEAPON_RELOAD_FINISHES + +```c +// 0xC8C6F4B1CDEB40EF +int _GET_TIME_BEFORE_VEHICLE_WEAPON_RELOAD_FINISHES(Vehicle vehicle, int seat); +``` + +``` +NativeDB Introduced: v3407 +``` + +## Parameters +* **vehicle**: +* **seat**: + diff --git a/WEAPON/GetVehicleWeaponReloadTime.md b/WEAPON/GetVehicleWeaponReloadTime.md new file mode 100644 index 000000000..d51fa21ae --- /dev/null +++ b/WEAPON/GetVehicleWeaponReloadTime.md @@ -0,0 +1,18 @@ +--- +ns: WEAPON +--- +## _GET_VEHICLE_WEAPON_RELOAD_TIME + +```c +// 0xD0AD348FFD7A6868 +float _GET_VEHICLE_WEAPON_RELOAD_TIME(Vehicle vehicle, int seat); +``` + +``` +NativeDB Introduced: v3407 +``` + +## Parameters +* **vehicle**: +* **seat**: + diff --git a/WEAPON/HasWeaponReloadingInVehicle.md b/WEAPON/HasWeaponReloadingInVehicle.md new file mode 100644 index 000000000..f42947286 --- /dev/null +++ b/WEAPON/HasWeaponReloadingInVehicle.md @@ -0,0 +1,18 @@ +--- +ns: WEAPON +--- +## _HAS_WEAPON_RELOADING_IN_VEHICLE + +```c +// 0x8062F07153F4446F +BOOL _HAS_WEAPON_RELOADING_IN_VEHICLE(Vehicle vehicle, int seat); +``` + +``` +NativeDB Introduced: v3407 +``` + +## Parameters +* **vehicle**: +* **seat**: + diff --git a/WEAPON/SetAmmoInVehicleWeaponClip.md b/WEAPON/SetAmmoInVehicleWeaponClip.md new file mode 100644 index 000000000..ff898d1ab --- /dev/null +++ b/WEAPON/SetAmmoInVehicleWeaponClip.md @@ -0,0 +1,19 @@ +--- +ns: WEAPON +--- +## _SET_AMMO_IN_VEHICLE_WEAPON_CLIP + +```c +// 0x873906720EE842C3 +BOOL _SET_AMMO_IN_VEHICLE_WEAPON_CLIP(Vehicle vehicle, int seat, int ammo); +``` + +``` +NativeDB Introduced: v3407 +``` + +## Parameters +* **vehicle**: +* **seat**: +* **ammo**: + diff --git a/WEAPON/TriggerVehicleWeaponReload.md b/WEAPON/TriggerVehicleWeaponReload.md new file mode 100644 index 000000000..20cdc84f3 --- /dev/null +++ b/WEAPON/TriggerVehicleWeaponReload.md @@ -0,0 +1,23 @@ +--- +ns: WEAPON +--- +## _TRIGGER_VEHICLE_WEAPON_RELOAD + +```c +// 0x5B1513F27F279A44 +BOOL _TRIGGER_VEHICLE_WEAPON_RELOAD(Vehicle vehicle, int seat, Ped ped); +``` + +Start a reload for a vehicle's weapon. + +``` +NativeDB Introduced: v3407 +``` + +## Parameters +* **vehicle**: The vehicle containing the weapon to reload. +* **seat**: The seat/weapon index. +* **ped**: The ped initiating the reload (the one using the weapon). + +## Return value +Return `true` if reload was triggered successfully, `false` otherwise.