Busjob overhaul
This commit is contained in:
@@ -19,38 +19,37 @@ let cancelItem = new UIMenuItem("Abbrechen", "");
|
|||||||
cancelItem.BackColor = new Color(213, 0, 0);
|
cancelItem.BackColor = new Color(213, 0, 0);
|
||||||
cancelItem.HighlightedBackColor = new Color(229, 57, 53);
|
cancelItem.HighlightedBackColor = new Color(229, 57, 53);
|
||||||
|
|
||||||
|
|
||||||
export default function busRouteList(globalData: IGlobalData) {
|
export default function busRouteList(globalData: IGlobalData) {
|
||||||
|
|
||||||
var routeMenu: NativeUI.Menu;
|
var routeMenu: NativeUI.Menu;
|
||||||
var routeTexts;
|
var skillSelect;
|
||||||
var routeText;
|
var routeSelect;
|
||||||
|
var skill = 0;
|
||||||
|
|
||||||
mp.events.add('showBusRouteMenu', (listRoutes) => {
|
mp.events.add('SERVER:StartBusJob', (jobskill) => {
|
||||||
|
skill = jobskill;
|
||||||
if (!globalData.InMenu) {
|
if (!globalData.InMenu) {
|
||||||
|
|
||||||
globalData.InMenu = true;
|
globalData.InMenu = true;
|
||||||
routeTexts = JSON.parse(listRoutes);
|
skillSelect = ["Anfänger", "Fortgeschrittener", "Profi"];
|
||||||
|
|
||||||
routeMenu = new Menu("Bus Job", "", new Point(0, screenRes.y / 3), null, null);
|
routeMenu = new Menu("Bus Job", "", new Point(0, screenRes.y / 3), null, null);
|
||||||
routeMenu.AddItem(new UIMenuListItem("Route", "", new ItemsCollection(routeTexts)));
|
routeMenu.AddItem(new UIMenuListItem("Skill wählen", "", new ItemsCollection(skillSelect)));
|
||||||
|
|
||||||
routeMenu.AddItem(sendItem);
|
routeMenu.AddItem(sendItem);
|
||||||
routeMenu.AddItem(cancelItem);
|
routeMenu.AddItem(cancelItem);
|
||||||
routeMenu.Visible = true;
|
routeMenu.Visible = true;
|
||||||
routeText = "Kurz 1";
|
routeSelect = skillSelect[0];
|
||||||
|
|
||||||
routeMenu.ListChange.on((item, index) => {
|
routeMenu.ListChange.on((item, index) => {
|
||||||
switch (item.Text) {
|
switch (item.Text) {
|
||||||
case "Route":
|
case "Skill wählen":
|
||||||
routeText = String(item.SelectedItem.DisplayText);
|
routeSelect = String(item.SelectedItem.DisplayText);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
routeMenu.ItemSelect.on((item) => {
|
routeMenu.ItemSelect.on((item) => {
|
||||||
if (item.Text === "Starten") {
|
if (item.Text === "Starten") {
|
||||||
mp.events.callRemote("startBusRoute", routeText);
|
mp.events.callRemote("CLIENT:StartBusRoute", routeSelect);
|
||||||
routeMenu.Close();
|
routeMenu.Close();
|
||||||
globalData.InMenu = false;
|
globalData.InMenu = false;
|
||||||
} else if (item.Text === "Abbrechen") {
|
} else if (item.Text === "Abbrechen") {
|
||||||
@@ -64,4 +63,8 @@ export default function busRouteList(globalData: IGlobalData) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mp.events.add("MenuSelect:Error", () => {
|
||||||
|
mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
@@ -1,16 +1,13 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using GTANetworkAPI;
|
using GTANetworkAPI;
|
||||||
using Newtonsoft.Json;
|
|
||||||
using ReallifeGamemode.Server.Extensions;
|
using ReallifeGamemode.Server.Extensions;
|
||||||
using ReallifeGamemode.Database.Models;
|
using ReallifeGamemode.Database.Models;
|
||||||
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
|
||||||
using ReallifeGamemode.Server.Services;
|
using ReallifeGamemode.Server.Services;
|
||||||
using ReallifeGamemode.Server.Managers;
|
using ReallifeGamemode.Server.Managers;
|
||||||
using ReallifeGamemode.Server.Util;
|
using ReallifeGamemode.Server.Util;
|
||||||
using ReallifeGamemode.Database.Entities;
|
using ReallifeGamemode.Database.Entities;
|
||||||
|
|
||||||
|
|
||||||
namespace ReallifeGamemode.Server.Job
|
namespace ReallifeGamemode.Server.Job
|
||||||
{
|
{
|
||||||
public class BusDriverJob : JobBase
|
public class BusDriverJob : JobBase
|
||||||
@@ -19,16 +16,51 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
|
|
||||||
public override string Name => "Busfahrer";
|
public override string Name => "Busfahrer";
|
||||||
|
|
||||||
|
public static Dictionary<Player, Vehicle> playerBusPair = new Dictionary<Player, Vehicle>();
|
||||||
|
public static Dictionary<string, List<Vector3>> playerRoutePair = new Dictionary<string, List<Vector3>>();
|
||||||
private const int MARKER_DELAY = 4000;
|
private const int MARKER_DELAY = 4000;
|
||||||
private const int MARKER_ID = 1;
|
private const int MARKER_ID = 1;
|
||||||
private const int MARKER_SIZE = 7;
|
private const int MARKER_SIZE = 7;
|
||||||
private const int MARKER_DIST = 6;
|
private const int MARKER_DIST = 6;
|
||||||
private const string MARKER_EVENT = "busDriverJob";
|
private const string MARKER_EVENT = "busDriverJob";
|
||||||
|
|
||||||
|
private const uint VEHICLE_BEGINNER = (uint)VehicleHash.Bus;
|
||||||
|
private const uint VEHICLE_INTERMEDIATE = (uint)VehicleHash.Coach;
|
||||||
|
private const uint VEHICLE_PROFESSIONAL = (uint)VehicleHash.Tourbus;
|
||||||
|
|
||||||
|
private const string BEGINNER = "Anfänger";
|
||||||
|
private const string INTERMEDIATE = "Fortgeschrittener";
|
||||||
|
private const string PROFESSIONAL = "Profi";
|
||||||
|
|
||||||
|
private const int SKILL_BEGINNER = 0;
|
||||||
|
private const int SKILL_INTERMEDIATE = 300;
|
||||||
|
private const int SKILL_PROFESSIONAL = 800;
|
||||||
|
|
||||||
|
private const int WAGE_BEGINNER = 800;
|
||||||
|
private const int WAGE_INTERMEDIATE = 1200;
|
||||||
|
private const int WAGE_PROFESSIOAL = 1800;
|
||||||
|
//-623.76, -2083.1008, 5.9822865
|
||||||
|
|
||||||
|
private static int spawnIndex = 0;
|
||||||
|
|
||||||
|
private readonly List<Vector3> VEHICLE_SPAWNS = new List<Vector3>()
|
||||||
|
{
|
||||||
|
new Vector3(-555.02136, -2162.153, 5.988391),
|
||||||
|
new Vector3(-568.4366, -2179.2156, 5.988391),
|
||||||
|
new Vector3(-582.3364, -2194.5134, 5.988391),
|
||||||
|
new Vector3(-598.5143, -2207.357, 5.988893),
|
||||||
|
};
|
||||||
|
|
||||||
|
private const float VEHICLE_HEADING = 47; //6.618084f;
|
||||||
|
|
||||||
public override bool NeedVehicleToStart => false;
|
public override bool NeedVehicleToStart => false;
|
||||||
|
|
||||||
private readonly IReadOnlyCollection<Vector3> Skill1Route1 = new List<Vector3>//Bus_Skill_1_Route_1
|
private readonly Dictionary<int, List<Vector3>> ROUTE_BEGINNER = new Dictionary<int, List<Vector3>>//Bus_Skill_1_Route_1
|
||||||
{
|
{
|
||||||
|
{ 1,
|
||||||
|
new List<Vector3>()
|
||||||
|
{
|
||||||
|
new Vector3(-601.733, -2049.285, 6.090),
|
||||||
new Vector3(-1018.1577758789062, -2732.403564453125, 10.658967971801758) ,
|
new Vector3(-1018.1577758789062, -2732.403564453125, 10.658967971801758) ,
|
||||||
new Vector3(-153.04013061523438, -2033.8385009765625, 19.712543487548828) ,
|
new Vector3(-153.04013061523438, -2033.8385009765625, 19.712543487548828) ,
|
||||||
new Vector3(50.42457580566406, -1536.9090576171875, 26.184476852416992) ,
|
new Vector3(50.42457580566406, -1536.9090576171875, 26.184476852416992) ,
|
||||||
@@ -38,11 +70,13 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
new Vector3(-707.7088623046875, -826.9969482421875, 20.451000213623047) ,
|
new Vector3(-707.7088623046875, -826.9969482421875, 20.451000213623047) ,
|
||||||
new Vector3(-658.1038818359375, -1393.321533203125, 7.509778022766113) ,
|
new Vector3(-658.1038818359375, -1393.321533203125, 7.509778022766113) ,
|
||||||
new Vector3(-1018.1826171875, -2732.371826171875, 10.656649589538574) ,
|
new Vector3(-1018.1826171875, -2732.371826171875, 10.656649589538574) ,
|
||||||
new Vector3(-647.2696533203125, -2215.64501953125, 2.989798069000244),
|
new Vector3(-647.2696533203125, -2215.64501953125, 2.989798069000244)
|
||||||
}.AsReadOnly();
|
}
|
||||||
|
},
|
||||||
private readonly IReadOnlyCollection<Vector3> Skill1Route2 = new List<Vector3>//Bus_Skill_1_Route_2
|
{ 2,
|
||||||
|
new List<Vector3>()
|
||||||
{
|
{
|
||||||
|
new Vector3(-601.733, -2049.285, 6.090),
|
||||||
new Vector3(-567.6445922851562, -1233.4453125, 12.050300598144531),
|
new Vector3(-567.6445922851562, -1233.4453125, 12.050300598144531),
|
||||||
new Vector3(-509.224609375, -668.373291015625, 30.02402877807617),
|
new Vector3(-509.224609375, -668.373291015625, 30.02402877807617),
|
||||||
new Vector3(55.00559997558594, -749.8328247070312, 41.11421203613281),
|
new Vector3(55.00559997558594, -749.8328247070312, 41.11421203613281),
|
||||||
@@ -53,10 +87,12 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
new Vector3(-1213.3565673828125, -1214.755859375, 4.5853986740112305),
|
new Vector3(-1213.3565673828125, -1214.755859375, 4.5853986740112305),
|
||||||
new Vector3(-746.8554077148438, -2372.227783203125, 11.740862846374512),
|
new Vector3(-746.8554077148438, -2372.227783203125, 11.740862846374512),
|
||||||
new Vector3(-660.7366333007812, -2206.03662109375, 2.988998889923096),
|
new Vector3(-660.7366333007812, -2206.03662109375, 2.988998889923096),
|
||||||
}.AsReadOnly();
|
}
|
||||||
|
},
|
||||||
private readonly IReadOnlyCollection<Vector3> Skill1Route3 = new List<Vector3>//Bus_Skill_1_Route_3
|
{ 3,
|
||||||
|
new List<Vector3>()
|
||||||
{
|
{
|
||||||
|
new Vector3(-601.733, -2049.285, 6.090),
|
||||||
new Vector3(423.4793395996094, -2143.4169921875, 15.23659896850586),
|
new Vector3(423.4793395996094, -2143.4169921875, 15.23659896850586),
|
||||||
new Vector3(875.1618041992188, -1766.7913818359375, 26.780052185058594),
|
new Vector3(875.1618041992188, -1766.7913818359375, 26.780052185058594),
|
||||||
new Vector3(1166.110107421875, -1422.72265625, 31.477935791015625),
|
new Vector3(1166.110107421875, -1422.72265625, 31.477935791015625),
|
||||||
@@ -67,11 +103,12 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
new Vector3(307.64422607421875, -762.0469360351562, 26.197702407836914),
|
new Vector3(307.64422607421875, -762.0469360351562, 26.197702407836914),
|
||||||
new Vector3(-105.66091918945312, -1683.9630126953125, 26.190542221069336),
|
new Vector3(-105.66091918945312, -1683.9630126953125, 26.190542221069336),
|
||||||
new Vector3(-644.0516967773438, -2218.673828125, 2.991928577423096),
|
new Vector3(-644.0516967773438, -2218.673828125, 2.991928577423096),
|
||||||
}.AsReadOnly();
|
}
|
||||||
|
},
|
||||||
private readonly IReadOnlyCollection<Vector3> Skill1Route4 = new List<Vector3>//Bus_Skill_1_Route_4
|
{ 4,
|
||||||
|
new List<Vector3>()
|
||||||
{
|
{
|
||||||
|
new Vector3(-601.733, -2049.285, 6.090),
|
||||||
new Vector3(-694.1781616210938, -1199.3873291015625, 7.50633716583252),
|
new Vector3(-694.1781616210938, -1199.3873291015625, 7.50633716583252),
|
||||||
new Vector3(-1408.264892578125, -567.5278930664062, 27.21875),
|
new Vector3(-1408.264892578125, -567.5278930664062, 27.21875),
|
||||||
new Vector3(-1681.6112060546875, -503.3702392578125, 34.79117965698242),
|
new Vector3(-1681.6112060546875, -503.3702392578125, 34.79117965698242),
|
||||||
@@ -83,11 +120,16 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
new Vector3(825.1477661132812, -1634.5733642578125, 27.521774291992188),
|
new Vector3(825.1477661132812, -1634.5733642578125, 27.521774291992188),
|
||||||
new Vector3(-105.38816833496094, -1683.646728515625, 26.19083023071289),
|
new Vector3(-105.38816833496094, -1683.646728515625, 26.19083023071289),
|
||||||
new Vector3(-655.6530151367188, -2209.579345703125, 2.98785924911499),
|
new Vector3(-655.6530151367188, -2209.579345703125, 2.98785924911499),
|
||||||
}.AsReadOnly();
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
private readonly IReadOnlyCollection<Vector3> Skill2Route1 = new List<Vector3>//Bus_Skill_2_Route_1
|
private readonly Dictionary<int, List<Vector3>> ROUTE_INTERMEDIATE = new Dictionary<int, List<Vector3>>
|
||||||
{
|
{
|
||||||
|
{ 1,
|
||||||
|
new List<Vector3>()
|
||||||
|
{
|
||||||
|
new Vector3(-601.733, -2049.285, 6.090),
|
||||||
new Vector3(-1042.6405029296875, -2718.244384765625, 9.493847846984863),
|
new Vector3(-1042.6405029296875, -2718.244384765625, 9.493847846984863),
|
||||||
new Vector3(832.205322265625, -11.559977531433105, 76.72754669189453),
|
new Vector3(832.205322265625, -11.559977531433105, 76.72754669189453),
|
||||||
new Vector3(2563.96826171875, 2633.976806640625, 35.279945373535156),
|
new Vector3(2563.96826171875, 2633.976806640625, 35.279945373535156),
|
||||||
@@ -97,9 +139,12 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
new Vector3(-3234.168701171875, 974.0481567382812, 10.890801429748535),
|
new Vector3(-3234.168701171875, 974.0481567382812, 10.890801429748535),
|
||||||
new Vector3(-1331.8995361328125, -1052.2794189453125, 5.4408793449401855),
|
new Vector3(-1331.8995361328125, -1052.2794189453125, 5.4408793449401855),
|
||||||
new Vector3(-647.2696533203125, -2215.64501953125, 2.989798069000244),
|
new Vector3(-647.2696533203125, -2215.64501953125, 2.989798069000244),
|
||||||
}.AsReadOnly();
|
}
|
||||||
private readonly IReadOnlyCollection<Vector3> Skill2Route2 = new List<Vector3>//Bus_Skill_2_Route_2
|
},
|
||||||
|
{ 2,
|
||||||
|
new List<Vector3>()
|
||||||
{
|
{
|
||||||
|
new Vector3(-601.733, -2049.285, 6.090),
|
||||||
new Vector3(1925.767333984375, 2614.566162109375, 46.16560363769531),
|
new Vector3(1925.767333984375, 2614.566162109375, 46.16560363769531),
|
||||||
new Vector3(299.0667419433594, 2642.93798828125, 44.60177993774414),
|
new Vector3(299.0667419433594, 2642.93798828125, 44.60177993774414),
|
||||||
new Vector3(1162.4556884765625, 1806.3663330078125, 74.3133773803711),
|
new Vector3(1162.4556884765625, 1806.3663330078125, 74.3133773803711),
|
||||||
@@ -107,9 +152,12 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
new Vector3(-524.4381103515625, -268.2084045410156, 35.28974533081055),
|
new Vector3(-524.4381103515625, -268.2084045410156, 35.28974533081055),
|
||||||
new Vector3(427.09521484375, -960.2006225585938, 29.13089942932129),
|
new Vector3(427.09521484375, -960.2006225585938, 29.13089942932129),
|
||||||
new Vector3(-567.5792846679688, -2212.6533203125, 5.859220504760742),
|
new Vector3(-567.5792846679688, -2212.6533203125, 5.859220504760742),
|
||||||
}.AsReadOnly();
|
}
|
||||||
private readonly IReadOnlyCollection<Vector3> Skill2Route3 = new List<Vector3>//Bus_Skill_2_Route_3
|
},
|
||||||
|
{ 3,
|
||||||
|
new List<Vector3>()
|
||||||
{
|
{
|
||||||
|
new Vector3(-601.733, -2049.285, 6.090),
|
||||||
new Vector3(-1855.54,153.604,79.0297),
|
new Vector3(-1855.54,153.604,79.0297),
|
||||||
new Vector3(-1538.72,1375.19,124.3),
|
new Vector3(-1538.72,1375.19,124.3),
|
||||||
new Vector3(-1101.74,2668.48,17.7363),
|
new Vector3(-1101.74,2668.48,17.7363),
|
||||||
@@ -117,9 +165,12 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
new Vector3(2566.1,396.879,107.463),
|
new Vector3(2566.1,396.879,107.463),
|
||||||
new Vector3(254.405,-982.937,28.274),
|
new Vector3(254.405,-982.937,28.274),
|
||||||
new Vector3(-562.68, -2203.85, 4.5),
|
new Vector3(-562.68, -2203.85, 4.5),
|
||||||
}.AsReadOnly();
|
}
|
||||||
private readonly IReadOnlyCollection<Vector3> Skill2Route4 = new List<Vector3>//Bus_Skill_2_Route_4
|
},
|
||||||
|
{ 4,
|
||||||
|
new List<Vector3>()
|
||||||
{
|
{
|
||||||
|
new Vector3(-601.733, -2049.285, 6.090),
|
||||||
new Vector3(-1037.8,-2716.02,12.7963),
|
new Vector3(-1037.8,-2716.02,12.7963),
|
||||||
new Vector3(1662.69,4849.72,40.9165),
|
new Vector3(1662.69,4849.72,40.9165),
|
||||||
new Vector3(57.8575,3735.46,38.7301),
|
new Vector3(57.8575,3735.46,38.7301),
|
||||||
@@ -129,11 +180,16 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
new Vector3(-3014.22,364.543,13.7242),
|
new Vector3(-3014.22,364.543,13.7242),
|
||||||
new Vector3(-1580.52,-652.24,28.5874),
|
new Vector3(-1580.52,-652.24,28.5874),
|
||||||
new Vector3(-578.954,-2224.8,4.75774),
|
new Vector3(-578.954,-2224.8,4.75774),
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
}.AsReadOnly();
|
private readonly Dictionary<int, List<Vector3>> ROUTE_PROFESSIONAL = new Dictionary<int, List<Vector3>>
|
||||||
private readonly IReadOnlyCollection<Vector3> Skill3Route1 = new List<Vector3>//Bus_Skill_3_Route_1
|
|
||||||
{
|
{
|
||||||
|
{ 1,
|
||||||
|
new List<Vector3>()
|
||||||
|
{
|
||||||
|
new Vector3(-601.733, -2049.285, 6.090),
|
||||||
new Vector3(-598.849365234375, -2053.087646484375, 5.8428778648376465),
|
new Vector3(-598.849365234375, -2053.087646484375, 5.8428778648376465),
|
||||||
new Vector3(-229.679931640625, -2049.821533203125, 27.384798049926758),
|
new Vector3(-229.679931640625, -2049.821533203125, 27.384798049926758),
|
||||||
new Vector3(-72.33480834960938, -615.8173217773438, 35.91234588623047),
|
new Vector3(-72.33480834960938, -615.8173217773438, 35.91234588623047),
|
||||||
@@ -152,10 +208,12 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
new Vector3(268.5604248046875, -2070.274169921875, 16.816179275512695),
|
new Vector3(268.5604248046875, -2070.274169921875, 16.816179275512695),
|
||||||
new Vector3(-147.51795959472656, -1974.3182373046875, 22.48438262939453),
|
new Vector3(-147.51795959472656, -1974.3182373046875, 22.48438262939453),
|
||||||
new Vector3(-569.0294189453125, -2210.80908203125, 5.571292877197266),
|
new Vector3(-569.0294189453125, -2210.80908203125, 5.571292877197266),
|
||||||
}.AsReadOnly();
|
}
|
||||||
private readonly IReadOnlyCollection<Vector3> Skill3Route2 = new List<Vector3>//Bus_Skill_3_Route_2
|
},
|
||||||
|
{ 2,
|
||||||
|
new List<Vector3>()
|
||||||
{
|
{
|
||||||
|
new Vector3(-601.733, -2049.285, 6.090),
|
||||||
new Vector3(-597.8766479492188, -2053.534423828125, 5.853154182434082),
|
new Vector3(-597.8766479492188, -2053.534423828125, 5.853154182434082),
|
||||||
new Vector3(-895.4871826171875, -2074.380126953125, 8.602267265319824),
|
new Vector3(-895.4871826171875, -2074.380126953125, 8.602267265319824),
|
||||||
new Vector3(-667.8001708984375, -1233.9366455078125, 10.274462699890137),
|
new Vector3(-667.8001708984375, -1233.9366455078125, 10.274462699890137),
|
||||||
@@ -168,9 +226,12 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
new Vector3(363.25042724609375, -1470.600830078125, 28.91864776611328),
|
new Vector3(363.25042724609375, -1470.600830078125, 28.91864776611328),
|
||||||
new Vector3(-200.07644653320312, -1941.02783203125, 27.382631301879883),
|
new Vector3(-200.07644653320312, -1941.02783203125, 27.382631301879883),
|
||||||
new Vector3(-605.2278442382812, -2087.974853515625, 5.752280235290527),
|
new Vector3(-605.2278442382812, -2087.974853515625, 5.752280235290527),
|
||||||
}.AsReadOnly();
|
}
|
||||||
private readonly IReadOnlyCollection<Vector3> Skill3Route3 = new List<Vector3>//Bus_Skill_3_Route_3
|
},
|
||||||
|
{ 3,
|
||||||
|
new List<Vector3>()
|
||||||
{
|
{
|
||||||
|
new Vector3(-601.733, -2049.285, 6.090),
|
||||||
new Vector3(-146.62071, -2178.8228, 9.194298),
|
new Vector3(-146.62071, -2178.8228, 9.194298),
|
||||||
new Vector3(14.580393, -1578.6385, 28.212185),
|
new Vector3(14.580393, -1578.6385, 28.212185),
|
||||||
new Vector3(222.91612, -1098.8556, 28.227453),
|
new Vector3(222.91612, -1098.8556, 28.227453),
|
||||||
@@ -181,95 +242,93 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
new Vector3(-166.23526, -1574.4166, 34.152023),
|
new Vector3(-166.23526, -1574.4166, 34.152023),
|
||||||
new Vector3(-60.337997, -1976.121, 15.486664),
|
new Vector3(-60.337997, -1976.121, 15.486664),
|
||||||
new Vector3(-599.1891, -2049.2695, 5.14637),
|
new Vector3(-599.1891, -2049.2695, 5.14637),
|
||||||
}.AsReadOnly();
|
}
|
||||||
private readonly IReadOnlyCollection<Vector3> Skill3Route4 = new List<Vector3>//Bus_Skill_3_Route_4
|
},
|
||||||
{
|
};
|
||||||
|
|
||||||
new Vector3(-562.68, -2203.85, 5.5),
|
|
||||||
}.AsReadOnly();
|
|
||||||
|
|
||||||
public BusDriverJob()
|
public BusDriverJob()
|
||||||
{
|
{
|
||||||
JobStart += BusDriverJob_JobStart;
|
JobStart += BusDriverJob_JobStart;
|
||||||
|
JobStop += BusDriverJob_JobStop;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BusDriverJob_JobStart(Player player)
|
private void BusDriverJob_JobStart(Player player)
|
||||||
{
|
{
|
||||||
/*List<String> listRouteTexts = new List<string>();
|
User user = player.GetUser();
|
||||||
List<String> listRouteTexts2 = new List<string>();
|
player.TriggerEvent("SERVER:StartBusJob", user.BusSkill);
|
||||||
List<String> listRouteTexts3 = new List<string>();
|
|
||||||
|
|
||||||
Vehicle veh = player.Vehicle;
|
|
||||||
|
|
||||||
if ((VehicleHash)veh.Model == VehicleHash.Bus)
|
|
||||||
{
|
|
||||||
listRouteTexts2.Add("Kurz 1");
|
|
||||||
listRouteTexts2.Add("Kurz 2"); ;
|
|
||||||
|
|
||||||
player.TriggerEvent("showBusRouteMenu", JsonConvert.SerializeObject(listRouteTexts2));
|
|
||||||
}
|
}
|
||||||
else if ((VehicleHash)veh.Model == VehicleHash.Tourbus)
|
|
||||||
|
private void BusDriverJob_JobStop(Player player)
|
||||||
{
|
{
|
||||||
listRouteTexts3.Add("Mittel 1");
|
if (!playerBusPair.ContainsKey(player))
|
||||||
player.TriggerEvent("showBusRouteMenu", JsonConvert.SerializeObject(listRouteTexts3));
|
return;
|
||||||
|
|
||||||
|
playerBusPair[player].Delete();
|
||||||
|
playerBusPair.Remove(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
[RemoteEvent("CLIENT:StartBusRoute")]
|
||||||
|
public void StartBusRoute(Player player, string type)
|
||||||
|
{
|
||||||
|
User user = player.GetUser();
|
||||||
|
if (type == INTERMEDIATE && user.BusSkill < SKILL_INTERMEDIATE) { player.TriggerEvent("MenuSelect:Error"); return; }
|
||||||
|
if (type == PROFESSIONAL && user.BusSkill < SKILL_PROFESSIONAL) { player.TriggerEvent("MenuSelect:Error"); return; }
|
||||||
|
|
||||||
|
List<Vector3> selectedRoute = new List<Vector3>();
|
||||||
|
Vehicle vehicle = null;
|
||||||
|
Vector3 spawnPoint = VEHICLE_SPAWNS[spawnIndex++ % VEHICLE_SPAWNS.Count];
|
||||||
|
|
||||||
|
if (playerRoutePair.ContainsKey(player.Name))
|
||||||
|
{
|
||||||
|
selectedRoute = playerRoutePair[player.Name];
|
||||||
|
if (ROUTE_BEGINNER.ContainsValue(selectedRoute))
|
||||||
|
vehicle = NAPI.Vehicle.CreateVehicle(VEHICLE_BEGINNER, spawnPoint, VEHICLE_HEADING, 111, 111, "JOB");
|
||||||
|
else if (ROUTE_INTERMEDIATE.ContainsValue(selectedRoute))
|
||||||
|
vehicle = NAPI.Vehicle.CreateVehicle(VEHICLE_INTERMEDIATE, spawnPoint, VEHICLE_HEADING, 111, 111, "JOB");
|
||||||
|
else if (ROUTE_PROFESSIONAL.ContainsValue(selectedRoute))
|
||||||
|
vehicle = NAPI.Vehicle.CreateVehicle(VEHICLE_PROFESSIONAL, spawnPoint, VEHICLE_HEADING, 111, 111, "JOB");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
listRouteTexts.Add("Lang 1");
|
Random random = new Random();
|
||||||
listRouteTexts.Add("Lang 2");
|
if (type == BEGINNER)
|
||||||
|
|
||||||
player.TriggerEvent("showBusRouteMenu", JsonConvert.SerializeObject(listRouteTexts));
|
|
||||||
}*/
|
|
||||||
/*if (player.GetUser().BusSkill < 300)
|
|
||||||
{
|
{
|
||||||
Random rnd = new Random();
|
selectedRoute = ROUTE_BEGINNER.GetValueOrDefault(random.Next(1, ROUTE_BEGINNER.Count));
|
||||||
int rroute = rnd.Next(1, 3);
|
vehicle = NAPI.Vehicle.CreateVehicle(VEHICLE_BEGINNER, spawnPoint, VEHICLE_HEADING, 111, 111, "JOB");
|
||||||
switch (rroute)
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
StartBusRoute(player, "Route1");
|
|
||||||
player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 1");
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
case 2:
|
else if (type == INTERMEDIATE)
|
||||||
{
|
{
|
||||||
StartBusRoute(player, "Route2");
|
selectedRoute = ROUTE_INTERMEDIATE.GetValueOrDefault(random.Next(1, ROUTE_INTERMEDIATE.Count));
|
||||||
player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 2");
|
vehicle = NAPI.Vehicle.CreateVehicle(VEHICLE_INTERMEDIATE, spawnPoint, VEHICLE_HEADING, 111, 111, "JOB");
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
else if (type == PROFESSIONAL)
|
||||||
}
|
|
||||||
if (player.GetUser().BusSkill > 300 && player.GetUser().BusSkill < 300)
|
|
||||||
{
|
{
|
||||||
Random rnd = new Random();
|
selectedRoute = ROUTE_PROFESSIONAL.GetValueOrDefault(random.Next(1, ROUTE_PROFESSIONAL.Count));
|
||||||
int rroute = rnd.Next(1, 3);
|
vehicle = NAPI.Vehicle.CreateVehicle(VEHICLE_PROFESSIONAL, spawnPoint, VEHICLE_HEADING, 111, 111, "JOB");
|
||||||
switch (rroute)
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
StartBusRoute(player, "Route3");
|
|
||||||
player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 3");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 2:
|
|
||||||
{
|
|
||||||
StartBusRoute(player, "Route4");
|
|
||||||
player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 4");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (player.GetUser().BusSkill >= 800)
|
|
||||||
{
|
|
||||||
StartBusRoute(player, "Route5");
|
|
||||||
player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 5");
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[RemoteEvent("startBusRoute")]
|
playerRoutePair.Add(player.Name, selectedRoute);
|
||||||
public void StartBusRoute(Player player, string type)
|
}
|
||||||
|
|
||||||
|
if (selectedRoute.Count is 0)
|
||||||
{
|
{
|
||||||
|
Console.WriteLine($"[ERROR:BUSJOB] Player {player.Name} has empty route Vector3 List.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (vehicle is null)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"[ERROR:BUSJOB] Player {player.Name} got no Vehicle set.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
player.SetIntoVehicle(vehicle.Handle, 0);
|
||||||
|
|
||||||
|
player.StartCheckPointRoute(selectedRoute, 0, MARKER_ID, MARKER_SIZE, MARKER_DIST, true, "BusInCheckpoint");
|
||||||
|
|
||||||
|
#region delete
|
||||||
|
|
||||||
|
/*
|
||||||
Vehicle veh = player.Vehicle;
|
Vehicle veh = player.Vehicle;
|
||||||
if (player.VehicleSeat == 0)
|
if (player.VehicleSeat == 0)
|
||||||
{
|
{
|
||||||
@@ -398,56 +457,30 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
player.TriggerEvent("CLIENT:SetDoorShut", 3, false);
|
player.TriggerEvent("CLIENT:SetDoorShut", 3, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*if (type == "Skill1Route1")
|
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill1Route1, 4000, 1, 7, 4, true, "busDriverJob");
|
|
||||||
}
|
}
|
||||||
if (type == "Skill1Route2")
|
*/
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill1Route2, 4000, 1, 7, 4, true, "busDriverJob");
|
#endregion delete
|
||||||
}
|
}
|
||||||
if (type == "Skill1Route3")
|
|
||||||
|
[RemoteEvent("BusInCheckpoint")]
|
||||||
|
public void BusInCheckpoint(Player player)
|
||||||
{
|
{
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill1Route3, 4000, 1, 7, 4, true, "busDriverJob");
|
if (!playerBusPair.ContainsKey(player) || !playerRoutePair.ContainsKey(player.Name))
|
||||||
}
|
return;
|
||||||
if (type == "Skill1Route4")
|
|
||||||
{
|
using var dbcontext = new DatabaseContext();
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill1Route4, 4000, 1, 7, 4, true, "busDriverJob");
|
|
||||||
}
|
User user = player.GetUser(dbcontext);
|
||||||
if (type == "Skill2Route1")
|
|
||||||
{
|
if (playerBusPair[player].Model is VEHICLE_BEGINNER)
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill2Route1, 4000, 1, 7, 4, true, "busDriverJob");
|
user.Wage += (WAGE_BEGINNER / playerRoutePair[player.Name].Count);
|
||||||
}
|
else if (playerBusPair[player].Model is VEHICLE_INTERMEDIATE)
|
||||||
if (type == "Skill2Route2")
|
user.Wage += (WAGE_INTERMEDIATE / playerRoutePair[player.Name].Count);
|
||||||
{
|
else if (playerBusPair[player].Model is VEHICLE_PROFESSIONAL)
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill2Route2, 4000, 1, 7, 4, true, "busDriverJob");
|
user.Wage += (WAGE_PROFESSIOAL / playerRoutePair[player.Name].Count);
|
||||||
}
|
|
||||||
if (type == "Skill2Route3")
|
dbcontext.SaveChanges();
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill2Route3, 4000, 1, 7, 4, true, "busDriverJob");
|
|
||||||
}
|
|
||||||
if (type == "Skill2Route4")
|
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill2Route4, 4000, 1, 7, 4, true, "busDriverJob");
|
|
||||||
}
|
|
||||||
if (type == "Skill3Route1")
|
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill3Route1, 4000, 1, 7, 4, true, "busDriverJob");
|
|
||||||
}
|
|
||||||
if (type == "Skill3Route2")
|
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill3Route2, 4000, 1, 7, 4, true, "busDriverJob");
|
|
||||||
}
|
|
||||||
if (type == "Skill3Route3")
|
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill3Route3, 4000, 1, 7, 4, true, "busDriverJob");
|
|
||||||
}
|
|
||||||
if (type == "Skill3Route4")
|
|
||||||
{
|
|
||||||
CheckPointHandle.StartCheckPointRoute(player, Skill3Route4, 4000, 1, 7, 4, true, "busDriverJob");
|
|
||||||
}*/
|
|
||||||
//player.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/StartJob", "wav", 50);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void payWage(Player jobber, int wage)
|
public static void payWage(Player jobber, int wage)
|
||||||
|
|||||||
@@ -4,16 +4,12 @@ using GTANetworkAPI;
|
|||||||
using ReallifeGamemode.Server.Extensions;
|
using ReallifeGamemode.Server.Extensions;
|
||||||
using ReallifeGamemode.Server.Job;
|
using ReallifeGamemode.Server.Job;
|
||||||
|
|
||||||
|
|
||||||
namespace ReallifeGamemode.Server.Util
|
namespace ReallifeGamemode.Server.Util
|
||||||
{
|
{
|
||||||
public class CheckPointHandle : Script
|
public static class CheckPointHandle
|
||||||
{
|
{
|
||||||
public int BusSkill1RouteVerdienst = 1000;
|
public static int PilotSkill1RouteVerdienst = 1100;
|
||||||
public int BusSkill2RouteVerdienst = 1300;
|
public static int PilotSkill2RouteVerdienst = 1500;
|
||||||
public int BusSkill3RouteVerdienst = 1600;
|
|
||||||
public int PilotSkill1RouteVerdienst = 1100;
|
|
||||||
public int PilotSkill2RouteVerdienst = 1500;
|
|
||||||
public static List<CheckPointListForPlayer> listHandle = new List<CheckPointListForPlayer>();
|
public static List<CheckPointListForPlayer> listHandle = new List<CheckPointListForPlayer>();
|
||||||
|
|
||||||
public static void DeleteCheckpoints(Player player)
|
public static void DeleteCheckpoints(Player player)
|
||||||
@@ -24,9 +20,8 @@ namespace ReallifeGamemode.Server.Util
|
|||||||
player.TriggerEvent("destroyCP");
|
player.TriggerEvent("destroyCP");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void StartCheckPointRoute(Player player, IEnumerable<Vector3> nListCps, int delay, int markerID, int markerSize, int markerDist, bool useVehicle, string nEvent)
|
public static void StartCheckPointRoute(this Player player, IEnumerable<Vector3> nListCps, int delay, int markerID, int markerSize, int markerDist, bool useVehicle, string nEvent)
|
||||||
{
|
{
|
||||||
|
|
||||||
RemovePlayerHandlerFromList(player);
|
RemovePlayerHandlerFromList(player);
|
||||||
CheckPointListForPlayer playerHandle = new CheckPointListForPlayer(player, nListCps, delay, markerID, markerSize, markerDist, useVehicle, nEvent);
|
CheckPointListForPlayer playerHandle = new CheckPointListForPlayer(player, nListCps, delay, markerID, markerSize, markerDist, useVehicle, nEvent);
|
||||||
playerHandle.DeleteCheckpoints();
|
playerHandle.DeleteCheckpoints();
|
||||||
@@ -42,7 +37,7 @@ namespace ReallifeGamemode.Server.Util
|
|||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RemovePlayerHandlerFromList(Player player)
|
public static void RemovePlayerHandlerFromList(this Player player)
|
||||||
{
|
{
|
||||||
CheckPointListForPlayer temp = null;
|
CheckPointListForPlayer temp = null;
|
||||||
for (int a = 0; a < listHandle.Count; a++)
|
for (int a = 0; a < listHandle.Count; a++)
|
||||||
@@ -55,6 +50,9 @@ namespace ReallifeGamemode.Server.Util
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#region delete
|
||||||
|
|
||||||
|
/*
|
||||||
[RemoteEvent("playerWaitsInCheckpoint")]
|
[RemoteEvent("playerWaitsInCheckpoint")]
|
||||||
public void PlayerWaitsInCheckpoint(Player user)
|
public void PlayerWaitsInCheckpoint(Player user)
|
||||||
{
|
{
|
||||||
@@ -105,10 +103,11 @@ namespace ReallifeGamemode.Server.Util
|
|||||||
/*NAPI.Task.Run(() =>
|
/*NAPI.Task.Run(() =>
|
||||||
{
|
{
|
||||||
veh.Position = new Vector3(veh.Position.X, veh.Position.Y, veh.Position.Z + 0.25);
|
veh.Position = new Vector3(veh.Position.X, veh.Position.Y, veh.Position.Z + 0.25);
|
||||||
}, delayTime: 500);*/
|
}, delayTime: 500);
|
||||||
NAPI.Task.Run(() =>
|
NAPI.Task.Run(() =>
|
||||||
{
|
{
|
||||||
veh.Position = new Vector3(veh.Position.X, veh.Position.Y, veh.Position.Z + 0.1);
|
veh.Position = private new Vector3(veh.Position.X, veh.Position.Y, veh.Position.Z + 0.1);
|
||||||
|
|
||||||
user.TriggerEvent("CLIENT:FreezeVehicle", veh);
|
user.TriggerEvent("CLIENT:FreezeVehicle", veh);
|
||||||
}, delayTime: 500);
|
}, delayTime: 500);
|
||||||
}
|
}
|
||||||
@@ -251,6 +250,9 @@ namespace ReallifeGamemode.Server.Util
|
|||||||
}
|
}
|
||||||
temp.NextCheckpoint();
|
temp.NextCheckpoint();
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endregion delete
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CheckPointListForPlayer
|
public class CheckPointListForPlayer
|
||||||
|
|||||||
Reference in New Issue
Block a user