From 075ac69b710eb9f76cdd5230dcf9bd885c152e01 Mon Sep 17 00:00:00 2001 From: Mitchell Monahan Date: Tue, 20 Dec 2016 17:27:08 -0500 Subject: [PATCH] Add NpcPedPositionData --- gtaserver.core/GameServer.cs | 4 ++++ gtaserver.core/PluginAPI/Events/GameEvents.cs | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/gtaserver.core/GameServer.cs b/gtaserver.core/GameServer.cs index f53e5ba..7f6a7aa 100644 --- a/gtaserver.core/GameServer.cs +++ b/gtaserver.core/GameServer.cs @@ -479,6 +479,10 @@ private void HandleClientIncomingData(Client client, NetIncomingMessage msg) var pedData = Util.DeserializeBinary(msg.ReadBytes(len)); if (pedData != null) { + var pluginPedData = GameEvents.NpcPedDataUpdate(client, pedData); + if (!pluginPedData.ContinueServerProc) return; + pedData = pluginPedData.Data; + pedData.Id = msg.SenderConnection.RemoteUniqueIdentifier; } SendToAll(pedData, PacketType.NpcPedPositionData, false, client); diff --git a/gtaserver.core/PluginAPI/Events/GameEvents.cs b/gtaserver.core/PluginAPI/Events/GameEvents.cs index d10471c..d0bb529 100644 --- a/gtaserver.core/PluginAPI/Events/GameEvents.cs +++ b/gtaserver.core/PluginAPI/Events/GameEvents.cs @@ -121,5 +121,26 @@ public static PluginResponse NpcVehicleDataUpdate(Client c, Vehicle } return result; } + + + public static List>> OnNpcPedDataUpdate + = new List>>(); + + public static PluginResponse NpcPedDataUpdate(Client c, PedData p) + { + var result = new PluginResponse() + { + ContinuePluginProc = true, + ContinueServerProc = true, + Data = p + }; + foreach (var f in OnNpcPedDataUpdate) + { + result = f(c, p); + if (!result.ContinuePluginProc) return result; + p = result.Data; + } + return result; + } } }