[*] Improvements on both Driving and Flight School
This commit is contained in:
@@ -8,6 +8,7 @@ using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
|
||||
namespace ReallifeGamemode.Server.DrivingSchool
|
||||
{
|
||||
@@ -21,43 +22,47 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
private readonly IReadOnlyCollection<Vector3> DrivingRoute = new List<Vector3>
|
||||
{
|
||||
//BEGIN
|
||||
new Vector3(-745.6191, -1285.735, 4.947221),
|
||||
new Vector3(-704.5242, -1246.765, 9.885977),
|
||||
new Vector3(-673.0675, -1266.652, 10.29717),
|
||||
new Vector3(-646.1747, -1293.238, 10.28384),
|
||||
new Vector3(-510.7098, -916.9164, 25.10735),
|
||||
new Vector3(-492.6284, -860.5167, 29.89526),
|
||||
new Vector3(-450.3232, -841.7007, 30.3698),
|
||||
new Vector3(17.09636, -973.2763, 29.01929),
|
||||
new Vector3(76.66012, -999.568, 28.97918),
|
||||
new Vector3(-745.6191, -1285.735, 3.947221),
|
||||
new Vector3(-704.5242, -1246.765, 8.885977),
|
||||
new Vector3(-673.0675, -1266.652, 9.29717),
|
||||
new Vector3(-646.1747, -1293.238, 9.28384),
|
||||
new Vector3(-510.7098, -916.9164, 24.10735),
|
||||
new Vector3(-492.6284, -860.5167, 28.89526),
|
||||
new Vector3(-450.3232, -841.7007, 29.3698),
|
||||
new Vector3(17.09636, -973.2763, 28.01929),
|
||||
new Vector3(76.66012, -999.568, 27.97918),
|
||||
//SLALOM
|
||||
new Vector3(-12.64976, -1751.287, 28.91913),
|
||||
new Vector3(6.008641, -1767.067, 28.91265),
|
||||
new Vector3(12.80635, -1752.094, 28.91877),
|
||||
new Vector3(26.71735, -1747.96, 28.92006),
|
||||
new Vector3(28.67053, -1733.492, 28.91953),
|
||||
new Vector3(42.68731, -1728.767, 28.92002),
|
||||
new Vector3(44.33229, -1714.426, 28.9193),
|
||||
new Vector3(37.25899, -1723.924, 28.92041),
|
||||
new Vector3(34.591, -1738.211, 28.92125),
|
||||
new Vector3(21.28996, -1742.563, 28.91987),
|
||||
new Vector3(18.46534, -1756.87, 28.92011),
|
||||
new Vector3(4.841759, -1761.316, 28.91519),
|
||||
new Vector3(44.69115, -1805.247, 25.07369),
|
||||
new Vector3(111.6519, -1822.466, 26.03703),
|
||||
new Vector3(-12.64976, -1751.287, 27.91913),
|
||||
new Vector3(6.008641, -1767.067, 27.91265),
|
||||
new Vector3(12.80635, -1752.094, 27.91877),
|
||||
new Vector3(26.71735, -1747.96, 27.92006),
|
||||
new Vector3(28.67053, -1733.492, 27.91953),
|
||||
new Vector3(42.68731, -1728.767, 27.92002),
|
||||
new Vector3(44.33229, -1714.426, 27.9193),
|
||||
new Vector3(37.25899, -1723.924, 27.92041),
|
||||
new Vector3(34.591, -1738.211, 27.92125),
|
||||
new Vector3(21.28996, -1742.563, 27.91987),
|
||||
new Vector3(18.46534, -1756.87, 27.92011),
|
||||
new Vector3(4.841759, -1761.316, 27.91519),
|
||||
new Vector3(44.69115, -1805.247, 24.07369),
|
||||
new Vector3(111.6519, -1822.466, 25.03703),
|
||||
//AUTOBAHN-ENDE
|
||||
new Vector3(-270.89, -1461.01, 30.81),
|
||||
new Vector3(-369.08, -1415.37, 28.68),
|
||||
new Vector3(-114.48, -1251.43, 36.59),
|
||||
new Vector3(59.22, -1261.71, 28.84),
|
||||
new Vector3(39.12, -1165.28, 28.87),
|
||||
new Vector3(-307.52, -1200.85, 36.79),
|
||||
new Vector3(-441.79, -1251.67, 45.37),
|
||||
new Vector3(-463.77, -1405.07, 28.71),
|
||||
new Vector3(-617.66, -1259.34, 10.82),
|
||||
new Vector3(-758.35, -1285.03, 4.48),
|
||||
new Vector3(-270.89, -1461.01, 29.81),
|
||||
new Vector3(-369.08, -1415.37, 27.68),
|
||||
new Vector3(-114.48, -1251.43, 35.59),
|
||||
new Vector3(59.22, -1261.71, 27.84),
|
||||
new Vector3(39.12, -1165.28, 27.87),
|
||||
new Vector3(-307.52, -1200.85, 35.79),
|
||||
new Vector3(-441.79, -1251.67, 44.37),
|
||||
new Vector3(-463.77, -1405.07, 27.71),
|
||||
new Vector3(-617.66, -1259.34, 9.82),
|
||||
}.AsReadOnly();
|
||||
private readonly IReadOnlyCollection<Vector3> Stop = new List<Vector3>
|
||||
{
|
||||
new Vector3(-758.35, -1285.03, 3.48),
|
||||
}.AsReadOnly();
|
||||
|
||||
|
||||
public static void Setup()
|
||||
{
|
||||
informationLabel = NAPI.TextLabel.CreateTextLabel("Fahrschule", new Vector3(-813.17, -1354.5, 5.14), 20.0f, 1.3f, 0, new Color(255, 255, 255));
|
||||
@@ -85,9 +90,22 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
public void StartDrivingSchool(Client client)
|
||||
{
|
||||
User user = client.GetUser();
|
||||
if (user.DriverLicenseVehicle)
|
||||
return;
|
||||
|
||||
if(user.Handmoney < 2500)
|
||||
{
|
||||
client.SendNotification("~r~Du brauchst ~g~$2500~r~ auf der Hand um die Prüfung zu starten.", true);
|
||||
return;
|
||||
}
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User payer = client.GetUser(dbContext);
|
||||
payer.Handmoney -= 2500;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
if (user.DriverLicenseVehicle || client.HasData("ActiveSchool"))
|
||||
return;
|
||||
client.SetData("ActiveSchool", 0);
|
||||
client.TriggerEvent("renderTextOnScreen", "Sie haben die Führerscheinprüfung gestartet. Steigen Sie in eines der Fahrschulautos ein.");
|
||||
client.TriggerEvent("waitPlayerEntersVehicle");
|
||||
}
|
||||
@@ -103,13 +121,36 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
}
|
||||
else
|
||||
{
|
||||
user.TriggerEvent("renderTextOnScreen", "Gut nun kann die Prüfung losgehen");
|
||||
user.TriggerEvent("renderTextOnScreen", "Gut nun kann die Prüfung losgehen.");
|
||||
user.TriggerEvent("stopTimer");
|
||||
|
||||
CheckPointHandle.StartCheckPointRoute(user, DrivingRoute, 0, 1, "drivingSchoolEvent");
|
||||
CheckPointHandle.StartCheckPointRoute(user, DrivingRoute, 0, 1, 7, "drivingSchoolEvent");
|
||||
}
|
||||
}
|
||||
|
||||
[RemoteEvent("drivingSchoolEventEnd")]
|
||||
public void DrivingSchoolEventEnd(Client user, int checkpoint)
|
||||
{
|
||||
user.TriggerEvent("renderTextOnScreen", "Du hast den Führerschein bestanden. Glückwunsch!");
|
||||
user.ResetData("ActiveSchool");
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User drivingUser = user.GetUser(dbContext);
|
||||
drivingUser.DriverLicenseVehicle = true;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
Vehicle veh = user.Vehicle;
|
||||
user.WarpOutOfVehicle();
|
||||
ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(veh);
|
||||
VehicleStreaming.SetEngineState(veh, false);
|
||||
VehicleStreaming.SetLockStatus(veh, false);
|
||||
NAPI.Entity.SetEntityVelocity(veh.Handle, new Vector3(0, 0, 0));
|
||||
veh.Position = sVeh.Position;
|
||||
veh.Rotation = new Vector3(0, 0, sVeh.Heading);
|
||||
}
|
||||
|
||||
|
||||
[RemoteEvent("drivingSchoolEvent")]
|
||||
public void DrivingSchoolEvent(Client user, int checkpoint)
|
||||
{
|
||||
@@ -117,39 +158,22 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
|
||||
if (checkpoint == 7)
|
||||
{
|
||||
user.TriggerEvent("checkWait");
|
||||
ChatService.SendMessage(user, "Schaue an der nächsten Kreuzung nach links");
|
||||
}
|
||||
ChatService.SendMessage(user, "Schaue an der nächsten Kreuzung nach links.");
|
||||
}
|
||||
else if (checkpoint == 9)
|
||||
{
|
||||
user.TriggerEvent("renderTextOnScreen", "Fahre zwischen den Laternen Slalom");
|
||||
user.TriggerEvent("renderTextOnScreen", "Fahre zwischen den Laternen Slalom.");
|
||||
}
|
||||
else if (checkpoint == 20)
|
||||
{
|
||||
user.TriggerEvent("renderTextOnScreen", "Verlasse nun den Parkplatz");
|
||||
user.TriggerEvent("renderTextOnScreen", "Verlasse nun den Parkplatz.");
|
||||
}
|
||||
else if (checkpoint == 32)
|
||||
{
|
||||
user.TriggerEvent("renderTextOnScreen", "Du hast den Führerschein bestanden. Glückwunsch");
|
||||
User spieler = user.GetUser();
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User drivingUser = dbContext.Users.Where(u => u.Id == spieler.Id).FirstOrDefault();
|
||||
drivingUser.DriverLicenseVehicle = true;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
//veh & client tp
|
||||
}
|
||||
|
||||
else if (checkpoint == 31)
|
||||
{
|
||||
CheckPointHandle.StartCheckPointRoute(user, Stop, 5000, 1, 7, "drivingSchoolEventEnd");
|
||||
}
|
||||
}
|
||||
|
||||
[Command("ld", "~m~Benutzung: ~s~/lt")]
|
||||
public void CmdAdminLt(Client player)
|
||||
{
|
||||
Vehicle veh = player.Vehicle;
|
||||
ChatService.Broadcast("x: " + veh.Rotation.X + " | y: " + veh.Rotation.Y + " | z: " + veh.Rotation.Z);
|
||||
|
||||
//player.TriggerEvent("lookDirectionTesting", veh);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,9 +36,15 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
new Vector3(2134.13, 4782.7, 41.9),
|
||||
new Vector3(2098.9, 4792.94, 41.98),
|
||||
new Vector3(-869.77, -1424.05, 133),
|
||||
}.AsReadOnly();
|
||||
|
||||
|
||||
private readonly IReadOnlyCollection<Vector3> planeRouteEnd = new List<Vector3>
|
||||
{
|
||||
new Vector3(-1164.29, -2351.52, 14.88),
|
||||
}.AsReadOnly();
|
||||
|
||||
|
||||
public static void Setup()
|
||||
{
|
||||
|
||||
@@ -65,8 +71,20 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
[RemoteEvent("startplaneSchool")]
|
||||
public void StartplaneSchool(Client client)
|
||||
{
|
||||
if (user.Handmoney < 5000)
|
||||
{
|
||||
client.SendNotification("~r~Du brauchst ~g~$5000~r~ auf der Hand um die Prüfung zu starten.", true);
|
||||
return;
|
||||
}
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User payer = client.GetUser(dbContext);
|
||||
payer.Handmoney -= 2500;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
User user = client.GetUser();
|
||||
if (user.FlyingLicensePlane)
|
||||
if (user.FlyingLicensePlane || client.HasData("ActiveSchool"))
|
||||
return;
|
||||
client.SetData("ActiveSchool", 1);
|
||||
client.TriggerEvent("renderTextOnScreen", "Du hast die Flugscheinprüfung gestartet. Steige nun in eines der Flugzeuge ein.");
|
||||
@@ -86,10 +104,32 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
{
|
||||
user.TriggerEvent("renderTextOnScreen", "Fahren Sie langsam und sicher zur Roten Markierung.");
|
||||
user.TriggerEvent("stopTimer");
|
||||
CheckPointHandle.StartCheckPointRoute(user, planeRoute, 0, 6, "planeSchoolEvent");
|
||||
CheckPointHandle.StartCheckPointRoute(user, planeRoute, 0, 6, 12, "planeSchoolEvent");
|
||||
}
|
||||
}
|
||||
|
||||
[RemoteEvent("planeSchoolEventEnd")]
|
||||
public void planeSchoolEventEnd(Client user, int checkpoint)
|
||||
{
|
||||
Vehicle veh = user.Vehicle;
|
||||
user.WarpOutOfVehicle();
|
||||
ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(veh);
|
||||
VehicleStreaming.SetEngineState(veh, false);
|
||||
VehicleStreaming.SetLockStatus(veh, false);
|
||||
NAPI.Entity.SetEntityVelocity(veh.Handle, new Vector3(0, 0, 0));
|
||||
veh.Position = sVeh.Position;
|
||||
veh.Rotation = new Vector3(0, 0, sVeh.Heading);
|
||||
|
||||
user.TriggerEvent("renderTextOnScreen", "Du hast deinen Flugschein bestanden!");
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User drivingUser = user.GetUser(dbContext);
|
||||
drivingUser.FlyingLicensePlane = true;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
user.ResetData("ActiveSchool");
|
||||
user.Position = new Vector3(-1083.96, -2476.96, 13.07);
|
||||
}
|
||||
[RemoteEvent("planeSchoolEvent")]
|
||||
public void planeSchoolEvent(Client user, int checkpoint)
|
||||
{
|
||||
@@ -99,12 +139,8 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
user.TriggerEvent("renderTextOnScreen", "Achten Sie darauf dass Sie mittig durch jeder Markierung fahren/fliegen.");
|
||||
break;
|
||||
|
||||
case 1:
|
||||
user.TriggerEvent("renderTextOnScreen", "Für die Flugprüfung haben Sie 15min Zeit.");
|
||||
break;
|
||||
|
||||
case 2:
|
||||
user.TriggerEvent("renderTextOnScreen", "Wenn Sie aus dem Flugzeug aussteigen sind Sie aus der Prüfung durchgefallen.");
|
||||
user.TriggerEvent("renderTextOnScreen", "Falls Sie aus dem Flugzeug aussteigen sind Sie aus der Prüfung durchgefallen.");
|
||||
break;
|
||||
|
||||
case 3:
|
||||
@@ -137,28 +173,10 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
|
||||
case 14:
|
||||
user.TriggerEvent("renderTextOnScreen", "Setze zum landeflug an. Drücke 'G' um ihr Fahrwerk auszufahren.");
|
||||
CheckPointHandle.StartCheckPointRoute(user, planeRouteEnd, 5000, 6, 12, "planeSchoolEventEnd");
|
||||
break;
|
||||
case 15:
|
||||
|
||||
Vehicle veh = user.Vehicle;
|
||||
user.WarpOutOfVehicle();
|
||||
ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(veh);
|
||||
VehicleStreaming.SetEngineState(veh, false);
|
||||
VehicleStreaming.SetLockStatus(veh, false);
|
||||
NAPI.Entity.SetEntityVelocity(veh.Handle, new Vector3(0,0,0));
|
||||
veh.Position = sVeh.Position;
|
||||
veh.Rotation = new Vector3(0, 0, sVeh.Heading);
|
||||
|
||||
user.TriggerEvent("renderTextOnScreen", "Du hast deinen Flugschein bestanden!");
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User drivingUser = user.GetUser(dbContext);
|
||||
drivingUser.FlyingLicensePlane = true;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
user.ResetData("ActiveSchool");
|
||||
user.Position = new Vector3(-1083.96, -2476.96, 13.07);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user