From e98150e4c46834939f7fb118e1fa20b4897cb822 Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Tue, 21 Apr 2020 14:20:53 +0200 Subject: [PATCH] Test NoobVehicles --- .../Entities/NoobVehicle.cs | 7 ++++++ .../Models/DatabaseContext.cs | 3 +++ .../Commands/AdminCommands.cs | 12 ++++++++- .../Events/EnterVehicleAttempt.cs | 16 ++++++------ .../Extensions/ServerVehicleExtensions.cs | 8 ++++++ .../Managers/SaveManager.cs | 25 +++++++++++++++++++ 6 files changed, 63 insertions(+), 8 deletions(-) create mode 100644 ReallifeGamemode.Database/Entities/NoobVehicle.cs diff --git a/ReallifeGamemode.Database/Entities/NoobVehicle.cs b/ReallifeGamemode.Database/Entities/NoobVehicle.cs new file mode 100644 index 00000000..70735419 --- /dev/null +++ b/ReallifeGamemode.Database/Entities/NoobVehicle.cs @@ -0,0 +1,7 @@ +namespace ReallifeGamemode.Database.Entities +{ + public partial class NoobVehicle : ServerVehicle + { + //public int SchoolId { get; set; } + } +} diff --git a/ReallifeGamemode.Database/Models/DatabaseContext.cs b/ReallifeGamemode.Database/Models/DatabaseContext.cs index 16b07774..0bf0ee48 100644 --- a/ReallifeGamemode.Database/Models/DatabaseContext.cs +++ b/ReallifeGamemode.Database/Models/DatabaseContext.cs @@ -136,6 +136,9 @@ namespace ReallifeGamemode.Database.Models //Driving/Bike/Flight School public DbSet SchoolVehicles { get; set; } + //Noob Vehicles + public DbSet NoobVehicles { get; set; } + //Gangwar public DbSet Turfs { get; set; } diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index 839aec77..150b04a7 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -1985,7 +1985,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~, ~g~JVehicle (X)~s~, ~g~Location~s~] (Weitere Angaben) = (X)", GreedyArg = true)] + [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~, ~g~ShoolVehicle (X)~s~, ~g~NoobVehicle~s~, ~g~Location~s~] (Weitere Angaben) = (X)", GreedyArg = true)] public void CmdAdminSave(Player player, string typ, string option1 = null, string option2 = null) { if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) @@ -2164,6 +2164,16 @@ namespace ReallifeGamemode.Server.Commands player.SetIntoVehicle(vehicle, 0); } break; + case "noobvehicle": + if (player.IsInVehicle) + { + Vehicle vehicle = player.Vehicle; + vehicle = SaveManager.SaveNoobVehicleData(vehicle, (VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate, + vehicle.PrimaryColor, vehicle.SecondaryColor, vehicle.Locked, vehicle.EngineStatus); + player.SendNotification("Noobfahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true); + player.SetIntoVehicle(vehicle, 0); + } + break; case "location": if (option1 == null || option1.Length < 0) diff --git a/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs b/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs index f0c98f87..90929ebf 100644 --- a/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs +++ b/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs @@ -39,13 +39,6 @@ namespace ReallifeGamemode.Server.Events player.SendNotification("~r~Du darfst dieses Fahrzeug nicht benutzen!", true); return; } - else if (player.GetUser().FactionId == 0) - { - if(player.GetUser().PlayedMinutes > 1800) - { - player.SendNotification("~r~Du hast mehr als 30 Spielstunde, kaufe dir ein eigenes Fahrzeug!", true); - } - } } if (vehicle.GetServerVehicle() is SchoolVehicle sVeh) @@ -63,6 +56,15 @@ namespace ReallifeGamemode.Server.Events return; } } + if (vehicle.GetServerVehicle() is NoobVehicle nVeh) + { + if (player.GetUser().PlayedMinutes > 1800) + { + player.StopAnimation(); + player.SendNotification("~r~Du hast schon über 30 Spielstunden!", true); + return; + } + } } } } diff --git a/ReallifeGamemode.Server/Extensions/ServerVehicleExtensions.cs b/ReallifeGamemode.Server/Extensions/ServerVehicleExtensions.cs index 666f7402..7d8568aa 100644 --- a/ReallifeGamemode.Server/Extensions/ServerVehicleExtensions.cs +++ b/ReallifeGamemode.Server/Extensions/ServerVehicleExtensions.cs @@ -66,6 +66,14 @@ namespace ReallifeGamemode.Server.Extensions { numberplate = $"J{jV.JobId} " + numberplate; } + if (veh is SchoolVehicle) + { + numberplate = "FS" + numberplate; + } + if (veh is NoobVehicle) + { + numberplate = "NV" + numberplate; + } NAPI.Vehicle.SetVehicleNumberPlate(newVeh, numberplate); veh.NumberPlate = numberplate; diff --git a/ReallifeGamemode.Server/Managers/SaveManager.cs b/ReallifeGamemode.Server/Managers/SaveManager.cs index db6f8216..3059e607 100644 --- a/ReallifeGamemode.Server/Managers/SaveManager.cs +++ b/ReallifeGamemode.Server/Managers/SaveManager.cs @@ -131,6 +131,31 @@ namespace ReallifeGamemode.Server.Managers } } + public static Vehicle SaveNoobVehicleData(Vehicle veh, VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading, + string vehicleNumberPlate, int vehiclePrimaryColor, int vehicleSecondaryColor, bool vehicleLocked, bool vehicleEngine) + { + using (var saveData = new DatabaseContext()) + { + var dataSet = new NoobVehicle + { + Model = vehicleModel, + PositionX = vehiclePosition.X, + PositionY = vehiclePosition.Y, + PositionZ = vehiclePosition.Z, + Heading = vehicleHeading, + NumberPlate = vehicleNumberPlate, + PrimaryColor = vehiclePrimaryColor, + SecondaryColor = vehicleSecondaryColor, + Locked = vehicleLocked, + Active = true + }; + saveData.NoobVehicles.Add(dataSet); + saveData.SaveChanges(); + + return dataSet.Spawn(veh); + } + } + public static Vehicle SaveFactionVehicleData(Vehicle veh, VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading,