add /save jvehicle [job id]

This commit is contained in:
hydrant
2019-05-16 15:46:29 +02:00
parent 45b78e7197
commit 74e3232c7d
3 changed files with 63 additions and 5 deletions

View File

@@ -1570,7 +1570,7 @@ namespace ReallifeGamemode.Server.Commands
} }
} }
[Command("save", "~m~Benutzung: ~s~/save [Typ = ~g~Blip~s~, ~g~Goto (X)~s~, ~r~Marker~s~, ~r~Ped~s~, ~r~Pickup~s~, ~r~TextLabel~s~, ~g~Vehicle~s~, ~g~FVehicle~s~, ~g~SVehicle (X)~s~] (Beschreibung) = (X)")] [Command("save", "~m~Benutzung: ~s~/save [Typ = ~g~Blip~s~, ~g~Goto (X)~s~, ~r~Marker~s~, ~r~Ped~s~, ~r~Pickup~s~, ~r~TextLabel~s~, ~g~Vehicle~s~, ~g~FVehicle~s~, ~g~SVehicle (X)~s~, ~g~JVehicle (X)~s~] (Weitere Angaben) = (X)")]
public void CmdAdminSave(Client player, string typ, string option1 = null, string option2 = null) public void CmdAdminSave(Client player, string typ, string option1 = null, string option2 = null)
{ {
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
@@ -1633,13 +1633,38 @@ namespace ReallifeGamemode.Server.Commands
Vehicle vehicle = player.Vehicle; Vehicle vehicle = player.Vehicle;
int playerSeat = player.VehicleSeat; int playerSeat = player.VehicleSeat;
vehicle = SaveManager.SaveFactionVehicleData(vehicle, (VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate, vehicle = SaveManager.SaveFactionVehicleData(vehicle, (VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
vehicle.PrimaryColor, vehicle.SecondaryColor, vehicle.Locked, vehicle.EngineStatus, player.GetUser().FactionId); vehicle.PrimaryColor, vehicle.SecondaryColor, vehicle.Locked, vehicle.EngineStatus, player.GetUser().FactionId.Value);
player.SendNotification("Fraktionsfahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true); player.SendNotification("Fraktionsfahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
player.SetIntoVehicle(vehicle, playerSeat); player.SetIntoVehicle(vehicle, playerSeat);
} }
} }
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!"); else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
break; break;
case "jvehicle":
if (player.IsInVehicle)
{
if (option1 == null)
{
ChatService.Error(player, "Du musst eine JobID als Parameter angeben");
return;
}
else
{
if(!int.TryParse(option1, out int jobId))
{
ChatService.Error(player, "Du musst eine gültige Zahl als JobID angeben");
return;
}
Vehicle vehicle = player.Vehicle;
vehicle = SaveManager.SaveJobVehicleData(vehicle, (VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
vehicle.PrimaryColor, vehicle.SecondaryColor, vehicle.Locked, vehicle.EngineStatus, jobId);
player.SendNotification("Jobfahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
player.SetIntoVehicle(vehicle, -1);
}
}
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
break;
case "svehicle": case "svehicle":
if (player.IsInVehicle) if (player.IsInVehicle)
{ {

View File

@@ -73,6 +73,11 @@ namespace ReallifeGamemode.Server.Entities
numberplate = $"G{gV.GroupId} " + numberplate; numberplate = $"G{gV.GroupId} " + numberplate;
} }
if(this is JobVehicle jV)
{
numberplate = $"J{jV.JobId} " + numberplate;
}
veh.NumberPlate = numberplate; veh.NumberPlate = numberplate;
return veh; return veh;

View File

@@ -77,8 +77,35 @@ namespace ReallifeGamemode.Server.Managers
return dataSet.Spawn(veh); return dataSet.Spawn(veh);
} }
} }
public static Vehicle SaveJobVehicleData(Vehicle veh, VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading,
string vehicleNumberPlate, int vehiclePrimaryColor, int vehicleSecondaryColor, bool vehicleLocked, bool vehicleEngine, int jobId)
{
using (var saveData = new DatabaseContext())
{
var dataSet = new JobVehicle
{
Model = vehicleModel,
JobId = jobId,
PositionX = vehiclePosition.X,
PositionY = vehiclePosition.Y,
PositionZ = vehiclePosition.Z,
Heading = vehicleHeading,
NumberPlate = vehicleNumberPlate,
PrimaryColor = vehiclePrimaryColor,
SecondaryColor = vehicleSecondaryColor,
Locked = vehicleLocked,
Active = true
};
saveData.JobVehicles.Add(dataSet);
saveData.SaveChanges();
return dataSet.Spawn(veh);
}
}
public static Vehicle SaveFactionVehicleData(Vehicle veh, VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading, public static Vehicle SaveFactionVehicleData(Vehicle veh, VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading,
string vehicleNumberPlate, int vehiclePrimaryColor, int vehicleSecondaryColor, bool vehicleLocked, bool vehicleEngine, int? factionId) string vehicleNumberPlate, int vehiclePrimaryColor, int vehicleSecondaryColor, bool vehicleLocked, bool vehicleEngine, int factionId)
{ {
using (var saveData = new DatabaseContext()) using (var saveData = new DatabaseContext())
{ {
@@ -102,6 +129,7 @@ namespace ReallifeGamemode.Server.Managers
return dataSet.Spawn(veh); return dataSet.Spawn(veh);
} }
} }
public static Vehicle SaveShopVehicleData(Vehicle veh, VehicleHash vehicleModel, string vehicleModelName, Vector3 vehiclePosition, float vehicleHeading, public static Vehicle SaveShopVehicleData(Vehicle veh, VehicleHash vehicleModel, string vehicleModelName, Vector3 vehiclePosition, float vehicleHeading,
string vehicleNumberPlate, int vehiclePrimaryColor, int vehicleSecondaryColor, BusinessBase business, int price) string vehicleNumberPlate, int vehiclePrimaryColor, int vehicleSecondaryColor, BusinessBase business, int price)
{ {
@@ -132,7 +160,7 @@ namespace ReallifeGamemode.Server.Managers
{ {
using (var saveData = new DatabaseContext()) using (var saveData = new DatabaseContext())
{ {
var dataSet = new Entities.GotoPoint var dataSet = new GotoPoint
{ {
Description = description, Description = description,
X = player.Position.X, X = player.Position.X,
@@ -144,9 +172,9 @@ namespace ReallifeGamemode.Server.Managers
saveData.SaveChanges(); saveData.SaveChanges();
} }
} }
public static void SaveAllOnSave() public static void SaveAllOnSave()
{ {
// Alle Fahrzeuge
using (var saveAll = new DatabaseContext()) using (var saveAll = new DatabaseContext())
{ {
//Alle Spieler //Alle Spieler