Bus and Pilot Overhaul
This commit is contained in:
@@ -33,15 +33,14 @@ export default function busRouteList(globalData: IGlobalData) {
|
|||||||
|
|
||||||
routeMenu = new Menu("Bus Job", "", new Point(0, screenRes.y / 3), null, null);
|
routeMenu = new Menu("Bus Job", "", new Point(0, screenRes.y / 3), null, null);
|
||||||
routeMenu.AddItem(new UIMenuListItem("Route wählen", "", new ItemsCollection(skillSelect)));
|
routeMenu.AddItem(new UIMenuListItem("Route wählen", "", new ItemsCollection(skillSelect)));
|
||||||
|
routeSelect = "Anfänger";
|
||||||
routeMenu.AddItem(sendItem);
|
routeMenu.AddItem(sendItem);
|
||||||
routeMenu.AddItem(cancelItem);
|
routeMenu.AddItem(cancelItem);
|
||||||
routeMenu.Visible = true;
|
routeMenu.Visible = true;
|
||||||
routeSelect = skillSelect[0];
|
|
||||||
|
|
||||||
routeMenu.ListChange.on((item, index) => {
|
routeMenu.ListChange.on((item, index) => {
|
||||||
switch (item.Text) {
|
switch (item.Text) {
|
||||||
case "Skill wählen":
|
case "Route wählen":
|
||||||
routeSelect = String(item.SelectedItem.DisplayText);
|
routeSelect = String(item.SelectedItem.DisplayText);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -49,18 +48,22 @@ export default function busRouteList(globalData: IGlobalData) {
|
|||||||
|
|
||||||
routeMenu.ItemSelect.on((item) => {
|
routeMenu.ItemSelect.on((item) => {
|
||||||
if (item.Text === "Starten") {
|
if (item.Text === "Starten") {
|
||||||
|
|
||||||
if (routeSelect == skillSelect[1] && skill < 300) {
|
if (routeSelect == skillSelect[1] && skill < 300) {
|
||||||
mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true);
|
mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
if (routeSelect == skillSelect[2] && skill < 800) {
|
else if (routeSelect == skillSelect[2] && skill < 800)
|
||||||
|
{
|
||||||
mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true);
|
mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
mp.events.callRemote("CLIENT:StartBusRoute", routeSelect);
|
mp.events.callRemote("CLIENT:StartBusRoute", routeSelect);
|
||||||
routeMenu.Close();
|
routeMenu.Close();
|
||||||
globalData.InMenu = false;
|
globalData.InMenu = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
} else if (item.Text === "Abbrechen") {
|
} else if (item.Text === "Abbrechen") {
|
||||||
mp.events.callRemote("CLIENT:Job_StopJob");
|
mp.events.callRemote("CLIENT:Job_StopJob");
|
||||||
|
|
||||||
|
|||||||
@@ -6,9 +6,25 @@ namespace ReallifeGamemode.Server.Extensions
|
|||||||
{
|
{
|
||||||
internal static class ListExtensions
|
internal static class ListExtensions
|
||||||
{
|
{
|
||||||
public static bool Contains(this List<Player> list, Player client)
|
public static bool VectorEquals(this List<Vector3> vector3s, List<Vector3> compareToList)
|
||||||
{
|
{
|
||||||
return list.Any(l => l.Handle.Value == client.Handle.Value);
|
if (vector3s.Count != compareToList.Count)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
for (int i = 0; i < vector3s.Count; i++)
|
||||||
|
{
|
||||||
|
Vector3 vector = vector3s[i];
|
||||||
|
Vector3 compareTo = compareToList[i];
|
||||||
|
|
||||||
|
if (vector.X != compareTo.X)
|
||||||
|
return false;
|
||||||
|
if (vector.Y != compareTo.Y)
|
||||||
|
return false;
|
||||||
|
if (vector.Z != compareTo.Z)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -269,9 +269,7 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
if (!playerVehiclePair.ContainsKey(player))
|
if (!playerVehiclePair.ContainsKey(player))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (playerRouteCurrent.ContainsKey(player.Name))
|
CheckPointHandle.DeleteCheckpoints(player);
|
||||||
playerRouteCurrent.Remove(player.Name);
|
|
||||||
|
|
||||||
playerVehiclePair[player].Delete();
|
playerVehiclePair[player].Delete();
|
||||||
playerVehiclePair.Remove(player);
|
playerVehiclePair.Remove(player);
|
||||||
}
|
}
|
||||||
@@ -283,16 +281,48 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
|
|
||||||
List<Vector3> selectedRoute = playerRouteCurrent[player.Name];
|
List<Vector3> selectedRoute = playerRouteCurrent[player.Name];
|
||||||
|
|
||||||
if (ROUTE_BEGINNER.Values.Where(v => v.Equals(selectedRoute)) != null)
|
if (ROUTE_BEGINNER.Values.Where(v => v.VectorEquals(selectedRoute)).Count() != 0)
|
||||||
return BEGINNER;
|
return BEGINNER;
|
||||||
else if (ROUTE_INTERMEDIATE.Values.Where(v => v.Equals(selectedRoute)) != null)
|
else if (ROUTE_INTERMEDIATE.Values.Where(v => v.VectorEquals(selectedRoute)).Count() != 0)
|
||||||
return INTERMEDIATE;
|
return INTERMEDIATE;
|
||||||
else if (ROUTE_PROFESSIONAL.Values.Where(v => v.Equals(selectedRoute)) != null)
|
else if (ROUTE_PROFESSIONAL.Values.Where(v => v.VectorEquals(selectedRoute)).Count() != 0)
|
||||||
return PROFESSIONAL;
|
return PROFESSIONAL;
|
||||||
|
|
||||||
return "none";
|
return "none";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getPlayerRouteInex(Player player)
|
||||||
|
{
|
||||||
|
if (!playerRouteCurrent.ContainsKey(player.Name))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
List<Vector3> selectedRoute = playerRouteCurrent[player.Name];
|
||||||
|
|
||||||
|
for (int i = 1; i < 100; i++)
|
||||||
|
{
|
||||||
|
if (!ROUTE_BEGINNER.ContainsKey(i) && !ROUTE_INTERMEDIATE.ContainsKey(i) && !ROUTE_PROFESSIONAL.ContainsKey(i))
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (ROUTE_BEGINNER.ContainsKey(i))
|
||||||
|
{
|
||||||
|
if (ROUTE_BEGINNER[i].VectorEquals(selectedRoute))
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
if (ROUTE_INTERMEDIATE.ContainsKey(i))
|
||||||
|
{
|
||||||
|
if (ROUTE_INTERMEDIATE[i].VectorEquals(selectedRoute))
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
if (ROUTE_PROFESSIONAL.ContainsKey(i))
|
||||||
|
{
|
||||||
|
if (ROUTE_PROFESSIONAL[i].VectorEquals(selectedRoute))
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
private uint getPlayerJobVehicle(Player player)
|
private uint getPlayerJobVehicle(Player player)
|
||||||
{
|
{
|
||||||
string type = getPlayerRouteType(player);
|
string type = getPlayerRouteType(player);
|
||||||
@@ -315,38 +345,63 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
if (type == PROFESSIONAL && user.BusSkill < SKILL_PROFESSIONAL) { player.TriggerEvent("MenuSelect:Error"); return; }
|
if (type == PROFESSIONAL && user.BusSkill < SKILL_PROFESSIONAL) { player.TriggerEvent("MenuSelect:Error"); return; }
|
||||||
|
|
||||||
List<Vector3> selectedRoute = new List<Vector3>();
|
List<Vector3> selectedRoute = new List<Vector3>();
|
||||||
|
int index = -1;
|
||||||
|
|
||||||
if (playerRouteCurrent.ContainsKey(player.Name))
|
if (playerRouteCurrent.ContainsKey(player.Name))
|
||||||
{
|
{
|
||||||
selectedRoute = playerRouteCurrent[player.Name];
|
index = getPlayerRouteInex(player);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Random random = new Random();
|
Random random = new Random();
|
||||||
|
index = random.Next(1, 8);
|
||||||
|
}
|
||||||
|
|
||||||
if (type == BEGINNER)
|
if (type == BEGINNER)
|
||||||
{
|
{
|
||||||
|
index %= ROUTE_BEGINNER.Count;
|
||||||
if (playerRoutePair1.ContainsKey(player.Name))
|
if (playerRoutePair1.ContainsKey(player.Name))
|
||||||
|
{
|
||||||
selectedRoute = playerRoutePair1[player.Name];
|
selectedRoute = playerRoutePair1[player.Name];
|
||||||
|
}
|
||||||
else
|
else
|
||||||
selectedRoute = ROUTE_BEGINNER.GetValueOrDefault(random.Next(1, ROUTE_BEGINNER.Count));
|
{
|
||||||
|
selectedRoute = ROUTE_BEGINNER.GetValueOrDefault(index);
|
||||||
|
playerRoutePair1.Add(player.Name, selectedRoute);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (type == INTERMEDIATE)
|
else if (type == INTERMEDIATE)
|
||||||
{
|
{
|
||||||
|
index %= ROUTE_INTERMEDIATE.Count;
|
||||||
|
|
||||||
if (playerRoutePair2.ContainsKey(player.Name))
|
if (playerRoutePair2.ContainsKey(player.Name))
|
||||||
|
{
|
||||||
selectedRoute = playerRoutePair2[player.Name];
|
selectedRoute = playerRoutePair2[player.Name];
|
||||||
|
}
|
||||||
else
|
else
|
||||||
selectedRoute = ROUTE_INTERMEDIATE.GetValueOrDefault(random.Next(1, ROUTE_INTERMEDIATE.Count));
|
{
|
||||||
|
selectedRoute = ROUTE_INTERMEDIATE.GetValueOrDefault(index);
|
||||||
|
playerRoutePair2.Add(player.Name, selectedRoute);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (type == PROFESSIONAL)
|
else if (type == PROFESSIONAL)
|
||||||
{
|
{
|
||||||
|
index %= ROUTE_PROFESSIONAL.Count;
|
||||||
|
|
||||||
if (playerRoutePair3.ContainsKey(player.Name))
|
if (playerRoutePair3.ContainsKey(player.Name))
|
||||||
|
{
|
||||||
selectedRoute = playerRoutePair3[player.Name];
|
selectedRoute = playerRoutePair3[player.Name];
|
||||||
|
}
|
||||||
else
|
else
|
||||||
selectedRoute = ROUTE_PROFESSIONAL.GetValueOrDefault(random.Next(1, ROUTE_PROFESSIONAL.Count));
|
{
|
||||||
|
selectedRoute = ROUTE_PROFESSIONAL.GetValueOrDefault(index);
|
||||||
|
playerRoutePair3.Add(player.Name, selectedRoute);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (playerRouteCurrent.ContainsKey(player.Name))
|
||||||
|
playerRouteCurrent.Remove(player.Name);
|
||||||
playerRouteCurrent.Add(player.Name, selectedRoute);
|
playerRouteCurrent.Add(player.Name, selectedRoute);
|
||||||
}
|
|
||||||
|
|
||||||
if (selectedRoute.Count is 0)
|
if (selectedRoute.Count is 0)
|
||||||
{
|
{
|
||||||
@@ -375,154 +430,18 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
player.SetIntoVehicle(vehicle.Handle, 0);
|
player.SetIntoVehicle(vehicle.Handle, 0);
|
||||||
player.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/FahrplanAbfahrt", "wav", 15);
|
player.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/FahrplanAbfahrt", "wav", 15);
|
||||||
player.StartCheckPointRoute(selectedRoute, MARKER_DELAY, MARKER_ID, MARKER_SIZE, MARKER_DIST, true, MARKER_EVENT);
|
player.StartCheckPointRoute(selectedRoute, MARKER_DELAY, MARKER_ID, MARKER_SIZE, MARKER_DIST, true, MARKER_EVENT);
|
||||||
|
if (index != -1)
|
||||||
#region delete
|
player.SendChatMessage($"~y~[JOB]: ~w~Dir wurde ~g~ Route {index}~w~ zugeteilt.");
|
||||||
|
|
||||||
/*
|
|
||||||
Vehicle veh = player.Vehicle;
|
|
||||||
if (player.VehicleSeat == 0)
|
|
||||||
{
|
|
||||||
if (type == "RouteStart")
|
|
||||||
{
|
|
||||||
if ((VehicleHash)veh.Model == VehicleHash.Bus)
|
|
||||||
{
|
|
||||||
Random rnd = new Random();
|
|
||||||
int rroute = rnd.Next(1, 5);
|
|
||||||
switch (rroute)
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill1Route1, MARKER_DELAY, MARKER_ID, MARKER_SIZE, MARKER_DIST, true, MARKER_EVENT);
|
|
||||||
player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 1");
|
|
||||||
player.SetData("Route", "Skill1Route1");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 2:
|
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill1Route2, MARKER_DELAY, MARKER_ID, MARKER_SIZE, MARKER_DIST, true, MARKER_EVENT);
|
|
||||||
player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 2");
|
|
||||||
player.SetData("Route", "Skill1Route2");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 3:
|
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill1Route3, MARKER_DELAY, MARKER_ID, MARKER_SIZE, MARKER_DIST, true, MARKER_EVENT);
|
|
||||||
player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 3");
|
|
||||||
player.SetData("Route", "Skill1Route3");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 4:
|
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill1Route4, MARKER_DELAY, MARKER_ID, MARKER_SIZE, MARKER_DIST, true, MARKER_EVENT);
|
|
||||||
player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 4");
|
|
||||||
player.SetData("Route", "Skill1Route4");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
player.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false);
|
|
||||||
player.TriggerEvent("CLIENT:SetDoorOpen", 1, false, false);
|
|
||||||
player.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false);
|
|
||||||
player.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false);
|
|
||||||
player.TriggerEvent("CLIENT:SetDoorShut", 0, false);
|
|
||||||
player.TriggerEvent("CLIENT:SetDoorShut", 1, false);
|
|
||||||
player.TriggerEvent("CLIENT:SetDoorShut", 2, false);
|
|
||||||
player.TriggerEvent("CLIENT:SetDoorShut", 3, false);
|
|
||||||
}
|
|
||||||
if ((VehicleHash)veh.Model == VehicleHash.Coach)
|
|
||||||
{
|
|
||||||
Random rnd = new Random();
|
|
||||||
int rroute = rnd.Next(1, 5);
|
|
||||||
switch (rroute)
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill2Route1, MARKER_DELAY, MARKER_ID, MARKER_SIZE, MARKER_DIST, true, MARKER_EVENT);
|
|
||||||
player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 1");
|
|
||||||
player.SetData("Route", "Skill2Route1");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 2:
|
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill2Route2, MARKER_DELAY, MARKER_ID, MARKER_SIZE, MARKER_DIST, true, MARKER_EVENT);
|
|
||||||
player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 2");
|
|
||||||
player.SetData("Route", "Skill2Route2");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 3:
|
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill2Route3, MARKER_DELAY, MARKER_ID, MARKER_SIZE, MARKER_DIST, true, MARKER_EVENT);
|
|
||||||
player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 3");
|
|
||||||
player.SetData("Route", "Skill2Route3");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 4:
|
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill2Route4, MARKER_DELAY, MARKER_ID, MARKER_SIZE, MARKER_DIST, true, MARKER_EVENT);
|
|
||||||
player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 4");
|
|
||||||
player.SetData("Route", "Skill2Route3");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
player.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false);
|
|
||||||
player.TriggerEvent("CLIENT:SetDoorShut", 0, false);
|
|
||||||
}
|
|
||||||
if ((VehicleHash)veh.Model == VehicleHash.Tourbus)
|
|
||||||
{
|
|
||||||
Random rnd = new Random();
|
|
||||||
int rroute = rnd.Next(1, 4);
|
|
||||||
switch (rroute)
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill3Route1, MARKER_DELAY, MARKER_ID, MARKER_SIZE, MARKER_DIST, true, MARKER_EVENT);
|
|
||||||
player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 1");
|
|
||||||
player.SetData("Route", "Skill3Route1");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 2:
|
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill3Route2, MARKER_DELAY, MARKER_ID, MARKER_SIZE, MARKER_DIST, true, MARKER_EVENT);
|
|
||||||
player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 2");
|
|
||||||
player.SetData("Route", "Skill3Route2");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 3:
|
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill3Route3, MARKER_DELAY, MARKER_ID, MARKER_SIZE, MARKER_DIST, true, MARKER_EVENT);
|
|
||||||
player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 3");
|
|
||||||
player.SetData("Route", "Skill3Route3");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 4:
|
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill3Route4, MARKER_DELAY, MARKER_ID, MARKER_SIZE, MARKER_DIST, true, MARKER_EVENT);
|
|
||||||
player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 4");
|
|
||||||
player.SetData("Route", "Skill3Route4");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
player.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false);
|
|
||||||
player.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false);
|
|
||||||
player.TriggerEvent("CLIENT:SetDoorShut", 2, false);
|
|
||||||
player.TriggerEvent("CLIENT:SetDoorShut", 3, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endregion delete
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void LastCheckpoint(Player player)
|
public override void LastCheckpoint(Player player)
|
||||||
{
|
{
|
||||||
Vehicle v = player.Vehicle;
|
Vehicle v = player.Vehicle;
|
||||||
player.SendChatMessage("~y~[Job]: ~w~Die neue Route lädt. Bitte warten...");
|
player.SendChatMessage("~y~[JOB]: ~w~Die neue Route lädt. Bitte warten...");
|
||||||
NAPI.Task.Run(() =>
|
|
||||||
{
|
|
||||||
string type = getPlayerRouteType(player);
|
string type = getPlayerRouteType(player);
|
||||||
|
|
||||||
List<Vector3> selectedRoute = playerRouteCurrent[player.Name];
|
NAPI.Task.Run(() =>
|
||||||
|
{
|
||||||
if (type == BEGINNER)
|
if (type == BEGINNER)
|
||||||
playerRoutePair1.Remove(player.Name);
|
playerRoutePair1.Remove(player.Name);
|
||||||
else if (type == INTERMEDIATE)
|
else if (type == INTERMEDIATE)
|
||||||
@@ -530,7 +449,6 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
else if (type == PROFESSIONAL)
|
else if (type == PROFESSIONAL)
|
||||||
playerRoutePair3.Remove(player.Name);
|
playerRoutePair3.Remove(player.Name);
|
||||||
|
|
||||||
playerRouteCurrent.Remove(player.Name);
|
|
||||||
BusDriverJob job = JobManager.GetJob<BusDriverJob>();
|
BusDriverJob job = JobManager.GetJob<BusDriverJob>();
|
||||||
StartBusRoute(player, type);
|
StartBusRoute(player, type);
|
||||||
}, delayTime: 10000);
|
}, delayTime: 10000);
|
||||||
@@ -699,13 +617,13 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
user.BusSkill++;
|
user.BusSkill++;
|
||||||
if (user.BusSkill == BusDriverJob.SKILL_INTERMEDIATE)
|
if (user.BusSkill == BusDriverJob.SKILL_INTERMEDIATE)
|
||||||
{
|
{
|
||||||
player.SendChatMessage($"~y~[Job]: ~w~Du hast nun die Route ~g~{BusDriverJob.INTERMEDIATE} ~w~freigeschaltet!");
|
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!");
|
player.SendChatMessage($"~y~[JOB]: ~w~Du kannst jetzt auch mit dem Coach fahren!");
|
||||||
}
|
}
|
||||||
if (user.BusSkill == BusDriverJob.SKILL_PROFESSIONAL)
|
if (user.BusSkill == BusDriverJob.SKILL_PROFESSIONAL)
|
||||||
{
|
{
|
||||||
player.SendChatMessage($"~y~[Job]: ~w~Du hast nun die Route ~g~{BusDriverJob.PROFESSIONAL} ~w~freigeschaltet!");
|
player.SendChatMessage($"~y~[JOB]: ~w~Du hast nun die Route ~g~{BusDriverJob.PROFESSIONAL} ~w~freigeschaltet!");
|
||||||
player.SendChatMessage($"~y~[Job]: ~w~Du kannst jetzt auch mit dem Tourbus fahren!");
|
player.SendChatMessage($"~y~[JOB]: ~w~Du kannst jetzt auch mit dem Tourbus fahren!");
|
||||||
}
|
}
|
||||||
|
|
||||||
BusDriverJob job = JobManager.GetJob<BusDriverJob>();
|
BusDriverJob job = JobManager.GetJob<BusDriverJob>();
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
_inJob.Add(player);
|
_inJob.Add(player);
|
||||||
jobPlayer.Add(player);
|
jobPlayer.Add(player);
|
||||||
|
|
||||||
ChatService.SendMessage(player, $"~y~[Job]~s~ Du hast deinen Job (~o~{this.Name}~s~) gestartet.");
|
ChatService.SendMessage(player, $"~y~[Job]~s~ Du hast deinen Job ~o~{this.Name}~s~ gestartet.");
|
||||||
|
|
||||||
JobStart?.Invoke(player);
|
JobStart?.Invoke(player);
|
||||||
}
|
}
|
||||||
@@ -57,7 +57,7 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
|
|
||||||
if (quit)
|
if (quit)
|
||||||
{
|
{
|
||||||
ChatService.SendMessage(player, $"~y~[Job]~s~ Du hast deinen Job (~o~{this.Name}~s~) beendet.");
|
ChatService.SendMessage(player, $"~y~[Job]~s~ Du hast deinen Job ~o~{this.Name}~s~ beendet.");
|
||||||
player.Position = JobManager.playerJobStartPosition[player];
|
player.Position = JobManager.playerJobStartPosition[player];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -152,6 +152,8 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
if (!playerVehiclePair.ContainsKey(player))
|
if (!playerVehiclePair.ContainsKey(player))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
CheckPointHandle.DeleteCheckpoints(player);
|
||||||
|
|
||||||
playerVehiclePair[player].Delete();
|
playerVehiclePair[player].Delete();
|
||||||
playerVehiclePair.Remove(player);
|
playerVehiclePair.Remove(player);
|
||||||
}
|
}
|
||||||
@@ -238,32 +240,6 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
CheckPointHandle.StartCheckPointRoute(player, selectedRoute, 0, CHECKPOINT_MARKER_ID, 40, 10, true, "PILOT:InCheckpoint"); //6, 23, 25, 26, 27, 28
|
CheckPointHandle.StartCheckPointRoute(player, selectedRoute, 0, CHECKPOINT_MARKER_ID, 40, 10, true, "PILOT:InCheckpoint"); //6, 23, 25, 26, 27, 28
|
||||||
}
|
}
|
||||||
|
|
||||||
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: ~s~Du hast nun ~g~Skill-Level 2 ~w~erreicht!");
|
|
||||||
jobber.SendChatMessage($"~y~Job: ~s~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.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public string getPlayerRouteType(Player player)
|
public string getPlayerRouteType(Player player)
|
||||||
{
|
{
|
||||||
if (!playerRouteCurrent.ContainsKey(player.Name))
|
if (!playerRouteCurrent.ContainsKey(player.Name))
|
||||||
@@ -271,9 +247,9 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
|
|
||||||
List<Vector3> selectedRoute = playerRouteCurrent[player.Name];
|
List<Vector3> selectedRoute = playerRouteCurrent[player.Name];
|
||||||
|
|
||||||
if (ROUTE_BEGINNER.Values.Where(v => v.Equals(selectedRoute)) != null)
|
if (ROUTE_BEGINNER.Values.Where(v => v.VectorEquals(selectedRoute)).Count() != 0)
|
||||||
return BEGINNER;
|
return BEGINNER;
|
||||||
else if (ROUTE_INTERMEDIATE.Values.Where(v => v.Equals(selectedRoute)) != null)
|
else if (ROUTE_INTERMEDIATE.Values.Where(v => v.VectorEquals(selectedRoute)).Count() != 0)
|
||||||
return INTERMEDIATE;
|
return INTERMEDIATE;
|
||||||
|
|
||||||
return "none";
|
return "none";
|
||||||
@@ -314,8 +290,8 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
PlayerTimer playerTimer = new PlayerTimer(player, playerVehiclePair[player], 30000);
|
PlayerTimer playerTimer = new PlayerTimer(player, playerVehiclePair[player], 30000);
|
||||||
playerTimer.Elapsed += JobTimerElapsed;
|
playerTimer.Elapsed += JobTimerElapsed;
|
||||||
JobManager.playerTimersJobVehicleRespawn[player] = playerTimer;
|
JobManager.playerTimersJobVehicleRespawn[player] = playerTimer;
|
||||||
player.SendChatMessage("~y~[JOB] ~w~Du hast das Fahrzeug verlassen,");
|
//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!");
|
//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)
|
private void JobTimerElapsed(Player player, Vehicle vehicle)
|
||||||
@@ -365,8 +341,8 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
user.PilotSkill++;
|
user.PilotSkill++;
|
||||||
if (user.PilotSkill == BusDriverJob.SKILL_INTERMEDIATE)
|
if (user.PilotSkill == BusDriverJob.SKILL_INTERMEDIATE)
|
||||||
{
|
{
|
||||||
player.SendChatMessage($"~y~[Job]: ~w~Du hast nun die Route ~g~{BusDriverJob.INTERMEDIATE} ~w~freigeschaltet!");
|
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!");
|
player.SendChatMessage($"~y~[JOB]: ~w~Du kannst jetzt auch mit dem Velum fliegen!");
|
||||||
}
|
}
|
||||||
|
|
||||||
dbContext.SaveChanges();
|
dbContext.SaveChanges();
|
||||||
|
|||||||
Reference in New Issue
Block a user