Skip to content

Commit 2a9ddc8

Browse files
committed
update to latest runtime
1 parent 67d30d2 commit 2a9ddc8

File tree

9 files changed

+45
-19
lines changed

9 files changed

+45
-19
lines changed

api/AltV.Net.Async/AltAsync.Player.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,8 @@ public static Task RemoveWeaponAsync(this IPlayer player, uint weapon) =>
131131
AltVAsync.Schedule(() => player.RemoveWeapon(weapon));
132132

133133
[Obsolete("Use async entities instead")]
134-
public static Task RemoveAllWeaponsAsync(this IPlayer player) =>
135-
AltVAsync.Schedule(player.RemoveAllWeapons);
134+
public static Task RemoveAllWeaponsAsync(this IPlayer player, bool removeAllAmmo) =>
135+
AltVAsync.Schedule(() => player.RemoveAllWeapons(removeAllAmmo));
136136

137137
[Obsolete("Use async entities instead")]
138138
public static Task SetMaxHealthAsync(this IPlayer player, ushort maxhealth) =>

api/AltV.Net.Async/Elements/Entities/AsyncPlayer.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -622,12 +622,21 @@ public bool RemoveWeapon(uint weapon)
622622
}
623623
}
624624

625-
public void RemoveAllWeapons()
625+
public void RemoveAllWeapons(bool removeAllAmmo)
626626
{
627627
lock (Player)
628628
{
629629
if (!AsyncContext.CheckIfExistsNullable(Player)) return;
630-
Player.RemoveAllWeapons();
630+
Player.RemoveAllWeapons(removeAllAmmo);
631+
}
632+
}
633+
634+
public bool HasWeapon(uint weapon)
635+
{
636+
lock (Player)
637+
{
638+
if (!AsyncContext.CheckIfExistsNullable(Player)) return default;
639+
return Player.HasWeapon(weapon);
631640
}
632641
}
633642

api/AltV.Net.CApi.Generator/TypeRegistry.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public static class TypeRegistry
4545
{ "alt::IWeaponData*", "nint" },
4646
{ "alt::IWeaponData*&", "nint*" },
4747
{ "alt::IObject*", "nint" },
48+
{ "alt::Weapon*", "nint" },
4849
{ "alt::IObject**", "nint" },
4950
{ "alt::IObject*&", "nint*" },
5051
{ "alt::IMapData*", "nint" },

api/AltV.Net.CApi/Libraries/ClientLibrary.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -814,7 +814,7 @@ public unsafe interface IClientLibrary
814814

815815
public unsafe class ClientLibrary : IClientLibrary
816816
{
817-
public readonly uint Methods = 1534;
817+
public readonly uint Methods = 1535;
818818
public delegate* unmanaged[Cdecl]<nint, nint, void> Audio_AddOutput_Entity { get; }
819819
public delegate* unmanaged[Cdecl]<nint, uint, void> Audio_AddOutput_ScriptId { get; }
820820
public delegate* unmanaged[Cdecl]<nint, nint> Audio_GetBaseObject { get; }
@@ -3224,7 +3224,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
32243224
public ClientLibrary(Dictionary<ulong, IntPtr> funcTable)
32253225
{
32263226
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
3227-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 699052605656462254UL) Outdated = true;
3227+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 13253898754940504080UL) Outdated = true;
32283228
Audio_AddOutput_Entity = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<Audio_AddOutput_EntityDelegate>(funcTable, 9879036518735269522UL, Audio_AddOutput_EntityFallback);
32293229
Audio_AddOutput_ScriptId = (delegate* unmanaged[Cdecl]<nint, uint, void>) GetUnmanagedPtr<Audio_AddOutput_ScriptIdDelegate>(funcTable, 14116998947805478300UL, Audio_AddOutput_ScriptIdFallback);
32303230
Audio_GetBaseObject = (delegate* unmanaged[Cdecl]<nint, nint>) GetUnmanagedPtr<Audio_GetBaseObjectDelegate>(funcTable, 6330360502401226894UL, Audio_GetBaseObjectFallback);

api/AltV.Net.CApi/Libraries/ServerLibrary.cs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ public unsafe interface IServerLibrary
150150
public delegate* unmanaged[Cdecl]<nint, uint, byte> Player_GetWeaponTintIndex { get; }
151151
public delegate* unmanaged[Cdecl]<nint, uint, int, byte, void> Player_GiveWeapon { get; }
152152
public delegate* unmanaged[Cdecl]<nint, nint, byte> Player_HasLocalMetaData { get; }
153+
public delegate* unmanaged[Cdecl]<nint, uint, byte> Player_HasWeapon { get; }
153154
public delegate* unmanaged[Cdecl]<nint, uint, uint, byte> Player_HasWeaponComponent { get; }
154155
public delegate* unmanaged[Cdecl]<nint, byte> Player_IsConnected { get; }
155156
public delegate* unmanaged[Cdecl]<nint, byte> Player_IsCrouching { get; }
@@ -159,7 +160,7 @@ public unsafe interface IServerLibrary
159160
public delegate* unmanaged[Cdecl]<nint, nint, void> Player_Kick { get; }
160161
public delegate* unmanaged[Cdecl]<nint, nint, nint, uint, void> Player_PlayAmbientSpeech { get; }
161162
public delegate* unmanaged[Cdecl]<nint, nint, nint, float, float, int, int, float, byte, byte, byte, void> Player_PlayAnimation { get; }
162-
public delegate* unmanaged[Cdecl]<nint, void> Player_RemoveAllWeapons { get; }
163+
public delegate* unmanaged[Cdecl]<nint, byte, void> Player_RemoveAllWeapons { get; }
163164
public delegate* unmanaged[Cdecl]<nint, byte, byte> Player_RemoveFaceFeature { get; }
164165
public delegate* unmanaged[Cdecl]<nint, byte, byte> Player_RemoveHeadOverlay { get; }
165166
public delegate* unmanaged[Cdecl]<nint, uint, byte> Player_RemoveWeapon { get; }
@@ -411,7 +412,7 @@ public unsafe interface IServerLibrary
411412

412413
public unsafe class ServerLibrary : IServerLibrary
413414
{
414-
public readonly uint Methods = 1534;
415+
public readonly uint Methods = 1535;
415416
public delegate* unmanaged[Cdecl]<nint, nint, void> BaseObject_DeleteSyncedMetaData { get; }
416417
public delegate* unmanaged[Cdecl]<nint, nint, nint, void> BaseObject_SetSyncedMetaData { get; }
417418
public delegate* unmanaged[Cdecl]<nint, BaseObjectType*, nint> Blip_AttachedTo { get; }
@@ -552,6 +553,7 @@ public unsafe class ServerLibrary : IServerLibrary
552553
public delegate* unmanaged[Cdecl]<nint, uint, byte> Player_GetWeaponTintIndex { get; }
553554
public delegate* unmanaged[Cdecl]<nint, uint, int, byte, void> Player_GiveWeapon { get; }
554555
public delegate* unmanaged[Cdecl]<nint, nint, byte> Player_HasLocalMetaData { get; }
556+
public delegate* unmanaged[Cdecl]<nint, uint, byte> Player_HasWeapon { get; }
555557
public delegate* unmanaged[Cdecl]<nint, uint, uint, byte> Player_HasWeaponComponent { get; }
556558
public delegate* unmanaged[Cdecl]<nint, byte> Player_IsConnected { get; }
557559
public delegate* unmanaged[Cdecl]<nint, byte> Player_IsCrouching { get; }
@@ -561,7 +563,7 @@ public unsafe class ServerLibrary : IServerLibrary
561563
public delegate* unmanaged[Cdecl]<nint, nint, void> Player_Kick { get; }
562564
public delegate* unmanaged[Cdecl]<nint, nint, nint, uint, void> Player_PlayAmbientSpeech { get; }
563565
public delegate* unmanaged[Cdecl]<nint, nint, nint, float, float, int, int, float, byte, byte, byte, void> Player_PlayAnimation { get; }
564-
public delegate* unmanaged[Cdecl]<nint, void> Player_RemoveAllWeapons { get; }
566+
public delegate* unmanaged[Cdecl]<nint, byte, void> Player_RemoveAllWeapons { get; }
565567
public delegate* unmanaged[Cdecl]<nint, byte, byte> Player_RemoveFaceFeature { get; }
566568
public delegate* unmanaged[Cdecl]<nint, byte, byte> Player_RemoveHeadOverlay { get; }
567569
public delegate* unmanaged[Cdecl]<nint, uint, byte> Player_RemoveWeapon { get; }
@@ -1089,6 +1091,8 @@ public unsafe class ServerLibrary : IServerLibrary
10891091
private static void Player_GiveWeaponFallback(nint _player, uint _weapon, int _ammo, byte _selectWeapon) => throw new Exceptions.OutdatedSdkException("Player_GiveWeapon", "Player_GiveWeapon SDK method is outdated. Please update your module nuget");
10901092
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_HasLocalMetaDataDelegate(nint _player, nint _key);
10911093
private static byte Player_HasLocalMetaDataFallback(nint _player, nint _key) => throw new Exceptions.OutdatedSdkException("Player_HasLocalMetaData", "Player_HasLocalMetaData SDK method is outdated. Please update your module nuget");
1094+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_HasWeaponDelegate(nint _player, uint _weapon);
1095+
private static byte Player_HasWeaponFallback(nint _player, uint _weapon) => throw new Exceptions.OutdatedSdkException("Player_HasWeapon", "Player_HasWeapon SDK method is outdated. Please update your module nuget");
10921096
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_HasWeaponComponentDelegate(nint _player, uint _weapon, uint _component);
10931097
private static byte Player_HasWeaponComponentFallback(nint _player, uint _weapon, uint _component) => throw new Exceptions.OutdatedSdkException("Player_HasWeaponComponent", "Player_HasWeaponComponent SDK method is outdated. Please update your module nuget");
10941098
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsConnectedDelegate(nint _player);
@@ -1107,8 +1111,8 @@ public unsafe class ServerLibrary : IServerLibrary
11071111
private static void Player_PlayAmbientSpeechFallback(nint _player, nint _speechName, nint _speechParam, uint _speechDictHash) => throw new Exceptions.OutdatedSdkException("Player_PlayAmbientSpeech", "Player_PlayAmbientSpeech SDK method is outdated. Please update your module nuget");
11081112
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_PlayAnimationDelegate(nint _player, nint _animDict, nint _animName, float _blendInSpeed, float _blendOutSpeed, int _duration, int _flags, float _playbackRate, byte _lockX, byte _lockY, byte _lockZ);
11091113
private static void Player_PlayAnimationFallback(nint _player, nint _animDict, nint _animName, float _blendInSpeed, float _blendOutSpeed, int _duration, int _flags, float _playbackRate, byte _lockX, byte _lockY, byte _lockZ) => throw new Exceptions.OutdatedSdkException("Player_PlayAnimation", "Player_PlayAnimation SDK method is outdated. Please update your module nuget");
1110-
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_RemoveAllWeaponsDelegate(nint _player);
1111-
private static void Player_RemoveAllWeaponsFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_RemoveAllWeapons", "Player_RemoveAllWeapons SDK method is outdated. Please update your module nuget");
1114+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_RemoveAllWeaponsDelegate(nint _player, byte _removeAllAmmo);
1115+
private static void Player_RemoveAllWeaponsFallback(nint _player, byte _removeAllAmmo) => throw new Exceptions.OutdatedSdkException("Player_RemoveAllWeapons", "Player_RemoveAllWeapons SDK method is outdated. Please update your module nuget");
11121116
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_RemoveFaceFeatureDelegate(nint _player, byte _index);
11131117
private static byte Player_RemoveFaceFeatureFallback(nint _player, byte _index) => throw new Exceptions.OutdatedSdkException("Player_RemoveFaceFeature", "Player_RemoveFaceFeature SDK method is outdated. Please update your module nuget");
11141118
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_RemoveHeadOverlayDelegate(nint _player, byte _overlayID);
@@ -1612,7 +1616,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
16121616
public ServerLibrary(Dictionary<ulong, IntPtr> funcTable)
16131617
{
16141618
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
1615-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 699052605656462254UL) Outdated = true;
1619+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 13253898754940504080UL) Outdated = true;
16161620
BaseObject_DeleteSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<BaseObject_DeleteSyncedMetaDataDelegate>(funcTable, 8228424877092269355UL, BaseObject_DeleteSyncedMetaDataFallback);
16171621
BaseObject_SetSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint, nint, void>) GetUnmanagedPtr<BaseObject_SetSyncedMetaDataDelegate>(funcTable, 8002999088966424231UL, BaseObject_SetSyncedMetaDataFallback);
16181622
Blip_AttachedTo = (delegate* unmanaged[Cdecl]<nint, BaseObjectType*, nint>) GetUnmanagedPtr<Blip_AttachedToDelegate>(funcTable, 15602966080933483258UL, Blip_AttachedToFallback);
@@ -1753,6 +1757,7 @@ public ServerLibrary(Dictionary<ulong, IntPtr> funcTable)
17531757
Player_GetWeaponTintIndex = (delegate* unmanaged[Cdecl]<nint, uint, byte>) GetUnmanagedPtr<Player_GetWeaponTintIndexDelegate>(funcTable, 7900539810461516189UL, Player_GetWeaponTintIndexFallback);
17541758
Player_GiveWeapon = (delegate* unmanaged[Cdecl]<nint, uint, int, byte, void>) GetUnmanagedPtr<Player_GiveWeaponDelegate>(funcTable, 5246190565479056930UL, Player_GiveWeaponFallback);
17551759
Player_HasLocalMetaData = (delegate* unmanaged[Cdecl]<nint, nint, byte>) GetUnmanagedPtr<Player_HasLocalMetaDataDelegate>(funcTable, 887625289441263538UL, Player_HasLocalMetaDataFallback);
1760+
Player_HasWeapon = (delegate* unmanaged[Cdecl]<nint, uint, byte>) GetUnmanagedPtr<Player_HasWeaponDelegate>(funcTable, 6222690685225109950UL, Player_HasWeaponFallback);
17561761
Player_HasWeaponComponent = (delegate* unmanaged[Cdecl]<nint, uint, uint, byte>) GetUnmanagedPtr<Player_HasWeaponComponentDelegate>(funcTable, 18283733509389143244UL, Player_HasWeaponComponentFallback);
17571762
Player_IsConnected = (delegate* unmanaged[Cdecl]<nint, byte>) GetUnmanagedPtr<Player_IsConnectedDelegate>(funcTable, 16462043613168172496UL, Player_IsConnectedFallback);
17581763
Player_IsCrouching = (delegate* unmanaged[Cdecl]<nint, byte>) GetUnmanagedPtr<Player_IsCrouchingDelegate>(funcTable, 14630872318254829849UL, Player_IsCrouchingFallback);
@@ -1762,7 +1767,7 @@ public ServerLibrary(Dictionary<ulong, IntPtr> funcTable)
17621767
Player_Kick = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<Player_KickDelegate>(funcTable, 1188245696791696101UL, Player_KickFallback);
17631768
Player_PlayAmbientSpeech = (delegate* unmanaged[Cdecl]<nint, nint, nint, uint, void>) GetUnmanagedPtr<Player_PlayAmbientSpeechDelegate>(funcTable, 8410706621915957253UL, Player_PlayAmbientSpeechFallback);
17641769
Player_PlayAnimation = (delegate* unmanaged[Cdecl]<nint, nint, nint, float, float, int, int, float, byte, byte, byte, void>) GetUnmanagedPtr<Player_PlayAnimationDelegate>(funcTable, 3904282782623490761UL, Player_PlayAnimationFallback);
1765-
Player_RemoveAllWeapons = (delegate* unmanaged[Cdecl]<nint, void>) GetUnmanagedPtr<Player_RemoveAllWeaponsDelegate>(funcTable, 17492760648600181256UL, Player_RemoveAllWeaponsFallback);
1770+
Player_RemoveAllWeapons = (delegate* unmanaged[Cdecl]<nint, byte, void>) GetUnmanagedPtr<Player_RemoveAllWeaponsDelegate>(funcTable, 2232062854990357196UL, Player_RemoveAllWeaponsFallback);
17661771
Player_RemoveFaceFeature = (delegate* unmanaged[Cdecl]<nint, byte, byte>) GetUnmanagedPtr<Player_RemoveFaceFeatureDelegate>(funcTable, 1204109734587833282UL, Player_RemoveFaceFeatureFallback);
17671772
Player_RemoveHeadOverlay = (delegate* unmanaged[Cdecl]<nint, byte, byte>) GetUnmanagedPtr<Player_RemoveHeadOverlayDelegate>(funcTable, 12300710546613769705UL, Player_RemoveHeadOverlayFallback);
17681773
Player_RemoveWeapon = (delegate* unmanaged[Cdecl]<nint, uint, byte>) GetUnmanagedPtr<Player_RemoveWeaponDelegate>(funcTable, 6739305111416325852UL, Player_RemoveWeaponFallback);

api/AltV.Net.CApi/Libraries/SharedLibrary.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ public unsafe interface ISharedLibrary
349349

350350
public unsafe class SharedLibrary : ISharedLibrary
351351
{
352-
public readonly uint Methods = 1534;
352+
public readonly uint Methods = 1535;
353353
public delegate* unmanaged[Cdecl]<nint, uint> Audio_GetID { get; }
354354
public delegate* unmanaged[Cdecl]<nint, nint, void> BaseObject_DeleteMetaData { get; }
355355
public delegate* unmanaged[Cdecl]<nint, void> BaseObject_DestructCache { get; }
@@ -1364,7 +1364,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
13641364
public SharedLibrary(Dictionary<ulong, IntPtr> funcTable)
13651365
{
13661366
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
1367-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 699052605656462254UL) Outdated = true;
1367+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 13253898754940504080UL) Outdated = true;
13681368
Audio_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<Audio_GetIDDelegate>(funcTable, 4464042055475980737UL, Audio_GetIDFallback);
13691369
BaseObject_DeleteMetaData = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<BaseObject_DeleteMetaDataDelegate>(funcTable, 8032676411671743849UL, BaseObject_DeleteMetaDataFallback);
13701370
BaseObject_DestructCache = (delegate* unmanaged[Cdecl]<nint, void>) GetUnmanagedPtr<BaseObject_DestructCacheDelegate>(funcTable, 6691163275156255752UL, BaseObject_DestructCacheFallback);

api/AltV.Net/Elements/Entities/IPlayer.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,9 @@ void SetDateTime(int day, int month, int year, int hour,
140140
/// <summary>
141141
/// Removes all player weapons
142142
/// </summary>
143-
void RemoveAllWeapons();
143+
void RemoveAllWeapons(bool removeAllAmmo);
144+
145+
bool HasWeapon(uint weapon);
144146

145147
/// <summary>
146148
/// Kicks the player with reason

api/AltV.Net/Elements/Entities/Player.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -812,12 +812,21 @@ public bool RemoveWeapon(uint weapon)
812812
}
813813
}
814814

815-
public void RemoveAllWeapons()
815+
public void RemoveAllWeapons(bool removeAllAmmo)
816816
{
817817
unsafe
818818
{
819819
CheckIfEntityExists();
820-
Core.Library.Server.Player_RemoveAllWeapons(PlayerNativePointer);
820+
Core.Library.Server.Player_RemoveAllWeapons(PlayerNativePointer, removeAllAmmo ? (byte)1:(byte)0);
821+
}
822+
}
823+
824+
public bool HasWeapon(uint weapon)
825+
{
826+
unsafe
827+
{
828+
CheckIfEntityExists();
829+
return Core.Library.Server.Player_HasWeapon(PlayerNativePointer, weapon) == 1;
821830
}
822831
}
823832

runtime

0 commit comments

Comments
 (0)