[*] Pilot License improvements
This commit is contained in:
@@ -13,6 +13,7 @@ export default function checkpointHandle(globalData: GlobalData) {
|
|||||||
var markerID;
|
var markerID;
|
||||||
var event;
|
var event;
|
||||||
var checkPointsDone = 0;
|
var checkPointsDone = 0;
|
||||||
|
var activeBlip = null;
|
||||||
|
|
||||||
mp.events.add('setCheckPoint', (position, player, checkPointID, nDelay, nMarkerID, nEvent) => {
|
mp.events.add('setCheckPoint', (position, player, checkPointID, nDelay, nMarkerID, nEvent) => {
|
||||||
inCheckpoint = false;
|
inCheckpoint = false;
|
||||||
@@ -29,9 +30,16 @@ export default function checkpointHandle(globalData: GlobalData) {
|
|||||||
dimension: 0
|
dimension: 0
|
||||||
});
|
});
|
||||||
|
|
||||||
|
activeBlip = mp.blips.new(1, posCp,
|
||||||
|
{
|
||||||
|
color: 33,
|
||||||
|
alpha: 255,
|
||||||
|
shortRange: false,
|
||||||
|
});
|
||||||
|
|
||||||
clearInterval(myVar);
|
clearInterval(myVar);
|
||||||
//mp.events.call("SERVER:Util_setWaypoint", posCp.X, posCp.Z);
|
//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);
|
myVar = setInterval(myTimer, 100);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -55,6 +63,7 @@ export default function checkpointHandle(globalData: GlobalData) {
|
|||||||
|
|
||||||
if (delayCounter >= delay) {
|
if (delayCounter >= delay) {
|
||||||
activeCheckpoint.destroy();
|
activeCheckpoint.destroy();
|
||||||
|
activeBlip.destroy();
|
||||||
clearInterval(myVar);
|
clearInterval(myVar);
|
||||||
mp.events.callRemote("playerInCheckpoint");
|
mp.events.callRemote("playerInCheckpoint");
|
||||||
if (event != "") {
|
if (event != "") {
|
||||||
|
|||||||
@@ -52,7 +52,35 @@ export default function planeSchoolHandle(globalData: GlobalData) {
|
|||||||
timer = setInterval(timerPlayerInVehicle1, 3000);
|
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', () => {
|
mp.events.add('stopTimer', () => {
|
||||||
timerSet = false;
|
timerSet = false;
|
||||||
clearInterval(timer);
|
clearInterval(timer);
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ using System.Linq;
|
|||||||
using GTANetworkAPI;
|
using GTANetworkAPI;
|
||||||
using ReallifeGamemode.Database.Entities;
|
using ReallifeGamemode.Database.Entities;
|
||||||
using ReallifeGamemode.Database.Models;
|
using ReallifeGamemode.Database.Models;
|
||||||
|
using ReallifeGamemode.Server.Managers;
|
||||||
|
|
||||||
namespace ReallifeGamemode.Server.DrivingSchool
|
namespace ReallifeGamemode.Server.DrivingSchool
|
||||||
{
|
{
|
||||||
@@ -68,9 +69,7 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
|||||||
if (user.FlyingLicensePlane)
|
if (user.FlyingLicensePlane)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ChatService.SendMessage(client, "Du hast die Flugscheinprüfung gestartet.");
|
user.TriggerEvent("renderTextOnScreen", "Du hast die Flugscheinprüfung gestartet. Steige nun in eines der Flugzeuge ein.");
|
||||||
ChatService.SendMessage(client, "Steige nun in eines der Flugzeuge ein.");
|
|
||||||
|
|
||||||
client.TriggerEvent("waitPlayerEntersVehicle1");
|
client.TriggerEvent("waitPlayerEntersVehicle1");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,7 +84,7 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
|||||||
}
|
}
|
||||||
else
|
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");
|
user.TriggerEvent("stopTimer");
|
||||||
CheckPointHandle.StartCheckPointRoute(user, planeRoute, 0, 6, "planeSchoolEvent");
|
CheckPointHandle.StartCheckPointRoute(user, planeRoute, 0, 6, "planeSchoolEvent");
|
||||||
}
|
}
|
||||||
@@ -94,28 +93,58 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
|||||||
[RemoteEvent("planeSchoolEvent")]
|
[RemoteEvent("planeSchoolEvent")]
|
||||||
public void planeSchoolEvent(Client user, int checkpoint)
|
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)
|
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)
|
else if (checkpoint == 15)
|
||||||
{
|
{
|
||||||
ChatService.SendMessage(user, "Du hast deinen Flugschein bestanden.");
|
user.TriggerEvent("renderTextOnScreen", "Du hast deinen Flugschein bestanden!");
|
||||||
User spieler = user.GetUser();
|
User spieler = user.GetUser();
|
||||||
using (var dbContext = new DatabaseContext())
|
using (var dbContext = new DatabaseContext())
|
||||||
{
|
{
|
||||||
User drivingUser = dbContext.Users.Where(u => u.Id == spieler.Id).FirstOrDefault();
|
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();
|
dbContext.SaveChanges();
|
||||||
}
|
}
|
||||||
user.Position = new Vector3(-1083.96, -2476.96, 13.07);
|
user.Position = new Vector3(-1083.96, -2476.96, 13.07);
|
||||||
/*user.Vehicle.Position = new Vector3(); Hier die Funktion zum Fahrzeug respawnen */
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -418,7 +418,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
User u = player.GetUser();
|
User u = player.GetUser();
|
||||||
if (u == null) return;
|
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);
|
player.SendNotification("~r~Der Motor kann nur im Stand betätigt werden.", true);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
User u = player.GetUser();
|
User u = player.GetUser();
|
||||||
if (u == null) return;
|
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);
|
player.SendNotification("~r~Der Motor kann nur im Stand betätigt werden.", true);
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user