From d8bb3f40b273ca3c09c64fd8de9bc08f9ca6a217 Mon Sep 17 00:00:00 2001 From: Florian V <15657365+FlorianV85@users.noreply.github.com> Date: Sun, 28 Jan 2024 14:11:47 +0100 Subject: [PATCH 1/2] docs: fix Entity Factories article ID has the wrong type --- docs/articles/getting-started/entity-factories.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/articles/getting-started/entity-factories.md b/docs/articles/getting-started/entity-factories.md index 8a6971d16..523f09546 100644 --- a/docs/articles/getting-started/entity-factories.md +++ b/docs/articles/getting-started/entity-factories.md @@ -14,7 +14,7 @@ public class MyPlayer : Player { public bool LoggedIn { get; set; } - public MyPlayer(ICore core, IntPtr nativePointer, ushort id) : base(core, nativePointer, id) + public MyPlayer(ICore core, IntPtr nativePointer, uint id) : base(core, nativePointer, id) { LoggedIn = false; } @@ -27,12 +27,12 @@ Thats why you need to create a factory that will create the player for you when ## Step 2, Create the factory In the factory the defined default constructor of the player or vehicle class will be called. -You only need to override the ```IPlayer Create(IntPtr playerPointer, ushort id)``` method and initialize your own class instead of the default one. +You only need to override the ```IPlayer Create(IntPtr playerPointer, uint id)``` method and initialize your own class instead of the default one. ```csharp public class MyPlayerFactory : IEntityFactory { - public IPlayer Create(ICore core, IntPtr playerPointer, ushort id) + public IPlayer Create(ICore core, IntPtr playerPointer, uint id) { return new MyPlayer(core, playerPointer, id); } @@ -63,7 +63,7 @@ public class MyVehicle : Vehicle public int MyData { get; set; } // This constructor is used for creation via entity factory - public MyVehicle(ICore core, IntPtr nativePointer, ushort id) : base(core, nativePointer, id) + public MyVehicle(ICore core, IntPtr nativePointer, uint id) : base(core, nativePointer, id) { MyData = 6; } From d6aa8bd361322073f328d70a490bbd77e40805a3 Mon Sep 17 00:00:00 2001 From: doxoh Date: Wed, 7 Feb 2024 14:45:22 +0100 Subject: [PATCH 2/2] feat(client): update natives --- api/AltV.Net.Client/Natives.cs | 2813 +++++++++++++++++++++++++++----- runtime | 2 +- 2 files changed, 2379 insertions(+), 436 deletions(-) diff --git a/api/AltV.Net.Client/Natives.cs b/api/AltV.Net.Client/Natives.cs index 3efb5fd32..b95658e9f 100644 --- a/api/AltV.Net.Client/Natives.cs +++ b/api/AltV.Net.Client/Natives.cs @@ -224,6 +224,7 @@ public unsafe interface INatives void FreeMemoryForHighQualityPhoto(); void SetTakenPhotoIsMugshot(bool toggle); void SetArenaThemeAndVariationForTakenPhoto(int p0, int p1); + void SetOnIslandXForTakenPhoto(int p0); /// /// 1 match in 1 script. cellphone_controller. /// @@ -315,6 +316,7 @@ public unsafe interface INatives /// Draws a 3D sphere, typically seen in the GTA:O freemode event "Penned In". /// Example https://imgur.com/nCbtS4H /// + /// - The alpha for the sphere. Goes from 0.0 to 1.0. void DrawMarkerSphere(float x, float y, float z, float radius, int red, int green, int blue, float alpha); /// /// 20/03/17 : Attention, checkpoints are already handled by the game itself, so you must not loop it like markers. @@ -860,6 +862,7 @@ public unsafe interface INatives /// Note: the argument alpha ranges from 0.0f-1.0f ! /// void SetParticleFxNonLoopedAlpha(float alpha); + void SetParticleFxNonLoopedScale(float scale); void SetParticleFxNonLoopedEmitterSize(float p0, float p1, float scale); /// /// Used only once in the scripts (taxi_clowncar) @@ -935,6 +938,7 @@ public unsafe interface INatives void SetParticleFxLoopedAlpha(int ptfxHandle, float alpha); void SetParticleFxLoopedScale(int ptfxHandle, float scale); void SetParticleFxLoopedFarClipDist(int ptfxHandle, float range); + void SetParticleFxLoopedCameraBias(int ptfxHandle, float p1); void SetParticleFxCamInsideVehicle(bool p0); void SetParticleFxCamInsideNonplayerVehicle(IVehicle vehicle, bool p1); void SetParticleFxCamInsideNonplayerVehicle(uint vehicle, bool p1); @@ -963,6 +967,7 @@ public unsafe interface INatives void SetParticleFxFootOverrideName(string p0); void SetSkidmarkRangeScale(float scale); void SetPtfxForceVehicleInteriorFlag(int p0); + void RegisterPostfxBulletImpact(float weaponWorldPosX, float weaponWorldPosY, float weaponWorldPosZ, float intensity); void ForcePostfxBulletImpactsAfterHud(bool p0); /// /// From the b678d decompiled scripts: @@ -985,6 +990,16 @@ public unsafe interface INatives /// Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json /// void ResetParticleFxOverride(string name); + /// + /// Returns ptfxHandle + /// + /// scr_sv_drag_burnout + int StartVehicleParticleFxLooped(IVehicle vehicle, string effectName, bool frontBack, bool leftRight, bool localOnly); + /// + /// Returns ptfxHandle + /// + /// scr_sv_drag_burnout + int StartVehicleParticleFxLooped(uint vehicle, string effectName, bool frontBack, bool leftRight, bool localOnly); void SetWeatherPtfxUseOverrideSettings(bool p0); void SetWeatherPtfxOverrideCurrLevel(float p0); void WashDecalsInRange(float x, float y, float z, float range, float p4); @@ -1072,11 +1087,13 @@ public unsafe interface INatives /// Forces footstep tracks on all surfaces. /// void UseSnowFootVfxWhenUnsheltered(bool toggle); + void ForceAllowSnowFootVfxOnIce(bool toggle); /// /// Forces vehicle trails on all surfaces. /// void UseSnowWheelVfxWhenUnsheltered(bool toggle); void DisableRegionVfx(int p0); + void ForceGroundSnowPass(bool toggle); /// /// Only one match in the scripts: /// GRAPHICS::PRESET_INTERIOR_AMBIENT_CACHE("int_carrier_hanger"); @@ -1132,6 +1149,10 @@ public unsafe interface INatives /// void DisableMoonCycleOverride(); int RequestScaleformMovie(string scaleformName); + /// + /// Another REQUEST_SCALEFORM_MOVIE equivalent. + /// + int RequestScaleformMovieWithIgnoreSuperWidescreen(string scaleformName); int RequestScaleformMovieInstance(string scaleformName); /// /// Similar to REQUEST_SCALEFORM_MOVIE, but seems to be some kind of "interactive" scaleform movie? @@ -1331,6 +1352,7 @@ public unsafe interface INatives /// void SetTvChannelPlaylist(int tvChannel, string playlistName, bool restart); void SetTvChannelPlaylistAtHour(int tvChannel, string playlistName, int hour); + void SetTvChannelPlaylistDirty(int tvChannel, bool p1); void ClearTvChannelPlaylist(int tvChannel); bool IsPlaylistOnChannel(int tvChannel, int p1); bool IsTvshowCurrentlyPlaying(uint videoCliphash); @@ -1428,6 +1450,7 @@ public unsafe interface INatives void StopPedRingtone(uint ped); bool IsMobilePhoneCallOngoing(); bool IsMobileInterferenceActive(); + int GetCurrentTvShowPlayTime(); void CreateNewScriptedConversation(); /// /// NOTE: ones that are -1, 0 - 35 are determined by a function where it gets a TextLabel from a global then runs, @@ -1616,7 +1639,7 @@ public unsafe interface INatives /// int GetNetworkIdFromSoundId(int soundId); int GetSoundIdFromNetworkId(int netId); - void SetVariableOnSound(int soundId, string unkVariable, float p2); + void SetVariableOnSound(int soundId, string variable, float p2); /// /// From the scripts, p0: /// "ArmWrestlingIntensity", @@ -1624,13 +1647,13 @@ public unsafe interface INatives /// "Monkey_Stream", /// "ZoomLevel" /// - void SetVariableOnStream(string unkVariable, float p1); + void SetVariableOnStream(string variable, float p1); void OverrideUnderwaterStream(string p0, bool p1); /// /// AUDIO::SET_VARIABLE_ON_UNDER_WATER_STREAM("inTunnel", 1.0); /// AUDIO::SET_VARIABLE_ON_UNDER_WATER_STREAM("inTunnel", 0.0); /// - void SetVariableOnUnderWaterStream(string unkVariableName, float value); + void SetVariableOnUnderWaterStream(string variableName, float value); bool HasSoundFinished(int soundId); /// /// Plays ambient speech. See also _0x444180DB. @@ -2067,7 +2090,7 @@ public unsafe interface INatives /// Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json /// void SetCutsceneAudioOverride(string name); - void SetVariableOnSynchSceneAudio(string unkVariableName, float value); + void SetVariableOnSynchSceneAudio(string variableName, float value); /// /// Plays the given police radio message. /// All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/GBnsQ5hr @@ -2275,6 +2298,8 @@ public unsafe interface INatives /// Works for planes only. /// void EnableStallWarningSounds(uint vehicle, bool toggle); + void EnableDragRaceStationaryWarningSounds(IVehicle vehicle, bool enable); + void EnableDragRaceStationaryWarningSounds(uint vehicle, bool enable); bool IsGameInControlOfMusic(); void SetGpsActive(bool active); /// @@ -2310,7 +2335,7 @@ public unsafe interface INatives /// /// Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json /// - void SetAudioSceneVariable(string scene, string unkVariable, float value); + void SetAudioSceneVariable(string scene, string variable, float value); void SetAudioScriptCleanupTime(int time); /// /// All found occurrences in b678d: @@ -2668,6 +2693,10 @@ public unsafe interface INatives /// void SetCamDofMaxNearInFocusDistanceBlendLevel(int camera, float p1); /// + /// This native has a name defined inside its code + /// + void SetCamDofShouldKeepLookAtTargetInFocus(int camera, bool state); + /// /// Last param determines if its relative to the Entity /// void AttachCamToEntity(int cam, IEntity entity, float xOffset, float yOffset, float zOffset, bool isRelative); @@ -3025,6 +3054,8 @@ public unsafe interface INatives /// CAM::SET_THIRD_PERSON_CAM_ORBIT_DISTANCE_LIMITS_THIS_UPDATE(1f, 1f); /// void SetThirdPersonCamOrbitDistanceLimitsThisUpdate(float p0, float distance); + float GetThirdPersonCamMinOrbitDistanceSpring(); + float GetThirdPersonCamMaxOrbitDistanceSpring(); /// /// Forces gameplay cam to specified vehicle as if you were in it /// @@ -3379,6 +3410,7 @@ public unsafe interface INatives int GetCutsceneTime(); int GetCutsceneTotalDuration(); int GetCutsceneEndTime(); + int GetCutscenePlayDuration(); bool WasCutsceneSkipped(); bool HasCutsceneFinished(); bool IsCutsceneActive(); @@ -3794,6 +3826,8 @@ public unsafe interface INatives /// /// Tested with vehicles, returns true whenever the vehicle is touching any entity. bool HasEntityCollidedWithAnything(uint entity); + uint GetLastEntityHitByEntity(IEntity entity); + uint GetLastEntityHitByEntity(uint entity); uint GetLastMaterialHitByEntity(IEntity entity); uint GetLastMaterialHitByEntity(uint entity); Vector3 GetCollisionNormalOfLastHitForEntity(IEntity entity); @@ -4138,6 +4172,8 @@ public unsafe interface INatives uint GetNearestPlayerToEntity(uint entity); uint GetNearestPlayerToEntityOnTeam(IEntity entity, int team); uint GetNearestPlayerToEntityOnTeam(uint entity, int team); + int GetNearestParticipantToEntity(IEntity entity); + int GetNearestParticipantToEntity(uint entity); /// /// Returns: /// 0 = no entity @@ -4454,6 +4490,10 @@ public unsafe interface INatives /// - do not teleport entity to be attached to the position of the bone Index of the target entity (if 1, entity will not be teleported to target bone) /// - is always 2 in scripts. void AttachEntityToEntityPhysically(uint entity1, uint entity2, int boneIndex1, int boneIndex2, float xPos1, float yPos1, float zPos1, float xPos2, float yPos2, float zPos2, float xRot, float yRot, float zRot, float breakForce, bool fixedRot, bool p15, bool collision, bool p17, int p18); + void AttachEntityToEntityPhysicallyOverrideInverseMass(IEntity firstEntityIndex, uint secondEntityIndex, int firstEntityBoneIndex, int secondEntityBoneIndex, float secondEntityOffsetX, float secondEntityOffsetY, float secondEntityOffsetZ, float firstEntityOffsetX, float firstEntityOffsetY, float firstEntityOffsetZ, float vecRotationX, float vecRotationY, float vecRotationZ, float physicalStrength, bool constrainRotation, bool doInitialWarp, bool collideWithEntity, bool addInitialSeperation, int rotOrder, float invMassScaleA, float invMassScaleB); + void AttachEntityToEntityPhysicallyOverrideInverseMass(uint firstEntityIndex, IEntity secondEntityIndex, int firstEntityBoneIndex, int secondEntityBoneIndex, float secondEntityOffsetX, float secondEntityOffsetY, float secondEntityOffsetZ, float firstEntityOffsetX, float firstEntityOffsetY, float firstEntityOffsetZ, float vecRotationX, float vecRotationY, float vecRotationZ, float physicalStrength, bool constrainRotation, bool doInitialWarp, bool collideWithEntity, bool addInitialSeperation, int rotOrder, float invMassScaleA, float invMassScaleB); + void AttachEntityToEntityPhysicallyOverrideInverseMass(IEntity firstEntityIndex, IEntity secondEntityIndex, int firstEntityBoneIndex, int secondEntityBoneIndex, float secondEntityOffsetX, float secondEntityOffsetY, float secondEntityOffsetZ, float firstEntityOffsetX, float firstEntityOffsetY, float firstEntityOffsetZ, float vecRotationX, float vecRotationY, float vecRotationZ, float physicalStrength, bool constrainRotation, bool doInitialWarp, bool collideWithEntity, bool addInitialSeperation, int rotOrder, float invMassScaleA, float invMassScaleB); + void AttachEntityToEntityPhysicallyOverrideInverseMass(uint firstEntityIndex, uint secondEntityIndex, int firstEntityBoneIndex, int secondEntityBoneIndex, float secondEntityOffsetX, float secondEntityOffsetY, float secondEntityOffsetZ, float firstEntityOffsetX, float firstEntityOffsetY, float firstEntityOffsetZ, float vecRotationX, float vecRotationY, float vecRotationZ, float physicalStrength, bool constrainRotation, bool doInitialWarp, bool collideWithEntity, bool addInitialSeperation, int rotOrder, float invMassScaleA, float invMassScaleB); /// /// Called to update entity attachments. /// @@ -4704,13 +4744,25 @@ public unsafe interface INatives /// female ped ~= 0 - 100 /// /// >= 0 - void SetEntityHealth(IEntity entity, int health, int p2); + void SetEntityHealth(IEntity entity, int health, uint instigator, uint weaponType); /// /// male ped ~= 100 - 200 /// female ped ~= 0 - 100 /// /// >= 0 - void SetEntityHealth(uint entity, int health, int p2); + void SetEntityHealth(uint entity, int health, IEntity instigator, uint weaponType); + /// + /// male ped ~= 100 - 200 + /// female ped ~= 0 - 100 + /// + /// >= 0 + void SetEntityHealth(IEntity entity, int health, IEntity instigator, uint weaponType); + /// + /// male ped ~= 100 - 200 + /// female ped ~= 0 - 100 + /// + /// >= 0 + void SetEntityHealth(uint entity, int health, uint instigator, uint weaponType); /// /// Sets a ped or an object totally invincible. It doesn't take any kind of damage. Peds will not ragdoll on explosions and the tazer animation won't apply either. /// If you use this for a ped and you want Ragdoll to stay enabled, then do: @@ -5007,6 +5059,8 @@ public unsafe interface INatives /// Gets the local rotation of the specified bone of the specified entity. /// Vector3 GetEntityBoneObjectRotation(uint entity, int boneIndex); + Vector3 GetEntityBoneObjectPostion(IEntity entity, int boneIndex); + Vector3 GetEntityBoneObjectPostion(uint entity, int boneIndex); int GetEntityBoneCount(IEntity entity); int GetEntityBoneCount(uint entity); void EnableEntityBulletCollision(IEntity entity); @@ -5162,7 +5216,7 @@ public unsafe interface INatives uint GetHashNameForComponent(uint entity, int componentId, int drawableVariant, int textureVariant); uint GetHashNameForProp(IEntity entity, int componentId, int propIndex, int propTextureIndex); uint GetHashNameForProp(uint entity, int componentId, int propIndex, int propTextureIndex); - int GetItemVariantsCount(uint componentHash); + int GetShopPedApparelVariantComponentCount(uint componentHash); /// /// `propHash`: Ped helmet prop hash? /// @@ -5170,10 +5224,10 @@ public unsafe interface INatives int GetShopPedApparelVariantPropCount(uint propHash); /// /// - void GetVariantComponent(uint componentHash, int unkVariantComponentIndex, ref uint nameHash, ref int enumValue, ref int componentType); + void GetVariantComponent(uint componentHash, int variantComponentIndex, ref uint nameHash, ref int enumValue, ref int componentType); /// /// - void GetVariantProp(uint componentHash, int unkVariantPropIndex, ref uint nameHash, ref int enumValue, ref int anchorPoint); + void GetVariantProp(uint componentHash, int variantPropIndex, ref uint nameHash, ref int enumValue, ref int anchorPoint); /// /// Returns number of possible values of the forcedComponentIndex argument of GET_FORCED_COMPONENT. /// @@ -5192,7 +5246,7 @@ public unsafe interface INatives /// Full list of restriction tags by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedApparelRestrictionTags.json /// componentId/last parameter seems to be unused. /// - bool IsTagRestricted(uint componentHash, uint restrictionTagHash, int componentId); + bool DoesShopPedApparelHaveRestrictionTag(uint componentHash, uint restrictionTagHash, int componentId); bool DoesCurrentPedComponentHaveRestrictionTag(IPlayer ped, int componentId, uint restrictionTagHash); bool DoesCurrentPedComponentHaveRestrictionTag(uint ped, int componentId, uint restrictionTagHash); bool DoesCurrentPedPropHaveRestrictionTag(IPlayer ped, int componentId, uint restrictionTagHash); @@ -5218,11 +5272,11 @@ public unsafe interface INatives /// /// See https://git.io/JtcBH for example and structs. /// - bool GetShopPedOutfitPropVariant(uint outfitHash, int unkVariantIndex, ref int outPropVariant); + bool GetShopPedOutfitPropVariant(uint outfitHash, int variantIndex, ref int outPropVariant); /// /// See https://git.io/JtcBH for example and structs. /// - bool GetShopPedOutfitComponentVariant(uint outfitHash, int unkVariantIndex, ref int outComponentVariant); + bool GetShopPedOutfitComponentVariant(uint outfitHash, int variantIndex, ref int outComponentVariant); int GetNumDlcVehicles(); /// /// @@ -5782,7 +5836,7 @@ public unsafe interface INatives /// string GetCharacterFromAudioConversationFilenameBytes(string text, int startPosition, int endPosition); /// - /// Gets a string literal from a label name. + /// Gets a localized string literal from a label name. Can be used for output of e.g. VEHICLE::GET_LIVERY_NAME. To check if a GXT label can be localized with this, HUD::DOES_TEXT_LABEL_EXIST can be used. /// string GetFilenameForAudioConversation(string labelName); void ClearPrints(); @@ -5854,6 +5908,7 @@ public unsafe interface INatives bool IsRadarHidden(); bool IsMinimapRendering(); void UseVehicleTargetingReticule(int p0); + void UseVehicleTargetingReticuleOnVehicles(bool enable); void AddValidVehicleHitHash(int p0); void ClearValidVehicleHitHashes(); /// @@ -5928,6 +5983,7 @@ public unsafe interface INatives /// Right-Justify requires SET_TEXT_WRAP, otherwise it will draw to the far right of the screen /// void SetTextJustification(int justifyType); + void SetTextLineHeightMult(float lineHeightMult); /// /// It sets the text in a specified box and wraps the text if it exceeds the boundries. Both values are for X axis. Useful when positioning text set to center or aligned to the right. /// @@ -6184,6 +6240,7 @@ public unsafe interface INatives /// _SHOW_FRIEND_INDICATOR_ON_BLIP* - _SHOW_HEADING_INDICATOR_ON_BLIP* /// void ShowGoldTickOnBlip(int blip, bool toggle); + void ShowForSaleIconOnBlip(int blip, bool toggle); /// /// Adds the GTA: Online player heading indicator to a blip. /// @@ -6248,6 +6305,10 @@ public unsafe interface INatives void RemoveFakeConeData(int blip); void ClearFakeConeArray(); /// + /// Applies to new eBlipParams _BLIP_CHANGE_46* and _BLIP_CHANGE_47* + /// + void SetBlipGpsRouteDisplayDistance(int blip, int blipChangeParam46, bool blipChangeParam47); + /// /// This native is used to colorize certain map components like the army base at the top of the map. /// /// appears to be always -1. If p2 is -1 then native wouldn't change the color. See https://gfycat.com/SkinnyPinkChupacabra @@ -6281,10 +6342,12 @@ public unsafe interface INatives /// Toggles the Cayo Perico map. /// void SetUseIslandMap(bool toggle); + void SetPauseExteriorRenderingWhileInInterior(); /// /// When calling this, the current frame will have the players "arrow icon" be focused on the dead center of the radar. /// void DontTiltMinimapThisFrame(); + void DontZoomMinimapWhenRunningThisFrame(); void DontZoomMinimapWhenSnipingThisFrame(); void SetWidescreenFormat(int p0); void DisplayAreaName(bool toggle); @@ -6354,7 +6417,7 @@ public unsafe interface INatives /// /// Calling this each frame, stops the player from receiving a weapon via the weapon wheel. /// - void BlockWeaponWheelThisFrame(); + void HudSuppressWeaponWheelResultsThisFrame(); /// /// Returns the weapon hash to the selected/highlighted weapon in the wheel /// @@ -6541,7 +6604,7 @@ public unsafe interface INatives /// /// World to relative screen coords, this world to screen will keep the text on screen. Was named _GET_SCREEN_COORD_FROM_WORLD_COORD, but this conflicts with 0x34E82F05DF2974F5. As that hash actually matches GET_SCREEN_COORD_FROM_WORLD_COORD that one supercedes and this one was renamed to _GET_2D_COORD_FROM_3D_COORD /// - int GetScreenCoordFromWorldCoord2(float worldX, float worldY, float worldZ, ref float screenX, ref float screenY); + int GetHudScreenPositionFromWorldPosition(float worldX, float worldY, float worldZ, ref float screenX, ref float screenY); /// /// Shows a menu for reporting UGC content. /// @@ -6901,7 +6964,8 @@ public unsafe interface INatives /// /// Uses the `SOCIAL_CLUB2` scaleform. /// - void OpenSocialClubMenu(); + /// GALLERY, MISSIONS, CREWS, MIGRATE, PLAYLISTS, JOBS + void OpenSocialClubMenu(uint menu); void CloseSocialClubMenu(); /// /// HUD::SET_SOCIAL_CLUB_TOUR("Gallery"); @@ -6981,7 +7045,16 @@ public unsafe interface INatives /// void GetInteriorLocationAndNamehash(int interior, ref Vector3 position, ref uint nameHash); /// - /// Returns the group ID of the specified interior. For example, regular interiors have group 0, subway interiors have group 1. There are a few other groups too. + /// Returns the group ID of the specified interior. + /// 0 = default + /// 1 = subway station, subway tracks, sewers + /// 3 = train tunnel under mirror park + /// 5 = tunnel near del perro + /// 6 = train tunnel near chilliad + /// 7 = train tunnel near josiah + /// 8 = train tunnel in sandy shores + /// 9 = braddock tunnel (near chilliad) + /// See NativeDB for reference: http://natives.altv.mp/#/0xE4A84ABF135EF91A /// int GetInteriorGroupId(int interior); Vector3 GetOffsetFromInteriorInWorldCoords(int interior, float x, float y, float z); @@ -7521,6 +7594,7 @@ public unsafe interface INatives void SetCreditsActive(bool toggle); void SetCreditsFadeOutWithScreen(bool toggle); bool HaveCreditsReachedEnd(); + bool AreCreditsRunning(); void TerminateAllScriptsWithThisName(string scriptName); void NetworkSetScriptIsSafeForNetworkGame(); /// @@ -7717,6 +7791,9 @@ public unsafe interface INatives bool GetCoordsOfProjectileTypeInArea(float x1, float y1, float z1, float x2, float y2, float z2, uint projectileHash, ref Vector3 projectilePos, bool ownedByPlayer); /// /// + bool GetCoordsOfProjectileTypeInAngledArea(float vecAngledAreaPoint1X, float vecAngledAreaPoint1Y, float vecAngledAreaPoint1Z, float vecAngledAreaPoint2X, float vecAngledAreaPoint2Y, float vecAngledAreaPoint2Z, float distanceOfOppositeFace, uint weaponType, ref Vector3 positionOut, bool bIsPlayer); + /// + /// bool GetCoordsOfProjectileTypeWithinDistance(IPlayer ped, uint weaponHash, float distance, ref Vector3 outCoords, bool p4); /// /// @@ -8209,6 +8286,11 @@ public unsafe interface INatives void UseActiveCameraForTimeslicingCentre(); void SetContentIdIndex(uint contentId, int index); int GetContentIdIndex(uint contentId); + void SetContentPropType(uint model, int type); + /// + /// Returns prop type for given model hash + /// + int GetContentPropType(uint model); /// /// Creates a mobile phone of the specified type. /// Possible phone types: @@ -8333,6 +8415,7 @@ public unsafe interface INatives /// bool CanPayAmountToBoss(int p0, int p1, int amount, ref int p3); void NetworkEarnFromPickup(int amount); + void NetworkEarnFromCashingOut(int amount); void NetworkEarnFromGangattackPickup(int amount); void NetworkEarnAssassinateTargetKilled(int amount); /// @@ -8360,7 +8443,6 @@ public unsafe interface INatives /// void NetworkEarnFromAiTargetKill(int p0, int p1); void NetworkEarnFromNotBadsport(int amount); - void NetworkEarnFromRockstar(int amount); void NetworkEarnFromVehicle(int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7); void NetworkEarnFromPersonalVehicle(int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8); /// @@ -8374,6 +8456,7 @@ public unsafe interface INatives /// /// void NetworkEarnFromJobBonus(int p0, ref int p1, ref int p2); + void NetworkEarnFromCriminalMastermind(int p0, int p1, int p2); void NetworkEarnHeistAward(int p0, int p1, int p2); void NetworkEarnFirstTimeBonus(int p0, int p1, int p2); void NetworkEarnGoon(int p0, int p1, int p2); @@ -8381,8 +8464,8 @@ public unsafe interface INatives void NetworkEarnAgency(int p0, int p1, int p2, int p3); void NetworkEarnFromWarehouse(int amount, int id); void NetworkEarnFromContraband(int amount, int p1); - void NetworkEarnFromDestroyingContraband(int p0); - void NetworkEarnFromSmugglerWork(int p0, int p1, int p2, int p3, int p4); + void NetworkEarnFromDestroyingContraband(int p0, int p1, int p2); + void NetworkEarnFromSmugglerWork(int p0, int p1, int p2, int p3, int p4, int p5); void NetworkEarnFromHangarTrade(int p0, int p1); void NetworkEarnPurchaseClubHouse(int p0, int p1); void NetworkEarnFromBusinessProduct(int amount, int p1, int p2, int p3); @@ -8412,7 +8495,7 @@ public unsafe interface INatives /// = 0 (always) /// = 1 (always) void NetworkBuyAirstrike(int cost, bool p1, bool p2, int p3); - void NetworkBuyBackupGang(int p0, int p1, bool p2, bool p3); + void NetworkBuyBackupGang(int p0, int p1, bool p2, bool p3, int npcProvider); /// /// /// = 0 (always) @@ -8477,6 +8560,7 @@ public unsafe interface INatives /// This isn't a hash collision. /// string ProcessCashGift(ref int p0, ref int p1, string p2); + void NetworkSpentMoveSubmarine(int p0, int p1, int p2); void NetworkSpentPlayerHealthcare(int p0, int p1, bool p2, bool p3); void NetworkSpentNoCops(int p0, bool p1, bool p2, int p3); void NetworkSpentCargoSourcing(int p0, int p1, int p2, int p3, int p4, int p5); @@ -8495,7 +8579,7 @@ public unsafe interface INatives void NetworkSpendGoon(int p0, int p1, int amount); void NetworkSpendBoss(int p0, int p1, int p2); void NetworkSpentMoveYacht(int amount, bool p1, bool p2); - void NetworkSpentRenameOrganization(int p0, int p1, int p2); + void NetworkSpentRenameOrganization(int p0, int p1, int p2, int p3); void NetworkBuyContrabandMission(int p0, int p1, uint p2, bool p3, bool p4); void NetworkSpentPaServiceHeli(int p0, int p1, int p2, int p3); void NetworkSpentPaServiceVehicle(int p0, int p1, int p2, int p3); @@ -8503,8 +8587,8 @@ public unsafe interface INatives void NetworkSpentPaServiceDancer(int p0, int p1, int p2, int p3); void NetworkSpentPaServiceImpound(int p0, int p1, int p2); void NetworkSpentPaHeliPickup(int p0, int p1, int p2, int p3); - void NetworkSpentPurchaseOfficeProperty(int p0, int p1, int p2, int p3); - void NetworkSpentUpgradeOfficeProperty(int p0, int p1, int p2, int p3); + void NetworkSpentPurchaseOfficeProperty(int p0, int p1, int p2, int p3, int p4); + void NetworkSpentUpgradeOfficeProperty(int p0, int p1, int p2, int p3, int p4); void NetworkSpentPurchaseWarehouseProperty(int p0, int p1, int p2, int p3); void NetworkSpentUpgradeWarehouseProperty(int p0, int p1, int p2, int p3); /// @@ -8686,6 +8770,65 @@ public unsafe interface INatives void NetworkEarnBikerShop(int p0, int p1); void NetworkEarnBiker(int p0); void NetworkYohanSourceGoods(int p0, int p1, int p2, int p3); + void NetworkSpendBuyMfgarage(int p0, int p1, int p2, int p3); + void NetworkSpendUpgradeMfgarage(int p0, int p1, int p2, int p3); + void NetworkSpendBuySupplies(int p0, bool p1, bool p2, int p3); + void NetworkSpendBuyAcidLab(int p0, int p1, int p2, int p3); + void NetworkSpendUpgradeAcidLabEquipment(int p0, int p1, int p2, int p3); + void NetworkSpendUpgradeAcidLabArmor(int p0, bool p1, bool p2, int p3); + void NetworkSpendUpgradeAcidLabScoop(int p0, bool p1, bool p2, int p3); + void NetworkSpendUpgradeAcidLabMines(int p0, bool p1, bool p2, int p3); + void NetworkSpendRenameAcidLab(int p0, int p1, int p2, int p3); + void NetworkSpendRenameAcidProduct(int p0, int p1, int p2, int p3); + void NetworkEarnAwardJuggaloMission(int p0, int p1); + void NetworkEarnAwardAcidLab(int p0, int p1); + void NetworkEarnAwardDailyStash(int p0, int p1); + void NetworkEarnAwardDeadDrop(int p0, int p1); + void NetworkEarnAwardRandomEvent(int p0, int p1); + void NetworkEarnAwardTaxi(int p0, int p1); + void NetworkEarnStreetDealer(int p0, int p1); + void NetworkEarnSellAcid(int p0, int p1); + void NetworkEarnSetupParticipationAcidLab(int p0, int p1); + void NetworkEarnSourceParticipationAcidLab(int p0, int p1); + void NetworkEarnSellParticipationAcidLab(int p0, int p1); + void NetworkEarnJuggaloStoryMission(int p0, int p1); + void NetworkEarnJuggaloStoryMissionParticipation(int p0, int p1); + /// + /// JUGGALO_PHONE_MISSION... + /// + void NetworkEarnFooliganJob(int p0, int p1); + /// + /// JUGGALO_PHONE_MISSION_PARTICIPATION... + /// + void NetworkEarnFooliganJobParticipation(int p0, int p1); + void NetworkEarnTaxiJob(int p0, int p1); + void NetworkEarnDailyStashHouseCompleted(int p0, int p1); + void NetworkEarnDailyStashHouseParticipation(int p0, int p1); + /// + /// Used for SERVICE_EARN_AVENGER_OPERATIONS & SERVICE_EARN_AVENGER_OPS_BONUS + /// + void NetworkEarnAvenger(int amount, int p1); + void NetworkEarnSmugglerOps(int p0, int p1, int p2); + void NetworkEarnBonusObjective(int amount, int p1, int p2); + void NetworkEarnProgressHub(int p0, int p1); + void NetworkSpentAirFreight(int hangarCargoSourcingPrice, bool fromBank, bool fromBankAndWallet, int cost, int warehouseId, int warehouseSlot); + void NetworkSpentSkipCargoSourceSetup(int amount, bool fromBank, bool fromBankAndWallet, int cost); + /// + /// Hash p3 = STEALTH_MODULE + /// + void NetworkSpentStealthModule(int amount, bool fromBank, bool fromBankAndWallet, uint p3); + /// + /// Hash p3 = MISSILE_JAMMER + /// + void NetworkSpentMissileJammer(int amount, bool fromBank, bool fromBankAndWallet, uint p3); + /// + /// + void NetworkSpentGeneric(int price, bool p1, bool p2, uint stat, uint spent, string p5, string p6, ref int data); + /// + /// _NETWORK_EARN_G* + /// + void NetworkEarnGeneric(int amount, uint earn, string p2, string p3, ref int data); + void NetworkClearTransactionTelemetryNonce(); int NetworkGetVcBankBalance(); int NetworkGetVcWalletBalance(int characterSlot); int NetworkGetVcBalance(); @@ -8693,7 +8836,7 @@ public unsafe interface INatives int NetworkGetPvcBalance(); string NetworkGetStringWalletBalance(int characterSlot); string NetworkGetStringBankBalance(); - string NetworkGetStringBankWalletBalance(); + string NetworkGetStringBankWalletBalance(int character); /// /// Returns true if wallet balance >= amount. /// @@ -8859,6 +9002,7 @@ public unsafe interface INatives bool NetworkHaveUserContentPrivileges(int p0); bool NetworkHaveCommunicationPrivileges(int p0, IPlayer player); bool NetworkHaveCommunicationPrivileges(int p0, uint player); + bool NetworkHavePlatformCommunicationPrivileges(); bool NetworkCheckOnlinePrivileges(int p0, bool p1); bool NetworkCheckUserContentPrivileges(int p0, int p1, bool p2); bool NetworkCheckCommunicationPrivileges(int p0, int p1, bool p2); @@ -8890,8 +9034,8 @@ public unsafe interface INatives bool NetworkCanAccessMultiplayer(ref int loadingState); bool NetworkIsMultiplayerDisabled(); bool NetworkCanEnterMultiplayer(); - bool NetworkSessionDoFreeroamQuickmatch(int p0, int p1, int p2, int maxPlayers); - bool NetworkSessionDoFriendMatchmaking(int p0, int p1, int maxPlayers); + bool NetworkSessionDoFreeroamQuickmatch(int p0, int p1, int p2); + bool NetworkSessionDoFriendMatchmaking(int p0, int p1, int p2); /// /// p4 seems to be unused in 1.60/build 2628 /// @@ -8910,6 +9054,7 @@ public unsafe interface INatives bool NetworkSessionIsClosedCrew(); bool NetworkSessionIsSolo(); bool NetworkSessionIsPrivate(); + bool NetworkSessionLeaveIncludingReason(int leaveFlags, int leaveReason); /// /// NETWORK_SESSION_END(0, 1) /// NETWORK_SESSION_END(0, 0) @@ -8944,6 +9089,7 @@ public unsafe interface INatives /// range: [0, 4] void NetworkSessionAddActiveMatchmakingGroup(int groupId); void NetworkSessionSetUniqueCrewLimit(int p0); + int NetworkSessionGetUniqueCrewLimit(); void NetworkSessionSetUniqueCrewLimitTransition(int p0); void NetworkSessionSetUniqueCrewOnlyCrewsTransition(bool p0); void NetworkSessionSetCrewLimitMaxMembersTransition(int p0); @@ -9034,6 +9180,7 @@ public unsafe interface INatives bool NetworkIsGameInProgress(); bool NetworkIsSessionActive(); bool NetworkIsInSession(); + bool NetworkIsAmericasVersion(); /// /// This checks if player is playing on gta online or not. /// Please add an if and block your mod if this is "true". @@ -9294,21 +9441,10 @@ public unsafe interface INatives /// Same as GET_RANDOM_INT_IN_RANGE /// int NetworkGetRandomIntRanged(int rangeStart, int rangeEnd); + float NetworkGetRandomFloatRanged(float rangeStart, float rangeEnd); bool NetworkPlayerIsCheater(); int NetworkPlayerGetCheaterReason(); bool NetworkPlayerIsBadsport(); - /// - /// - /// = 6 - bool TriggerPlayerCrcHackerCheck(IPlayer player, int p1, uint scriptHash); - /// - /// - /// = 6 - bool TriggerPlayerCrcHackerCheck(uint player, int p1, uint scriptHash); - bool TriggerTuningCrcHackerCheck(IPlayer player, string p1, string p2); - bool TriggerTuningCrcHackerCheck(uint player, string p1, string p2); - bool TriggerFileCrcHackerCheck(IPlayer player, string p1); - bool TriggerFileCrcHackerCheck(uint player, string p1); bool RemoteCheaterPlayerDetected(IPlayer player, int a, int b); bool RemoteCheaterPlayerDetected(uint player, int a, int b); /// @@ -9327,10 +9463,10 @@ public unsafe interface INatives int NetworkGetScriptStatus(); /// /// - void NetworkRegisterHostBroadcastVariables(ref int unkVars, int numVars, string debugName); + void NetworkRegisterHostBroadcastVariables(ref int vars, int numVars, string debugName); /// /// - void NetworkRegisterPlayerBroadcastVariables(ref int unkVars, int numVars, string debugName); + void NetworkRegisterPlayerBroadcastVariables(ref int vars, int numVars, string debugName); void NetworkRegisterHighFrequencyHostBroadcastVariables(int p0, int p1, int p2); void NetworkRegisterHighFrequencyPlayerBroadcastVariables(int p0, int p1, int p2); void NetworkFinishBroadcastingData(); @@ -9438,6 +9574,7 @@ public unsafe interface INatives /// uint NetworkGetEntityKillerOfPlayer(uint player, ref uint weaponHash); void NetworkSetCurrentPublicContentId(string missionId); + void NetworkSetCurrentChatOption(int newChatOption); /// /// enum eMpSettingSpawn /// { @@ -9455,6 +9592,10 @@ public unsafe interface INatives /// Used by MetricVEHICLE_DIST_DRIVEN /// void NetworkSetVehicleDrivenInTestDrive(bool toggle); + /// + /// Sets 'loc' variable used in MetricVEHICLE_DIST_DRIVEN + /// + void NetworkSetVehicleDrivenLocation(uint location); void NetworkResurrectLocalPlayer(float x, float y, float z, float heading, bool p4, bool changetime, bool p6, int p7, int p8); void NetworkSetLocalPlayerInvincibleTime(int time); bool NetworkIsLocalPlayerInvincible(); @@ -9662,6 +9803,32 @@ public unsafe interface INatives bool NetworkGetPlayerOwnsWaypoint(uint player); bool NetworkCanSetWaypoint(); void NetworkIgnoreRemoteWaypoints(); + /// + /// + /// 0 = VOICE; 1 = TEXT_CHAT; 2 = TEXT_MESSAGE; 3 = EMAIL; 4 = USER_CONTENT; 5 = USER_TEXT + bool NetworkDoesCommunicationGroupExist(int communicationType); + /// + /// Returns communicationGroupFlag + /// enum eCommunicationGroupFlag + /// { + /// COMMUNICATION_GROUP_LOCAL_PLAYER = 1 << 0, + /// COMMUNICATION_GROUP_FRIENDS = 1 << 1, + /// COMMUNICATION_GROUP_SMALL_CREW = 1 << 2, + /// COMMUNICATION_GROUP_LARGE_CREW = 1 << 3, + /// COMMUNICATION_GROUP_RECENT_PLAYER = 1 << 4, + /// COMMUNICATION_GROUP_SAME_SESSION = 1 << 5, + /// See NativeDB for reference: http://natives.altv.mp/#/0x40DF02F371F40883 + /// + /// see 0xDBDF80673BBA3D65 + int NetworkGetCommunicationGroupFlags(int communicationType); + /// + /// + /// see 0xDBDF80673BBA3D65 + /// see 0x40DF02F371F40883 + void NetworkSetCommunicationGroupFlags(int communicationType, int communicationGroupFlag); + /// + /// + bool NetworkIsPlayerOnBlocklist(ref int gamerHandle); bool NetworkSetScriptAutomuted(int p0); bool NetworkHasAutomuteOverride(); bool NetworkHasHeadset(); @@ -9867,7 +10034,7 @@ public unsafe interface INatives /// /// /// is 35 in the scripts. - void NetworkClanGetUiFormattedTag(ref int clanDesc, int bufferSize, ref string formattedTag); + void NetworkClanGetUiFormattedTag(ref int clanDesc, int bufferSize, string formattedTag); int NetworkClanGetLocalMembershipsCount(); /// /// @@ -9901,7 +10068,7 @@ public unsafe interface INatives bool NetworkClanHasCrewinfoMetadataBeenReceived(); /// /// - bool NetworkClanGetEmblemTxdName(ref int netHandle, ref string txdName); + bool NetworkClanGetEmblemTxdName(ref int netHandle, string txdName); bool NetworkClanRequestEmblem(int p0); /// /// @@ -9951,7 +10118,7 @@ public unsafe interface INatives void NetworkSetEntityOnlyExistsForParticipants(uint entity, bool toggle); void SetNetworkIdVisibleInCutscene(int netId, bool p1, bool p2); void SetNetworkIdVisibleInCutsceneHack(int netId, bool p1, bool p2); - void SetNetworkIdVisibleInCutsceneRemainHack(int p0, int p1); + void SetNetworkIdVisibleInCutsceneRemainHack(int p0, int p1, int p2); void SetNetworkCutsceneEntities(bool toggle); /// /// Getter for SET_NETWORK_CUTSCENE_ENTITIES. @@ -9959,6 +10126,8 @@ public unsafe interface INatives bool AreCutsceneEntitiesNetworked(); void SetNetworkIdPassControlInTutorial(int netId, bool state); bool IsNetworkIdOwnedByParticipant(int netId); + void SetRemotePlayerVisibleInCutscene(IPlayer player, bool locallyVisible); + void SetRemotePlayerVisibleInCutscene(uint player, bool locallyVisible); void SetLocalPlayerVisibleInCutscene(bool p0, bool p1); void SetLocalPlayerInvisibleLocally(bool bIncludePlayersVehicle); void SetLocalPlayerVisibleLocally(bool bIncludePlayersVehicle); @@ -10118,6 +10287,7 @@ public unsafe interface INatives bool NetworkIsPlayerInMpCutscene(uint player); void NetworkHideProjectileInCutscene(); void SetNetworkVehicleRespotTimer(int netId, int time, int p2, int p3); + bool IsNetworkVehicleRunningRespotTimer(int networkID); void SetNetworkVehicleAsGhost(IVehicle vehicle, bool toggle); void SetNetworkVehicleAsGhost(uint vehicle, bool toggle); /// @@ -10530,6 +10700,7 @@ public unsafe interface INatives string UgcGetCachedDescription(int p0, int p1); bool UgcReleaseCachedDescription(int p0); void UgcReleaseAllCachedDescriptions(); + bool UgcHasPermissionToWrite(); bool UgcPublish(string contentId, string baseContentId, string contentTypeName); bool UgcSetBookmarked(string contentId, bool bookmarked, string contentTypeName); /// @@ -10595,6 +10766,14 @@ public unsafe interface INatives bool NetworkHasRosPrivilegeEndDate(int privilege, ref int banType, ref int timeData); bool NetworkHasRosPrivilegePlayedLastGen(); bool NetworkHasRosPrivilegeSpecialEditionContent(); + /// + /// Checks for privilege 29 + /// + bool NetworkHasRosPrivilegeMpTextCommunication(); + /// + /// Checks for privilege 30 + /// + bool NetworkHasRosPrivilegeMpVoiceCommunication(); int NetworkStartCommunicationPermissionsCheck(int p0); /// /// @@ -10669,8 +10848,8 @@ public unsafe interface INatives /// Used by NetBlender /// Vector3 NetworkGetLastVelReceivedOverNetwork(uint entity); - Vector3 NetworkGetPredictedVelocity(IEntity entity); - Vector3 NetworkGetPredictedVelocity(uint entity); + Vector3 NetworkGetPredictedVelocity(IEntity entity, float maxSpeedToPredict); + Vector3 NetworkGetPredictedVelocity(uint entity, float maxSpeedToPredict); /// /// Does nothing (it's a nullsub). /// @@ -10708,7 +10887,7 @@ public unsafe interface INatives /// /// Has to be looped until it returns true. bool SlideObject(uint @object, float toX, float toY, float toZ, float speedX, float speedY, float speedZ, bool collision); - void SetObjectTargettable(uint @object, bool targettable); + void SetObjectTargettable(uint @object, bool targettable, int p2); /// /// Overrides a flag on the object which determines if the object should be avoided by a vehicle in task CTaskVehicleGoToPointWithAvoidanceAutomobile. /// @@ -11139,6 +11318,7 @@ public unsafe interface INatives /// void SetObjectTintIndex(uint @object, int textureVariation); bool SetTintIndexClosestBuildingOfType(float x, float y, float z, float radius, uint modelHash, int textureVariation); + void SetPropTintIndex(int p0, int p1); bool SetPropLightColor(uint @object, bool p1, int r, int g, int b); bool IsPropLightOverriden(uint @object); void SetObjectIsVisibleInMirrors(uint @object, bool toggle); @@ -11370,7 +11550,7 @@ public unsafe interface INatives /// /// /// see IS_CONTROL_ENABLED - void DisableInputGroup(int control); + void AllowAlternativeScriptControlsLayout(int control); /// /// When nodeEnabled is set to false, all nodes in the area get disabled. /// If it's true, `GET_VEHICLE_NODE_IS_SWITCHED_OFF` returns false. @@ -11471,6 +11651,7 @@ public unsafe interface INatives /// /// seems to be always 1.0f in the scripts bool GetClosestRoad(float x, float y, float z, float p3, int p4, ref Vector3 p5, ref Vector3 p6, ref int p7, ref int p8, ref float p9, bool p10); + bool LoadAllPathNodes(bool set); void SetAllowStreamPrologueNodes(bool toggle); /// /// Activates Cayo Perico path nodes if passed `1`. GPS navigation will start working, maybe more stuff will change, not sure. It seems if you try to unload (pass `0`) when close to the island, your game might crash. @@ -11497,6 +11678,9 @@ public unsafe interface INatives /// bool GetRandomVehicleNode(float x, float y, float z, float radius, bool p4, bool p5, bool p6, ref Vector3 outPosition, ref int nodeId); /// + /// + Vector3 GetSpawnCoordsForVehicleNode(int nodeAddress, float towardsCoorsX, float towardsCoorsY, float towardsCoorsZ, ref Vector3 centrePoint, ref float heading); + /// /// Determines the name of the street which is the closest to the given coordinates. /// Note: the names are returned as hashes, the strings can be returned using the function HUD::GET_STREET_NAME_FROM_HASH_KEY. /// @@ -12383,6 +12567,10 @@ public unsafe interface INatives /// /// could be time. Only example in the decompiled scripts uses it as -1. bool SetPedPinnedDown(uint ped, bool pinned, int i); + bool HasPedClearLosToEntity(IPlayer ped, uint entity, float x, float y, float z, int p5, bool p6, bool p7); + bool HasPedClearLosToEntity(uint ped, IEntity entity, float x, float y, float z, int p5, bool p6, bool p7); + bool HasPedClearLosToEntity(IPlayer ped, IEntity entity, float x, float y, float z, int p5, bool p6, bool p7); + bool HasPedClearLosToEntity(uint ped, uint entity, float x, float y, float z, int p5, bool p6, bool p7); int GetSeatPedIsTryingToEnter(IPlayer ped); int GetSeatPedIsTryingToEnter(uint ped); uint GetVehiclePedIsTryingToEnter(IPlayer ped); @@ -12658,11 +12846,11 @@ public unsafe interface INatives /// /// damages a ped with the given amount /// - void ApplyDamageToPed(IPlayer ped, int damageAmount, bool p2, int p3); + void ApplyDamageToPed(IPlayer ped, int damageAmount, bool p2, int p3, uint weaponType); /// /// damages a ped with the given amount /// - void ApplyDamageToPed(uint ped, int damageAmount, bool p2, int p3); + void ApplyDamageToPed(uint ped, int damageAmount, bool p2, int p3, uint weaponType); int GetTimePedDamagedByWeapon(IPlayer ped, uint weaponHash); int GetTimePedDamagedByWeapon(uint ped, uint weaponHash); void SetPedAllowedToDuck(IPlayer ped, bool toggle); @@ -13910,7 +14098,7 @@ public unsafe interface INatives /// }; /// See NativeDB for reference: http://natives.altv.mp/#/0x397C38AA7B4A5F83 /// - void ApplyPedDamageDecal(IPlayer ped, int damageZone, float xOffset, float yOffset, float heading, float scale, float alpha, int unkVariation, bool fadeIn, string decalName); + void ApplyPedDamageDecal(IPlayer ped, int damageZone, float xOffset, float yOffset, float heading, float scale, float alpha, int variation, bool fadeIn, string decalName); /// /// enum eDamageZone /// { @@ -13923,7 +14111,7 @@ public unsafe interface INatives /// }; /// See NativeDB for reference: http://natives.altv.mp/#/0x397C38AA7B4A5F83 /// - void ApplyPedDamageDecal(uint ped, int damageZone, float xOffset, float yOffset, float heading, float scale, float alpha, int unkVariation, bool fadeIn, string decalName); + void ApplyPedDamageDecal(uint ped, int damageZone, float xOffset, float yOffset, float heading, float scale, float alpha, int variation, bool fadeIn, string decalName); /// /// "SCR_TrevorTreeBang" /// "HOSPITAL_0" @@ -14002,6 +14190,8 @@ public unsafe interface INatives /// combined with PED::SET_PED_WETNESS_HEIGHT(), this native makes the ped drenched in water up to the height specified in the other function /// void SetPedWetnessEnabledThisFrame(uint ped); + void SetPedWetness(IPlayer ped, float wetLevel); + void SetPedWetness(uint ped, float wetLevel); void ClearPedEnvDirt(IPlayer ped); void ClearPedEnvDirt(uint ped); /// @@ -14130,7 +14320,7 @@ public unsafe interface INatives /// /// SET_PED_TO_RAGDOLL(ped, 4000, 5000, 1, 1, 1, 0); void GivePedNmMessage(uint ped); - int AddScenarioBlockingArea(float x1, float y1, float z1, float x2, float y2, float z2, bool p6, bool p7, bool p8, bool p9); + int AddScenarioBlockingArea(float x1, float y1, float z1, float x2, float y2, float z2, bool p6, bool p7, bool p8, bool p9, int p10); void RemoveScenarioBlockingAreas(); void RemoveScenarioBlockingArea(int p0, bool p1); void SetScenarioPedsSpawnInSphereArea(float x, float y, float z, float range, int p4); @@ -14161,6 +14351,8 @@ public unsafe interface INatives void SetPedShouldIgnoreScenarioNavChecks(int p0, bool p1); void SetPedShouldProbeForScenarioExitsInOneFrame(int p0, bool p1); bool IsPedGesturing(int p0); + void ResetFacialIdleAnim(IPlayer ped); + void ResetFacialIdleAnim(uint ped); /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// @@ -15877,6 +16069,10 @@ public unsafe interface INatives /// 3 = Free Aim /// void SetPlayerTargetingMode(int targetMode); + /// + /// Returns targeting mode. See SET_PLAYER_TARGETING_MODE + /// + int GetPlayerTargetingMode(); void SetPlayerTargetLevel(int targetLevel); /// /// Returns profile setting 237. @@ -16147,6 +16343,14 @@ public unsafe interface INatives float GetPlayerHealthRechargeMaxPercent(uint player); void SetPlayerHealthRechargeMaxPercent(IPlayer player, float limit); void SetPlayerHealthRechargeMaxPercent(uint player, float limit); + /// + /// Needs to be called every frame. + /// + void DisablePlayerHealthRecharge(IPlayer player); + /// + /// Needs to be called every frame. + /// + void DisablePlayerHealthRecharge(uint player); void SetPlayerFallDistanceToTriggerRagdollOverride(IPlayer player, float p1); void SetPlayerFallDistanceToTriggerRagdollOverride(uint player, float p1); /// @@ -16392,7 +16596,7 @@ public unsafe interface INatives /// /// is in increments of 100s. 2000, 500, 300, 200, etc. /// is always 1 and p5 is always 0. - void SimulatePlayerInputGait(IPlayer player, float amount, int gaitType, float speed, bool p4, bool p5); + void SimulatePlayerInputGait(IPlayer player, float amount, int gaitType, float speed, bool p4, bool p5, int p6); /// /// This is to make the player walk without accepting input from INPUT. /// C# Example : @@ -16400,7 +16604,7 @@ public unsafe interface INatives /// /// is in increments of 100s. 2000, 500, 300, 200, etc. /// is always 1 and p5 is always 0. - void SimulatePlayerInputGait(uint player, float amount, int gaitType, float speed, bool p4, bool p5); + void SimulatePlayerInputGait(uint player, float amount, int gaitType, float speed, bool p4, bool p5, int p6); void ResetPlayerInputGait(IPlayer player); void ResetPlayerInputGait(uint player); void SetAutoGiveParachuteWhenEnterPlane(IPlayer player, bool toggle); @@ -16690,6 +16894,11 @@ public unsafe interface INatives int BgGetLaunchParamValue(int scriptIndex, string p1); int BgGetScriptIdFromNameHash(uint p0); /// + /// New variant of SEND_TU_SCRIPT_EVENT that automatically initializes the event data header. + /// See TRIGGER_SCRIPT_EVENT for more info. + /// + void SendTuScriptEventNew(int eventGroup, ref int eventData, int eventDataSize, int playerBits, uint eventType); + /// /// Asynchronously starts a line-of-sight (raycast) world probe shape test. /// /// is a bit mask with bits 1, 2 and/or 4, relating to collider types; 4 should usually be used. @@ -16772,9 +16981,7 @@ public unsafe interface INatives /// bool ScInboxMessageGetDataInt(int p0, string context, ref int @out); bool ScInboxMessageGetDataBool(int p0, string p1); - /// - /// - bool ScInboxMessageGetDataString(int p0, string context, ref string @out); + bool ScInboxMessageGetDataString(int p0, string context, string @out); bool ScInboxMessageDoApply(int p0); string ScInboxMessageGetRawTypeAtIndex(int p0); /// @@ -16788,9 +16995,6 @@ public unsafe interface INatives bool ScInboxMessageGetUgcdata(int p0, ref int p1); /// /// - bool ScInboxSendBountyToRecipList(ref int data); - /// - /// bool ScInboxGetBountyDataAtIndex(int index, ref int outData); void ScEmailRetrieveEmails(int offset, int limit); int ScEmailGetRetrievalStatus(); @@ -16821,9 +17025,7 @@ public unsafe interface INatives /// bool ScGamerdataGetFloat(string name, ref float value); bool ScGamerdataGetBool(string name); - /// - /// - bool ScGamerdataGetString(string name, ref string value); + bool ScGamerdataGetString(string name, string value); /// /// bool ScGamerdataGetActiveXpBonus(ref float value); @@ -16868,12 +17070,8 @@ public unsafe interface INatives /// /// bool ScCommunityEventGetExtraDataFloat(string p0, ref float p1); - /// - /// - bool ScCommunityEventGetExtraDataString(string p0, ref string p1); - /// - /// - bool ScCommunityEventGetDisplayName(ref string p0); + bool ScCommunityEventGetExtraDataString(string p0, string p1); + bool ScCommunityEventGetDisplayName(string p0); bool ScCommunityEventIsActiveForType(string p0); int ScCommunityEventGetEventIdForType(string p0); /// @@ -16882,12 +17080,8 @@ public unsafe interface INatives /// /// bool ScCommunityEventGetExtraDataFloatForType(string p0, ref float p1, string p2); - /// - /// - bool ScCommunityEventGetExtraDataStringForType(string p0, ref string p1, string p2); - /// - /// - bool ScCommunityEventGetDisplayNameForType(ref string p0, string p1); + bool ScCommunityEventGetExtraDataStringForType(string p0, string p1, string p2); + bool ScCommunityEventGetDisplayNameForType(string p0, string p1); bool ScCommunityEventIsActiveById(int p0); /// /// @@ -16895,12 +17089,8 @@ public unsafe interface INatives /// /// bool ScCommunityEventGetExtraDataFloatById(int p0, string p1, ref float p2); - /// - /// - bool ScCommunityEventGetExtraDataStringById(int p0, string p1, ref string p2); - /// - /// - bool ScCommunityEventGetDisplayNameById(int p0, ref string p1); + bool ScCommunityEventGetExtraDataStringById(int p0, string p1, string p2); + bool ScCommunityEventGetDisplayNameById(int p0, string p1); bool ScTransitionNewsShow(int p0); bool ScTransitionNewsShowTimed(int p0, int p1); bool ScTransitionNewsShowNextItem(); @@ -16954,6 +17144,10 @@ public unsafe interface INatives void StatClearDirtyReadDetected(); bool StatGetLoadSafeToProgressToMpFromSp(); /// + /// Returns stat hash based on dataType, statIndex/statId and characterSlot. Related to CStatsMpCharacterMappingData + /// + uint GetStatHashForCharacterStat(int dataType, int statIndex, int charSlot); + /// /// Example: /// STATS::STAT_SET_INT(MISC::GET_HASH_KEY("MPPLY_KILLS_PLAYERS"), 1337, true); /// @@ -17081,14 +17275,25 @@ public unsafe interface INatives /// /// - values used in the decompiled scripts: uint GetPackedNgIntStatKey(int index, bool spStat, bool charStat, int character, string section); + bool GetPackedStatBoolCode(int index, int characterSlot); int GetPackedStatIntCode(int index, int characterSlot); + void SetPackedStatBoolCode(int index, bool value, int characterSlot); void SetPackedStatIntCode(int index, int value, int characterSlot); void PlaystatsBackgroundScriptAction(string action, int value); + /// + /// + /// VehicleConversion, SCAdminCashGift + /// 0 + void PlaystatsFlowLow(float posX, float posY, float posZ, string p3, int p4, int amount); + /// + /// + /// can either be InteriorEntry or InteriorExit + void PlaystatsFlowMedium(float x, float y, float z, string interiorAction, int p4, uint p5); void PlaystatsNpcInvite(string p0); void PlaystatsAwardXp(int amount, uint type, uint category); void PlaystatsRankUp(int rank); void PlaystatsStartedSessionInOfflinemode(); - void PlaystatsActivityDone(int p0, int activityId); + void PlaystatsActivityDone(int p0, int activityId, int p2); void PlaystatsLeaveJobChain(int p0, int p1, int p2, int p3, int p4); void PlaystatsMissionStarted(string p0, int p1, int p2, bool p3); void PlaystatsMissionOver(string p0, int p1, int p2, bool p3, bool p4, bool p5); @@ -17145,6 +17350,7 @@ public unsafe interface INatives void PlaystatsAppendDirectorMetric(ref int p0); void PlaystatsAwardBadSport(int id); void PlaystatsPegasusAsPersonalAircraft(uint modelHash); + void PlaystatsShopmenuNav(int p0, int p1, int p2, int p3); void PlaystatsFmEventChallenges(int p0); void PlaystatsFmEventVehicletarget(int p0); void PlaystatsFmEventUrbanwarfare(int p0); @@ -17177,9 +17383,6 @@ public unsafe interface INatives bool Leaderboards2ReadByHandle(ref int p0, ref int p1); /// /// - bool Leaderboards2ReadByRow(ref int p0, ref int p1, int p2, ref int p3, int p4, ref int p5, int p6); - /// - /// bool Leaderboards2ReadByRank(ref int p0, int p1, int p2); /// /// @@ -17388,9 +17591,9 @@ public unsafe interface INatives /// void PlaystatsRecoverContrabandMission(ref int data); void PlaystatsHitContrabandDestroyLimit(int p0); - void StartBeingBoss(int p0); + void StartBeingBoss(int p0, int p1, int p2); void StartBeingGoon(int p0, int p1, int p2); - void EndBeingBoss(int p0, int p1); + void EndBeingBoss(int p0, int p1, int p2); void EndBeingGoon(int p0, int p1, int p2, int p3, int p4); void HiredLimo(int p0, int p1); void OrderBossVehicle(int p0, int p1, uint vehicleHash); @@ -17479,7 +17682,9 @@ public unsafe interface INatives void PlaystatsFreemodeCasinoMissionEnded(ref int data); void PlaystatsHeist3Drone(int p0); void PlaystatsHeist3Hack(int p0, int p1, int p2, int p3, int p4, int p5); - void PlaystatsNpcPhone(int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9, int p10, int p11, int p12); + /// + /// + void PlaystatsNpcPhone(ref int p0); void PlaystatsArcadeCabinet(int p0); void PlaystatsHeist3Finale(int p0); void PlaystatsHeist3Prep(int p0); @@ -17488,7 +17693,7 @@ public unsafe interface INatives void PlaystatsMissionVote(int p0); void PlaystatsNjvsVote(int p0); void PlaystatsKillYourself(); - void PlaystatsFmMissionEnd(int p0, int p1, int p2); + void PlaystatsFmMissionEnd(int p0, int p1, int p2, int p3); void PlaystatsHeist4Prep(int p0); void PlaystatsHeist4Finale(int p0); void PlaystatsHeist4Hack(int p0, int p1, int p2, int p3, int p4); @@ -17505,7 +17710,22 @@ public unsafe interface INatives void PlaystatsAwardNav(int p0, int p1, int p2, int p3); void PlaystatsInstMissionEnd(int p0); void PlaystatsHubExit(int p0); + void PlaystatsVehDel(int bossId1, int bossId2, int bossType, int vehicleID, int reason); void PlaystatsInventory(int p0); + void PlaystatsAcidMissionEnd(int p0); + void PlaystatsAcidRnd(int p0); + void PlaystatsIdle(int p0, int p1, int p2); + void PlaystatsPlayerStyle(int p0); + void PlaystatsRandomEvent(int p0); + /// + /// + void PlaystatsAlert(ref int data); + void PlaystatsAttritionStageEnd(int p0); + void PlaystatsShowroomNav(int p0, int p1, uint entity); + /// + /// + /// struct contains various tunables related to test drives at Simeons Showroom or Luxury Showcase. + void PlaystatsShowroomOverview(ref int data); void LoadAllObjectsNow(); void LoadScene(float x, float y, float z); bool NetworkUpdateLoadScene(); @@ -17984,7 +18204,7 @@ public unsafe interface INatives /// 1.0 = walk, 2.0 = run /// 1 = normal, 3 = teleport to vehicle, 16 = teleport directly into vehicle /// is always 0 - void TaskEnterVehicle(IPlayer ped, uint vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName); + void TaskEnterVehicle(IPlayer ped, uint vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName, int p7); /// /// Usage of seat /// -1 = driver @@ -17998,7 +18218,7 @@ public unsafe interface INatives /// 1.0 = walk, 2.0 = run /// 1 = normal, 3 = teleport to vehicle, 16 = teleport directly into vehicle /// is always 0 - void TaskEnterVehicle(uint ped, IVehicle vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName); + void TaskEnterVehicle(uint ped, IVehicle vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName, int p7); /// /// Usage of seat /// -1 = driver @@ -18012,7 +18232,7 @@ public unsafe interface INatives /// 1.0 = walk, 2.0 = run /// 1 = normal, 3 = teleport to vehicle, 16 = teleport directly into vehicle /// is always 0 - void TaskEnterVehicle(IPlayer ped, IVehicle vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName); + void TaskEnterVehicle(IPlayer ped, IVehicle vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName, int p7); /// /// Usage of seat /// -1 = driver @@ -18026,7 +18246,7 @@ public unsafe interface INatives /// 1.0 = walk, 2.0 = run /// 1 = normal, 3 = teleport to vehicle, 16 = teleport directly into vehicle /// is always 0 - void TaskEnterVehicle(uint ped, uint vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName); + void TaskEnterVehicle(uint ped, uint vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName, int p7); /// /// 0 = normal exit and closes door. /// 1 = normal exit and closes door. @@ -20208,12 +20428,12 @@ public unsafe interface INatives /// Attaches a ped to a rope and allows player control to rappel down a wall. Disables all collisions while on the rope. /// /// Usually 1 in the scripts, clipSet: Clipset to use for the task, minZ: Minimum Z that the player can descend to, ropeHandle: Rope to attach this task to created with ADD_ROPE - void TaskRappelDownWallUsingClipsetOverride(IPlayer ped, float x1, float y1, float z1, float x2, float y2, float z2, float minZ, int ropeHandle, string clipSet, int p10); + void TaskRappelDownWallUsingClipsetOverride(IPlayer ped, float x1, float y1, float z1, float x2, float y2, float z2, float minZ, int ropeHandle, string clipSet, int p10, int p11); /// /// Attaches a ped to a rope and allows player control to rappel down a wall. Disables all collisions while on the rope. /// /// Usually 1 in the scripts, clipSet: Clipset to use for the task, minZ: Minimum Z that the player can descend to, ropeHandle: Rope to attach this task to created with ADD_ROPE - void TaskRappelDownWallUsingClipsetOverride(uint ped, float x1, float y1, float z1, float x2, float y2, float z2, float minZ, int ropeHandle, string clipSet, int p10); + void TaskRappelDownWallUsingClipsetOverride(uint ped, float x1, float y1, float z1, float x2, float y2, float z2, float minZ, int ropeHandle, string clipSet, int p10, int p11); int GetTaskRappelDownWallState(IPlayer ped); int GetTaskRappelDownWallState(uint ped); /// @@ -21204,8 +21424,8 @@ public unsafe interface INatives bool SetExpectedCloneNextTaskMoveNetworkState(uint ped, string state); string GetTaskMoveNetworkState(IPlayer ped); string GetTaskMoveNetworkState(uint ped); - void SetTaskMoveNetworkAnimSet(IPlayer ped, uint clipSet, uint unkVariableClipSet); - void SetTaskMoveNetworkAnimSet(uint ped, uint clipSet, uint unkVariableClipSet); + void SetTaskMoveNetworkAnimSet(IPlayer ped, uint clipSet, uint variableClipSet); + void SetTaskMoveNetworkAnimSet(uint ped, uint clipSet, uint variableClipSet); /// /// Example: TASK::SET_TASK_MOVE_NETWORK_SIGNAL_FLOAT(PLAYER::PLAYER_PED_ID(), "Phase", 0.5); /// @@ -21238,6 +21458,8 @@ public unsafe interface INatives /// /// Doesn't actually return anything. bool SetTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed(uint ped, bool enable); + void SetScriptTaskEnableCollisionOnNetworkCloneWhenFixed(IPlayer ped, bool enable); + void SetScriptTaskEnableCollisionOnNetworkCloneWhenFixed(uint ped, bool enable); bool IsMoveBlendRatioStill(IPlayer ped); bool IsMoveBlendRatioStill(uint ped); bool IsMoveBlendRatioWalking(IPlayer ped); @@ -21595,6 +21817,18 @@ public unsafe interface INatives void SetVehicleDontTerminateTaskWhenAchieved(IVehicle vehicle); void SetVehicleDontTerminateTaskWhenAchieved(uint vehicle); /// + /// 0.0f = engine rev minimum + /// 1.0f = engine rev limit + /// + void SetVehicleMaxLaunchEngineRevs(IVehicle vehicle, float modifier); + /// + /// 0.0f = engine rev minimum + /// 1.0f = engine rev limit + /// + void SetVehicleMaxLaunchEngineRevs(uint vehicle, float modifier); + float GetVehicleThrottle(IVehicle vehicle); + float GetVehicleThrottle(uint vehicle); + /// /// Explodes a selected vehicle. /// BOOL isAudible = If explosion makes a sound. /// BOOL isInvisible = If the explosion is invisible or not. @@ -21627,6 +21861,8 @@ public unsafe interface INatives void ClearVehiclePhoneExplosiveDevice(); bool HasVehiclePhoneExplosiveDevice(); void DetonateVehiclePhoneExplosiveDevice(); + bool HaveVehicleRearDoorsBeenBlownOpenByStickybomb(IVehicle vehicle); + bool HaveVehicleRearDoorsBeenBlownOpenByStickybomb(uint vehicle); /// /// This is not tested - it's just an assumption. /// - Nac @@ -21777,6 +22013,14 @@ public unsafe interface INatives int GetSubmarineNumberOfAirLeaks(IVehicle submarine); int GetSubmarineNumberOfAirLeaks(uint submarine); void SetBoatIgnoreLandProbes(int p0, int p1); + /// + /// Use the vehicle bounds (instead of viewport) when deciding if a vehicle is sufficiently above the water (waterheight.dat), bypassing wave simulation checks + /// + void SetBoundsAffectWaterProbes(IVehicle vehicle, bool toggle); + /// + /// Use the vehicle bounds (instead of viewport) when deciding if a vehicle is sufficiently above the water (waterheight.dat), bypassing wave simulation checks + /// + void SetBoundsAffectWaterProbes(uint vehicle, bool toggle); void SetBoatAnchor(IVehicle vehicle, bool toggle); void SetBoatAnchor(uint vehicle, bool toggle); bool CanAnchorBoatHere(IVehicle vehicle); @@ -21962,6 +22206,8 @@ public unsafe interface INatives /// Returns true if vehicle is halted by BRING_VEHICLE_TO_HALT /// bool IsVehicleBeingBroughtToHalt(uint vehicle); + void LowerForkliftForks(IVehicle forklift); + void LowerForkliftForks(uint forklift); /// /// 0.0 = Lowest 1.0 = Highest. This is best to be used if you wanna pick-up a car since un-realistically on GTA V forklifts can't pick up much of anything due to vehicle mass. If you put this under a car then set it above 0.0 to a 'lifted-value' it will raise the car with no issue lol /// @@ -22448,7 +22694,7 @@ public unsafe interface INatives /// freightcont2 /// freighttrailer /// - uint CreateMissionTrain(int unkVariation, float x, float y, float z, bool direction, int p5, int p6); + uint CreateMissionTrain(int variation, float x, float y, float z, bool direction, int p5, int p6); /// /// Toggles whether ambient trains can spawn on the specified track or not /// `trackId` is the internal id of the train track to switch. @@ -23631,6 +23877,13 @@ public unsafe interface INatives bool IsAnyVehicleNearPoint(float x, float y, float z, float radius); void RequestVehicleHighDetailModel(IVehicle vehicle); void RequestVehicleHighDetailModel(uint vehicle); + int GetVehicleModelNumDriveGears(uint vehicleModel); + int GetVehicleMaxDriveGearCount(IVehicle vehicle); + int GetVehicleMaxDriveGearCount(uint vehicle); + int GetVehicleCurrentDriveGear(IVehicle vehicle); + int GetVehicleCurrentDriveGear(uint vehicle); + float GetVehicleCurrentRevRatio(IVehicle vehicle); + float GetVehicleCurrentRevRatio(uint vehicle); void RemoveVehicleHighDetailModel(IVehicle vehicle); void RemoveVehicleHighDetailModel(uint vehicle); bool IsVehicleHighDetail(IVehicle vehicle); @@ -23653,6 +23906,10 @@ public unsafe interface INatives /// Sets how much the crane on the tow truck is raised, where 0.0 is fully lowered and 1.0 is fully raised. /// void SetVehicleTowTruckArmPosition(uint vehicle, float position); + void SetAttachedVehicleToTowTruckArm(IVehicle towTruck, uint vehicle); + void SetAttachedVehicleToTowTruckArm(uint towTruck, IVehicle vehicle); + void SetAttachedVehicleToTowTruckArm(IVehicle towTruck, IVehicle vehicle); + void SetAttachedVehicleToTowTruckArm(uint towTruck, uint vehicle); /// /// HookOffset defines where the hook is attached. leave at 0 for default attachment. /// @@ -23796,6 +24053,8 @@ public unsafe interface INatives void SetVehicleIndicatorLights(uint vehicle, int turnSignal, bool toggle); void SetVehicleBrakeLights(IVehicle vehicle, bool toggle); void SetVehicleBrakeLights(uint vehicle, bool toggle); + void SetVehicleTailLights(IVehicle vehicle, bool toggle); + void SetVehicleTailLights(uint vehicle, bool toggle); void SetVehicleHandbrake(IVehicle vehicle, bool toggle); void SetVehicleHandbrake(uint vehicle, bool toggle); void SetVehicleBrake(IVehicle vehicle, bool toggle); @@ -23815,6 +24074,8 @@ public unsafe interface INatives /// Gets the trailer of a vehicle and puts it into the trailer parameter. /// bool GetVehicleTrailerVehicle(uint vehicle, ref uint trailer); + uint GetVehicleTrailerParentVehicle(IVehicle trailer); + uint GetVehicleTrailerParentVehicle(uint trailer); /// /// /// must be a plane @@ -24360,6 +24621,10 @@ public unsafe interface INatives /// Used for helis. /// void OverridePlaneDamageThrehsold(uint vehicle, float health); + void SetTransmissionReducedGearRatio(IVehicle vehicle, bool toggle); + void SetTransmissionReducedGearRatio(uint vehicle, bool toggle); + int GetVehicleDesiredDriveGear(IVehicle vehicle); + int GetVehicleDesiredDriveGear(uint vehicle); /// /// From the driver's perspective, is the left headlight broken. /// @@ -24726,10 +24991,10 @@ public unsafe interface INatives /// uint GetVehicleAttachedToCargobob(uint cargobob); uint GetEntityAttachedToCargobob(int p0); - void AttachVehicleToCargobob(IVehicle vehicle, uint cargobob, int p2, float x, float y, float z); - void AttachVehicleToCargobob(uint vehicle, IVehicle cargobob, int p2, float x, float y, float z); - void AttachVehicleToCargobob(IVehicle vehicle, IVehicle cargobob, int p2, float x, float y, float z); - void AttachVehicleToCargobob(uint vehicle, uint cargobob, int p2, float x, float y, float z); + void AttachVehicleToCargobob(IVehicle cargobob, uint vehicle, int p2, float x, float y, float z); + void AttachVehicleToCargobob(uint cargobob, IVehicle vehicle, int p2, float x, float y, float z); + void AttachVehicleToCargobob(IVehicle cargobob, IVehicle vehicle, int p2, float x, float y, float z); + void AttachVehicleToCargobob(uint cargobob, uint vehicle, int p2, float x, float y, float z); void AttachEntityToCargobob(int p0, int p1, int p2, int p3, int p4, int p5); /// /// Stops cargobob from being able to detach the attached vehicle. @@ -25388,6 +25653,7 @@ public unsafe interface INatives /// Used for blazer5. Changes the quadbike-jetski transformation input from raise/lower convertible roof (hold H by default) to horn (press E by default.) /// void SetVehicleUseBoostButtonForWheelRetract(bool toggle); + void SetVehicleUseHornButtonForNitrous(bool toggle); /// /// Parachute models: /// - sr_prop_specraces_para_s_01 @@ -25655,6 +25921,10 @@ public unsafe interface INatives /// Only used with the "akula" and "annihilator2" in the decompiled native scripts. /// bool AreFoldingWingsDeployed(uint vehicle); + void SetDeployMissileBays(IVehicle vehicle, bool deploy); + void SetDeployMissileBays(uint vehicle, bool deploy); + bool AreMissileBaysDeployed(IVehicle vehicle); + bool AreMissileBaysDeployed(uint vehicle); void SetDipStraightDownWhenCrashingPlane(IVehicle vehicle, bool toggle); void SetDipStraightDownWhenCrashingPlane(uint vehicle, bool toggle); /// @@ -25720,6 +25990,28 @@ public unsafe interface INatives void SetDisableVehicleExplosionsDamage(bool toggle); void SetOverrideNitrousLevel(IVehicle vehicle, bool toggle, float level, float power, float rechargeTime, bool disableSound); void SetOverrideNitrousLevel(uint vehicle, bool toggle, float level, float power, float rechargeTime, bool disableSound); + void SetNitrousIsActive(IVehicle vehicle, bool enabled); + void SetNitrousIsActive(uint vehicle, bool enabled); + void SetOverrideTractionLossMultiplier(IVehicle vehicle, float modifier); + void SetOverrideTractionLossMultiplier(uint vehicle, float modifier); + /// + /// First two floats relate to rumble, the last is a threshold + /// + void SetDriftSlipAngleLimits(IVehicle vehicle, float durationScalar, float amplitudeScalar, float slipAngleLimit); + /// + /// First two floats relate to rumble, the last is a threshold + /// + void SetDriftSlipAngleLimits(uint vehicle, float durationScalar, float amplitudeScalar, float slipAngleLimit); + void SetMinimumTimeBetweenGearShifts(IVehicle vehicle, int time); + void SetMinimumTimeBetweenGearShifts(uint vehicle, int time); + void FullyChargeNitrous(IVehicle vehicle); + void FullyChargeNitrous(uint vehicle); + float GetRemainingNitrousDuration(IVehicle vehicle); + float GetRemainingNitrousDuration(uint vehicle); + bool IsNitrousActive(IVehicle vehicle); + bool IsNitrousActive(uint vehicle); + void ClearNitrous(IVehicle vehicle); + void ClearNitrous(uint vehicle); void SetIncreaseWheelCrushDamage(IVehicle vehicle, bool toggle); void SetIncreaseWheelCrushDamage(uint vehicle, bool toggle); /// @@ -25746,6 +26038,8 @@ public unsafe interface INatives /// Disables detachable bumber from domnator4, dominator5, dominator6, see https://gfycat.com/SecondUnluckyGosling /// void HideTombstone(uint vehicle, bool toggle); + void ApplyEmpEffect(IVehicle vehicle); + void ApplyEmpEffect(uint vehicle); /// /// Returns whether this vehicle is currently disabled by an EMP mine. /// @@ -25844,6 +26138,32 @@ public unsafe interface INatives /// void SetTyreWearRate(uint vehicle, int wheelIndex, float multiplier); /// + /// Controls how fast the tires wear out. + /// Default values from Rockstar's Open Wheel Race JSON's: + /// "owrtss" (Soft): 2.2 + /// "owrtsm" (Medium): 1.7 + /// "owrtsh" (Hard): 1.2 + /// Usable wheels: + /// 0: wheel_lf + /// 1: wheel_rf + /// 2: wheel_lm1 + /// See NativeDB for reference: http://natives.altv.mp/#/0x392183BB9EA57697 + /// + void SetTyreWearRateScale(IVehicle vehicle, int wheelIndex, float multiplier); + /// + /// Controls how fast the tires wear out. + /// Default values from Rockstar's Open Wheel Race JSON's: + /// "owrtss" (Soft): 2.2 + /// "owrtsm" (Medium): 1.7 + /// "owrtsh" (Hard): 1.2 + /// Usable wheels: + /// 0: wheel_lf + /// 1: wheel_rf + /// 2: wheel_lm1 + /// See NativeDB for reference: http://natives.altv.mp/#/0x392183BB9EA57697 + /// + void SetTyreWearRateScale(uint vehicle, int wheelIndex, float multiplier); + /// /// Controls how much traction the wheel loses. /// Default values from Rockstar's Open Wheel Race JSON's: /// "owrtds" (Soft): 0.05 @@ -25900,6 +26220,22 @@ public unsafe interface INatives /// void SetCheckForEnoughRoomForPed(uint vehicle, bool p1); /// + /// _SET_ALLOW_R* - _SET_ALLOW_V* + /// + void SetAllowCollisionWhenInVehicle(IVehicle vehicle, bool toggle); + /// + /// _SET_ALLOW_R* - _SET_ALLOW_V* + /// + void SetAllowCollisionWhenInVehicle(uint vehicle, bool toggle); + bool IsVehicleGen9ExclusiveModel(uint vehicleModel); + int GetVehicleMaxExhaustBoneCount(); + /// + /// + bool GetVehicleExhaustBone(IVehicle vehicle, int index, ref int boneIndex, ref bool axisX); + /// + /// + bool GetVehicleExhaustBone(uint vehicle, int index, ref int boneIndex, ref bool axisX); + /// /// This function set height to the value of z-axis of the water surface. /// note: seems to return true when you are in water /// @@ -26671,6 +27007,7 @@ public unsafe interface INatives uint SetPedShootOrdnanceWeapon(uint ped, float p1); void RequestWeaponHighDetailModel(IEntity weaponObject); void RequestWeaponHighDetailModel(uint weaponObject); + void SetWeaponPedDamageModifier(uint weapon, float damageModifier); /// /// Changes the weapon damage output by the given multiplier value. Must be run every frame. /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json @@ -26924,6 +27261,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__freeMemoryForHighQualityPhoto; private delegate* unmanaged[Cdecl] fn__setTakenPhotoIsMugshot; private delegate* unmanaged[Cdecl] fn__setArenaThemeAndVariationForTakenPhoto; + private delegate* unmanaged[Cdecl] fn__setOnIslandXForTakenPhoto; private delegate* unmanaged[Cdecl] fn__saveHighQualityPhoto; private delegate* unmanaged[Cdecl] fn__getStatusOfSaveHighQualityPhoto; private delegate* unmanaged[Cdecl] fn__beginCreateLowQualityCopyOfPhoto; @@ -27106,6 +27444,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__startParticleFxNonLoopedOnEntityBone; private delegate* unmanaged[Cdecl] fn__setParticleFxNonLoopedColour; private delegate* unmanaged[Cdecl] fn__setParticleFxNonLoopedAlpha; + private delegate* unmanaged[Cdecl] fn__setParticleFxNonLoopedScale; private delegate* unmanaged[Cdecl] fn__setParticleFxNonLoopedEmitterSize; private delegate* unmanaged[Cdecl] fn__setParticleFxForceVehicleInterior; private delegate* unmanaged[Cdecl] fn__startParticleFxLoopedAtCoord; @@ -27126,6 +27465,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setParticleFxLoopedAlpha; private delegate* unmanaged[Cdecl] fn__setParticleFxLoopedScale; private delegate* unmanaged[Cdecl] fn__setParticleFxLoopedFarClipDist; + private delegate* unmanaged[Cdecl] fn__setParticleFxLoopedCameraBias; private delegate* unmanaged[Cdecl] fn__setParticleFxCamInsideVehicle; private delegate* unmanaged[Cdecl] fn__setParticleFxCamInsideNonplayerVehicle; private delegate* unmanaged[Cdecl] fn__setParticleFxShootoutBoat; @@ -27144,10 +27484,12 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setParticleFxFootOverrideName; private delegate* unmanaged[Cdecl] fn__setSkidmarkRangeScale; private delegate* unmanaged[Cdecl] fn__setPtfxForceVehicleInteriorFlag; + private delegate* unmanaged[Cdecl] fn__registerPostfxBulletImpact; private delegate* unmanaged[Cdecl] fn__forcePostfxBulletImpactsAfterHud; private delegate* unmanaged[Cdecl] fn__useParticleFxAsset; private delegate* unmanaged[Cdecl] fn__setParticleFxOverride; private delegate* unmanaged[Cdecl] fn__resetParticleFxOverride; + private delegate* unmanaged[Cdecl] fn__startVehicleParticleFxLooped; private delegate* unmanaged[Cdecl] fn__setWeatherPtfxUseOverrideSettings; private delegate* unmanaged[Cdecl] fn__setWeatherPtfxOverrideCurrLevel; private delegate* unmanaged[Cdecl] fn__washDecalsInRange; @@ -27189,8 +27531,10 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__renderShadowedLightsWithNoShadows; private delegate* unmanaged[Cdecl] fn__requestEarlyLightCheck; private delegate* unmanaged[Cdecl] fn__useSnowFootVfxWhenUnsheltered; + private delegate* unmanaged[Cdecl] fn__forceAllowSnowFootVfxOnIce; private delegate* unmanaged[Cdecl] fn__useSnowWheelVfxWhenUnsheltered; private delegate* unmanaged[Cdecl] fn__disableRegionVfx; + private delegate* unmanaged[Cdecl] fn__forceGroundSnowPass; private delegate* unmanaged[Cdecl] fn__presetInteriorAmbientCache; private delegate* unmanaged[Cdecl] fn__setTimecycleModifier; private delegate* unmanaged[Cdecl] fn__setTimecycleModifierStrength; @@ -27213,6 +27557,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__enableMoonCycleOverride; private delegate* unmanaged[Cdecl] fn__disableMoonCycleOverride; private delegate* unmanaged[Cdecl] fn__requestScaleformMovie; + private delegate* unmanaged[Cdecl] fn__requestScaleformMovieWithIgnoreSuperWidescreen; private delegate* unmanaged[Cdecl] fn__requestScaleformMovieInstance; private delegate* unmanaged[Cdecl] fn__requestScaleformMovieSkipRenderWhilePaused; private delegate* unmanaged[Cdecl] fn__hasScaleformMovieLoaded; @@ -27265,6 +27610,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__drawTvChannel; private delegate* unmanaged[Cdecl] fn__setTvChannelPlaylist; private delegate* unmanaged[Cdecl] fn__setTvChannelPlaylistAtHour; + private delegate* unmanaged[Cdecl] fn__setTvChannelPlaylistDirty; private delegate* unmanaged[Cdecl] fn__clearTvChannelPlaylist; private delegate* unmanaged[Cdecl] fn__isPlaylistOnChannel; private delegate* unmanaged[Cdecl] fn__isTvshowCurrentlyPlaying; @@ -27291,6 +27637,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__stopPedRingtone; private delegate* unmanaged[Cdecl] fn__isMobilePhoneCallOngoing; private delegate* unmanaged[Cdecl] fn__isMobileInterferenceActive; + private delegate* unmanaged[Cdecl] fn__getCurrentTvShowPlayTime; private delegate* unmanaged[Cdecl] fn__createNewScriptedConversation; private delegate* unmanaged[Cdecl] fn__addLineToConversation; private delegate* unmanaged[Cdecl] fn__addPedToConversation; @@ -27496,6 +27843,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__playVehicleDoorOpenSound; private delegate* unmanaged[Cdecl] fn__playVehicleDoorCloseSound; private delegate* unmanaged[Cdecl] fn__enableStallWarningSounds; + private delegate* unmanaged[Cdecl] fn__enableDragRaceStationaryWarningSounds; private delegate* unmanaged[Cdecl] fn__isGameInControlOfMusic; private delegate* unmanaged[Cdecl] fn__setGpsActive; private delegate* unmanaged[Cdecl] fn__playMissionCompleteAudio; @@ -27615,6 +27963,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setCamDofFocusDistanceBias; private delegate* unmanaged[Cdecl] fn__setCamDofMaxNearInFocusDistance; private delegate* unmanaged[Cdecl] fn__setCamDofMaxNearInFocusDistanceBlendLevel; + private delegate* unmanaged[Cdecl] fn__setCamDofShouldKeepLookAtTargetInFocus; private delegate* unmanaged[Cdecl] fn__attachCamToEntity; private delegate* unmanaged[Cdecl] fn__attachCamToPedBone; private delegate* unmanaged[Cdecl] fn__hardAttachCamToPedBone; @@ -27719,6 +28068,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setThirdPersonCamRelativeHeadingLimitsThisUpdate; private delegate* unmanaged[Cdecl] fn__setThirdPersonCamRelativePitchLimitsThisUpdate; private delegate* unmanaged[Cdecl] fn__setThirdPersonCamOrbitDistanceLimitsThisUpdate; + private delegate* unmanaged[Cdecl] fn__getThirdPersonCamMinOrbitDistanceSpring; + private delegate* unmanaged[Cdecl] fn__getThirdPersonCamMaxOrbitDistanceSpring; private delegate* unmanaged[Cdecl] fn__setInVehicleCamStateThisUpdate; private delegate* unmanaged[Cdecl] fn__disableOnFootFirstPersonViewThisUpdate; private delegate* unmanaged[Cdecl] fn__disableFirstPersonFlashEffectThisUpdate; @@ -27853,6 +28204,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getCutsceneTime; private delegate* unmanaged[Cdecl] fn__getCutsceneTotalDuration; private delegate* unmanaged[Cdecl] fn__getCutsceneEndTime; + private delegate* unmanaged[Cdecl] fn__getCutscenePlayDuration; private delegate* unmanaged[Cdecl] fn__wasCutsceneSkipped; private delegate* unmanaged[Cdecl] fn__hasCutsceneFinished; private delegate* unmanaged[Cdecl] fn__isCutsceneActive; @@ -27979,6 +28331,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__hasEntityClearLosToEntityAdjustForCover; private delegate* unmanaged[Cdecl] fn__hasEntityClearLosToEntityInFront; private delegate* unmanaged[Cdecl] fn__hasEntityCollidedWithAnything; + private delegate* unmanaged[Cdecl] fn__getLastEntityHitByEntity; private delegate* unmanaged[Cdecl] fn__getLastMaterialHitByEntity; private delegate* unmanaged[Cdecl] fn__getCollisionNormalOfLastHitForEntity; private delegate* unmanaged[Cdecl] fn__forceEntityAiAndAnimationUpdate; @@ -28017,6 +28370,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getWorldPositionOfEntityBone; private delegate* unmanaged[Cdecl] fn__getNearestPlayerToEntity; private delegate* unmanaged[Cdecl] fn__getNearestPlayerToEntityOnTeam; + private delegate* unmanaged[Cdecl] fn__getNearestParticipantToEntity; private delegate* unmanaged[Cdecl] fn__getEntityType; private delegate* unmanaged[Cdecl] fn__getEntityPopulationType; private delegate* unmanaged[Cdecl] fn__isAnEntity; @@ -28057,6 +28411,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__attachEntityBoneToEntityBone; private delegate* unmanaged[Cdecl] fn__attachEntityBoneToEntityBoneYForward; private delegate* unmanaged[Cdecl] fn__attachEntityToEntityPhysically; + private delegate* unmanaged[Cdecl] fn__attachEntityToEntityPhysicallyOverrideInverseMass; private delegate* unmanaged[Cdecl] fn__processEntityAttachments; private delegate* unmanaged[Cdecl] fn__getEntityBoneIndexByName; private delegate* unmanaged[Cdecl] fn__clearEntityLastDamageEntity; @@ -28092,7 +28447,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setEntityCoordsNoOffset; private delegate* unmanaged[Cdecl] fn__setEntityDynamic; private delegate* unmanaged[Cdecl] fn__setEntityHeading; - private delegate* unmanaged[Cdecl] fn__setEntityHealth; + private delegate* unmanaged[Cdecl] fn__setEntityHealth; private delegate* unmanaged[Cdecl] fn__setEntityInvincible; private delegate* unmanaged[Cdecl] fn__setEntityIsTargetPriority; private delegate* unmanaged[Cdecl] fn__setEntityLights; @@ -28141,6 +28496,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getEntityBoneRotation; private delegate* unmanaged[Cdecl] fn__getEntityBonePostion; private delegate* unmanaged[Cdecl] fn__getEntityBoneObjectRotation; + private delegate* unmanaged[Cdecl] fn__getEntityBoneObjectPostion; private delegate* unmanaged[Cdecl] fn__getEntityBoneCount; private delegate* unmanaged[Cdecl] fn__enableEntityBulletCollision; private delegate* unmanaged[Cdecl] fn__setEntityCanOnlyBeDamagedByEntity; @@ -28176,7 +28532,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getShopPedProp; private delegate* unmanaged[Cdecl] fn__getHashNameForComponent; private delegate* unmanaged[Cdecl] fn__getHashNameForProp; - private delegate* unmanaged[Cdecl] fn__getItemVariantsCount; + private delegate* unmanaged[Cdecl] fn__getShopPedApparelVariantComponentCount; private delegate* unmanaged[Cdecl] fn__getShopPedApparelVariantPropCount; private delegate* unmanaged[Cdecl] fn__getVariantComponent; private delegate* unmanaged[Cdecl] fn__getVariantProp; @@ -28184,7 +28540,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getShopPedApparelForcedPropCount; private delegate* unmanaged[Cdecl] fn__getForcedComponent; private delegate* unmanaged[Cdecl] fn__getForcedProp; - private delegate* unmanaged[Cdecl] fn__isTagRestricted; + private delegate* unmanaged[Cdecl] fn__doesShopPedApparelHaveRestrictionTag; private delegate* unmanaged[Cdecl] fn__doesCurrentPedComponentHaveRestrictionTag; private delegate* unmanaged[Cdecl] fn__doesCurrentPedPropHaveRestrictionTag; private delegate* unmanaged[Cdecl] fn__setupShopPedOutfitQuery; @@ -28357,6 +28713,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__isRadarHidden; private delegate* unmanaged[Cdecl] fn__isMinimapRendering; private delegate* unmanaged[Cdecl] fn__useVehicleTargetingReticule; + private delegate* unmanaged[Cdecl] fn__useVehicleTargetingReticuleOnVehicles; private delegate* unmanaged[Cdecl] fn__addValidVehicleHitHash; private delegate* unmanaged[Cdecl] fn__clearValidVehicleHitHashes; private delegate* unmanaged[Cdecl] fn__setBlipRoute; @@ -28390,6 +28747,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setTextCentre; private delegate* unmanaged[Cdecl] fn__setTextRightJustify; private delegate* unmanaged[Cdecl] fn__setTextJustification; + private delegate* unmanaged[Cdecl] fn__setTextLineHeightMult; private delegate* unmanaged[Cdecl] fn__setTextWrap; private delegate* unmanaged[Cdecl] fn__setTextLeading; private delegate* unmanaged[Cdecl] fn__setTextProportional; @@ -28482,6 +28840,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__showHeightOnBlip; private delegate* unmanaged[Cdecl] fn__showTickOnBlip; private delegate* unmanaged[Cdecl] fn__showGoldTickOnBlip; + private delegate* unmanaged[Cdecl] fn__showForSaleIconOnBlip; private delegate* unmanaged[Cdecl] fn__showHeadingIndicatorOnBlip; private delegate* unmanaged[Cdecl] fn__showOutlineIndicatorOnBlip; private delegate* unmanaged[Cdecl] fn__showFriendIndicatorOnBlip; @@ -28503,6 +28862,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setupFakeConeData; private delegate* unmanaged[Cdecl] fn__removeFakeConeData; private delegate* unmanaged[Cdecl] fn__clearFakeConeArray; + private delegate* unmanaged[Cdecl] fn__setBlipGpsRouteDisplayDistance; private delegate* unmanaged[Cdecl] fn__setMinimapComponent; private delegate* unmanaged[Cdecl] fn__setMinimapSonarSweep; private delegate* unmanaged[Cdecl] fn__showAccountPicker; @@ -28519,7 +28879,9 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__hideMinimapExteriorMapThisFrame; private delegate* unmanaged[Cdecl] fn__hideMinimapInteriorMapThisFrame; private delegate* unmanaged[Cdecl] fn__setUseIslandMap; + private delegate* unmanaged[Cdecl] fn__setPauseExteriorRenderingWhileInInterior; private delegate* unmanaged[Cdecl] fn__dontTiltMinimapThisFrame; + private delegate* unmanaged[Cdecl] fn__dontZoomMinimapWhenRunningThisFrame; private delegate* unmanaged[Cdecl] fn__dontZoomMinimapWhenSnipingThisFrame; private delegate* unmanaged[Cdecl] fn__setWidescreenFormat; private delegate* unmanaged[Cdecl] fn__displayAreaName; @@ -28541,7 +28903,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__displayHelpTextThisFrame; private delegate* unmanaged[Cdecl] fn__hudForceWeaponWheel; private delegate* unmanaged[Cdecl] fn__hudForceSpecialVehicleWeaponWheel; - private delegate* unmanaged[Cdecl] fn__blockWeaponWheelThisFrame; + private delegate* unmanaged[Cdecl] fn__hudSuppressWeaponWheelResultsThisFrame; private delegate* unmanaged[Cdecl] fn__hudGetWeaponWheelCurrentlyHighlighted; private delegate* unmanaged[Cdecl] fn__hudSetWeaponWheelTopSlot; private delegate* unmanaged[Cdecl] fn__hudGetWeaponWheelTopSlot; @@ -28599,7 +28961,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setHudComponentPosition; private delegate* unmanaged[Cdecl] fn__getHudComponentPosition; private delegate* unmanaged[Cdecl] fn__clearReminderMessage; - private delegate* unmanaged[Cdecl] fn__getScreenCoordFromWorldCoord2; + private delegate* unmanaged[Cdecl] fn__getHudScreenPositionFromWorldPosition; private delegate* unmanaged[Cdecl] fn__openReportugcMenu; private delegate* unmanaged[Cdecl] fn__forceCloseReportugcMenu; private delegate* unmanaged[Cdecl] fn__isReportugcMenuOpen; @@ -28707,7 +29069,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__openOnlinePoliciesMenu; private delegate* unmanaged[Cdecl] fn__areOnlinePoliciesUpToDate; private delegate* unmanaged[Cdecl] fn__isOnlinePoliciesMenuActive; - private delegate* unmanaged[Cdecl] fn__openSocialClubMenu; + private delegate* unmanaged[Cdecl] fn__openSocialClubMenu; private delegate* unmanaged[Cdecl] fn__closeSocialClubMenu; private delegate* unmanaged[Cdecl] fn__setSocialClubTour; private delegate* unmanaged[Cdecl] fn__isSocialClubActive; @@ -28915,6 +29277,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setCreditsActive; private delegate* unmanaged[Cdecl] fn__setCreditsFadeOutWithScreen; private delegate* unmanaged[Cdecl] fn__haveCreditsReachedEnd; + private delegate* unmanaged[Cdecl] fn__areCreditsRunning; private delegate* unmanaged[Cdecl] fn__terminateAllScriptsWithThisName; private delegate* unmanaged[Cdecl] fn__networkSetScriptIsSafeForNetworkGame; private delegate* unmanaged[Cdecl] fn__addHospitalRestart; @@ -28976,6 +29339,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__isProjectileTypeInAngledArea; private delegate* unmanaged[Cdecl] fn__isProjectileTypeWithinDistance; private delegate* unmanaged[Cdecl] fn__getCoordsOfProjectileTypeInArea; + private delegate* unmanaged[Cdecl] fn__getCoordsOfProjectileTypeInAngledArea; private delegate* unmanaged[Cdecl] fn__getCoordsOfProjectileTypeWithinDistance; private delegate* unmanaged[Cdecl] fn__getProjectileOfProjectileTypeWithinDistance; private delegate* unmanaged[Cdecl] fn__isBulletInAngledArea; @@ -29130,6 +29494,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__useActiveCameraForTimeslicingCentre; private delegate* unmanaged[Cdecl] fn__setContentIdIndex; private delegate* unmanaged[Cdecl] fn__getContentIdIndex; + private delegate* unmanaged[Cdecl] fn__setContentPropType; + private delegate* unmanaged[Cdecl] fn__getContentPropType; private delegate* unmanaged[Cdecl] fn__createMobilePhone; private delegate* unmanaged[Cdecl] fn__destroyMobilePhone; private delegate* unmanaged[Cdecl] fn__setMobilePhoneScale; @@ -29176,6 +29542,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkDeferCashTransactionsUntilShopSave; private delegate* unmanaged[Cdecl] fn__canPayAmountToBoss; private delegate* unmanaged[Cdecl] fn__networkEarnFromPickup; + private delegate* unmanaged[Cdecl] fn__networkEarnFromCashingOut; private delegate* unmanaged[Cdecl] fn__networkEarnFromGangattackPickup; private delegate* unmanaged[Cdecl] fn__networkEarnAssassinateTargetKilled; private delegate* unmanaged[Cdecl] fn__networkEarnFromRobArmoredCars; @@ -29192,12 +29559,12 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkEarnFromProperty; private delegate* unmanaged[Cdecl] fn__networkEarnFromAiTargetKill; private delegate* unmanaged[Cdecl] fn__networkEarnFromNotBadsport; - private delegate* unmanaged[Cdecl] fn__networkEarnFromRockstar; private delegate* unmanaged[Cdecl] fn__networkEarnFromVehicle; private delegate* unmanaged[Cdecl] fn__networkEarnFromPersonalVehicle; private delegate* unmanaged[Cdecl] fn__networkEarnFromDailyObjectives; private delegate* unmanaged[Cdecl] fn__networkEarnFromAmbientJob; private delegate* unmanaged[Cdecl] fn__networkEarnFromJobBonus; + private delegate* unmanaged[Cdecl] fn__networkEarnFromCriminalMastermind; private delegate* unmanaged[Cdecl] fn__networkEarnHeistAward; private delegate* unmanaged[Cdecl] fn__networkEarnFirstTimeBonus; private delegate* unmanaged[Cdecl] fn__networkEarnGoon; @@ -29205,8 +29572,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkEarnAgency; private delegate* unmanaged[Cdecl] fn__networkEarnFromWarehouse; private delegate* unmanaged[Cdecl] fn__networkEarnFromContraband; - private delegate* unmanaged[Cdecl] fn__networkEarnFromDestroyingContraband; - private delegate* unmanaged[Cdecl] fn__networkEarnFromSmugglerWork; + private delegate* unmanaged[Cdecl] fn__networkEarnFromDestroyingContraband; + private delegate* unmanaged[Cdecl] fn__networkEarnFromSmugglerWork; private delegate* unmanaged[Cdecl] fn__networkEarnFromHangarTrade; private delegate* unmanaged[Cdecl] fn__networkEarnPurchaseClubHouse; private delegate* unmanaged[Cdecl] fn__networkEarnFromBusinessProduct; @@ -29230,7 +29597,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkSpentInStripclub; private delegate* unmanaged[Cdecl] fn__networkBuyHealthcare; private delegate* unmanaged[Cdecl] fn__networkBuyAirstrike; - private delegate* unmanaged[Cdecl] fn__networkBuyBackupGang; + private delegate* unmanaged[Cdecl] fn__networkBuyBackupGang; private delegate* unmanaged[Cdecl] fn__networkBuyHeliStrike; private delegate* unmanaged[Cdecl] fn__networkSpentAmmoDrop; private delegate* unmanaged[Cdecl] fn__networkBuyBounty; @@ -29260,6 +29627,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkSpentFromRockstar; private delegate* unmanaged[Cdecl] fn__networkSpendEarnedFromBankAndWallets; private delegate* unmanaged[Cdecl] fn__processCashGift; + private delegate* unmanaged[Cdecl] fn__networkSpentMoveSubmarine; private delegate* unmanaged[Cdecl] fn__networkSpentPlayerHealthcare; private delegate* unmanaged[Cdecl] fn__networkSpentNoCops; private delegate* unmanaged[Cdecl] fn__networkSpentCargoSourcing; @@ -29272,7 +29640,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkSpendGoon; private delegate* unmanaged[Cdecl] fn__networkSpendBoss; private delegate* unmanaged[Cdecl] fn__networkSpentMoveYacht; - private delegate* unmanaged[Cdecl] fn__networkSpentRenameOrganization; + private delegate* unmanaged[Cdecl] fn__networkSpentRenameOrganization; private delegate* unmanaged[Cdecl] fn__networkBuyContrabandMission; private delegate* unmanaged[Cdecl] fn__networkSpentPaServiceHeli; private delegate* unmanaged[Cdecl] fn__networkSpentPaServiceVehicle; @@ -29280,8 +29648,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkSpentPaServiceDancer; private delegate* unmanaged[Cdecl] fn__networkSpentPaServiceImpound; private delegate* unmanaged[Cdecl] fn__networkSpentPaHeliPickup; - private delegate* unmanaged[Cdecl] fn__networkSpentPurchaseOfficeProperty; - private delegate* unmanaged[Cdecl] fn__networkSpentUpgradeOfficeProperty; + private delegate* unmanaged[Cdecl] fn__networkSpentPurchaseOfficeProperty; + private delegate* unmanaged[Cdecl] fn__networkSpentUpgradeOfficeProperty; private delegate* unmanaged[Cdecl] fn__networkSpentPurchaseWarehouseProperty; private delegate* unmanaged[Cdecl] fn__networkSpentUpgradeWarehouseProperty; private delegate* unmanaged[Cdecl] fn__networkSpentPurchaseImpexpWarehouseProperty; @@ -29451,6 +29819,45 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkEarnBikerShop; private delegate* unmanaged[Cdecl] fn__networkEarnBiker; private delegate* unmanaged[Cdecl] fn__networkYohanSourceGoods; + private delegate* unmanaged[Cdecl] fn__networkSpendBuyMfgarage; + private delegate* unmanaged[Cdecl] fn__networkSpendUpgradeMfgarage; + private delegate* unmanaged[Cdecl] fn__networkSpendBuySupplies; + private delegate* unmanaged[Cdecl] fn__networkSpendBuyAcidLab; + private delegate* unmanaged[Cdecl] fn__networkSpendUpgradeAcidLabEquipment; + private delegate* unmanaged[Cdecl] fn__networkSpendUpgradeAcidLabArmor; + private delegate* unmanaged[Cdecl] fn__networkSpendUpgradeAcidLabScoop; + private delegate* unmanaged[Cdecl] fn__networkSpendUpgradeAcidLabMines; + private delegate* unmanaged[Cdecl] fn__networkSpendRenameAcidLab; + private delegate* unmanaged[Cdecl] fn__networkSpendRenameAcidProduct; + private delegate* unmanaged[Cdecl] fn__networkEarnAwardJuggaloMission; + private delegate* unmanaged[Cdecl] fn__networkEarnAwardAcidLab; + private delegate* unmanaged[Cdecl] fn__networkEarnAwardDailyStash; + private delegate* unmanaged[Cdecl] fn__networkEarnAwardDeadDrop; + private delegate* unmanaged[Cdecl] fn__networkEarnAwardRandomEvent; + private delegate* unmanaged[Cdecl] fn__networkEarnAwardTaxi; + private delegate* unmanaged[Cdecl] fn__networkEarnStreetDealer; + private delegate* unmanaged[Cdecl] fn__networkEarnSellAcid; + private delegate* unmanaged[Cdecl] fn__networkEarnSetupParticipationAcidLab; + private delegate* unmanaged[Cdecl] fn__networkEarnSourceParticipationAcidLab; + private delegate* unmanaged[Cdecl] fn__networkEarnSellParticipationAcidLab; + private delegate* unmanaged[Cdecl] fn__networkEarnJuggaloStoryMission; + private delegate* unmanaged[Cdecl] fn__networkEarnJuggaloStoryMissionParticipation; + private delegate* unmanaged[Cdecl] fn__networkEarnFooliganJob; + private delegate* unmanaged[Cdecl] fn__networkEarnFooliganJobParticipation; + private delegate* unmanaged[Cdecl] fn__networkEarnTaxiJob; + private delegate* unmanaged[Cdecl] fn__networkEarnDailyStashHouseCompleted; + private delegate* unmanaged[Cdecl] fn__networkEarnDailyStashHouseParticipation; + private delegate* unmanaged[Cdecl] fn__networkEarnAvenger; + private delegate* unmanaged[Cdecl] fn__networkEarnSmugglerOps; + private delegate* unmanaged[Cdecl] fn__networkEarnBonusObjective; + private delegate* unmanaged[Cdecl] fn__networkEarnProgressHub; + private delegate* unmanaged[Cdecl] fn__networkSpentAirFreight; + private delegate* unmanaged[Cdecl] fn__networkSpentSkipCargoSourceSetup; + private delegate* unmanaged[Cdecl] fn__networkSpentStealthModule; + private delegate* unmanaged[Cdecl] fn__networkSpentMissileJammer; + private delegate* unmanaged[Cdecl] fn__networkSpentGeneric; + private delegate* unmanaged[Cdecl] fn__networkEarnGeneric; + private delegate* unmanaged[Cdecl] fn__networkClearTransactionTelemetryNonce; private delegate* unmanaged[Cdecl] fn__networkGetVcBankBalance; private delegate* unmanaged[Cdecl] fn__networkGetVcWalletBalance; private delegate* unmanaged[Cdecl] fn__networkGetVcBalance; @@ -29458,7 +29865,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkGetPvcBalance; private delegate* unmanaged[Cdecl] fn__networkGetStringWalletBalance; private delegate* unmanaged[Cdecl] fn__networkGetStringBankBalance; - private delegate* unmanaged[Cdecl] fn__networkGetStringBankWalletBalance; + private delegate* unmanaged[Cdecl] fn__networkGetStringBankWalletBalance; private delegate* unmanaged[Cdecl] fn__networkGetCanSpendFromWallet; private delegate* unmanaged[Cdecl] fn__networkGetCanSpendFromBank; private delegate* unmanaged[Cdecl] fn__networkGetCanSpendFromBankAndWallet; @@ -29530,6 +29937,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkHasAgeRestrictions; private delegate* unmanaged[Cdecl] fn__networkHaveUserContentPrivileges; private delegate* unmanaged[Cdecl] fn__networkHaveCommunicationPrivileges; + private delegate* unmanaged[Cdecl] fn__networkHavePlatformCommunicationPrivileges; private delegate* unmanaged[Cdecl] fn__networkCheckOnlinePrivileges; private delegate* unmanaged[Cdecl] fn__networkCheckUserContentPrivileges; private delegate* unmanaged[Cdecl] fn__networkCheckCommunicationPrivileges; @@ -29556,7 +29964,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkCanAccessMultiplayer; private delegate* unmanaged[Cdecl] fn__networkIsMultiplayerDisabled; private delegate* unmanaged[Cdecl] fn__networkCanEnterMultiplayer; - private delegate* unmanaged[Cdecl] fn__networkSessionDoFreeroamQuickmatch; + private delegate* unmanaged[Cdecl] fn__networkSessionDoFreeroamQuickmatch; private delegate* unmanaged[Cdecl] fn__networkSessionDoFriendMatchmaking; private delegate* unmanaged[Cdecl] fn__networkSessionDoCrewMatchmaking; private delegate* unmanaged[Cdecl] fn__networkSessionDoActivityQuickmatch; @@ -29567,6 +29975,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkSessionIsClosedCrew; private delegate* unmanaged[Cdecl] fn__networkSessionIsSolo; private delegate* unmanaged[Cdecl] fn__networkSessionIsPrivate; + private delegate* unmanaged[Cdecl] fn__networkSessionLeaveIncludingReason; private delegate* unmanaged[Cdecl] fn__networkSessionEnd; private delegate* unmanaged[Cdecl] fn__networkSessionLeave; private delegate* unmanaged[Cdecl] fn__networkSessionKickPlayer; @@ -29579,6 +29988,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkSessionGetMatchmakingGroupFree; private delegate* unmanaged[Cdecl] fn__networkSessionAddActiveMatchmakingGroup; private delegate* unmanaged[Cdecl] fn__networkSessionSetUniqueCrewLimit; + private delegate* unmanaged[Cdecl] fn__networkSessionGetUniqueCrewLimit; private delegate* unmanaged[Cdecl] fn__networkSessionSetUniqueCrewLimitTransition; private delegate* unmanaged[Cdecl] fn__networkSessionSetUniqueCrewOnlyCrewsTransition; private delegate* unmanaged[Cdecl] fn__networkSessionSetCrewLimitMaxMembersTransition; @@ -29629,6 +30039,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkIsGameInProgress; private delegate* unmanaged[Cdecl] fn__networkIsSessionActive; private delegate* unmanaged[Cdecl] fn__networkIsInSession; + private delegate* unmanaged[Cdecl] fn__networkIsAmericasVersion; private delegate* unmanaged[Cdecl] fn__networkIsSessionStarted; private delegate* unmanaged[Cdecl] fn__networkIsSessionBusy; private delegate* unmanaged[Cdecl] fn__networkCanSessionEnd; @@ -29764,12 +30175,10 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkSeedRandomNumberGenerator; private delegate* unmanaged[Cdecl] fn__networkGetRandomInt; private delegate* unmanaged[Cdecl] fn__networkGetRandomIntRanged; + private delegate* unmanaged[Cdecl] fn__networkGetRandomFloatRanged; private delegate* unmanaged[Cdecl] fn__networkPlayerIsCheater; private delegate* unmanaged[Cdecl] fn__networkPlayerGetCheaterReason; private delegate* unmanaged[Cdecl] fn__networkPlayerIsBadsport; - private delegate* unmanaged[Cdecl] fn__triggerPlayerCrcHackerCheck; - private delegate* unmanaged[Cdecl] fn__triggerTuningCrcHackerCheck; - private delegate* unmanaged[Cdecl] fn__triggerFileCrcHackerCheck; private delegate* unmanaged[Cdecl] fn__remoteCheaterPlayerDetected; private delegate* unmanaged[Cdecl] fn__badSportPlayerLeftDetected; private delegate* unmanaged[Cdecl] fn__networkAddInvalidObjectModel; @@ -29819,8 +30228,10 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkGetAssistedDamageOfEntity; private delegate* unmanaged[Cdecl] fn__networkGetEntityKillerOfPlayer; private delegate* unmanaged[Cdecl] fn__networkSetCurrentPublicContentId; + private delegate* unmanaged[Cdecl] fn__networkSetCurrentChatOption; private delegate* unmanaged[Cdecl] fn__networkSetCurrentSpawnLocationOption; private delegate* unmanaged[Cdecl] fn__networkSetVehicleDrivenInTestDrive; + private delegate* unmanaged[Cdecl] fn__networkSetVehicleDrivenLocation; private delegate* unmanaged[Cdecl] fn__networkResurrectLocalPlayer; private delegate* unmanaged[Cdecl] fn__networkSetLocalPlayerInvincibleTime; private delegate* unmanaged[Cdecl] fn__networkIsLocalPlayerInvincible; @@ -29895,6 +30306,10 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkGetPlayerOwnsWaypoint; private delegate* unmanaged[Cdecl] fn__networkCanSetWaypoint; private delegate* unmanaged[Cdecl] fn__networkIgnoreRemoteWaypoints; + private delegate* unmanaged[Cdecl] fn__networkDoesCommunicationGroupExist; + private delegate* unmanaged[Cdecl] fn__networkGetCommunicationGroupFlags; + private delegate* unmanaged[Cdecl] fn__networkSetCommunicationGroupFlags; + private delegate* unmanaged[Cdecl] fn__networkIsPlayerOnBlocklist; private delegate* unmanaged[Cdecl] fn__networkSetScriptAutomuted; private delegate* unmanaged[Cdecl] fn__networkHasAutomuteOverride; private delegate* unmanaged[Cdecl] fn__networkHasHeadset; @@ -29965,7 +30380,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkClanPlayerIsActive; private delegate* unmanaged[Cdecl] fn__networkClanPlayerGetDesc; private delegate* unmanaged[Cdecl] fn__networkClanIsRockstarClan; - private delegate* unmanaged[Cdecl] fn__networkClanGetUiFormattedTag; + private delegate* unmanaged[Cdecl] fn__networkClanGetUiFormattedTag; private delegate* unmanaged[Cdecl] fn__networkClanGetLocalMembershipsCount; private delegate* unmanaged[Cdecl] fn__networkClanGetMembershipDesc; private delegate* unmanaged[Cdecl] fn__networkClanDownloadMembership; @@ -29979,7 +30394,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkClanCrewinfoGetStringValue; private delegate* unmanaged[Cdecl] fn__networkClanCrewinfoGetCrewranktitle; private delegate* unmanaged[Cdecl] fn__networkClanHasCrewinfoMetadataBeenReceived; - private delegate* unmanaged[Cdecl] fn__networkClanGetEmblemTxdName; + private delegate* unmanaged[Cdecl] fn__networkClanGetEmblemTxdName; private delegate* unmanaged[Cdecl] fn__networkClanRequestEmblem; private delegate* unmanaged[Cdecl] fn__networkClanIsEmblemReady; private delegate* unmanaged[Cdecl] fn__networkClanReleaseEmblem; @@ -29998,11 +30413,12 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkSetEntityOnlyExistsForParticipants; private delegate* unmanaged[Cdecl] fn__setNetworkIdVisibleInCutscene; private delegate* unmanaged[Cdecl] fn__setNetworkIdVisibleInCutsceneHack; - private delegate* unmanaged[Cdecl] fn__setNetworkIdVisibleInCutsceneRemainHack; + private delegate* unmanaged[Cdecl] fn__setNetworkIdVisibleInCutsceneRemainHack; private delegate* unmanaged[Cdecl] fn__setNetworkCutsceneEntities; private delegate* unmanaged[Cdecl] fn__areCutsceneEntitiesNetworked; private delegate* unmanaged[Cdecl] fn__setNetworkIdPassControlInTutorial; private delegate* unmanaged[Cdecl] fn__isNetworkIdOwnedByParticipant; + private delegate* unmanaged[Cdecl] fn__setRemotePlayerVisibleInCutscene; private delegate* unmanaged[Cdecl] fn__setLocalPlayerVisibleInCutscene; private delegate* unmanaged[Cdecl] fn__setLocalPlayerInvisibleLocally; private delegate* unmanaged[Cdecl] fn__setLocalPlayerVisibleLocally; @@ -30071,6 +30487,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkIsPlayerInMpCutscene; private delegate* unmanaged[Cdecl] fn__networkHideProjectileInCutscene; private delegate* unmanaged[Cdecl] fn__setNetworkVehicleRespotTimer; + private delegate* unmanaged[Cdecl] fn__isNetworkVehicleRunningRespotTimer; private delegate* unmanaged[Cdecl] fn__setNetworkVehicleAsGhost; private delegate* unmanaged[Cdecl] fn__setNetworkVehicleMaxPositionDeltaMultiplier; private delegate* unmanaged[Cdecl] fn__setNetworkEnableHighSpeedEdgeFallDetection; @@ -30268,6 +30685,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__ugcGetCachedDescription; private delegate* unmanaged[Cdecl] fn__ugcReleaseCachedDescription; private delegate* unmanaged[Cdecl] fn__ugcReleaseAllCachedDescriptions; + private delegate* unmanaged[Cdecl] fn__ugcHasPermissionToWrite; private delegate* unmanaged[Cdecl] fn__ugcPublish; private delegate* unmanaged[Cdecl] fn__ugcSetBookmarked; private delegate* unmanaged[Cdecl] fn__ugcSetDeleted; @@ -30311,6 +30729,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkHasRosPrivilegeEndDate; private delegate* unmanaged[Cdecl] fn__networkHasRosPrivilegePlayedLastGen; private delegate* unmanaged[Cdecl] fn__networkHasRosPrivilegeSpecialEditionContent; + private delegate* unmanaged[Cdecl] fn__networkHasRosPrivilegeMpTextCommunication; + private delegate* unmanaged[Cdecl] fn__networkHasRosPrivilegeMpVoiceCommunication; private delegate* unmanaged[Cdecl] fn__networkStartCommunicationPermissionsCheck; private delegate* unmanaged[Cdecl] fn__networkStartUserContentPermissionsCheck; private delegate* unmanaged[Cdecl] fn__networkSkipRadioResetNextClose; @@ -30334,7 +30754,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkGetLastEntityPosReceivedOverNetwork; private delegate* unmanaged[Cdecl] fn__networkGetLastPlayerPosReceivedOverNetwork; private delegate* unmanaged[Cdecl] fn__networkGetLastVelReceivedOverNetwork; - private delegate* unmanaged[Cdecl] fn__networkGetPredictedVelocity; + private delegate* unmanaged[Cdecl] fn__networkGetPredictedVelocity; private delegate* unmanaged[Cdecl] fn__networkDumpNetIfConfig; private delegate* unmanaged[Cdecl] fn__networkGetSignallingInfo; private delegate* unmanaged[Cdecl] fn__networkGetNetStatisticsInfo; @@ -30347,7 +30767,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__placeObjectOnGroundOrObjectProperly; private delegate* unmanaged[Cdecl] fn__rotateObject; private delegate* unmanaged[Cdecl] fn__slideObject; - private delegate* unmanaged[Cdecl] fn__setObjectTargettable; + private delegate* unmanaged[Cdecl] fn__setObjectTargettable; private delegate* unmanaged[Cdecl] fn__setObjectForceVehiclesToAvoid; private delegate* unmanaged[Cdecl] fn__getClosestObjectOfType; private delegate* unmanaged[Cdecl] fn__hasObjectBeenBroken; @@ -30484,6 +30904,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getObjectTintIndex; private delegate* unmanaged[Cdecl] fn__setObjectTintIndex; private delegate* unmanaged[Cdecl] fn__setTintIndexClosestBuildingOfType; + private delegate* unmanaged[Cdecl] fn__setPropTintIndex; private delegate* unmanaged[Cdecl] fn__setPropLightColor; private delegate* unmanaged[Cdecl] fn__isPropLightOverriden; private delegate* unmanaged[Cdecl] fn__setObjectIsVisibleInMirrors; @@ -30549,7 +30970,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__initPcScriptedControls; private delegate* unmanaged[Cdecl] fn__switchPcScriptedControls; private delegate* unmanaged[Cdecl] fn__shutdownPcScriptedControls; - private delegate* unmanaged[Cdecl] fn__disableInputGroup; + private delegate* unmanaged[Cdecl] fn__allowAlternativeScriptControlsLayout; private delegate* unmanaged[Cdecl] fn__setRoadsInArea; private delegate* unmanaged[Cdecl] fn__setRoadsInAngledArea; private delegate* unmanaged[Cdecl] fn__setPedPathsInArea; @@ -30568,6 +30989,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getVehicleNodeIsGpsAllowed; private delegate* unmanaged[Cdecl] fn__getVehicleNodeIsSwitchedOff; private delegate* unmanaged[Cdecl] fn__getClosestRoad; + private delegate* unmanaged[Cdecl] fn__loadAllPathNodes; private delegate* unmanaged[Cdecl] fn__setAllowStreamPrologueNodes; private delegate* unmanaged[Cdecl] fn__setAllowStreamHeistIslandNodes; private delegate* unmanaged[Cdecl] fn__areNodesLoadedForArea; @@ -30578,6 +31000,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__adjustAmbientPedSpawnDensitiesThisFrame; private delegate* unmanaged[Cdecl] fn__setPedPathsBackToOriginal; private delegate* unmanaged[Cdecl] fn__getRandomVehicleNode; + private delegate* unmanaged[Cdecl] fn__getSpawnCoordsForVehicleNode; private delegate* unmanaged[Cdecl] fn__getStreetNameAtCoord; private delegate* unmanaged[Cdecl] fn__generateDirectionsToCoord; private delegate* unmanaged[Cdecl] fn__setIgnoreNoGpsFlag; @@ -30767,6 +31190,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__isPedInHighCover; private delegate* unmanaged[Cdecl] fn__isPedGoingIntoCover; private delegate* unmanaged[Cdecl] fn__setPedPinnedDown; + private delegate* unmanaged[Cdecl] fn__hasPedClearLosToEntity; private delegate* unmanaged[Cdecl] fn__getSeatPedIsTryingToEnter; private delegate* unmanaged[Cdecl] fn__getVehiclePedIsTryingToEnter; private delegate* unmanaged[Cdecl] fn__getPedSourceOfDeath; @@ -30806,7 +31230,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getVehiclePedIsUsing; private delegate* unmanaged[Cdecl] fn__getVehiclePedIsEntering; private delegate* unmanaged[Cdecl] fn__setPedGravity; - private delegate* unmanaged[Cdecl] fn__applyDamageToPed; + private delegate* unmanaged[Cdecl] fn__applyDamageToPed; private delegate* unmanaged[Cdecl] fn__getTimePedDamagedByWeapon; private delegate* unmanaged[Cdecl] fn__setPedAllowedToDuck; private delegate* unmanaged[Cdecl] fn__setPedNeverLeavesGroup; @@ -30993,6 +31417,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__clearPedWetness; private delegate* unmanaged[Cdecl] fn__setPedWetnessHeight; private delegate* unmanaged[Cdecl] fn__setPedWetnessEnabledThisFrame; + private delegate* unmanaged[Cdecl] fn__setPedWetness; private delegate* unmanaged[Cdecl] fn__clearPedEnvDirt; private delegate* unmanaged[Cdecl] fn__setPedSweat; private delegate* unmanaged[Cdecl] fn__addPedDecorationFromHashes; @@ -31004,7 +31429,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getPedBoneCoords; private delegate* unmanaged[Cdecl] fn__createNmMessage; private delegate* unmanaged[Cdecl] fn__givePedNmMessage; - private delegate* unmanaged[Cdecl] fn__addScenarioBlockingArea; + private delegate* unmanaged[Cdecl] fn__addScenarioBlockingArea; private delegate* unmanaged[Cdecl] fn__removeScenarioBlockingAreas; private delegate* unmanaged[Cdecl] fn__removeScenarioBlockingArea; private delegate* unmanaged[Cdecl] fn__setScenarioPedsSpawnInSphereArea; @@ -31022,6 +31447,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setPedShouldIgnoreScenarioNavChecks; private delegate* unmanaged[Cdecl] fn__setPedShouldProbeForScenarioExitsInOneFrame; private delegate* unmanaged[Cdecl] fn__isPedGesturing; + private delegate* unmanaged[Cdecl] fn__resetFacialIdleAnim; private delegate* unmanaged[Cdecl] fn__playFacialAnim; private delegate* unmanaged[Cdecl] fn__setFacialClipset; private delegate* unmanaged[Cdecl] fn__setFacialIdleAnimOverride; @@ -31384,6 +31810,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__givePlayerRagdollControl; private delegate* unmanaged[Cdecl] fn__setPlayerLockon; private delegate* unmanaged[Cdecl] fn__setPlayerTargetingMode; + private delegate* unmanaged[Cdecl] fn__getPlayerTargetingMode; private delegate* unmanaged[Cdecl] fn__setPlayerTargetLevel; private delegate* unmanaged[Cdecl] fn__getIsUsingFpsThirdPersonCover; private delegate* unmanaged[Cdecl] fn__getIsUsingHoodCamera; @@ -31440,6 +31867,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setPlayerHealthRechargeMultiplier; private delegate* unmanaged[Cdecl] fn__getPlayerHealthRechargeMaxPercent; private delegate* unmanaged[Cdecl] fn__setPlayerHealthRechargeMaxPercent; + private delegate* unmanaged[Cdecl] fn__disablePlayerHealthRecharge; private delegate* unmanaged[Cdecl] fn__setPlayerFallDistanceToTriggerRagdollOverride; private delegate* unmanaged[Cdecl] fn__setPlayerWeaponDamageModifier; private delegate* unmanaged[Cdecl] fn__setPlayerWeaponDefenseModifier; @@ -31466,7 +31894,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setPlayerNoiseMultiplier; private delegate* unmanaged[Cdecl] fn__setPlayerSneakingNoiseMultiplier; private delegate* unmanaged[Cdecl] fn__canPedHearPlayer; - private delegate* unmanaged[Cdecl] fn__simulatePlayerInputGait; + private delegate* unmanaged[Cdecl] fn__simulatePlayerInputGait; private delegate* unmanaged[Cdecl] fn__resetPlayerInputGait; private delegate* unmanaged[Cdecl] fn__setAutoGiveParachuteWhenEnterPlane; private delegate* unmanaged[Cdecl] fn__setAutoGiveScubaGearWhenExitVehicle; @@ -31572,6 +32000,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__bgDoesLaunchParamExist; private delegate* unmanaged[Cdecl] fn__bgGetLaunchParamValue; private delegate* unmanaged[Cdecl] fn__bgGetScriptIdFromNameHash; + private delegate* unmanaged[Cdecl] fn__sendTuScriptEventNew; private delegate* unmanaged[Cdecl] fn__startShapeTestLosProbe; private delegate* unmanaged[Cdecl] fn__startExpensiveSynchronousShapeTestLosProbe; private delegate* unmanaged[Cdecl] fn__startShapeTestBoundingBox; @@ -31589,13 +32018,12 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__scInboxSetMessageAsReadAtIndex; private delegate* unmanaged[Cdecl] fn__scInboxMessageGetDataInt; private delegate* unmanaged[Cdecl] fn__scInboxMessageGetDataBool; - private delegate* unmanaged[Cdecl] fn__scInboxMessageGetDataString; + private delegate* unmanaged[Cdecl] fn__scInboxMessageGetDataString; private delegate* unmanaged[Cdecl] fn__scInboxMessageDoApply; private delegate* unmanaged[Cdecl] fn__scInboxMessageGetRawTypeAtIndex; private delegate* unmanaged[Cdecl] fn__scInboxMessagePushGamerT0RecipList; private delegate* unmanaged[Cdecl] fn__scInboxSendUgcstatupdateToRecipList; private delegate* unmanaged[Cdecl] fn__scInboxMessageGetUgcdata; - private delegate* unmanaged[Cdecl] fn__scInboxSendBountyToRecipList; private delegate* unmanaged[Cdecl] fn__scInboxGetBountyDataAtIndex; private delegate* unmanaged[Cdecl] fn__scEmailRetrieveEmails; private delegate* unmanaged[Cdecl] fn__scEmailGetRetrievalStatus; @@ -31616,7 +32044,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__scGamerdataGetInt; private delegate* unmanaged[Cdecl] fn__scGamerdataGetFloat; private delegate* unmanaged[Cdecl] fn__scGamerdataGetBool; - private delegate* unmanaged[Cdecl] fn__scGamerdataGetString; + private delegate* unmanaged[Cdecl] fn__scGamerdataGetString; private delegate* unmanaged[Cdecl] fn__scGamerdataGetActiveXpBonus; private delegate* unmanaged[Cdecl] fn__scProfanityCheckString; private delegate* unmanaged[Cdecl] fn__scProfanityCheckStringUgc; @@ -31641,19 +32069,19 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__scCommunityEventGetEventId; private delegate* unmanaged[Cdecl] fn__scCommunityEventGetExtraDataInt; private delegate* unmanaged[Cdecl] fn__scCommunityEventGetExtraDataFloat; - private delegate* unmanaged[Cdecl] fn__scCommunityEventGetExtraDataString; - private delegate* unmanaged[Cdecl] fn__scCommunityEventGetDisplayName; + private delegate* unmanaged[Cdecl] fn__scCommunityEventGetExtraDataString; + private delegate* unmanaged[Cdecl] fn__scCommunityEventGetDisplayName; private delegate* unmanaged[Cdecl] fn__scCommunityEventIsActiveForType; private delegate* unmanaged[Cdecl] fn__scCommunityEventGetEventIdForType; private delegate* unmanaged[Cdecl] fn__scCommunityEventGetExtraDataIntForType; private delegate* unmanaged[Cdecl] fn__scCommunityEventGetExtraDataFloatForType; - private delegate* unmanaged[Cdecl] fn__scCommunityEventGetExtraDataStringForType; - private delegate* unmanaged[Cdecl] fn__scCommunityEventGetDisplayNameForType; + private delegate* unmanaged[Cdecl] fn__scCommunityEventGetExtraDataStringForType; + private delegate* unmanaged[Cdecl] fn__scCommunityEventGetDisplayNameForType; private delegate* unmanaged[Cdecl] fn__scCommunityEventIsActiveById; private delegate* unmanaged[Cdecl] fn__scCommunityEventGetExtraDataIntById; private delegate* unmanaged[Cdecl] fn__scCommunityEventGetExtraDataFloatById; - private delegate* unmanaged[Cdecl] fn__scCommunityEventGetExtraDataStringById; - private delegate* unmanaged[Cdecl] fn__scCommunityEventGetDisplayNameById; + private delegate* unmanaged[Cdecl] fn__scCommunityEventGetExtraDataStringById; + private delegate* unmanaged[Cdecl] fn__scCommunityEventGetDisplayNameById; private delegate* unmanaged[Cdecl] fn__scTransitionNewsShow; private delegate* unmanaged[Cdecl] fn__scTransitionNewsShowTimed; private delegate* unmanaged[Cdecl] fn__scTransitionNewsShowNextItem; @@ -31684,6 +32112,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__statLoadDirtyReadDetected; private delegate* unmanaged[Cdecl] fn__statClearDirtyReadDetected; private delegate* unmanaged[Cdecl] fn__statGetLoadSafeToProgressToMpFromSp; + private delegate* unmanaged[Cdecl] fn__getStatHashForCharacterStat; private delegate* unmanaged[Cdecl] fn__statSetInt; private delegate* unmanaged[Cdecl] fn__statSetFloat; private delegate* unmanaged[Cdecl] fn__statSetBool; @@ -31720,14 +32149,18 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getPackedIntStatKey; private delegate* unmanaged[Cdecl] fn__getPackedTuIntStatKey; private delegate* unmanaged[Cdecl] fn__getPackedNgIntStatKey; + private delegate* unmanaged[Cdecl] fn__getPackedStatBoolCode; private delegate* unmanaged[Cdecl] fn__getPackedStatIntCode; + private delegate* unmanaged[Cdecl] fn__setPackedStatBoolCode; private delegate* unmanaged[Cdecl] fn__setPackedStatIntCode; private delegate* unmanaged[Cdecl] fn__playstatsBackgroundScriptAction; + private delegate* unmanaged[Cdecl] fn__playstatsFlowLow; + private delegate* unmanaged[Cdecl] fn__playstatsFlowMedium; private delegate* unmanaged[Cdecl] fn__playstatsNpcInvite; private delegate* unmanaged[Cdecl] fn__playstatsAwardXp; private delegate* unmanaged[Cdecl] fn__playstatsRankUp; private delegate* unmanaged[Cdecl] fn__playstatsStartedSessionInOfflinemode; - private delegate* unmanaged[Cdecl] fn__playstatsActivityDone; + private delegate* unmanaged[Cdecl] fn__playstatsActivityDone; private delegate* unmanaged[Cdecl] fn__playstatsLeaveJobChain; private delegate* unmanaged[Cdecl] fn__playstatsMissionStarted; private delegate* unmanaged[Cdecl] fn__playstatsMissionOver; @@ -31762,6 +32195,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__playstatsAppendDirectorMetric; private delegate* unmanaged[Cdecl] fn__playstatsAwardBadSport; private delegate* unmanaged[Cdecl] fn__playstatsPegasusAsPersonalAircraft; + private delegate* unmanaged[Cdecl] fn__playstatsShopmenuNav; private delegate* unmanaged[Cdecl] fn__playstatsFmEventChallenges; private delegate* unmanaged[Cdecl] fn__playstatsFmEventVehicletarget; private delegate* unmanaged[Cdecl] fn__playstatsFmEventUrbanwarfare; @@ -31786,7 +32220,6 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__leaderboardsReadSuccessful; private delegate* unmanaged[Cdecl] fn__leaderboards2ReadFriendsByRow; private delegate* unmanaged[Cdecl] fn__leaderboards2ReadByHandle; - private delegate* unmanaged[Cdecl] fn__leaderboards2ReadByRow; private delegate* unmanaged[Cdecl] fn__leaderboards2ReadByRank; private delegate* unmanaged[Cdecl] fn__leaderboards2ReadByRadius; private delegate* unmanaged[Cdecl] fn__leaderboards2ReadByScoreInt; @@ -31883,9 +32316,9 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__playstatsDefendContrabandMission; private delegate* unmanaged[Cdecl] fn__playstatsRecoverContrabandMission; private delegate* unmanaged[Cdecl] fn__playstatsHitContrabandDestroyLimit; - private delegate* unmanaged[Cdecl] fn__startBeingBoss; + private delegate* unmanaged[Cdecl] fn__startBeingBoss; private delegate* unmanaged[Cdecl] fn__startBeingGoon; - private delegate* unmanaged[Cdecl] fn__endBeingBoss; + private delegate* unmanaged[Cdecl] fn__endBeingBoss; private delegate* unmanaged[Cdecl] fn__endBeingGoon; private delegate* unmanaged[Cdecl] fn__hiredLimo; private delegate* unmanaged[Cdecl] fn__orderBossVehicle; @@ -31948,7 +32381,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__playstatsFreemodeCasinoMissionEnded; private delegate* unmanaged[Cdecl] fn__playstatsHeist3Drone; private delegate* unmanaged[Cdecl] fn__playstatsHeist3Hack; - private delegate* unmanaged[Cdecl] fn__playstatsNpcPhone; + private delegate* unmanaged[Cdecl] fn__playstatsNpcPhone; private delegate* unmanaged[Cdecl] fn__playstatsArcadeCabinet; private delegate* unmanaged[Cdecl] fn__playstatsHeist3Finale; private delegate* unmanaged[Cdecl] fn__playstatsHeist3Prep; @@ -31957,7 +32390,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__playstatsMissionVote; private delegate* unmanaged[Cdecl] fn__playstatsNjvsVote; private delegate* unmanaged[Cdecl] fn__playstatsKillYourself; - private delegate* unmanaged[Cdecl] fn__playstatsFmMissionEnd; + private delegate* unmanaged[Cdecl] fn__playstatsFmMissionEnd; private delegate* unmanaged[Cdecl] fn__playstatsHeist4Prep; private delegate* unmanaged[Cdecl] fn__playstatsHeist4Finale; private delegate* unmanaged[Cdecl] fn__playstatsHeist4Hack; @@ -31974,7 +32407,17 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__playstatsAwardNav; private delegate* unmanaged[Cdecl] fn__playstatsInstMissionEnd; private delegate* unmanaged[Cdecl] fn__playstatsHubExit; + private delegate* unmanaged[Cdecl] fn__playstatsVehDel; private delegate* unmanaged[Cdecl] fn__playstatsInventory; + private delegate* unmanaged[Cdecl] fn__playstatsAcidMissionEnd; + private delegate* unmanaged[Cdecl] fn__playstatsAcidRnd; + private delegate* unmanaged[Cdecl] fn__playstatsIdle; + private delegate* unmanaged[Cdecl] fn__playstatsPlayerStyle; + private delegate* unmanaged[Cdecl] fn__playstatsRandomEvent; + private delegate* unmanaged[Cdecl] fn__playstatsAlert; + private delegate* unmanaged[Cdecl] fn__playstatsAttritionStageEnd; + private delegate* unmanaged[Cdecl] fn__playstatsShowroomNav; + private delegate* unmanaged[Cdecl] fn__playstatsShowroomOverview; private delegate* unmanaged[Cdecl] fn__loadAllObjectsNow; private delegate* unmanaged[Cdecl] fn__loadScene; private delegate* unmanaged[Cdecl] fn__networkUpdateLoadScene; @@ -32102,7 +32545,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__taskHandsUp; private delegate* unmanaged[Cdecl] fn__updateTaskHandsUpDuration; private delegate* unmanaged[Cdecl] fn__taskOpenVehicleDoor; - private delegate* unmanaged[Cdecl] fn__taskEnterVehicle; + private delegate* unmanaged[Cdecl] fn__taskEnterVehicle; private delegate* unmanaged[Cdecl] fn__taskLeaveVehicle; private delegate* unmanaged[Cdecl] fn__taskGetOffBoat; private delegate* unmanaged[Cdecl] fn__taskSkyDive; @@ -32230,7 +32673,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__taskShootAtEntity; private delegate* unmanaged[Cdecl] fn__taskClimb; private delegate* unmanaged[Cdecl] fn__taskClimbLadder; - private delegate* unmanaged[Cdecl] fn__taskRappelDownWallUsingClipsetOverride; + private delegate* unmanaged[Cdecl] fn__taskRappelDownWallUsingClipsetOverride; private delegate* unmanaged[Cdecl] fn__getTaskRappelDownWallState; private delegate* unmanaged[Cdecl] fn__clearPedTasksImmediately; private delegate* unmanaged[Cdecl] fn__taskPerformSequenceFromProgress; @@ -32381,6 +32824,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getTaskMoveNetworkSignalBool; private delegate* unmanaged[Cdecl] fn__getTaskMoveNetworkEvent; private delegate* unmanaged[Cdecl] fn__setTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed; + private delegate* unmanaged[Cdecl] fn__setScriptTaskEnableCollisionOnNetworkCloneWhenFixed; private delegate* unmanaged[Cdecl] fn__isMoveBlendRatioStill; private delegate* unmanaged[Cdecl] fn__isMoveBlendRatioWalking; private delegate* unmanaged[Cdecl] fn__isMoveBlendRatioRunning; @@ -32448,6 +32892,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setVehicleDoorsLockedForTeam; private delegate* unmanaged[Cdecl] fn__setVehicleDoorsLockedForAllTeams; private delegate* unmanaged[Cdecl] fn__setVehicleDontTerminateTaskWhenAchieved; + private delegate* unmanaged[Cdecl] fn__setVehicleMaxLaunchEngineRevs; + private delegate* unmanaged[Cdecl] fn__getVehicleThrottle; private delegate* unmanaged[Cdecl] fn__explodeVehicle; private delegate* unmanaged[Cdecl] fn__setVehicleOutOfControl; private delegate* unmanaged[Cdecl] fn__setVehicleTimedExplosion; @@ -32455,6 +32901,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__clearVehiclePhoneExplosiveDevice; private delegate* unmanaged[Cdecl] fn__hasVehiclePhoneExplosiveDevice; private delegate* unmanaged[Cdecl] fn__detonateVehiclePhoneExplosiveDevice; + private delegate* unmanaged[Cdecl] fn__haveVehicleRearDoorsBeenBlownOpenByStickybomb; private delegate* unmanaged[Cdecl] fn__setTaxiLights; private delegate* unmanaged[Cdecl] fn__isTaxiLightOn; private delegate* unmanaged[Cdecl] fn__isVehicleInGarageArea; @@ -32480,6 +32927,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getSubmarineIsUnderDesignDepth; private delegate* unmanaged[Cdecl] fn__getSubmarineNumberOfAirLeaks; private delegate* unmanaged[Cdecl] fn__setBoatIgnoreLandProbes; + private delegate* unmanaged[Cdecl] fn__setBoundsAffectWaterProbes; private delegate* unmanaged[Cdecl] fn__setBoatAnchor; private delegate* unmanaged[Cdecl] fn__canAnchorBoatHere; private delegate* unmanaged[Cdecl] fn__canAnchorBoatHereIgnorePlayers; @@ -32508,6 +32956,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setIgnorePlanesSmallPitchChange; private delegate* unmanaged[Cdecl] fn__stopBringingVehicleToHalt; private delegate* unmanaged[Cdecl] fn__isVehicleBeingBroughtToHalt; + private delegate* unmanaged[Cdecl] fn__lowerForkliftForks; private delegate* unmanaged[Cdecl] fn__setForkliftForkHeight; private delegate* unmanaged[Cdecl] fn__isEntityAttachedToHandlerFrame; private delegate* unmanaged[Cdecl] fn__isAnyEntityAttachedToHandlerFrame; @@ -32757,12 +33206,17 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getLandingGearState; private delegate* unmanaged[Cdecl] fn__isAnyVehicleNearPoint; private delegate* unmanaged[Cdecl] fn__requestVehicleHighDetailModel; + private delegate* unmanaged[Cdecl] fn__getVehicleModelNumDriveGears; + private delegate* unmanaged[Cdecl] fn__getVehicleMaxDriveGearCount; + private delegate* unmanaged[Cdecl] fn__getVehicleCurrentDriveGear; + private delegate* unmanaged[Cdecl] fn__getVehicleCurrentRevRatio; private delegate* unmanaged[Cdecl] fn__removeVehicleHighDetailModel; private delegate* unmanaged[Cdecl] fn__isVehicleHighDetail; private delegate* unmanaged[Cdecl] fn__requestVehicleAsset; private delegate* unmanaged[Cdecl] fn__hasVehicleAssetLoaded; private delegate* unmanaged[Cdecl] fn__removeVehicleAsset; private delegate* unmanaged[Cdecl] fn__setVehicleTowTruckArmPosition; + private delegate* unmanaged[Cdecl] fn__setAttachedVehicleToTowTruckArm; private delegate* unmanaged[Cdecl] fn__attachVehicleToTowTruck; private delegate* unmanaged[Cdecl] fn__detachVehicleFromTowTruck; private delegate* unmanaged[Cdecl] fn__detachVehicleFromAnyTowTruck; @@ -32786,6 +33240,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setVehicleReduceGripLevel; private delegate* unmanaged[Cdecl] fn__setVehicleIndicatorLights; private delegate* unmanaged[Cdecl] fn__setVehicleBrakeLights; + private delegate* unmanaged[Cdecl] fn__setVehicleTailLights; private delegate* unmanaged[Cdecl] fn__setVehicleHandbrake; private delegate* unmanaged[Cdecl] fn__setVehicleBrake; private delegate* unmanaged[Cdecl] fn__instantlyFillVehiclePopulation; @@ -32793,6 +33248,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkEnableEmptyCrowdingVehiclesRemoval; private delegate* unmanaged[Cdecl] fn__networkCapEmptyCrowdingVehiclesRemoval; private delegate* unmanaged[Cdecl] fn__getVehicleTrailerVehicle; + private delegate* unmanaged[Cdecl] fn__getVehicleTrailerParentVehicle; private delegate* unmanaged[Cdecl] fn__setVehicleUsesLargeRearRamp; private delegate* unmanaged[Cdecl] fn__setVehicleRudderBroken; private delegate* unmanaged[Cdecl] fn__setConvertibleRoofLatchState; @@ -32863,6 +33319,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getVehicleColoursWhichCanBeSet; private delegate* unmanaged[Cdecl] fn__getVehicleCauseOfDestruction; private delegate* unmanaged[Cdecl] fn__overridePlaneDamageThrehsold; + private delegate* unmanaged[Cdecl] fn__setTransmissionReducedGearRatio; + private delegate* unmanaged[Cdecl] fn__getVehicleDesiredDriveGear; private delegate* unmanaged[Cdecl] fn__getIsLeftVehicleHeadlightDamaged; private delegate* unmanaged[Cdecl] fn__getIsRightVehicleHeadlightDamaged; private delegate* unmanaged[Cdecl] fn__getBothVehicleHeadlightsDamaged; @@ -33065,6 +33523,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__vehicleSetJetWashForceEnabled; private delegate* unmanaged[Cdecl] fn__setVehicleWeaponCanTargetObjects; private delegate* unmanaged[Cdecl] fn__setVehicleUseBoostButtonForWheelRetract; + private delegate* unmanaged[Cdecl] fn__setVehicleUseHornButtonForNitrous; private delegate* unmanaged[Cdecl] fn__vehicleSetParachuteModelOverride; private delegate* unmanaged[Cdecl] fn__vehicleSetParachuteModelTintIndex; private delegate* unmanaged[Cdecl] fn__vehicleSetOverrideExtenableSideRatio; @@ -33102,6 +33561,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__findSpawnCoordinatesForHeli; private delegate* unmanaged[Cdecl] fn__setDeployFoldingWings; private delegate* unmanaged[Cdecl] fn__areFoldingWingsDeployed; + private delegate* unmanaged[Cdecl] fn__setDeployMissileBays; + private delegate* unmanaged[Cdecl] fn__areMissileBaysDeployed; private delegate* unmanaged[Cdecl] fn__setDipStraightDownWhenCrashingPlane; private delegate* unmanaged[Cdecl] fn__setTurretHidden; private delegate* unmanaged[Cdecl] fn__setHoverModeWingRatio; @@ -33117,17 +33578,27 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getLastShuntVehicle; private delegate* unmanaged[Cdecl] fn__setDisableVehicleExplosionsDamage; private delegate* unmanaged[Cdecl] fn__setOverrideNitrousLevel; + private delegate* unmanaged[Cdecl] fn__setNitrousIsActive; + private delegate* unmanaged[Cdecl] fn__setOverrideTractionLossMultiplier; + private delegate* unmanaged[Cdecl] fn__setDriftSlipAngleLimits; + private delegate* unmanaged[Cdecl] fn__setMinimumTimeBetweenGearShifts; + private delegate* unmanaged[Cdecl] fn__fullyChargeNitrous; + private delegate* unmanaged[Cdecl] fn__getRemainingNitrousDuration; + private delegate* unmanaged[Cdecl] fn__isNitrousActive; + private delegate* unmanaged[Cdecl] fn__clearNitrous; private delegate* unmanaged[Cdecl] fn__setIncreaseWheelCrushDamage; private delegate* unmanaged[Cdecl] fn__setDisableWeaponBladeForces; private delegate* unmanaged[Cdecl] fn__setUseDoubleClickForCarJump; private delegate* unmanaged[Cdecl] fn__getDoesVehicleHaveTombstone; private delegate* unmanaged[Cdecl] fn__hideTombstone; + private delegate* unmanaged[Cdecl] fn__applyEmpEffect; private delegate* unmanaged[Cdecl] fn__getIsVehicleDisabledByEmp; private delegate* unmanaged[Cdecl] fn__setDisableRetractingWeaponBlades; private delegate* unmanaged[Cdecl] fn__getTyreHealth; private delegate* unmanaged[Cdecl] fn__setTyreHealth; private delegate* unmanaged[Cdecl] fn__getTyreWearRate; private delegate* unmanaged[Cdecl] fn__setTyreWearRate; + private delegate* unmanaged[Cdecl] fn__setTyreWearRateScale; private delegate* unmanaged[Cdecl] fn__setTyreMaximumGripDifferenceDueToWearRate; private delegate* unmanaged[Cdecl] fn__setAircraftIgnoreHightmapOptimisation; private delegate* unmanaged[Cdecl] fn__setReducedSuspensionForce; @@ -33135,6 +33606,10 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getDriftTyresSet; private delegate* unmanaged[Cdecl] fn__networkUseHighPrecisionTrainBlending; private delegate* unmanaged[Cdecl] fn__setCheckForEnoughRoomForPed; + private delegate* unmanaged[Cdecl] fn__setAllowCollisionWhenInVehicle; + private delegate* unmanaged[Cdecl] fn__isVehicleGen9ExclusiveModel; + private delegate* unmanaged[Cdecl] fn__getVehicleMaxExhaustBoneCount; + private delegate* unmanaged[Cdecl] fn__getVehicleExhaustBone; private delegate* unmanaged[Cdecl] fn__getWaterHeight; private delegate* unmanaged[Cdecl] fn__getWaterHeightNoWaves; private delegate* unmanaged[Cdecl] fn__testProbeAgainstWater; @@ -33242,6 +33717,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setPedChanceOfFiringBlanks; private delegate* unmanaged[Cdecl] fn__setPedShootOrdnanceWeapon; private delegate* unmanaged[Cdecl] fn__requestWeaponHighDetailModel; + private delegate* unmanaged[Cdecl] fn__setWeaponPedDamageModifier; private delegate* unmanaged[Cdecl] fn__setWeaponDamageModifier; private delegate* unmanaged[Cdecl] fn__setWeaponAoeModifier; private delegate* unmanaged[Cdecl] fn__setWeaponEffectDurationModifier; @@ -34075,6 +34551,16 @@ public void SetArenaThemeAndVariationForTakenPhoto(int _p0, int _p1) } } + public void SetOnIslandXForTakenPhoto(int _p0) + { + unsafe { + if (fn__setOnIslandXForTakenPhoto == null) fn__setOnIslandXForTakenPhoto = (delegate* unmanaged[Cdecl]) funcTable[0xADD6627C4D325458UL]; + var success = false; + fn__setOnIslandXForTakenPhoto(&success, _p0); + if (!success) throw new Exception("Native execution failed"); + } + } + public bool SaveHighQualityPhoto(int _unused) { unsafe { @@ -36038,6 +36524,16 @@ public void SetParticleFxNonLoopedAlpha(float _alpha) } } + public void SetParticleFxNonLoopedScale(float _scale) + { + unsafe { + if (fn__setParticleFxNonLoopedScale == null) fn__setParticleFxNonLoopedScale = (delegate* unmanaged[Cdecl]) funcTable[0xB7EF5850C39FABCAUL]; + var success = false; + fn__setParticleFxNonLoopedScale(&success, _scale); + if (!success) throw new Exception("Native execution failed"); + } + } + public void SetParticleFxNonLoopedEmitterSize(float _p0, float _p1, float _scale) { unsafe { @@ -36265,6 +36761,16 @@ public void SetParticleFxLoopedFarClipDist(int _ptfxHandle, float _range) } } + public void SetParticleFxLoopedCameraBias(int _ptfxHandle, float _p1) + { + unsafe { + if (fn__setParticleFxLoopedCameraBias == null) fn__setParticleFxLoopedCameraBias = (delegate* unmanaged[Cdecl]) funcTable[0x4100BF0346A8D2C3UL]; + var success = false; + fn__setParticleFxLoopedCameraBias(&success, _ptfxHandle, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + public void SetParticleFxCamInsideVehicle(bool _p0) { unsafe { @@ -36448,6 +36954,16 @@ public void SetPtfxForceVehicleInteriorFlag(int _p0) } } + public void RegisterPostfxBulletImpact(float _weaponWorldPosX, float _weaponWorldPosY, float _weaponWorldPosZ, float _intensity) + { + unsafe { + if (fn__registerPostfxBulletImpact == null) fn__registerPostfxBulletImpact = (delegate* unmanaged[Cdecl]) funcTable[0x170911F37F646F29UL]; + var success = false; + fn__registerPostfxBulletImpact(&success, _weaponWorldPosX, _weaponWorldPosY, _weaponWorldPosZ, _intensity); + if (!success) throw new Exception("Native execution failed"); + } + } + public void ForcePostfxBulletImpactsAfterHud(bool _p0) { unsafe { @@ -36496,6 +37012,20 @@ public void ResetParticleFxOverride(string _name) } } + public int StartVehicleParticleFxLooped(IVehicle vehicle, string effectName, bool frontBack, bool leftRight, bool localOnly) => StartVehicleParticleFxLooped(vehicle.ScriptId, effectName, frontBack, leftRight, localOnly); + public int StartVehicleParticleFxLooped(uint _vehicle, string _effectName, bool _frontBack, bool _leftRight, bool _localOnly) + { + unsafe { + if (fn__startVehicleParticleFxLooped == null) fn__startVehicleParticleFxLooped = (delegate* unmanaged[Cdecl]) funcTable[0xDF269BE2909E181AUL]; + var success = false; + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); + var result = fn__startVehicleParticleFxLooped(&success, _vehicle, ptr_effectName, (byte) (_frontBack ? 1 : 0), (byte) (_leftRight ? 1 : 0), (byte) (_localOnly ? 1 : 0)); + Marshal.FreeHGlobal(ptr_effectName); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + public void SetWeatherPtfxUseOverrideSettings(bool _p0) { unsafe { @@ -36932,6 +37462,16 @@ public void UseSnowFootVfxWhenUnsheltered(bool _toggle) } } + public void ForceAllowSnowFootVfxOnIce(bool _toggle) + { + unsafe { + if (fn__forceAllowSnowFootVfxOnIce == null) fn__forceAllowSnowFootVfxOnIce = (delegate* unmanaged[Cdecl]) funcTable[0xA342A3763B3AFB6CUL]; + var success = false; + fn__forceAllowSnowFootVfxOnIce(&success, (byte) (_toggle ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + } + } + public void UseSnowWheelVfxWhenUnsheltered(bool _toggle) { unsafe { @@ -36952,6 +37492,16 @@ public void DisableRegionVfx(int _p0) } } + public void ForceGroundSnowPass(bool _toggle) + { + unsafe { + if (fn__forceGroundSnowPass == null) fn__forceGroundSnowPass = (delegate* unmanaged[Cdecl]) funcTable[0x6E9EF3A33C8899F8UL]; + var success = false; + fn__forceGroundSnowPass(&success, (byte) (_toggle ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + } + } + public void PresetInteriorAmbientCache(string _timecycleModifierName) { unsafe { @@ -37197,6 +37747,19 @@ public int RequestScaleformMovie(string _scaleformName) } } + public int RequestScaleformMovieWithIgnoreSuperWidescreen(string _scaleformName) + { + unsafe { + if (fn__requestScaleformMovieWithIgnoreSuperWidescreen == null) fn__requestScaleformMovieWithIgnoreSuperWidescreen = (delegate* unmanaged[Cdecl]) funcTable[0x65E7E78842E74CDBUL]; + var success = false; + var ptr_scaleformName = MemoryUtils.StringToHGlobalUtf8(_scaleformName); + var result = fn__requestScaleformMovieWithIgnoreSuperWidescreen(&success, ptr_scaleformName); + Marshal.FreeHGlobal(ptr_scaleformName); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + public int RequestScaleformMovieInstance(string _scaleformName) { unsafe { @@ -37796,6 +38359,16 @@ public void SetTvChannelPlaylistAtHour(int _tvChannel, string _playlistName, int } } + public void SetTvChannelPlaylistDirty(int _tvChannel, bool _p1) + { + unsafe { + if (fn__setTvChannelPlaylistDirty == null) fn__setTvChannelPlaylistDirty = (delegate* unmanaged[Cdecl]) funcTable[0xEE831F15A8D0D94AUL]; + var success = false; + fn__setTvChannelPlaylistDirty(&success, _tvChannel, (byte) (_p1 ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + } + } + public void ClearTvChannelPlaylist(int _tvChannel) { unsafe { @@ -38087,6 +38660,17 @@ public bool IsMobileInterferenceActive() } } + public int GetCurrentTvShowPlayTime() + { + unsafe { + if (fn__getCurrentTvShowPlayTime == null) fn__getCurrentTvShowPlayTime = (delegate* unmanaged[Cdecl]) funcTable[0xDD3AA743AB7D4D75UL]; + var success = false; + var result = fn__getCurrentTvShowPlayTime(&success); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + public void CreateNewScriptedConversation() { unsafe { @@ -38680,26 +39264,26 @@ public int GetSoundIdFromNetworkId(int _netId) } } - public void SetVariableOnSound(int _soundId, string _unkVariable, float _p2) + public void SetVariableOnSound(int _soundId, string _variable, float _p2) { unsafe { if (fn__setVariableOnSound == null) fn__setVariableOnSound = (delegate* unmanaged[Cdecl]) funcTable[0xAD6B3148A78AE9B6UL]; var success = false; - var ptr_unkVariable = MemoryUtils.StringToHGlobalUtf8(_unkVariable); - fn__setVariableOnSound(&success, _soundId, ptr_unkVariable, _p2); - Marshal.FreeHGlobal(ptr_unkVariable); + var ptr_variable = MemoryUtils.StringToHGlobalUtf8(_variable); + fn__setVariableOnSound(&success, _soundId, ptr_variable, _p2); + Marshal.FreeHGlobal(ptr_variable); if (!success) throw new Exception("Native execution failed"); } } - public void SetVariableOnStream(string _unkVariable, float _p1) + public void SetVariableOnStream(string _variable, float _p1) { unsafe { if (fn__setVariableOnStream == null) fn__setVariableOnStream = (delegate* unmanaged[Cdecl]) funcTable[0x2F9D3834AEB9EF79UL]; var success = false; - var ptr_unkVariable = MemoryUtils.StringToHGlobalUtf8(_unkVariable); - fn__setVariableOnStream(&success, ptr_unkVariable, _p1); - Marshal.FreeHGlobal(ptr_unkVariable); + var ptr_variable = MemoryUtils.StringToHGlobalUtf8(_variable); + fn__setVariableOnStream(&success, ptr_variable, _p1); + Marshal.FreeHGlobal(ptr_variable); if (!success) throw new Exception("Native execution failed"); } } @@ -38716,14 +39300,14 @@ public void OverrideUnderwaterStream(string _p0, bool _p1) } } - public void SetVariableOnUnderWaterStream(string _unkVariableName, float _value) + public void SetVariableOnUnderWaterStream(string _variableName, float _value) { unsafe { if (fn__setVariableOnUnderWaterStream == null) fn__setVariableOnUnderWaterStream = (delegate* unmanaged[Cdecl]) funcTable[0x733ADF241531E5C2UL]; var success = false; - var ptr_unkVariableName = MemoryUtils.StringToHGlobalUtf8(_unkVariableName); - fn__setVariableOnUnderWaterStream(&success, ptr_unkVariableName, _value); - Marshal.FreeHGlobal(ptr_unkVariableName); + var ptr_variableName = MemoryUtils.StringToHGlobalUtf8(_variableName); + fn__setVariableOnUnderWaterStream(&success, ptr_variableName, _value); + Marshal.FreeHGlobal(ptr_variableName); if (!success) throw new Exception("Native execution failed"); } } @@ -39892,14 +40476,14 @@ public void SetCutsceneAudioOverride(string _name) } } - public void SetVariableOnSynchSceneAudio(string _unkVariableName, float _value) + public void SetVariableOnSynchSceneAudio(string _variableName, float _value) { unsafe { if (fn__setVariableOnSynchSceneAudio == null) fn__setVariableOnSynchSceneAudio = (delegate* unmanaged[Cdecl]) funcTable[0xBCC29F935ED07688UL]; var success = false; - var ptr_unkVariableName = MemoryUtils.StringToHGlobalUtf8(_unkVariableName); - fn__setVariableOnSynchSceneAudio(&success, ptr_unkVariableName, _value); - Marshal.FreeHGlobal(ptr_unkVariableName); + var ptr_variableName = MemoryUtils.StringToHGlobalUtf8(_variableName); + fn__setVariableOnSynchSceneAudio(&success, ptr_variableName, _value); + Marshal.FreeHGlobal(ptr_variableName); if (!success) throw new Exception("Native execution failed"); } } @@ -40463,6 +41047,17 @@ public void EnableStallWarningSounds(uint _vehicle, bool _toggle) } } + public void EnableDragRaceStationaryWarningSounds(IVehicle vehicle, bool enable) => EnableDragRaceStationaryWarningSounds(vehicle.ScriptId, enable); + public void EnableDragRaceStationaryWarningSounds(uint _vehicle, bool _enable) + { + unsafe { + if (fn__enableDragRaceStationaryWarningSounds == null) fn__enableDragRaceStationaryWarningSounds = (delegate* unmanaged[Cdecl]) funcTable[0xBEFB80290414FD4FUL]; + var success = false; + fn__enableDragRaceStationaryWarningSounds(&success, _vehicle, (byte) (_enable ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + } + } + public bool IsGameInControlOfMusic() { unsafe { @@ -40576,16 +41171,16 @@ public bool IsAudioSceneActive(string _scene) } } - public void SetAudioSceneVariable(string _scene, string _unkVariable, float _value) + public void SetAudioSceneVariable(string _scene, string _variable, float _value) { unsafe { if (fn__setAudioSceneVariable == null) fn__setAudioSceneVariable = (delegate* unmanaged[Cdecl]) funcTable[0xEF21A9EF089A2668UL]; var success = false; var ptr_scene = MemoryUtils.StringToHGlobalUtf8(_scene); - var ptr_unkVariable = MemoryUtils.StringToHGlobalUtf8(_unkVariable); - fn__setAudioSceneVariable(&success, ptr_scene, ptr_unkVariable, _value); + var ptr_variable = MemoryUtils.StringToHGlobalUtf8(_variable); + fn__setAudioSceneVariable(&success, ptr_scene, ptr_variable, _value); Marshal.FreeHGlobal(ptr_scene); - Marshal.FreeHGlobal(ptr_unkVariable); + Marshal.FreeHGlobal(ptr_variable); if (!success) throw new Exception("Native execution failed"); } } @@ -41766,6 +42361,16 @@ public void SetCamDofMaxNearInFocusDistanceBlendLevel(int _camera, float _p1) } } + public void SetCamDofShouldKeepLookAtTargetInFocus(int _camera, bool _state) + { + unsafe { + if (fn__setCamDofShouldKeepLookAtTargetInFocus == null) fn__setCamDofShouldKeepLookAtTargetInFocus = (delegate* unmanaged[Cdecl]) funcTable[0x7CF3AF51DCFE4108UL]; + var success = false; + fn__setCamDofShouldKeepLookAtTargetInFocus(&success, _camera, (byte) (_state ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + } + } + public void AttachCamToEntity(int cam, IEntity entity, float xOffset, float yOffset, float zOffset, bool isRelative) => AttachCamToEntity(cam, entity.ScriptId, xOffset, yOffset, zOffset, isRelative); public void AttachCamToEntity(int _cam, uint _entity, float _xOffset, float _yOffset, float _zOffset, bool _isRelative) { @@ -42883,6 +43488,28 @@ public void SetThirdPersonCamOrbitDistanceLimitsThisUpdate(float _p0, float _dis } } + public float GetThirdPersonCamMinOrbitDistanceSpring() + { + unsafe { + if (fn__getThirdPersonCamMinOrbitDistanceSpring == null) fn__getThirdPersonCamMinOrbitDistanceSpring = (delegate* unmanaged[Cdecl]) funcTable[0xBC456FB703431785UL]; + var success = false; + var result = fn__getThirdPersonCamMinOrbitDistanceSpring(&success); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + + public float GetThirdPersonCamMaxOrbitDistanceSpring() + { + unsafe { + if (fn__getThirdPersonCamMaxOrbitDistanceSpring == null) fn__getThirdPersonCamMaxOrbitDistanceSpring = (delegate* unmanaged[Cdecl]) funcTable[0xD4592A16D36673EDUL]; + var success = false; + var result = fn__getThirdPersonCamMaxOrbitDistanceSpring(&success); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + public void SetInVehicleCamStateThisUpdate(IVehicle p0, int p1) => SetInVehicleCamStateThisUpdate(p0.ScriptId, p1); public void SetInVehicleCamStateThisUpdate(uint _p0, int _p1) { @@ -44341,6 +44968,17 @@ public int GetCutsceneEndTime() } } + public int GetCutscenePlayDuration() + { + unsafe { + if (fn__getCutscenePlayDuration == null) fn__getCutscenePlayDuration = (delegate* unmanaged[Cdecl]) funcTable[0x5D583F71C901F2A3UL]; + var success = false; + var result = fn__getCutscenePlayDuration(&success); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + public bool WasCutsceneSkipped() { unsafe { @@ -45920,6 +46558,18 @@ public bool HasEntityCollidedWithAnything(uint _entity) } } + public uint GetLastEntityHitByEntity(IEntity entity) => GetLastEntityHitByEntity(entity.ScriptId); + public uint GetLastEntityHitByEntity(uint _entity) + { + unsafe { + if (fn__getLastEntityHitByEntity == null) fn__getLastEntityHitByEntity = (delegate* unmanaged[Cdecl]) funcTable[0xA75EE4F689B85391UL]; + var success = false; + var result = fn__getLastEntityHitByEntity(&success, _entity); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + public uint GetLastMaterialHitByEntity(IEntity entity) => GetLastMaterialHitByEntity(entity.ScriptId); public uint GetLastMaterialHitByEntity(uint _entity) { @@ -46403,6 +47053,18 @@ public uint GetNearestPlayerToEntityOnTeam(uint _entity, int _team) } } + public int GetNearestParticipantToEntity(IEntity entity) => GetNearestParticipantToEntity(entity.ScriptId); + public int GetNearestParticipantToEntity(uint _entity) + { + unsafe { + if (fn__getNearestParticipantToEntity == null) fn__getNearestParticipantToEntity = (delegate* unmanaged[Cdecl]) funcTable[0xFFBD7052D65BE0FFUL]; + var success = false; + var result = fn__getNearestParticipantToEntity(&success, _entity); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + public int GetEntityType(IEntity entity) => GetEntityType(entity.ScriptId); public int GetEntityType(uint _entity) { @@ -46894,6 +47556,19 @@ public void AttachEntityToEntityPhysically(uint _entity1, uint _entity2, int _bo } } + public void AttachEntityToEntityPhysicallyOverrideInverseMass(IEntity firstEntityIndex, uint secondEntityIndex, int firstEntityBoneIndex, int secondEntityBoneIndex, float secondEntityOffsetX, float secondEntityOffsetY, float secondEntityOffsetZ, float firstEntityOffsetX, float firstEntityOffsetY, float firstEntityOffsetZ, float vecRotationX, float vecRotationY, float vecRotationZ, float physicalStrength, bool constrainRotation, bool doInitialWarp, bool collideWithEntity, bool addInitialSeperation, int rotOrder, float invMassScaleA, float invMassScaleB) => AttachEntityToEntityPhysicallyOverrideInverseMass(firstEntityIndex.ScriptId, secondEntityIndex, firstEntityBoneIndex, secondEntityBoneIndex, secondEntityOffsetX, secondEntityOffsetY, secondEntityOffsetZ, firstEntityOffsetX, firstEntityOffsetY, firstEntityOffsetZ, vecRotationX, vecRotationY, vecRotationZ, physicalStrength, constrainRotation, doInitialWarp, collideWithEntity, addInitialSeperation, rotOrder, invMassScaleA, invMassScaleB); + public void AttachEntityToEntityPhysicallyOverrideInverseMass(uint firstEntityIndex, IEntity secondEntityIndex, int firstEntityBoneIndex, int secondEntityBoneIndex, float secondEntityOffsetX, float secondEntityOffsetY, float secondEntityOffsetZ, float firstEntityOffsetX, float firstEntityOffsetY, float firstEntityOffsetZ, float vecRotationX, float vecRotationY, float vecRotationZ, float physicalStrength, bool constrainRotation, bool doInitialWarp, bool collideWithEntity, bool addInitialSeperation, int rotOrder, float invMassScaleA, float invMassScaleB) => AttachEntityToEntityPhysicallyOverrideInverseMass(firstEntityIndex, secondEntityIndex.ScriptId, firstEntityBoneIndex, secondEntityBoneIndex, secondEntityOffsetX, secondEntityOffsetY, secondEntityOffsetZ, firstEntityOffsetX, firstEntityOffsetY, firstEntityOffsetZ, vecRotationX, vecRotationY, vecRotationZ, physicalStrength, constrainRotation, doInitialWarp, collideWithEntity, addInitialSeperation, rotOrder, invMassScaleA, invMassScaleB); + public void AttachEntityToEntityPhysicallyOverrideInverseMass(IEntity firstEntityIndex, IEntity secondEntityIndex, int firstEntityBoneIndex, int secondEntityBoneIndex, float secondEntityOffsetX, float secondEntityOffsetY, float secondEntityOffsetZ, float firstEntityOffsetX, float firstEntityOffsetY, float firstEntityOffsetZ, float vecRotationX, float vecRotationY, float vecRotationZ, float physicalStrength, bool constrainRotation, bool doInitialWarp, bool collideWithEntity, bool addInitialSeperation, int rotOrder, float invMassScaleA, float invMassScaleB) => AttachEntityToEntityPhysicallyOverrideInverseMass(firstEntityIndex.ScriptId, secondEntityIndex.ScriptId, firstEntityBoneIndex, secondEntityBoneIndex, secondEntityOffsetX, secondEntityOffsetY, secondEntityOffsetZ, firstEntityOffsetX, firstEntityOffsetY, firstEntityOffsetZ, vecRotationX, vecRotationY, vecRotationZ, physicalStrength, constrainRotation, doInitialWarp, collideWithEntity, addInitialSeperation, rotOrder, invMassScaleA, invMassScaleB); + public void AttachEntityToEntityPhysicallyOverrideInverseMass(uint _firstEntityIndex, uint _secondEntityIndex, int _firstEntityBoneIndex, int _secondEntityBoneIndex, float _secondEntityOffsetX, float _secondEntityOffsetY, float _secondEntityOffsetZ, float _firstEntityOffsetX, float _firstEntityOffsetY, float _firstEntityOffsetZ, float _vecRotationX, float _vecRotationY, float _vecRotationZ, float _physicalStrength, bool _constrainRotation, bool _doInitialWarp, bool _collideWithEntity, bool _addInitialSeperation, int _rotOrder, float _invMassScaleA, float _invMassScaleB) + { + unsafe { + if (fn__attachEntityToEntityPhysicallyOverrideInverseMass == null) fn__attachEntityToEntityPhysicallyOverrideInverseMass = (delegate* unmanaged[Cdecl]) funcTable[0x168A09D1B25B0BA4UL]; + var success = false; + fn__attachEntityToEntityPhysicallyOverrideInverseMass(&success, _firstEntityIndex, _secondEntityIndex, _firstEntityBoneIndex, _secondEntityBoneIndex, _secondEntityOffsetX, _secondEntityOffsetY, _secondEntityOffsetZ, _firstEntityOffsetX, _firstEntityOffsetY, _firstEntityOffsetZ, _vecRotationX, _vecRotationY, _vecRotationZ, _physicalStrength, (byte) (_constrainRotation ? 1 : 0), (byte) (_doInitialWarp ? 1 : 0), (byte) (_collideWithEntity ? 1 : 0), (byte) (_addInitialSeperation ? 1 : 0), _rotOrder, _invMassScaleA, _invMassScaleB); + if (!success) throw new Exception("Native execution failed"); + } + } + public void ProcessEntityAttachments(IEntity entity) => ProcessEntityAttachments(entity.ScriptId); public void ProcessEntityAttachments(uint _entity) { @@ -47328,13 +48003,15 @@ public void SetEntityHeading(uint _entity, float _heading) } } - public void SetEntityHealth(IEntity entity, int health, int p2) => SetEntityHealth(entity.ScriptId, health, p2); - public void SetEntityHealth(uint _entity, int _health, int _p2) + public void SetEntityHealth(IEntity entity, int health, uint instigator, uint weaponType) => SetEntityHealth(entity.ScriptId, health, instigator, weaponType); + public void SetEntityHealth(uint entity, int health, IEntity instigator, uint weaponType) => SetEntityHealth(entity, health, instigator.ScriptId, weaponType); + public void SetEntityHealth(IEntity entity, int health, IEntity instigator, uint weaponType) => SetEntityHealth(entity.ScriptId, health, instigator.ScriptId, weaponType); + public void SetEntityHealth(uint _entity, int _health, uint _instigator, uint _weaponType) { unsafe { - if (fn__setEntityHealth == null) fn__setEntityHealth = (delegate* unmanaged[Cdecl]) funcTable[0x6B76DC1F3AE6E6A3UL]; + if (fn__setEntityHealth == null) fn__setEntityHealth = (delegate* unmanaged[Cdecl]) funcTable[0x6B76DC1F3AE6E6A3UL]; var success = false; - fn__setEntityHealth(&success, _entity, _health, _p2); + fn__setEntityHealth(&success, _entity, _health, _instigator, _weaponType); if (!success) throw new Exception("Native execution failed"); } } @@ -47884,6 +48561,18 @@ public Vector3 GetEntityBoneObjectRotation(uint _entity, int _boneIndex) } } + public Vector3 GetEntityBoneObjectPostion(IEntity entity, int boneIndex) => GetEntityBoneObjectPostion(entity.ScriptId, boneIndex); + public Vector3 GetEntityBoneObjectPostion(uint _entity, int _boneIndex) + { + unsafe { + if (fn__getEntityBoneObjectPostion == null) fn__getEntityBoneObjectPostion = (delegate* unmanaged[Cdecl]) funcTable[0xCF1247CC86961FD6UL]; + var success = false; + var result = fn__getEntityBoneObjectPostion(&success, _entity, _boneIndex); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + public int GetEntityBoneCount(IEntity entity) => GetEntityBoneCount(entity.ScriptId); public int GetEntityBoneCount(uint _entity) { @@ -48278,12 +48967,12 @@ public uint GetHashNameForProp(uint _entity, int _componentId, int _propIndex, i } } - public int GetItemVariantsCount(uint _componentHash) + public int GetShopPedApparelVariantComponentCount(uint _componentHash) { unsafe { - if (fn__getItemVariantsCount == null) fn__getItemVariantsCount = (delegate* unmanaged[Cdecl]) funcTable[0xC17AD0E5752BECDAUL]; + if (fn__getShopPedApparelVariantComponentCount == null) fn__getShopPedApparelVariantComponentCount = (delegate* unmanaged[Cdecl]) funcTable[0xC17AD0E5752BECDAUL]; var success = false; - var result = fn__getItemVariantsCount(&success, _componentHash); + var result = fn__getShopPedApparelVariantComponentCount(&success, _componentHash); if (!success) throw new Exception("Native execution failed"); return result; } @@ -48300,7 +48989,7 @@ public int GetShopPedApparelVariantPropCount(uint _propHash) } } - public void GetVariantComponent(uint _componentHash, int _unkVariantComponentIndex, ref uint _nameHash, ref int _enumValue, ref int _componentType) + public void GetVariantComponent(uint _componentHash, int _variantComponentIndex, ref uint _nameHash, ref int _enumValue, ref int _componentType) { unsafe { if (fn__getVariantComponent == null) fn__getVariantComponent = (delegate* unmanaged[Cdecl]) funcTable[0x6E11F282F11863B6UL]; @@ -48308,7 +48997,7 @@ public void GetVariantComponent(uint _componentHash, int _unkVariantComponentInd var ref_nameHash = _nameHash; var ref_enumValue = _enumValue; var ref_componentType = _componentType; - fn__getVariantComponent(&success, _componentHash, _unkVariantComponentIndex, &ref_nameHash, &ref_enumValue, &ref_componentType); + fn__getVariantComponent(&success, _componentHash, _variantComponentIndex, &ref_nameHash, &ref_enumValue, &ref_componentType); _nameHash = ref_nameHash; _enumValue = ref_enumValue; _componentType = ref_componentType; @@ -48316,7 +49005,7 @@ public void GetVariantComponent(uint _componentHash, int _unkVariantComponentInd } } - public void GetVariantProp(uint _componentHash, int _unkVariantPropIndex, ref uint _nameHash, ref int _enumValue, ref int _anchorPoint) + public void GetVariantProp(uint _componentHash, int _variantPropIndex, ref uint _nameHash, ref int _enumValue, ref int _anchorPoint) { unsafe { if (fn__getVariantProp == null) fn__getVariantProp = (delegate* unmanaged[Cdecl]) funcTable[0xD81B7F27BC773E66UL]; @@ -48324,7 +49013,7 @@ public void GetVariantProp(uint _componentHash, int _unkVariantPropIndex, ref ui var ref_nameHash = _nameHash; var ref_enumValue = _enumValue; var ref_anchorPoint = _anchorPoint; - fn__getVariantProp(&success, _componentHash, _unkVariantPropIndex, &ref_nameHash, &ref_enumValue, &ref_anchorPoint); + fn__getVariantProp(&success, _componentHash, _variantPropIndex, &ref_nameHash, &ref_enumValue, &ref_anchorPoint); _nameHash = ref_nameHash; _enumValue = ref_enumValue; _anchorPoint = ref_anchorPoint; @@ -48386,12 +49075,12 @@ public void GetForcedProp(uint _componentHash, int _forcedPropIndex, ref uint _n } } - public bool IsTagRestricted(uint _componentHash, uint _restrictionTagHash, int _componentId) + public bool DoesShopPedApparelHaveRestrictionTag(uint _componentHash, uint _restrictionTagHash, int _componentId) { unsafe { - if (fn__isTagRestricted == null) fn__isTagRestricted = (delegate* unmanaged[Cdecl]) funcTable[0x341DE7ED1D2A1BFDUL]; + if (fn__doesShopPedApparelHaveRestrictionTag == null) fn__doesShopPedApparelHaveRestrictionTag = (delegate* unmanaged[Cdecl]) funcTable[0x341DE7ED1D2A1BFDUL]; var success = false; - var result = fn__isTagRestricted(&success, _componentHash, _restrictionTagHash, _componentId); + var result = fn__doesShopPedApparelHaveRestrictionTag(&success, _componentHash, _restrictionTagHash, _componentId); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -48467,26 +49156,26 @@ public int GetShopPedOutfitLocate(int _p0) } } - public bool GetShopPedOutfitPropVariant(uint _outfitHash, int _unkVariantIndex, ref int _outPropVariant) + public bool GetShopPedOutfitPropVariant(uint _outfitHash, int _variantIndex, ref int _outPropVariant) { unsafe { if (fn__getShopPedOutfitPropVariant == null) fn__getShopPedOutfitPropVariant = (delegate* unmanaged[Cdecl]) funcTable[0xA9F9C2E0FDE11CBBUL]; var success = false; var ref_outPropVariant = _outPropVariant; - var result = fn__getShopPedOutfitPropVariant(&success, _outfitHash, _unkVariantIndex, &ref_outPropVariant); + var result = fn__getShopPedOutfitPropVariant(&success, _outfitHash, _variantIndex, &ref_outPropVariant); _outPropVariant = ref_outPropVariant; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } - public bool GetShopPedOutfitComponentVariant(uint _outfitHash, int _unkVariantIndex, ref int _outComponentVariant) + public bool GetShopPedOutfitComponentVariant(uint _outfitHash, int _variantIndex, ref int _outComponentVariant) { unsafe { if (fn__getShopPedOutfitComponentVariant == null) fn__getShopPedOutfitComponentVariant = (delegate* unmanaged[Cdecl]) funcTable[0x19F2A026EDF0013FUL]; var success = false; var ref_outComponentVariant = _outComponentVariant; - var result = fn__getShopPedOutfitComponentVariant(&success, _outfitHash, _unkVariantIndex, &ref_outComponentVariant); + var result = fn__getShopPedOutfitComponentVariant(&success, _outfitHash, _variantIndex, &ref_outComponentVariant); _outComponentVariant = ref_outComponentVariant; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -50407,6 +51096,16 @@ public void UseVehicleTargetingReticule(int _p0) } } + public void UseVehicleTargetingReticuleOnVehicles(bool _enable) + { + unsafe { + if (fn__useVehicleTargetingReticuleOnVehicles == null) fn__useVehicleTargetingReticuleOnVehicles = (delegate* unmanaged[Cdecl]) funcTable[0x1BC0EA2912708625UL]; + var success = false; + fn__useVehicleTargetingReticuleOnVehicles(&success, (byte) (_enable ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + } + } + public void AddValidVehicleHitHash(int _p0) { unsafe { @@ -50746,6 +51445,16 @@ public void SetTextJustification(int _justifyType) } } + public void SetTextLineHeightMult(float _lineHeightMult) + { + unsafe { + if (fn__setTextLineHeightMult == null) fn__setTextLineHeightMult = (delegate* unmanaged[Cdecl]) funcTable[0x9F4624F76E6953D1UL]; + var success = false; + fn__setTextLineHeightMult(&success, _lineHeightMult); + if (!success) throw new Exception("Native execution failed"); + } + } + public void SetTextWrap(float _start, float _end) { unsafe { @@ -51722,6 +52431,16 @@ public void ShowGoldTickOnBlip(int _blip, bool _toggle) } } + public void ShowForSaleIconOnBlip(int _blip, bool _toggle) + { + unsafe { + if (fn__showForSaleIconOnBlip == null) fn__showForSaleIconOnBlip = (delegate* unmanaged[Cdecl]) funcTable[0x19BD6E3C0E16A8FAUL]; + var success = false; + fn__showForSaleIconOnBlip(&success, _blip, (byte) (_toggle ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + } + } + public void ShowHeadingIndicatorOnBlip(int _blip, bool _toggle) { unsafe { @@ -51935,6 +52654,16 @@ public void ClearFakeConeArray() } } + public void SetBlipGpsRouteDisplayDistance(int _blip, int _blipChangeParam46, bool _blipChangeParam47) + { + unsafe { + if (fn__setBlipGpsRouteDisplayDistance == null) fn__setBlipGpsRouteDisplayDistance = (delegate* unmanaged[Cdecl]) funcTable[0x25D984CFB64ED6DEUL]; + var success = false; + fn__setBlipGpsRouteDisplayDistance(&success, _blip, _blipChangeParam46, (byte) (_blipChangeParam47 ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + } + } + public bool SetMinimapComponent(int _componentId, bool _toggle, int _overrideColor) { unsafe { @@ -52098,6 +52827,16 @@ public void SetUseIslandMap(bool _toggle) } } + public void SetPauseExteriorRenderingWhileInInterior() + { + unsafe { + if (fn__setPauseExteriorRenderingWhileInInterior == null) fn__setPauseExteriorRenderingWhileInInterior = (delegate* unmanaged[Cdecl]) funcTable[0x35CCE12EAECB4A51UL]; + var success = false; + fn__setPauseExteriorRenderingWhileInInterior(&success); + if (!success) throw new Exception("Native execution failed"); + } + } + public void DontTiltMinimapThisFrame() { unsafe { @@ -52108,6 +52847,16 @@ public void DontTiltMinimapThisFrame() } } + public void DontZoomMinimapWhenRunningThisFrame() + { + unsafe { + if (fn__dontZoomMinimapWhenRunningThisFrame == null) fn__dontZoomMinimapWhenRunningThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x89DA85D949CE57A0UL]; + var success = false; + fn__dontZoomMinimapWhenRunningThisFrame(&success); + if (!success) throw new Exception("Native execution failed"); + } + } + public void DontZoomMinimapWhenSnipingThisFrame() { unsafe { @@ -52321,12 +53070,12 @@ public void HudForceSpecialVehicleWeaponWheel() } } - public void BlockWeaponWheelThisFrame() + public void HudSuppressWeaponWheelResultsThisFrame() { unsafe { - if (fn__blockWeaponWheelThisFrame == null) fn__blockWeaponWheelThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x0AFC4AF510774B47UL]; + if (fn__hudSuppressWeaponWheelResultsThisFrame == null) fn__hudSuppressWeaponWheelResultsThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x0AFC4AF510774B47UL]; var success = false; - fn__blockWeaponWheelThisFrame(&success); + fn__hudSuppressWeaponWheelResultsThisFrame(&success); if (!success) throw new Exception("Native execution failed"); } } @@ -52930,14 +53679,14 @@ public void ClearReminderMessage() } } - public int GetScreenCoordFromWorldCoord2(float _worldX, float _worldY, float _worldZ, ref float _screenX, ref float _screenY) + public int GetHudScreenPositionFromWorldPosition(float _worldX, float _worldY, float _worldZ, ref float _screenX, ref float _screenY) { unsafe { - if (fn__getScreenCoordFromWorldCoord2 == null) fn__getScreenCoordFromWorldCoord2 = (delegate* unmanaged[Cdecl]) funcTable[0xF9904D11F1ACBEC3UL]; + if (fn__getHudScreenPositionFromWorldPosition == null) fn__getHudScreenPositionFromWorldPosition = (delegate* unmanaged[Cdecl]) funcTable[0xF9904D11F1ACBEC3UL]; var success = false; var ref_screenX = _screenX; var ref_screenY = _screenY; - var result = fn__getScreenCoordFromWorldCoord2(&success, _worldX, _worldY, _worldZ, &ref_screenX, &ref_screenY); + var result = fn__getHudScreenPositionFromWorldPosition(&success, _worldX, _worldY, _worldZ, &ref_screenX, &ref_screenY); _screenX = ref_screenX; _screenY = ref_screenY; if (!success) throw new Exception("Native execution failed"); @@ -54165,12 +54914,12 @@ public bool IsOnlinePoliciesMenuActive() } } - public void OpenSocialClubMenu() + public void OpenSocialClubMenu(uint _menu) { unsafe { - if (fn__openSocialClubMenu == null) fn__openSocialClubMenu = (delegate* unmanaged[Cdecl]) funcTable[0x75D3691713C3B05AUL]; + if (fn__openSocialClubMenu == null) fn__openSocialClubMenu = (delegate* unmanaged[Cdecl]) funcTable[0x75D3691713C3B05AUL]; var success = false; - fn__openSocialClubMenu(&success); + fn__openSocialClubMenu(&success, _menu); if (!success) throw new Exception("Native execution failed"); } } @@ -56448,6 +57197,17 @@ public bool HaveCreditsReachedEnd() } } + public bool AreCreditsRunning() + { + unsafe { + if (fn__areCreditsRunning == null) fn__areCreditsRunning = (delegate* unmanaged[Cdecl]) funcTable[0xD19C0826DC20CF1CUL]; + var success = false; + var result = fn__areCreditsRunning(&success); + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + public void TerminateAllScriptsWithThisName(string _scriptName) { unsafe { @@ -57129,6 +57889,19 @@ public bool GetCoordsOfProjectileTypeInArea(float _x1, float _y1, float _z1, flo } } + public bool GetCoordsOfProjectileTypeInAngledArea(float _vecAngledAreaPoint1X, float _vecAngledAreaPoint1Y, float _vecAngledAreaPoint1Z, float _vecAngledAreaPoint2X, float _vecAngledAreaPoint2Y, float _vecAngledAreaPoint2Z, float _distanceOfOppositeFace, uint _weaponType, ref Vector3 _positionOut, bool _bIsPlayer) + { + unsafe { + if (fn__getCoordsOfProjectileTypeInAngledArea == null) fn__getCoordsOfProjectileTypeInAngledArea = (delegate* unmanaged[Cdecl]) funcTable[0x3DA8C28346B62CEDUL]; + var success = false; + var ref_positionOut = _positionOut; + var result = fn__getCoordsOfProjectileTypeInAngledArea(&success, _vecAngledAreaPoint1X, _vecAngledAreaPoint1Y, _vecAngledAreaPoint1Z, _vecAngledAreaPoint2X, _vecAngledAreaPoint2Y, _vecAngledAreaPoint2Z, _distanceOfOppositeFace, _weaponType, &ref_positionOut, (byte) (_bIsPlayer ? 1 : 0)); + _positionOut = ref_positionOut; + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + public bool GetCoordsOfProjectileTypeWithinDistance(IPlayer ped, uint weaponHash, float distance, ref Vector3 outCoords, bool p4) => GetCoordsOfProjectileTypeWithinDistance(ped.ScriptId, weaponHash, distance, ref outCoords, p4); public bool GetCoordsOfProjectileTypeWithinDistance(uint _ped, uint _weaponHash, float _distance, ref Vector3 _outCoords, bool _p4) { @@ -58875,6 +59648,27 @@ public int GetContentIdIndex(uint _contentId) } } + public void SetContentPropType(uint _model, int _type) + { + unsafe { + if (fn__setContentPropType == null) fn__setContentPropType = (delegate* unmanaged[Cdecl]) funcTable[0xBA4583AF4C678A9BUL]; + var success = false; + fn__setContentPropType(&success, _model, _type); + if (!success) throw new Exception("Native execution failed"); + } + } + + public int GetContentPropType(uint _model) + { + unsafe { + if (fn__getContentPropType == null) fn__getContentPropType = (delegate* unmanaged[Cdecl]) funcTable[0x8BAF8AD59F47AAFCUL]; + var success = false; + var result = fn__getContentPropType(&success, _model); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + public void CreateMobilePhone(int _phoneType) { unsafe { @@ -59370,6 +60164,16 @@ public void NetworkEarnFromPickup(int _amount) } } + public void NetworkEarnFromCashingOut(int _amount) + { + unsafe { + if (fn__networkEarnFromCashingOut == null) fn__networkEarnFromCashingOut = (delegate* unmanaged[Cdecl]) funcTable[0x718FBBF67414FA36UL]; + var success = false; + fn__networkEarnFromCashingOut(&success, _amount); + if (!success) throw new Exception("Native execution failed"); + } + } + public void NetworkEarnFromGangattackPickup(int _amount) { unsafe { @@ -59546,16 +60350,6 @@ public void NetworkEarnFromNotBadsport(int _amount) } } - public void NetworkEarnFromRockstar(int _amount) - { - unsafe { - if (fn__networkEarnFromRockstar == null) fn__networkEarnFromRockstar = (delegate* unmanaged[Cdecl]) funcTable[0x02CE1D6AC0FC73EAUL]; - var success = false; - fn__networkEarnFromRockstar(&success, _amount); - if (!success) throw new Exception("Native execution failed"); - } - } - public void NetworkEarnFromVehicle(int _p0, int _p1, int _p2, int _p3, int _p4, int _p5, int _p6, int _p7) { unsafe { @@ -59616,6 +60410,16 @@ public void NetworkEarnFromJobBonus(int _p0, ref int _p1, ref int _p2) } } + public void NetworkEarnFromCriminalMastermind(int _p0, int _p1, int _p2) + { + unsafe { + if (fn__networkEarnFromCriminalMastermind == null) fn__networkEarnFromCriminalMastermind = (delegate* unmanaged[Cdecl]) funcTable[0xFA009A62990671D4UL]; + var success = false; + fn__networkEarnFromCriminalMastermind(&success, _p0, _p1, _p2); + if (!success) throw new Exception("Native execution failed"); + } + } + public void NetworkEarnHeistAward(int _p0, int _p1, int _p2) { unsafe { @@ -59686,22 +60490,22 @@ public void NetworkEarnFromContraband(int _amount, int _p1) } } - public void NetworkEarnFromDestroyingContraband(int _p0) + public void NetworkEarnFromDestroyingContraband(int _p0, int _p1, int _p2) { unsafe { - if (fn__networkEarnFromDestroyingContraband == null) fn__networkEarnFromDestroyingContraband = (delegate* unmanaged[Cdecl]) funcTable[0x84C0116D012E8FC2UL]; + if (fn__networkEarnFromDestroyingContraband == null) fn__networkEarnFromDestroyingContraband = (delegate* unmanaged[Cdecl]) funcTable[0x84C0116D012E8FC2UL]; var success = false; - fn__networkEarnFromDestroyingContraband(&success, _p0); + fn__networkEarnFromDestroyingContraband(&success, _p0, _p1, _p2); if (!success) throw new Exception("Native execution failed"); } } - public void NetworkEarnFromSmugglerWork(int _p0, int _p1, int _p2, int _p3, int _p4) + public void NetworkEarnFromSmugglerWork(int _p0, int _p1, int _p2, int _p3, int _p4, int _p5) { unsafe { - if (fn__networkEarnFromSmugglerWork == null) fn__networkEarnFromSmugglerWork = (delegate* unmanaged[Cdecl]) funcTable[0x6B7E4FB50D5F3D65UL]; + if (fn__networkEarnFromSmugglerWork == null) fn__networkEarnFromSmugglerWork = (delegate* unmanaged[Cdecl]) funcTable[0x6B7E4FB50D5F3D65UL]; var success = false; - fn__networkEarnFromSmugglerWork(&success, _p0, _p1, _p2, _p3, _p4); + fn__networkEarnFromSmugglerWork(&success, _p0, _p1, _p2, _p3, _p4, _p5); if (!success) throw new Exception("Native execution failed"); } } @@ -59946,12 +60750,12 @@ public void NetworkBuyAirstrike(int _cost, bool _p1, bool _p2, int _p3) } } - public void NetworkBuyBackupGang(int _p0, int _p1, bool _p2, bool _p3) + public void NetworkBuyBackupGang(int _p0, int _p1, bool _p2, bool _p3, int _npcProvider) { unsafe { - if (fn__networkBuyBackupGang == null) fn__networkBuyBackupGang = (delegate* unmanaged[Cdecl]) funcTable[0xA3EDDAA42411D3B9UL]; + if (fn__networkBuyBackupGang == null) fn__networkBuyBackupGang = (delegate* unmanaged[Cdecl]) funcTable[0xA3EDDAA42411D3B9UL]; var success = false; - fn__networkBuyBackupGang(&success, _p0, _p1, (byte) (_p2 ? 1 : 0), (byte) (_p3 ? 1 : 0)); + fn__networkBuyBackupGang(&success, _p0, _p1, (byte) (_p2 ? 1 : 0), (byte) (_p3 ? 1 : 0), _npcProvider); if (!success) throw new Exception("Native execution failed"); } } @@ -60263,6 +61067,16 @@ public string ProcessCashGift(ref int _p0, ref int _p1, string _p2) } } + public void NetworkSpentMoveSubmarine(int _p0, int _p1, int _p2) + { + unsafe { + if (fn__networkSpentMoveSubmarine == null) fn__networkSpentMoveSubmarine = (delegate* unmanaged[Cdecl]) funcTable[0xCD4D66B43B1DD28DUL]; + var success = false; + fn__networkSpentMoveSubmarine(&success, _p0, _p1, _p2); + if (!success) throw new Exception("Native execution failed"); + } + } + public void NetworkSpentPlayerHealthcare(int _p0, int _p1, bool _p2, bool _p3) { unsafe { @@ -60387,12 +61201,12 @@ public void NetworkSpentMoveYacht(int _amount, bool _p1, bool _p2) } } - public void NetworkSpentRenameOrganization(int _p0, int _p1, int _p2) + public void NetworkSpentRenameOrganization(int _p0, int _p1, int _p2, int _p3) { unsafe { - if (fn__networkSpentRenameOrganization == null) fn__networkSpentRenameOrganization = (delegate* unmanaged[Cdecl]) funcTable[0xFC4EE00A7B3BFB76UL]; + if (fn__networkSpentRenameOrganization == null) fn__networkSpentRenameOrganization = (delegate* unmanaged[Cdecl]) funcTable[0xFC4EE00A7B3BFB76UL]; var success = false; - fn__networkSpentRenameOrganization(&success, _p0, _p1, _p2); + fn__networkSpentRenameOrganization(&success, _p0, _p1, _p2, _p3); if (!success) throw new Exception("Native execution failed"); } } @@ -60467,22 +61281,22 @@ public void NetworkSpentPaHeliPickup(int _p0, int _p1, int _p2, int _p3) } } - public void NetworkSpentPurchaseOfficeProperty(int _p0, int _p1, int _p2, int _p3) + public void NetworkSpentPurchaseOfficeProperty(int _p0, int _p1, int _p2, int _p3, int _p4) { unsafe { - if (fn__networkSpentPurchaseOfficeProperty == null) fn__networkSpentPurchaseOfficeProperty = (delegate* unmanaged[Cdecl]) funcTable[0x69EF772B192614C1UL]; + if (fn__networkSpentPurchaseOfficeProperty == null) fn__networkSpentPurchaseOfficeProperty = (delegate* unmanaged[Cdecl]) funcTable[0x69EF772B192614C1UL]; var success = false; - fn__networkSpentPurchaseOfficeProperty(&success, _p0, _p1, _p2, _p3); + fn__networkSpentPurchaseOfficeProperty(&success, _p0, _p1, _p2, _p3, _p4); if (!success) throw new Exception("Native execution failed"); } } - public void NetworkSpentUpgradeOfficeProperty(int _p0, int _p1, int _p2, int _p3) + public void NetworkSpentUpgradeOfficeProperty(int _p0, int _p1, int _p2, int _p3, int _p4) { unsafe { - if (fn__networkSpentUpgradeOfficeProperty == null) fn__networkSpentUpgradeOfficeProperty = (delegate* unmanaged[Cdecl]) funcTable[0x8E243837643D9583UL]; + if (fn__networkSpentUpgradeOfficeProperty == null) fn__networkSpentUpgradeOfficeProperty = (delegate* unmanaged[Cdecl]) funcTable[0x8E243837643D9583UL]; var success = false; - fn__networkSpentUpgradeOfficeProperty(&success, _p0, _p1, _p2, _p3); + fn__networkSpentUpgradeOfficeProperty(&success, _p0, _p1, _p2, _p3, _p4); if (!success) throw new Exception("Native execution failed"); } } @@ -62198,6 +63012,408 @@ public void NetworkYohanSourceGoods(int _p0, int _p1, int _p2, int _p3) } } + public void NetworkSpendBuyMfgarage(int _p0, int _p1, int _p2, int _p3) + { + unsafe { + if (fn__networkSpendBuyMfgarage == null) fn__networkSpendBuyMfgarage = (delegate* unmanaged[Cdecl]) funcTable[0xA2ED36DCF0FCA413UL]; + var success = false; + fn__networkSpendBuyMfgarage(&success, _p0, _p1, _p2, _p3); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkSpendUpgradeMfgarage(int _p0, int _p1, int _p2, int _p3) + { + unsafe { + if (fn__networkSpendUpgradeMfgarage == null) fn__networkSpendUpgradeMfgarage = (delegate* unmanaged[Cdecl]) funcTable[0xCF8F346DDDC66643UL]; + var success = false; + fn__networkSpendUpgradeMfgarage(&success, _p0, _p1, _p2, _p3); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkSpendBuySupplies(int _p0, bool _p1, bool _p2, int _p3) + { + unsafe { + if (fn__networkSpendBuySupplies == null) fn__networkSpendBuySupplies = (delegate* unmanaged[Cdecl]) funcTable[0xB48185C0CA67B16BUL]; + var success = false; + fn__networkSpendBuySupplies(&success, _p0, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0), _p3); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkSpendBuyAcidLab(int _p0, int _p1, int _p2, int _p3) + { + unsafe { + if (fn__networkSpendBuyAcidLab == null) fn__networkSpendBuyAcidLab = (delegate* unmanaged[Cdecl]) funcTable[0xF1E26A7924327152UL]; + var success = false; + fn__networkSpendBuyAcidLab(&success, _p0, _p1, _p2, _p3); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkSpendUpgradeAcidLabEquipment(int _p0, int _p1, int _p2, int _p3) + { + unsafe { + if (fn__networkSpendUpgradeAcidLabEquipment == null) fn__networkSpendUpgradeAcidLabEquipment = (delegate* unmanaged[Cdecl]) funcTable[0x110EE9D486C23126UL]; + var success = false; + fn__networkSpendUpgradeAcidLabEquipment(&success, _p0, _p1, _p2, _p3); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkSpendUpgradeAcidLabArmor(int _p0, bool _p1, bool _p2, int _p3) + { + unsafe { + if (fn__networkSpendUpgradeAcidLabArmor == null) fn__networkSpendUpgradeAcidLabArmor = (delegate* unmanaged[Cdecl]) funcTable[0xA7D541C9ACD63133UL]; + var success = false; + fn__networkSpendUpgradeAcidLabArmor(&success, _p0, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0), _p3); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkSpendUpgradeAcidLabScoop(int _p0, bool _p1, bool _p2, int _p3) + { + unsafe { + if (fn__networkSpendUpgradeAcidLabScoop == null) fn__networkSpendUpgradeAcidLabScoop = (delegate* unmanaged[Cdecl]) funcTable[0x2940558E05BCC2ECUL]; + var success = false; + fn__networkSpendUpgradeAcidLabScoop(&success, _p0, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0), _p3); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkSpendUpgradeAcidLabMines(int _p0, bool _p1, bool _p2, int _p3) + { + unsafe { + if (fn__networkSpendUpgradeAcidLabMines == null) fn__networkSpendUpgradeAcidLabMines = (delegate* unmanaged[Cdecl]) funcTable[0x4B99AB08C92C54E4UL]; + var success = false; + fn__networkSpendUpgradeAcidLabMines(&success, _p0, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0), _p3); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkSpendRenameAcidLab(int _p0, int _p1, int _p2, int _p3) + { + unsafe { + if (fn__networkSpendRenameAcidLab == null) fn__networkSpendRenameAcidLab = (delegate* unmanaged[Cdecl]) funcTable[0x842B1C5AF61ACDE9UL]; + var success = false; + fn__networkSpendRenameAcidLab(&success, _p0, _p1, _p2, _p3); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkSpendRenameAcidProduct(int _p0, int _p1, int _p2, int _p3) + { + unsafe { + if (fn__networkSpendRenameAcidProduct == null) fn__networkSpendRenameAcidProduct = (delegate* unmanaged[Cdecl]) funcTable[0x446798F7495DD7D8UL]; + var success = false; + fn__networkSpendRenameAcidProduct(&success, _p0, _p1, _p2, _p3); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnAwardJuggaloMission(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnAwardJuggaloMission == null) fn__networkEarnAwardJuggaloMission = (delegate* unmanaged[Cdecl]) funcTable[0xDDF047577F1A02A7UL]; + var success = false; + fn__networkEarnAwardJuggaloMission(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnAwardAcidLab(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnAwardAcidLab == null) fn__networkEarnAwardAcidLab = (delegate* unmanaged[Cdecl]) funcTable[0xD1A8165767AD2D23UL]; + var success = false; + fn__networkEarnAwardAcidLab(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnAwardDailyStash(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnAwardDailyStash == null) fn__networkEarnAwardDailyStash = (delegate* unmanaged[Cdecl]) funcTable[0xC30650FA74A19D02UL]; + var success = false; + fn__networkEarnAwardDailyStash(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnAwardDeadDrop(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnAwardDeadDrop == null) fn__networkEarnAwardDeadDrop = (delegate* unmanaged[Cdecl]) funcTable[0xD01EBAEA1F905EF6UL]; + var success = false; + fn__networkEarnAwardDeadDrop(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnAwardRandomEvent(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnAwardRandomEvent == null) fn__networkEarnAwardRandomEvent = (delegate* unmanaged[Cdecl]) funcTable[0xBEAFBB1B98B7EF55UL]; + var success = false; + fn__networkEarnAwardRandomEvent(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnAwardTaxi(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnAwardTaxi == null) fn__networkEarnAwardTaxi = (delegate* unmanaged[Cdecl]) funcTable[0xA914768AD35CD3A5UL]; + var success = false; + fn__networkEarnAwardTaxi(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnStreetDealer(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnStreetDealer == null) fn__networkEarnStreetDealer = (delegate* unmanaged[Cdecl]) funcTable[0xA81017EE1324FDFEUL]; + var success = false; + fn__networkEarnStreetDealer(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnSellAcid(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnSellAcid == null) fn__networkEarnSellAcid = (delegate* unmanaged[Cdecl]) funcTable[0x79B656937DF6DF5DUL]; + var success = false; + fn__networkEarnSellAcid(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnSetupParticipationAcidLab(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnSetupParticipationAcidLab == null) fn__networkEarnSetupParticipationAcidLab = (delegate* unmanaged[Cdecl]) funcTable[0xE3942D59E8A7F70DUL]; + var success = false; + fn__networkEarnSetupParticipationAcidLab(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnSourceParticipationAcidLab(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnSourceParticipationAcidLab == null) fn__networkEarnSourceParticipationAcidLab = (delegate* unmanaged[Cdecl]) funcTable[0x136F11B5DF1B304DUL]; + var success = false; + fn__networkEarnSourceParticipationAcidLab(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnSellParticipationAcidLab(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnSellParticipationAcidLab == null) fn__networkEarnSellParticipationAcidLab = (delegate* unmanaged[Cdecl]) funcTable[0xCA3EF9B09A8D76B4UL]; + var success = false; + fn__networkEarnSellParticipationAcidLab(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnJuggaloStoryMission(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnJuggaloStoryMission == null) fn__networkEarnJuggaloStoryMission = (delegate* unmanaged[Cdecl]) funcTable[0xE01D10BA8CD53621UL]; + var success = false; + fn__networkEarnJuggaloStoryMission(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnJuggaloStoryMissionParticipation(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnJuggaloStoryMissionParticipation == null) fn__networkEarnJuggaloStoryMissionParticipation = (delegate* unmanaged[Cdecl]) funcTable[0x40FF6CCCC476185CUL]; + var success = false; + fn__networkEarnJuggaloStoryMissionParticipation(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnFooliganJob(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnFooliganJob == null) fn__networkEarnFooliganJob = (delegate* unmanaged[Cdecl]) funcTable[0xCE4452AE85F5E252UL]; + var success = false; + fn__networkEarnFooliganJob(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnFooliganJobParticipation(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnFooliganJobParticipation == null) fn__networkEarnFooliganJobParticipation = (delegate* unmanaged[Cdecl]) funcTable[0xC376B92D0E060970UL]; + var success = false; + fn__networkEarnFooliganJobParticipation(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnTaxiJob(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnTaxiJob == null) fn__networkEarnTaxiJob = (delegate* unmanaged[Cdecl]) funcTable[0x991E1588FAD9019DUL]; + var success = false; + fn__networkEarnTaxiJob(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnDailyStashHouseCompleted(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnDailyStashHouseCompleted == null) fn__networkEarnDailyStashHouseCompleted = (delegate* unmanaged[Cdecl]) funcTable[0xCABC9874AFA70D6DUL]; + var success = false; + fn__networkEarnDailyStashHouseCompleted(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnDailyStashHouseParticipation(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnDailyStashHouseParticipation == null) fn__networkEarnDailyStashHouseParticipation = (delegate* unmanaged[Cdecl]) funcTable[0x9C0C6BD0F94CE391UL]; + var success = false; + fn__networkEarnDailyStashHouseParticipation(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnAvenger(int _amount, int _p1) + { + unsafe { + if (fn__networkEarnAvenger == null) fn__networkEarnAvenger = (delegate* unmanaged[Cdecl]) funcTable[0x55F006B9D4A46C1DUL]; + var success = false; + fn__networkEarnAvenger(&success, _amount, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnSmugglerOps(int _p0, int _p1, int _p2) + { + unsafe { + if (fn__networkEarnSmugglerOps == null) fn__networkEarnSmugglerOps = (delegate* unmanaged[Cdecl]) funcTable[0xDEA273D5F8A9661AUL]; + var success = false; + fn__networkEarnSmugglerOps(&success, _p0, _p1, _p2); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnBonusObjective(int _amount, int _p1, int _p2) + { + unsafe { + if (fn__networkEarnBonusObjective == null) fn__networkEarnBonusObjective = (delegate* unmanaged[Cdecl]) funcTable[0xDCEF983C24191997UL]; + var success = false; + fn__networkEarnBonusObjective(&success, _amount, _p1, _p2); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnProgressHub(int _p0, int _p1) + { + unsafe { + if (fn__networkEarnProgressHub == null) fn__networkEarnProgressHub = (delegate* unmanaged[Cdecl]) funcTable[0xF8332B06F0EECC9CUL]; + var success = false; + fn__networkEarnProgressHub(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkSpentAirFreight(int _hangarCargoSourcingPrice, bool _fromBank, bool _fromBankAndWallet, int _cost, int _warehouseId, int _warehouseSlot) + { + unsafe { + if (fn__networkSpentAirFreight == null) fn__networkSpentAirFreight = (delegate* unmanaged[Cdecl]) funcTable[0x8C7E8D6F96C9E948UL]; + var success = false; + fn__networkSpentAirFreight(&success, _hangarCargoSourcingPrice, (byte) (_fromBank ? 1 : 0), (byte) (_fromBankAndWallet ? 1 : 0), _cost, _warehouseId, _warehouseSlot); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkSpentSkipCargoSourceSetup(int _amount, bool _fromBank, bool _fromBankAndWallet, int _cost) + { + unsafe { + if (fn__networkSpentSkipCargoSourceSetup == null) fn__networkSpentSkipCargoSourceSetup = (delegate* unmanaged[Cdecl]) funcTable[0xED1B407BADA42CECUL]; + var success = false; + fn__networkSpentSkipCargoSourceSetup(&success, _amount, (byte) (_fromBank ? 1 : 0), (byte) (_fromBankAndWallet ? 1 : 0), _cost); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkSpentStealthModule(int _amount, bool _fromBank, bool _fromBankAndWallet, uint _p3) + { + unsafe { + if (fn__networkSpentStealthModule == null) fn__networkSpentStealthModule = (delegate* unmanaged[Cdecl]) funcTable[0x95CE79A6939C537AUL]; + var success = false; + fn__networkSpentStealthModule(&success, _amount, (byte) (_fromBank ? 1 : 0), (byte) (_fromBankAndWallet ? 1 : 0), _p3); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkSpentMissileJammer(int _amount, bool _fromBank, bool _fromBankAndWallet, uint _p3) + { + unsafe { + if (fn__networkSpentMissileJammer == null) fn__networkSpentMissileJammer = (delegate* unmanaged[Cdecl]) funcTable[0xD687100F616163F4UL]; + var success = false; + fn__networkSpentMissileJammer(&success, _amount, (byte) (_fromBank ? 1 : 0), (byte) (_fromBankAndWallet ? 1 : 0), _p3); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkSpentGeneric(int _price, bool _p1, bool _p2, uint _stat, uint _spent, string _p5, string _p6, ref int _data) + { + unsafe { + if (fn__networkSpentGeneric == null) fn__networkSpentGeneric = (delegate* unmanaged[Cdecl]) funcTable[0x2803B027479FB640UL]; + var success = false; + var ptr_p5 = MemoryUtils.StringToHGlobalUtf8(_p5); + var ptr_p6 = MemoryUtils.StringToHGlobalUtf8(_p6); + var ref_data = _data; + fn__networkSpentGeneric(&success, _price, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0), _stat, _spent, ptr_p5, ptr_p6, &ref_data); + Marshal.FreeHGlobal(ptr_p5); + Marshal.FreeHGlobal(ptr_p6); + _data = ref_data; + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkEarnGeneric(int _amount, uint _earn, string _p2, string _p3, ref int _data) + { + unsafe { + if (fn__networkEarnGeneric == null) fn__networkEarnGeneric = (delegate* unmanaged[Cdecl]) funcTable[0xBF7B5BB7ED890380UL]; + var success = false; + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p3 = MemoryUtils.StringToHGlobalUtf8(_p3); + var ref_data = _data; + fn__networkEarnGeneric(&success, _amount, _earn, ptr_p2, ptr_p3, &ref_data); + Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p3); + _data = ref_data; + if (!success) throw new Exception("Native execution failed"); + } + } + + public void NetworkClearTransactionTelemetryNonce() + { + unsafe { + if (fn__networkClearTransactionTelemetryNonce == null) fn__networkClearTransactionTelemetryNonce = (delegate* unmanaged[Cdecl]) funcTable[0xE03B9F95556E48E9UL]; + var success = false; + fn__networkClearTransactionTelemetryNonce(&success); + if (!success) throw new Exception("Native execution failed"); + } + } + public int NetworkGetVcBankBalance() { unsafe { @@ -62279,12 +63495,12 @@ public string NetworkGetStringBankBalance() } } - public string NetworkGetStringBankWalletBalance() + public string NetworkGetStringBankWalletBalance(int _character) { unsafe { - if (fn__networkGetStringBankWalletBalance == null) fn__networkGetStringBankWalletBalance = (delegate* unmanaged[Cdecl]) funcTable[0x700AF71AE615E6DDUL]; + if (fn__networkGetStringBankWalletBalance == null) fn__networkGetStringBankWalletBalance = (delegate* unmanaged[Cdecl]) funcTable[0x700AF71AE615E6DDUL]; var success = false; - var result = fn__networkGetStringBankWalletBalance(&success); + var result = fn__networkGetStringBankWalletBalance(&success, _character); if (!success) throw new Exception("Native execution failed"); var strResult = Marshal.PtrToStringUTF8(result); freeString(result); @@ -63098,6 +64314,17 @@ public bool NetworkHaveCommunicationPrivileges(int _p0, uint _player) } } + public bool NetworkHavePlatformCommunicationPrivileges() + { + unsafe { + if (fn__networkHavePlatformCommunicationPrivileges == null) fn__networkHavePlatformCommunicationPrivileges = (delegate* unmanaged[Cdecl]) funcTable[0xE1E02509169C124EUL]; + var success = false; + var result = fn__networkHavePlatformCommunicationPrivileges(&success); + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + public bool NetworkCheckOnlinePrivileges(int _p0, bool _p1) { unsafe { @@ -63382,23 +64609,23 @@ public bool NetworkCanEnterMultiplayer() } } - public bool NetworkSessionDoFreeroamQuickmatch(int _p0, int _p1, int _p2, int _maxPlayers) + public bool NetworkSessionDoFreeroamQuickmatch(int _p0, int _p1, int _p2) { unsafe { - if (fn__networkSessionDoFreeroamQuickmatch == null) fn__networkSessionDoFreeroamQuickmatch = (delegate* unmanaged[Cdecl]) funcTable[0x330ED4D05491934FUL]; + if (fn__networkSessionDoFreeroamQuickmatch == null) fn__networkSessionDoFreeroamQuickmatch = (delegate* unmanaged[Cdecl]) funcTable[0x330ED4D05491934FUL]; var success = false; - var result = fn__networkSessionDoFreeroamQuickmatch(&success, _p0, _p1, _p2, _maxPlayers); + var result = fn__networkSessionDoFreeroamQuickmatch(&success, _p0, _p1, _p2); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } - public bool NetworkSessionDoFriendMatchmaking(int _p0, int _p1, int _maxPlayers) + public bool NetworkSessionDoFriendMatchmaking(int _p0, int _p1, int _p2) { unsafe { if (fn__networkSessionDoFriendMatchmaking == null) fn__networkSessionDoFriendMatchmaking = (delegate* unmanaged[Cdecl]) funcTable[0x2CFC76E0D087C994UL]; var success = false; - var result = fn__networkSessionDoFriendMatchmaking(&success, _p0, _p1, _maxPlayers); + var result = fn__networkSessionDoFriendMatchmaking(&success, _p0, _p1, _p2); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -63503,6 +64730,17 @@ public bool NetworkSessionIsPrivate() } } + public bool NetworkSessionLeaveIncludingReason(int _leaveFlags, int _leaveReason) + { + unsafe { + if (fn__networkSessionLeaveIncludingReason == null) fn__networkSessionLeaveIncludingReason = (delegate* unmanaged[Cdecl]) funcTable[0xE0128328CF1FD9F4UL]; + var success = false; + var result = fn__networkSessionLeaveIncludingReason(&success, _leaveFlags, _leaveReason); + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + public bool NetworkSessionEnd(bool _p0, bool _p1) { unsafe { @@ -63632,6 +64870,17 @@ public void NetworkSessionSetUniqueCrewLimit(int _p0) } } + public int NetworkSessionGetUniqueCrewLimit() + { + unsafe { + if (fn__networkSessionGetUniqueCrewLimit == null) fn__networkSessionGetUniqueCrewLimit = (delegate* unmanaged[Cdecl]) funcTable[0xCDC936BF35EDCB73UL]; + var success = false; + var result = fn__networkSessionGetUniqueCrewLimit(&success); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + public void NetworkSessionSetUniqueCrewLimitTransition(int _p0) { unsafe { @@ -64170,6 +65419,17 @@ public bool NetworkIsInSession() } } + public bool NetworkIsAmericasVersion() + { + unsafe { + if (fn__networkIsAmericasVersion == null) fn__networkIsAmericasVersion = (delegate* unmanaged[Cdecl]) funcTable[0x0292BD7F3766CEBCUL]; + var success = false; + var result = fn__networkIsAmericasVersion(&success); + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + public bool NetworkIsSessionStarted() { unsafe { @@ -65706,6 +66966,17 @@ public int NetworkGetRandomIntRanged(int _rangeStart, int _rangeEnd) } } + public float NetworkGetRandomFloatRanged(float _rangeStart, float _rangeEnd) + { + unsafe { + if (fn__networkGetRandomFloatRanged == null) fn__networkGetRandomFloatRanged = (delegate* unmanaged[Cdecl]) funcTable[0x04BD27B5ACB67067UL]; + var success = false; + var result = fn__networkGetRandomFloatRanged(&success, _rangeStart, _rangeEnd); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + public bool NetworkPlayerIsCheater() { unsafe { @@ -65739,48 +67010,6 @@ public bool NetworkPlayerIsBadsport() } } - public bool TriggerPlayerCrcHackerCheck(IPlayer player, int p1, uint scriptHash) => TriggerPlayerCrcHackerCheck(player.ScriptId, p1, scriptHash); - public bool TriggerPlayerCrcHackerCheck(uint _player, int _p1, uint _scriptHash) - { - unsafe { - if (fn__triggerPlayerCrcHackerCheck == null) fn__triggerPlayerCrcHackerCheck = (delegate* unmanaged[Cdecl]) funcTable[0x46FB3ED415C7641CUL]; - var success = false; - var result = fn__triggerPlayerCrcHackerCheck(&success, _player, _p1, _scriptHash); - if (!success) throw new Exception("Native execution failed"); - return result == 0 ? false : true; - } - } - - public bool TriggerTuningCrcHackerCheck(IPlayer player, string p1, string p2) => TriggerTuningCrcHackerCheck(player.ScriptId, p1, p2); - public bool TriggerTuningCrcHackerCheck(uint _player, string _p1, string _p2) - { - unsafe { - if (fn__triggerTuningCrcHackerCheck == null) fn__triggerTuningCrcHackerCheck = (delegate* unmanaged[Cdecl]) funcTable[0xA12D3A5A3753CC23UL]; - var success = false; - var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); - var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); - var result = fn__triggerTuningCrcHackerCheck(&success, _player, ptr_p1, ptr_p2); - Marshal.FreeHGlobal(ptr_p1); - Marshal.FreeHGlobal(ptr_p2); - if (!success) throw new Exception("Native execution failed"); - return result == 0 ? false : true; - } - } - - public bool TriggerFileCrcHackerCheck(IPlayer player, string p1) => TriggerFileCrcHackerCheck(player.ScriptId, p1); - public bool TriggerFileCrcHackerCheck(uint _player, string _p1) - { - unsafe { - if (fn__triggerFileCrcHackerCheck == null) fn__triggerFileCrcHackerCheck = (delegate* unmanaged[Cdecl]) funcTable[0xF287F506767CC8A9UL]; - var success = false; - var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); - var result = fn__triggerFileCrcHackerCheck(&success, _player, ptr_p1); - Marshal.FreeHGlobal(ptr_p1); - if (!success) throw new Exception("Native execution failed"); - return result == 0 ? false : true; - } - } - public bool RemoteCheaterPlayerDetected(IPlayer player, int a, int b) => RemoteCheaterPlayerDetected(player.ScriptId, a, b); public bool RemoteCheaterPlayerDetected(uint _player, int _a, int _b) { @@ -65912,29 +67141,29 @@ public int NetworkGetScriptStatus() } } - public void NetworkRegisterHostBroadcastVariables(ref int _unkVars, int _numVars, string _debugName) + public void NetworkRegisterHostBroadcastVariables(ref int _vars, int _numVars, string _debugName) { unsafe { if (fn__networkRegisterHostBroadcastVariables == null) fn__networkRegisterHostBroadcastVariables = (delegate* unmanaged[Cdecl]) funcTable[0x3E9B2F01C50DF595UL]; var success = false; - var ref_unkVars = _unkVars; + var ref_vars = _vars; var ptr_debugName = MemoryUtils.StringToHGlobalUtf8(_debugName); - fn__networkRegisterHostBroadcastVariables(&success, &ref_unkVars, _numVars, ptr_debugName); - _unkVars = ref_unkVars; + fn__networkRegisterHostBroadcastVariables(&success, &ref_vars, _numVars, ptr_debugName); + _vars = ref_vars; Marshal.FreeHGlobal(ptr_debugName); if (!success) throw new Exception("Native execution failed"); } } - public void NetworkRegisterPlayerBroadcastVariables(ref int _unkVars, int _numVars, string _debugName) + public void NetworkRegisterPlayerBroadcastVariables(ref int _vars, int _numVars, string _debugName) { unsafe { if (fn__networkRegisterPlayerBroadcastVariables == null) fn__networkRegisterPlayerBroadcastVariables = (delegate* unmanaged[Cdecl]) funcTable[0x3364AA97340CA215UL]; var success = false; - var ref_unkVars = _unkVars; + var ref_vars = _vars; var ptr_debugName = MemoryUtils.StringToHGlobalUtf8(_debugName); - fn__networkRegisterPlayerBroadcastVariables(&success, &ref_unkVars, _numVars, ptr_debugName); - _unkVars = ref_unkVars; + fn__networkRegisterPlayerBroadcastVariables(&success, &ref_vars, _numVars, ptr_debugName); + _vars = ref_vars; Marshal.FreeHGlobal(ptr_debugName); if (!success) throw new Exception("Native execution failed"); } @@ -66355,6 +67584,16 @@ public void NetworkSetCurrentPublicContentId(string _missionId) } } + public void NetworkSetCurrentChatOption(int _newChatOption) + { + unsafe { + if (fn__networkSetCurrentChatOption == null) fn__networkSetCurrentChatOption = (delegate* unmanaged[Cdecl]) funcTable[0x3DAD00265FBF356BUL]; + var success = false; + fn__networkSetCurrentChatOption(&success, _newChatOption); + if (!success) throw new Exception("Native execution failed"); + } + } + public void NetworkSetCurrentSpawnLocationOption(uint _mpSettingSpawn) { unsafe { @@ -66375,6 +67614,16 @@ public void NetworkSetVehicleDrivenInTestDrive(bool _toggle) } } + public void NetworkSetVehicleDrivenLocation(uint _location) + { + unsafe { + if (fn__networkSetVehicleDrivenLocation == null) fn__networkSetVehicleDrivenLocation = (delegate* unmanaged[Cdecl]) funcTable[0xA0CE91E47531D3BBUL]; + var success = false; + fn__networkSetVehicleDrivenLocation(&success, _location); + if (!success) throw new Exception("Native execution failed"); + } + } + public void NetworkResurrectLocalPlayer(float _x, float _y, float _z, float _heading, bool _p4, bool _changetime, bool _p6, int _p7, int _p8) { unsafe { @@ -67260,6 +68509,51 @@ public void NetworkIgnoreRemoteWaypoints() } } + public bool NetworkDoesCommunicationGroupExist(int _communicationType) + { + unsafe { + if (fn__networkDoesCommunicationGroupExist == null) fn__networkDoesCommunicationGroupExist = (delegate* unmanaged[Cdecl]) funcTable[0xDBDF80673BBA3D65UL]; + var success = false; + var result = fn__networkDoesCommunicationGroupExist(&success, _communicationType); + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + + public int NetworkGetCommunicationGroupFlags(int _communicationType) + { + unsafe { + if (fn__networkGetCommunicationGroupFlags == null) fn__networkGetCommunicationGroupFlags = (delegate* unmanaged[Cdecl]) funcTable[0x40DF02F371F40883UL]; + var success = false; + var result = fn__networkGetCommunicationGroupFlags(&success, _communicationType); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + + public void NetworkSetCommunicationGroupFlags(int _communicationType, int _communicationGroupFlag) + { + unsafe { + if (fn__networkSetCommunicationGroupFlags == null) fn__networkSetCommunicationGroupFlags = (delegate* unmanaged[Cdecl]) funcTable[0xE549F846DE7D32D5UL]; + var success = false; + fn__networkSetCommunicationGroupFlags(&success, _communicationType, _communicationGroupFlag); + if (!success) throw new Exception("Native execution failed"); + } + } + + public bool NetworkIsPlayerOnBlocklist(ref int _gamerHandle) + { + unsafe { + if (fn__networkIsPlayerOnBlocklist == null) fn__networkIsPlayerOnBlocklist = (delegate* unmanaged[Cdecl]) funcTable[0xAD4326FCA30D62F8UL]; + var success = false; + var ref_gamerHandle = _gamerHandle; + var result = fn__networkIsPlayerOnBlocklist(&success, &ref_gamerHandle); + _gamerHandle = ref_gamerHandle; + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + public bool NetworkSetScriptAutomuted(int _p0) { unsafe { @@ -68058,18 +69352,15 @@ public bool NetworkClanIsRockstarClan(ref int _clanDesc, int _bufferSize) } } - public void NetworkClanGetUiFormattedTag(ref int _clanDesc, int _bufferSize, ref string _formattedTag) + public void NetworkClanGetUiFormattedTag(ref int _clanDesc, int _bufferSize, string _formattedTag) { unsafe { - if (fn__networkClanGetUiFormattedTag == null) fn__networkClanGetUiFormattedTag = (delegate* unmanaged[Cdecl]) funcTable[0xF45352426FF3A4F0UL]; + if (fn__networkClanGetUiFormattedTag == null) fn__networkClanGetUiFormattedTag = (delegate* unmanaged[Cdecl]) funcTable[0xF45352426FF3A4F0UL]; var success = false; var ref_clanDesc = _clanDesc; var ptr_formattedTag = MemoryUtils.StringToHGlobalUtf8(_formattedTag); - var ref_formattedTag = ptr_formattedTag; - fn__networkClanGetUiFormattedTag(&success, &ref_clanDesc, _bufferSize, &ref_formattedTag); + fn__networkClanGetUiFormattedTag(&success, &ref_clanDesc, _bufferSize, ptr_formattedTag); _clanDesc = ref_clanDesc; - _formattedTag = Marshal.PtrToStringUTF8(ref_formattedTag); - if (ref_formattedTag != ptr_formattedTag) freeString(ref_formattedTag); Marshal.FreeHGlobal(ptr_formattedTag); if (!success) throw new Exception("Native execution failed"); } @@ -68240,18 +69531,15 @@ public bool NetworkClanHasCrewinfoMetadataBeenReceived() } } - public bool NetworkClanGetEmblemTxdName(ref int _netHandle, ref string _txdName) + public bool NetworkClanGetEmblemTxdName(ref int _netHandle, string _txdName) { unsafe { - if (fn__networkClanGetEmblemTxdName == null) fn__networkClanGetEmblemTxdName = (delegate* unmanaged[Cdecl]) funcTable[0x5835D9CD92E83184UL]; + if (fn__networkClanGetEmblemTxdName == null) fn__networkClanGetEmblemTxdName = (delegate* unmanaged[Cdecl]) funcTable[0x5835D9CD92E83184UL]; var success = false; var ref_netHandle = _netHandle; var ptr_txdName = MemoryUtils.StringToHGlobalUtf8(_txdName); - var ref_txdName = ptr_txdName; - var result = fn__networkClanGetEmblemTxdName(&success, &ref_netHandle, &ref_txdName); + var result = fn__networkClanGetEmblemTxdName(&success, &ref_netHandle, ptr_txdName); _netHandle = ref_netHandle; - _txdName = Marshal.PtrToStringUTF8(ref_txdName); - if (ref_txdName != ptr_txdName) freeString(ref_txdName); Marshal.FreeHGlobal(ptr_txdName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -68456,12 +69744,12 @@ public void SetNetworkIdVisibleInCutsceneHack(int _netId, bool _p1, bool _p2) } } - public void SetNetworkIdVisibleInCutsceneRemainHack(int _p0, int _p1) + public void SetNetworkIdVisibleInCutsceneRemainHack(int _p0, int _p1, int _p2) { unsafe { - if (fn__setNetworkIdVisibleInCutsceneRemainHack == null) fn__setNetworkIdVisibleInCutsceneRemainHack = (delegate* unmanaged[Cdecl]) funcTable[0x76B3F29D3F967692UL]; + if (fn__setNetworkIdVisibleInCutsceneRemainHack == null) fn__setNetworkIdVisibleInCutsceneRemainHack = (delegate* unmanaged[Cdecl]) funcTable[0x76B3F29D3F967692UL]; var success = false; - fn__setNetworkIdVisibleInCutsceneRemainHack(&success, _p0, _p1); + fn__setNetworkIdVisibleInCutsceneRemainHack(&success, _p0, _p1, _p2); if (!success) throw new Exception("Native execution failed"); } } @@ -68508,6 +69796,17 @@ public bool IsNetworkIdOwnedByParticipant(int _netId) } } + public void SetRemotePlayerVisibleInCutscene(IPlayer player, bool locallyVisible) => SetRemotePlayerVisibleInCutscene(player.ScriptId, locallyVisible); + public void SetRemotePlayerVisibleInCutscene(uint _player, bool _locallyVisible) + { + unsafe { + if (fn__setRemotePlayerVisibleInCutscene == null) fn__setRemotePlayerVisibleInCutscene = (delegate* unmanaged[Cdecl]) funcTable[0x96320E6549DAE7B4UL]; + var success = false; + fn__setRemotePlayerVisibleInCutscene(&success, _player, (byte) (_locallyVisible ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + } + } + public void SetLocalPlayerVisibleInCutscene(bool _p0, bool _p1) { unsafe { @@ -69252,6 +70551,17 @@ public void SetNetworkVehicleRespotTimer(int _netId, int _time, int _p2, int _p3 } } + public bool IsNetworkVehicleRunningRespotTimer(int _networkID) + { + unsafe { + if (fn__isNetworkVehicleRunningRespotTimer == null) fn__isNetworkVehicleRunningRespotTimer = (delegate* unmanaged[Cdecl]) funcTable[0xDD7CEF5B3A4DA8A6UL]; + var success = false; + var result = fn__isNetworkVehicleRunningRespotTimer(&success, _networkID); + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + public void SetNetworkVehicleAsGhost(IVehicle vehicle, bool toggle) => SetNetworkVehicleAsGhost(vehicle.ScriptId, toggle); public void SetNetworkVehicleAsGhost(uint _vehicle, bool _toggle) { @@ -71535,6 +72845,17 @@ public void UgcReleaseAllCachedDescriptions() } } + public bool UgcHasPermissionToWrite() + { + unsafe { + if (fn__ugcHasPermissionToWrite == null) fn__ugcHasPermissionToWrite = (delegate* unmanaged[Cdecl]) funcTable[0xC33E7CBC06EC1A8DUL]; + var success = false; + var result = fn__ugcHasPermissionToWrite(&success); + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + public bool UgcPublish(string _contentId, string _baseContentId, string _contentTypeName) { unsafe { @@ -72043,6 +73364,28 @@ public bool NetworkHasRosPrivilegeSpecialEditionContent() } } + public bool NetworkHasRosPrivilegeMpTextCommunication() + { + unsafe { + if (fn__networkHasRosPrivilegeMpTextCommunication == null) fn__networkHasRosPrivilegeMpTextCommunication = (delegate* unmanaged[Cdecl]) funcTable[0xD9719341663C385FUL]; + var success = false; + var result = fn__networkHasRosPrivilegeMpTextCommunication(&success); + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + + public bool NetworkHasRosPrivilegeMpVoiceCommunication() + { + unsafe { + if (fn__networkHasRosPrivilegeMpVoiceCommunication == null) fn__networkHasRosPrivilegeMpVoiceCommunication = (delegate* unmanaged[Cdecl]) funcTable[0x8956A309BE90057CUL]; + var success = false; + var result = fn__networkHasRosPrivilegeMpVoiceCommunication(&success); + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + public int NetworkStartCommunicationPermissionsCheck(int _p0) { unsafe { @@ -72301,13 +73644,13 @@ public Vector3 NetworkGetLastVelReceivedOverNetwork(uint _entity) } } - public Vector3 NetworkGetPredictedVelocity(IEntity entity) => NetworkGetPredictedVelocity(entity.ScriptId); - public Vector3 NetworkGetPredictedVelocity(uint _entity) + public Vector3 NetworkGetPredictedVelocity(IEntity entity, float maxSpeedToPredict) => NetworkGetPredictedVelocity(entity.ScriptId, maxSpeedToPredict); + public Vector3 NetworkGetPredictedVelocity(uint _entity, float _maxSpeedToPredict) { unsafe { - if (fn__networkGetPredictedVelocity == null) fn__networkGetPredictedVelocity = (delegate* unmanaged[Cdecl]) funcTable[0xAA5FAFCD2C5F5E47UL]; + if (fn__networkGetPredictedVelocity == null) fn__networkGetPredictedVelocity = (delegate* unmanaged[Cdecl]) funcTable[0xAA5FAFCD2C5F5E47UL]; var success = false; - var result = fn__networkGetPredictedVelocity(&success, _entity); + var result = fn__networkGetPredictedVelocity(&success, _entity, _maxSpeedToPredict); if (!success) throw new Exception("Native execution failed"); return result; } @@ -72447,12 +73790,12 @@ public bool SlideObject(uint _object, float _toX, float _toY, float _toZ, float } } - public void SetObjectTargettable(uint _object, bool _targettable) + public void SetObjectTargettable(uint _object, bool _targettable, int _p2) { unsafe { - if (fn__setObjectTargettable == null) fn__setObjectTargettable = (delegate* unmanaged[Cdecl]) funcTable[0x8A7391690F5AFD81UL]; + if (fn__setObjectTargettable == null) fn__setObjectTargettable = (delegate* unmanaged[Cdecl]) funcTable[0x8A7391690F5AFD81UL]; var success = false; - fn__setObjectTargettable(&success, _object, (byte) (_targettable ? 1 : 0)); + fn__setObjectTargettable(&success, _object, (byte) (_targettable ? 1 : 0), _p2); if (!success) throw new Exception("Native execution failed"); } } @@ -73890,6 +75233,16 @@ public bool SetTintIndexClosestBuildingOfType(float _x, float _y, float _z, floa } } + public void SetPropTintIndex(int _p0, int _p1) + { + unsafe { + if (fn__setPropTintIndex == null) fn__setPropTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x31574B1B41268673UL]; + var success = false; + fn__setPropTintIndex(&success, _p0, _p1); + if (!success) throw new Exception("Native execution failed"); + } + } + public bool SetPropLightColor(uint _object, bool _p1, int _r, int _g, int _b) { unsafe { @@ -74587,12 +75940,12 @@ public void ShutdownPcScriptedControls() } } - public void DisableInputGroup(int _control) + public void AllowAlternativeScriptControlsLayout(int _control) { unsafe { - if (fn__disableInputGroup == null) fn__disableInputGroup = (delegate* unmanaged[Cdecl]) funcTable[0x7F4724035FDCA1DDUL]; + if (fn__allowAlternativeScriptControlsLayout == null) fn__allowAlternativeScriptControlsLayout = (delegate* unmanaged[Cdecl]) funcTable[0x7F4724035FDCA1DDUL]; var success = false; - fn__disableInputGroup(&success, _control); + fn__allowAlternativeScriptControlsLayout(&success, _control); if (!success) throw new Exception("Native execution failed"); } } @@ -74833,6 +76186,17 @@ public bool GetClosestRoad(float _x, float _y, float _z, float _p3, int _p4, ref } } + public bool LoadAllPathNodes(bool _set) + { + unsafe { + if (fn__loadAllPathNodes == null) fn__loadAllPathNodes = (delegate* unmanaged[Cdecl]) funcTable[0xC2AB6BFE34E92F8BUL]; + var success = false; + var result = fn__loadAllPathNodes(&success, (byte) (_set ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + public void SetAllowStreamPrologueNodes(bool _toggle) { unsafe { @@ -74940,6 +76304,21 @@ public bool GetRandomVehicleNode(float _x, float _y, float _z, float _radius, bo } } + public Vector3 GetSpawnCoordsForVehicleNode(int _nodeAddress, float _towardsCoorsX, float _towardsCoorsY, float _towardsCoorsZ, ref Vector3 _centrePoint, ref float _heading) + { + unsafe { + if (fn__getSpawnCoordsForVehicleNode == null) fn__getSpawnCoordsForVehicleNode = (delegate* unmanaged[Cdecl]) funcTable[0x809549AFC7AEC597UL]; + var success = false; + var ref_centrePoint = _centrePoint; + var ref_heading = _heading; + var result = fn__getSpawnCoordsForVehicleNode(&success, _nodeAddress, _towardsCoorsX, _towardsCoorsY, _towardsCoorsZ, &ref_centrePoint, &ref_heading); + _centrePoint = ref_centrePoint; + _heading = ref_heading; + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + public void GetStreetNameAtCoord(float _x, float _y, float _z, ref uint _streetName, ref uint _crossingRoad) { unsafe { @@ -77112,6 +78491,20 @@ public bool SetPedPinnedDown(uint _ped, bool _pinned, int _i) } } + public bool HasPedClearLosToEntity(IPlayer ped, uint entity, float x, float y, float z, int p5, bool p6, bool p7) => HasPedClearLosToEntity(ped.ScriptId, entity, x, y, z, p5, p6, p7); + public bool HasPedClearLosToEntity(uint ped, IEntity entity, float x, float y, float z, int p5, bool p6, bool p7) => HasPedClearLosToEntity(ped, entity.ScriptId, x, y, z, p5, p6, p7); + public bool HasPedClearLosToEntity(IPlayer ped, IEntity entity, float x, float y, float z, int p5, bool p6, bool p7) => HasPedClearLosToEntity(ped.ScriptId, entity.ScriptId, x, y, z, p5, p6, p7); + public bool HasPedClearLosToEntity(uint _ped, uint _entity, float _x, float _y, float _z, int _p5, bool _p6, bool _p7) + { + unsafe { + if (fn__hasPedClearLosToEntity == null) fn__hasPedClearLosToEntity = (delegate* unmanaged[Cdecl]) funcTable[0xA32ABFEB2A03B306UL]; + var success = false; + var result = fn__hasPedClearLosToEntity(&success, _ped, _entity, _x, _y, _z, _p5, (byte) (_p6 ? 1 : 0), (byte) (_p7 ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + public int GetSeatPedIsTryingToEnter(IPlayer ped) => GetSeatPedIsTryingToEnter(ped.ScriptId); public int GetSeatPedIsTryingToEnter(uint _ped) { @@ -77563,13 +78956,13 @@ public void SetPedGravity(uint _ped, bool _toggle) } } - public void ApplyDamageToPed(IPlayer ped, int damageAmount, bool p2, int p3) => ApplyDamageToPed(ped.ScriptId, damageAmount, p2, p3); - public void ApplyDamageToPed(uint _ped, int _damageAmount, bool _p2, int _p3) + public void ApplyDamageToPed(IPlayer ped, int damageAmount, bool p2, int p3, uint weaponType) => ApplyDamageToPed(ped.ScriptId, damageAmount, p2, p3, weaponType); + public void ApplyDamageToPed(uint _ped, int _damageAmount, bool _p2, int _p3, uint _weaponType) { unsafe { - if (fn__applyDamageToPed == null) fn__applyDamageToPed = (delegate* unmanaged[Cdecl]) funcTable[0x697157CED63F18D4UL]; + if (fn__applyDamageToPed == null) fn__applyDamageToPed = (delegate* unmanaged[Cdecl]) funcTable[0x697157CED63F18D4UL]; var success = false; - fn__applyDamageToPed(&success, _ped, _damageAmount, (byte) (_p2 ? 1 : 0), _p3); + fn__applyDamageToPed(&success, _ped, _damageAmount, (byte) (_p2 ? 1 : 0), _p3, _weaponType); if (!success) throw new Exception("Native execution failed"); } } @@ -79602,14 +80995,14 @@ public void ApplyPedBloodSpecific(uint _ped, int _p1, float _p2, float _p3, floa } } - public void ApplyPedDamageDecal(IPlayer ped, int damageZone, float xOffset, float yOffset, float heading, float scale, float alpha, int unkVariation, bool fadeIn, string decalName) => ApplyPedDamageDecal(ped.ScriptId, damageZone, xOffset, yOffset, heading, scale, alpha, unkVariation, fadeIn, decalName); - public void ApplyPedDamageDecal(uint _ped, int _damageZone, float _xOffset, float _yOffset, float _heading, float _scale, float _alpha, int _unkVariation, bool _fadeIn, string _decalName) + public void ApplyPedDamageDecal(IPlayer ped, int damageZone, float xOffset, float yOffset, float heading, float scale, float alpha, int variation, bool fadeIn, string decalName) => ApplyPedDamageDecal(ped.ScriptId, damageZone, xOffset, yOffset, heading, scale, alpha, variation, fadeIn, decalName); + public void ApplyPedDamageDecal(uint _ped, int _damageZone, float _xOffset, float _yOffset, float _heading, float _scale, float _alpha, int _variation, bool _fadeIn, string _decalName) { unsafe { if (fn__applyPedDamageDecal == null) fn__applyPedDamageDecal = (delegate* unmanaged[Cdecl]) funcTable[0x397C38AA7B4A5F83UL]; var success = false; var ptr_decalName = MemoryUtils.StringToHGlobalUtf8(_decalName); - fn__applyPedDamageDecal(&success, _ped, _damageZone, _xOffset, _yOffset, _heading, _scale, _alpha, _unkVariation, (byte) (_fadeIn ? 1 : 0), ptr_decalName); + fn__applyPedDamageDecal(&success, _ped, _damageZone, _xOffset, _yOffset, _heading, _scale, _alpha, _variation, (byte) (_fadeIn ? 1 : 0), ptr_decalName); Marshal.FreeHGlobal(ptr_decalName); if (!success) throw new Exception("Native execution failed"); } @@ -79730,6 +81123,17 @@ public void SetPedWetnessEnabledThisFrame(uint _ped) } } + public void SetPedWetness(IPlayer ped, float wetLevel) => SetPedWetness(ped.ScriptId, wetLevel); + public void SetPedWetness(uint _ped, float _wetLevel) + { + unsafe { + if (fn__setPedWetness == null) fn__setPedWetness = (delegate* unmanaged[Cdecl]) funcTable[0xAC0BB4D87777CAE2UL]; + var success = false; + fn__setPedWetness(&success, _ped, _wetLevel); + if (!success) throw new Exception("Native execution failed"); + } + } + public void ClearPedEnvDirt(IPlayer ped) => ClearPedEnvDirt(ped.ScriptId); public void ClearPedEnvDirt(uint _ped) { @@ -79852,12 +81256,12 @@ public void GivePedNmMessage(uint _ped) } } - public int AddScenarioBlockingArea(float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, bool _p6, bool _p7, bool _p8, bool _p9) + public int AddScenarioBlockingArea(float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, bool _p6, bool _p7, bool _p8, bool _p9, int _p10) { unsafe { - if (fn__addScenarioBlockingArea == null) fn__addScenarioBlockingArea = (delegate* unmanaged[Cdecl]) funcTable[0x1B5C85C612E5256EUL]; + if (fn__addScenarioBlockingArea == null) fn__addScenarioBlockingArea = (delegate* unmanaged[Cdecl]) funcTable[0x1B5C85C612E5256EUL]; var success = false; - var result = fn__addScenarioBlockingArea(&success, _x1, _y1, _z1, _x2, _y2, _z2, (byte) (_p6 ? 1 : 0), (byte) (_p7 ? 1 : 0), (byte) (_p8 ? 1 : 0), (byte) (_p9 ? 1 : 0)); + var result = fn__addScenarioBlockingArea(&success, _x1, _y1, _z1, _x2, _y2, _z2, (byte) (_p6 ? 1 : 0), (byte) (_p7 ? 1 : 0), (byte) (_p8 ? 1 : 0), (byte) (_p9 ? 1 : 0), _p10); if (!success) throw new Exception("Native execution failed"); return result; } @@ -80050,6 +81454,17 @@ public bool IsPedGesturing(int _p0) } } + public void ResetFacialIdleAnim(IPlayer ped) => ResetFacialIdleAnim(ped.ScriptId); + public void ResetFacialIdleAnim(uint _ped) + { + unsafe { + if (fn__resetFacialIdleAnim == null) fn__resetFacialIdleAnim = (delegate* unmanaged[Cdecl]) funcTable[0x007FDE5A7897E426UL]; + var success = false; + fn__resetFacialIdleAnim(&success, _ped); + if (!success) throw new Exception("Native execution failed"); + } + } + public void PlayFacialAnim(IPlayer ped, string animName, string animDict) => PlayFacialAnim(ped.ScriptId, animName, animDict); public void PlayFacialAnim(uint _ped, string _animName, string _animDict) { @@ -84159,6 +85574,17 @@ public void SetPlayerTargetingMode(int _targetMode) } } + public int GetPlayerTargetingMode() + { + unsafe { + if (fn__getPlayerTargetingMode == null) fn__getPlayerTargetingMode = (delegate* unmanaged[Cdecl]) funcTable[0x875BDD898B99C8CEUL]; + var success = false; + var result = fn__getPlayerTargetingMode(&success); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + public void SetPlayerTargetLevel(int _targetLevel) { unsafe { @@ -84780,6 +86206,17 @@ public void SetPlayerHealthRechargeMaxPercent(uint _player, float _limit) } } + public void DisablePlayerHealthRecharge(IPlayer player) => DisablePlayerHealthRecharge(player.ScriptId); + public void DisablePlayerHealthRecharge(uint _player) + { + unsafe { + if (fn__disablePlayerHealthRecharge == null) fn__disablePlayerHealthRecharge = (delegate* unmanaged[Cdecl]) funcTable[0xBCB06442F7E52666UL]; + var success = false; + fn__disablePlayerHealthRecharge(&success, _player); + if (!success) throw new Exception("Native execution failed"); + } + } + public void SetPlayerFallDistanceToTriggerRagdollOverride(IPlayer player, float p1) => SetPlayerFallDistanceToTriggerRagdollOverride(player.ScriptId, p1); public void SetPlayerFallDistanceToTriggerRagdollOverride(uint _player, float _p1) { @@ -85082,13 +86519,13 @@ public bool CanPedHearPlayer(uint _player, uint _ped) } } - public void SimulatePlayerInputGait(IPlayer player, float amount, int gaitType, float speed, bool p4, bool p5) => SimulatePlayerInputGait(player.ScriptId, amount, gaitType, speed, p4, p5); - public void SimulatePlayerInputGait(uint _player, float _amount, int _gaitType, float _speed, bool _p4, bool _p5) + public void SimulatePlayerInputGait(IPlayer player, float amount, int gaitType, float speed, bool p4, bool p5, int p6) => SimulatePlayerInputGait(player.ScriptId, amount, gaitType, speed, p4, p5, p6); + public void SimulatePlayerInputGait(uint _player, float _amount, int _gaitType, float _speed, bool _p4, bool _p5, int _p6) { unsafe { - if (fn__simulatePlayerInputGait == null) fn__simulatePlayerInputGait = (delegate* unmanaged[Cdecl]) funcTable[0x477D5D63E63ECA5DUL]; + if (fn__simulatePlayerInputGait == null) fn__simulatePlayerInputGait = (delegate* unmanaged[Cdecl]) funcTable[0x477D5D63E63ECA5DUL]; var success = false; - fn__simulatePlayerInputGait(&success, _player, _amount, _gaitType, _speed, (byte) (_p4 ? 1 : 0), (byte) (_p5 ? 1 : 0)); + fn__simulatePlayerInputGait(&success, _player, _amount, _gaitType, _speed, (byte) (_p4 ? 1 : 0), (byte) (_p5 ? 1 : 0), _p6); if (!success) throw new Exception("Native execution failed"); } } @@ -86248,6 +87685,18 @@ public int BgGetScriptIdFromNameHash(uint _p0) } } + public void SendTuScriptEventNew(int _eventGroup, ref int _eventData, int _eventDataSize, int _playerBits, uint _eventType) + { + unsafe { + if (fn__sendTuScriptEventNew == null) fn__sendTuScriptEventNew = (delegate* unmanaged[Cdecl]) funcTable[0x71A6F836422FDD2BUL]; + var success = false; + var ref_eventData = _eventData; + fn__sendTuScriptEventNew(&success, _eventGroup, &ref_eventData, _eventDataSize, _playerBits, _eventType); + _eventData = ref_eventData; + if (!success) throw new Exception("Native execution failed"); + } + } + public int StartShapeTestLosProbe(float x1, float y1, float z1, float x2, float y2, float z2, int flags, IEntity entity, int p8) => StartShapeTestLosProbe(x1, y1, z1, x2, y2, z2, flags, entity.ScriptId, p8); public int StartShapeTestLosProbe(float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, int _flags, uint _entity, int _p8) { @@ -86471,18 +87920,15 @@ public bool ScInboxMessageGetDataBool(int _p0, string _p1) } } - public bool ScInboxMessageGetDataString(int _p0, string _context, ref string _out) + public bool ScInboxMessageGetDataString(int _p0, string _context, string _out) { unsafe { - if (fn__scInboxMessageGetDataString == null) fn__scInboxMessageGetDataString = (delegate* unmanaged[Cdecl]) funcTable[0x7572EF42FC6A9B6DUL]; + if (fn__scInboxMessageGetDataString == null) fn__scInboxMessageGetDataString = (delegate* unmanaged[Cdecl]) funcTable[0x7572EF42FC6A9B6DUL]; var success = false; var ptr_context = MemoryUtils.StringToHGlobalUtf8(_context); var ptr_out = MemoryUtils.StringToHGlobalUtf8(_out); - var ref_out = ptr_out; - var result = fn__scInboxMessageGetDataString(&success, _p0, ptr_context, &ref_out); + var result = fn__scInboxMessageGetDataString(&success, _p0, ptr_context, ptr_out); Marshal.FreeHGlobal(ptr_context); - _out = Marshal.PtrToStringUTF8(ref_out); - if (ref_out != ptr_out) freeString(ref_out); Marshal.FreeHGlobal(ptr_out); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -86550,19 +87996,6 @@ public bool ScInboxMessageGetUgcdata(int _p0, ref int _p1) } } - public bool ScInboxSendBountyToRecipList(ref int _data) - { - unsafe { - if (fn__scInboxSendBountyToRecipList == null) fn__scInboxSendBountyToRecipList = (delegate* unmanaged[Cdecl]) funcTable[0x6AFD2CD753FEEF83UL]; - var success = false; - var ref_data = _data; - var result = fn__scInboxSendBountyToRecipList(&success, &ref_data); - _data = ref_data; - if (!success) throw new Exception("Native execution failed"); - return result == 0 ? false : true; - } - } - public bool ScInboxGetBountyDataAtIndex(int _index, ref int _outData) { unsafe { @@ -86801,18 +88234,15 @@ public bool ScGamerdataGetBool(string _name) } } - public bool ScGamerdataGetString(string _name, ref string _value) + public bool ScGamerdataGetString(string _name, string _value) { unsafe { - if (fn__scGamerdataGetString == null) fn__scGamerdataGetString = (delegate* unmanaged[Cdecl]) funcTable[0x7FFCBFEE44ECFABFUL]; + if (fn__scGamerdataGetString == null) fn__scGamerdataGetString = (delegate* unmanaged[Cdecl]) funcTable[0x7FFCBFEE44ECFABFUL]; var success = false; var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var ptr_value = MemoryUtils.StringToHGlobalUtf8(_value); - var ref_value = ptr_value; - var result = fn__scGamerdataGetString(&success, ptr_name, &ref_value); + var result = fn__scGamerdataGetString(&success, ptr_name, ptr_value); Marshal.FreeHGlobal(ptr_name); - _value = Marshal.PtrToStringUTF8(ref_value); - if (ref_value != ptr_value) freeString(ref_value); Marshal.FreeHGlobal(ptr_value); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -87125,34 +88555,28 @@ public bool ScCommunityEventGetExtraDataFloat(string _p0, ref float _p1) } } - public bool ScCommunityEventGetExtraDataString(string _p0, ref string _p1) + public bool ScCommunityEventGetExtraDataString(string _p0, string _p1) { unsafe { - if (fn__scCommunityEventGetExtraDataString == null) fn__scCommunityEventGetExtraDataString = (delegate* unmanaged[Cdecl]) funcTable[0x9DE5D2F723575ED0UL]; + if (fn__scCommunityEventGetExtraDataString == null) fn__scCommunityEventGetExtraDataString = (delegate* unmanaged[Cdecl]) funcTable[0x9DE5D2F723575ED0UL]; var success = false; var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); - var ref_p1 = ptr_p1; - var result = fn__scCommunityEventGetExtraDataString(&success, ptr_p0, &ref_p1); + var result = fn__scCommunityEventGetExtraDataString(&success, ptr_p0, ptr_p1); Marshal.FreeHGlobal(ptr_p0); - _p1 = Marshal.PtrToStringUTF8(ref_p1); - if (ref_p1 != ptr_p1) freeString(ref_p1); Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } - public bool ScCommunityEventGetDisplayName(ref string _p0) + public bool ScCommunityEventGetDisplayName(string _p0) { unsafe { - if (fn__scCommunityEventGetDisplayName == null) fn__scCommunityEventGetDisplayName = (delegate* unmanaged[Cdecl]) funcTable[0xC2C97EA97711D1AEUL]; + if (fn__scCommunityEventGetDisplayName == null) fn__scCommunityEventGetDisplayName = (delegate* unmanaged[Cdecl]) funcTable[0xC2C97EA97711D1AEUL]; var success = false; var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); - var ref_p0 = ptr_p0; - var result = fn__scCommunityEventGetDisplayName(&success, &ref_p0); - _p0 = Marshal.PtrToStringUTF8(ref_p0); - if (ref_p0 != ptr_p0) freeString(ref_p0); + var result = fn__scCommunityEventGetDisplayName(&success, ptr_p0); Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -87219,19 +88643,16 @@ public bool ScCommunityEventGetExtraDataFloatForType(string _p0, ref float _p1, } } - public bool ScCommunityEventGetExtraDataStringForType(string _p0, ref string _p1, string _p2) + public bool ScCommunityEventGetExtraDataStringForType(string _p0, string _p1, string _p2) { unsafe { - if (fn__scCommunityEventGetExtraDataStringForType == null) fn__scCommunityEventGetExtraDataStringForType = (delegate* unmanaged[Cdecl]) funcTable[0x1D12A56FC95BE92EUL]; + if (fn__scCommunityEventGetExtraDataStringForType == null) fn__scCommunityEventGetExtraDataStringForType = (delegate* unmanaged[Cdecl]) funcTable[0x1D12A56FC95BE92EUL]; var success = false; var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); - var ref_p1 = ptr_p1; var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); - var result = fn__scCommunityEventGetExtraDataStringForType(&success, ptr_p0, &ref_p1, ptr_p2); + var result = fn__scCommunityEventGetExtraDataStringForType(&success, ptr_p0, ptr_p1, ptr_p2); Marshal.FreeHGlobal(ptr_p0); - _p1 = Marshal.PtrToStringUTF8(ref_p1); - if (ref_p1 != ptr_p1) freeString(ref_p1); Marshal.FreeHGlobal(ptr_p1); Marshal.FreeHGlobal(ptr_p2); if (!success) throw new Exception("Native execution failed"); @@ -87239,17 +88660,14 @@ public bool ScCommunityEventGetExtraDataStringForType(string _p0, ref string _p1 } } - public bool ScCommunityEventGetDisplayNameForType(ref string _p0, string _p1) + public bool ScCommunityEventGetDisplayNameForType(string _p0, string _p1) { unsafe { - if (fn__scCommunityEventGetDisplayNameForType == null) fn__scCommunityEventGetDisplayNameForType = (delegate* unmanaged[Cdecl]) funcTable[0x33DF47CC0642061BUL]; + if (fn__scCommunityEventGetDisplayNameForType == null) fn__scCommunityEventGetDisplayNameForType = (delegate* unmanaged[Cdecl]) funcTable[0x33DF47CC0642061BUL]; var success = false; var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); - var ref_p0 = ptr_p0; var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); - var result = fn__scCommunityEventGetDisplayNameForType(&success, &ref_p0, ptr_p1); - _p0 = Marshal.PtrToStringUTF8(ref_p0); - if (ref_p0 != ptr_p0) freeString(ref_p0); + var result = fn__scCommunityEventGetDisplayNameForType(&success, ptr_p0, ptr_p1); Marshal.FreeHGlobal(ptr_p0); Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); @@ -87298,34 +88716,28 @@ public bool ScCommunityEventGetExtraDataFloatById(int _p0, string _p1, ref float } } - public bool ScCommunityEventGetExtraDataStringById(int _p0, string _p1, ref string _p2) + public bool ScCommunityEventGetExtraDataStringById(int _p0, string _p1, string _p2) { unsafe { - if (fn__scCommunityEventGetExtraDataStringById == null) fn__scCommunityEventGetExtraDataStringById = (delegate* unmanaged[Cdecl]) funcTable[0x699E4A5C8C893A18UL]; + if (fn__scCommunityEventGetExtraDataStringById == null) fn__scCommunityEventGetExtraDataStringById = (delegate* unmanaged[Cdecl]) funcTable[0x699E4A5C8C893A18UL]; var success = false; var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); - var ref_p2 = ptr_p2; - var result = fn__scCommunityEventGetExtraDataStringById(&success, _p0, ptr_p1, &ref_p2); + var result = fn__scCommunityEventGetExtraDataStringById(&success, _p0, ptr_p1, ptr_p2); Marshal.FreeHGlobal(ptr_p1); - _p2 = Marshal.PtrToStringUTF8(ref_p2); - if (ref_p2 != ptr_p2) freeString(ref_p2); Marshal.FreeHGlobal(ptr_p2); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } - public bool ScCommunityEventGetDisplayNameById(int _p0, ref string _p1) + public bool ScCommunityEventGetDisplayNameById(int _p0, string _p1) { unsafe { - if (fn__scCommunityEventGetDisplayNameById == null) fn__scCommunityEventGetDisplayNameById = (delegate* unmanaged[Cdecl]) funcTable[0x19853B5B17D77BCAUL]; + if (fn__scCommunityEventGetDisplayNameById == null) fn__scCommunityEventGetDisplayNameById = (delegate* unmanaged[Cdecl]) funcTable[0x19853B5B17D77BCAUL]; var success = false; var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); - var ref_p1 = ptr_p1; - var result = fn__scCommunityEventGetDisplayNameById(&success, _p0, &ref_p1); - _p1 = Marshal.PtrToStringUTF8(ref_p1); - if (ref_p1 != ptr_p1) freeString(ref_p1); + var result = fn__scCommunityEventGetDisplayNameById(&success, _p0, ptr_p1); Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -87664,6 +89076,17 @@ public bool StatGetLoadSafeToProgressToMpFromSp() } } + public uint GetStatHashForCharacterStat(int _dataType, int _statIndex, int _charSlot) + { + unsafe { + if (fn__getStatHashForCharacterStat == null) fn__getStatHashForCharacterStat = (delegate* unmanaged[Cdecl]) funcTable[0xD69CE161FE614531UL]; + var success = false; + var result = fn__getStatHashForCharacterStat(&success, _dataType, _statIndex, _charSlot); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + public bool StatSetInt(uint _statName, int _value, bool _save) { unsafe { @@ -88091,6 +89514,17 @@ public uint GetPackedNgIntStatKey(int _index, bool _spStat, bool _charStat, int } } + public bool GetPackedStatBoolCode(int _index, int _characterSlot) + { + unsafe { + if (fn__getPackedStatBoolCode == null) fn__getPackedStatBoolCode = (delegate* unmanaged[Cdecl]) funcTable[0xDA7EBFC49AE3F1B0UL]; + var success = false; + var result = fn__getPackedStatBoolCode(&success, _index, _characterSlot); + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + public int GetPackedStatIntCode(int _index, int _characterSlot) { unsafe { @@ -88102,6 +89536,16 @@ public int GetPackedStatIntCode(int _index, int _characterSlot) } } + public void SetPackedStatBoolCode(int _index, bool _value, int _characterSlot) + { + unsafe { + if (fn__setPackedStatBoolCode == null) fn__setPackedStatBoolCode = (delegate* unmanaged[Cdecl]) funcTable[0xDB8A58AEAA67CD07UL]; + var success = false; + fn__setPackedStatBoolCode(&success, _index, (byte) (_value ? 1 : 0), _characterSlot); + if (!success) throw new Exception("Native execution failed"); + } + } + public void SetPackedStatIntCode(int _index, int _value, int _characterSlot) { unsafe { @@ -88124,6 +89568,30 @@ public void PlaystatsBackgroundScriptAction(string _action, int _value) } } + public void PlaystatsFlowLow(float _posX, float _posY, float _posZ, string _p3, int _p4, int _amount) + { + unsafe { + if (fn__playstatsFlowLow == null) fn__playstatsFlowLow = (delegate* unmanaged[Cdecl]) funcTable[0xE6A27CDA42887F93UL]; + var success = false; + var ptr_p3 = MemoryUtils.StringToHGlobalUtf8(_p3); + fn__playstatsFlowLow(&success, _posX, _posY, _posZ, ptr_p3, _p4, _amount); + Marshal.FreeHGlobal(ptr_p3); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void PlaystatsFlowMedium(float _x, float _y, float _z, string _interiorAction, int _p4, uint _p5) + { + unsafe { + if (fn__playstatsFlowMedium == null) fn__playstatsFlowMedium = (delegate* unmanaged[Cdecl]) funcTable[0xC4493521BAA12CCEUL]; + var success = false; + var ptr_interiorAction = MemoryUtils.StringToHGlobalUtf8(_interiorAction); + fn__playstatsFlowMedium(&success, _x, _y, _z, ptr_interiorAction, _p4, _p5); + Marshal.FreeHGlobal(ptr_interiorAction); + if (!success) throw new Exception("Native execution failed"); + } + } + public void PlaystatsNpcInvite(string _p0) { unsafe { @@ -88166,12 +89634,12 @@ public void PlaystatsStartedSessionInOfflinemode() } } - public void PlaystatsActivityDone(int _p0, int _activityId) + public void PlaystatsActivityDone(int _p0, int _activityId, int _p2) { unsafe { - if (fn__playstatsActivityDone == null) fn__playstatsActivityDone = (delegate* unmanaged[Cdecl]) funcTable[0xA071E0ED98F91286UL]; + if (fn__playstatsActivityDone == null) fn__playstatsActivityDone = (delegate* unmanaged[Cdecl]) funcTable[0xA071E0ED98F91286UL]; var success = false; - fn__playstatsActivityDone(&success, _p0, _activityId); + fn__playstatsActivityDone(&success, _p0, _activityId, _p2); if (!success) throw new Exception("Native execution failed"); } } @@ -88571,6 +90039,16 @@ public void PlaystatsPegasusAsPersonalAircraft(uint _modelHash) } } + public void PlaystatsShopmenuNav(int _p0, int _p1, int _p2, int _p3) + { + unsafe { + if (fn__playstatsShopmenuNav == null) fn__playstatsShopmenuNav = (delegate* unmanaged[Cdecl]) funcTable[0xF96E9EA876D9DC92UL]; + var success = false; + fn__playstatsShopmenuNav(&success, _p0, _p1, _p2, _p3); + if (!success) throw new Exception("Native execution failed"); + } + } + public void PlaystatsFmEventChallenges(int _p0) { unsafe { @@ -88831,25 +90309,6 @@ public bool Leaderboards2ReadByHandle(ref int _p0, ref int _p1) } } - public bool Leaderboards2ReadByRow(ref int _p0, ref int _p1, int _p2, ref int _p3, int _p4, ref int _p5, int _p6) - { - unsafe { - if (fn__leaderboards2ReadByRow == null) fn__leaderboards2ReadByRow = (delegate* unmanaged[Cdecl]) funcTable[0xA9CDB1E3F0A49883UL]; - var success = false; - var ref_p0 = _p0; - var ref_p1 = _p1; - var ref_p3 = _p3; - var ref_p5 = _p5; - var result = fn__leaderboards2ReadByRow(&success, &ref_p0, &ref_p1, _p2, &ref_p3, _p4, &ref_p5, _p6); - _p0 = ref_p0; - _p1 = ref_p1; - _p3 = ref_p3; - _p5 = ref_p5; - if (!success) throw new Exception("Native execution failed"); - return result == 0 ? false : true; - } - } - public bool Leaderboards2ReadByRank(ref int _p0, int _p1, int _p2) { unsafe { @@ -89919,12 +91378,12 @@ public void PlaystatsHitContrabandDestroyLimit(int _p0) } } - public void StartBeingBoss(int _p0) + public void StartBeingBoss(int _p0, int _p1, int _p2) { unsafe { - if (fn__startBeingBoss == null) fn__startBeingBoss = (delegate* unmanaged[Cdecl]) funcTable[0x3EBEAC6C3F81F6BDUL]; + if (fn__startBeingBoss == null) fn__startBeingBoss = (delegate* unmanaged[Cdecl]) funcTable[0x3EBEAC6C3F81F6BDUL]; var success = false; - fn__startBeingBoss(&success, _p0); + fn__startBeingBoss(&success, _p0, _p1, _p2); if (!success) throw new Exception("Native execution failed"); } } @@ -89939,12 +91398,12 @@ public void StartBeingGoon(int _p0, int _p1, int _p2) } } - public void EndBeingBoss(int _p0, int _p1) + public void EndBeingBoss(int _p0, int _p1, int _p2) { unsafe { - if (fn__endBeingBoss == null) fn__endBeingBoss = (delegate* unmanaged[Cdecl]) funcTable[0xA3C53804BDB68ED2UL]; + if (fn__endBeingBoss == null) fn__endBeingBoss = (delegate* unmanaged[Cdecl]) funcTable[0xA3C53804BDB68ED2UL]; var success = false; - fn__endBeingBoss(&success, _p0, _p1); + fn__endBeingBoss(&success, _p0, _p1, _p2); if (!success) throw new Exception("Native execution failed"); } } @@ -90589,12 +92048,14 @@ public void PlaystatsHeist3Hack(int _p0, int _p1, int _p2, int _p3, int _p4, int } } - public void PlaystatsNpcPhone(int _p0, int _p1, int _p2, int _p3, int _p4, int _p5, int _p6, int _p7, int _p8, int _p9, int _p10, int _p11, int _p12) + public void PlaystatsNpcPhone(ref int _p0) { unsafe { - if (fn__playstatsNpcPhone == null) fn__playstatsNpcPhone = (delegate* unmanaged[Cdecl]) funcTable[0x0077F15613D36993UL]; + if (fn__playstatsNpcPhone == null) fn__playstatsNpcPhone = (delegate* unmanaged[Cdecl]) funcTable[0x0077F15613D36993UL]; var success = false; - fn__playstatsNpcPhone(&success, _p0, _p1, _p2, _p3, _p4, _p5, _p6, _p7, _p8, _p9, _p10, _p11, _p12); + var ref_p0 = _p0; + fn__playstatsNpcPhone(&success, &ref_p0); + _p0 = ref_p0; if (!success) throw new Exception("Native execution failed"); } } @@ -90679,12 +92140,12 @@ public void PlaystatsKillYourself() } } - public void PlaystatsFmMissionEnd(int _p0, int _p1, int _p2) + public void PlaystatsFmMissionEnd(int _p0, int _p1, int _p2, int _p3) { unsafe { - if (fn__playstatsFmMissionEnd == null) fn__playstatsFmMissionEnd = (delegate* unmanaged[Cdecl]) funcTable[0x46A70777BE6CEAB9UL]; + if (fn__playstatsFmMissionEnd == null) fn__playstatsFmMissionEnd = (delegate* unmanaged[Cdecl]) funcTable[0x46A70777BE6CEAB9UL]; var success = false; - fn__playstatsFmMissionEnd(&success, _p0, _p1, _p2); + fn__playstatsFmMissionEnd(&success, _p0, _p1, _p2, _p3); if (!success) throw new Exception("Native execution failed"); } } @@ -90849,6 +92310,16 @@ public void PlaystatsHubExit(int _p0) } } + public void PlaystatsVehDel(int _bossId1, int _bossId2, int _bossType, int _vehicleID, int _reason) + { + unsafe { + if (fn__playstatsVehDel == null) fn__playstatsVehDel = (delegate* unmanaged[Cdecl]) funcTable[0x10A691F5756416D0UL]; + var success = false; + fn__playstatsVehDel(&success, _bossId1, _bossId2, _bossType, _vehicleID, _reason); + if (!success) throw new Exception("Native execution failed"); + } + } + public void PlaystatsInventory(int _p0) { unsafe { @@ -90859,6 +92330,100 @@ public void PlaystatsInventory(int _p0) } } + public void PlaystatsAcidMissionEnd(int _p0) + { + unsafe { + if (fn__playstatsAcidMissionEnd == null) fn__playstatsAcidMissionEnd = (delegate* unmanaged[Cdecl]) funcTable[0x8A23D1324F6B2BACUL]; + var success = false; + fn__playstatsAcidMissionEnd(&success, _p0); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void PlaystatsAcidRnd(int _p0) + { + unsafe { + if (fn__playstatsAcidRnd == null) fn__playstatsAcidRnd = (delegate* unmanaged[Cdecl]) funcTable[0xCEACCF0550FDC5BAUL]; + var success = false; + fn__playstatsAcidRnd(&success, _p0); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void PlaystatsIdle(int _p0, int _p1, int _p2) + { + unsafe { + if (fn__playstatsIdle == null) fn__playstatsIdle = (delegate* unmanaged[Cdecl]) funcTable[0xEC9553A178E8F1D1UL]; + var success = false; + fn__playstatsIdle(&success, _p0, _p1, _p2); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void PlaystatsPlayerStyle(int _p0) + { + unsafe { + if (fn__playstatsPlayerStyle == null) fn__playstatsPlayerStyle = (delegate* unmanaged[Cdecl]) funcTable[0x48FAC5DC7AC6EA99UL]; + var success = false; + fn__playstatsPlayerStyle(&success, _p0); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void PlaystatsRandomEvent(int _p0) + { + unsafe { + if (fn__playstatsRandomEvent == null) fn__playstatsRandomEvent = (delegate* unmanaged[Cdecl]) funcTable[0x7EA06F970F999394UL]; + var success = false; + fn__playstatsRandomEvent(&success, _p0); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void PlaystatsAlert(ref int _data) + { + unsafe { + if (fn__playstatsAlert == null) fn__playstatsAlert = (delegate* unmanaged[Cdecl]) funcTable[0x5649CA22AF74E019UL]; + var success = false; + var ref_data = _data; + fn__playstatsAlert(&success, &ref_data); + _data = ref_data; + if (!success) throw new Exception("Native execution failed"); + } + } + + public void PlaystatsAttritionStageEnd(int _p0) + { + unsafe { + if (fn__playstatsAttritionStageEnd == null) fn__playstatsAttritionStageEnd = (delegate* unmanaged[Cdecl]) funcTable[0xBD642335A732F1A8UL]; + var success = false; + fn__playstatsAttritionStageEnd(&success, _p0); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void PlaystatsShowroomNav(int _p0, int _p1, uint _entity) + { + unsafe { + if (fn__playstatsShowroomNav == null) fn__playstatsShowroomNav = (delegate* unmanaged[Cdecl]) funcTable[0x961D4157B9B428DBUL]; + var success = false; + fn__playstatsShowroomNav(&success, _p0, _p1, _entity); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void PlaystatsShowroomOverview(ref int _data) + { + unsafe { + if (fn__playstatsShowroomOverview == null) fn__playstatsShowroomOverview = (delegate* unmanaged[Cdecl]) funcTable[0x151D6C04C9E2742FUL]; + var success = false; + var ref_data = _data; + fn__playstatsShowroomOverview(&success, &ref_data); + _data = ref_data; + if (!success) throw new Exception("Native execution failed"); + } + } + public void LoadAllObjectsNow() { unsafe { @@ -92240,16 +93805,16 @@ public void TaskOpenVehicleDoor(uint _ped, uint _vehicle, int _timeOut, int _sea } } - public void TaskEnterVehicle(IPlayer ped, uint vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName) => TaskEnterVehicle(ped.ScriptId, vehicle, timeout, seat, speed, flag, overrideEntryClipsetName); - public void TaskEnterVehicle(uint ped, IVehicle vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName) => TaskEnterVehicle(ped, vehicle.ScriptId, timeout, seat, speed, flag, overrideEntryClipsetName); - public void TaskEnterVehicle(IPlayer ped, IVehicle vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName) => TaskEnterVehicle(ped.ScriptId, vehicle.ScriptId, timeout, seat, speed, flag, overrideEntryClipsetName); - public void TaskEnterVehicle(uint _ped, uint _vehicle, int _timeout, int _seat, float _speed, int _flag, string _overrideEntryClipsetName) + public void TaskEnterVehicle(IPlayer ped, uint vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName, int p7) => TaskEnterVehicle(ped.ScriptId, vehicle, timeout, seat, speed, flag, overrideEntryClipsetName, p7); + public void TaskEnterVehicle(uint ped, IVehicle vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName, int p7) => TaskEnterVehicle(ped, vehicle.ScriptId, timeout, seat, speed, flag, overrideEntryClipsetName, p7); + public void TaskEnterVehicle(IPlayer ped, IVehicle vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName, int p7) => TaskEnterVehicle(ped.ScriptId, vehicle.ScriptId, timeout, seat, speed, flag, overrideEntryClipsetName, p7); + public void TaskEnterVehicle(uint _ped, uint _vehicle, int _timeout, int _seat, float _speed, int _flag, string _overrideEntryClipsetName, int _p7) { unsafe { - if (fn__taskEnterVehicle == null) fn__taskEnterVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xC20E50AA46D09CA8UL]; + if (fn__taskEnterVehicle == null) fn__taskEnterVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xC20E50AA46D09CA8UL]; var success = false; var ptr_overrideEntryClipsetName = MemoryUtils.StringToHGlobalUtf8(_overrideEntryClipsetName); - fn__taskEnterVehicle(&success, _ped, _vehicle, _timeout, _seat, _speed, _flag, ptr_overrideEntryClipsetName); + fn__taskEnterVehicle(&success, _ped, _vehicle, _timeout, _seat, _speed, _flag, ptr_overrideEntryClipsetName, _p7); Marshal.FreeHGlobal(ptr_overrideEntryClipsetName); if (!success) throw new Exception("Native execution failed"); } @@ -93872,14 +95437,14 @@ public void TaskClimbLadder(uint _ped, bool _fast) } } - public void TaskRappelDownWallUsingClipsetOverride(IPlayer ped, float x1, float y1, float z1, float x2, float y2, float z2, float minZ, int ropeHandle, string clipSet, int p10) => TaskRappelDownWallUsingClipsetOverride(ped.ScriptId, x1, y1, z1, x2, y2, z2, minZ, ropeHandle, clipSet, p10); - public void TaskRappelDownWallUsingClipsetOverride(uint _ped, float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, float _minZ, int _ropeHandle, string _clipSet, int _p10) + public void TaskRappelDownWallUsingClipsetOverride(IPlayer ped, float x1, float y1, float z1, float x2, float y2, float z2, float minZ, int ropeHandle, string clipSet, int p10, int p11) => TaskRappelDownWallUsingClipsetOverride(ped.ScriptId, x1, y1, z1, x2, y2, z2, minZ, ropeHandle, clipSet, p10, p11); + public void TaskRappelDownWallUsingClipsetOverride(uint _ped, float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, float _minZ, int _ropeHandle, string _clipSet, int _p10, int _p11) { unsafe { - if (fn__taskRappelDownWallUsingClipsetOverride == null) fn__taskRappelDownWallUsingClipsetOverride = (delegate* unmanaged[Cdecl]) funcTable[0xEAF66ACDDC794793UL]; + if (fn__taskRappelDownWallUsingClipsetOverride == null) fn__taskRappelDownWallUsingClipsetOverride = (delegate* unmanaged[Cdecl]) funcTable[0xEAF66ACDDC794793UL]; var success = false; var ptr_clipSet = MemoryUtils.StringToHGlobalUtf8(_clipSet); - fn__taskRappelDownWallUsingClipsetOverride(&success, _ped, _x1, _y1, _z1, _x2, _y2, _z2, _minZ, _ropeHandle, ptr_clipSet, _p10); + fn__taskRappelDownWallUsingClipsetOverride(&success, _ped, _x1, _y1, _z1, _x2, _y2, _z2, _minZ, _ropeHandle, ptr_clipSet, _p10, _p11); Marshal.FreeHGlobal(ptr_clipSet); if (!success) throw new Exception("Native execution failed"); } @@ -95559,13 +97124,13 @@ public string GetTaskMoveNetworkState(uint _ped) } } - public void SetTaskMoveNetworkAnimSet(IPlayer ped, uint clipSet, uint unkVariableClipSet) => SetTaskMoveNetworkAnimSet(ped.ScriptId, clipSet, unkVariableClipSet); - public void SetTaskMoveNetworkAnimSet(uint _ped, uint _clipSet, uint _unkVariableClipSet) + public void SetTaskMoveNetworkAnimSet(IPlayer ped, uint clipSet, uint variableClipSet) => SetTaskMoveNetworkAnimSet(ped.ScriptId, clipSet, variableClipSet); + public void SetTaskMoveNetworkAnimSet(uint _ped, uint _clipSet, uint _variableClipSet) { unsafe { if (fn__setTaskMoveNetworkAnimSet == null) fn__setTaskMoveNetworkAnimSet = (delegate* unmanaged[Cdecl]) funcTable[0x8423541E8B3A1589UL]; var success = false; - fn__setTaskMoveNetworkAnimSet(&success, _ped, _clipSet, _unkVariableClipSet); + fn__setTaskMoveNetworkAnimSet(&success, _ped, _clipSet, _variableClipSet); if (!success) throw new Exception("Native execution failed"); } } @@ -95676,6 +97241,17 @@ public bool SetTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed(uint _ped, } } + public void SetScriptTaskEnableCollisionOnNetworkCloneWhenFixed(IPlayer ped, bool enable) => SetScriptTaskEnableCollisionOnNetworkCloneWhenFixed(ped.ScriptId, enable); + public void SetScriptTaskEnableCollisionOnNetworkCloneWhenFixed(uint _ped, bool _enable) + { + unsafe { + if (fn__setScriptTaskEnableCollisionOnNetworkCloneWhenFixed == null) fn__setScriptTaskEnableCollisionOnNetworkCloneWhenFixed = (delegate* unmanaged[Cdecl]) funcTable[0x32F6EEF031F943DCUL]; + var success = false; + fn__setScriptTaskEnableCollisionOnNetworkCloneWhenFixed(&success, _ped, (byte) (_enable ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + } + } + public bool IsMoveBlendRatioStill(IPlayer ped) => IsMoveBlendRatioStill(ped.ScriptId); public bool IsMoveBlendRatioStill(uint _ped) { @@ -96455,6 +98031,29 @@ public void SetVehicleDontTerminateTaskWhenAchieved(uint _vehicle) } } + public void SetVehicleMaxLaunchEngineRevs(IVehicle vehicle, float modifier) => SetVehicleMaxLaunchEngineRevs(vehicle.ScriptId, modifier); + public void SetVehicleMaxLaunchEngineRevs(uint _vehicle, float _modifier) + { + unsafe { + if (fn__setVehicleMaxLaunchEngineRevs == null) fn__setVehicleMaxLaunchEngineRevs = (delegate* unmanaged[Cdecl]) funcTable[0x5AE614ECA5FDD423UL]; + var success = false; + fn__setVehicleMaxLaunchEngineRevs(&success, _vehicle, _modifier); + if (!success) throw new Exception("Native execution failed"); + } + } + + public float GetVehicleThrottle(IVehicle vehicle) => GetVehicleThrottle(vehicle.ScriptId); + public float GetVehicleThrottle(uint _vehicle) + { + unsafe { + if (fn__getVehicleThrottle == null) fn__getVehicleThrottle = (delegate* unmanaged[Cdecl]) funcTable[0x92D96892FC06AF22UL]; + var success = false; + var result = fn__getVehicleThrottle(&success, _vehicle); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + public void ExplodeVehicle(IVehicle vehicle, bool isAudible, bool isInvisible) => ExplodeVehicle(vehicle.ScriptId, isAudible, isInvisible); public void ExplodeVehicle(uint _vehicle, bool _isAudible, bool _isInvisible) { @@ -96532,6 +98131,18 @@ public void DetonateVehiclePhoneExplosiveDevice() } } + public bool HaveVehicleRearDoorsBeenBlownOpenByStickybomb(IVehicle vehicle) => HaveVehicleRearDoorsBeenBlownOpenByStickybomb(vehicle.ScriptId); + public bool HaveVehicleRearDoorsBeenBlownOpenByStickybomb(uint _vehicle) + { + unsafe { + if (fn__haveVehicleRearDoorsBeenBlownOpenByStickybomb == null) fn__haveVehicleRearDoorsBeenBlownOpenByStickybomb = (delegate* unmanaged[Cdecl]) funcTable[0x6B407F2525E93644UL]; + var success = false; + var result = fn__haveVehicleRearDoorsBeenBlownOpenByStickybomb(&success, _vehicle); + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + public void SetTaxiLights(IVehicle vehicle, bool state) => SetTaxiLights(vehicle.ScriptId, state); public void SetTaxiLights(uint _vehicle, bool _state) { @@ -96826,6 +98437,17 @@ public void SetBoatIgnoreLandProbes(int _p0, int _p1) } } + public void SetBoundsAffectWaterProbes(IVehicle vehicle, bool toggle) => SetBoundsAffectWaterProbes(vehicle.ScriptId, toggle); + public void SetBoundsAffectWaterProbes(uint _vehicle, bool _toggle) + { + unsafe { + if (fn__setBoundsAffectWaterProbes == null) fn__setBoundsAffectWaterProbes = (delegate* unmanaged[Cdecl]) funcTable[0x85FC953F6C6CBDE1UL]; + var success = false; + fn__setBoundsAffectWaterProbes(&success, _vehicle, (byte) (_toggle ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + } + } + public void SetBoatAnchor(IVehicle vehicle, bool toggle) => SetBoatAnchor(vehicle.ScriptId, toggle); public void SetBoatAnchor(uint _vehicle, bool _toggle) { @@ -97152,6 +98774,17 @@ public bool IsVehicleBeingBroughtToHalt(uint _vehicle) } } + public void LowerForkliftForks(IVehicle forklift) => LowerForkliftForks(forklift.ScriptId); + public void LowerForkliftForks(uint _forklift) + { + unsafe { + if (fn__lowerForkliftForks == null) fn__lowerForkliftForks = (delegate* unmanaged[Cdecl]) funcTable[0x923A293361DF44E5UL]; + var success = false; + fn__lowerForkliftForks(&success, _forklift); + if (!success) throw new Exception("Native execution failed"); + } + } + public void SetForkliftForkHeight(IVehicle vehicle, float height) => SetForkliftForkHeight(vehicle.ScriptId, height); public void SetForkliftForkHeight(uint _vehicle, float _height) { @@ -97759,12 +99392,12 @@ public void SetRandomTrains(bool _toggle) } } - public uint CreateMissionTrain(int _unkVariation, float _x, float _y, float _z, bool _direction, int _p5, int _p6) + public uint CreateMissionTrain(int _variation, float _x, float _y, float _z, bool _direction, int _p5, int _p6) { unsafe { if (fn__createMissionTrain == null) fn__createMissionTrain = (delegate* unmanaged[Cdecl]) funcTable[0x63C6CCA8E68AE8C8UL]; var success = false; - var result = fn__createMissionTrain(&success, _unkVariation, _x, _y, _z, (byte) (_direction ? 1 : 0), _p5, _p6); + var result = fn__createMissionTrain(&success, _variation, _x, _y, _z, (byte) (_direction ? 1 : 0), _p5, _p6); if (!success) throw new Exception("Native execution failed"); return result; } @@ -99990,6 +101623,53 @@ public void RequestVehicleHighDetailModel(uint _vehicle) } } + public int GetVehicleModelNumDriveGears(uint _vehicleModel) + { + unsafe { + if (fn__getVehicleModelNumDriveGears == null) fn__getVehicleModelNumDriveGears = (delegate* unmanaged[Cdecl]) funcTable[0x61F02E4E9A7A61EAUL]; + var success = false; + var result = fn__getVehicleModelNumDriveGears(&success, _vehicleModel); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + + public int GetVehicleMaxDriveGearCount(IVehicle vehicle) => GetVehicleMaxDriveGearCount(vehicle.ScriptId); + public int GetVehicleMaxDriveGearCount(uint _vehicle) + { + unsafe { + if (fn__getVehicleMaxDriveGearCount == null) fn__getVehicleMaxDriveGearCount = (delegate* unmanaged[Cdecl]) funcTable[0x24910C3D66BA770DUL]; + var success = false; + var result = fn__getVehicleMaxDriveGearCount(&success, _vehicle); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + + public int GetVehicleCurrentDriveGear(IVehicle vehicle) => GetVehicleCurrentDriveGear(vehicle.ScriptId); + public int GetVehicleCurrentDriveGear(uint _vehicle) + { + unsafe { + if (fn__getVehicleCurrentDriveGear == null) fn__getVehicleCurrentDriveGear = (delegate* unmanaged[Cdecl]) funcTable[0x56185A25D45A0DCDUL]; + var success = false; + var result = fn__getVehicleCurrentDriveGear(&success, _vehicle); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + + public float GetVehicleCurrentRevRatio(IVehicle vehicle) => GetVehicleCurrentRevRatio(vehicle.ScriptId); + public float GetVehicleCurrentRevRatio(uint _vehicle) + { + unsafe { + if (fn__getVehicleCurrentRevRatio == null) fn__getVehicleCurrentRevRatio = (delegate* unmanaged[Cdecl]) funcTable[0xF9DDA40BC293A61EUL]; + var success = false; + var result = fn__getVehicleCurrentRevRatio(&success, _vehicle); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + public void RemoveVehicleHighDetailModel(IVehicle vehicle) => RemoveVehicleHighDetailModel(vehicle.ScriptId); public void RemoveVehicleHighDetailModel(uint _vehicle) { @@ -100055,6 +101735,19 @@ public void SetVehicleTowTruckArmPosition(uint _vehicle, float _position) } } + public void SetAttachedVehicleToTowTruckArm(IVehicle towTruck, uint vehicle) => SetAttachedVehicleToTowTruckArm(towTruck.ScriptId, vehicle); + public void SetAttachedVehicleToTowTruckArm(uint towTruck, IVehicle vehicle) => SetAttachedVehicleToTowTruckArm(towTruck, vehicle.ScriptId); + public void SetAttachedVehicleToTowTruckArm(IVehicle towTruck, IVehicle vehicle) => SetAttachedVehicleToTowTruckArm(towTruck.ScriptId, vehicle.ScriptId); + public void SetAttachedVehicleToTowTruckArm(uint _towTruck, uint _vehicle) + { + unsafe { + if (fn__setAttachedVehicleToTowTruckArm == null) fn__setAttachedVehicleToTowTruckArm = (delegate* unmanaged[Cdecl]) funcTable[0x48BD57D0DD17786AUL]; + var success = false; + fn__setAttachedVehicleToTowTruckArm(&success, _towTruck, _vehicle); + if (!success) throw new Exception("Native execution failed"); + } + } + public void AttachVehicleToTowTruck(IVehicle towTruck, uint vehicle, bool rear, float hookOffsetX, float hookOffsetY, float hookOffsetZ) => AttachVehicleToTowTruck(towTruck.ScriptId, vehicle, rear, hookOffsetX, hookOffsetY, hookOffsetZ); public void AttachVehicleToTowTruck(uint towTruck, IVehicle vehicle, bool rear, float hookOffsetX, float hookOffsetY, float hookOffsetZ) => AttachVehicleToTowTruck(towTruck, vehicle.ScriptId, rear, hookOffsetX, hookOffsetY, hookOffsetZ); public void AttachVehicleToTowTruck(IVehicle towTruck, IVehicle vehicle, bool rear, float hookOffsetX, float hookOffsetY, float hookOffsetZ) => AttachVehicleToTowTruck(towTruck.ScriptId, vehicle.ScriptId, rear, hookOffsetX, hookOffsetY, hookOffsetZ); @@ -100324,6 +102017,17 @@ public void SetVehicleBrakeLights(uint _vehicle, bool _toggle) } } + public void SetVehicleTailLights(IVehicle vehicle, bool toggle) => SetVehicleTailLights(vehicle.ScriptId, toggle); + public void SetVehicleTailLights(uint _vehicle, bool _toggle) + { + unsafe { + if (fn__setVehicleTailLights == null) fn__setVehicleTailLights = (delegate* unmanaged[Cdecl]) funcTable[0x5815BD2763178DF4UL]; + var success = false; + fn__setVehicleTailLights(&success, _vehicle, (byte) (_toggle ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + } + } + public void SetVehicleHandbrake(IVehicle vehicle, bool toggle) => SetVehicleHandbrake(vehicle.ScriptId, toggle); public void SetVehicleHandbrake(uint _vehicle, bool _toggle) { @@ -100401,6 +102105,18 @@ public bool GetVehicleTrailerVehicle(uint _vehicle, ref uint _trailer) } } + public uint GetVehicleTrailerParentVehicle(IVehicle trailer) => GetVehicleTrailerParentVehicle(trailer.ScriptId); + public uint GetVehicleTrailerParentVehicle(uint _trailer) + { + unsafe { + if (fn__getVehicleTrailerParentVehicle == null) fn__getVehicleTrailerParentVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x80D9D32636369C92UL]; + var success = false; + var result = fn__getVehicleTrailerParentVehicle(&success, _trailer); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + public void SetVehicleUsesLargeRearRamp(IVehicle vehicle, bool toggle) => SetVehicleUsesLargeRearRamp(vehicle.ScriptId, toggle); public void SetVehicleUsesLargeRearRamp(uint _vehicle, bool _toggle) { @@ -101236,6 +102952,29 @@ public void OverridePlaneDamageThrehsold(uint _vehicle, float _health) } } + public void SetTransmissionReducedGearRatio(IVehicle vehicle, bool toggle) => SetTransmissionReducedGearRatio(vehicle.ScriptId, toggle); + public void SetTransmissionReducedGearRatio(uint _vehicle, bool _toggle) + { + unsafe { + if (fn__setTransmissionReducedGearRatio == null) fn__setTransmissionReducedGearRatio = (delegate* unmanaged[Cdecl]) funcTable[0x337EF33DA3DDB990UL]; + var success = false; + fn__setTransmissionReducedGearRatio(&success, _vehicle, (byte) (_toggle ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + } + } + + public int GetVehicleDesiredDriveGear(IVehicle vehicle) => GetVehicleDesiredDriveGear(vehicle.ScriptId); + public int GetVehicleDesiredDriveGear(uint _vehicle) + { + unsafe { + if (fn__getVehicleDesiredDriveGear == null) fn__getVehicleDesiredDriveGear = (delegate* unmanaged[Cdecl]) funcTable[0xFD8CE53356B5D745UL]; + var success = false; + var result = fn__getVehicleDesiredDriveGear(&success, _vehicle); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + public bool GetIsLeftVehicleHeadlightDamaged(IVehicle vehicle) => GetIsLeftVehicleHeadlightDamaged(vehicle.ScriptId); public bool GetIsLeftVehicleHeadlightDamaged(uint _vehicle) { @@ -102044,15 +103783,15 @@ public uint GetEntityAttachedToCargobob(int _p0) } } - public void AttachVehicleToCargobob(IVehicle vehicle, uint cargobob, int p2, float x, float y, float z) => AttachVehicleToCargobob(vehicle.ScriptId, cargobob, p2, x, y, z); - public void AttachVehicleToCargobob(uint vehicle, IVehicle cargobob, int p2, float x, float y, float z) => AttachVehicleToCargobob(vehicle, cargobob.ScriptId, p2, x, y, z); - public void AttachVehicleToCargobob(IVehicle vehicle, IVehicle cargobob, int p2, float x, float y, float z) => AttachVehicleToCargobob(vehicle.ScriptId, cargobob.ScriptId, p2, x, y, z); - public void AttachVehicleToCargobob(uint _vehicle, uint _cargobob, int _p2, float _x, float _y, float _z) + public void AttachVehicleToCargobob(IVehicle cargobob, uint vehicle, int p2, float x, float y, float z) => AttachVehicleToCargobob(cargobob.ScriptId, vehicle, p2, x, y, z); + public void AttachVehicleToCargobob(uint cargobob, IVehicle vehicle, int p2, float x, float y, float z) => AttachVehicleToCargobob(cargobob, vehicle.ScriptId, p2, x, y, z); + public void AttachVehicleToCargobob(IVehicle cargobob, IVehicle vehicle, int p2, float x, float y, float z) => AttachVehicleToCargobob(cargobob.ScriptId, vehicle.ScriptId, p2, x, y, z); + public void AttachVehicleToCargobob(uint _cargobob, uint _vehicle, int _p2, float _x, float _y, float _z) { unsafe { if (fn__attachVehicleToCargobob == null) fn__attachVehicleToCargobob = (delegate* unmanaged[Cdecl]) funcTable[0x4127F1D84E347769UL]; var success = false; - fn__attachVehicleToCargobob(&success, _vehicle, _cargobob, _p2, _x, _y, _z); + fn__attachVehicleToCargobob(&success, _cargobob, _vehicle, _p2, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); } } @@ -103519,6 +105258,16 @@ public void SetVehicleUseBoostButtonForWheelRetract(bool _toggle) } } + public void SetVehicleUseHornButtonForNitrous(bool _toggle) + { + unsafe { + if (fn__setVehicleUseHornButtonForNitrous == null) fn__setVehicleUseHornButtonForNitrous = (delegate* unmanaged[Cdecl]) funcTable[0x1980F68872CC2C3DUL]; + var success = false; + fn__setVehicleUseHornButtonForNitrous(&success, (byte) (_toggle ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + } + } + public void VehicleSetParachuteModelOverride(IVehicle vehicle, uint modelHash) => VehicleSetParachuteModelOverride(vehicle.ScriptId, modelHash); public void VehicleSetParachuteModelOverride(uint _vehicle, uint _modelHash) { @@ -103929,6 +105678,29 @@ public bool AreFoldingWingsDeployed(uint _vehicle) } } + public void SetDeployMissileBays(IVehicle vehicle, bool deploy) => SetDeployMissileBays(vehicle.ScriptId, deploy); + public void SetDeployMissileBays(uint _vehicle, bool _deploy) + { + unsafe { + if (fn__setDeployMissileBays == null) fn__setDeployMissileBays = (delegate* unmanaged[Cdecl]) funcTable[0x0C02468829E4AA65UL]; + var success = false; + fn__setDeployMissileBays(&success, _vehicle, (byte) (_deploy ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + } + } + + public bool AreMissileBaysDeployed(IVehicle vehicle) => AreMissileBaysDeployed(vehicle.ScriptId); + public bool AreMissileBaysDeployed(uint _vehicle) + { + unsafe { + if (fn__areMissileBaysDeployed == null) fn__areMissileBaysDeployed = (delegate* unmanaged[Cdecl]) funcTable[0xEA4743874D515F13UL]; + var success = false; + var result = fn__areMissileBaysDeployed(&success, _vehicle); + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + public void SetDipStraightDownWhenCrashingPlane(IVehicle vehicle, bool toggle) => SetDipStraightDownWhenCrashingPlane(vehicle.ScriptId, toggle); public void SetDipStraightDownWhenCrashingPlane(uint _vehicle, bool _toggle) { @@ -104093,6 +105865,96 @@ public void SetOverrideNitrousLevel(uint _vehicle, bool _toggle, float _level, f } } + public void SetNitrousIsActive(IVehicle vehicle, bool enabled) => SetNitrousIsActive(vehicle.ScriptId, enabled); + public void SetNitrousIsActive(uint _vehicle, bool _enabled) + { + unsafe { + if (fn__setNitrousIsActive == null) fn__setNitrousIsActive = (delegate* unmanaged[Cdecl]) funcTable[0x465EEA70AF251045UL]; + var success = false; + fn__setNitrousIsActive(&success, _vehicle, (byte) (_enabled ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void SetOverrideTractionLossMultiplier(IVehicle vehicle, float modifier) => SetOverrideTractionLossMultiplier(vehicle.ScriptId, modifier); + public void SetOverrideTractionLossMultiplier(uint _vehicle, float _modifier) + { + unsafe { + if (fn__setOverrideTractionLossMultiplier == null) fn__setOverrideTractionLossMultiplier = (delegate* unmanaged[Cdecl]) funcTable[0xAFD262ACCA64479AUL]; + var success = false; + fn__setOverrideTractionLossMultiplier(&success, _vehicle, _modifier); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void SetDriftSlipAngleLimits(IVehicle vehicle, float durationScalar, float amplitudeScalar, float slipAngleLimit) => SetDriftSlipAngleLimits(vehicle.ScriptId, durationScalar, amplitudeScalar, slipAngleLimit); + public void SetDriftSlipAngleLimits(uint _vehicle, float _durationScalar, float _amplitudeScalar, float _slipAngleLimit) + { + unsafe { + if (fn__setDriftSlipAngleLimits == null) fn__setDriftSlipAngleLimits = (delegate* unmanaged[Cdecl]) funcTable[0xDAF4C98C18AC6F06UL]; + var success = false; + fn__setDriftSlipAngleLimits(&success, _vehicle, _durationScalar, _amplitudeScalar, _slipAngleLimit); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void SetMinimumTimeBetweenGearShifts(IVehicle vehicle, int time) => SetMinimumTimeBetweenGearShifts(vehicle.ScriptId, time); + public void SetMinimumTimeBetweenGearShifts(uint _vehicle, int _time) + { + unsafe { + if (fn__setMinimumTimeBetweenGearShifts == null) fn__setMinimumTimeBetweenGearShifts = (delegate* unmanaged[Cdecl]) funcTable[0x16CFBC5E7EB32861UL]; + var success = false; + fn__setMinimumTimeBetweenGearShifts(&success, _vehicle, _time); + if (!success) throw new Exception("Native execution failed"); + } + } + + public void FullyChargeNitrous(IVehicle vehicle) => FullyChargeNitrous(vehicle.ScriptId); + public void FullyChargeNitrous(uint _vehicle) + { + unsafe { + if (fn__fullyChargeNitrous == null) fn__fullyChargeNitrous = (delegate* unmanaged[Cdecl]) funcTable[0x1A2BCC8C636F9226UL]; + var success = false; + fn__fullyChargeNitrous(&success, _vehicle); + if (!success) throw new Exception("Native execution failed"); + } + } + + public float GetRemainingNitrousDuration(IVehicle vehicle) => GetRemainingNitrousDuration(vehicle.ScriptId); + public float GetRemainingNitrousDuration(uint _vehicle) + { + unsafe { + if (fn__getRemainingNitrousDuration == null) fn__getRemainingNitrousDuration = (delegate* unmanaged[Cdecl]) funcTable[0xBEC4B8653462450EUL]; + var success = false; + var result = fn__getRemainingNitrousDuration(&success, _vehicle); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + + public bool IsNitrousActive(IVehicle vehicle) => IsNitrousActive(vehicle.ScriptId); + public bool IsNitrousActive(uint _vehicle) + { + unsafe { + if (fn__isNitrousActive == null) fn__isNitrousActive = (delegate* unmanaged[Cdecl]) funcTable[0x491E822B2C464FE4UL]; + var success = false; + var result = fn__isNitrousActive(&success, _vehicle); + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + + public void ClearNitrous(IVehicle vehicle) => ClearNitrous(vehicle.ScriptId); + public void ClearNitrous(uint _vehicle) + { + unsafe { + if (fn__clearNitrous == null) fn__clearNitrous = (delegate* unmanaged[Cdecl]) funcTable[0xC889AE921400E1EDUL]; + var success = false; + fn__clearNitrous(&success, _vehicle); + if (!success) throw new Exception("Native execution failed"); + } + } + public void SetIncreaseWheelCrushDamage(IVehicle vehicle, bool toggle) => SetIncreaseWheelCrushDamage(vehicle.ScriptId, toggle); public void SetIncreaseWheelCrushDamage(uint _vehicle, bool _toggle) { @@ -104147,6 +106009,17 @@ public void HideTombstone(uint _vehicle, bool _toggle) } } + public void ApplyEmpEffect(IVehicle vehicle) => ApplyEmpEffect(vehicle.ScriptId); + public void ApplyEmpEffect(uint _vehicle) + { + unsafe { + if (fn__applyEmpEffect == null) fn__applyEmpEffect = (delegate* unmanaged[Cdecl]) funcTable[0x249249D74F813EB2UL]; + var success = false; + fn__applyEmpEffect(&success, _vehicle); + if (!success) throw new Exception("Native execution failed"); + } + } + public bool GetIsVehicleDisabledByEmp(IVehicle vehicle) => GetIsVehicleDisabledByEmp(vehicle.ScriptId); public bool GetIsVehicleDisabledByEmp(uint _vehicle) { @@ -104215,6 +106088,17 @@ public void SetTyreWearRate(uint _vehicle, int _wheelIndex, float _multiplier) } } + public void SetTyreWearRateScale(IVehicle vehicle, int wheelIndex, float multiplier) => SetTyreWearRateScale(vehicle.ScriptId, wheelIndex, multiplier); + public void SetTyreWearRateScale(uint _vehicle, int _wheelIndex, float _multiplier) + { + unsafe { + if (fn__setTyreWearRateScale == null) fn__setTyreWearRateScale = (delegate* unmanaged[Cdecl]) funcTable[0x392183BB9EA57697UL]; + var success = false; + fn__setTyreWearRateScale(&success, _vehicle, _wheelIndex, _multiplier); + if (!success) throw new Exception("Native execution failed"); + } + } + public void SetTyreMaximumGripDifferenceDueToWearRate(IVehicle vehicle, int wheelIndex, float multiplier) => SetTyreMaximumGripDifferenceDueToWearRate(vehicle.ScriptId, wheelIndex, multiplier); public void SetTyreMaximumGripDifferenceDueToWearRate(uint _vehicle, int _wheelIndex, float _multiplier) { @@ -104293,6 +106177,55 @@ public void SetCheckForEnoughRoomForPed(uint _vehicle, bool _p1) } } + public void SetAllowCollisionWhenInVehicle(IVehicle vehicle, bool toggle) => SetAllowCollisionWhenInVehicle(vehicle.ScriptId, toggle); + public void SetAllowCollisionWhenInVehicle(uint _vehicle, bool _toggle) + { + unsafe { + if (fn__setAllowCollisionWhenInVehicle == null) fn__setAllowCollisionWhenInVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x27D27223E8EF22EDUL]; + var success = false; + fn__setAllowCollisionWhenInVehicle(&success, _vehicle, (byte) (_toggle ? 1 : 0)); + if (!success) throw new Exception("Native execution failed"); + } + } + + public bool IsVehicleGen9ExclusiveModel(uint _vehicleModel) + { + unsafe { + if (fn__isVehicleGen9ExclusiveModel == null) fn__isVehicleGen9ExclusiveModel = (delegate* unmanaged[Cdecl]) funcTable[0x6638C0F19DE692FEUL]; + var success = false; + var result = fn__isVehicleGen9ExclusiveModel(&success, _vehicleModel); + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + + public int GetVehicleMaxExhaustBoneCount() + { + unsafe { + if (fn__getVehicleMaxExhaustBoneCount == null) fn__getVehicleMaxExhaustBoneCount = (delegate* unmanaged[Cdecl]) funcTable[0x3EE18B00CD86C54FUL]; + var success = false; + var result = fn__getVehicleMaxExhaustBoneCount(&success); + if (!success) throw new Exception("Native execution failed"); + return result; + } + } + + public bool GetVehicleExhaustBone(IVehicle vehicle, int index, ref int boneIndex, ref bool axisX) => GetVehicleExhaustBone(vehicle.ScriptId, index, ref boneIndex, ref axisX); + public bool GetVehicleExhaustBone(uint _vehicle, int _index, ref int _boneIndex, ref bool _axisX) + { + unsafe { + if (fn__getVehicleExhaustBone == null) fn__getVehicleExhaustBone = (delegate* unmanaged[Cdecl]) funcTable[0xE728F090D538CB18UL]; + var success = false; + var ref_boneIndex = _boneIndex; + var ref_axisX = (byte) (_axisX ? 1 : 0); + var result = fn__getVehicleExhaustBone(&success, _vehicle, _index, &ref_boneIndex, &ref_axisX); + _boneIndex = ref_boneIndex; + _axisX = ref_axisX == 0 ? false : true; + if (!success) throw new Exception("Native execution failed"); + return result == 0 ? false : true; + } + } + public bool GetWaterHeight(float _x, float _y, float _z, ref float _height) { unsafe { @@ -105517,6 +107450,16 @@ public void RequestWeaponHighDetailModel(uint _weaponObject) } } + public void SetWeaponPedDamageModifier(uint _weapon, float _damageModifier) + { + unsafe { + if (fn__setWeaponPedDamageModifier == null) fn__setWeaponPedDamageModifier = (delegate* unmanaged[Cdecl]) funcTable[0x1091922715B68DF0UL]; + var success = false; + fn__setWeaponPedDamageModifier(&success, _weapon, _damageModifier); + if (!success) throw new Exception("Native execution failed"); + } + } + public void SetWeaponDamageModifier(uint _weaponHash, float _damageMultiplier) { unsafe { diff --git a/runtime b/runtime index 4201e8b99..ffbab1e9b 160000 --- a/runtime +++ b/runtime @@ -1 +1 @@ -Subproject commit 4201e8b9979d4726c9e7602b33e1d8214d10c6ca +Subproject commit ffbab1e9b02557d3e257ce1cd81c0f87840860ab