Lol
This commit is contained in:
134
ReallifeGamemode.Client/Jobs/FarmerFieldSelect.ts
Normal file
134
ReallifeGamemode.Client/Jobs/FarmerFieldSelect.ts
Normal file
@@ -0,0 +1,134 @@
|
||||
import * as NativeUI from '../libs/NativeUI';
|
||||
|
||||
var fieldSelectColShape = mp.colshapes.newCircle(2415.229, 4993.037, 46.230038);
|
||||
const Menu = NativeUI.Menu;
|
||||
var fieldMenu: NativeUI.Menu;
|
||||
const Point = NativeUI.Point;
|
||||
const UIMenuListItem = NativeUI.UIMenuListItem;
|
||||
const ItemsCollection = NativeUI.ItemsCollection;
|
||||
const UIMenuItem = NativeUI.UIMenuItem;
|
||||
const Color = NativeUI.Color;
|
||||
|
||||
let sendItem = new UIMenuItem("Starten", "Route starten");
|
||||
sendItem.BackColor = new Color(13, 71, 161);
|
||||
sendItem.HighlightedBackColor = new Color(25, 118, 210);
|
||||
|
||||
let cancelItem = new UIMenuItem("Abbrechen", "");
|
||||
cancelItem.BackColor = new Color(213, 0, 0);
|
||||
cancelItem.HighlightedBackColor = new Color(229, 57, 53);
|
||||
|
||||
let screenRes = mp.game.graphics.getScreenResolution(0, 0);
|
||||
var checkpoint = new mp.Vector3(2416.3723, 4993.94, 45);
|
||||
|
||||
export default function farmerFieldList(globalData: IGlobalData) {
|
||||
var skillSelect;
|
||||
var skill = 60;
|
||||
var fieldSelected = false;
|
||||
var fieldSelect;
|
||||
|
||||
mp.events.add(RageEnums.EventKey.PLAYER_EXIT_COLSHAPE, (colshape) => {
|
||||
if (colshape == fieldSelectColShape) {
|
||||
if (fieldMenu && fieldMenu.Visible) {
|
||||
fieldMenu.Close();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
mp.events.add('SERVER:selectField', () => {
|
||||
|
||||
skill = 100;
|
||||
|
||||
if (!globalData.InMenu) {
|
||||
globalData.InMenu = true;
|
||||
|
||||
skillSelect = ["Knecht (1)", "Hilfsarbeiter (2)", "Ackersmann (3)", "Landwirt (4)", "Ökonom (5)"];
|
||||
|
||||
fieldMenu = new Menu("Bus Job", "", new Point(0, screenRes.y / 3), null, null);
|
||||
fieldMenu.AddItem(new UIMenuListItem("Stufe wählen", "", new ItemsCollection(skillSelect)));
|
||||
fieldSelect = "Anfänger";
|
||||
fieldMenu.AddItem(sendItem);
|
||||
fieldMenu.AddItem(cancelItem);
|
||||
fieldMenu.Visible = true;
|
||||
|
||||
fieldMenu.ListChange.on((item, index) => {
|
||||
switch (item.Text) {
|
||||
case "Stufe wählen":
|
||||
fieldSelect = String(item.SelectedItem.DisplayText);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
fieldMenu.ItemSelect.on((item) => {
|
||||
if (item.Text === "Starten") {
|
||||
|
||||
if (fieldSelect == skillSelect[1] && skill < 5) {
|
||||
mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true);
|
||||
}
|
||||
else if (fieldSelect == skillSelect[2] && skill < 10) {
|
||||
mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true);
|
||||
}
|
||||
else if (fieldSelect == skillSelect[3] && skill < 25) {
|
||||
mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true);
|
||||
}
|
||||
else if (fieldSelect == skillSelect[4] && skill < 50) {
|
||||
mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true);
|
||||
}
|
||||
else {
|
||||
mp.events.callRemote("CLIENT:StartFieldSelected", fieldSelect);
|
||||
fieldSelected = true;
|
||||
fieldMenu.Close();
|
||||
globalData.InMenu = false;
|
||||
}
|
||||
|
||||
|
||||
} else if (item.Text === "Abbrechen") {
|
||||
fieldMenu.Close();
|
||||
}
|
||||
});
|
||||
|
||||
fieldMenu.MenuClose.on(() => {
|
||||
if (!fieldSelected) {
|
||||
//mp.events.callRemote("CLIENT:Job_StopJob");
|
||||
}
|
||||
fieldSelected = false;
|
||||
globalData.InMenu = false;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
var activeCheckpoint;
|
||||
var activeBlip = null;
|
||||
var myVar;
|
||||
var activeCheckpointId;
|
||||
|
||||
mp.events.add('farmerSetCheckpoint', (position, markerId, markerSize, cpId) => {
|
||||
activeCheckpointId = cpId;
|
||||
|
||||
activeCheckpoint = mp.markers.new(markerId, position, markerSize, {
|
||||
color: [255, 0, 0, 150],
|
||||
visible: true,
|
||||
dimension: 0
|
||||
});
|
||||
|
||||
activeBlip = mp.blips.new(1, position,
|
||||
{
|
||||
color: 33,
|
||||
alpha: 255,
|
||||
shortRange: false,
|
||||
});
|
||||
activeBlip.setRoute(true);
|
||||
activeBlip.setRouteColour(33);
|
||||
|
||||
clearInterval(myVar);
|
||||
myVar = setInterval(checkpointTimer, 50);
|
||||
});
|
||||
|
||||
function checkpointTimer() {
|
||||
let dist = mp.game.gameplay.getDistanceBetweenCoords(mp.players.local.position.x, mp.players.local.position.y, 0, checkpoint.x, checkpoint.y, 0, false);
|
||||
|
||||
if (dist <= 2) {
|
||||
clearInterval(myVar);
|
||||
activeCheckpoint.destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -57,7 +57,6 @@ const muellbaseVector2 = new mp.Vector3(454.88348, -2158.1938, 5.9788494);
|
||||
const muellbaseVector3 = new mp.Vector3(529.06635, -2088.4097, 8.303088);
|
||||
|
||||
const krankenhausVector1 = new mp.Vector3(-508.50705, -351.24368, 34);
|
||||
//const krankenhausVector2 = new mp.Vector3(-437.00146, -357.10526, 32.735916
|
||||
const krankenhausVector2 = new mp.Vector3(-442.62323, -356.99185, 33);
|
||||
const krankenhausVector3 = new mp.Vector3(-448.9346, -297.23972, 33.68);
|
||||
const krankenhausVector4 = new mp.Vector3(-504.952, -315.21698, 35.04881);
|
||||
|
||||
@@ -268,6 +268,9 @@ antiAfk(globalData);
|
||||
import ammunation from './Interaction/ammunation/ammunation';
|
||||
ammunation(globalData);
|
||||
|
||||
import farmerFieldList from './Jobs/FarmerFieldSelect';
|
||||
farmerFieldList(globalData);
|
||||
|
||||
import handsup from './Player/handsup';
|
||||
handsup();
|
||||
|
||||
|
||||
@@ -585,6 +585,43 @@ namespace ReallifeGamemode.Server.Events
|
||||
}
|
||||
}
|
||||
|
||||
if (player.Position.DistanceTo(FarmerJob.POSITION_SCHEUNE) <= 1.5)
|
||||
{
|
||||
if (JobManager.GetJob<FarmerJob>().GetUsersInJob().Contains(player))
|
||||
{
|
||||
player.TriggerEvent("SERVER:selectField");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (player.Position.DistanceTo(FarmerJob.POSITION_FAHRZEUGHALLE) <= 1.5)
|
||||
{
|
||||
if (FarmerJob.playersWaitingForVehicle.Contains(player) || true)
|
||||
{
|
||||
FarmerJob.spawnVehicle(player);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (CharacterCreator.surgeryPoint.DistanceTo(player.Position) <= 1.5)
|
||||
{
|
||||
if (user.GetData<bool>("duty"))
|
||||
{
|
||||
player.SendNotification("~r~Im Dienst kannst du nicht operiert werden", false);
|
||||
return;
|
||||
}
|
||||
if (JobBase.GetPlayerInJob().Contains(player))
|
||||
{
|
||||
player.SendNotification("~r~Im aktiven Job kannst du nicht operiert werden", false);
|
||||
return;
|
||||
}
|
||||
if (user.Wanteds > 0)
|
||||
{
|
||||
player.SendNotification("~r~Wenn du gesucht wirst kannst du nicht operiert werden", false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//if (CharacterCreator.surgeryPoint.DistanceTo(player.Position) <= 1.5)
|
||||
//{
|
||||
// if (user.GetData<bool>("duty"))
|
||||
|
||||
176
ReallifeGamemode.Server/Job/FarmerJob.cs
Normal file
176
ReallifeGamemode.Server/Job/FarmerJob.cs
Normal file
@@ -0,0 +1,176 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
|
||||
namespace ReallifeGamemode.Server.Job
|
||||
{
|
||||
public class FarmerJob : JobBase
|
||||
{
|
||||
public override int Id => 5;
|
||||
|
||||
public override string Name => "Farmer";
|
||||
|
||||
public override bool NeedVehicleToStart => false;
|
||||
|
||||
public override bool Deactivated => false;
|
||||
|
||||
private static FarmerJob _Instance;
|
||||
|
||||
public static Vector3 POSITION_JOB_START = new Vector3(2434.2983, 4976.952, 46.571423);
|
||||
public static Vector3 POSITION_SCHEUNE = new Vector3(2416.3723, 4993.94, 45);
|
||||
public static Vector3 POSITION_SCHEUNE_LABEL = new Vector3(2416.3723, 4993.94, 46);
|
||||
public static Vector3 POSITION_FAHRZEUGHALLE = new Vector3(2494.346, 4964.773, 43.5833);
|
||||
public static Vector3 POSITION_FAHRZEUGHALLE_LABEL = new Vector3(2494.346, 4964.773, 44.5833);
|
||||
|
||||
private static TextLabel labelScheune = null;
|
||||
private static TextLabel labelFahrzeughalle = null;
|
||||
|
||||
public static List<Player> playersWaitingForVehicle = new List<Player>();
|
||||
public static Dictionary<Player, String> playerHasField = new Dictionary<Player, String>();
|
||||
|
||||
private static readonly Dictionary<Vector3, float> VEHICLE_SPAWNS = new Dictionary<Vector3, float>
|
||||
{
|
||||
{ new Vector3(2500.026, 4982.7485, 44.50283), (float)-148.8139 },
|
||||
{ new Vector3(2511.2246, 4981.6924, 44.722702), (float)139.25208 },
|
||||
{ new Vector3(2518.3486, 4977.3125, 44.716434), (float)131.3338 },
|
||||
{ new Vector3(2522.8215, 4966.823, 44.53701), (float)118.17867 }
|
||||
};
|
||||
|
||||
private static int spawnIndex = 0;
|
||||
|
||||
public static readonly List<Vector3> CHECKPOINTS_FIELD1 = new List<Vector3>()
|
||||
{
|
||||
new Vector3(2335.83984375, 5114.8525390625, 47.83000183105469),
|
||||
new Vector3(2295.81201171875, 5153.26123046875, 54.64070129394531),
|
||||
new Vector3(2277.558837890625, 5139.4453125, 53.3763542175293),
|
||||
new Vector3(2318.217041015625, 5099.271484375, 46.98373031616211),
|
||||
new Vector3(2283.467041015625, 5066.1025390625, 45.97780227661133),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3()
|
||||
};
|
||||
|
||||
public FarmerJob()
|
||||
{
|
||||
JobStart += FarmerDriverJobJobStart;
|
||||
JobStop += FarmerDriverJobJobStop;
|
||||
}
|
||||
|
||||
public static FarmerJob GetInstance()
|
||||
{
|
||||
if (_Instance == null)
|
||||
_Instance = new FarmerJob();
|
||||
return _Instance;
|
||||
}
|
||||
private void FarmerDriverJobJobStart(Player player)
|
||||
{
|
||||
labelScheune = NAPI.TextLabel.CreateTextLabel("Scheune - Drücke ~y~E ~w~um ein Feld auszuwählen", POSITION_SCHEUNE_LABEL, 15, 1, 0, new Color(255, 255, 255), false, 0);
|
||||
|
||||
player.SendChatMessage("~y~[JOB]~w~ Begebe dich zur Scheune um Felder zu pachten");
|
||||
player.TriggerEvent("farmerSetCheckpoint", POSITION_SCHEUNE, 1, 1, "scheune");
|
||||
}
|
||||
private void FarmerDriverJobJobStop(Player player)
|
||||
{
|
||||
player.SendChatMessage("Job stop");
|
||||
}
|
||||
|
||||
[RemoteEvent("CLIENT:StartFieldSelected")]
|
||||
public void startFieldSelected(Player player, String field)
|
||||
{
|
||||
labelScheune.Delete();
|
||||
labelFahrzeughalle = NAPI.TextLabel.CreateTextLabel("Fahrzeughalle - Drücke ~y~E ~w~um dir ein Fahrzeug zu holen", POSITION_FAHRZEUGHALLE_LABEL, 15, 1, 0, new Color(255, 255, 255), false, 0);
|
||||
player.SendChatMessage("~y~[JOB]~w~ Begebe dich zur nun zur Fahrzeughalle um dein Fahrzeug abzuholen");
|
||||
player.TriggerEvent("farmerSetCheckpoint", POSITION_FAHRZEUGHALLE, 1, 1, "fahrzeughalle");
|
||||
playersWaitingForVehicle.Add(player);
|
||||
playerHasField.Add(player, field);
|
||||
}
|
||||
|
||||
public static void spawnVehicle(Player player)
|
||||
{
|
||||
if (!playerHasField.ContainsKey(player))
|
||||
playerHasField.Add(player, "Landwirt (4)");
|
||||
|
||||
player.SendChatMessage("player " + player.Name + " with field " + playerHasField[player]);
|
||||
|
||||
//NEXT: verschiedene spawnpositionen für fahrzeuge in VEHICLE_SPAWNS
|
||||
|
||||
//Vector3 spawnPoint = VEHICLE_SPAWNS[spawnIndex++ % VEHICLE_SPAWNS.Count];
|
||||
Random rnd = new Random();
|
||||
spawnIndex = rnd.Next(VEHICLE_SPAWNS.Count);
|
||||
|
||||
Vector3 spawnPoint = VEHICLE_SPAWNS.ElementAt(spawnIndex).Key;
|
||||
float vehicleHeading = VEHICLE_SPAWNS[spawnPoint];
|
||||
Vehicle vehicle = null;
|
||||
|
||||
if (playerHasField[player] == "Knecht (1)")
|
||||
{
|
||||
vehicle = NAPI.Vehicle.CreateVehicle(0x61D6BA8C, spawnPoint, vehicleHeading, 111, 111, "JOB");
|
||||
} else if (playerHasField[player] == "Hilfsarbeiter (2)")
|
||||
{
|
||||
vehicle = NAPI.Vehicle.CreateVehicle(0x61D6BA8C, spawnPoint, vehicleHeading, 111, 111, "JOB");
|
||||
}
|
||||
else if (playerHasField[player] == "Ackersmann (3)")
|
||||
{
|
||||
vehicle = NAPI.Vehicle.CreateVehicle(0x843B73DE, spawnPoint, vehicleHeading, 111, 111, "JOB");
|
||||
}
|
||||
else if (playerHasField[player] == "Landwirt (4)")
|
||||
{
|
||||
vehicle = NAPI.Vehicle.CreateVehicle(0x843B73DE, spawnPoint, vehicleHeading, 111, 111, "JOB");
|
||||
}
|
||||
else if (playerHasField[player] == "Ökonom(5)")
|
||||
{
|
||||
vehicle = NAPI.Vehicle.CreateVehicle(0x843B73DE, spawnPoint, vehicleHeading, 111, 111, "JOB");
|
||||
}
|
||||
|
||||
vehicle.NumberPlate = "JOB-" + vehicle.Id;
|
||||
|
||||
_CHANGING_VEHICLE.Add(player);
|
||||
if (playerVehiclePair.ContainsKey(player))
|
||||
{
|
||||
Vehicle previousVehicle = null;
|
||||
if (playerVehiclePair[player] != null)
|
||||
previousVehicle = playerVehiclePair[player];
|
||||
playerVehiclePair.Remove(player);
|
||||
|
||||
previousVehicle?.Delete();
|
||||
}
|
||||
playerVehiclePair.Add(player, vehicle);
|
||||
|
||||
player.SetIntoVehicle(vehicle.Handle, 0);
|
||||
|
||||
}
|
||||
|
||||
public override void LastCheckpoint(Player player)
|
||||
{
|
||||
//nothing
|
||||
}
|
||||
|
||||
public override void StartJobEndTimer(Player player)
|
||||
{
|
||||
//nothing
|
||||
}
|
||||
|
||||
public override bool CheckVehicle(Player player, Vehicle vehicle)
|
||||
{
|
||||
//nothig, kack jobsystem
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,7 @@ using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Shop.Ammunation;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Job;
|
||||
|
||||
|
||||
namespace ReallifeGamemode.Server.Managers
|
||||
@@ -207,11 +208,18 @@ namespace ReallifeGamemode.Server.Managers
|
||||
jobId = 4,
|
||||
Skill = 0
|
||||
};
|
||||
JobPoint jobPointFarmer = new JobPoint()
|
||||
{
|
||||
Position = FarmerJob.POSITION_JOB_START,
|
||||
jobId = 5,
|
||||
Skill = 0
|
||||
};
|
||||
|
||||
JobPoints.Add(jobPointRefuseCollector);
|
||||
JobPoints.Add(jobPointPilot);
|
||||
JobPoints.Add(jobPointPilot2);
|
||||
JobPoints.Add(jobPointBusDriver);
|
||||
JobPoints.Add(jobPointFarmer);
|
||||
|
||||
foreach (JobPoint p in JobPoints)
|
||||
{
|
||||
@@ -240,6 +248,11 @@ namespace ReallifeGamemode.Server.Managers
|
||||
NAPI.TextLabel.CreateTextLabel("Busfahrer - Dr\u00fccke ~y~E~s~ um Job zu starten/beenden", p.Position, 15, 1, 0, new Color(255, 255, 255), false, 0);
|
||||
NAPI.Blip.CreateBlip(513, p.Position, 1f, 16, "Busfahrer", 255, 0, true);
|
||||
}
|
||||
if (p.jobId == 5)
|
||||
{
|
||||
NAPI.TextLabel.CreateTextLabel("Farmer - Dr\u00fccke ~y~E~s~ um Job zu starten/beenden", p.Position, 15, 1, 0, new Color(255, 255, 255), false, 0);
|
||||
NAPI.Blip.CreateBlip(369, p.Position, 1f, 16, "Farmer", 255, 0, true);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion JobPoints
|
||||
|
||||
Reference in New Issue
Block a user