using System; using System.Collections.Generic; using GTANetworkAPI; using Newtonsoft.Json; using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Database.Models; using ReallifeGamemode.Server.Services; using ReallifeGamemode.Server.Managers; namespace ReallifeGamemode.Server.Job { internal class PilotJob : JobBase { public override int Id => 3; public override string Name => "Pilot"; public override bool NeedVehicleToStart => false; private readonly IReadOnlyCollection Skill1Route1 = new List//Pilot_Skill_1_Route_1 { new Vector3(1645.9910888671875, 3236.744873046875, 40.98052978515625), new Vector3(302.6805114746094, 2867.93896484375, 204.81182861328125), new Vector3(-1093.6722412109375, 2737.1376953125, 257.575439453125), new Vector3(-2286.014892578125, 3019.12841796875, 33.4510498046875), new Vector3(-2471.854248046875, 3271.08935546875, 33.47834777832031), new Vector3(-623.9515380859375, 5313.12158203125, 181.6047821044922), new Vector3(1896.899658203125, 4824.203125, 208.77737426757812), new Vector3(2281.790283203125, 3606.98681640625, 132.3915252685547), new Vector3(1610.4461669921875, 3225.36376953125, 41.05073928833008), }.AsReadOnly(); private readonly IReadOnlyCollection Skill1Route2 = new List//Pilot_Skill_1_Route_2 { new Vector3(1593.927490234375, 3193.30908203125, 41.170997619628906), new Vector3(961.5843505859375, 2278.5966796875, 251.17218017578125), new Vector3(924.3920288085938, 93.95357513427734, 282.3033142089844), new Vector3(963.6002197265625, -3101.551513671875, 177.8121337890625), new Vector3(-1265.1163330078125, -2990.142578125, 14.595105171203613), new Vector3(-1260.78662109375, -2806.293212890625, 14.587812423706055), new Vector3(-894.3707885742188, 82.7993392944336, 385.011962890625), new Vector3(919.4126586914062, 2553.385986328125, 135.39154052734375), new Vector3(1592.840087890625, 3192.8017578125, 41.169837951660156), }.AsReadOnly(); private readonly IReadOnlyCollection Skill1Route3 = new List//Pilot_Skill_1_Route_3 { new Vector3(-850.61, 2181.98, 429.67), }.AsReadOnly(); private readonly IReadOnlyCollection Skill2Route1 = new List//Pilot_Skill_2_Route_1 { new Vector3(-1563.0125732421875, -3019.960205078125, 14.879448890686035), new Vector3(-606.9600830078125, -2660.677490234375, 136.10226440429688), new Vector3(734.489990234375, -967.21533203125, 604.9561157226562), new Vector3(107.65938568115234, 1202.3692626953125, 972.5994873046875), new Vector3(67.48933410644531, 3056.564697265625, 865.25537109375), new Vector3(1707.2711181640625, 3276.216064453125, 41.155494689941406), new Vector3(1731.6995849609375, 3308.203125, 41.223514556884766), new Vector3(1106.1397705078125, 3090.18798828125, 74.03556823730469), new Vector3(41.88761901855469, 1728.1295166015625, 446.2645568847656), new Vector3(-1144.333984375, -943.0862426757812, 376.0502624511719), new Vector3(-1406.51220703125, -2334.29052734375, 50.125667572021484), new Vector3(-1590.4517822265625, -2996.38330078125, 13.94474983215332), new Vector3(-1666.028076171875, -3082.910888671875, 13.944761276245117), }.AsReadOnly(); private readonly IReadOnlyCollection Skill2Route2 = new List//Pilot_Skill_2_Route_2 { new Vector3(-1412.8221435546875, -3044.2587890625, 14.887921333312988), new Vector3(-1627.982177734375, -2714.71875, 14.880501747131348), new Vector3(-1309.5150146484375, -2030.012451171875, 120.04487609863281), new Vector3(-1079.538330078125, -325.4757385253906, 435.19158935546875), new Vector3(-495.6157531738281, 2248.668701171875, 800.2356567382812), new Vector3(1707.2711181640625, 3276.216064453125, 41.155494689941406), new Vector3(1850.8380126953125, 4677.72412109375, 71.57810974121094), new Vector3(2131.758544921875, 4782.18115234375, 40.970279693603516), new Vector3(1963.30078125, 4726.73681640625, 52.904056549072266), new Vector3(1168.9517822265625, 4205.9033203125, 172.29588317871094), new Vector3(-1138.7547607421875, -1896.85498046875, 91.5819091796875), new Vector3(-1551.466064453125, -2706.53125, 13.945389747619629), new Vector3(-1571.1328125, -2856.3505859375, 13.944441795349121), new Vector3(-1582.531005859375, -2999.940185546875, 13.936454772949219), new Vector3(-1668.747802734375, -3081.548095703125, 13.9447660446167), }.AsReadOnly(); private readonly IReadOnlyCollection Skill2Route3 = new List//Pilot_Skill_2_Route_3 { new Vector3(-710.89, -1836.81, 355.46), }.AsReadOnly(); public PilotJob() { JobStart += PilotJob_JobStart; } private void PilotJob_JobStart(Player player) { /*List listRouteTexts = new List(); List listRouteTexts2 = new List(); Vehicle veh = player.Vehicle; if ((VehicleHash)veh.Model == VehicleHash.Velum || (VehicleHash)veh.Model == VehicleHash.Velum2) { listRouteTexts2.Add("Route 4"); listRouteTexts2.Add("Route 5"); listRouteTexts2.Add("Route 6"); player.TriggerEvent("showPilotRouteMenu", JsonConvert.SerializeObject(listRouteTexts2)); } else { listRouteTexts.Add("Route 1"); listRouteTexts.Add("Route 2"); listRouteTexts.Add("Route 3"); player.TriggerEvent("showPilotRouteMenu", JsonConvert.SerializeObject(listRouteTexts)); }*/ /*Random rnd = new Random(); int rroute = rnd.Next(1, 6); switch (rroute) { case 1: { StartPilotRoute(player, "Route 1"); break; } case 2: { StartPilotRoute(player, "Route 2"); break; } case 3: { StartPilotRoute(player, "Route 3"); break; } case 4: { StartPilotRoute(player, "Route 4"); break; } case 5: { StartPilotRoute(player, "Route 5"); break; } }*/ [RemoteEvent("startPilotRoute")] public void StartPilotRoute(Player player, string type) { Vehicle veh = player.Vehicle; if (player.VehicleSeat == 0) { if (type == "RouteStart") { if (player.HasData("PilotenBase") && player.GetData("PilotenBase") == 1) { Random rnd = new Random(); int rroute = rnd.Next(1, 4); switch (rroute) { case 1: { CheckPointHandle.StartCheckPointRoute(player, Skill1Route1, 0, 6, 40, 10, true, "pilotJob"); //6, 23, 25, 26, 27, 28 player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 1"); player.SetData("Route", "Skill1Route1"); break; } case 2: { CheckPointHandle.StartCheckPointRoute(player, Skill1Route2, 0, 6, 40, 10, true, "pilotJob"); //6, 23, 25, 26, 27, 28 player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 2"); player.SetData("Route", "Skill1Route2"); break; } case 3: { CheckPointHandle.StartCheckPointRoute(player, Skill1Route3, 0, 6, 40, 10, true, "pilotJob"); //6, 23, 25, 26, 27, 28 player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 3"); player.SetData("Route", "Skill1Route3"); break; } } } if (player.HasData("PilotenBase") && player.GetData("PilotenBase") == 2) { Random rnd = new Random(); int rroute = rnd.Next(1, 4); switch (rroute) { case 1: { CheckPointHandle.StartCheckPointRoute(player, Skill2Route1, 0, 6, 40, 10, true, "pilotJob"); //6, 23, 25, 26, 27, 28 player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 1"); player.SetData("Route", "Skill2Route1"); break; } case 2: { CheckPointHandle.StartCheckPointRoute(player, Skill2Route2, 0, 6, 40, 10, true, "pilotJob"); //6, 23, 25, 26, 27, 28 player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 2"); player.SetData("Route", "Skill2Route2"); break; } case 3: { CheckPointHandle.StartCheckPointRoute(player, Skill2Route3, 0, 6, 40, 10, true, "pilotJob"); //6, 23, 25, 26, 27, 28 player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 3"); player.SetData("Route", "Skill2Route3"); break; } } } } /*if (type == "Route 1") { CheckPointHandle.StartCheckPointRoute(player, Route1, 0, 6, 40, 10, true, "pilotJob"); //6, 23, 25, 26, 27, 28 } else if (type == "Route 2") { CheckPointHandle.StartCheckPointRoute(player, Route2, 0, 6, 40, 10, true, "pilotJob"); } else if (type == "Route 3") { CheckPointHandle.StartCheckPointRoute(player, Route3, 0, 6, 40, 10, true, "pilotJob"); } else if (type == "Route 4") { CheckPointHandle.StartCheckPointRoute(player, Route4, 0, 6, 40, 10, true, "pilotJob"); } else if (type == "Route 5") { CheckPointHandle.StartCheckPointRoute(player, Route5, 0, 6, 40, 10, true, "pilotJob"); } else if (type == "Route 6") { CheckPointHandle.StartCheckPointRoute(player, Route6, 0, 6, 40, 10, true, "pilotJob"); }*/ } } public static void payWage(Player jobber, int wage) { using (var dbContext = new DatabaseContext()) { if (jobber.VehicleSeat == 0) { jobber.GetUser(dbContext).Wage += wage; //jobber.SendNotification($"~y~[JOB] ~g~+{wage}$"); jobber.GetUser(dbContext).PilotSkill++; dbContext.SaveChanges(); if (jobber.GetUser(dbContext).PilotSkill == 300) { jobber.SendChatMessage($"~y~[JOB] ~w~Du hast nun ~g~Skill-Level 2 ~w~erreicht!"); jobber.SendChatMessage($"~y~[JOB] ~w~Du kannst jetzt auch mit dem Velum Flugzeug (LS Airport) fliegen!"); } } else { JobBase job = JobManager.GetJob(jobber.GetUser().JobId??-1); job.StopJob(jobber); CheckPointHandle.DeleteCheckpoints(jobber); ChatService.SendMessage(jobber, $"~y~[JOB]~s~ Du hast deinen Job ~o~{job.Name}~s~ beendet."); } } } [RemoteEvent("PilotLetzterCheckpoint")] public static void PilotLetzterCheckpoint(Player player) { PilotJob c = new PilotJob(); Vehicle v = player.Vehicle; c.StartPilotRoute(player, "RouteStart"); /*if (player.HasData("PilotenBase") && player.GetData("PilotenBase") == 1) { Random rnd = new Random(); int rroute = rnd.Next(1, 4); switch (rroute) { case 1: { c.StartPilotRoute(player, "Route 1"); player.SendChatMessage("~y~[JOB] ~w~Eine neue Route wurde gesetzt.: ~g~Route 1"); break; } case 2: { c.StartPilotRoute(player, "Route 2"); player.SendChatMessage("~y~[JOB] ~w~Eine neue Route wurde gesetzt.: ~g~Route 2"); break; } case 3: { c.StartPilotRoute(player, "Route 3"); player.SendChatMessage("~y~[JOB] ~w~Eine neue Route wurde gesetzt.: ~g~Route 2"); break; } } } if (player.HasData("PilotenBase") && player.GetData("PilotenBase") == 2) { Random rnd = new Random(); int rroute = rnd.Next(1, 4); switch (rroute) { case 1: { c.StartPilotRoute(player, "Route 4"); player.SendChatMessage("~y~[JOB] ~w~Eine neue Route wurde gesetzt.: ~g~Route 4"); break; } case 2: { c.StartPilotRoute(player, "Route 5"); player.SendChatMessage("~y~[JOB] ~w~Eine neue Route wurde gesetzt.: ~g~Route 5"); break; } case 3: { c.StartPilotRoute(player, "Route 6"); player.SendChatMessage("~y~[JOB] ~w~Eine neue Route wurde gesetzt.: ~g~Route 6"); break; } } }*/ } } }