This commit is contained in:
VegaZ
2021-04-05 16:53:19 +02:00
10 changed files with 288 additions and 430 deletions

View File

@@ -1,20 +1,19 @@
export default function RefuseCollector() { export default function RefuseCollector() {
var State = false; var State = false;
var Traegt = false; var hasBinBag = false;
var HintenVoll = false; var dumptruckIsFull = false;
var BlipTonneHinten = null; var blipDumptruck = null;
var CheckpointTonneHinten = null; var dumptruckMarker = null;
var ShapeTonneHinten = null; var colshapeDumptruck = null;
var BlipTonneBase = null; var blipBase = null;
var CheckpointTonneBase = null; var markerBase = null;
var ShapeTonneBase = null; var colshapeBase = null;
var vehicle = null; var vehRemoteID = null;
var interval = null; var interval = null;
var BlipTonne = []; var garbageToCollect = new Map<BlipMp, ColshapeMp>();
var ShapeTonne = [];
mp.events.add('SERVER:MuellmannStatusTrue', () => { mp.events.add('SERVER:MuellmannStatusTrue', () => {
State = true; State = true;
@@ -24,112 +23,130 @@
State = false; State = false;
}); });
mp.events.add('SERVER:MuellmannBCSErstellen', (jsonPosArr, veh) => { mp.events.add('SERVER:MuellmannBCSErstellen', (jsonPosArr, veh: VehicleMp) => {
let posArr = JSON.parse(jsonPosArr); let posArr = JSON.parse(jsonPosArr);
vehicle = veh; vehRemoteID = veh.remoteId;
for (var i = 0; i < posArr.length; i++) { for (var i = 0; i < posArr.length; i++) {
let pos = new mp.Vector3(posArr[i].x, posArr[i].y, posArr[i].z - 1) let pos = new mp.Vector3(posArr[i].x, posArr[i].y, posArr[i].z - 1)
BlipTonne.push(mp.blips.new(1, new mp.Vector3(pos.x, pos.y, 1000), { name: 'Mülltonne', color: 45, shortRange: false }));
BlipTonne[i].setFlashTimer(2000); let newBlip = mp.blips.new(1, new mp.Vector3(pos.x, pos.y, 1000), { name: 'Mülltonne', color: 45, shortRange: false });
ShapeTonne.push(mp.colshapes.newSphere(posArr[i].x, posArr[i].y, posArr[i].z + 0.5, 1.75)); let newColShape = mp.colshapes.newSphere(posArr[i].x, posArr[i].y, posArr[i].z + 0.5, 1.75);
newBlip.setFlashTimer(2000);
garbageToCollect.set(newBlip, newColShape);
} }
BlipTonneBase = 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 });
CheckpointTonneBase = mp.markers.new(1, new mp.Vector3(-442.3999, -1701.5234, 18.933002 - 1), 10, { direction: new mp.Vector3(-235.5747, -1685.475, 32.7207), color: [255, 255, 0, 150], visible: true, dimension: 0 }); markerBase = mp.markers.new(1, new mp.Vector3(-442.3999, -1701.5234, 18.933002 - 1), 10, { direction: new mp.Vector3(-235.5747, -1685.475, 32.7207), color: [255, 255, 0, 150], visible: true, dimension: 0 });
ShapeTonneBase = 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', () => {
for (var i = 0; i < BlipTonne.length; i++) { garbageToCollect.forEach((colshape, blip) => {
if (BlipTonne[i] == null) continue; if (colshape && mp.colshapes.exists(colshape))
if (ShapeTonne[i] == null) continue; colshape.destroy();
BlipTonne[i].destroy(); if (blip && mp.blips.exists(blip))
ShapeTonne[i].destroy(); blip.destroy();
} });
BlipTonne = [];
ShapeTonne = [];
if (BlipTonneHinten) BlipTonneHinten.destroy(); garbageToCollect.clear();
BlipTonneHinten = null;
if (CheckpointTonneHinten) CheckpointTonneHinten.destroy(); if (blipDumptruck) blipDumptruck.destroy();
CheckpointTonneHinten = null; blipDumptruck = null;
if (ShapeTonneHinten) ShapeTonneHinten.destroy(); if (dumptruckMarker) dumptruckMarker.destroy();
ShapeTonneHinten = null; dumptruckMarker = null;
if (BlipTonneBase) BlipTonneBase.destroy(); if (colshapeDumptruck) colshapeDumptruck.destroy();
BlipTonneBase = null; colshapeDumptruck = null;
if (CheckpointTonneBase) CheckpointTonneBase.destroy(); if (blipBase) blipBase.destroy();
CheckpointTonneBase = null; blipBase = null;
if (ShapeTonneBase) ShapeTonneBase.destroy(); if (markerBase) markerBase.destroy();
ShapeTonneBase = null; markerBase = null;
Traegt = false; if (colshapeBase) colshapeBase.destroy();
colshapeBase = null;
hasBinBag = false;
}); });
mp.events.add("playerEnterColshape", (Shape, player) => { mp.events.add("playerEnterColshape", (currentShape, player) => {
//mp.events.callRemote('CLIENT:ImShape', JSON.stringify(Shape)); //mp.events.callRemote('CLIENT:ImShape', JSON.stringify(Shape));
for (var i = 0; i < ShapeTonne.length; i++) {
if (Shape != ShapeTonne[i]) continue;
if (!mp.players.local.vehicle) {
if (!Traegt) {
if (!HintenVoll) {
mp.events.callRemote('CLIENT:MuellmannImShape', i);
Traegt = true;
BlipTonne[i].destroy();
BlipTonne[i] = null;
ShapeTonne[i].destroy();
ShapeTonne[i] = null;
interval = setInterval(function () { createMarker(); }, 2); garbageToCollect.forEach((colshape, blip) => {
} if (!colshape || colshape != currentShape) { return; }
else {
mp.gui.chat.push("Der Müllwagen ist bereits voll! Fahre zur Base und lade ab!"); if (mp.players.local.vehicle) { mp.events.call("renderTextOnScreen", "Steige aus dem Müllwagen aus um den Müllsack zu entnehmen."); return; }
return; if (hasBinBag) { mp.gui.chat.push("Du trägst bereits einen Müllsack!"); return; }
}
} if (!dumptruckIsFull) {
else { mp.events.callRemote('CLIENT:MuellmannImShape', blip.getCoords());
mp.gui.chat.push(`Du trägst bereits einen Müllsack!`); hasBinBag = true;
return;
} if (colshape)
colshape.destroy();
if (blip)
blip.destroy();
interval = setInterval(function () { createMarker(); }, 2);
} }
else { else {
mp.events.call("renderTextOnScreen", "Steige aus dem Müllwagen aus um den Müllsack zu entnehmen."); mp.gui.chat.push("Der Müllwagen ist bereits voll! Fahre zur Base und lade ab!");
return;
} }
} });
if (Shape == ShapeTonneHinten) {
if (Traegt) { if (currentShape == colshapeDumptruck) {
Traegt = false; if (hasBinBag) {
hasBinBag = false;
mp.events.callRemote('CLIENT:MuellmannAddSack'); mp.events.callRemote('CLIENT:MuellmannAddSack');
clearInterval(interval); clearInterval(interval);
if (BlipTonneHinten) BlipTonneHinten.destroy(); if (blipDumptruck) blipDumptruck.destroy();
BlipTonneHinten = null; blipDumptruck = null;
if (CheckpointTonneHinten) CheckpointTonneHinten.destroy(); if (dumptruckMarker) dumptruckMarker.destroy();
CheckpointTonneHinten = null; dumptruckMarker = null;
if (ShapeTonneHinten) ShapeTonneHinten.destroy(); if (colshapeDumptruck) colshapeDumptruck.destroy();
ShapeTonneHinten = null; colshapeDumptruck = null;
} }
} }
else if (Shape == ShapeTonneBase) { else if (currentShape == colshapeBase) {
BlipTonneBase.setRoute(false); blipBase.setRoute(false);
mp.events.callRemote('CLIENT:MuellmannBaseSack'); mp.events.callRemote('CLIENT:MuellmannBaseSack');
HintenVoll = false; dumptruckIsFull = false;
} }
}); });
mp.events.add("MuellmannUpdateColshape", (index) => { mp.events.add("MuellmannUpdateColshape", (vector3) => {
if (BlipTonne[index] != null) let currBlip;
BlipTonne[index].destroy(); garbageToCollect.forEach((colShape, blip) => {
BlipTonne[index] = null; if (blip.getCoords() == vector3) currBlip = blip;
if (ShapeTonne[index] != null) });
ShapeTonne[index].destroy();
ShapeTonne[index] = null; if (!garbageToCollect.has(currBlip)) return;
mp.gui.chat.push("Has Blip.");
var colShape = garbageToCollect.get(currBlip);
if (currBlip && mp.blips.exists(currBlip)) {
mp.gui.chat.push("Delete Blip.");
currBlip.destroy();
}
if (colShape && mp.colshapes.exists(colShape)) {
mp.gui.chat.push("Delete Colshape.");
colShape.destroy();
}
garbageToCollect.delete(currBlip);
}); });
mp.events.add("SERVER:MuellmannZuBase", () => { mp.events.add("SERVER:MuellmannZuBase", () => {
BlipTonneBase.setRoute(true); blipBase.setRoute(true);
BlipTonneBase.setRouteColour(5); blipBase.setRouteColour(5);
HintenVoll = true; dumptruckIsFull = true;
}); });
function createMarker() { function createMarker() {
let vehicle;
if (vehRemoteID)
vehicle = mp.vehicles.atRemoteId(vehRemoteID);
if (vehicle != null) { if (vehicle != null) {
var boneIndex2 = vehicle.getBoneIndexByName("platelight"); var boneIndex2 = vehicle.getBoneIndexByName("platelight");
var boneIndex1 = vehicle.getBoneIndexByName("chassis_dummy"); var boneIndex1 = vehicle.getBoneIndexByName("chassis_dummy");
@@ -154,15 +171,15 @@
let pos = plateVec.add(temp); let pos = plateVec.add(temp);
if (BlipTonneHinten) BlipTonneHinten.destroy(); if (blipDumptruck) blipDumptruck.destroy();
BlipTonneHinten = null; blipDumptruck = null;
if (CheckpointTonneHinten) CheckpointTonneHinten.destroy(); if (dumptruckMarker) dumptruckMarker.destroy();
CheckpointTonneHinten = null; dumptruckMarker = null;
if (ShapeTonneHinten) ShapeTonneHinten.destroy(); if (colshapeDumptruck) colshapeDumptruck.destroy();
ShapeTonneHinten = null; colshapeDumptruck = null;
BlipTonneHinten = mp.blips.new(318, pos, { name: 'Müllmann', color: 24, shortRange: false }); blipDumptruck = mp.blips.new(318, pos, { name: 'Müllmann', color: 24, shortRange: false });
CheckpointTonneHinten = mp.markers.new(1, pos, 1, { direction: new mp.Vector3(-235.5747, -1685.475, 32.7207), color: [0, 255, 0, 255], visible: true, dimension: 0 }); dumptruckMarker = mp.markers.new(1, pos, 1, { direction: new mp.Vector3(-235.5747, -1685.475, 32.7207), color: [0, 255, 0, 255], visible: true, dimension: 0 });
ShapeTonneHinten = mp.colshapes.newSphere(pos.x, pos.y, pos.z, 2); colshapeDumptruck = mp.colshapes.newSphere(pos.x, pos.y, pos.z, 2);
} }
}; };
} }

View File

@@ -203,26 +203,50 @@ class RageVehicle extends RageEntity implements IVehicle {
} }
isSeatFree(seat: VehicleSeat): boolean { isSeatFree(seat: VehicleSeat): boolean {
if (!mp.vehicles.exists(this.vehicle)) {
return false;
}
return this.vehicle.isSeatFree(<number>seat - 1); return this.vehicle.isSeatFree(<number>seat - 1);
} }
setEngineStatus(status: boolean, instantly: boolean, otherwise: boolean) { setEngineStatus(status: boolean, instantly: boolean, otherwise: boolean) {
if (!mp.vehicles.exists(this.vehicle)) {
return false;
}
this.vehicle.setEngineOn(status, instantly, otherwise); this.vehicle.setEngineOn(status, instantly, otherwise);
} }
setUndriveable(status: boolean) { setUndriveable(status: boolean) {
if (!mp.vehicles.exists(this.vehicle)) {
return false;
}
this.vehicle.setUndriveable(status); this.vehicle.setUndriveable(status);
} }
setDoorsLocked(state: boolean) { setDoorsLocked(state: boolean) {
if (!mp.vehicles.exists(this.vehicle)) {
return false;
}
this.vehicle.setDoorsLocked(state ? 2 : 1); this.vehicle.setDoorsLocked(state ? 2 : 1);
} }
setDoorOpen(door: number, loose: boolean, instantly: boolean) { setDoorOpen(door: number, loose: boolean, instantly: boolean) {
if (!mp.vehicles.exists(this.vehicle)) {
return false;
}
this.vehicle.setDoorOpen(door, loose, instantly); this.vehicle.setDoorOpen(door, loose, instantly);
} }
setDoorShut(door: number, instantly: boolean) { setDoorShut(door: number, instantly: boolean) {
if (!mp.vehicles.exists(this.vehicle)) {
return false;
}
this.vehicle.setDoorShut(door, instantly); this.vehicle.setDoorShut(door, instantly);
} }
} }

View File

@@ -276,7 +276,8 @@ namespace ReallifeGamemode.Server.Commands
[Command("tsupport", "~m~Benutzung: ~s~/tsupport", Alias = "ts")] [Command("tsupport", "~m~Benutzung: ~s~/tsupport", Alias = "ts")]
public void CmdAdminTSupport(Player player) public void CmdAdminTSupport(Player player)
{ {
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) User user = player.GetUser();
if (!user.IsAdmin(AdminLevel.SUPPORTER))
{ {
ChatService.NotAuthorized(player); ChatService.NotAuthorized(player);
return; return;
@@ -289,51 +290,14 @@ namespace ReallifeGamemode.Server.Commands
if (player.GetData<bool>("SAdminduty") == false) if (player.GetData<bool>("SAdminduty") == false)
{ {
player.SetData("SAdminduty", true); player.SetData("SAdminduty", true);
player.SetSharedData("blipColor", 30);
player.SetSharedData("nameTagColor", -2);
ChatService.SendMessage(player, "~g~ ** " + "Du befindest dich im T-Support"); ChatService.SendMessage(player, "~g~ ** " + "Du befindest dich im T-Support");
} }
else else
{ {
player.SetData("SAdminduty", false); player.SetData("SAdminduty", false);
ChatService.SendMessage(player, "!{#ee4d2e}** " + "Du befindest dich nicht mehr im T-Support"); ChatService.SendMessage(player, "!{#ee4d2e}** " + "Du befindest dich nicht mehr im T-Support");
using (var dbContext = new DatabaseContext())
{
User targetUser = player.GetUser(dbContext);
switch (targetUser.FactionId)
{
case null:
player.SetSharedData("blipColor", 0);
player.SetSharedData("nameTagColor", 0);
break;
case 0:
player.SetSharedData("blipColor", 0);
player.SetSharedData("nameTagColor", 0);
break;
case 8:
player.SetSharedData("blipColor", 83);
player.SetSharedData("nameTagColor", 8);
break;
case 7:
player.SetSharedData("blipColor", 52);
player.SetSharedData("nameTagColor", 7);
break;
case 4:
player.SetSharedData("blipColor", 5);
player.SetSharedData("nameTagColor", 4);
break;
case 9:
player.SetSharedData("blipColor", 25);
player.SetSharedData("nameTagColor", 9);
break;
}
player.SetSharedData("nameTagColor", targetUser.FactionId);
}
} }
user.SetBlipAndNametagColor();
} }
[Command("aduty", "~m~Benutzung: ~s~/aduty")] [Command("aduty", "~m~Benutzung: ~s~/aduty")]
public void CmdAdminAduty(Player player) public void CmdAdminAduty(Player player)
@@ -1498,37 +1462,12 @@ namespace ReallifeGamemode.Server.Commands
} }
ChatService.SendMessage(target, "!{#8181E9}Deine Akte wurde vom Admin " + player.Name + " gelöscht. Grund: " + reason); ChatService.SendMessage(target, "!{#8181E9}Deine Akte wurde vom Admin " + player.Name + " gelöscht. Grund: " + reason);
ChatService.BroadcastFaction("!{#8181E9}HQ: Die Akte von " + target.Name + " wurde vom Admin " + player.Name + " gelöscht. Grund: " + reason + ".", new List<int>() { 1, 3 }); ChatService.BroadcastFaction("!{#8181E9}HQ: Die Akte von " + target.Name + " wurde vom Admin " + player.Name + " gelöscht. Grund: " + reason + ".", new List<int>() { 1, 3 });
switch (targetUser.FactionId)
{
case null:
target.SetSharedData("blipColor", 0);
target.SetSharedData("nameTagColor", 0);
break;
case 0:
target.SetSharedData("blipColor", 0);
target.SetSharedData("nameTagColor", 0);
break;
case 8:
target.SetSharedData("blipColor", 83);
target.SetSharedData("nameTagColor", 8);
break;
case 7:
target.SetSharedData("blipColor", 52);
target.SetSharedData("nameTagColor", 7);
break;
case 4:
target.SetSharedData("blipColor", 5);
target.SetSharedData("nameTagColor", 4);
break;
case 9:
target.SetSharedData("blipColor", 25);
target.SetSharedData("nameTagColor", 9);
break;
}
target.TriggerEvent("jailTime", 0); target.TriggerEvent("jailTime", 0);
targetUser.Wanteds = 0; targetUser.Wanteds = 0;
targetUser.SetBlipAndNametagColor();
dbContext.SaveChanges(); dbContext.SaveChanges();
} }
} }
@@ -2494,37 +2433,7 @@ namespace ReallifeGamemode.Server.Commands
} }
u.FactionLeader = false; u.FactionLeader = false;
switch (u.FactionId) u.SetBlipAndNametagColor();
{
case null:
target.SetSharedData("blipColor", 0);
target.SetSharedData("nameTagColor", 0);
break;
case 0:
target.SetSharedData("blipColor", 0);
target.SetSharedData("nameTagColor", 0);
break;
case 8:
target.SetSharedData("blipColor", 83);
target.SetSharedData("nameTagColor", 8);
break;
case 7:
target.SetSharedData("blipColor", 52);
target.SetSharedData("nameTagColor", 7);
break;
case 4:
target.SetSharedData("blipColor", 5);
target.SetSharedData("nameTagColor", 4);
break;
case 9:
target.SetSharedData("blipColor", 25);
target.SetSharedData("nameTagColor", 9);
break;
}
dbContext.SaveChanges(); dbContext.SaveChanges();
} }
} }
@@ -2567,36 +2476,7 @@ namespace ReallifeGamemode.Server.Commands
ChatService.SendMessage(player, "~b~[ADMIN]~s~ Du hast hast den Spieler ~y~" + target.Name + "~s~ zum Leader der Fraktion ~o~" + f.Name + "~s~ ernannt."); ChatService.SendMessage(player, "~b~[ADMIN]~s~ Du hast hast den Spieler ~y~" + target.Name + "~s~ zum Leader der Fraktion ~o~" + f.Name + "~s~ ernannt.");
ChatService.SendMessage(target, "~b~[ADMIN]~s~ Du wurdest von ~y~" + player.Name + "~s~ zum Leader der Fraktion ~o~" + f.Name + "~s~ ernannt."); ChatService.SendMessage(target, "~b~[ADMIN]~s~ Du wurdest von ~y~" + player.Name + "~s~ zum Leader der Fraktion ~o~" + f.Name + "~s~ ernannt.");
switch (u.FactionId) u.SetBlipAndNametagColor();
{
case null:
target.SetSharedData("blipColor", 0);
target.SetSharedData("nameTagColor", 0);
break;
case 0:
target.SetSharedData("blipColor", 0);
target.SetSharedData("nameTagColor", 0);
break;
case 8:
target.SetSharedData("blipColor", 83);
target.SetSharedData("nameTagColor", 8);
break;
case 7:
target.SetSharedData("blipColor", 52);
target.SetSharedData("nameTagColor", 7);
break;
case 4:
target.SetSharedData("blipColor", 5);
target.SetSharedData("nameTagColor", 4);
break;
case 9:
target.SetSharedData("blipColor", 25);
target.SetSharedData("nameTagColor", 9);
break;
}
dbContext.SaveChanges(); dbContext.SaveChanges();
} }
} }

View File

@@ -472,40 +472,12 @@ namespace ReallifeGamemode.Server.Commands
} }
ChatService.SendMessage(target, "!{#8181E9}Deine Akte wurde von " + player.Name + " gelöscht. Grund: " + reason); ChatService.SendMessage(target, "!{#8181E9}Deine Akte wurde von " + player.Name + " gelöscht. Grund: " + reason);
ChatService.BroadcastFaction("!{#8181E9}HQ: Die Akte von " + target.Name + " wurde von " + player.Name + " gelöscht. Grund: " + reason + ".", new List<int>() { 1, 3 }); ChatService.BroadcastFaction("!{#8181E9}HQ: Die Akte von " + target.Name + " wurde von " + player.Name + " gelöscht. Grund: " + reason + ".", new List<int>() { 1, 3 });
target.SetSharedData("blipColor", 0);
switch (targetUser.FactionId)
{
case null:
target.SetSharedData("blipColor", 0);
target.SetSharedData("nameTagColor", 0);
break;
case 0:
target.SetSharedData("blipColor", 0);
target.SetSharedData("nameTagColor", 0);
break;
case 8:
target.SetSharedData("blipColor", 83);
target.SetSharedData("nameTagColor", 8);
break;
case 7:
target.SetSharedData("blipColor", 52);
target.SetSharedData("nameTagColor", 7);
break;
case 4:
target.SetSharedData("blipColor", 5);
target.SetSharedData("nameTagColor", 4);
break;
case 9:
target.SetSharedData("blipColor", 25);
target.SetSharedData("nameTagColor", 9);
break;
}
target.TriggerEvent("jailTime", 0); target.TriggerEvent("jailTime", 0);
targetUser.Wanteds = 0; targetUser.Wanteds = 0;
targetUser.SetBlipAndNametagColor();
dbContext.SaveChanges(); dbContext.SaveChanges();
} }
} }

View File

@@ -295,27 +295,8 @@ namespace ReallifeGamemode.Server.Events
} }
switch (factionId) switch (factionId)
{ {
//LSPD
case 1:
//nameTagColor = new Color(28, 134, 238);
//player.TriggerEvent("setNameTag", JsonConvert.SerializeObject(new int[] { 28, 134, 238 }));
player.SetSharedData("nameTagColor", factionId);
player.SetSharedData("blipColor", 38);
break;
//Medic
case 2:
//nameTagColor = new Color(255, 0, 0);
//player.TriggerEvent("setNameTag", JsonConvert.SerializeObject(new int[] { 255, 0, 0 }));
player.SetSharedData("nameTagColor", factionId);
player.SetSharedData("blipColor", 6);
break;
//FBI //FBI
case 3: case 3:
//nameTagColor = new Color(173, 0, 118);
player.SetSharedData("nameTagColor", factionId);
player.SetSharedData("blipColor", 63);
player.SetAccessories(2, 2, 0); player.SetAccessories(2, 2, 0);
break; break;
} }
@@ -349,10 +330,9 @@ namespace ReallifeGamemode.Server.Events
player.SendNotification("Du bist nun ~r~außer Dienst."); player.SendNotification("Du bist nun ~r~außer Dienst.");
player.TriggerEvent("toggleDutyMode", false); player.TriggerEvent("toggleDutyMode", false);
Medic.UpdateDutyMedics(-1); Medic.UpdateDutyMedics(-1);
player.SetSharedData("blipColor", 0);
player.SetSharedData("nameTagColor", 0);
UpdateCharacterCloth.LoadCharacterDefaults(player); UpdateCharacterCloth.LoadCharacterDefaults(player);
} }
user.SetBlipAndNametagColor();
} }
if (nearestWeapon != null) // Weapon Point if (nearestWeapon != null) // Weapon Point
@@ -515,6 +495,11 @@ namespace ReallifeGamemode.Server.Events
foreach (Player target in NAPI.Pools.GetAllPlayers()) foreach (Player target in NAPI.Pools.GetAllPlayers())
{ {
User c = target.GetUser(); User c = target.GetUser();
if(c == null)
{
continue;
}
if (c.JailTime > 0) if (c.JailTime > 0)
{ {
criminals.Add(c.Name); criminals.Add(c.Name);

View File

@@ -100,42 +100,7 @@ namespace ReallifeGamemode.Server.Events
var userItems = dbContext.UserItems.Where(u => u.UserId == user.Id).ToList(); var userItems = dbContext.UserItems.Where(u => u.UserId == user.Id).ToList();
player.SetData("items", userItems); player.SetData("items", userItems);
switch (user.FactionId) user.SetBlipAndNametagColor();
{
case null:
player.SetSharedData("blipColor", 0);
player.SetSharedData("nameTagColor", 0);
break;
case 0:
player.SetSharedData("blipColor", 0);
player.SetSharedData("nameTagColor", 0);
break;
case 8:
player.SetSharedData("blipColor", 83);
player.SetSharedData("nameTagColor", 8);
break;
case 7:
player.SetSharedData("blipColor", 52);
player.SetSharedData("nameTagColor", 7);
break;
case 4:
player.SetSharedData("blipColor", 5);
player.SetSharedData("nameTagColor", 4);
break;
case 9:
player.SetSharedData("blipColor", 25);
player.SetSharedData("nameTagColor", 9);
break;
default:
player.SetSharedData("blipColor", 0);
player.SetSharedData("nameTagColor", 0);
break;
}
if (user.CharacterId == null) if (user.CharacterId == null)
{ {

View File

@@ -131,8 +131,7 @@ namespace ReallifeGamemode.Server.Extensions
dbUser.Wanteds = newWanteds; dbUser.Wanteds = newWanteds;
dbContext.SaveChanges(); dbContext.SaveChanges();
} }
user.Player.SetSharedData("nameTagColor", -1); user.SetBlipAndNametagColor();
user.Player.SetSharedData("blipColor", 64);
ChatService.SendMessage(user.Player, "!{#FF614A}Du hast ein Verbrechen begangen: " + reason + "" + (cop != null ? " | Gemeldet von: " + cop.Name + "." : "")); ChatService.SendMessage(user.Player, "!{#FF614A}Du hast ein Verbrechen begangen: " + reason + "" + (cop != null ? " | Gemeldet von: " + cop.Name + "." : ""));
ChatService.SendMessage(user.Player, " !{#FFFF00}Fahnundgslevel:~s~ " + newWanteds); ChatService.SendMessage(user.Player, " !{#FFFF00}Fahnundgslevel:~s~ " + newWanteds);
@@ -237,11 +236,81 @@ namespace ReallifeGamemode.Server.Extensions
public static bool IsAdmin(this User user, AdminLevel adminLevel) public static bool IsAdmin(this User user, AdminLevel adminLevel)
{ {
if(user == null) if (user == null)
{ {
return false; return false;
} }
return user.AdminLevel >= adminLevel; return user.AdminLevel >= adminLevel;
} }
public static void SetBlipAndNametagColor(this User user)
{
if (user == null)
{
return;
}
int blipColor = 0;
int nameTagColor = 0;
Player player = user.Player;
bool duty = user.GetData<bool>("duty");
if (player.GetData<bool>("SAdminduty"))
{
blipColor = 30;
nameTagColor = -2;
}
else if (user.Wanteds > 0)
{
nameTagColor = -1;
blipColor = 64;
}
else if (user.Faction != null)
{
nameTagColor = user.FactionId.Value;
switch (user.FactionId)
{
case 1 when duty:
blipColor = 38;
break;
case 2 when duty:
blipColor = 6;
break;
case 3 when duty:
blipColor = 63;
break;
case 4:
blipColor = 5;
break;
case 5:
break;
case 6:
break;
case 7:
blipColor = 52;
break;
case 8:
blipColor = 83;
break;
case 9:
blipColor = 25;
break;
}
}
NAPI.Util.ConsoleOutput($"{player.Name} - Setting blip and nametag color: nametag = {nameTagColor}, blip = {blipColor}");
user.Player.SetSharedData("nameTagColor", nameTagColor);
user.Player.SetSharedData("blipColor", blipColor);
}
} }
} }

View File

@@ -19,7 +19,7 @@ namespace ReallifeGamemode.Server.Job
public override bool NeedVehicleToStart => false; public override bool NeedVehicleToStart => false;
const int MAX_BAG = 40; private const int MAX_BAG = 40;
public RefuseCollectorJob() public RefuseCollectorJob()
{ {
@@ -157,7 +157,6 @@ namespace ReallifeGamemode.Server.Job
new Vector3(-921.0493774414062, -1095.1513671875, 2.1503124237060547), new Vector3(-921.0493774414062, -1095.1513671875, 2.1503124237060547),
new Vector3(-942.0684204101562, -1077.1378173828125, 2.1503121852874756), new Vector3(-942.0684204101562, -1077.1378173828125, 2.1503121852874756),
new Vector3(-951.5316772460938, -1078.955078125, 2.1503100395202637), new Vector3(-951.5316772460938, -1078.955078125, 2.1503100395202637),
}.AsReadOnly(); }.AsReadOnly();
[RemoteEvent("CLIENT:MuellmannJobStarten")] [RemoteEvent("CLIENT:MuellmannJobStarten")]
@@ -165,7 +164,6 @@ namespace ReallifeGamemode.Server.Job
{ {
if (vehicle.Model == (uint)Types.VehicleModel.Trash || vehicle.Model == (uint)Types.VehicleModel.Trash2) if (vehicle.Model == (uint)Types.VehicleModel.Trash || vehicle.Model == (uint)Types.VehicleModel.Trash2)
{ {
Vehicle veh; Vehicle veh;
foreach (var data in muellmanData) foreach (var data in muellmanData)
{ {
@@ -192,7 +190,7 @@ namespace ReallifeGamemode.Server.Job
if (data.hasFreePlace()) if (data.hasFreePlace())
{ {
if(data.vehicle != null) if (data.vehicle != null)
data.vehicle.GetServerVehicle().Spawn(data.vehicle); data.vehicle.GetServerVehicle().Spawn(data.vehicle);
muellmanData.Remove(data); muellmanData.Remove(data);
return; return;
@@ -211,13 +209,13 @@ namespace ReallifeGamemode.Server.Job
} }
[RemoteEvent("CLIENT:MuellmannImShape")] [RemoteEvent("CLIENT:MuellmannImShape")]
public void MuellmannImShape(Player player, int colshapeIndex) public void MuellmannImShape(Player player, Vector3 blipCoords)
{ {
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", colshapeIndex); if (target != null) target.TriggerEvent("MuellmannUpdateColshape", blipCoords);
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;
@@ -260,19 +258,17 @@ namespace ReallifeGamemode.Server.Job
} }
player.TriggerEvent("SERVER:MuellmannZuBase"); player.TriggerEvent("SERVER:MuellmannZuBase");
} }
else if(data.getTrashCount() > MAX_BAG) else if (data.getTrashCount() > MAX_BAG)
{ {
data.setTrashCount(MAX_BAG); data.setTrashCount(MAX_BAG);
ChatService.ErrorMessage((Player)player, "Der Müllwagen ist schon voll."); ChatService.ErrorMessage((Player)player, "Der Müllwagen ist schon voll.");
} }
else else
{ {
if (target != null) if (target != null)
{ {
user1.Wage += 25; user1.Wage += 25;
user2.Wage += 25; user2.Wage += 25;
} }
else else
{ {
@@ -307,13 +303,13 @@ namespace ReallifeGamemode.Server.Job
if (target != null) if (target != null)
{ {
user1.Wage += (int)(bonus / 2); user1.Wage += (int)(bonus / 2);
user2.Wage += (int)(bonus / 2); user2.Wage += (int)(bonus / 2);
} }
else else
{ {
user1.Wage += bonus; user1.Wage += bonus;
} }
data.setTrashCount(0); data.setTrashCount(0);
dbContext.SaveChanges(); dbContext.SaveChanges();

View File

@@ -69,32 +69,7 @@ namespace ReallifeGamemode.Server.Managers
ChatService.SendMessage(leader, "!{02FCFF}" + player.Name + " hat die Einladung angenommen."); ChatService.SendMessage(leader, "!{02FCFF}" + player.Name + " hat die Einladung angenommen.");
ChatService.SendMessage(player, "!{02FCFF}Du hast die Einladung angenommen."); ChatService.SendMessage(player, "!{02FCFF}Du hast die Einladung angenommen.");
switch (own.FactionId) own.SetBlipAndNametagColor();
{
default:
player.SetSharedData("blipColor", 0);
player.SetSharedData("nameTagColor", 0);
break;
case 8:
player.SetSharedData("blipColor", 83);
player.SetSharedData("nameTagColor", 8);
break;
case 7:
player.SetSharedData("blipColor", 52);
player.SetSharedData("nameTagColor", 7);
break;
case 4:
player.SetSharedData("blipColor", 5);
player.SetSharedData("nameTagColor", 4);
break;
case 9:
player.SetSharedData("blipColor", 25);
player.SetSharedData("nameTagColor", 9);
break;
}
dbContext.SaveChanges(); dbContext.SaveChanges();
} }
} }
@@ -247,8 +222,10 @@ namespace ReallifeGamemode.Server.Managers
return; return;
} }
User targetUser = target.GetUser(); using var dbContext = new DatabaseContext();
User playerUser = player.GetUser();
User targetUser = target.GetUser(dbContext);
User playerUser = player.GetUser(dbContext);
if (type == "Fraktion") if (type == "Fraktion")
{ {
@@ -276,21 +253,16 @@ namespace ReallifeGamemode.Server.Managers
return; return;
} }
using (var dbContext = new DatabaseContext()) target.SetData("duty", false);
{ target.TriggerEvent("toggleDutyMode", false);
target.SetData("duty", false); Medic.UpdateDutyMedics(-1);
target.TriggerEvent("toggleDutyMode", false); UpdateCharacterCloth.LoadCharacterDefaults(target);
Medic.UpdateDutyMedics(-1); target.GetUser(dbContext).FactionRankId = null;
target.SetSharedData("blipColor", 0); target.GetUser(dbContext).FactionId = null;
UpdateCharacterCloth.LoadCharacterDefaults(target); ChatService.SendMessage(player, "!{02FCFF}Du hast " + target.Name + " aus der Fraktion geworfen.");
target.GetUser(dbContext).FactionRankId = null; ChatService.SendMessage(target, "!{02FCFF}Du wurdest von " + player.Name + " aus der Fraktion geworfen.");
target.GetUser(dbContext).FactionId = null; targetUser.SetBlipAndNametagColor();
ChatService.SendMessage(player, "!{02FCFF}Du hast " + target.Name + " aus der Fraktion geworfen."); dbContext.SaveChanges();
ChatService.SendMessage(target, "!{02FCFF}Du wurdest von " + player.Name + " aus der Fraktion geworfen.");
target.SetSharedData("blipColor", 0);
player.SetSharedData("nameTagColor", 0);
dbContext.SaveChanges();
}
} }
else if (type == "Gruppe") else if (type == "Gruppe")
{ {
@@ -318,16 +290,13 @@ namespace ReallifeGamemode.Server.Managers
return; return;
} }
using (var dbContext = new DatabaseContext()) targetUser.Group = null;
{ targetUser.GroupRank = GroupRank.NONE;
target.GetUser(dbContext).Group = null;
target.GetUser(dbContext).GroupRank = GroupRank.NONE;
ChatService.SendMessage(player, "!{02FCFF}Du hast " + target.Name + " aus der Gruppe geworfen."); ChatService.SendMessage(player, "!{02FCFF}Du hast " + target.Name + " aus der Gruppe geworfen.");
ChatService.SendMessage(target, "!{02FCFF}Du wurdest von " + player.Name + " aus der Gruppe geworfen."); ChatService.SendMessage(target, "!{02FCFF}Du wurdest von " + player.Name + " aus der Gruppe geworfen.");
dbContext.SaveChanges(); dbContext.SaveChanges();
}
} }
} }
@@ -377,7 +346,7 @@ namespace ReallifeGamemode.Server.Managers
[RemoteEvent("CLIENT:InteractionMenu_LeaveGroup")] [RemoteEvent("CLIENT:InteractionMenu_LeaveGroup")]
public void InteractionMenuGroupLeageGroup(Player player, string type) public void InteractionMenuGroupLeageGroup(Player player, string type)
{ {
if (type == "Gruppe") if (type == "Gruppe")
{ {
using (var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
@@ -390,15 +359,15 @@ namespace ReallifeGamemode.Server.Managers
return; return;
} }
if(dbContext.Users.Count(c => c.Group == playerUser.Group) == 1) if (dbContext.Users.Count(c => c.Group == playerUser.Group) == 1)
{ {
InteractionMenuGroupDeleteGroup(player,"Gruppe"); InteractionMenuGroupDeleteGroup(player, "Gruppe");
return; return;
} }
var group = player.GetUser().Group; var group = player.GetUser().Group;
if(playerUser.GroupRank == GroupRank.OWNER) if (playerUser.GroupRank == GroupRank.OWNER)
{ {
var memberList = dbContext.Users.Where(u => u.Group == playerUser.Group && u.GroupRank < GroupRank.OWNER).ToList(); var memberList = dbContext.Users.Where(u => u.Group == playerUser.Group && u.GroupRank < GroupRank.OWNER).ToList();
var newOwner = memberList.OrderByDescending(c => c.GroupRank).First(); var newOwner = memberList.OrderByDescending(c => c.GroupRank).First();
@@ -406,7 +375,7 @@ namespace ReallifeGamemode.Server.Managers
newOwner.GroupRank = GroupRank.OWNER; newOwner.GroupRank = GroupRank.OWNER;
ChatService.BroadcastGroup("~y~" + newOwner.Name + "~s~ wurde zum neuen Besitzer ernannt", playerUser.Group); ChatService.BroadcastGroup("~y~" + newOwner.Name + "~s~ wurde zum neuen Besitzer ernannt", playerUser.Group);
} }
playerUser.GroupRank = GroupRank.NONE; playerUser.GroupRank = GroupRank.NONE;
playerUser.Group = null; playerUser.Group = null;
ChatService.BroadcastGroup("~y~" + player.Name + "~s~ hat die Gruppe verlassen", group); ChatService.BroadcastGroup("~y~" + player.Name + "~s~ hat die Gruppe verlassen", group);
@@ -422,13 +391,13 @@ namespace ReallifeGamemode.Server.Managers
if (type == "Gruppe") if (type == "Gruppe")
{ {
using (var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
if (playerUser?.Group == null || playerUser.GroupRank < GroupRank.OWNER) if (playerUser?.Group == null || playerUser.GroupRank < GroupRank.OWNER)
{ {
ChatService.NotAuthorized(player); ChatService.NotAuthorized(player);
return; return;
} }
var deletedGroup = dbContext.Groups.FirstOrDefault(g => g.Id == playerUser.Group.Id); var deletedGroup = dbContext.Groups.FirstOrDefault(g => g.Id == playerUser.Group.Id);
foreach (var user in dbContext.Users.Where(u => u.Group == playerUser.Group).ToList()) foreach (var user in dbContext.Users.Where(u => u.Group == playerUser.Group).ToList())
@@ -443,12 +412,12 @@ namespace ReallifeGamemode.Server.Managers
} }
} }
[RemoteEvent("CLIENT:InteractionMenu_CallService_Taxi")] [RemoteEvent("CLIENT:InteractionMenu_CallService_Taxi")]
public void CallServiceTaxi(Player player, string street, string zone) public void CallServiceTaxi(Player player, string street, string zone)
{ {
var taxiJob = JobManager.GetJob<TaxiDriverJob>(); var taxiJob = JobManager.GetJob<TaxiDriverJob>();
if(taxiJob == null) if (taxiJob == null)
{ {
player.SendChatMessage("Aktuell kann kein Taxi gerufen werden."); player.SendChatMessage("Aktuell kann kein Taxi gerufen werden.");
return; return;
@@ -802,20 +771,20 @@ namespace ReallifeGamemode.Server.Managers
{ {
if (!player.IsLoggedIn()) return; if (!player.IsLoggedIn()) return;
List<Player> players = NAPI.Pools.GetAllPlayers(); List<Player> players = NAPI.Pools.GetAllPlayers();
var listPlayers = players.Where(p => p.GetUser().Wanteds > 0)
.Select(p => new
{
Id = p.Handle.Value,
p.Name,
wanted = p.GetUser().Wanteds,
});
if (listPlayers.Count() > 0) var listPlayers = players.Where(p => p.GetUser().Wanteds > 0)
player.TriggerEvent("showWantedlist", JsonConvert.SerializeObject(listPlayers)); .Select(p => new
else {
player.SendNotification("~r~[Fehler] ~w~Es gibt derzeitig keine Verbrecher!"); Id = p.Handle.Value,
p.Name,
wanted = p.GetUser().Wanteds,
});
if (listPlayers.Count() > 0)
player.TriggerEvent("showWantedlist", JsonConvert.SerializeObject(listPlayers));
else
player.SendNotification("~r~[Fehler] ~w~Es gibt derzeitig keine Verbrecher!");
} }
@@ -854,11 +823,12 @@ namespace ReallifeGamemode.Server.Managers
if (player.GetData<bool>("healauftrag") == true) if (player.GetData<bool>("healauftrag") == true)
{ {
player.SendNotification("~r~[Fehler] ~w~Du hast bereits ein Sanitäter gerufen."); player.SendNotification("~r~[Fehler] ~w~Du hast bereits ein Sanitäter gerufen.");
}else }
{ else
Medic.AddTaskToList(healTask); {
Medic.AddTaskToList(healTask);
player.SetData("healauftrag", true); player.SetData("healauftrag", true);
ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat soeben einen Serviceauftrag beantragt.", new List<int>() { 2 }); ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat soeben einen Serviceauftrag beantragt.", new List<int>() { 2 });
} }
} }

View File

@@ -66,10 +66,12 @@ namespace ReallifeGamemode.Server.Wanted
jailTime /= 2; jailTime /= 2;
} }
client.GetUser(dbContext).JailTime = jailTime; User clientUser = client.GetUser(dbContext);
clientUser.JailTime = jailTime;
Jailtime[user.Id] = jailTime; // 54 sec for each wanted star -> in total 45min for 50 Wanteds Jailtime[user.Id] = jailTime; // 54 sec for each wanted star -> in total 45min for 50 Wanteds
client.GetUser(dbContext).Wanteds = 0; clientUser.Wanteds = 0;
client.SetData("isDead", false); client.SetData("isDead", false);
client.RemoveAllWeapons(); client.RemoveAllWeapons();
client.SetSharedData("blipColor", 0); client.SetSharedData("blipColor", 0);
@@ -100,29 +102,7 @@ namespace ReallifeGamemode.Server.Wanted
client.TriggerEvent("jailTime", JsonConvert.SerializeObject(timeMinutes)); client.TriggerEvent("jailTime", JsonConvert.SerializeObject(timeMinutes));
switch (user.FactionId) clientUser.SetBlipAndNametagColor();
{
case null:
client.SetSharedData("blipColor", 0);
client.SetSharedData("nameTagColor", 0);
break;
case 8:
client.SetSharedData("blipColor", 83);
client.SetSharedData("nameTagColor", 8);
break;
case 7:
client.SetSharedData("blipColor", 52);
client.SetSharedData("nameTagColor", 7);
break;
case 4:
client.SetSharedData("blipColor", 5);
client.SetSharedData("nameTagColor", 4);
break;
case 9:
client.SetSharedData("blipColor", 25);
client.SetSharedData("nameTagColor", 9);
break;
}
if (announceHq) if (announceHq)
{ {