Improvements based on suggestions
This commit is contained in:
@@ -47,9 +47,13 @@ export default function checkpointHandle(globalData: GlobalData) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
mp.events.add('destroyCP', () => {
|
mp.events.add('destroyCP', () => {
|
||||||
|
if (activeCheckpoint != null) {
|
||||||
activeCheckpoint.destroy();
|
activeCheckpoint.destroy();
|
||||||
activeBlip.destroy();
|
activeBlip.destroy();
|
||||||
clearInterval(myVar);
|
clearInterval(myVar);
|
||||||
|
activeBlip = null;
|
||||||
|
activeCheckpoint = null;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function myTimer() {
|
function myTimer() {
|
||||||
@@ -70,6 +74,8 @@ export default function checkpointHandle(globalData: GlobalData) {
|
|||||||
if (delayCounter >= delay) {
|
if (delayCounter >= delay) {
|
||||||
activeCheckpoint.destroy();
|
activeCheckpoint.destroy();
|
||||||
activeBlip.destroy();
|
activeBlip.destroy();
|
||||||
|
activeBlip = null;
|
||||||
|
activeCheckpoint = null;
|
||||||
clearInterval(myVar);
|
clearInterval(myVar);
|
||||||
mp.events.callRemote("playerInCheckpoint");
|
mp.events.callRemote("playerInCheckpoint");
|
||||||
if (event != "") {
|
if (event != "") {
|
||||||
|
|||||||
@@ -47,7 +47,8 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
|||||||
new Vector3(44.69115, -1805.247, 24.07369),
|
new Vector3(44.69115, -1805.247, 24.07369),
|
||||||
new Vector3(111.6519, -1822.466, 25.03703),
|
new Vector3(111.6519, -1822.466, 25.03703),
|
||||||
//AUTOBAHN-ENDE
|
//AUTOBAHN-ENDE
|
||||||
new Vector3(-270.89, -1461.01, 29.81),
|
new Vector3(-46.37, -1808.27, 26.25),
|
||||||
|
new Vector3(-255.55, -1419.48, 30.75),
|
||||||
new Vector3(-369.08, -1415.37, 27.68),
|
new Vector3(-369.08, -1415.37, 27.68),
|
||||||
new Vector3(-114.48, -1251.43, 35.59),
|
new Vector3(-114.48, -1251.43, 35.59),
|
||||||
new Vector3(59.22, -1261.71, 27.84),
|
new Vector3(59.22, -1261.71, 27.84),
|
||||||
@@ -56,10 +57,11 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
|||||||
new Vector3(-441.79, -1251.67, 44.37),
|
new Vector3(-441.79, -1251.67, 44.37),
|
||||||
new Vector3(-463.77, -1405.07, 27.71),
|
new Vector3(-463.77, -1405.07, 27.71),
|
||||||
new Vector3(-617.66, -1259.34, 9.82),
|
new Vector3(-617.66, -1259.34, 9.82),
|
||||||
|
new Vector3(-758.35, -1285.03, 3.48),
|
||||||
}.AsReadOnly();
|
}.AsReadOnly();
|
||||||
private readonly IReadOnlyCollection<Vector3> Stop = new List<Vector3>
|
private readonly IReadOnlyCollection<Vector3> Stop = new List<Vector3>
|
||||||
{
|
{
|
||||||
new Vector3(-758.35, -1285.03, 3.48),
|
new Vector3(-788.66, -1278.75, 5),
|
||||||
}.AsReadOnly();
|
}.AsReadOnly();
|
||||||
|
|
||||||
|
|
||||||
@@ -90,21 +92,23 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
|||||||
public void StartDrivingSchool(Client client)
|
public void StartDrivingSchool(Client client)
|
||||||
{
|
{
|
||||||
User user = client.GetUser();
|
User user = client.GetUser();
|
||||||
|
if (user.DriverLicenseVehicle || client.HasData("ActiveSchool"))
|
||||||
|
return;
|
||||||
|
|
||||||
if (user.Handmoney < 2500)
|
if (user.Handmoney < 2500)
|
||||||
{
|
{
|
||||||
client.SendNotification("~r~Du brauchst ~g~$2500~r~ auf der Hand um die Prüfung zu starten.", true);
|
client.SendNotification("~r~Du brauchst ~g~$2500~r~ auf der Hand um die Prüfung zu starten.", true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
using (var dbContext = new DatabaseContext())
|
using (var dbContext = new DatabaseContext())
|
||||||
{
|
{
|
||||||
User payer = client.GetUser(dbContext);
|
User payer = client.GetUser(dbContext);
|
||||||
payer.Handmoney -= 2500;
|
payer.Handmoney -= 2500;
|
||||||
|
client.TriggerEvent("SERVER:SET_HANDMONEY", payer.Handmoney);
|
||||||
dbContext.SaveChanges();
|
dbContext.SaveChanges();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user.DriverLicenseVehicle || client.HasData("ActiveSchool"))
|
|
||||||
return;
|
|
||||||
client.SetData("ActiveSchool", 0);
|
client.SetData("ActiveSchool", 0);
|
||||||
client.TriggerEvent("renderTextOnScreen", "Sie haben die Führerscheinprüfung gestartet. Steigen Sie in eines der Fahrschulautos ein.");
|
client.TriggerEvent("renderTextOnScreen", "Sie haben die Führerscheinprüfung gestartet. Steigen Sie in eines der Fahrschulautos ein.");
|
||||||
client.TriggerEvent("waitPlayerEntersVehicle");
|
client.TriggerEvent("waitPlayerEntersVehicle");
|
||||||
@@ -116,13 +120,15 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
|||||||
Vehicle veh = user.Vehicle;
|
Vehicle veh = user.Vehicle;
|
||||||
|
|
||||||
if (veh.GetServerVehicle() is SchoolVehicle schoolVehicle)
|
if (veh.GetServerVehicle() is SchoolVehicle schoolVehicle)
|
||||||
|
{
|
||||||
|
if (schoolVehicle.SchoolId == 0)
|
||||||
{
|
{
|
||||||
user.TriggerEvent("renderTextOnScreen", "Gut nun kann die Prüfung losgehen.");
|
user.TriggerEvent("renderTextOnScreen", "Gut nun kann die Prüfung losgehen.");
|
||||||
user.TriggerEvent("stopTimer");
|
user.TriggerEvent("stopTimer");
|
||||||
|
|
||||||
CheckPointHandle.StartCheckPointRoute(user, DrivingRoute, 0, 1, 7, "drivingSchoolEvent");
|
CheckPointHandle.StartCheckPointRoute(user, DrivingRoute, 0, 1, 7, "drivingSchoolEvent");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[RemoteEvent("drivingSchoolEventEnd")]
|
[RemoteEvent("drivingSchoolEventEnd")]
|
||||||
public void DrivingSchoolEventEnd(Client user, int checkpoint)
|
public void DrivingSchoolEventEnd(Client user, int checkpoint)
|
||||||
@@ -144,6 +150,8 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
|||||||
NAPI.Entity.SetEntityVelocity(veh.Handle, new Vector3(0, 0, 0));
|
NAPI.Entity.SetEntityVelocity(veh.Handle, new Vector3(0, 0, 0));
|
||||||
veh.Position = sVeh.Position;
|
veh.Position = sVeh.Position;
|
||||||
veh.Rotation = new Vector3(0, 0, sVeh.Heading);
|
veh.Rotation = new Vector3(0, 0, sVeh.Heading);
|
||||||
|
|
||||||
|
user.Position = new Vector3(-813.17, -1354.5, 4.14);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -164,8 +172,9 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
|||||||
{
|
{
|
||||||
user.TriggerEvent("renderTextOnScreen", "Verlasse nun den Parkplatz.");
|
user.TriggerEvent("renderTextOnScreen", "Verlasse nun den Parkplatz.");
|
||||||
}
|
}
|
||||||
else if (checkpoint == 31)
|
else if (checkpoint == 32)
|
||||||
{
|
{
|
||||||
|
user.TriggerEvent("renderTextOnScreen", "Parke nun das Auto an der markierten Stelle.");
|
||||||
CheckPointHandle.StartCheckPointRoute(user, Stop, 5000, 1, 7, "drivingSchoolEventEnd");
|
CheckPointHandle.StartCheckPointRoute(user, Stop, 5000, 1, 7, "drivingSchoolEventEnd");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,6 +73,9 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
|||||||
{
|
{
|
||||||
User user = client.GetUser();
|
User user = client.GetUser();
|
||||||
|
|
||||||
|
if (user.FlyingLicensePlane || client.HasData("ActiveSchool"))
|
||||||
|
return;
|
||||||
|
|
||||||
if (user.Handmoney < 5000)
|
if (user.Handmoney < 5000)
|
||||||
{
|
{
|
||||||
client.SendNotification("~r~Du brauchst ~g~$5000~r~ auf der Hand um die Prüfung zu starten.", true);
|
client.SendNotification("~r~Du brauchst ~g~$5000~r~ auf der Hand um die Prüfung zu starten.", true);
|
||||||
@@ -81,13 +84,11 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
|||||||
using (var dbContext = new DatabaseContext())
|
using (var dbContext = new DatabaseContext())
|
||||||
{
|
{
|
||||||
User payer = client.GetUser(dbContext);
|
User payer = client.GetUser(dbContext);
|
||||||
payer.Handmoney -= 2500;
|
payer.Handmoney -= 5000;
|
||||||
|
client.TriggerEvent("SERVER:SET_HANDMONEY", payer.Handmoney);
|
||||||
dbContext.SaveChanges();
|
dbContext.SaveChanges();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (user.FlyingLicensePlane || client.HasData("ActiveSchool"))
|
|
||||||
return;
|
|
||||||
client.SetData("ActiveSchool", 1);
|
client.SetData("ActiveSchool", 1);
|
||||||
client.TriggerEvent("renderTextOnScreen", "Du hast die Flugscheinprüfung gestartet. Steige nun in eines der Flugzeuge ein.");
|
client.TriggerEvent("renderTextOnScreen", "Du hast die Flugscheinprüfung gestartet. Steige nun in eines der Flugzeuge ein.");
|
||||||
client.TriggerEvent("waitPlayerEntersVehicle1");
|
client.TriggerEvent("waitPlayerEntersVehicle1");
|
||||||
@@ -99,12 +100,15 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
|||||||
Vehicle veh = user.Vehicle;
|
Vehicle veh = user.Vehicle;
|
||||||
|
|
||||||
if (veh.GetServerVehicle() is SchoolVehicle schoolVehicle)
|
if (veh.GetServerVehicle() is SchoolVehicle schoolVehicle)
|
||||||
|
{
|
||||||
|
if(schoolVehicle.SchoolId == 1)
|
||||||
{
|
{
|
||||||
user.TriggerEvent("renderTextOnScreen", "Fahren Sie langsam und sicher zur Roten Markierung.");
|
user.TriggerEvent("renderTextOnScreen", "Fahren Sie langsam und sicher zur Roten Markierung.");
|
||||||
user.TriggerEvent("stopTimer");
|
user.TriggerEvent("stopTimer");
|
||||||
CheckPointHandle.StartCheckPointRoute(user, planeRoute, 0, 6, 12, "planeSchoolEvent");
|
CheckPointHandle.StartCheckPointRoute(user, planeRoute, 0, 6, 12, "planeSchoolEvent");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[RemoteEvent("planeSchoolEventEnd")]
|
[RemoteEvent("planeSchoolEventEnd")]
|
||||||
public void planeSchoolEventEnd(Client user, int checkpoint)
|
public void planeSchoolEventEnd(Client user, int checkpoint)
|
||||||
|
|||||||
@@ -33,11 +33,8 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
|
|
||||||
client.WarpOutOfVehicle();
|
client.WarpOutOfVehicle();
|
||||||
ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(vehicle);
|
ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(vehicle);
|
||||||
VehicleStreaming.SetEngineState(vehicle, false);
|
ServerVehicleExtensions.Spawn(sVeh, vehicle);
|
||||||
VehicleStreaming.SetLockStatus(vehicle, false);
|
client.Position = sVeh.Position;
|
||||||
NAPI.Entity.SetEntityVelocity(vehicle.Handle, new Vector3(0, 0, 0));
|
|
||||||
vehicle.Position = sVeh.Position;
|
|
||||||
vehicle.Rotation = new Vector3(0, 0, sVeh.Heading);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,10 +7,19 @@ namespace ReallifeGamemode.Server.Util
|
|||||||
public class CheckPointHandle : Script
|
public class CheckPointHandle : Script
|
||||||
{
|
{
|
||||||
public static List<CheckPointListForPlayer> listHandle = new List<CheckPointListForPlayer>();
|
public static List<CheckPointListForPlayer> listHandle = new List<CheckPointListForPlayer>();
|
||||||
|
|
||||||
|
public static void DeleteCheckpoints(Client player)
|
||||||
|
{
|
||||||
|
RemovePlayerHandlerFromList(player);
|
||||||
|
player.TriggerEvent("destroyCP");
|
||||||
|
}
|
||||||
|
|
||||||
public static void StartCheckPointRoute(Client player, IEnumerable<Vector3> nListCps, int delay, int markerID, int markerSize, string nEvent)
|
public static void StartCheckPointRoute(Client player, IEnumerable<Vector3> nListCps, int delay, int markerID, int markerSize, string nEvent)
|
||||||
{
|
{
|
||||||
RemovePlayerHandlerFromList(player);
|
RemovePlayerHandlerFromList(player);
|
||||||
CheckPointListForPlayer playerHandle = new CheckPointListForPlayer(player, nListCps, delay, markerID, markerSize, nEvent);
|
CheckPointListForPlayer playerHandle = new CheckPointListForPlayer(player, nListCps, delay, markerID, markerSize, nEvent);
|
||||||
|
playerHandle.DeleteCheckpoints();
|
||||||
|
|
||||||
listHandle.Add(playerHandle);
|
listHandle.Add(playerHandle);
|
||||||
|
|
||||||
playerHandle.StartRoute();
|
playerHandle.StartRoute();
|
||||||
@@ -83,5 +92,10 @@ namespace ReallifeGamemode.Server.Util
|
|||||||
CheckPointHandle.RemovePlayerHandlerFromList(this.player);
|
CheckPointHandle.RemovePlayerHandlerFromList(this.player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void DeleteCheckpoints()
|
||||||
|
{
|
||||||
|
this.player.TriggerEvent("destroyCP");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user