Erweiterung für Busfahrer, CheckpointSystem, PilotJob, Skillsystem, AdminBefehle
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
using GTANetworkAPI;
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
@@ -12,6 +12,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Timers;
|
||||
using System.Threading;
|
||||
|
||||
namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
@@ -19,7 +20,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
private static List<JobBase> _jobs = new List<JobBase>();
|
||||
|
||||
private static Timer timerJobVehicleRespawn = new Timer(30000); //30 Sekunden Timer JobVehicleRespawn
|
||||
private static System.Timers.Timer timerJobVehicleRespawn = new System.Timers.Timer(30000); //30 Sekunden Timer JobVehicleRespawn
|
||||
|
||||
public static void LoadJobs()
|
||||
{
|
||||
@@ -182,7 +183,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
job.StartJob(player);
|
||||
}
|
||||
Vehicle LastVehicle;
|
||||
[ServerEvent(Event.PlayerExitVehicle)]
|
||||
public void JobManagerPlayerExitVehicle(Player player, Vehicle veh)
|
||||
{
|
||||
@@ -197,11 +197,79 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
if (u.JobId != 2)
|
||||
{
|
||||
timerJobVehicleRespawn.Start();
|
||||
//timerJobVehicleRespawn.Start();
|
||||
player.SetData("DelayTime", 30000);
|
||||
veh.SetData("timerJobVehicleRespawn", true);
|
||||
LastVehicle = veh;
|
||||
timerJobVehicleRespawn.AutoReset = false;
|
||||
timerJobVehicleRespawn.Elapsed += Timer30000_Elapsed;
|
||||
player.SetData("LastVehicle", veh);
|
||||
Vehicle LastVehicle = player.GetData<Vehicle>("LastVehicle");
|
||||
/*timerJobVehicleRespawn.AutoReset = false;
|
||||
timerJobVehicleRespawn.Elapsed += Timer30000_Elapsed;*/
|
||||
NAPI.Task.Run(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
ChatService.SendMessage(player, "TimerAusgelöst");
|
||||
if (LastVehicle.GetData<bool>("timerJobVehicleRespawn") == true)
|
||||
{
|
||||
ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(veh);
|
||||
if (vehJ.GetJob().GetUsersInJob().Contains(player))
|
||||
{
|
||||
if (veh != null)
|
||||
{
|
||||
job.StopJob(player);
|
||||
ChatService.SendMessage(player, $"~y~[JOB]~s~ Du hast deinen Job ~o~{job.Name}~s~ beendet.");
|
||||
veh.ResetData("timerJobVehicleRespawn");
|
||||
CheckPointHandle.DeleteCheckpoints(player);
|
||||
ServerVehicleExtensions.Spawn(sVeh, veh);
|
||||
if (player.GetData<bool>("isDead") == false)
|
||||
{
|
||||
if (player.GetUser().JobId == 1)//Taxifahrer
|
||||
{
|
||||
//VehicleManager.DeleteVehicle(v);
|
||||
}
|
||||
if (player.GetUser().JobId == 2)//Müllmann
|
||||
{
|
||||
//VehicleManager.DeleteVehicle(v);
|
||||
}
|
||||
if (player.GetUser().JobId == 3)//Pilot
|
||||
{
|
||||
if (!player.HasData("PilotenBase2") || player.GetData<bool>("PilotenBase2") == false) //Sandyshores
|
||||
{
|
||||
player.Position = new Vector3(1707.2711181640625, 3276.216064453125, 41.155494689941406);
|
||||
player.Heading = (-154.65234375f);
|
||||
}
|
||||
if (player.HasData("PilotenBase2") && player.GetData<bool>("PilotenBase2") == true) //LS Airport
|
||||
{
|
||||
player.Position = new Vector3(-1622.48, -3151.58, 13);
|
||||
player.Heading = (48.44f);
|
||||
}
|
||||
}
|
||||
if (player.GetUser().JobId == 4)//Busfahrer
|
||||
{
|
||||
player.Position = new Vector3(-535.46, -2144.97, 5.95);
|
||||
player.Heading = (57.03f);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (ArgumentNullException e)
|
||||
{
|
||||
player.SendChatMessage("Timer gekillt1.");
|
||||
player.SendChatMessage($"{e} First exception caught.");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
player.SendChatMessage("Timer gekillt2.");
|
||||
player.SendChatMessage($"{e} First exception caught.");
|
||||
if (e.Data != null)
|
||||
{
|
||||
player.SendChatMessage("Timer gekillt3.");
|
||||
player.SendChatMessage($"{e} First exception caught.");
|
||||
}
|
||||
}
|
||||
}, delayTime: 30000);
|
||||
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!");
|
||||
//job.StopJob(player);
|
||||
@@ -258,15 +326,17 @@ namespace ReallifeGamemode.Server.Managers
|
||||
player.Heading = (60.65372848510742f);
|
||||
}
|
||||
}*/
|
||||
if (!player.HasData("PilotenBase2") || player.GetData<bool>("PilotenBase2") == false) //Sandyshores
|
||||
if (player.HasData("PilotenBase") || player.GetData<int>("PilotenBase") == 1) //Sandyshores
|
||||
{
|
||||
player.Position = new Vector3(1707.2711181640625, 3276.216064453125, 41.155494689941406);
|
||||
player.Heading = (-154.65234375f);
|
||||
player.GetUser().SetData("PilotenBase", 0);
|
||||
}
|
||||
if (player.HasData("PilotenBase2") && player.GetData<bool>("PilotenBase2") == true) //LS Airport
|
||||
if (player.HasData("PilotenBase") && player.GetData<int>("PilotenBase") == 2) //LS Airport
|
||||
{
|
||||
player.Position = new Vector3(-1622.48, -3151.58, 13);
|
||||
player.Heading = (48.44f);
|
||||
player.GetUser().SetData("PilotenBase", 0);
|
||||
}
|
||||
}
|
||||
if (player.GetUser().JobId == 4)//Busfahrer
|
||||
@@ -287,6 +357,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
player.Position = new Vector3(-535.46, -2144.97, 5.95);
|
||||
player.Heading = (57.03f);
|
||||
}
|
||||
Vehicle LastVehicle = player.GetData<Vehicle>("LastVehicle");
|
||||
if (LastVehicle != null)
|
||||
{
|
||||
LastVehicle.ResetData("timerJobVehicleRespawn");
|
||||
@@ -306,6 +377,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
NAPI.Pools.GetAllVehicles().ForEach(v =>
|
||||
{
|
||||
Vehicle LastVehicle = p.GetData<Vehicle>("LastVehicle");
|
||||
if (LastVehicle.GetServerVehicle() is JobVehicle vehJ)
|
||||
{
|
||||
if (LastVehicle.GetData<bool>("timerJobVehicleRespawn") == true)
|
||||
@@ -405,22 +477,43 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
if (sVeh != null)
|
||||
{
|
||||
if (sVeh is JobVehicle JV)
|
||||
JobBase job = GetJob(player.GetUser().JobId.Value);
|
||||
|
||||
if (job.GetUsersInJob().Contains(player))
|
||||
{
|
||||
if (seat == 0)
|
||||
if (sVeh is JobVehicle JV)
|
||||
{
|
||||
JobVehicle c = new JobVehicle();
|
||||
if (JV.GetJob().GetUsersInJob().Contains(player))
|
||||
if (player.GetUser().JobId == 3 || player.GetUser().JobId == 4)
|
||||
{
|
||||
timerJobVehicleRespawn.Stop();
|
||||
veh.SetData("timerJobVehicleRespawn", false);
|
||||
if (seat == 0)
|
||||
{
|
||||
JobVehicle c = new JobVehicle();
|
||||
if (JV.GetJob().GetUsersInJob().Contains(player))
|
||||
{
|
||||
//timerJobVehicleRespawn.Stop();
|
||||
veh.SetData("timerJobVehicleRespawn", false);
|
||||
player.SetData("DelayTime", 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
player.StopAnimation();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
else return;
|
||||
else
|
||||
{
|
||||
job.StopJob(player);
|
||||
ChatService.SendMessage(player, $"~y~[JOB]~s~ Du hast deinen Job ~o~{job.Name}~s~ beendet.");
|
||||
veh.ResetData("timerJobVehicleRespawn");
|
||||
CheckPointHandle.DeleteCheckpoints(player);
|
||||
ServerVehicleExtensions.Spawn(sVeh, player.GetData<Vehicle>("LastVehicle"));
|
||||
player.StopAnimation();
|
||||
return;
|
||||
}
|
||||
}
|
||||
else return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user