Add ServerBlip.Handle handle
This commit is contained in:
@ -10,6 +10,23 @@ namespace RageCoop.Client
|
|||||||
{
|
{
|
||||||
internal static partial class Networking
|
internal static partial class Networking
|
||||||
{
|
{
|
||||||
|
private static Func<byte, BitReader, object> _resolveHandle = (t, reader) =>
|
||||||
|
{
|
||||||
|
switch (t)
|
||||||
|
{
|
||||||
|
case 50:
|
||||||
|
return EntityPool.ServerProps[reader.ReadInt()].MainProp?.Handle;
|
||||||
|
case 51:
|
||||||
|
return EntityPool.GetPedByID(reader.ReadInt())?.MainPed?.Handle;
|
||||||
|
case 52:
|
||||||
|
return EntityPool.GetVehicleByID(reader.ReadInt())?.MainVehicle?.Handle;
|
||||||
|
case 60:
|
||||||
|
return EntityPool.ServerBlips[reader.ReadInt()].Handle;
|
||||||
|
default:
|
||||||
|
throw new ArgumentException("Cannot resolve server side argument: "+t);
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
private static AutoResetEvent PublicKeyReceived=new AutoResetEvent(false);
|
private static AutoResetEvent PublicKeyReceived=new AutoResetEvent(false);
|
||||||
|
|
||||||
private static Dictionary<int, Action<PacketType, byte[]>> PendingResponses = new Dictionary<int, Action<PacketType, byte[]>>();
|
private static Dictionary<int, Action<PacketType, byte[]>> PendingResponses = new Dictionary<int, Action<PacketType, byte[]>>();
|
||||||
@ -248,20 +265,7 @@ namespace RageCoop.Client
|
|||||||
break;
|
break;
|
||||||
case PacketType.CustomEvent:
|
case PacketType.CustomEvent:
|
||||||
{
|
{
|
||||||
Packets.CustomEvent packet = new Packets.CustomEvent((t, reader) =>
|
Packets.CustomEvent packet = new Packets.CustomEvent(_resolveHandle);
|
||||||
{
|
|
||||||
switch (t)
|
|
||||||
{
|
|
||||||
case 50:
|
|
||||||
return EntityPool.ServerProps[reader.ReadInt()].MainProp?.Handle;
|
|
||||||
case 51:
|
|
||||||
return EntityPool.GetPedByID(reader.ReadInt())?.MainPed?.Handle;
|
|
||||||
case 52:
|
|
||||||
return EntityPool.GetVehicleByID(reader.ReadInt())?.MainVehicle?.Handle;
|
|
||||||
default:
|
|
||||||
throw new ArgumentException("Cannot resolve server side argument: "+t);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
packet.Unpack(data);
|
packet.Unpack(data);
|
||||||
Scripting.API.Events.InvokeCustomEventReceived(packet);
|
Scripting.API.Events.InvokeCustomEventReceived(packet);
|
||||||
}
|
}
|
||||||
|
@ -126,7 +126,6 @@ namespace RageCoop.Server
|
|||||||
|
|
||||||
internal ServerProp(Server server) : base(server) { }
|
internal ServerProp(Server server) : base(server) { }
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Delete this prop
|
/// Delete this prop
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -219,6 +218,18 @@ namespace RageCoop.Server
|
|||||||
Server = server;
|
Server = server;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Pass this as an argument in CustomEvent or NativeCall to convert this object to handle at client side.
|
||||||
|
/// </summary>
|
||||||
|
public Tuple<byte, byte[]> Handle
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return new(60, BitConverter.GetBytes(ID));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Network ID (not handle!)
|
/// Network ID (not handle!)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -292,6 +303,7 @@ namespace RageCoop.Server
|
|||||||
Server.Entities.RemoveServerBlip(ID);
|
Server.Entities.RemoveServerBlip(ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private bool _bouncing=false;
|
private bool _bouncing=false;
|
||||||
internal void Update()
|
internal void Update()
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user