diff --git a/ReallifeGamemode.Client/Jobs/BusRouteSelect.ts b/ReallifeGamemode.Client/Jobs/BusRouteSelect.ts index 90e0b33e..c280c7ee 100644 --- a/ReallifeGamemode.Client/Jobs/BusRouteSelect.ts +++ b/ReallifeGamemode.Client/Jobs/BusRouteSelect.ts @@ -19,38 +19,37 @@ let cancelItem = new UIMenuItem("Abbrechen", ""); cancelItem.BackColor = new Color(213, 0, 0); cancelItem.HighlightedBackColor = new Color(229, 57, 53); - export default function busRouteList(globalData: IGlobalData) { - var routeMenu: NativeUI.Menu; - var routeTexts; - var routeText; + var skillSelect; + var routeSelect; + var skill = 0; - mp.events.add('showBusRouteMenu', (listRoutes) => { + mp.events.add('SERVER:StartBusJob', (jobskill) => { + skill = jobskill; if (!globalData.InMenu) { - 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.AddItem(new UIMenuListItem("Route", "", new ItemsCollection(routeTexts))); + routeMenu.AddItem(new UIMenuListItem("Skill wählen", "", new ItemsCollection(skillSelect))); routeMenu.AddItem(sendItem); routeMenu.AddItem(cancelItem); routeMenu.Visible = true; - routeText = "Kurz 1"; + routeSelect = skillSelect[0]; routeMenu.ListChange.on((item, index) => { switch (item.Text) { - case "Route": - routeText = String(item.SelectedItem.DisplayText); + case "Skill wählen": + routeSelect = String(item.SelectedItem.DisplayText); break; } }); routeMenu.ItemSelect.on((item) => { if (item.Text === "Starten") { - mp.events.callRemote("startBusRoute", routeText); + mp.events.callRemote("CLIENT:StartBusRoute", routeSelect); routeMenu.Close(); globalData.InMenu = false; } 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); + }); } \ No newline at end of file diff --git a/ReallifeGamemode.Server/Job/BusDriverJob.cs b/ReallifeGamemode.Server/Job/BusDriverJob.cs index 617978c3..3f6ca06c 100644 --- a/ReallifeGamemode.Server/Job/BusDriverJob.cs +++ b/ReallifeGamemode.Server/Job/BusDriverJob.cs @@ -1,16 +1,13 @@ using System; using System.Collections.Generic; using GTANetworkAPI; -using Newtonsoft.Json; using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Database.Models; -using Microsoft.CodeAnalysis.CSharp.Syntax; using ReallifeGamemode.Server.Services; using ReallifeGamemode.Server.Managers; using ReallifeGamemode.Server.Util; using ReallifeGamemode.Database.Entities; - namespace ReallifeGamemode.Server.Job { public class BusDriverJob : JobBase @@ -19,257 +16,319 @@ namespace ReallifeGamemode.Server.Job public override string Name => "Busfahrer"; + public static Dictionary playerBusPair = new Dictionary(); + public static Dictionary> playerRoutePair = new Dictionary>(); private const int MARKER_DELAY = 4000; private const int MARKER_ID = 1; private const int MARKER_SIZE = 7; private const int MARKER_DIST = 6; 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 VEHICLE_SPAWNS = new List() + { + 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; - private readonly IReadOnlyCollection Skill1Route1 = new List//Bus_Skill_1_Route_1 + private readonly Dictionary> ROUTE_BEGINNER = new Dictionary>//Bus_Skill_1_Route_1 { - new Vector3(-1018.1577758789062, -2732.403564453125, 10.658967971801758), - new Vector3(-153.04013061523438, -2033.8385009765625, 19.712543487548828), - new Vector3(50.42457580566406, -1536.9090576171875, 26.184476852416992), - new Vector3(361.1451721191406, -1064.6044921875, 26.36113166809082), - new Vector3(119.01465606689453, -785.609619140625, 28.267763137817383), - new Vector3(-172.00689697265625, -815.9910888671875, 28.13607406616211), - new Vector3(-707.7088623046875, -826.9969482421875, 20.451000213623047), - new Vector3(-658.1038818359375, -1393.321533203125, 7.509778022766113), - new Vector3(-1018.1826171875, -2732.371826171875, 10.656649589538574), - new Vector3(-647.2696533203125, -2215.64501953125, 2.989798069000244), - }.AsReadOnly(); + { 1, + new List() + { + new Vector3(-601.733, -2049.285, 6.090), + new Vector3(-1018.1577758789062, -2732.403564453125, 10.658967971801758) , + new Vector3(-153.04013061523438, -2033.8385009765625, 19.712543487548828) , + new Vector3(50.42457580566406, -1536.9090576171875, 26.184476852416992) , + new Vector3(361.1451721191406, -1064.6044921875, 26.36113166809082) , + new Vector3(119.01465606689453, -785.609619140625, 28.267763137817383) , + new Vector3(-172.00689697265625, -815.9910888671875, 28.13607406616211) , + new Vector3(-707.7088623046875, -826.9969482421875, 20.451000213623047) , + new Vector3(-658.1038818359375, -1393.321533203125, 7.509778022766113) , + new Vector3(-1018.1826171875, -2732.371826171875, 10.656649589538574) , + new Vector3(-647.2696533203125, -2215.64501953125, 2.989798069000244) + } + }, + { 2, + new List() + { + new Vector3(-601.733, -2049.285, 6.090), + new Vector3(-567.6445922851562, -1233.4453125, 12.050300598144531), + new Vector3(-509.224609375, -668.373291015625, 30.02402877807617), + new Vector3(55.00559997558594, -749.8328247070312, 41.11421203613281), + new Vector3(-173.65509033203125, -152.5533905029297, 40.615516662597656), + new Vector3(-523.8310546875, -266.884033203125, 32.291507720947266), + new Vector3(-1167.646728515625, -400.75, 32.39745330810547), + new Vector3(-1408.329345703125, -567.8721923828125, 27.22767448425293), + new Vector3(-1213.3565673828125, -1214.755859375, 4.5853986740112305), + new Vector3(-746.8554077148438, -2372.227783203125, 11.740862846374512), + new Vector3(-660.7366333007812, -2206.03662109375, 2.988998889923096), + } + }, + { 3, + new List() + { + new Vector3(-601.733, -2049.285, 6.090), + new Vector3(423.4793395996094, -2143.4169921875, 15.23659896850586), + new Vector3(875.1618041992188, -1766.7913818359375, 26.780052185058594), + new Vector3(1166.110107421875, -1422.72265625, 31.477935791015625), + new Vector3(807.715087890625, -1356.7987060546875, 23.29298210144043), + new Vector3(785.9387817382812, -780.5958251953125, 23.333005905151367), + new Vector3(895.2793579101562, 55.24346923828125, 75.82550048828125), + new Vector3(775.8052368164062, 596.2352905273438, 122.77734375), + new Vector3(307.64422607421875, -762.0469360351562, 26.197702407836914), + new Vector3(-105.66091918945312, -1683.9630126953125, 26.190542221069336), + new Vector3(-644.0516967773438, -2218.673828125, 2.991928577423096), + } + }, + { 4, + new List() + { + new Vector3(-601.733, -2049.285, 6.090), + new Vector3(-694.1781616210938, -1199.3873291015625, 7.50633716583252), + new Vector3(-1408.264892578125, -567.5278930664062, 27.21875), + new Vector3(-1681.6112060546875, -503.3702392578125, 34.79117965698242), + new Vector3(-1427.05712890625, -90.17198181152344, 49.015113830566406), + new Vector3(-686.4015502929688, -374.3297424316406, 31.17094802856445), + new Vector3(-509.60107421875, -668.41796875, 30.02873229980469), + new Vector3(234.6927032470703, -857.5449829101562, 26.747934341430664), + new Vector3(787.8258666992188, -1364.9345703125, 23.424083709716797), + new Vector3(825.1477661132812, -1634.5733642578125, 27.521774291992188), + new Vector3(-105.38816833496094, -1683.646728515625, 26.19083023071289), + new Vector3(-655.6530151367188, -2209.579345703125, 2.98785924911499), + } + }, + }; - private readonly IReadOnlyCollection Skill1Route2 = new List//Bus_Skill_1_Route_2 + private readonly Dictionary> ROUTE_INTERMEDIATE = new Dictionary> { - new Vector3(-567.6445922851562, -1233.4453125, 12.050300598144531), - new Vector3(-509.224609375, -668.373291015625, 30.02402877807617), - new Vector3(55.00559997558594, -749.8328247070312, 41.11421203613281), - new Vector3(-173.65509033203125, -152.5533905029297, 40.615516662597656), - new Vector3(-523.8310546875, -266.884033203125, 32.291507720947266), - new Vector3(-1167.646728515625, -400.75, 32.39745330810547), - new Vector3(-1408.329345703125, -567.8721923828125, 27.22767448425293), - new Vector3(-1213.3565673828125, -1214.755859375, 4.5853986740112305), - new Vector3(-746.8554077148438, -2372.227783203125, 11.740862846374512), - new Vector3(-660.7366333007812, -2206.03662109375, 2.988998889923096), - }.AsReadOnly(); + { 1, + new List() + { + new Vector3(-601.733, -2049.285, 6.090), + new Vector3(-1042.6405029296875, -2718.244384765625, 9.493847846984863), + new Vector3(832.205322265625, -11.559977531433105, 76.72754669189453), + new Vector3(2563.96826171875, 2633.976806640625, 35.279945373535156), + new Vector3(1684.845947265625, 6402.1533203125, 28.877294540405273), + new Vector3(-170.82965087890625, 6374.9560546875, 28.695466995239258), + new Vector3(-1524.5302734375, 4998.1220703125, 60.54846954345703), + new Vector3(-3234.168701171875, 974.0481567382812, 10.890801429748535), + new Vector3(-1331.8995361328125, -1052.2794189453125, 5.4408793449401855), + new Vector3(-647.2696533203125, -2215.64501953125, 2.989798069000244), + } + }, + { 2, + new List() + { + new Vector3(-601.733, -2049.285, 6.090), + new Vector3(1925.767333984375, 2614.566162109375, 46.16560363769531), + new Vector3(299.0667419433594, 2642.93798828125, 44.60177993774414), + new Vector3(1162.4556884765625, 1806.3663330078125, 74.3133773803711), + new Vector3(1297.0450439453125, 1105.742919921875, 105.6315689086914), + new Vector3(-524.4381103515625, -268.2084045410156, 35.28974533081055), + new Vector3(427.09521484375, -960.2006225585938, 29.13089942932129), + new Vector3(-567.5792846679688, -2212.6533203125, 5.859220504760742), + } + }, + { 3, + new List() + { + new Vector3(-601.733, -2049.285, 6.090), + new Vector3(-1855.54,153.604,79.0297), + new Vector3(-1538.72,1375.19,124.3), + new Vector3(-1101.74,2668.48,17.7363), + new Vector3(1964.14,3718.04,31.2255), + new Vector3(2566.1,396.879,107.463), + new Vector3(254.405,-982.937,28.274), + new Vector3(-562.68, -2203.85, 4.5), + } + }, + { 4, + new List() + { + new Vector3(-601.733, -2049.285, 6.090), + new Vector3(-1037.8,-2716.02,12.7963), + new Vector3(1662.69,4849.72,40.9165), + new Vector3(57.8575,3735.46,38.7301), + new Vector3(-1109.48,2681,17.8602), + new Vector3(-2536.35,2322.65,32.0599), + new Vector3(-3232.01,961.997,12.1515), + new Vector3(-3014.22,364.543,13.7242), + new Vector3(-1580.52,-652.24,28.5874), + new Vector3(-578.954,-2224.8,4.75774), + } + }, + }; - private readonly IReadOnlyCollection Skill1Route3 = new List//Bus_Skill_1_Route_3 + private readonly Dictionary> ROUTE_PROFESSIONAL = new Dictionary> { - new Vector3(423.4793395996094, -2143.4169921875, 15.23659896850586), - new Vector3(875.1618041992188, -1766.7913818359375, 26.780052185058594), - new Vector3(1166.110107421875, -1422.72265625, 31.477935791015625), - new Vector3(807.715087890625, -1356.7987060546875, 23.29298210144043), - new Vector3(785.9387817382812, -780.5958251953125, 23.333005905151367), - new Vector3(895.2793579101562, 55.24346923828125, 75.82550048828125), - new Vector3(775.8052368164062, 596.2352905273438, 122.77734375), - new Vector3(307.64422607421875, -762.0469360351562, 26.197702407836914), - new Vector3(-105.66091918945312, -1683.9630126953125, 26.190542221069336), - new Vector3(-644.0516967773438, -2218.673828125, 2.991928577423096), - }.AsReadOnly(); - - private readonly IReadOnlyCollection Skill1Route4 = new List//Bus_Skill_1_Route_4 - { - - new Vector3(-694.1781616210938, -1199.3873291015625, 7.50633716583252), - new Vector3(-1408.264892578125, -567.5278930664062, 27.21875), - new Vector3(-1681.6112060546875, -503.3702392578125, 34.79117965698242), - new Vector3(-1427.05712890625, -90.17198181152344, 49.015113830566406), - new Vector3(-686.4015502929688, -374.3297424316406, 31.17094802856445), - new Vector3(-509.60107421875, -668.41796875, 30.02873229980469), - new Vector3(234.6927032470703, -857.5449829101562, 26.747934341430664), - new Vector3(787.8258666992188, -1364.9345703125, 23.424083709716797), - new Vector3(825.1477661132812, -1634.5733642578125, 27.521774291992188), - new Vector3(-105.38816833496094, -1683.646728515625, 26.19083023071289), - new Vector3(-655.6530151367188, -2209.579345703125, 2.98785924911499), - }.AsReadOnly(); - - private readonly IReadOnlyCollection Skill2Route1 = new List//Bus_Skill_2_Route_1 - { - - new Vector3(-1042.6405029296875, -2718.244384765625, 9.493847846984863), - new Vector3(832.205322265625, -11.559977531433105, 76.72754669189453), - new Vector3(2563.96826171875, 2633.976806640625, 35.279945373535156), - new Vector3(1684.845947265625, 6402.1533203125, 28.877294540405273), - new Vector3(-170.82965087890625, 6374.9560546875, 28.695466995239258), - new Vector3(-1524.5302734375, 4998.1220703125, 60.54846954345703), - new Vector3(-3234.168701171875, 974.0481567382812, 10.890801429748535), - new Vector3(-1331.8995361328125, -1052.2794189453125, 5.4408793449401855), - new Vector3(-647.2696533203125, -2215.64501953125, 2.989798069000244), - }.AsReadOnly(); - private readonly IReadOnlyCollection Skill2Route2 = new List//Bus_Skill_2_Route_2 - { - new Vector3(1925.767333984375, 2614.566162109375, 46.16560363769531), - new Vector3(299.0667419433594, 2642.93798828125, 44.60177993774414), - new Vector3(1162.4556884765625, 1806.3663330078125, 74.3133773803711), - new Vector3(1297.0450439453125, 1105.742919921875, 105.6315689086914), - new Vector3(-524.4381103515625, -268.2084045410156, 35.28974533081055), - new Vector3(427.09521484375, -960.2006225585938, 29.13089942932129), - new Vector3(-567.5792846679688, -2212.6533203125, 5.859220504760742), - }.AsReadOnly(); - private readonly IReadOnlyCollection Skill2Route3 = new List//Bus_Skill_2_Route_3 - { - new Vector3(-1855.54,153.604,79.0297), - new Vector3(-1538.72,1375.19,124.3), - new Vector3(-1101.74,2668.48,17.7363), - new Vector3(1964.14,3718.04,31.2255), - new Vector3(2566.1,396.879,107.463), - new Vector3(254.405,-982.937,28.274), - new Vector3(-562.68, -2203.85, 4.5), - }.AsReadOnly(); - private readonly IReadOnlyCollection Skill2Route4 = new List//Bus_Skill_2_Route_4 - { - new Vector3(-1037.8,-2716.02,12.7963), - new Vector3(1662.69,4849.72,40.9165), - new Vector3(57.8575,3735.46,38.7301), - new Vector3(-1109.48,2681,17.8602), - new Vector3(-2536.35,2322.65,32.0599), - new Vector3(-3232.01,961.997,12.1515), - new Vector3(-3014.22,364.543,13.7242), - new Vector3(-1580.52,-652.24,28.5874), - new Vector3(-578.954,-2224.8,4.75774), - - }.AsReadOnly(); - private readonly IReadOnlyCollection Skill3Route1 = new List//Bus_Skill_3_Route_1 - { - - new Vector3(-598.849365234375, -2053.087646484375, 5.8428778648376465), - new Vector3(-229.679931640625, -2049.821533203125, 27.384798049926758), - new Vector3(-72.33480834960938, -615.8173217773438, 35.91234588623047), - new Vector3(-176.9166717529297, -153.85665893554688, 43.38493728637695), - new Vector3(-508.5746765136719, -261.1121826171875, 35.247962951660156), - new Vector3(-1396.5457763671875, 51.69581604003906, 53.21350860595703), - new Vector3(-1911.845458984375, 205.62884521484375, 84.06185150146484), - new Vector3(-1675.4029541015625, 488.7856140136719, 128.6395721435547), - new Vector3(-995.8155517578125, 589.4381713867188, 102.18698120117188), - new Vector3(-314.6571350097656, 451.9184875488281, 107.99801635742188), - new Vector3(211.09194946289062, 350.1848449707031, 105.41163635253906), - new Vector3(599.4515380859375, 626.0756225585938, 128.6754608154297), - new Vector3(969.324462890625, 164.03329467773438, 80.59388732910156), - new Vector3(1069.521240234375, -763.7572631835938, 57.43597412109375), - new Vector3(1421.075927734375, -1854.2821044921875, 70.56175994873047), - new Vector3(268.5604248046875, -2070.274169921875, 16.816179275512695), - new Vector3(-147.51795959472656, -1974.3182373046875, 22.48438262939453), - new Vector3(-569.0294189453125, -2210.80908203125, 5.571292877197266), - }.AsReadOnly(); - private readonly IReadOnlyCollection Skill3Route2 = new List//Bus_Skill_3_Route_2 - { - - new Vector3(-597.8766479492188, -2053.534423828125, 5.853154182434082), - new Vector3(-895.4871826171875, -2074.380126953125, 8.602267265319824), - new Vector3(-667.8001708984375, -1233.9366455078125, 10.274462699890137), - new Vector3(-1349.004150390625, -1119.2432861328125, 4.00660514831543), - new Vector3(-2127.448974609375, -333.7845153808594, 13.013818740844727), - new Vector3(-1426.419189453125, -90.23416137695312, 51.81801223754883), - new Vector3(-827.4555053710938, -235.72817993164062, 36.84095764160156), - new Vector3(-558.2310791015625, -161.801513671875, 37.93125534057617), - new Vector3(220.4048309326172, -852.0598754882812, 29.874643325805664), - new Vector3(363.25042724609375, -1470.600830078125, 28.91864776611328), - new Vector3(-200.07644653320312, -1941.02783203125, 27.382631301879883), - new Vector3(-605.2278442382812, -2087.974853515625, 5.752280235290527), - }.AsReadOnly(); - private readonly IReadOnlyCollection Skill3Route3 = new List//Bus_Skill_3_Route_3 - { - new Vector3(-146.62071, -2178.8228, 9.194298), - new Vector3(14.580393, -1578.6385, 28.212185), - new Vector3(222.91612, -1098.8556, 28.227453), - new Vector3(246.44946, -648.45496, 38.420746), - new Vector3(102.181, -298.95276, 45.04399), - new Vector3(-104.91002, -606.26013, 35.06103), - new Vector3(-288.1007, -1204.5107, 23.403156), - new Vector3(-166.23526, -1574.4166, 34.152023), - new Vector3(-60.337997, -1976.121, 15.486664), - new Vector3(-599.1891, -2049.2695, 5.14637), - }.AsReadOnly(); - private readonly IReadOnlyCollection Skill3Route4 = new List//Bus_Skill_3_Route_4 - { - - new Vector3(-562.68, -2203.85, 5.5), - }.AsReadOnly(); + { 1, + new List() + { + new Vector3(-601.733, -2049.285, 6.090), + new Vector3(-598.849365234375, -2053.087646484375, 5.8428778648376465), + new Vector3(-229.679931640625, -2049.821533203125, 27.384798049926758), + new Vector3(-72.33480834960938, -615.8173217773438, 35.91234588623047), + new Vector3(-176.9166717529297, -153.85665893554688, 43.38493728637695), + new Vector3(-508.5746765136719, -261.1121826171875, 35.247962951660156), + new Vector3(-1396.5457763671875, 51.69581604003906, 53.21350860595703), + new Vector3(-1911.845458984375, 205.62884521484375, 84.06185150146484), + new Vector3(-1675.4029541015625, 488.7856140136719, 128.6395721435547), + new Vector3(-995.8155517578125, 589.4381713867188, 102.18698120117188), + new Vector3(-314.6571350097656, 451.9184875488281, 107.99801635742188), + new Vector3(211.09194946289062, 350.1848449707031, 105.41163635253906), + new Vector3(599.4515380859375, 626.0756225585938, 128.6754608154297), + new Vector3(969.324462890625, 164.03329467773438, 80.59388732910156), + new Vector3(1069.521240234375, -763.7572631835938, 57.43597412109375), + new Vector3(1421.075927734375, -1854.2821044921875, 70.56175994873047), + new Vector3(268.5604248046875, -2070.274169921875, 16.816179275512695), + new Vector3(-147.51795959472656, -1974.3182373046875, 22.48438262939453), + new Vector3(-569.0294189453125, -2210.80908203125, 5.571292877197266), + } + }, + { 2, + new List() + { + new Vector3(-601.733, -2049.285, 6.090), + new Vector3(-597.8766479492188, -2053.534423828125, 5.853154182434082), + new Vector3(-895.4871826171875, -2074.380126953125, 8.602267265319824), + new Vector3(-667.8001708984375, -1233.9366455078125, 10.274462699890137), + new Vector3(-1349.004150390625, -1119.2432861328125, 4.00660514831543), + new Vector3(-2127.448974609375, -333.7845153808594, 13.013818740844727), + new Vector3(-1426.419189453125, -90.23416137695312, 51.81801223754883), + new Vector3(-827.4555053710938, -235.72817993164062, 36.84095764160156), + new Vector3(-558.2310791015625, -161.801513671875, 37.93125534057617), + new Vector3(220.4048309326172, -852.0598754882812, 29.874643325805664), + new Vector3(363.25042724609375, -1470.600830078125, 28.91864776611328), + new Vector3(-200.07644653320312, -1941.02783203125, 27.382631301879883), + new Vector3(-605.2278442382812, -2087.974853515625, 5.752280235290527), + } + }, + { 3, + new List() + { + new Vector3(-601.733, -2049.285, 6.090), + new Vector3(-146.62071, -2178.8228, 9.194298), + new Vector3(14.580393, -1578.6385, 28.212185), + new Vector3(222.91612, -1098.8556, 28.227453), + new Vector3(246.44946, -648.45496, 38.420746), + new Vector3(102.181, -298.95276, 45.04399), + new Vector3(-104.91002, -606.26013, 35.06103), + new Vector3(-288.1007, -1204.5107, 23.403156), + new Vector3(-166.23526, -1574.4166, 34.152023), + new Vector3(-60.337997, -1976.121, 15.486664), + new Vector3(-599.1891, -2049.2695, 5.14637), + } + }, + }; public BusDriverJob() { JobStart += BusDriverJob_JobStart; + JobStop += BusDriverJob_JobStop; } private void BusDriverJob_JobStart(Player player) { - /*List listRouteTexts = new List(); - List listRouteTexts2 = new List(); - List listRouteTexts3 = new List(); + User user = player.GetUser(); + player.TriggerEvent("SERVER:StartBusJob", user.BusSkill); + } - Vehicle veh = player.Vehicle; + private void BusDriverJob_JobStop(Player player) + { + if (!playerBusPair.ContainsKey(player)) + return; - if ((VehicleHash)veh.Model == VehicleHash.Bus) + 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 selectedRoute = new List(); + Vehicle vehicle = null; + Vector3 spawnPoint = VEHICLE_SPAWNS[spawnIndex++ % VEHICLE_SPAWNS.Count]; + + if (playerRoutePair.ContainsKey(player.Name)) { - listRouteTexts2.Add("Kurz 1"); - listRouteTexts2.Add("Kurz 2"); ; - - player.TriggerEvent("showBusRouteMenu", JsonConvert.SerializeObject(listRouteTexts2)); - } - else if ((VehicleHash)veh.Model == VehicleHash.Tourbus) - { - listRouteTexts3.Add("Mittel 1"); - player.TriggerEvent("showBusRouteMenu", JsonConvert.SerializeObject(listRouteTexts3)); + 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 { - listRouteTexts.Add("Lang 1"); - listRouteTexts.Add("Lang 2"); - - player.TriggerEvent("showBusRouteMenu", JsonConvert.SerializeObject(listRouteTexts)); - }*/ - /*if (player.GetUser().BusSkill < 300) - { - Random rnd = new Random(); - int rroute = rnd.Next(1, 3); - switch (rroute) + Random random = new Random(); + if (type == BEGINNER) { - case 1: - { - StartBusRoute(player, "Route1"); - player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 1"); - break; - } - case 2: - { - StartBusRoute(player, "Route2"); - player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 2"); - break; - } + selectedRoute = ROUTE_BEGINNER.GetValueOrDefault(random.Next(1, ROUTE_BEGINNER.Count)); + vehicle = NAPI.Vehicle.CreateVehicle(VEHICLE_BEGINNER, spawnPoint, VEHICLE_HEADING, 111, 111, "JOB"); } - } - if (player.GetUser().BusSkill > 300 && player.GetUser().BusSkill < 300) - { - Random rnd = new Random(); - int rroute = rnd.Next(1, 3); - switch (rroute) + else if (type == INTERMEDIATE) { - 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; - } + selectedRoute = ROUTE_INTERMEDIATE.GetValueOrDefault(random.Next(1, ROUTE_INTERMEDIATE.Count)); + vehicle = NAPI.Vehicle.CreateVehicle(VEHICLE_INTERMEDIATE, spawnPoint, VEHICLE_HEADING, 111, 111, "JOB"); + } + else if (type == PROFESSIONAL) + { + selectedRoute = ROUTE_PROFESSIONAL.GetValueOrDefault(random.Next(1, ROUTE_PROFESSIONAL.Count)); + vehicle = NAPI.Vehicle.CreateVehicle(VEHICLE_PROFESSIONAL, spawnPoint, VEHICLE_HEADING, 111, 111, "JOB"); } - } - if (player.GetUser().BusSkill >= 800) - { - StartBusRoute(player, "Route5"); - player.SendChatMessage("~y~Job: ~w~Route wurde gesetzt: ~g~Route 5"); - }*/ - } - [RemoteEvent("startBusRoute")] - public void StartBusRoute(Player player, string type) - { + playerRoutePair.Add(player.Name, selectedRoute); + } + + 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; if (player.VehicleSeat == 0) { @@ -398,56 +457,30 @@ namespace ReallifeGamemode.Server.Job 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"); - } - if (type == "Skill1Route3") - { - CheckPointHandle.StartCheckPointRoute(player, Skill1Route3, 4000, 1, 7, 4, true, "busDriverJob"); - } - if (type == "Skill1Route4") - { - CheckPointHandle.StartCheckPointRoute(player, Skill1Route4, 4000, 1, 7, 4, true, "busDriverJob"); - } - if (type == "Skill2Route1") - { - CheckPointHandle.StartCheckPointRoute(player, Skill2Route1, 4000, 1, 7, 4, true, "busDriverJob"); - } - if (type == "Skill2Route2") - { - CheckPointHandle.StartCheckPointRoute(player, Skill2Route2, 4000, 1, 7, 4, true, "busDriverJob"); - } - if (type == "Skill2Route3") - { - 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); } + */ + + #endregion delete + } + + [RemoteEvent("BusInCheckpoint")] + public void BusInCheckpoint(Player player) + { + if (!playerBusPair.ContainsKey(player) || !playerRoutePair.ContainsKey(player.Name)) + return; + + using var dbcontext = new DatabaseContext(); + + User user = player.GetUser(dbcontext); + + if (playerBusPair[player].Model is VEHICLE_BEGINNER) + user.Wage += (WAGE_BEGINNER / playerRoutePair[player.Name].Count); + else if (playerBusPair[player].Model is VEHICLE_INTERMEDIATE) + user.Wage += (WAGE_INTERMEDIATE / playerRoutePair[player.Name].Count); + else if (playerBusPair[player].Model is VEHICLE_PROFESSIONAL) + user.Wage += (WAGE_PROFESSIOAL / playerRoutePair[player.Name].Count); + + dbcontext.SaveChanges(); } public static void payWage(Player jobber, int wage) @@ -588,7 +621,7 @@ namespace ReallifeGamemode.Server.Job break; } case 2: - { + { c.StartBusRoute(player, "Skill2Route2"); player.SendChatMessage("~y~Job: ~w~Eine neue Route wurde gesetzt: ~g~Route 2"); break; diff --git a/ReallifeGamemode.Server/Util/CheckPointHandle.cs b/ReallifeGamemode.Server/Util/CheckPointHandle.cs index 1d8aa46f..3b3e0d62 100644 --- a/ReallifeGamemode.Server/Util/CheckPointHandle.cs +++ b/ReallifeGamemode.Server/Util/CheckPointHandle.cs @@ -4,16 +4,12 @@ using GTANetworkAPI; using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Job; - namespace ReallifeGamemode.Server.Util { - public class CheckPointHandle : Script + public static class CheckPointHandle { - public int BusSkill1RouteVerdienst = 1000; - public int BusSkill2RouteVerdienst = 1300; - public int BusSkill3RouteVerdienst = 1600; - public int PilotSkill1RouteVerdienst = 1100; - public int PilotSkill2RouteVerdienst = 1500; + public static int PilotSkill1RouteVerdienst = 1100; + public static int PilotSkill2RouteVerdienst = 1500; public static List listHandle = new List(); public static void DeleteCheckpoints(Player player) @@ -24,9 +20,8 @@ namespace ReallifeGamemode.Server.Util player.TriggerEvent("destroyCP"); } - public static void StartCheckPointRoute(Player player, IEnumerable nListCps, int delay, int markerID, int markerSize, int markerDist, bool useVehicle, string nEvent) + public static void StartCheckPointRoute(this Player player, IEnumerable nListCps, int delay, int markerID, int markerSize, int markerDist, bool useVehicle, string nEvent) { - RemovePlayerHandlerFromList(player); CheckPointListForPlayer playerHandle = new CheckPointListForPlayer(player, nListCps, delay, markerID, markerSize, markerDist, useVehicle, nEvent); 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; for (int a = 0; a < listHandle.Count; a++) @@ -55,6 +50,9 @@ namespace ReallifeGamemode.Server.Util } } + #region delete + + /* [RemoteEvent("playerWaitsInCheckpoint")] public void PlayerWaitsInCheckpoint(Player user) { @@ -105,153 +103,157 @@ namespace ReallifeGamemode.Server.Util /*NAPI.Task.Run(() => { veh.Position = new Vector3(veh.Position.X, veh.Position.Y, veh.Position.Z + 0.25); - }, delayTime: 500);*/ - NAPI.Task.Run(() => + }, delayTime: 500); + NAPI.Task.Run(() => { - veh.Position = new Vector3(veh.Position.X, veh.Position.Y, veh.Position.Z + 0.1); - user.TriggerEvent("CLIENT:FreezeVehicle", veh); + veh.Position = private new Vector3(veh.Position.X, veh.Position.Y, veh.Position.Z + 0.1); + + user.TriggerEvent("CLIENT:FreezeVehicle", veh); }, delayTime: 500); } } } public static void BusCheckpoint(Player user) +{ + if (!user.IsInVehicle || user.VehicleSeat != 0) return; + Vehicle veh = user.Vehicle; + if ((VehicleHash)veh.Model == VehicleHash.Bus) + { + user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AbfahrtHaltestelleBus", "wav", 25); + user.TriggerEvent("CLIENT:SetDoorShutDelayed", 0, false, 1850); + user.TriggerEvent("CLIENT:SetDoorShutDelayed", 1, false, 1850); + user.TriggerEvent("CLIENT:SetDoorShutDelayed", 2, false, 1850); + user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 1850); + user.TriggerEvent("CLIENT:SetDoorShutDelayed", 0, false, 1850); + NAPI.Task.Run(() => { - if (!user.IsInVehicle || user.VehicleSeat != 0) return; - Vehicle veh = user.Vehicle; - if ((VehicleHash)veh.Model == VehicleHash.Bus) - { - user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AbfahrtHaltestelleBus", "wav", 25); - user.TriggerEvent("CLIENT:SetDoorShutDelayed", 0, false, 1850); - user.TriggerEvent("CLIENT:SetDoorShutDelayed", 1, false, 1850); - user.TriggerEvent("CLIENT:SetDoorShutDelayed", 2, false, 1850); - user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 1850); - user.TriggerEvent("CLIENT:SetDoorShutDelayed", 0, false, 1850); - NAPI.Task.Run(() => - { - user.TriggerEvent("CLIENT:UnFreezeVehicle", veh); - }, delayTime: 1850); - } - if ((VehicleHash)veh.Model == VehicleHash.Coach) - { - user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AbfahrtHaltestelleCoach", "wav", 35); - user.TriggerEvent("CLIENT:SetDoorShutDelayed", 0, false, 1000); - NAPI.Task.Run(() => - { - user.TriggerEvent("CLIENT:UnFreezeVehicle", veh); - }, delayTime: 1000); - } - if ((VehicleHash)veh.Model == VehicleHash.Tourbus) - { - user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AbfahrtHaltestelleTourbus", "wav", 25); - user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 2600); - user.TriggerEvent("CLIENT:SetDoorShutDelayed", 2, false, 2600); - user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 2600); - NAPI.Task.Run(() => - { - user.TriggerEvent("CLIENT:UnFreezeVehicle", veh); - }, delayTime: 2600); - } - //user.TriggerEvent("CLIENT:UnFreezeVehicle", veh); - } + user.TriggerEvent("CLIENT:UnFreezeVehicle", veh); + }, delayTime: 1850); + } + if ((VehicleHash)veh.Model == VehicleHash.Coach) + { + user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AbfahrtHaltestelleCoach", "wav", 35); + user.TriggerEvent("CLIENT:SetDoorShutDelayed", 0, false, 1000); + NAPI.Task.Run(() => + { + user.TriggerEvent("CLIENT:UnFreezeVehicle", veh); + }, delayTime: 1000); + } + if ((VehicleHash)veh.Model == VehicleHash.Tourbus) + { + user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AbfahrtHaltestelleTourbus", "wav", 25); + user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 2600); + user.TriggerEvent("CLIENT:SetDoorShutDelayed", 2, false, 2600); + user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 2600); + NAPI.Task.Run(() => + { + user.TriggerEvent("CLIENT:UnFreezeVehicle", veh); + }, delayTime: 2600); + } + //user.TriggerEvent("CLIENT:UnFreezeVehicle", veh); +} - [RemoteEvent("playerInCheckpoint")] - public void PlayerInCheckpoint(Player user) +[RemoteEvent("playerInCheckpoint")] +public void PlayerInCheckpoint(Player user) +{ + CheckPointListForPlayer temp = null; + for (int a = 0; a < listHandle.Count; a++) + { + temp = listHandle[a]; + if (temp.player == user) { - CheckPointListForPlayer temp = null; - for (int a = 0; a < listHandle.Count; a++) - { - temp = listHandle[a]; - if (temp.player == user) - { - break; - } - } - if (temp.LastCheckpoint != 1) - { - Job.JobBase job = Managers.JobManager.GetJob(user.GetUser().JobId ?? -1); - if (job?.GetUsersInJob().Contains(user) ?? false) - { - if (user.GetUser().JobId == 3) - { - if (temp.checkPointsDone == 2) - { - if (user.GetData("Route") == "Skill1Route1" || user.GetData("Route") == "Skill1Route2" || user.GetData("Route") == "Skill1Route3") - { - PilotJob.payWage(user, PilotSkill1RouteVerdienst / temp.list.Count()); - PilotJob.payWage(user, PilotSkill1RouteVerdienst / temp.list.Count()); - } - if (user.GetData("Route") == "Skill2Route1" || user.GetData("Route") == "Skill2Route2" || user.GetData("Route") == "Skill2Route3") - { - PilotJob.payWage(user, PilotSkill2RouteVerdienst / temp.list.Count()); - PilotJob.payWage(user, PilotSkill2RouteVerdienst / temp.list.Count()); - } - } - if (temp.checkPointsDone > 2) - { - if (user.GetData("Route") == "Skill1Route1" || user.GetData("Route") == "Skill1Route2" || user.GetData("Route") == "Skill1Route3") - { - PilotJob.payWage(user, PilotSkill1RouteVerdienst / temp.list.Count()); - } - if (user.GetData("Route") == "Skill2Route1" || user.GetData("Route") == "Skill2Route2" || user.GetData("Route") == "Skill2Route3") - { - PilotJob.payWage(user, PilotSkill2RouteVerdienst / temp.list.Count()); - } - } - //PilotJob.payWage(user, 100); - } - if (user.GetUser().JobId == 4) - { - if (temp.checkPointsDone == 2) - { - if (user.GetData("Route") == "Skill1Route1" || user.GetData("Route") == "Skill1Route2" || user.GetData("Route") == "Skill1Route3" || user.GetData("Route") == "Skill1Route4") - { - BusDriverJob.payWage(user, BusSkill1RouteVerdienst / temp.list.Count()); - BusDriverJob.payWage(user, BusSkill1RouteVerdienst / temp.list.Count()); - } - if (user.GetData("Route") == "Skill2Route1" || user.GetData("Route") == "Skill2Route2" || user.GetData("Route") == "Skill2Route3" || user.GetData("Route") == "Skill2Route4") - { - BusDriverJob.payWage(user, BusSkill2RouteVerdienst / temp.list.Count()); - BusDriverJob.payWage(user, BusSkill2RouteVerdienst / temp.list.Count()); - } - if (user.GetData("Route") == "Skill3Route1" || user.GetData("Route") == "Skill3Route2" || user.GetData("Route") == "Skill3Route3" || user.GetData("Route") == "Skill3Route4") - { - BusDriverJob.payWage(user, BusSkill3RouteVerdienst / temp.list.Count()); - BusDriverJob.payWage(user, BusSkill3RouteVerdienst / temp.list.Count()); - } - } - if (temp.checkPointsDone > 2) - { - if (user.GetData("Route") == "Skill1Route1" || user.GetData("Route") == "Skill1Route2" || user.GetData("Route") == "Skill1Route3" || user.GetData("Route") == "Skill1Route4") - { - BusDriverJob.payWage(user, BusSkill1RouteVerdienst / temp.list.Count()); - } - if (user.GetData("Route") == "Skill2Route1" || user.GetData("Route") == "Skill2Route2" || user.GetData("Route") == "Skill2Route3" || user.GetData("Route") == "Skill2Route4") - { - BusDriverJob.payWage(user, BusSkill2RouteVerdienst / temp.list.Count()); - } - if (user.GetData("Route") == "Skill3Route1" || user.GetData("Route") == "Skill3Route2" || user.GetData("Route") == "Skill3Route3" || user.GetData("Route") == "Skill3Route4") - { - BusDriverJob.payWage(user, BusSkill3RouteVerdienst / temp.list.Count()); - } - } - //BusDriverJob.payWage(user, 100); - if (!user.IsInVehicle || user.VehicleSeat != 0) return; - Vehicle veh = user.Vehicle; - if (!(veh.GetData("indicatorData") is IndicatorData data)) data = new IndicatorData(); - data.Left = false; - data.Right = false; - veh.SetData("indicatorData", data); - NAPI.ClientEvent.TriggerClientEventForAll("SERVER:setIndicatorStatus", veh.Handle.Value, data.Left, data.Right); - //BusCheckpoint(user); - } - } - } - else - { - } - temp.NextCheckpoint(); + break; } } + if (temp.LastCheckpoint != 1) + { + Job.JobBase job = Managers.JobManager.GetJob(user.GetUser().JobId ?? -1); + if (job?.GetUsersInJob().Contains(user) ?? false) + { + if (user.GetUser().JobId == 3) + { + if (temp.checkPointsDone == 2) + { + if (user.GetData("Route") == "Skill1Route1" || user.GetData("Route") == "Skill1Route2" || user.GetData("Route") == "Skill1Route3") + { + PilotJob.payWage(user, PilotSkill1RouteVerdienst / temp.list.Count()); + PilotJob.payWage(user, PilotSkill1RouteVerdienst / temp.list.Count()); + } + if (user.GetData("Route") == "Skill2Route1" || user.GetData("Route") == "Skill2Route2" || user.GetData("Route") == "Skill2Route3") + { + PilotJob.payWage(user, PilotSkill2RouteVerdienst / temp.list.Count()); + PilotJob.payWage(user, PilotSkill2RouteVerdienst / temp.list.Count()); + } + } + if (temp.checkPointsDone > 2) + { + if (user.GetData("Route") == "Skill1Route1" || user.GetData("Route") == "Skill1Route2" || user.GetData("Route") == "Skill1Route3") + { + PilotJob.payWage(user, PilotSkill1RouteVerdienst / temp.list.Count()); + } + if (user.GetData("Route") == "Skill2Route1" || user.GetData("Route") == "Skill2Route2" || user.GetData("Route") == "Skill2Route3") + { + PilotJob.payWage(user, PilotSkill2RouteVerdienst / temp.list.Count()); + } + } + //PilotJob.payWage(user, 100); + } + if (user.GetUser().JobId == 4) + { + if (temp.checkPointsDone == 2) + { + if (user.GetData("Route") == "Skill1Route1" || user.GetData("Route") == "Skill1Route2" || user.GetData("Route") == "Skill1Route3" || user.GetData("Route") == "Skill1Route4") + { + BusDriverJob.payWage(user, BusSkill1RouteVerdienst / temp.list.Count()); + BusDriverJob.payWage(user, BusSkill1RouteVerdienst / temp.list.Count()); + } + if (user.GetData("Route") == "Skill2Route1" || user.GetData("Route") == "Skill2Route2" || user.GetData("Route") == "Skill2Route3" || user.GetData("Route") == "Skill2Route4") + { + BusDriverJob.payWage(user, BusSkill2RouteVerdienst / temp.list.Count()); + BusDriverJob.payWage(user, BusSkill2RouteVerdienst / temp.list.Count()); + } + if (user.GetData("Route") == "Skill3Route1" || user.GetData("Route") == "Skill3Route2" || user.GetData("Route") == "Skill3Route3" || user.GetData("Route") == "Skill3Route4") + { + BusDriverJob.payWage(user, BusSkill3RouteVerdienst / temp.list.Count()); + BusDriverJob.payWage(user, BusSkill3RouteVerdienst / temp.list.Count()); + } + } + if (temp.checkPointsDone > 2) + { + if (user.GetData("Route") == "Skill1Route1" || user.GetData("Route") == "Skill1Route2" || user.GetData("Route") == "Skill1Route3" || user.GetData("Route") == "Skill1Route4") + { + BusDriverJob.payWage(user, BusSkill1RouteVerdienst / temp.list.Count()); + } + if (user.GetData("Route") == "Skill2Route1" || user.GetData("Route") == "Skill2Route2" || user.GetData("Route") == "Skill2Route3" || user.GetData("Route") == "Skill2Route4") + { + BusDriverJob.payWage(user, BusSkill2RouteVerdienst / temp.list.Count()); + } + if (user.GetData("Route") == "Skill3Route1" || user.GetData("Route") == "Skill3Route2" || user.GetData("Route") == "Skill3Route3" || user.GetData("Route") == "Skill3Route4") + { + BusDriverJob.payWage(user, BusSkill3RouteVerdienst / temp.list.Count()); + } + } + //BusDriverJob.payWage(user, 100); + if (!user.IsInVehicle || user.VehicleSeat != 0) return; + Vehicle veh = user.Vehicle; + if (!(veh.GetData("indicatorData") is IndicatorData data)) data = new IndicatorData(); + data.Left = false; + data.Right = false; + veh.SetData("indicatorData", data); + NAPI.ClientEvent.TriggerClientEventForAll("SERVER:setIndicatorStatus", veh.Handle.Value, data.Left, data.Right); + //BusCheckpoint(user); + } + } + } + else + { + } + temp.NextCheckpoint(); +} +*/ + + #endregion delete + } public class CheckPointListForPlayer {