OverHaul Bus and Pilot TEST

This commit is contained in:
2021-04-10 01:32:12 +02:00
parent cb020aa007
commit b51756a045
14 changed files with 836 additions and 1336 deletions

View File

@@ -7,6 +7,8 @@ using ReallifeGamemode.Database.Models;
using ReallifeGamemode.Server.Services;
using ReallifeGamemode.Server.Managers;
using ReallifeGamemode.Server.Util;
using System.Linq;
using ReallifeGamemode.Database.Entities;
namespace ReallifeGamemode.Server.Job
{
@@ -18,239 +20,224 @@ namespace ReallifeGamemode.Server.Job
private const int CHECKPOINT_MARKER_ID = 6;
public const string BEGINNER = "Anfänger";
public const string INTERMEDIATE = "Fortgeschrittener";
public const string PROFESSIONAL = "Profi";
public const int WAGE_BEGINNER = 350;
public const int WAGE_INTERMEDIATE = 500;
public const uint VEHICLE_BEGINNER = (uint)VehicleHash.Cuban800;
public const uint VEHICLE_INTERMEDIATE = (uint)VehicleHash.Velum2;
public const uint VEHICLE_PROFESSIONAL = (uint)VehicleHash.Submersible;
public static Dictionary<string, List<Vector3>> playerRouteCurrent = new Dictionary<string, List<Vector3>>();
public static int spawnIndex = 0;
public const int SKILL_BEGINNER = 0;
public const int SKILL_INTERMEDIATE = 300;
public override bool NeedVehicleToStart => false;
private readonly IReadOnlyCollection<Vector3> Skill1Route1 = new List<Vector3>//Pilot_Skill_1_Route_1
private readonly Dictionary<Vector3, float> BEGINNER_SPAWNS = new Dictionary<Vector3, float>
{
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();
{ new Vector3(1698.0226, 3261.829, 41.625206), -170},
{ new Vector3(1673.5715, 3255.3167, 41.385006), -170},
{ new Vector3(1652.0725, 3249.6987, 41.194054), -170},
{ new Vector3(1705.3207, 3236.8796, 41.563965), 15},
{ new Vector3(1680.5709, 3230.2217, 41.563965), 52},
};
private readonly IReadOnlyCollection<Vector3> Skill1Route2 = new List<Vector3>//Pilot_Skill_1_Route_2
private readonly Dictionary<Vector3, float> INTERMEDIATE_SPAWNS = new Dictionary<Vector3, float>()
{
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();
{ new Vector3(-1593.1952, -3081.4019, 15), 153},
{ new Vector3(-1573.7805, -3092.615, 15), 153},
{ new Vector3(-1555-9386, -3102-4492, 15), 150},
{ new Vector3(-1536-6404, -3113-7183, 15), 150},
{ new Vector3(-1517-0101, -3125-2798, 15), 150},
};
private readonly IReadOnlyCollection<Vector3> Skill1Route3 = new List<Vector3>//Pilot_Skill_1_Route_3
{
new Vector3(-850.61, 2181.98, 429.67),
}.AsReadOnly();
//124 0 Velum
private readonly IReadOnlyCollection<Vector3> Skill2Route1 = new List<Vector3>//Pilot_Skill_2_Route_1
private readonly Dictionary<int, List<Vector3>> ROUTE_BEGINNER = new Dictionary<int, List<Vector3>>//Bus_Skill_1_Route_1
{
new Vector3(-1534.98828125, -3028.916748046875, 14.451109886169434),
new Vector3(-1182.960205078125, -3236.542724609375, 67.93492126464844),
new Vector3(942.8041381835938, -2997.95751953125, 323.1705322265625),
new Vector3(2459.114501953125, -525.8928833007812, 409.09002685546875),
new Vector3(2764.611572265625, 1482.853271484375, 457.73944091796875),
new Vector3(3485.380615234375, 3652.9619140625, 343.3283996582031),
new Vector3(2652.611572265625, 4737.7958984375, 206.23399353027344),
new Vector3(2043.8521728515625, 4769.595703125, 42.007118225097656),
new Vector3(2134.332763671875, 4781.857421875, 41.900352478027344),
new Vector3(1943.1544189453125, 4721.03125, 57.76427459716797),
new Vector3(1749.4105224609375, 3790.8955078125, 194.40440368652344),
new Vector3(1203.5526123046875, 2707.182373046875, 342.80145263671875),
new Vector3(-377.686279296875, 1256.92578125, 532.7467651367188),
new Vector3(-820.6907958984375, -412.96466064453125, 311.0726013183594),
new Vector3(-1073.534912109375, -1704.798583984375, 94.05522155761719),
new Vector3(-1686.30126953125, -2815.478759765625, 14.87234115600586),
new Vector3(-1617.498291015625, -2982.41259765625, 14.883989334106445),
}.AsReadOnly();
{ 1,
new List<Vector3>()
{
//new Vector3(-601.733, -2049.285, 6.090),
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),
}
},
{ 2,
new List<Vector3>()
{
//new Vector3(-601.733, -2049.285, 6.090),
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),
}
},
};
private readonly IReadOnlyCollection<Vector3> Skill2Route2 = new List<Vector3>//Pilot_Skill_2_Route_2
private readonly Dictionary<int, List<Vector3>> ROUTE_INTERMEDIATE = new Dictionary<int, List<Vector3>>
{
new Vector3(-1463.965576171875, -2875.571533203125, 14.882678031921387),
new Vector3(-981.0889282226562, -3122.533203125, 56.10537338256836),
new Vector3(-341.6023254394531, -2016.779541015625, 262.1709899902344),
new Vector3(-1446.6815185546875, -894.4887084960938, 321.3404846191406),
new Vector3(-3151.909912109375, 979.1404418945312, 335.3139953613281),
new Vector3(-1309.160888671875, 4903.9140625, 388.6031494140625),
new Vector3(31.35175895690918, 3690.413330078125, 333.4454345703125),
new Vector3(-948.346923828125, 2766.284912109375, 239.0842742919922),
new Vector3(-2312.5068359375, 3033.903076171875, 33.7471923828125),
new Vector3(-2132.787109375, 3265.840087890625, 33.74031448364258),
new Vector3(-2331.76611328125, 3148.581298828125, 33.7597541809082),
new Vector3(-2564.848876953125, 2369.27783203125, 182.68736267089844),
new Vector3(-1833.041259765625, 832.1589965820312, 398.28863525390625),
new Vector3(-878.19384765625, -904.84521484375, 284.2839050292969),
new Vector3(-1124.624755859375, -1821.9208984375, 74.77794647216797),
new Vector3(-1631.8602294921875, -2720.09814453125, 14.873514175415039),
new Vector3(-1543.793701171875, -2829.399169921875, 14.899491310119629),
}.AsReadOnly();
private readonly IReadOnlyCollection<Vector3> Skill2Route3 = new List<Vector3>//Pilot_Skill_2_Route_3
{
new Vector3(-710.89, -1836.81, 355.46),
}.AsReadOnly();
{ 1,
new List<Vector3>()
{
new Vector3(-1534.98828125, -3028.916748046875, 14.451109886169434),
new Vector3(-1182.960205078125, -3236.542724609375, 67.93492126464844),
new Vector3(942.8041381835938, -2997.95751953125, 323.1705322265625),
new Vector3(2459.114501953125, -525.8928833007812, 409.09002685546875),
new Vector3(2764.611572265625, 1482.853271484375, 457.73944091796875),
new Vector3(3485.380615234375, 3652.9619140625, 343.3283996582031),
new Vector3(2652.611572265625, 4737.7958984375, 206.23399353027344),
new Vector3(2043.8521728515625, 4769.595703125, 42.007118225097656),
new Vector3(2134.332763671875, 4781.857421875, 41.900352478027344),
new Vector3(1943.1544189453125, 4721.03125, 57.76427459716797),
new Vector3(1749.4105224609375, 3790.8955078125, 194.40440368652344),
new Vector3(1203.5526123046875, 2707.182373046875, 342.80145263671875),
new Vector3(-377.686279296875, 1256.92578125, 532.7467651367188),
new Vector3(-820.6907958984375, -412.96466064453125, 311.0726013183594),
new Vector3(-1073.534912109375, -1704.798583984375, 94.05522155761719),
new Vector3(-1686.30126953125, -2815.478759765625, 14.87234115600586),
new Vector3(-1617.498291015625, -2982.41259765625, 14.883989334106445),
}
},
{ 2,
new List<Vector3>()
{
new Vector3(-1463.965576171875, -2875.571533203125, 14.882678031921387),
new Vector3(-981.0889282226562, -3122.533203125, 56.10537338256836),
new Vector3(-341.6023254394531, -2016.779541015625, 262.1709899902344),
new Vector3(-1446.6815185546875, -894.4887084960938, 321.3404846191406),
new Vector3(-3151.909912109375, 979.1404418945312, 335.3139953613281),
new Vector3(-1309.160888671875, 4903.9140625, 388.6031494140625),
new Vector3(31.35175895690918, 3690.413330078125, 333.4454345703125),
new Vector3(-948.346923828125, 2766.284912109375, 239.0842742919922),
new Vector3(-2312.5068359375, 3033.903076171875, 33.7471923828125),
new Vector3(-2132.787109375, 3265.840087890625, 33.74031448364258),
new Vector3(-2331.76611328125, 3148.581298828125, 33.7597541809082),
new Vector3(-2564.848876953125, 2369.27783203125, 182.68736267089844),
new Vector3(-1833.041259765625, 832.1589965820312, 398.28863525390625),
new Vector3(-878.19384765625, -904.84521484375, 284.2839050292969),
new Vector3(-1124.624755859375, -1821.9208984375, 74.77794647216797),
new Vector3(-1631.8602294921875, -2720.09814453125, 14.873514175415039),
new Vector3(-1543.793701171875, -2829.399169921875, 14.899491310119629),
}
},
};
public PilotJob()
{
JobStart += PilotJob_JobStart;
JobStop += _JobStop;
}
private void PilotJob_JobStart(Player player)
private void _JobStop(Player player)
{
/*List<String> listRouteTexts = new List<string>();
List<String> listRouteTexts2 = new List<string>();
if (!playerVehiclePair.ContainsKey(player))
return;
Vehicle veh = player.Vehicle;
playerVehiclePair[player].Delete();
playerVehiclePair.Remove(player);
}
if ((VehicleHash)veh.Model == VehicleHash.Velum || (VehicleHash)veh.Model == VehicleHash.Velum2)
{
listRouteTexts2.Add("Route 4");
listRouteTexts2.Add("Route 5");
listRouteTexts2.Add("Route 6");
public string getSkill(int skillPoints)
{
if (skillPoints == SKILL_BEGINNER)
return BEGINNER;
else if (skillPoints == SKILL_INTERMEDIATE)
return INTERMEDIATE;
player.TriggerEvent("showPilotRouteMenu", JsonConvert.SerializeObject(listRouteTexts2));
}
else
{
listRouteTexts.Add("Route 1");
listRouteTexts.Add("Route 2");
listRouteTexts.Add("Route 3");
return "none";
}
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;
}
}*/
private uint getPlayerJobVehicle(string type)
{
if (type == BEGINNER)
return VEHICLE_BEGINNER;
else if (type == INTERMEDIATE)
return VEHICLE_INTERMEDIATE;
else if (type == PROFESSIONAL)
return VEHICLE_PROFESSIONAL;
return 0;
}
[RemoteEvent("startPilotRoute")]
public void StartPilotRoute(Player player, string type)
public void StartPilotRoute(Player player, int skillPoints)
{
Vehicle veh = player.Vehicle;
if (player.VehicleSeat == 0)
string type = getSkill(skillPoints);
List<Vector3> selectedRoute = new List<Vector3>();
Random random = new Random();
Vector3 spawnPoint = null;
float heading = 0;
if (type == BEGINNER)
{
if (type == "RouteStart")
{
if (player.HasData("PilotenBase") && player.GetData<int>("PilotenBase") == 1)
{
Random rnd = new Random();
int rroute = rnd.Next(1, 3);
switch (rroute)
{
case 1:
{
CheckPointHandle.StartCheckPointRoute(player, Skill1Route1, 0, CHECKPOINT_MARKER_ID, 40, 10, true, "pilotJob"); //6, 23, 25, 26, 27, 28
player.SendChatMessage("~y~Job: ~s~Route wurde gesetzt: ~g~Route 1");
player.SetData("Route", "Skill1Route1");
break;
}
case 2:
{
CheckPointHandle.StartCheckPointRoute(player, Skill1Route2, 0, CHECKPOINT_MARKER_ID, 40, 10, true, "pilotJob"); //6, 23, 25, 26, 27, 28
player.SendChatMessage("~y~Job: ~s~Route wurde gesetzt: ~g~Route 2");
player.SetData("Route", "Skill1Route2");
break;
}
/*case 3:
{
CheckPointHandle.StartCheckPointRoute(player, Skill1Route3, 0, 26, 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<int>("PilotenBase") == 2)
{
Random rnd = new Random();
int rroute = rnd.Next(1, 3);
switch (rroute)
{
case 1:
{
CheckPointHandle.StartCheckPointRoute(player, Skill2Route1, 0, CHECKPOINT_MARKER_ID, 40, 10, true, "pilotJob"); //6, 23, 25, 26, 27, 28
player.SendChatMessage("~y~Job: ~s~Route wurde gesetzt: ~g~Route 1");
player.SetData("Route", "Skill2Route1");
break;
}
case 2:
{
CheckPointHandle.StartCheckPointRoute(player, Skill2Route2, 0, CHECKPOINT_MARKER_ID, 40, 10, true, "pilotJob"); //6, 23, 25, 26, 27, 28
player.SendChatMessage("~y~Job: ~s~Route wurde gesetzt: ~g~Route 2");
player.SetData("Route", "Skill2Route2");
break;
}
/*case 3:
{
CheckPointHandle.StartCheckPointRoute(player, Skill2Route3, 0, 26, 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");
}*/
spawnPoint = BEGINNER_SPAWNS.Keys.ToList()[spawnIndex++ % BEGINNER_SPAWNS.Count];
heading = BEGINNER_SPAWNS[spawnPoint];
selectedRoute = ROUTE_BEGINNER.GetValueOrDefault(random.Next(1, ROUTE_BEGINNER.Count));
}
else if (type == INTERMEDIATE)
{
spawnPoint = INTERMEDIATE_SPAWNS.Keys.ToList()[spawnIndex++ % INTERMEDIATE_SPAWNS.Count];
heading = INTERMEDIATE_SPAWNS[spawnPoint];
selectedRoute = ROUTE_INTERMEDIATE.GetValueOrDefault(random.Next(1, ROUTE_INTERMEDIATE.Count));
}
if (selectedRoute.Count is 0)
{
Console.WriteLine($"[ERROR:BUSJOB] Player {player.Name} has empty route Vector3 List.");
return;
}
if (spawnPoint is null)
{
Console.WriteLine($"[ERROR:BUSJOB] Player {player.Name} has empty spawn point.");
return;
}
Vehicle vehicle = NAPI.Vehicle.CreateVehicle(getPlayerJobVehicle(type), spawnPoint, heading, 124, 0, "JOB");
vehicle.NumberPlate = "JOB-" + vehicle.Id;
if (vehicle is null)
{
Console.WriteLine($"[ERROR:BUSJOB] Player {player.Name} got no Vehicle set.");
return;
}
if (!playerRouteCurrent.ContainsKey(player.Name))
playerRouteCurrent.Add(player.Name, new List<Vector3>());
playerRouteCurrent[player.Name] = selectedRoute;
if (playerVehiclePair.ContainsKey(player))
{
if (playerVehiclePair[player] != null)
playerVehiclePair[player].Delete();
playerVehiclePair.Remove(player);
}
playerVehiclePair.Add(player, vehicle);
player.SetIntoVehicle(vehicle.Handle, 0);
CheckPointHandle.StartCheckPointRoute(player, selectedRoute, 0, CHECKPOINT_MARKER_ID, 40, 10, true, "pilotJob"); //6, 23, 25, 26, 27, 28
}
public static void payWage(Player jobber, int wage)
{
using (var dbContext = new DatabaseContext())
@@ -277,64 +264,113 @@ namespace ReallifeGamemode.Server.Job
}
}
[RemoteEvent("PilotLetzterCheckpoint")]
public static void PilotLetzterCheckpoint(Player player)
public string getPlayerRouteType(Player player)
{
PilotJob c = new PilotJob();
Vehicle v = player.Vehicle;
c.StartPilotRoute(player, "RouteStart");
/*if (player.HasData("PilotenBase") && player.GetData<int>("PilotenBase") == 1)
if (!playerRouteCurrent.ContainsKey(player.Name))
return "none";
List<Vector3> selectedRoute = playerRouteCurrent[player.Name];
if (ROUTE_BEGINNER.Values.Where(v => v.Equals(selectedRoute)) != null)
return BEGINNER;
else if (ROUTE_INTERMEDIATE.Values.Where(v => v.Equals(selectedRoute)) != null)
return INTERMEDIATE;
return "none";
}
public int getSkillFromType(string type)
{
if (type == BEGINNER)
return SKILL_BEGINNER;
else if (type == INTERMEDIATE)
return SKILL_INTERMEDIATE;
return -1;
}
public override void LastCheckpoint(Player player)
{
string type = getPlayerRouteType(player);
int skill = getSkillFromType(type);
if (skill == -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;
}
}
StopJob(player, true);
return;
}
if (player.HasData("PilotenBase") && player.GetData<int>("PilotenBase") == 2)
StartPilotRoute(player, skill);
}
public override void StartJobEndTimer(Player player)
{
if (!playerVehiclePair.ContainsKey(player))
return;
if (JobManager.playerTimersJobVehicleRespawn.ContainsKey(player))
{
Random rnd = new Random();
int rroute = rnd.Next(1, 4);
switch (rroute)
JobManager.playerTimersJobVehicleRespawn[player].Stop();
}
PlayerTimer playerTimer = new PlayerTimer(player, playerVehiclePair[player], 30000);
playerTimer.Elapsed += JobTimerElapsed;
JobManager.playerTimersJobVehicleRespawn[player] = playerTimer;
player.SendChatMessage("~y~[JOB] ~w~Du hast das Fahrzeug verlassen,");
player.SendChatMessage("~y~[JOB] ~w~Bist du nicht in 30 Sekunden zurück, ~r~wird der Job beendet!");
}
private void JobTimerElapsed(Player player, Vehicle vehicle)
{
NAPI.Task.Run(() =>
{
StopJob(player, !player.GetData<bool>("isDead"));
JobManager.playerTimersJobVehicleRespawn[player].Stop();
JobManager.playerTimersJobVehicleRespawn.Remove(player);
});
}
public override bool CheckVehicle(Player player, Vehicle vehicle)
{
if (!playerVehiclePair.ContainsKey(player))
return false;
if (playerVehiclePair[player] == vehicle)
return true;
return false;
}
}
public class PilotJobEvents : Script
{
[RemoteEvent("PILOT:InCheckpoint")]
public void PilotInCheckpoint(Player player)
{
if (!PilotJob.playerVehiclePair.ContainsKey(player) || !PilotJob.playerRouteCurrent.ContainsKey(player.Name))
return;
if (PilotJob.playerVehiclePair[player].Model is PilotJob.VEHICLE_BEGINNER)
payWage(player, PilotJob.WAGE_BEGINNER / PilotJob.playerRouteCurrent[player.Name].Count);
else if (PilotJob.playerVehiclePair[player].Model is PilotJob.VEHICLE_INTERMEDIATE)
payWage(player, PilotJob.WAGE_INTERMEDIATE / PilotJob.playerRouteCurrent[player.Name].Count);
}
private void payWage(Player player, int wage)
{
using var dbContext = new DatabaseContext();
User user = player.GetUser(dbContext);
if (player.VehicleSeat == 0)
{
user.Wage += wage;
user.PilotSkill++;
if (user.PilotSkill == BusDriverJob.SKILL_INTERMEDIATE)
{
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;
}
player.SendChatMessage($"~y~[Job]: ~w~Du hast nun die Route ~g~{BusDriverJob.INTERMEDIATE} ~w~freigeschaltet!");
player.SendChatMessage($"~y~[Job]: ~w~Du kannst jetzt auch mit dem Coach fahren!");
}
}*/
dbContext.SaveChanges();
}
}
}
}