Add ServerEntities.CreateVehicle()
This commit is contained in:
@ -22,10 +22,27 @@ namespace RageCoop.Client.Scripting
|
||||
API.RegisterCustomEventHandler(CustomEvents.SetEntity, SetEntity);
|
||||
API.RegisterCustomEventHandler(CustomEvents.ServerBlipSync, ServerBlipSync);
|
||||
API.RegisterCustomEventHandler(CustomEvents.DeleteServerBlip, DeleteServerBlip);
|
||||
API.RegisterCustomEventHandler(CustomEvents.CreateVehicle, CreateVehicle);
|
||||
API.Events.OnPedDeleted+=(s,p) => { API.SendCustomEvent(CustomEvents.OnPedDeleted,p.ID); };
|
||||
API.Events.OnVehicleDeleted+=(s, p) => { API.SendCustomEvent(CustomEvents.OnVehicleDeleted, p.ID); };
|
||||
}
|
||||
|
||||
private void CreateVehicle(CustomEventReceivedArgs e)
|
||||
{
|
||||
API.QueueAction(() =>
|
||||
{
|
||||
var veh = World.CreateVehicle((Model)e.Args[1],(Vector3)e.Args[2],(float)e.Args[3]);
|
||||
veh.CanPretendOccupants=false;
|
||||
var v = new SyncedVehicle()
|
||||
{
|
||||
ID=(int)e.Args[0],
|
||||
MainVehicle=veh,
|
||||
OwnerID=Main.LocalPlayerID,
|
||||
};
|
||||
EntityPool.Add(v);
|
||||
});
|
||||
}
|
||||
|
||||
private void DeleteServerBlip(CustomEventReceivedArgs e)
|
||||
{
|
||||
if (EntityPool.ServerBlips.TryGetValue((int)e.Args[0], out var blip))
|
||||
|
@ -26,6 +26,7 @@ namespace RageCoop.Core.Scripting
|
||||
internal static readonly int DeleteServerProp = Hash("RageCoop.DeleteServerProp");
|
||||
internal static readonly int DeleteEntity = Hash("RageCoop.DeleteEntity");
|
||||
internal static readonly int DeleteServerBlip = Hash("RageCoop.DeleteServerBlip");
|
||||
internal static readonly int CreateVehicle = Hash("RageCoop.CreateVehicle");
|
||||
/// <summary>
|
||||
/// Get a Int32 hash of a string.
|
||||
/// </summary>
|
||||
|
@ -117,6 +117,28 @@ namespace RageCoop.Server
|
||||
return prop;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create a vehicle
|
||||
/// </summary>
|
||||
/// <param name="owner">Owner of this vehicle</param>
|
||||
/// <param name="model">model</param>
|
||||
/// <param name="pos">position</param>
|
||||
/// <param name="heading">heading of this vehicle</param>
|
||||
/// <returns></returns>
|
||||
public ServerVehicle CreateVehicle(Client owner,Model model,Vector3 pos,float heading)
|
||||
{
|
||||
if(owner == null) { throw new ArgumentNullException("Owner cannot be null"); }
|
||||
ServerVehicle veh = new(Server)
|
||||
{
|
||||
ID=RequestNetworkID(),
|
||||
Model=model,
|
||||
_pos= pos,
|
||||
};
|
||||
owner.SendCustomEvent(CustomEvents.CreateVehicle,veh.ID, model, pos, heading);
|
||||
Vehicles.Add(veh.ID, veh);
|
||||
return veh;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create a static <see cref="ServerBlip"/> owned by server.
|
||||
/// </summary>
|
||||
|
Reference in New Issue
Block a user