Skip to content

Commit 5bd1802

Browse files
committed
add player playscenario
1 parent 8dc832f commit 5bd1802

File tree

7 files changed

+33
-7
lines changed

7 files changed

+33
-7
lines changed

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1433,6 +1433,15 @@ public Decoration[] GetDecorations()
14331433
}
14341434
}
14351435

1436+
public void PlayScenario(string name)
1437+
{
1438+
lock (Player)
1439+
{
1440+
if (!AsyncContext.CheckIfExistsNullable(Player)) return;
1441+
Player.PlayScenario(name);
1442+
}
1443+
}
1444+
14361445
[Obsolete("Use new async API instead")]
14371446
public IPlayer ToAsync(IAsyncContext asyncContext)
14381447
{

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

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

866866
public unsafe class ClientLibrary : IClientLibrary
867867
{
868-
public readonly uint Methods = 1618;
868+
public readonly uint Methods = 1619;
869869
public delegate* unmanaged[Cdecl]<nint, nint, void> Audio_AddOutput { get; }
870870
public delegate* unmanaged[Cdecl]<nint, nint> Audio_GetBaseObject { get; }
871871
public delegate* unmanaged[Cdecl]<nint, double> Audio_GetCurrentTime { get; }
@@ -3428,7 +3428,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
34283428
public ClientLibrary(Dictionary<ulong, IntPtr> funcTable)
34293429
{
34303430
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
3431-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 16364655961139363244UL) Outdated = true;
3431+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 3791551142871488314UL) Outdated = true;
34323432
Audio_AddOutput = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<Audio_AddOutputDelegate>(funcTable, 9914412815391408844UL, Audio_AddOutputFallback);
34333433
Audio_GetBaseObject = (delegate* unmanaged[Cdecl]<nint, nint>) GetUnmanagedPtr<Audio_GetBaseObjectDelegate>(funcTable, 6330360502401226894UL, Audio_GetBaseObjectFallback);
34343434
Audio_GetCurrentTime = (delegate* unmanaged[Cdecl]<nint, double>) GetUnmanagedPtr<Audio_GetCurrentTimeDelegate>(funcTable, 2944324482134975819UL, Audio_GetCurrentTimeFallback);

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ public unsafe interface IServerLibrary
172172
public delegate* unmanaged[Cdecl]<nint, nint, void> Player_Kick { get; }
173173
public delegate* unmanaged[Cdecl]<nint, nint, nint, uint, void> Player_PlayAmbientSpeech { get; }
174174
public delegate* unmanaged[Cdecl]<nint, nint, nint, float, float, int, int, float, byte, byte, byte, void> Player_PlayAnimation { get; }
175+
public delegate* unmanaged[Cdecl]<nint, nint, void> Player_PlayScenario { get; }
175176
public delegate* unmanaged[Cdecl]<nint, byte, void> Player_RemoveAllWeapons { get; }
176177
public delegate* unmanaged[Cdecl]<nint, uint, uint, void> Player_RemoveDecoration { get; }
177178
public delegate* unmanaged[Cdecl]<nint, byte, byte> Player_RemoveFaceFeature { get; }
@@ -429,7 +430,7 @@ public unsafe interface IServerLibrary
429430

430431
public unsafe class ServerLibrary : IServerLibrary
431432
{
432-
public readonly uint Methods = 1618;
433+
public readonly uint Methods = 1619;
433434
public delegate* unmanaged[Cdecl]<nint, nint, void> BaseObject_DeleteSyncedMetaData { get; }
434435
public delegate* unmanaged[Cdecl]<nint, nint, nint, void> BaseObject_SetSyncedMetaData { get; }
435436
public delegate* unmanaged[Cdecl]<nint, nint, void> Blip_AddTargetPlayer { get; }
@@ -592,6 +593,7 @@ public unsafe class ServerLibrary : IServerLibrary
592593
public delegate* unmanaged[Cdecl]<nint, nint, void> Player_Kick { get; }
593594
public delegate* unmanaged[Cdecl]<nint, nint, nint, uint, void> Player_PlayAmbientSpeech { get; }
594595
public delegate* unmanaged[Cdecl]<nint, nint, nint, float, float, int, int, float, byte, byte, byte, void> Player_PlayAnimation { get; }
596+
public delegate* unmanaged[Cdecl]<nint, nint, void> Player_PlayScenario { get; }
595597
public delegate* unmanaged[Cdecl]<nint, byte, void> Player_RemoveAllWeapons { get; }
596598
public delegate* unmanaged[Cdecl]<nint, uint, uint, void> Player_RemoveDecoration { get; }
597599
public delegate* unmanaged[Cdecl]<nint, byte, byte> Player_RemoveFaceFeature { get; }
@@ -1169,6 +1171,8 @@ public unsafe class ServerLibrary : IServerLibrary
11691171
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");
11701172
[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);
11711173
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");
1174+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_PlayScenarioDelegate(nint _player, nint _name);
1175+
private static void Player_PlayScenarioFallback(nint _player, nint _name) => throw new Exceptions.OutdatedSdkException("Player_PlayScenario", "Player_PlayScenario SDK method is outdated. Please update your module nuget");
11721176
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_RemoveAllWeaponsDelegate(nint _player, byte _removeAllAmmo);
11731177
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");
11741178
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_RemoveDecorationDelegate(nint _player, uint _collection, uint _overlay);
@@ -1684,7 +1688,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
16841688
public ServerLibrary(Dictionary<ulong, IntPtr> funcTable)
16851689
{
16861690
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
1687-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 16364655961139363244UL) Outdated = true;
1691+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 3791551142871488314UL) Outdated = true;
16881692
BaseObject_DeleteSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<BaseObject_DeleteSyncedMetaDataDelegate>(funcTable, 8228424877092269355UL, BaseObject_DeleteSyncedMetaDataFallback);
16891693
BaseObject_SetSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint, nint, void>) GetUnmanagedPtr<BaseObject_SetSyncedMetaDataDelegate>(funcTable, 8002999088966424231UL, BaseObject_SetSyncedMetaDataFallback);
16901694
Blip_AddTargetPlayer = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<Blip_AddTargetPlayerDelegate>(funcTable, 12411235729553386187UL, Blip_AddTargetPlayerFallback);
@@ -1847,6 +1851,7 @@ public ServerLibrary(Dictionary<ulong, IntPtr> funcTable)
18471851
Player_Kick = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<Player_KickDelegate>(funcTable, 1188245696791696101UL, Player_KickFallback);
18481852
Player_PlayAmbientSpeech = (delegate* unmanaged[Cdecl]<nint, nint, nint, uint, void>) GetUnmanagedPtr<Player_PlayAmbientSpeechDelegate>(funcTable, 8410706621915957253UL, Player_PlayAmbientSpeechFallback);
18491853
Player_PlayAnimation = (delegate* unmanaged[Cdecl]<nint, nint, nint, float, float, int, int, float, byte, byte, byte, void>) GetUnmanagedPtr<Player_PlayAnimationDelegate>(funcTable, 3904282782623490761UL, Player_PlayAnimationFallback);
1854+
Player_PlayScenario = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<Player_PlayScenarioDelegate>(funcTable, 10025365525415543731UL, Player_PlayScenarioFallback);
18501855
Player_RemoveAllWeapons = (delegate* unmanaged[Cdecl]<nint, byte, void>) GetUnmanagedPtr<Player_RemoveAllWeaponsDelegate>(funcTable, 2232062854990357196UL, Player_RemoveAllWeaponsFallback);
18511856
Player_RemoveDecoration = (delegate* unmanaged[Cdecl]<nint, uint, uint, void>) GetUnmanagedPtr<Player_RemoveDecorationDelegate>(funcTable, 3139723963307924640UL, Player_RemoveDecorationFallback);
18521857
Player_RemoveFaceFeature = (delegate* unmanaged[Cdecl]<nint, byte, byte>) GetUnmanagedPtr<Player_RemoveFaceFeatureDelegate>(funcTable, 1204109734587833282UL, Player_RemoveFaceFeatureFallback);

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

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

365365
public unsafe class SharedLibrary : ISharedLibrary
366366
{
367-
public readonly uint Methods = 1618;
367+
public readonly uint Methods = 1619;
368368
public delegate* unmanaged[Cdecl]<nint, uint> Audio_GetID { get; }
369369
public delegate* unmanaged[Cdecl]<nint, uint> AudioAttachedOutput_GetID { get; }
370370
public delegate* unmanaged[Cdecl]<nint, uint> AudioFilter_GetID { get; }
@@ -1424,7 +1424,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
14241424
public SharedLibrary(Dictionary<ulong, IntPtr> funcTable)
14251425
{
14261426
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
1427-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 16364655961139363244UL) Outdated = true;
1427+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 3791551142871488314UL) Outdated = true;
14281428
Audio_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<Audio_GetIDDelegate>(funcTable, 4464042055475980737UL, Audio_GetIDFallback);
14291429
AudioAttachedOutput_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<AudioAttachedOutput_GetIDDelegate>(funcTable, 17725794901805112189UL, AudioAttachedOutput_GetIDFallback);
14301430
AudioFilter_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<AudioFilter_GetIDDelegate>(funcTable, 8824535635529306325UL, AudioFilter_GetIDFallback);

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,7 @@ void PlayAnimation(string animDict, string animName, float blendInSpeed, float b
457457
void RemoveDecoration(uint collection, uint overlay);
458458
void ClearDecorations();
459459
Decoration[] GetDecorations();
460+
void PlayScenario(string name);
460461
}
461462

462463
public static class PlayerExtensions

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,17 @@ public Decoration[] GetDecorations()
385385
}
386386
}
387387

388+
public void PlayScenario(string name)
389+
{
390+
unsafe
391+
{
392+
CheckIfEntityExists();
393+
var namePtr = AltNative.StringUtils.StringToHGlobalUtf8(name);
394+
Core.Library.Server.Player_PlayScenario(PlayerNativePointer, namePtr);
395+
Marshal.FreeHGlobal(namePtr);
396+
}
397+
}
398+
388399
public bool IsConnected
389400
{
390401
get

runtime

0 commit comments

Comments
 (0)