Skip to content

Commit a157398

Browse files
committed
Add IPlayer::SetAmmo
1 parent a35ffda commit a157398

File tree

7 files changed

+56
-7
lines changed

7 files changed

+56
-7
lines changed

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

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1261,6 +1261,16 @@ public string CloudAuthHash
12611261
}
12621262
}
12631263
}
1264+
1265+
public void SetAmmo(uint ammoHash, ushort ammo)
1266+
{
1267+
lock (Player)
1268+
{
1269+
if (!AsyncContext.CheckIfExistsNullable(Player)) return;
1270+
Player.SetAmmo(ammoHash, ammo);
1271+
}
1272+
}
1273+
12641274
public ushort GetAmmo(uint ammoHash)
12651275
{
12661276
lock (Player)
@@ -1270,6 +1280,15 @@ public ushort GetAmmo(uint ammoHash)
12701280
}
12711281
}
12721282

1283+
public void SetWeaponAmmo(uint weaponHash, ushort ammo)
1284+
{
1285+
lock (Player)
1286+
{
1287+
if (!AsyncContext.CheckIfExistsNullable(Player)) return;
1288+
Player.SetWeaponAmmo(weaponHash, ammo);
1289+
}
1290+
}
1291+
12731292
public ushort GetWeaponAmmo(uint weaponHash)
12741293
{
12751294
lock (Player)

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 = 1531;
817+
public readonly uint Methods = 1533;
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 != 13481148516987167850UL) Outdated = true;
3227+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 9336272802985087988UL) 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 & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ public unsafe interface IServerLibrary
163163
public delegate* unmanaged[Cdecl]<nint, byte, byte> Player_RemoveHeadOverlay { get; }
164164
public delegate* unmanaged[Cdecl]<nint, uint, byte> Player_RemoveWeapon { get; }
165165
public delegate* unmanaged[Cdecl]<nint, uint, uint, void> Player_RemoveWeaponComponent { get; }
166+
public delegate* unmanaged[Cdecl]<nint, uint, ushort, void> Player_SetAmmo { get; }
166167
public delegate* unmanaged[Cdecl]<nint, ushort, void> Player_SetArmor { get; }
167168
public delegate* unmanaged[Cdecl]<nint, byte, ushort, byte, byte, byte> Player_SetClothes { get; }
168169
public delegate* unmanaged[Cdecl]<nint, uint, void> Player_SetCurrentWeapon { get; }
@@ -187,6 +188,7 @@ public unsafe interface IServerLibrary
187188
public delegate* unmanaged[Cdecl]<nint, uint, void> Player_SetModel { get; }
188189
public delegate* unmanaged[Cdecl]<nint, byte, ushort, byte, byte> Player_SetProps { get; }
189190
public delegate* unmanaged[Cdecl]<nint, byte, void> Player_SetSendNames { get; }
191+
public delegate* unmanaged[Cdecl]<nint, uint, ushort, void> Player_SetWeaponAmmo { get; }
190192
public delegate* unmanaged[Cdecl]<nint, uint, byte, void> Player_SetWeaponTintIndex { get; }
191193
public delegate* unmanaged[Cdecl]<nint, uint, void> Player_SetWeather { get; }
192194
public delegate* unmanaged[Cdecl]<nint, Vector3, uint, void> Player_Spawn { get; }
@@ -408,7 +410,7 @@ public unsafe interface IServerLibrary
408410

409411
public unsafe class ServerLibrary : IServerLibrary
410412
{
411-
public readonly uint Methods = 1531;
413+
public readonly uint Methods = 1533;
412414
public delegate* unmanaged[Cdecl]<nint, nint, void> BaseObject_DeleteSyncedMetaData { get; }
413415
public delegate* unmanaged[Cdecl]<nint, nint, nint, void> BaseObject_SetSyncedMetaData { get; }
414416
public delegate* unmanaged[Cdecl]<nint, BaseObjectType*, nint> Blip_AttachedTo { get; }
@@ -562,6 +564,7 @@ public unsafe class ServerLibrary : IServerLibrary
562564
public delegate* unmanaged[Cdecl]<nint, byte, byte> Player_RemoveHeadOverlay { get; }
563565
public delegate* unmanaged[Cdecl]<nint, uint, byte> Player_RemoveWeapon { get; }
564566
public delegate* unmanaged[Cdecl]<nint, uint, uint, void> Player_RemoveWeaponComponent { get; }
567+
public delegate* unmanaged[Cdecl]<nint, uint, ushort, void> Player_SetAmmo { get; }
565568
public delegate* unmanaged[Cdecl]<nint, ushort, void> Player_SetArmor { get; }
566569
public delegate* unmanaged[Cdecl]<nint, byte, ushort, byte, byte, byte> Player_SetClothes { get; }
567570
public delegate* unmanaged[Cdecl]<nint, uint, void> Player_SetCurrentWeapon { get; }
@@ -586,6 +589,7 @@ public unsafe class ServerLibrary : IServerLibrary
586589
public delegate* unmanaged[Cdecl]<nint, uint, void> Player_SetModel { get; }
587590
public delegate* unmanaged[Cdecl]<nint, byte, ushort, byte, byte> Player_SetProps { get; }
588591
public delegate* unmanaged[Cdecl]<nint, byte, void> Player_SetSendNames { get; }
592+
public delegate* unmanaged[Cdecl]<nint, uint, ushort, void> Player_SetWeaponAmmo { get; }
589593
public delegate* unmanaged[Cdecl]<nint, uint, byte, void> Player_SetWeaponTintIndex { get; }
590594
public delegate* unmanaged[Cdecl]<nint, uint, void> Player_SetWeather { get; }
591595
public delegate* unmanaged[Cdecl]<nint, Vector3, uint, void> Player_Spawn { get; }
@@ -1109,6 +1113,8 @@ public unsafe class ServerLibrary : IServerLibrary
11091113
private static byte Player_RemoveWeaponFallback(nint _player, uint _weapon) => throw new Exceptions.OutdatedSdkException("Player_RemoveWeapon", "Player_RemoveWeapon SDK method is outdated. Please update your module nuget");
11101114
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_RemoveWeaponComponentDelegate(nint _player, uint _weapon, uint _component);
11111115
private static void Player_RemoveWeaponComponentFallback(nint _player, uint _weapon, uint _component) => throw new Exceptions.OutdatedSdkException("Player_RemoveWeaponComponent", "Player_RemoveWeaponComponent SDK method is outdated. Please update your module nuget");
1116+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetAmmoDelegate(nint _player, uint _ammoHash, ushort _ammo);
1117+
private static void Player_SetAmmoFallback(nint _player, uint _ammoHash, ushort _ammo) => throw new Exceptions.OutdatedSdkException("Player_SetAmmo", "Player_SetAmmo SDK method is outdated. Please update your module nuget");
11121118
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetArmorDelegate(nint _player, ushort _armor);
11131119
private static void Player_SetArmorFallback(nint _player, ushort _armor) => throw new Exceptions.OutdatedSdkException("Player_SetArmor", "Player_SetArmor SDK method is outdated. Please update your module nuget");
11141120
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_SetClothesDelegate(nint _player, byte _component, ushort _drawable, byte _texture, byte _palette);
@@ -1157,6 +1163,8 @@ public unsafe class ServerLibrary : IServerLibrary
11571163
private static byte Player_SetPropsFallback(nint _player, byte _component, ushort _drawable, byte _texture) => throw new Exceptions.OutdatedSdkException("Player_SetProps", "Player_SetProps SDK method is outdated. Please update your module nuget");
11581164
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetSendNamesDelegate(nint _player, byte _state);
11591165
private static void Player_SetSendNamesFallback(nint _player, byte _state) => throw new Exceptions.OutdatedSdkException("Player_SetSendNames", "Player_SetSendNames SDK method is outdated. Please update your module nuget");
1166+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetWeaponAmmoDelegate(nint _player, uint _weaponHash, ushort _ammo);
1167+
private static void Player_SetWeaponAmmoFallback(nint _player, uint _weaponHash, ushort _ammo) => throw new Exceptions.OutdatedSdkException("Player_SetWeaponAmmo", "Player_SetWeaponAmmo SDK method is outdated. Please update your module nuget");
11601168
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetWeaponTintIndexDelegate(nint _player, uint _weapon, byte _tintIndex);
11611169
private static void Player_SetWeaponTintIndexFallback(nint _player, uint _weapon, byte _tintIndex) => throw new Exceptions.OutdatedSdkException("Player_SetWeaponTintIndex", "Player_SetWeaponTintIndex SDK method is outdated. Please update your module nuget");
11621170
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetWeatherDelegate(nint _player, uint _weather);
@@ -1600,7 +1608,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
16001608
public ServerLibrary(Dictionary<ulong, IntPtr> funcTable)
16011609
{
16021610
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
1603-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 13481148516987167850UL) Outdated = true;
1611+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 9336272802985087988UL) Outdated = true;
16041612
BaseObject_DeleteSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<BaseObject_DeleteSyncedMetaDataDelegate>(funcTable, 8228424877092269355UL, BaseObject_DeleteSyncedMetaDataFallback);
16051613
BaseObject_SetSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint, nint, void>) GetUnmanagedPtr<BaseObject_SetSyncedMetaDataDelegate>(funcTable, 8002999088966424231UL, BaseObject_SetSyncedMetaDataFallback);
16061614
Blip_AttachedTo = (delegate* unmanaged[Cdecl]<nint, BaseObjectType*, nint>) GetUnmanagedPtr<Blip_AttachedToDelegate>(funcTable, 15602966080933483258UL, Blip_AttachedToFallback);
@@ -1754,6 +1762,7 @@ public ServerLibrary(Dictionary<ulong, IntPtr> funcTable)
17541762
Player_RemoveHeadOverlay = (delegate* unmanaged[Cdecl]<nint, byte, byte>) GetUnmanagedPtr<Player_RemoveHeadOverlayDelegate>(funcTable, 12300710546613769705UL, Player_RemoveHeadOverlayFallback);
17551763
Player_RemoveWeapon = (delegate* unmanaged[Cdecl]<nint, uint, byte>) GetUnmanagedPtr<Player_RemoveWeaponDelegate>(funcTable, 6739305111416325852UL, Player_RemoveWeaponFallback);
17561764
Player_RemoveWeaponComponent = (delegate* unmanaged[Cdecl]<nint, uint, uint, void>) GetUnmanagedPtr<Player_RemoveWeaponComponentDelegate>(funcTable, 937601034617427157UL, Player_RemoveWeaponComponentFallback);
1765+
Player_SetAmmo = (delegate* unmanaged[Cdecl]<nint, uint, ushort, void>) GetUnmanagedPtr<Player_SetAmmoDelegate>(funcTable, 7259744676523289652UL, Player_SetAmmoFallback);
17571766
Player_SetArmor = (delegate* unmanaged[Cdecl]<nint, ushort, void>) GetUnmanagedPtr<Player_SetArmorDelegate>(funcTable, 5448975639456714442UL, Player_SetArmorFallback);
17581767
Player_SetClothes = (delegate* unmanaged[Cdecl]<nint, byte, ushort, byte, byte, byte>) GetUnmanagedPtr<Player_SetClothesDelegate>(funcTable, 11224074188063298114UL, Player_SetClothesFallback);
17591768
Player_SetCurrentWeapon = (delegate* unmanaged[Cdecl]<nint, uint, void>) GetUnmanagedPtr<Player_SetCurrentWeaponDelegate>(funcTable, 1968418760268978302UL, Player_SetCurrentWeaponFallback);
@@ -1778,6 +1787,7 @@ public ServerLibrary(Dictionary<ulong, IntPtr> funcTable)
17781787
Player_SetModel = (delegate* unmanaged[Cdecl]<nint, uint, void>) GetUnmanagedPtr<Player_SetModelDelegate>(funcTable, 13570087722085690158UL, Player_SetModelFallback);
17791788
Player_SetProps = (delegate* unmanaged[Cdecl]<nint, byte, ushort, byte, byte>) GetUnmanagedPtr<Player_SetPropsDelegate>(funcTable, 6668196575965816060UL, Player_SetPropsFallback);
17801789
Player_SetSendNames = (delegate* unmanaged[Cdecl]<nint, byte, void>) GetUnmanagedPtr<Player_SetSendNamesDelegate>(funcTable, 15189973730348812706UL, Player_SetSendNamesFallback);
1790+
Player_SetWeaponAmmo = (delegate* unmanaged[Cdecl]<nint, uint, ushort, void>) GetUnmanagedPtr<Player_SetWeaponAmmoDelegate>(funcTable, 13801899382441164836UL, Player_SetWeaponAmmoFallback);
17811791
Player_SetWeaponTintIndex = (delegate* unmanaged[Cdecl]<nint, uint, byte, void>) GetUnmanagedPtr<Player_SetWeaponTintIndexDelegate>(funcTable, 968905854061954392UL, Player_SetWeaponTintIndexFallback);
17821792
Player_SetWeather = (delegate* unmanaged[Cdecl]<nint, uint, void>) GetUnmanagedPtr<Player_SetWeatherDelegate>(funcTable, 1822619990745107975UL, Player_SetWeatherFallback);
17831793
Player_Spawn = (delegate* unmanaged[Cdecl]<nint, Vector3, uint, void>) GetUnmanagedPtr<Player_SpawnDelegate>(funcTable, 5945475651017052621UL, Player_SpawnFallback);

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 = 1531;
352+
public readonly uint Methods = 1533;
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 != 13481148516987167850UL) Outdated = true;
1367+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 9336272802985087988UL) 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: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,9 @@ void PlayAnimation(string animDict, string animName, float blendInSpeed, float b
432432

433433
string SocialClubName { get; }
434434
string CloudAuthHash { get; }
435+
void SetAmmo(uint ammoHash, ushort ammo);
435436
ushort GetAmmo(uint ammoHash);
437+
void SetWeaponAmmo(uint weaponHash, ushort ammo);
436438
ushort GetWeaponAmmo(uint weaponHash);
437439
}
438440

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,15 @@ public string CloudAuthHash
203203
}
204204
}
205205

206+
public void SetAmmo(uint ammoHash, ushort ammo)
207+
{
208+
unsafe
209+
{
210+
CheckIfEntityExists();
211+
Core.Library.Server.Player_SetAmmo(PlayerNativePointer, ammoHash, ammo);
212+
}
213+
}
214+
206215
public ushort GetAmmo(uint ammoHash)
207216
{
208217
unsafe
@@ -212,6 +221,15 @@ public ushort GetAmmo(uint ammoHash)
212221
}
213222
}
214223

224+
public void SetWeaponAmmo(uint weaponHash, ushort ammo)
225+
{
226+
unsafe
227+
{
228+
CheckIfEntityExists();
229+
Core.Library.Server.Player_SetWeaponAmmo(PlayerNativePointer, weaponHash, ammo);
230+
}
231+
}
232+
215233
public ushort GetWeaponAmmo(uint weaponHash)
216234
{
217235
unsafe

runtime

0 commit comments

Comments
 (0)