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

@@ -3,6 +3,7 @@ using System.Linq;
using GTANetworkAPI;
using ReallifeGamemode.Server.Extensions;
using ReallifeGamemode.Server.Job;
using ReallifeGamemode.Server.Managers;
namespace ReallifeGamemode.Server.Util
{
@@ -14,8 +15,6 @@ namespace ReallifeGamemode.Server.Util
public static void DeleteCheckpoints(Player player)
{
player.SetData("HatRoute", false);
player.ResetData("Route");
RemovePlayerHandlerFromList(player);
player.TriggerEvent("destroyCP");
}
@@ -27,232 +26,20 @@ namespace ReallifeGamemode.Server.Util
playerHandle.DeleteCheckpoints();
listHandle.Add(playerHandle);
player.ResetData("Route");
playerHandle.StartRoute();
player.SetData("HatRoute", true);
/*if(player.GetUser().BusSkill >= 1000)
{
playerHandle.LastCheckpoint = 2;
}*/
}
public static void RemovePlayerHandlerFromList(this Player player)
{
CheckPointListForPlayer temp = null;
for (int a = 0; a < listHandle.Count; a++)
{
temp = listHandle[a];
CheckPointListForPlayer temp = listHandle[a];
if (temp.player == player)
{
listHandle.Remove(temp);
}
}
}
#region delete
/*
[RemoteEvent("playerWaitsInCheckpoint")]
public void PlayerWaitsInCheckpoint(Player user)
{
if (user.GetUser().JobId == 4)
{
Job.JobBase job = Managers.JobManager.GetJob(user.GetUser().JobId ?? -1);
if (job.GetUsersInJob().Contains(user))
{
if (!user.IsInVehicle || user.VehicleSeat != 0) return;
Vehicle veh = user.Vehicle;
user.TriggerEvent("CLIENT:FreezeVehicle", veh);
user.TriggerEvent("CLIENT:UnFreezeVehicle", veh);
user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AnfahrtHaltestelle", "wav", 50);
if ((VehicleHash)veh.Model == VehicleHash.Bus)
{
user.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false);
user.TriggerEvent("CLIENT:SetDoorOpen", 1, false, false);
user.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false);
user.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false);
user.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false);
NAPI.Task.Run(() =>
{
BusCheckpoint(user);
}, delayTime: 3600);
}
if ((VehicleHash)veh.Model == VehicleHash.Coach)
{
user.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false);
NAPI.Task.Run(() =>
{
BusCheckpoint(user);
}, delayTime: 2800);
}
if ((VehicleHash)veh.Model == VehicleHash.Tourbus)
{
user.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false);
user.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false);
NAPI.Task.Run(() =>
{
BusCheckpoint(user);
}, delayTime: 3250);
}
if (!(veh.GetData<IndicatorData>("indicatorData") is IndicatorData data)) data = new IndicatorData();
data.Left = false;
data.Right = true;
veh.SetData("indicatorData", data);
NAPI.ClientEvent.TriggerClientEventForAll("SERVER:setIndicatorStatus", veh.Handle.Value, data.Left, data.Right);
/*NAPI.Task.Run(() =>
{
veh.Position = new Vector3(veh.Position.X, veh.Position.Y, veh.Position.Z + 0.25);
}, delayTime: 500);
NAPI.Task.Run(() =>
{
veh.Position = private new Vector3(veh.Position.X, veh.Position.Y, veh.Position.Z + 0.1);
user.TriggerEvent("CLIENT:FreezeVehicle", veh);
}, delayTime: 500);
}
}
}
public static void BusCheckpoint(Player user)
{
if (!user.IsInVehicle || user.VehicleSeat != 0) return;
Vehicle veh = user.Vehicle;
if ((VehicleHash)veh.Model == VehicleHash.Bus)
{
user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AbfahrtHaltestelleBus", "wav", 25);
user.TriggerEvent("CLIENT:SetDoorShutDelayed", 0, false, 1850);
user.TriggerEvent("CLIENT:SetDoorShutDelayed", 1, false, 1850);
user.TriggerEvent("CLIENT:SetDoorShutDelayed", 2, false, 1850);
user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 1850);
user.TriggerEvent("CLIENT:SetDoorShutDelayed", 0, false, 1850);
NAPI.Task.Run(() =>
{
user.TriggerEvent("CLIENT:UnFreezeVehicle", veh);
}, delayTime: 1850);
}
if ((VehicleHash)veh.Model == VehicleHash.Coach)
{
user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AbfahrtHaltestelleCoach", "wav", 35);
user.TriggerEvent("CLIENT:SetDoorShutDelayed", 0, false, 1000);
NAPI.Task.Run(() =>
{
user.TriggerEvent("CLIENT:UnFreezeVehicle", veh);
}, delayTime: 1000);
}
if ((VehicleHash)veh.Model == VehicleHash.Tourbus)
{
user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AbfahrtHaltestelleTourbus", "wav", 25);
user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 2600);
user.TriggerEvent("CLIENT:SetDoorShutDelayed", 2, false, 2600);
user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 2600);
NAPI.Task.Run(() =>
{
user.TriggerEvent("CLIENT:UnFreezeVehicle", veh);
}, delayTime: 2600);
}
//user.TriggerEvent("CLIENT:UnFreezeVehicle", veh);
}
[RemoteEvent("playerInCheckpoint")]
public void PlayerInCheckpoint(Player user)
{
CheckPointListForPlayer temp = null;
for (int a = 0; a < listHandle.Count; a++)
{
temp = listHandle[a];
if (temp.player == user)
{
break;
}
}
if (temp.LastCheckpoint != 1)
{
Job.JobBase job = Managers.JobManager.GetJob(user.GetUser().JobId ?? -1);
if (job?.GetUsersInJob().Contains(user) ?? false)
{
if (user.GetUser().JobId == 3)
{
if (temp.checkPointsDone == 2)
{
if (user.GetData<string>("Route") == "Skill1Route1" || user.GetData<string>("Route") == "Skill1Route2" || user.GetData<string>("Route") == "Skill1Route3")
{
PilotJob.payWage(user, PilotSkill1RouteVerdienst / temp.list.Count());
PilotJob.payWage(user, PilotSkill1RouteVerdienst / temp.list.Count());
}
if (user.GetData<string>("Route") == "Skill2Route1" || user.GetData<string>("Route") == "Skill2Route2" || user.GetData<string>("Route") == "Skill2Route3")
{
PilotJob.payWage(user, PilotSkill2RouteVerdienst / temp.list.Count());
PilotJob.payWage(user, PilotSkill2RouteVerdienst / temp.list.Count());
}
}
if (temp.checkPointsDone > 2)
{
if (user.GetData<string>("Route") == "Skill1Route1" || user.GetData<string>("Route") == "Skill1Route2" || user.GetData<string>("Route") == "Skill1Route3")
{
PilotJob.payWage(user, PilotSkill1RouteVerdienst / temp.list.Count());
}
if (user.GetData<string>("Route") == "Skill2Route1" || user.GetData<string>("Route") == "Skill2Route2" || user.GetData<string>("Route") == "Skill2Route3")
{
PilotJob.payWage(user, PilotSkill2RouteVerdienst / temp.list.Count());
}
}
//PilotJob.payWage(user, 100);
}
if (user.GetUser().JobId == 4)
{
if (temp.checkPointsDone == 2)
{
if (user.GetData<string>("Route") == "Skill1Route1" || user.GetData<string>("Route") == "Skill1Route2" || user.GetData<string>("Route") == "Skill1Route3" || user.GetData<string>("Route") == "Skill1Route4")
{
BusDriverJob.payWage(user, BusSkill1RouteVerdienst / temp.list.Count());
BusDriverJob.payWage(user, BusSkill1RouteVerdienst / temp.list.Count());
}
if (user.GetData<string>("Route") == "Skill2Route1" || user.GetData<string>("Route") == "Skill2Route2" || user.GetData<string>("Route") == "Skill2Route3" || user.GetData<string>("Route") == "Skill2Route4")
{
BusDriverJob.payWage(user, BusSkill2RouteVerdienst / temp.list.Count());
BusDriverJob.payWage(user, BusSkill2RouteVerdienst / temp.list.Count());
}
if (user.GetData<string>("Route") == "Skill3Route1" || user.GetData<string>("Route") == "Skill3Route2" || user.GetData<string>("Route") == "Skill3Route3" || user.GetData<string>("Route") == "Skill3Route4")
{
BusDriverJob.payWage(user, BusSkill3RouteVerdienst / temp.list.Count());
BusDriverJob.payWage(user, BusSkill3RouteVerdienst / temp.list.Count());
}
}
if (temp.checkPointsDone > 2)
{
if (user.GetData<string>("Route") == "Skill1Route1" || user.GetData<string>("Route") == "Skill1Route2" || user.GetData<string>("Route") == "Skill1Route3" || user.GetData<string>("Route") == "Skill1Route4")
{
BusDriverJob.payWage(user, BusSkill1RouteVerdienst / temp.list.Count());
}
if (user.GetData<string>("Route") == "Skill2Route1" || user.GetData<string>("Route") == "Skill2Route2" || user.GetData<string>("Route") == "Skill2Route3" || user.GetData<string>("Route") == "Skill2Route4")
{
BusDriverJob.payWage(user, BusSkill2RouteVerdienst / temp.list.Count());
}
if (user.GetData<string>("Route") == "Skill3Route1" || user.GetData<string>("Route") == "Skill3Route2" || user.GetData<string>("Route") == "Skill3Route3" || user.GetData<string>("Route") == "Skill3Route4")
{
BusDriverJob.payWage(user, BusSkill3RouteVerdienst / temp.list.Count());
}
}
//BusDriverJob.payWage(user, 100);
if (!user.IsInVehicle || user.VehicleSeat != 0) return;
Vehicle veh = user.Vehicle;
if (!(veh.GetData<IndicatorData>("indicatorData") is IndicatorData data)) data = new IndicatorData();
data.Left = false;
data.Right = false;
veh.SetData("indicatorData", data);
NAPI.ClientEvent.TriggerClientEventForAll("SERVER:setIndicatorStatus", veh.Handle.Value, data.Left, data.Right);
//BusCheckpoint(user);
}
}
}
else
{
}
temp.NextCheckpoint();
}
*/
#endregion delete
}
public class CheckPointListForPlayer
@@ -305,25 +92,10 @@ public void PlayerInCheckpoint(Player user)
LastCheckpoint = 0;
CheckPointHandle.RemovePlayerHandlerFromList(this.player);
DeleteCheckpoints();
player.SetData("HatRoute", false);
if (player.GetUser().JobId == 3 && player.HasData("Route"))
{
//PilotJob.payWage(player, 200);
PilotJob.PilotLetzterCheckpoint(player);
}
else if (player.GetUser().JobId == 4 && player.HasData("Route"))
{
//BusDriverJob.payWage(player, 200);
//CheckPointHandle.BusCheckpoint(player);
BusDriverJob.BusLetzterCheckpoint(player);
if (!player.IsInVehicle || player.VehicleSeat != 0) return;
Vehicle veh = player.Vehicle;
if (!(veh.GetData<IndicatorData>("indicatorData") is IndicatorData data)) data = new IndicatorData();
data.Left = false;
data.Right = false;
veh.SetData("indicatorData", data);
NAPI.ClientEvent.TriggerClientEventForAll("SERVER:setIndicatorStatus", veh.Handle.Value, data.Left, data.Right);
}
JobBase job = JobManager.GetJob(player.GetUser().JobId ?? -1);
if (job != null && job.GetUsersInJob().Contains(player))
job.LastCheckpoint(player);
}
//NAPI.Chat.SendChatMessageToAll($"this.list.Count() = {this.list.Count()}, checkPointsDone = {checkPointsDone}, LastCheckpoint = {LastCheckpoint}");
}
@@ -333,4 +105,45 @@ public void PlayerInCheckpoint(Player user)
this.player.TriggerEvent("destroyCP");
}
}
public class CheckPointEvents : Script
{
[RemoteEvent("playerWaitsInCheckpoint")]
public void PlayerWaitsInCheckpoint(Player player)
{
JobBase job = JobManager.GetJob(player.GetUser().JobId ?? -1);
if (job == null || !job.GetUsersInJob().Contains(player))
return;
if (job.Id == JobManager.GetJob<BusDriverJob>().Id)
JobManager.GetJob<BusDriverJob>().AtBusStop(player);
}
[RemoteEvent("playerInCheckpoint")]
public void PlayerInCheckpoint(Player user)
{
CheckPointListForPlayer temp = null;
for (int a = 0; a < CheckPointHandle.listHandle.Count; a++)
{
temp = CheckPointHandle.listHandle[a];
if (temp.player == user)
{
break;
}
}
if (temp.LastCheckpoint != 1)
{
if (!user.IsInVehicle || user.VehicleSeat != 0) return;
Vehicle veh = user.Vehicle;
if (!(veh.GetData<IndicatorData>("indicatorData") is IndicatorData data)) data = new IndicatorData();
data.Left = false;
data.Right = false;
veh.SetData("indicatorData", data);
NAPI.ClientEvent.TriggerClientEventForAll("SERVER:setIndicatorStatus", veh.Handle.Value, data.Left, data.Right);
//BusCheckpoint(user);
}
temp.NextCheckpoint();
}
}
}