added pilot job
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
if (delayCounter >= delay) {
|
||||||
activeCheckpoint.visible = false;
|
activeCheckpoint.visible = false;
|
||||||
clearInterval(myVar);
|
clearInterval(myVar);
|
||||||
mp.events.callRemote("playerInCheckpoint");
|
mp.events.callRemote("playerInCheckpoint");
|
||||||
|
} else {
|
||||||
|
delayCounter += 100;
|
||||||
|
}
|
||||||
} else if (dist > 2) {
|
} else if (dist > 2) {
|
||||||
inCheckpoint = false;
|
inCheckpoint = false;
|
||||||
|
delayCounter = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user