This commit is contained in:
VegaZ
2021-04-05 17:34:31 +02:00
5 changed files with 42 additions and 34 deletions

View File

@@ -13,7 +13,7 @@
var interval = null; var interval = null;
var garbageToCollect = new Map<BlipMp, ColshapeMp>(); var garbageToCollect = new Map<number, { blip: BlipMp, colshape: ColshapeMp }>();
mp.events.add('SERVER:MuellmannStatusTrue', () => { mp.events.add('SERVER:MuellmannStatusTrue', () => {
State = true; State = true;
@@ -34,7 +34,7 @@
newBlip.setFlashTimer(2000); newBlip.setFlashTimer(2000);
garbageToCollect.set(newBlip, newColShape); garbageToCollect.set(i, { blip: newBlip, colshape: newColShape });
} }
blipBase = mp.blips.new(1, new mp.Vector3(-442.3999, -1701.5234, 18.933002 - 1), { name: 'Recylinganlage', color: 5, shortRange: false }); blipBase = mp.blips.new(1, new mp.Vector3(-442.3999, -1701.5234, 18.933002 - 1), { name: 'Recylinganlage', color: 5, shortRange: false });
@@ -42,7 +42,9 @@
colshapeBase = mp.colshapes.newSphere(-442.3999, -1701.5234, 18.933002 - 1, 10); colshapeBase = mp.colshapes.newSphere(-442.3999, -1701.5234, 18.933002 - 1, 10);
}); });
mp.events.add('SERVER:MuellmannBCSEntfernen', () => { mp.events.add('SERVER:MuellmannBCSEntfernen', () => {
garbageToCollect.forEach((colshape, blip) => { garbageToCollect.forEach((collection, index) => {
let { blip, colshape } = collection;
if (colshape && mp.colshapes.exists(colshape)) if (colshape && mp.colshapes.exists(colshape))
colshape.destroy(); colshape.destroy();
if (blip && mp.blips.exists(blip)) if (blip && mp.blips.exists(blip))
@@ -69,14 +71,16 @@
mp.events.add("playerEnterColshape", (currentShape, player) => { mp.events.add("playerEnterColshape", (currentShape, player) => {
//mp.events.callRemote('CLIENT:ImShape', JSON.stringify(Shape)); //mp.events.callRemote('CLIENT:ImShape', JSON.stringify(Shape));
garbageToCollect.forEach((colshape, blip) => { let i = getIndex(currentShape);
if (!colshape || colshape != currentShape) { return; }
if (garbageToCollect.has(i)) {
let { blip, colshape } = garbageToCollect.get(i);
if (mp.players.local.vehicle) { mp.events.call("renderTextOnScreen", "Steige aus dem Müllwagen aus um den Müllsack zu entnehmen."); return; } if (mp.players.local.vehicle) { mp.events.call("renderTextOnScreen", "Steige aus dem Müllwagen aus um den Müllsack zu entnehmen."); return; }
if (hasBinBag) { mp.gui.chat.push("Du trägst bereits einen Müllsack!"); return; } if (hasBinBag) { mp.gui.chat.push("Du trägst bereits einen Müllsack!"); return; }
if (!dumptruckIsFull) { if (!dumptruckIsFull) {
mp.events.callRemote('CLIENT:MuellmannImShape', blip.getCoords()); mp.events.callRemote('CLIENT:MuellmannImShape', i);
hasBinBag = true; hasBinBag = true;
if (colshape) if (colshape)
@@ -84,13 +88,15 @@
if (blip) if (blip)
blip.destroy(); blip.destroy();
garbageToCollect.delete(i);
interval = setInterval(function () { createMarker(); }, 2); interval = setInterval(function () { createMarker(); }, 2);
} }
else { else {
mp.gui.chat.push("Der Müllwagen ist bereits voll! Fahre zur Base und lade ab!"); mp.gui.chat.push("Der Müllwagen ist bereits voll! Fahre zur Base und lade ab!");
return; return;
} }
}); }
if (currentShape == colshapeDumptruck) { if (currentShape == colshapeDumptruck) {
if (hasBinBag) { if (hasBinBag) {
@@ -113,28 +119,20 @@
dumptruckIsFull = false; dumptruckIsFull = false;
} }
}); });
mp.events.add("MuellmannUpdateColshape", (vector3) => { mp.events.add("MuellmannUpdateColshape", (index) => {
let currBlip; if (!garbageToCollect.has(index)) return;
garbageToCollect.forEach((colShape, blip) => {
if (blip.getCoords() == vector3) currBlip = blip;
});
if (!garbageToCollect.has(currBlip)) return; let { blip, colshape } = garbageToCollect.get(index);
mp.gui.chat.push("Has Blip.");
var colShape = garbageToCollect.get(currBlip); if (blip && mp.blips.exists(blip)) {
blip.destroy();
if (currBlip && mp.blips.exists(currBlip)) {
mp.gui.chat.push("Delete Blip.");
currBlip.destroy();
} }
if (colShape && mp.colshapes.exists(colShape)) { if (colshape && mp.colshapes.exists(colshape)) {
mp.gui.chat.push("Delete Colshape."); colshape.destroy();
colShape.destroy();
} }
garbageToCollect.delete(currBlip); garbageToCollect.delete(index);
}); });
mp.events.add("SERVER:MuellmannZuBase", () => { mp.events.add("SERVER:MuellmannZuBase", () => {
@@ -143,6 +141,15 @@
dumptruckIsFull = true; dumptruckIsFull = true;
}); });
function getIndex(shape: ColshapeMp): number {
let i = -1;
garbageToCollect.forEach((collection, index) => {
let { blip, colshape } = collection;
if (shape == colshape) i = index;
});
return i;
}
function createMarker() { function createMarker() {
let vehicle; let vehicle;
if (vehRemoteID) if (vehRemoteID)

View File

@@ -99,7 +99,7 @@ namespace ReallifeGamemode.Server.Events
{ {
//if (player.Vehicle.GetData<bool>("timerJobVehicleRespawn") == true) //if (player.Vehicle.GetData<bool>("timerJobVehicleRespawn") == true)
//{ //{
if (player.Vehicle.GetServerVehicle() is JobVehicle vehJ) if (player.Vehicle.GetServerVehicle() is JobVehicle vehJ && job.Id == JobManager.GetJob<RefuseCollectorJob>().Id)
{ {
player.Vehicle.ResetData("timerJobVehicleRespawn"); player.Vehicle.ResetData("timerJobVehicleRespawn");
ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(player.Vehicle); ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(player.Vehicle);

View File

@@ -311,8 +311,6 @@ namespace ReallifeGamemode.Server.Extensions
} }
} }
NAPI.Util.ConsoleOutput($"{player.Name} - Setting blip and nametag color: nametag = {nameTagColor}, blip = {blipColor}");
user.Player.SetSharedData("nameTagColor", nameTagColor); user.Player.SetSharedData("nameTagColor", nameTagColor);
user.Player.SetSharedData("blipColor", blipColor); user.Player.SetSharedData("blipColor", blipColor);
} }

View File

@@ -209,13 +209,13 @@ namespace ReallifeGamemode.Server.Job
} }
[RemoteEvent("CLIENT:MuellmannImShape")] [RemoteEvent("CLIENT:MuellmannImShape")]
public void MuellmannImShape(Player player, Vector3 blipCoords) public void MuellmannImShape(Player player, int index)
{ {
foreach (var data in muellmanData) foreach (var data in muellmanData)
{ {
if (data.getDataFromClient(player) == null) continue; if (data.getDataFromClient(player) == null) continue;
Player target = data.getPartnerClient(player); Player target = data.getPartnerClient(player);
if (target != null) target.TriggerEvent("MuellmannUpdateColshape", blipCoords); if (target != null) target.TriggerEvent("MuellmannUpdateColshape", index);
player.TriggerEvent("renderTextOnScreen", "Wirf den Müllsack in den Müllwagen."); player.TriggerEvent("renderTextOnScreen", "Wirf den Müllsack in den Müllwagen.");
player.AddAttachment("binbag", false); player.AddAttachment("binbag", false);
return; return;

View File

@@ -13,8 +13,6 @@ using ReallifeGamemode.Server.Util;
using ReallifeGamemode.Services; using ReallifeGamemode.Services;
using ReallifeGamemode.Server.Types; using ReallifeGamemode.Server.Types;
namespace ReallifeGamemode.Server.Managers namespace ReallifeGamemode.Server.Managers
{ {
public class JobManager : Script public class JobManager : Script
@@ -153,6 +151,7 @@ namespace ReallifeGamemode.Server.Managers
playerJobStartPosition[player] = player.Position; playerJobStartPosition[player] = player.Position;
job.StartJob(player); job.StartJob(player);
} }
[ServerEvent(Event.PlayerExitVehicle)] [ServerEvent(Event.PlayerExitVehicle)]
public void JobManagerPlayerExitVehicle(Player player, Vehicle veh) public void JobManagerPlayerExitVehicle(Player player, Vehicle veh)
{ {
@@ -241,10 +240,14 @@ namespace ReallifeGamemode.Server.Managers
if (vehJ.GetJob().GetUsersInJob().Contains(player)) if (vehJ.GetJob().GetUsersInJob().Contains(player))
{ {
if (LastVehicle != null) if (LastVehicle != null)
{
if (job.Id != 2) //Müllman Handelt Fahrzeug respawn eigenständig
{ {
LastVehicle.ResetData("timerJobVehicleRespawn"); LastVehicle.ResetData("timerJobVehicleRespawn");
ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(LastVehicle); ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(LastVehicle);
ServerVehicleExtensions.Spawn(sVeh, LastVehicle); ServerVehicleExtensions.Spawn(sVeh, LastVehicle);
}
job.StopJob(player); job.StopJob(player);
ChatService.SendMessage(player, $"~y~[JOB]~s~ Du hast deinen Job ~o~{job.Name}~s~ beendet."); ChatService.SendMessage(player, $"~y~[JOB]~s~ Du hast deinen Job ~o~{job.Name}~s~ beendet.");
CheckPointHandle.DeleteCheckpoints(player); CheckPointHandle.DeleteCheckpoints(player);