public void GetNativeCallFromPlayer(Client player, string salt, ulong hash, NativeArgument returnType, Action <object> callback, params object[] arguments) { var obj = new NativeData(); obj.Hash = hash; obj.ReturnType = returnType; salt = Environment.TickCount.ToString() + salt + player.NetConnection.RemoteUniqueIdentifier.ToString() + DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds.ToString(); obj.Id = salt; obj.Arguments = ParseNativeArguments(arguments); var bin = SerializeBinary(obj); var msg = Server.CreateMessage(); msg.Write((int)PacketType.NativeCall); msg.Write(bin.Length); msg.Write(bin); _callbacks.Add(salt, callback); player.NetConnection.SendMessage(msg, NetDeliveryMethod.ReliableOrdered, GetChannelIdForConnection(player)); }
public void RecallNativeCallOnDisconnectForAllPlayers(string identifier) { var obj = new NativeData(); obj.Id = identifier; var bin = SerializeBinary(obj); var msg = Server.CreateMessage(); msg.Write((int)PacketType.NativeOnDisconnectRecall); msg.Write(bin.Length); msg.Write(bin); Server.SendToAll(msg, NetDeliveryMethod.ReliableOrdered); }
public void RecallNativeCallOnDisconnectForPlayer(Client player, string identifier) { var obj = new NativeData(); obj.Id = identifier; var bin = SerializeBinary(obj); var msg = Server.CreateMessage(); msg.Write((int)PacketType.NativeOnDisconnectRecall); msg.Write(bin.Length); msg.Write(bin); player.NetConnection.SendMessage(msg, NetDeliveryMethod.ReliableOrdered, GetChannelIdForConnection(player)); }
public void SendNativeCallToPlayer(Client player, ulong hash, params object[] arguments) { var obj = new NativeData(); obj.Hash = hash; obj.Arguments = ParseNativeArguments(arguments); var bin = SerializeBinary(obj); var msg = Server.CreateMessage(); msg.Write((int)PacketType.NativeCall); msg.Write(bin.Length); msg.Write(bin); player.NetConnection.SendMessage(msg, NetDeliveryMethod.ReliableOrdered, GetChannelIdForConnection(player)); }
public void SetNativeCallOnDisconnectForAllPlayers(string identifier, ulong hash, params object[] arguments) { var obj = new NativeData(); obj.Hash = hash; obj.Id = identifier; obj.Arguments = ParseNativeArguments(arguments); var bin = SerializeBinary(obj); var msg = Server.CreateMessage(); msg.Write((int)PacketType.NativeOnDisconnect); msg.Write(bin.Length); msg.Write(bin); Server.SendToAll(msg, NetDeliveryMethod.ReliableOrdered); }
public void SendNativeCallToAllPlayers(ulong hash, params object[] arguments) { var obj = new NativeData(); obj.Hash = hash; obj.Arguments = ParseNativeArguments(arguments); obj.ReturnType = null; obj.Id = null; var bin = SerializeBinary(obj); var msg = Server.CreateMessage(); msg.Write((int)PacketType.NativeCall); msg.Write(bin.Length); msg.Write(bin); Server.SendToAll(msg, NetDeliveryMethod.ReliableOrdered); }
public void SetNativeCallOnTickForPlayer(Client player, string identifier, ulong hash, params object[] arguments) { var obj = new NativeData(); obj.Hash = hash; obj.Arguments = ParseNativeArguments(arguments); var wrapper = new NativeTickCall(); wrapper.Identifier = identifier; wrapper.Native = obj; var bin = SerializeBinary(wrapper); var msg = Server.CreateMessage(); msg.Write((int)PacketType.NativeTick); msg.Write(bin.Length); msg.Write(bin); player.NetConnection.SendMessage(msg, NetDeliveryMethod.ReliableOrdered, GetChannelIdForConnection(player)); }
public void GetNativeCallFromPlayer(NetConnection player, string identifier, ulong hash, NativeArgument returnType, Action <object> callback, params object[] arguments) { var obj = new NativeData(); obj.Hash = hash; obj.ReturnType = returnType; obj.Id = identifier; var list = new List <NativeArgument>(); foreach (var o in arguments) { if (o is int) { list.Add(new IntArgument() { Data = ((int)o) }); } else if (o is uint) { list.Add(new UIntArgument() { Data = ((uint)o) }); } else if (o is string) { list.Add(new StringArgument() { Data = ((string)o) }); } else if (o is float) { list.Add(new FloatArgument() { Data = ((float)o) }); } else if (o is bool) { list.Add(new BooleanArgument() { Data = ((bool)o) }); } else if (o is Vector3) { var tmp = (Vector3)o; list.Add(new Vector3Argument() { X = tmp.X, Y = tmp.Y, Z = tmp.Z, }); } else if (o is LocalPlayerArgument) { list.Add(new LocalPlayerArgument()); } else if (o is OpponentPedHandleArgument) { list.Add((OpponentPedHandleArgument)o); } } obj.Arguments = list.ToList(); var bin = SerializeBinary(obj); var msg = Server.CreateMessage(); msg.Write((int)PacketType.NativeCall); msg.Write(bin.Length); msg.Write(bin); _callbacks.Add(identifier, callback); player.SendMessage(msg, NetDeliveryMethod.ReliableOrdered, GetChannelIdForConnection(player)); }
public void SendNativeCallToAllPlayers(ulong hash, params object[] arguments) { var obj = new NativeData(); obj.Hash = hash; var list = new List <NativeArgument>(); foreach (var o in arguments) { if (o is int) { list.Add(new IntArgument() { Data = ((int)o) }); } else if (o is uint) { list.Add(new UIntArgument() { Data = ((uint)o) }); } else if (o is string) { list.Add(new StringArgument() { Data = ((string)o) }); } else if (o is float) { list.Add(new FloatArgument() { Data = ((float)o) }); } else if (o is bool) { list.Add(new BooleanArgument() { Data = ((bool)o) }); } else if (o is LocalPlayerArgument) { list.Add((LocalPlayerArgument)o); } else if (o is Vector3) { var tmp = (Vector3)o; list.Add(new Vector3Argument() { X = tmp.X, Y = tmp.Y, Z = tmp.Z, }); } else if (o is OpponentPedHandleArgument) { list.Add((OpponentPedHandleArgument)o); } } obj.Arguments = list.ToList(); obj.ReturnType = null; obj.Id = null; var bin = SerializeBinary(obj); var msg = Server.CreateMessage(); msg.Write((int)PacketType.NativeCall); msg.Write(bin.Length); msg.Write(bin); Clients.ForEach(c => c.SendMessage(msg, NetDeliveryMethod.ReliableOrdered, GetChannelIdForConnection(c))); }