Skip to content

Commit 8218298

Browse files
committed
add latest events
1 parent 24a03ad commit 8218298

File tree

15 files changed

+347
-22
lines changed

15 files changed

+347
-22
lines changed

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -536,6 +536,7 @@ public unsafe interface IClientLibrary
536536
public delegate* unmanaged[Cdecl]<nint, float> Player_GetMicLevel { get; }
537537
public delegate* unmanaged[Cdecl]<nint, float> Player_GetNonSpatialVolume { get; }
538538
public delegate* unmanaged[Cdecl]<nint, float> Player_GetSpatialVolume { get; }
539+
public delegate* unmanaged[Cdecl]<nint, int*, nint> Player_GetTaskData { get; }
539540
public delegate* unmanaged[Cdecl]<nint, byte> Player_IsTalking { get; }
540541
public delegate* unmanaged[Cdecl]<nint, void> Player_RemoveFilter { get; }
541542
public delegate* unmanaged[Cdecl]<nint, float, void> Player_SetNonSpatialVolume { get; }
@@ -881,7 +882,7 @@ public unsafe interface IClientLibrary
881882

882883
public unsafe class ClientLibrary : IClientLibrary
883884
{
884-
public readonly uint Methods = 1715;
885+
public readonly uint Methods = 1716;
885886
public delegate* unmanaged[Cdecl]<nint, nint, void> Audio_AddOutput { get; }
886887
public delegate* unmanaged[Cdecl]<nint, nint> Audio_GetBaseObject { get; }
887888
public delegate* unmanaged[Cdecl]<nint, double> Audio_GetCurrentTime { get; }
@@ -1408,6 +1409,7 @@ public unsafe class ClientLibrary : IClientLibrary
14081409
public delegate* unmanaged[Cdecl]<nint, float> Player_GetMicLevel { get; }
14091410
public delegate* unmanaged[Cdecl]<nint, float> Player_GetNonSpatialVolume { get; }
14101411
public delegate* unmanaged[Cdecl]<nint, float> Player_GetSpatialVolume { get; }
1412+
public delegate* unmanaged[Cdecl]<nint, int*, nint> Player_GetTaskData { get; }
14111413
public delegate* unmanaged[Cdecl]<nint, byte> Player_IsTalking { get; }
14121414
public delegate* unmanaged[Cdecl]<nint, void> Player_RemoveFilter { get; }
14131415
public delegate* unmanaged[Cdecl]<nint, float, void> Player_SetNonSpatialVolume { get; }
@@ -2801,6 +2803,8 @@ public unsafe class ClientLibrary : IClientLibrary
28012803
private static float Player_GetNonSpatialVolumeFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetNonSpatialVolume", "Player_GetNonSpatialVolume SDK method is outdated. Please update your module nuget");
28022804
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Player_GetSpatialVolumeDelegate(nint _player);
28032805
private static float Player_GetSpatialVolumeFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetSpatialVolume", "Player_GetSpatialVolume SDK method is outdated. Please update your module nuget");
2806+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Player_GetTaskDataDelegate(nint _player, int* _size);
2807+
private static nint Player_GetTaskDataFallback(nint _player, int* _size) => throw new Exceptions.OutdatedSdkException("Player_GetTaskData", "Player_GetTaskData SDK method is outdated. Please update your module nuget");
28042808
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsTalkingDelegate(nint _player);
28052809
private static byte Player_IsTalkingFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsTalking", "Player_IsTalking SDK method is outdated. Please update your module nuget");
28062810
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_RemoveFilterDelegate(nint _player);
@@ -3492,7 +3496,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
34923496
public ClientLibrary(Dictionary<ulong, IntPtr> funcTable)
34933497
{
34943498
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
3495-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 10494575567167650847UL) Outdated = true;
3499+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 3088291357268716232UL) Outdated = true;
34963500
Audio_AddOutput = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<Audio_AddOutputDelegate>(funcTable, 9914412815391408844UL, Audio_AddOutputFallback);
34973501
Audio_GetBaseObject = (delegate* unmanaged[Cdecl]<nint, nint>) GetUnmanagedPtr<Audio_GetBaseObjectDelegate>(funcTable, 6330360502401226894UL, Audio_GetBaseObjectFallback);
34983502
Audio_GetCurrentTime = (delegate* unmanaged[Cdecl]<nint, double>) GetUnmanagedPtr<Audio_GetCurrentTimeDelegate>(funcTable, 2944324482134975819UL, Audio_GetCurrentTimeFallback);
@@ -4019,6 +4023,7 @@ public ClientLibrary(Dictionary<ulong, IntPtr> funcTable)
40194023
Player_GetMicLevel = (delegate* unmanaged[Cdecl]<nint, float>) GetUnmanagedPtr<Player_GetMicLevelDelegate>(funcTable, 15449156962697427469UL, Player_GetMicLevelFallback);
40204024
Player_GetNonSpatialVolume = (delegate* unmanaged[Cdecl]<nint, float>) GetUnmanagedPtr<Player_GetNonSpatialVolumeDelegate>(funcTable, 3333598534924196965UL, Player_GetNonSpatialVolumeFallback);
40214025
Player_GetSpatialVolume = (delegate* unmanaged[Cdecl]<nint, float>) GetUnmanagedPtr<Player_GetSpatialVolumeDelegate>(funcTable, 1924883508304421034UL, Player_GetSpatialVolumeFallback);
4026+
Player_GetTaskData = (delegate* unmanaged[Cdecl]<nint, int*, nint>) GetUnmanagedPtr<Player_GetTaskDataDelegate>(funcTable, 15465454396501521389UL, Player_GetTaskDataFallback);
40224027
Player_IsTalking = (delegate* unmanaged[Cdecl]<nint, byte>) GetUnmanagedPtr<Player_IsTalkingDelegate>(funcTable, 2228995248668686637UL, Player_IsTalkingFallback);
40234028
Player_RemoveFilter = (delegate* unmanaged[Cdecl]<nint, void>) GetUnmanagedPtr<Player_RemoveFilterDelegate>(funcTable, 14799984366573861130UL, Player_RemoveFilterFallback);
40244029
Player_SetNonSpatialVolume = (delegate* unmanaged[Cdecl]<nint, float, void>) GetUnmanagedPtr<Player_SetNonSpatialVolumeDelegate>(funcTable, 13836779891982146248UL, Player_SetNonSpatialVolumeFallback);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,7 @@ public unsafe interface IServerLibrary
468468

469469
public unsafe class ServerLibrary : IServerLibrary
470470
{
471-
public readonly uint Methods = 1715;
471+
public readonly uint Methods = 1716;
472472
public delegate* unmanaged[Cdecl]<nint, nint, void> BaseObject_DeleteSyncedMetaData { get; }
473473
public delegate* unmanaged[Cdecl]<nint, nint[], nint[], ulong, void> BaseObject_SetMultipleSyncedMetaData { get; }
474474
public delegate* unmanaged[Cdecl]<nint, nint, nint, void> BaseObject_SetSyncedMetaData { get; }
@@ -1840,7 +1840,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
18401840
public ServerLibrary(Dictionary<ulong, IntPtr> funcTable)
18411841
{
18421842
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
1843-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 10494575567167650847UL) Outdated = true;
1843+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 3088291357268716232UL) Outdated = true;
18441844
BaseObject_DeleteSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<BaseObject_DeleteSyncedMetaDataDelegate>(funcTable, 8228424877092269355UL, BaseObject_DeleteSyncedMetaDataFallback);
18451845
BaseObject_SetMultipleSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint[], nint[], ulong, void>) GetUnmanagedPtr<BaseObject_SetMultipleSyncedMetaDataDelegate>(funcTable, 1390762125822890831UL, BaseObject_SetMultipleSyncedMetaDataFallback);
18461846
BaseObject_SetSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint, nint, void>) GetUnmanagedPtr<BaseObject_SetSyncedMetaDataDelegate>(funcTable, 8002999088966424231UL, BaseObject_SetSyncedMetaDataFallback);

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

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

407407
public unsafe class SharedLibrary : ISharedLibrary
408408
{
409-
public readonly uint Methods = 1715;
409+
public readonly uint Methods = 1716;
410410
public delegate* unmanaged[Cdecl]<nint, uint> Audio_GetID { get; }
411411
public delegate* unmanaged[Cdecl]<nint, uint> AudioAttachedOutput_GetID { get; }
412412
public delegate* unmanaged[Cdecl]<nint, uint> AudioFilter_GetID { get; }
@@ -1592,7 +1592,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
15921592
public SharedLibrary(Dictionary<ulong, IntPtr> funcTable)
15931593
{
15941594
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
1595-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 10494575567167650847UL) Outdated = true;
1595+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 3088291357268716232UL) Outdated = true;
15961596
Audio_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<Audio_GetIDDelegate>(funcTable, 4464042055475980737UL, Audio_GetIDFallback);
15971597
AudioAttachedOutput_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<AudioAttachedOutput_GetIDDelegate>(funcTable, 17725794901805112189UL, AudioAttachedOutput_GetIDFallback);
15981598
AudioFilter_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<AudioFilter_GetIDDelegate>(funcTable, 8824535635529306325UL, AudioFilter_GetIDFallback);

api/AltV.Net.CApi/Native/AltV.Resource.cs

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,15 @@ internal delegate void CheckpointDelegate(IntPtr checkpointPointer, IntPtr entit
2424
BaseObjectType baseObjectType,
2525
byte state);
2626

27-
internal delegate void PlayerConnectDelegate(IntPtr playerPointer, ushort playerId, string reason);
27+
internal delegate void PlayerConnectDelegate(IntPtr playerPointer, string reason);
2828

2929
internal delegate void PlayerConnectDeniedDelegate(PlayerConnectDeniedReason reason, string name, string ip,
3030
ulong passwordHash, byte isDebug, string branch, uint majorVersion, string cdnUrl, long discordId);
3131

3232
internal delegate void ResourceEventDelegate(IntPtr resourcePointer);
3333

3434
internal delegate void PlayerDamageDelegate(IntPtr playerPointer, IntPtr attackerEntityPointer,
35-
BaseObjectType attackerBaseObjectType,
36-
ushort attackerEntityId, uint weapon, ushort healthDamage, ushort armourDamage);
35+
BaseObjectType attackerBaseObjectType, uint weapon, ushort healthDamage, ushort armourDamage);
3736

3837
internal delegate void PlayerDeathDelegate(IntPtr playerPointer, IntPtr killerEntityPointer,
3938
BaseObjectType killerBaseObjectType, uint weapon);
@@ -125,6 +124,21 @@ internal delegate void VehicleHornDelegate(IntPtr eventPointer, IntPtr targetPoi
125124

126125
internal delegate void GivePedScriptedTaskDelegate(IntPtr eventPointer, IntPtr source, IntPtr target, uint taskType);
127126

127+
128+
internal delegate void PedDamageDelegate(IntPtr pedPointer, IntPtr attackerEntityPointer,
129+
BaseObjectType attackerBaseObjectType, uint weapon, ushort healthDamage, ushort armourDamage);
130+
131+
internal delegate void PedDeathDelegate(IntPtr pedPointer, IntPtr killerEntityPointer,
132+
BaseObjectType killerBaseObjectType, uint weapon);
133+
134+
internal delegate void PedHealDelegate(IntPtr pedPointer, ushort oldHealth, ushort newHealth,
135+
ushort oldArmour, ushort newArmour);
136+
137+
internal delegate void PlayerStartTalkingDelegate(IntPtr playerPointer);
138+
139+
internal delegate void PlayerStopTalkingDelegate(IntPtr playerPointer);
140+
141+
128142
[DllImport(DllName, CallingConvention = NativeCallingConvention)]
129143
internal static extern void CSharpResourceImpl_SetMainDelegate(IntPtr resource,
130144
MainDelegate @delegate);
@@ -324,6 +338,26 @@ internal static extern void CSharpResourceImpl_SetUpdateSyncedSceneDelegate(IntP
324338
[DllImport(DllName, CallingConvention = NativeCallingConvention)]
325339
internal static extern void CSharpResourceImpl_SetGivePedScriptedTaskDelegate(IntPtr resource,
326340
GivePedScriptedTaskDelegate @delegate);
341+
342+
[DllImport(DllName, CallingConvention = NativeCallingConvention)]
343+
internal static extern void CSharpResourceImpl_SetPedDamageDelegate(IntPtr resource,
344+
PedDamageDelegate @delegate);
345+
346+
[DllImport(DllName, CallingConvention = NativeCallingConvention)]
347+
internal static extern void CSharpResourceImpl_SetPedDeathDelegate(IntPtr resource,
348+
PedDeathDelegate @delegate);
349+
350+
[DllImport(DllName, CallingConvention = NativeCallingConvention)]
351+
internal static extern void CSharpResourceImpl_SetPedHealDelegate(IntPtr resource,
352+
PedHealDelegate @delegate);
353+
354+
[DllImport(DllName, CallingConvention = NativeCallingConvention)]
355+
internal static extern void CSharpResourceImpl_SetPlayerStartTalkingDelegate(IntPtr resource,
356+
PlayerStartTalkingDelegate @delegate);
357+
358+
[DllImport(DllName, CallingConvention = NativeCallingConvention)]
359+
internal static extern void CSharpResourceImpl_SetPlayerStopTalkingDelegate(IntPtr resource,
360+
PlayerStopTalkingDelegate @delegate);
327361
}
328362
}
329363
}

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,20 @@ public IAudioFilter GetFilter()
6161
}
6262
}
6363

64+
public string TaskData
65+
{
66+
get
67+
{
68+
unsafe
69+
{
70+
CheckIfEntityExistsOrCached();
71+
var size = 0;
72+
return Core.PtrToStringUtf8AndFree(
73+
Core.Library.Client.Player_GetTaskData(PlayerNativePointer, &size), size);
74+
}
75+
}
76+
}
77+
6478
public IVehicle? Vehicle
6579
{
6680
get

api/AltV.Net.Client/Elements/Interfaces/IPlayer.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,7 @@ public interface IPlayer : ISharedPlayer, IEntity
1515
void AddFilter(IAudioFilter filter);
1616
void RemoveFilter();
1717
IAudioFilter GetFilter();
18+
19+
string TaskData { get; }
1820
}
1921
}

api/AltV.Net.Mock/MockAltV.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public IPlayer ConnectPlayer(string playerName, string reason, Action<IPlayer> i
6969
var player = Alt.Core.PoolManager.Player.Create(core, ptr, entityId);
7070
//player.Name = playerName;
7171
intercept?.Invoke(player);
72-
Alt.CoreImpl.OnPlayerConnect(ptr, player.Id, reason);
72+
Alt.CoreImpl.OnPlayerConnect(ptr, reason);
7373
return player;
7474
}
7575
}

api/AltV.Net.Mock/MockPlayer.Events.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public static void Damage(this IPlayer player, IEntity attacker, uint weapon, by
1818
player.Armor -= armourDamage;
1919

2020
Alt.CoreImpl.OnPlayerDamage(player.NativePointer, attacker?.NativePointer ?? IntPtr.Zero,
21-
attacker?.Type ?? BaseObjectType.Undefined, attacker?.Id ?? 0, weapon, healthDamage, armourDamage);
21+
attacker?.Type ?? BaseObjectType.Undefined, weapon, healthDamage, armourDamage);
2222
}
2323

2424
public static void Death(this IPlayer player, IEntity killer, uint weapon)

api/AltV.Net.Shared/Events/EventType.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ public enum EventType : byte
5656
PLAYER_CHANGE_VEHICLE_SEAT,
5757
PLAYER_WEAPON_CHANGE,
5858
PLAYER_REQUEST_CONTROL,
59+
PLAYER_START_TALKING,
60+
PLAYER_STOP_TALKING,
5961

6062
VEHICLE_ATTACH,
6163
VEHICLE_DETACH,
@@ -101,6 +103,10 @@ public enum EventType : byte
101103

102104
VOICE_CONNECTION_EVENT,
103105

106+
PED_DAMAGE,
107+
PED_DEATH,
108+
PED_HEAL,
109+
104110
ALL,
105111
SIZE
106112
}

api/AltV.Net/Alt.Events.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,5 +345,35 @@ public static event GivePedScriptedTaskDelegate OnGivePedScriptedTask
345345
add => CoreImpl.GivePedScriptedTaskHandler.Add(value);
346346
remove => CoreImpl.GivePedScriptedTaskHandler.Remove(value);
347347
}
348+
349+
public static event PedDamageDelegate OnPedDamage
350+
{
351+
add => CoreImpl.PedDamageEventHandler.Add(value);
352+
remove => CoreImpl.PedDamageEventHandler.Remove(value);
353+
}
354+
355+
public static event PedDeadDelegate OnPedDead
356+
{
357+
add => CoreImpl.PedDeadEventHandler.Add(value);
358+
remove => CoreImpl.PedDeadEventHandler.Remove(value);
359+
}
360+
361+
public static event PedHealDelegate OnPedHeal
362+
{
363+
add => CoreImpl.PedHealEventHandler.Add(value);
364+
remove => CoreImpl.PedHealEventHandler.Remove(value);
365+
}
366+
367+
public static event PlayerStartTalkingDelegate OnPlayerStartTalking
368+
{
369+
add => CoreImpl.PlayerStartTalkingHandler.Add(value);
370+
remove => CoreImpl.PlayerStartTalkingHandler.Remove(value);
371+
}
372+
373+
public static event PlayerStopTalkingDelegate OnPlayerStopTalking
374+
{
375+
add => CoreImpl.PlayerStopTalkingHandler.Add(value);
376+
remove => CoreImpl.PlayerStopTalkingHandler.Remove(value);
377+
}
348378
}
349379
}

0 commit comments

Comments
 (0)