added pilot job

This commit is contained in:
2019-09-16 15:05:23 +02:00
parent d8cddb3411
commit b3d3d4550d
5 changed files with 59 additions and 14 deletions

View File

@@ -38,6 +38,7 @@ export default function busRouteList(globalData: GlobalData) {
routeMenu.AddItem(sendItem); routeMenu.AddItem(sendItem);
routeMenu.AddItem(cancelItem); routeMenu.AddItem(cancelItem);
routeMenu.Visible = true; routeMenu.Visible = true;
routeText = "Kurz 1";
routeMenu.ListChange.on((item, index) => { routeMenu.ListChange.on((item, index) => {
switch (item.Text) { switch (item.Text) {

View File

@@ -8,12 +8,18 @@ export default function checkpointHandle(globalData: GlobalData) {
var Player; var Player;
var activeCheckpoint; var activeCheckpoint;
var inCheckpoint = false; var inCheckpoint = false;
var delay;
var delayCounter;
var markerID;
mp.events.add('setCheckPoint', (position, player) => { mp.events.add('setCheckPoint', (position, player, nDelay, nMarkerID) => {
inCheckpoint = false; inCheckpoint = false;
posCp = position; posCp = position;
Player = player; Player = player;
activeCheckpoint = mp.markers.new(1, posCp, 3.0, { delay = nDelay;
markerID = nMarkerID;
delayCounter = 0;
activeCheckpoint = mp.markers.new(markerID, posCp, 3.0, {
color: [255, 0, 0, 150], color: [255, 0, 0, 150],
visible: true, visible: true,
dimension: 0 dimension: 0
@@ -26,15 +32,25 @@ export default function checkpointHandle(globalData: GlobalData) {
function myTimer() { function myTimer() {
let dist = mp.game.gameplay.getDistanceBetweenCoords(Player.position.x, Player.position.y, 0, posCp.x, posCp.y, 0, false); let dist = mp.game.gameplay.getDistanceBetweenCoords(Player.position.x, Player.position.y, 0, posCp.x, posCp.y, 0, false);
//mp.gui.chat.push("delay: " + delay + " | delayCounter: " + delayCounter);
if (dist <= 2 && !inCheckpoint) { if (dist <= 2) {
mp.game.audio.playSoundFrontend(1, "Beep_Red", "DLC_HEIST_HACKING_SNAKE_SOUNDS", true); mp.game.audio.playSoundFrontend(1, "Beep_Red", "DLC_HEIST_HACKING_SNAKE_SOUNDS", true);
if (!inCheckpoint) {
mp.gui.chat.push("Warte nun " + delay / 1000 + " Sekunden");
}
inCheckpoint = true; inCheckpoint = true;
activeCheckpoint.visible = false;
clearInterval(myVar); if (delayCounter >= delay) {
mp.events.callRemote("playerInCheckpoint"); activeCheckpoint.visible = false;
clearInterval(myVar);
mp.events.callRemote("playerInCheckpoint");
} else {
delayCounter += 100;
}
} else if (dist > 2) { } else if (dist > 2) {
inCheckpoint = false; inCheckpoint = false;
delayCounter = 0;
} }
} }
} }

View File

@@ -60,10 +60,10 @@ namespace ReallifeGamemode.Server.Job
{ {
if (type == "Kurz 1") if (type == "Kurz 1")
{ {
CheckPointHandle.StartCheckPointRoute(player, Route1); CheckPointHandle.StartCheckPointRoute(player, Route1, 3000, 1);
} else if (type == "Kurz 2") } else if (type == "Kurz 2")
{ {
CheckPointHandle.StartCheckPointRoute(player, Route2); CheckPointHandle.StartCheckPointRoute(player, Route2, 3000, 1);
} }
} }

View File

@@ -1,6 +1,11 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using GTANetworkAPI;
using ReallifeGamemode.Server.Util;
using Newtonsoft.Json;
using GTANetworkAPI;
using ReallifeGamemode.Server.Services;
namespace ReallifeGamemode.Server.Job namespace ReallifeGamemode.Server.Job
{ {
@@ -11,5 +16,24 @@ namespace ReallifeGamemode.Server.Job
public override string Name => "Pilot"; public override string Name => "Pilot";
public override bool NeedVehicleToStart => true; public override bool NeedVehicleToStart => true;
private readonly IReadOnlyCollection<Vector3> Route1 = new List<Vector3>
{
new Vector3(-1059.862, -3100.353, 13.94444),
new Vector3(1690.651, 3246.769, 40.87084),
new Vector3(-2376.512, 3063.054, 32.82592),
new Vector3(2056.1, 4774.556, 4106039),
new Vector3(-1059.862, -3100.353, 13.94444),
}.AsReadOnly();
public PilotJob()
{
JobStart += PilotJob_JobStart;
}
private void PilotJob_JobStart(Client player)
{
CheckPointHandle.StartCheckPointRoute(player, Route1, 0, 6);
}
} }
} }

View File

@@ -15,9 +15,9 @@ 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 StartCheckPointRoute(Client player, IEnumerable<Vector3> nListCps) public static void StartCheckPointRoute(Client player, IEnumerable<Vector3> nListCps, int delay, int markerID)
{ {
CheckPointListForPlayer playerHandle = new CheckPointListForPlayer(player, nListCps); CheckPointListForPlayer playerHandle = new CheckPointListForPlayer(player, nListCps, delay, markerID);
listHandle.Add(playerHandle); listHandle.Add(playerHandle);
playerHandle.StartRoute(); playerHandle.StartRoute();
@@ -55,21 +55,25 @@ namespace ReallifeGamemode.Server.Util
{ {
public IEnumerable<Vector3> list = new List<Vector3>(); public IEnumerable<Vector3> list = new List<Vector3>();
public Client player; public Client player;
public int delay = 0;
public int markerID;
Vector3 checkPoint; Vector3 checkPoint;
bool done; bool done;
int checkPointsDone = 0; int checkPointsDone = 0;
public CheckPointListForPlayer(Client nPlayer, IEnumerable<Vector3> nList) public CheckPointListForPlayer(Client nPlayer, IEnumerable<Vector3> nList, int nDelay, int nMarkerID)
{ {
this.player = nPlayer; this.player = nPlayer;
this.list = nList; this.list = nList;
this.delay = nDelay;
this.markerID = nMarkerID;
} }
public void StartRoute() public void StartRoute()
{ {
player.TriggerEvent("setCheckPoint", this.list.ElementAt(0), player); player.TriggerEvent("setCheckPoint", this.list.ElementAt(0), player, this.delay, this.markerID);
} }
public void NextCheckpoint() public void NextCheckpoint()
{ {
@@ -77,7 +81,7 @@ namespace ReallifeGamemode.Server.Util
if (this.list.Count() > checkPointsDone) if (this.list.Count() > checkPointsDone)
{ {
Vector3 nextCp = list.ElementAt(checkPointsDone); Vector3 nextCp = list.ElementAt(checkPointsDone);
this.player.TriggerEvent("setCheckPoint", nextCp, player); this.player.TriggerEvent("setCheckPoint", nextCp, player, this.delay, this.markerID);
} }
if (this.list.Count() == checkPointsDone) if (this.list.Count() == checkPointsDone)
{ {