[*] Pilot License improvements

This commit is contained in:
Lukas Moungos
2019-10-31 15:52:23 +01:00
parent d3bd1cce59
commit 2f0b1251e1
5 changed files with 80 additions and 14 deletions

View File

@@ -13,6 +13,7 @@ export default function checkpointHandle(globalData: GlobalData) {
var markerID;
var event;
var checkPointsDone = 0;
var activeBlip = null;
mp.events.add('setCheckPoint', (position, player, checkPointID, nDelay, nMarkerID, nEvent) => {
inCheckpoint = false;
@@ -29,9 +30,16 @@ export default function checkpointHandle(globalData: GlobalData) {
dimension: 0
});
activeBlip = mp.blips.new(1, posCp,
{
color: 33,
alpha: 255,
shortRange: false,
});
clearInterval(myVar);
//mp.events.call("SERVER:Util_setWaypoint", posCp.X, posCp.Z);
mp.game.ui.setNewWaypoint(posCp.x, posCp.y);
//mp.game.ui.setNewWaypoint(posCp.x, posCp.y);
myVar = setInterval(myTimer, 100);
});
@@ -55,6 +63,7 @@ export default function checkpointHandle(globalData: GlobalData) {
if (delayCounter >= delay) {
activeCheckpoint.destroy();
activeBlip.destroy();
clearInterval(myVar);
mp.events.callRemote("playerInCheckpoint");
if (event != "") {

View File

@@ -52,7 +52,35 @@ export default function planeSchoolHandle(globalData: GlobalData) {
timer = setInterval(timerPlayerInVehicle1, 3000);
});
var renderedText = null;
var textTime;
var render = false;
var massage;
function ClearText() {
render = false;
clearInterval(textTime);
}
mp.events.add('render', () =>{
if (render) {
renderedText = mp.game.graphics.drawText(massage, [0.5, 0.85], {
font: 4,
centre: true,
color: [255, 255, 145, 185],
scale: [0.5, 0.5],
outline: true
});
}
});
mp.events.add('renderTextOnScreen', (msg) => {
clearInterval(textTime);
massage = msg;
render = true;
textTime = setInterval(ClearText, 7000)
});
mp.events.add('stopTimer', () => {
timerSet = false;
clearInterval(timer);

View File

@@ -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
{
@@ -68,9 +69,7 @@ namespace ReallifeGamemode.Server.DrivingSchool
if (user.FlyingLicensePlane)
return;
ChatService.SendMessage(client, "Du hast die Flugscheinprüfung gestartet.");
ChatService.SendMessage(client, "Steige nun in eines der Flugzeuge ein.");
user.TriggerEvent("renderTextOnScreen", "Du hast die Flugscheinprüfung gestartet. Steige nun in eines der Flugzeuge ein.");
client.TriggerEvent("waitPlayerEntersVehicle1");
}
@@ -85,7 +84,7 @@ namespace ReallifeGamemode.Server.DrivingSchool
}
else
{
ChatService.SendMessage(user, "Gut nun kann die Prüfung losgehen.");
user.TriggerEvent("renderTextOnScreen", "Fahren Sie langsam und sicher zur Roten Markierung.");
user.TriggerEvent("stopTimer");
CheckPointHandle.StartCheckPointRoute(user, planeRoute, 0, 6, "planeSchoolEvent");
}
@@ -94,28 +93,58 @@ namespace ReallifeGamemode.Server.DrivingSchool
[RemoteEvent("planeSchoolEvent")]
public void planeSchoolEvent(Client user, int checkpoint)
{
if(checkpoint == 6 || checkpoint ==13)
if(checkpoint == 0)
{
ChatService.SendMessage(user, "Beschleunige um abzuheben.");
user.TriggerEvent("renderTextOnScreen", "Achten Sie darauf dass Sie mittig durch jeder Markierung fahren/fliegen.");
}
else if(checkpoint == 1)
{
user.TriggerEvent("renderTextOnScreen", "Für die Flugprüfung haben Sie 15min Zeit.");
}
else if(checkpoint == 2)
{
user.TriggerEvent("renderTextOnScreen", "Wenn Sie aus dem Flugzeug aussteigen sind Sie aus der Prüfung durchgefallen.");
}
else if(checkpoint == 3)
{
user.TriggerEvent("renderTextOnScreen", "Achten Sie darauf dass Sie nicht stark abbremsen in der Luft sonst geht der Motor aus.");
}
else if (checkpoint == 4)
{
user.TriggerEvent("renderTextOnScreen", "Falls Sie eine Landung durchführen fliegen Sie mit max. 150km/h.");
}
else if (checkpoint == 5)
{
user.TriggerEvent("renderTextOnScreen", "Folgen Sie den Gelben Punkte auf der Karte. Der Pfeil auf den Punkt zeigt ihnen ob Sie über oder unter dem Punkt seid.");
}
else if(checkpoint == 7)
{
user.TriggerEvent("renderTextOnScreen", "Sobald Sie sicher in der Luft sind drücken Sie 'G' um ihr Fahrwerk einzufahren.");
}
else if(checkpoint == 6 || checkpoint ==13)
{
user.TriggerEvent("renderTextOnScreen", "Beschleunige nun auf mind. 100km/h um abzuheben.");
}
else if(checkpoint == 10 || checkpoint == 14)
{
ChatService.SendMessage(user, "Setze zum landeflug an.");
user.TriggerEvent("renderTextOnScreen", "Setze zum landeflug an. Drücke 'G' um ihr Fahrwerk auszufahren.");
}
else if (checkpoint == 15)
{
ChatService.SendMessage(user, "Du hast deinen Flugschein bestanden.");
user.TriggerEvent("renderTextOnScreen", "Du hast deinen Flugschein bestanden!");
User spieler = user.GetUser();
using (var dbContext = new DatabaseContext())
{
User drivingUser = dbContext.Users.Where(u => u.Id == spieler.Id).FirstOrDefault();
drivingUser.FlyingLicensePlane = true;
drivingUser.FlyingLicensePlane = false;
ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(user.Vehicle);
ServerVehicleExtensions.Spawn(sVeh, user.Vehicle);
dbContext.SaveChanges();
}
user.Position = new Vector3(-1083.96, -2476.96, 13.07);
/*user.Vehicle.Position = new Vector3(); Hier die Funktion zum Fahrzeug respawnen */
}
}
}
}

View File

@@ -418,7 +418,7 @@ namespace ReallifeGamemode.Server.Events
User u = player.GetUser();
if (u == null) return;
if (NAPI.Entity.GetEntityVelocity(v).Length() > 1)
if (NAPI.Entity.GetEntityVelocity(v).Length() > 1 && v.Class != 16)
{
player.SendNotification("~r~Der Motor kann nur im Stand betätigt werden.", true);
return;

View File

@@ -20,7 +20,7 @@ namespace ReallifeGamemode.Server.Events
User u = player.GetUser();
if (u == null) return;
if (NAPI.Entity.GetEntityVelocity(v).Length() > 1)
if (NAPI.Entity.GetEntityVelocity(v).Length() > 1 && v.Class != 16)
{
player.SendNotification("~r~Der Motor kann nur im Stand betätigt werden.", true);
return;