Erweiterung für Busfahrer, CheckpointSystem, PilotJob, Skillsystem, AdminBefehle
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using GTANetworkAPI;
|
||||
using System.Linq;
|
||||
@@ -13,20 +13,22 @@ namespace ReallifeGamemode.Server.Util
|
||||
|
||||
public static void DeleteCheckpoints(Player player)
|
||||
{
|
||||
player.SetData("HatRoute", false);
|
||||
RemovePlayerHandlerFromList(player);
|
||||
player.TriggerEvent("destroyCP");
|
||||
}
|
||||
|
||||
public static void StartCheckPointRoute(Player player, IEnumerable<Vector3> nListCps, int delay, int markerID, int markerSize, int markerDist, string nEvent)
|
||||
public static void StartCheckPointRoute(Player player, IEnumerable<Vector3> nListCps, int delay, int markerID, int markerSize, int markerDist, bool useVehicle, string nEvent)
|
||||
{
|
||||
|
||||
RemovePlayerHandlerFromList(player);
|
||||
CheckPointListForPlayer playerHandle = new CheckPointListForPlayer(player, nListCps, delay, markerID, markerSize, markerDist, nEvent);
|
||||
CheckPointListForPlayer playerHandle = new CheckPointListForPlayer(player, nListCps, delay, markerID, markerSize, markerDist, useVehicle, nEvent);
|
||||
playerHandle.DeleteCheckpoints();
|
||||
|
||||
listHandle.Add(playerHandle);
|
||||
|
||||
playerHandle.StartRoute();
|
||||
player.SetData("HatRoute", true);
|
||||
/*if(player.GetUser().BusSkill >= 1000)
|
||||
{
|
||||
playerHandle.LastCheckpoint = 2;
|
||||
@@ -50,31 +52,58 @@ namespace ReallifeGamemode.Server.Util
|
||||
{
|
||||
if (user.GetUser().JobId == 4)
|
||||
{
|
||||
if (!user.IsInVehicle || user.VehicleSeat != 0) return;
|
||||
Vehicle veh = user.Vehicle;
|
||||
user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AnfahrtHaltestelle", "wav", 50);
|
||||
if ((VehicleHash)veh.Model == VehicleHash.Bus)
|
||||
Job.JobBase job = Managers.JobManager.GetJob(user.GetUser().JobId.Value);
|
||||
if (job.GetUsersInJob().Contains(user))
|
||||
{
|
||||
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);
|
||||
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: 3850);
|
||||
}
|
||||
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 = new Vector3(veh.Position.X, veh.Position.Y, veh.Position.Z + 0.1);
|
||||
user.TriggerEvent("CLIENT:FreezeVehicle", veh);
|
||||
}, delayTime: 500);
|
||||
}
|
||||
if ((VehicleHash)veh.Model == VehicleHash.Coach)
|
||||
{
|
||||
user.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false);
|
||||
}
|
||||
if ((VehicleHash)veh.Model == VehicleHash.Tourbus)
|
||||
{
|
||||
user.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false);
|
||||
user.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false);
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
public static void BusCheckpoint(Player user)
|
||||
@@ -89,11 +118,19 @@ namespace ReallifeGamemode.Server.Util
|
||||
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, 600);
|
||||
user.TriggerEvent("CLIENT:SetDoorShutDelayed", 0, false, 1000);
|
||||
NAPI.Task.Run(() =>
|
||||
{
|
||||
user.TriggerEvent("CLIENT:UnFreezeVehicle", veh);
|
||||
}, delayTime: 1000);
|
||||
}
|
||||
if ((VehicleHash)veh.Model == VehicleHash.Tourbus)
|
||||
{
|
||||
@@ -101,12 +138,12 @@ namespace ReallifeGamemode.Server.Util
|
||||
user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 2100);
|
||||
user.TriggerEvent("CLIENT:SetDoorShutDelayed", 2, false, 2100);
|
||||
user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 2100);
|
||||
NAPI.Task.Run(() =>
|
||||
{
|
||||
user.TriggerEvent("CLIENT:UnFreezeVehicle", veh);
|
||||
}, delayTime: 2100);
|
||||
}
|
||||
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);
|
||||
//user.TriggerEvent("CLIENT:UnFreezeVehicle", veh);
|
||||
}
|
||||
[RemoteEvent("playerInCheckpoint")]
|
||||
public void PlayerInCheckpoint(Player user)
|
||||
@@ -122,14 +159,25 @@ namespace ReallifeGamemode.Server.Util
|
||||
}
|
||||
if (temp.LastCheckpoint != 1)
|
||||
{
|
||||
if (user.GetUser().JobId == 3)
|
||||
Job.JobBase job = Managers.JobManager.GetJob(user.GetUser().JobId.Value);
|
||||
if (job.GetUsersInJob().Contains(user))
|
||||
{
|
||||
PilotJob.payWage(user, 100);
|
||||
}
|
||||
if (user.GetUser().JobId == 4)
|
||||
{
|
||||
BusDriverJob.payWage(user, 100);
|
||||
BusCheckpoint(user);
|
||||
if (user.GetUser().JobId == 3)
|
||||
{
|
||||
PilotJob.payWage(user, 100);
|
||||
}
|
||||
if (user.GetUser().JobId == 4)
|
||||
{
|
||||
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
|
||||
@@ -148,11 +196,12 @@ namespace ReallifeGamemode.Server.Util
|
||||
public int markerID;
|
||||
public int markerSize;
|
||||
public int markerDist;
|
||||
public bool useVehicle;
|
||||
public string eventInCheckpoint = "";
|
||||
|
||||
int checkPointsDone = 0;
|
||||
|
||||
public CheckPointListForPlayer(Player nPlayer, IEnumerable<Vector3> nList, int nDelay, int nMarkerID, int nMarkerSize, int nMarkerDist, string nEvent)
|
||||
public CheckPointListForPlayer(Player nPlayer, IEnumerable<Vector3> nList, int nDelay, int nMarkerID, int nMarkerSize, int nMarkerDist, bool nUseVehicle, string nEvent)
|
||||
{
|
||||
this.player = nPlayer;
|
||||
this.list = nList;
|
||||
@@ -160,13 +209,14 @@ namespace ReallifeGamemode.Server.Util
|
||||
this.markerID = nMarkerID;
|
||||
this.markerSize = nMarkerSize;
|
||||
this.markerDist = nMarkerDist;
|
||||
this.useVehicle = nUseVehicle;
|
||||
this.eventInCheckpoint = nEvent;
|
||||
this.checkPointsDone = 0;
|
||||
}
|
||||
|
||||
public void StartRoute()
|
||||
{
|
||||
player.TriggerEvent("setCheckPoint", this.list.ElementAt(0), player, 0, this.delay, this.markerID, this.markerSize, this.markerDist, this.eventInCheckpoint);
|
||||
player.TriggerEvent("setCheckPoint", this.list.ElementAt(0), player, 0, this.delay, this.markerID, this.markerSize, this.markerDist, this.useVehicle, this.eventInCheckpoint);
|
||||
}
|
||||
public void NextCheckpoint()
|
||||
{
|
||||
@@ -186,6 +236,7 @@ namespace ReallifeGamemode.Server.Util
|
||||
LastCheckpoint = 0;
|
||||
CheckPointHandle.RemovePlayerHandlerFromList(this.player);
|
||||
DeleteCheckpoints();
|
||||
player.SetData("HatRoute", false);
|
||||
if (player.GetUser().JobId == 3)
|
||||
{
|
||||
PilotJob.payWage(player, 200);
|
||||
|
||||
Reference in New Issue
Block a user