From f80e0739e82954a7bb02e091a82dcbf8132f6b6a Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 13 Sep 2020 19:07:36 +0200 Subject: [PATCH] add Fehlerpunkte Fahrschule & add Autokauf Park massage --- ReallifeGamemode.Client/util/drivingschool.ts | 33 +++++--- ReallifeGamemode.Database/Entities/User.cs | 1 + .../DrivingSchool/DrivingSchool.cs | 79 +++++++++++++++++-- .../Managers/BusinessManager.cs | 1 + 4 files changed, 96 insertions(+), 18 deletions(-) diff --git a/ReallifeGamemode.Client/util/drivingschool.ts b/ReallifeGamemode.Client/util/drivingschool.ts index 883b3fbe..fd92f3d1 100644 --- a/ReallifeGamemode.Client/util/drivingschool.ts +++ b/ReallifeGamemode.Client/util/drivingschool.ts @@ -23,6 +23,7 @@ export default function drivingSchoolHandle(globalData: IGlobalData) { var checkPoint; var counter = 0; var waitFinished = false; + var kmh; mp.events.add('drivingSchoolMenu', () => { mp.game.ui.setTextComponentFormat('STRING'); @@ -76,17 +77,7 @@ export default function drivingSchoolHandle(globalData: IGlobalData) { } }); - mp.events.add('lookDirection', (direction, angle1, angle2) => { - let player = mp.players.local; - - let camera = mp.cameras.new("gameplay"); - var dir = camera.getDirection(); - //0.74850505590443884 0.093938655593395233 - if (!(dir.x <= angle1 && dir.x >= angle2)) { - mp.gui.chat.push("Du hast nicht nach " + direction + " geschaut!"); - } - //0.38181596994400024 0.9669561386108398 - }); + mp.events.add('lookDirectionTesting', (veh) => { let player = mp.players.local; @@ -127,4 +118,24 @@ export default function drivingSchoolHandle(globalData: IGlobalData) { mp.events.call('removeDrivingSchoolMenu', false); mp.events.call('showDrivingSchoolSelector'); } + + mp.events.add('kmh100', () => { + let vehicle = mp.players.local.vehicle; + let speed = vehicle.getSpeed(); + speed = speed * 3.6; // convert to kmh + if (speed > 100) { + mp.events.callRemote("CLIENT:drivingschool_failpoints"); + } + }); + + mp.events.add('kmh150', () => { + let vehicle = mp.players.local.vehicle; + let speed = vehicle.getSpeed(); + speed = speed * 3.6; //convert to kmh + if (speed > 150) { + mp.events.callRemote("CLIENT:drivingschool_failpoints"); + } + }); + + } \ No newline at end of file diff --git a/ReallifeGamemode.Database/Entities/User.cs b/ReallifeGamemode.Database/Entities/User.cs index f7cb590c..e62797a8 100644 --- a/ReallifeGamemode.Database/Entities/User.cs +++ b/ReallifeGamemode.Database/Entities/User.cs @@ -124,6 +124,7 @@ namespace ReallifeGamemode.Database.Entities public int Points { get; set; } public int otheramount { get; set; } = 0; + public int failpoints { get; set; } = 0; [NotMapped] public Player Player diff --git a/ReallifeGamemode.Server/DrivingSchool/DrivingSchool.cs b/ReallifeGamemode.Server/DrivingSchool/DrivingSchool.cs index ff315f55..3036c585 100644 --- a/ReallifeGamemode.Server/DrivingSchool/DrivingSchool.cs +++ b/ReallifeGamemode.Server/DrivingSchool/DrivingSchool.cs @@ -5,6 +5,7 @@ using ReallifeGamemode.Database.Models; using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Managers; using ReallifeGamemode.Server.Util; +using System; namespace ReallifeGamemode.Server.DrivingSchool { @@ -14,6 +15,7 @@ namespace ReallifeGamemode.Server.DrivingSchool private static Marker marker; private static ColShape _colShape; public static Vector3 Position { get; } + private const int FAILPOINTS = 2; private readonly IReadOnlyCollection BikeRoute = new List { @@ -159,15 +161,25 @@ namespace ReallifeGamemode.Server.DrivingSchool [RemoteEvent("drivingSchoolEventEnd")] public void DrivingSchoolEventEnd(Player user, int checkpoint) { - user.TriggerEvent("renderTextOnScreen", "Du hast den Führerschein bestanden. Glückwunsch!"); - user.ResetData("ActiveSchool"); - using (var dbContext = new DatabaseContext()) - { + using (var dbContext = new DatabaseContext()) + { User drivingUser = user.GetUser(dbContext); - drivingUser.DriverLicenseVehicle = true; - dbContext.SaveChanges(); - } + if (drivingUser.failpoints > FAILPOINTS) + { + user.TriggerEvent("renderTextOnScreen", "Du hast den Führerschein nicht bestanden."); + drivingUser.failpoints = 0; + } + else + { + user.TriggerEvent("renderTextOnScreen", "Du hast den Führerschein bestanden. Glückwunsch!"); + user.ResetData("ActiveSchool"); + drivingUser.DriverLicenseVehicle = true; + drivingUser.failpoints = 0; + dbContext.SaveChanges(); + } + + } Vehicle veh = user.Vehicle; user.WarpOutOfVehicle(); ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(veh); @@ -183,10 +195,49 @@ namespace ReallifeGamemode.Server.DrivingSchool [RemoteEvent("drivingSchoolEvent")] public void DrivingSchoolEvent(Player user, int checkpoint) { + /* for (int i = 0; i >= 33; i++) + { + if (checkpoint <= 24) + { + user.TriggerEvent("kmh100"); + } + else if (checkpoint >= 25 && checkpoint <= 26) + { + user.TriggerEvent("kmh150"); + } + else if (checkpoint >= 26 && checkpoint <= 28) + { + user.TriggerEvent("kmh100"); + } + else if (checkpoint >= 29 && checkpoint <= 31) + { + user.TriggerEvent("kmh150"); + } + else if (checkpoint >= 32 && checkpoint <= 33) + { + user.TriggerEvent("kmh100"); + } + } + */ + switch(checkpoint) + { + case 25: + case 26: + case 29: + case 30: + user.TriggerEvent("kmh150"); + break; + default: + user.TriggerEvent("kmh100"); + break; + } if (checkpoint == 0) { user.TriggerEvent("renderTextOnScreen", "Sollten Sie aus dem Fahrzeug aussteigen fallen Sie durch."); } + else if (checkpoint == 8) + { + } else if (checkpoint == 9) { user.TriggerEvent("renderTextOnScreen", "Fahre zwischen den Laternen Slalom."); @@ -267,5 +318,19 @@ namespace ReallifeGamemode.Server.DrivingSchool CheckPointHandle.StartCheckPointRoute(user, StopBike, 5000, 1, 7, 3, true, "bikeSchoolEventEnd"); } } + + + + [RemoteEvent("CLIENT:drivingschool_failpoints")] + public void speed_kmh100(Player user) + { + using (var dbContext = new DatabaseContext()) + { + User drivingUser = user.GetUser(dbContext); + user.SendNotification("~r~[1 Fehlerpunkt] ~w~ Du bist zu schnell gefahren."); + drivingUser.failpoints++; + dbContext.SaveChanges(); + } + } } } diff --git a/ReallifeGamemode.Server/Managers/BusinessManager.cs b/ReallifeGamemode.Server/Managers/BusinessManager.cs index b6606aef..7603df43 100644 --- a/ReallifeGamemode.Server/Managers/BusinessManager.cs +++ b/ReallifeGamemode.Server/Managers/BusinessManager.cs @@ -174,6 +174,7 @@ namespace ReallifeGamemode.Server.Managers return; } player.SendChatMessage("~y~Du hast das Fahrzeug erfolgreich gekauft"); + player.SendNotification("~r~[Wichtig] ~w~Benutze 'X', um dein Fahrzeug umzuparken."); newVeh = new UserVehicle {