Merge branch 'develop' into 'master'
Develop See merge request log-gtav/reallife-gamemode!37
This commit is contained in:
@@ -1,8 +1,4 @@
|
||||
|
||||
|
||||
export default function playerBlips() {
|
||||
|
||||
|
||||
export default function playerBlips() {
|
||||
var playerBlipMap: Map<PlayerMp, BlipMp>;
|
||||
var ready = false;
|
||||
|
||||
@@ -14,12 +10,14 @@ export default function playerBlips() {
|
||||
(player) => {
|
||||
if (mp.players.local == player)
|
||||
return;
|
||||
|
||||
|
||||
if (!playerBlipMap.has(player)) {
|
||||
let pBlip = mp.blips.new(1, player.position, {
|
||||
alpha: 200,
|
||||
shortRange: true,
|
||||
dimension: mp.players.local.dimension,
|
||||
drawDistance: 300
|
||||
drawDistance: 300,
|
||||
scale: 0.7,
|
||||
});
|
||||
|
||||
pBlip.setCategory(7);
|
||||
@@ -47,7 +45,6 @@ export default function playerBlips() {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
mp.events.addDataHandler("blipColor", (entity, value) => {
|
||||
if (entity.type === "player") {
|
||||
let color = parseInt(value);
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
export default function RefuseCollector() {
|
||||
var State = false;
|
||||
var Traegt = false;
|
||||
var HintenVoll = false;
|
||||
var hasBinBag = false;
|
||||
var dumptruckIsFull = false;
|
||||
|
||||
var BlipTonneHinten = null;
|
||||
var CheckpointTonneHinten = null;
|
||||
var ShapeTonneHinten = null;
|
||||
var BlipTonneBase = null;
|
||||
var CheckpointTonneBase = null;
|
||||
var ShapeTonneBase = null;
|
||||
var vehicle = null;
|
||||
var blipDumptruck = null;
|
||||
var dumptruckMarker = null;
|
||||
var colshapeDumptruck = null;
|
||||
var blipBase = null;
|
||||
var markerBase = null;
|
||||
var colshapeBase = null;
|
||||
var vehRemoteID = null;
|
||||
|
||||
var interval = null;
|
||||
|
||||
var BlipTonne = [];
|
||||
var ShapeTonne = [];
|
||||
var garbageToCollect = new Map<number, { blip: BlipMp, colshape: ColshapeMp }>();
|
||||
|
||||
mp.events.add('SERVER:MuellmannStatusTrue', () => {
|
||||
State = true;
|
||||
@@ -24,111 +23,138 @@
|
||||
State = false;
|
||||
});
|
||||
|
||||
mp.events.add('SERVER:MuellmannBCSErstellen', (jsonPosArr, veh) => {
|
||||
mp.events.add('SERVER:MuellmannBCSErstellen', (jsonPosArr, veh: VehicleMp) => {
|
||||
let posArr = JSON.parse(jsonPosArr);
|
||||
vehicle = veh;
|
||||
vehRemoteID = veh.remoteId;
|
||||
for (var i = 0; i < posArr.length; i++) {
|
||||
let pos = new mp.Vector3(posArr[i].x, posArr[i].y, posArr[i].z - 1)
|
||||
BlipTonne.push(mp.blips.new(1, pos, { name: 'Mülltonne', color: 45, shortRange: false }));
|
||||
BlipTonne[i].setFlashTimer(2000);
|
||||
ShapeTonne.push(mp.colshapes.newSphere(posArr[i].x, posArr[i].y, posArr[i].z + 0.5, 1.75));
|
||||
|
||||
let newBlip = mp.blips.new(1, new mp.Vector3(pos.x, pos.y, pos.z), { name: 'Mülltonne', color: 0, shortRange: false, scale: 0.7 });
|
||||
let newColShape = mp.colshapes.newSphere(posArr[i].x, posArr[i].y, posArr[i].z + 0.5, 1.75);
|
||||
newBlip.setPriority(1000);
|
||||
|
||||
newBlip.setFlashTimer(2000);
|
||||
|
||||
garbageToCollect.set(i, { blip: newBlip, colshape: newColShape });
|
||||
}
|
||||
|
||||
BlipTonneBase = 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 });
|
||||
ShapeTonneBase = mp.colshapes.newSphere(-442.3999, -1701.5234, 18.933002 - 1, 10);
|
||||
blipBase = mp.blips.new(515, new mp.Vector3(-442.3999, -1701.5234, 18.933002 - 1), { name: 'Recylinganlage', color: 24, shortRange: false });
|
||||
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 });
|
||||
colshapeBase = mp.colshapes.newSphere(-442.3999, -1701.5234, 18.933002 - 1, 10);
|
||||
});
|
||||
mp.events.add('SERVER:MuellmannBCSEntfernen', () => {
|
||||
for (var i = 0; i < BlipTonne.length; i++) {
|
||||
if (BlipTonne[i] == null) continue;
|
||||
BlipTonne[i].destroy();
|
||||
ShapeTonne[i].destroy();
|
||||
}
|
||||
BlipTonne = [];
|
||||
ShapeTonne = [];
|
||||
garbageToCollect.forEach((collection, index) => {
|
||||
let { blip, colshape } = collection;
|
||||
|
||||
if (BlipTonneHinten) BlipTonneHinten.destroy();
|
||||
BlipTonneHinten = null;
|
||||
if (CheckpointTonneHinten) CheckpointTonneHinten.destroy();
|
||||
CheckpointTonneHinten = null;
|
||||
if (ShapeTonneHinten) ShapeTonneHinten.destroy();
|
||||
ShapeTonneHinten = null;
|
||||
if (BlipTonneBase) BlipTonneBase.destroy();
|
||||
BlipTonneBase = null;
|
||||
if (CheckpointTonneBase) CheckpointTonneBase.destroy();
|
||||
CheckpointTonneBase = null;
|
||||
if (ShapeTonneBase) ShapeTonneBase.destroy();
|
||||
ShapeTonneBase = null;
|
||||
Traegt = false;
|
||||
if (colshape && mp.colshapes.exists(colshape))
|
||||
colshape.destroy();
|
||||
if (blip && mp.blips.exists(blip))
|
||||
blip.destroy();
|
||||
});
|
||||
|
||||
garbageToCollect.clear();
|
||||
|
||||
if (blipDumptruck) blipDumptruck.destroy();
|
||||
blipDumptruck = null;
|
||||
if (dumptruckMarker) dumptruckMarker.destroy();
|
||||
dumptruckMarker = null;
|
||||
if (colshapeDumptruck) colshapeDumptruck.destroy();
|
||||
colshapeDumptruck = null;
|
||||
if (blipBase) blipBase.destroy();
|
||||
blipBase = null;
|
||||
if (markerBase) markerBase.destroy();
|
||||
markerBase = null;
|
||||
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));
|
||||
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);
|
||||
}
|
||||
else {
|
||||
mp.gui.chat.push("Der Müllwagen ist bereits voll! Fahre zur Base und lade ab!");
|
||||
return;
|
||||
}
|
||||
}
|
||||
else {
|
||||
mp.gui.chat.push(`Du trägst bereits einen Müllsack!`);
|
||||
return;
|
||||
}
|
||||
let i = getIndex(currentShape);
|
||||
|
||||
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 (hasBinBag) { mp.gui.chat.push("Du trägst bereits einen Müllsack!"); return; }
|
||||
|
||||
if (!dumptruckIsFull) {
|
||||
mp.events.callRemote('CLIENT:MuellmannImShape', i);
|
||||
hasBinBag = true;
|
||||
|
||||
if (colshape)
|
||||
colshape.destroy();
|
||||
if (blip)
|
||||
blip.destroy();
|
||||
|
||||
garbageToCollect.delete(i);
|
||||
|
||||
interval = setInterval(function () { createMarker(); }, 2);
|
||||
}
|
||||
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) {
|
||||
Traegt = false;
|
||||
|
||||
if (currentShape == colshapeDumptruck) {
|
||||
if (hasBinBag) {
|
||||
hasBinBag = false;
|
||||
mp.events.callRemote('CLIENT:MuellmannAddSack');
|
||||
|
||||
clearInterval(interval);
|
||||
|
||||
if (BlipTonneHinten) BlipTonneHinten.destroy();
|
||||
BlipTonneHinten = null;
|
||||
if (CheckpointTonneHinten) CheckpointTonneHinten.destroy();
|
||||
CheckpointTonneHinten = null;
|
||||
if (ShapeTonneHinten) ShapeTonneHinten.destroy();
|
||||
ShapeTonneHinten = null;
|
||||
if (blipDumptruck) blipDumptruck.destroy();
|
||||
blipDumptruck = null;
|
||||
if (dumptruckMarker) dumptruckMarker.destroy();
|
||||
dumptruckMarker = null;
|
||||
if (colshapeDumptruck) colshapeDumptruck.destroy();
|
||||
colshapeDumptruck = null;
|
||||
}
|
||||
}
|
||||
else if (Shape == ShapeTonneBase) {
|
||||
BlipTonneBase.setRoute(false);
|
||||
else if (currentShape == colshapeBase) {
|
||||
blipBase.setRoute(false);
|
||||
mp.events.callRemote('CLIENT:MuellmannBaseSack');
|
||||
HintenVoll = false;
|
||||
dumptruckIsFull = false;
|
||||
}
|
||||
});
|
||||
mp.events.add("MuellmannUpdateColshape", (index) => {
|
||||
if (BlipTonne[index] != null)
|
||||
BlipTonne[index].destroy();
|
||||
BlipTonne[index] = null;
|
||||
if (ShapeTonne[index] != null)
|
||||
ShapeTonne[index].destroy();
|
||||
ShapeTonne[index] = null;
|
||||
if (!garbageToCollect.has(index)) return;
|
||||
|
||||
let { blip, colshape } = garbageToCollect.get(index);
|
||||
|
||||
if (blip && mp.blips.exists(blip)) {
|
||||
blip.destroy();
|
||||
}
|
||||
|
||||
if (colshape && mp.colshapes.exists(colshape)) {
|
||||
colshape.destroy();
|
||||
}
|
||||
|
||||
garbageToCollect.delete(index);
|
||||
});
|
||||
|
||||
mp.events.add("SERVER:MuellmannZuBase", () => {
|
||||
BlipTonneBase.setRoute(true);
|
||||
BlipTonneBase.setRouteColour(5);
|
||||
HintenVoll = true;
|
||||
blipBase.setRoute(true);
|
||||
blipBase.setRouteColour(5);
|
||||
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() {
|
||||
let vehicle;
|
||||
if (vehRemoteID)
|
||||
vehicle = mp.vehicles.atRemoteId(vehRemoteID);
|
||||
if (vehicle != null) {
|
||||
var boneIndex2 = vehicle.getBoneIndexByName("platelight");
|
||||
var boneIndex1 = vehicle.getBoneIndexByName("chassis_dummy");
|
||||
@@ -153,15 +179,15 @@
|
||||
|
||||
let pos = plateVec.add(temp);
|
||||
|
||||
if (BlipTonneHinten) BlipTonneHinten.destroy();
|
||||
BlipTonneHinten = null;
|
||||
if (CheckpointTonneHinten) CheckpointTonneHinten.destroy();
|
||||
CheckpointTonneHinten = null;
|
||||
if (ShapeTonneHinten) ShapeTonneHinten.destroy();
|
||||
ShapeTonneHinten = null;
|
||||
BlipTonneHinten = 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 });
|
||||
ShapeTonneHinten = mp.colshapes.newSphere(pos.x, pos.y, pos.z, 2);
|
||||
if (blipDumptruck) blipDumptruck.destroy();
|
||||
blipDumptruck = null;
|
||||
if (dumptruckMarker) dumptruckMarker.destroy();
|
||||
dumptruckMarker = null;
|
||||
if (colshapeDumptruck) colshapeDumptruck.destroy();
|
||||
colshapeDumptruck = null;
|
||||
blipDumptruck = mp.blips.new(318, pos, { name: 'Müllmann', color: 24, shortRange: false });
|
||||
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 });
|
||||
colshapeDumptruck = mp.colshapes.newSphere(pos.x, pos.y, pos.z, 2);
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -113,9 +113,7 @@ export default function keys(globalData: IGlobalData) {
|
||||
//N //Motor Starten
|
||||
mp.keys.bind(0x4E, false, function () {
|
||||
if (!globalData.InChat) {
|
||||
if (!player.vehicle) return;
|
||||
if (player.vehicle.getSpeed() > 5) return;
|
||||
mp.events.callRemote("keyPress:N");
|
||||
mp.events.callRemote("keyPress:N");
|
||||
}
|
||||
});
|
||||
|
||||
@@ -136,7 +134,8 @@ export default function keys(globalData: IGlobalData) {
|
||||
//J // Job Starten
|
||||
mp.keys.bind(0x4A, false, () => {
|
||||
if (!globalData.InChat && globalData.LoggedIn && !globalData.InTuning) {
|
||||
mp.events.callRemote("CLIENT:JobManager_ShowJobMenu");
|
||||
//mp.events.callRemote("CLIENT:JobManager_ShowJobMenu");
|
||||
mp.events.callRemote("keyPress:J");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -203,26 +203,50 @@ class RageVehicle extends RageEntity implements IVehicle {
|
||||
}
|
||||
|
||||
isSeatFree(seat: VehicleSeat): boolean {
|
||||
if (!mp.vehicles.exists(this.vehicle)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return this.vehicle.isSeatFree(<number>seat - 1);
|
||||
}
|
||||
|
||||
setEngineStatus(status: boolean, instantly: boolean, otherwise: boolean) {
|
||||
if (!mp.vehicles.exists(this.vehicle)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.vehicle.setEngineOn(status, instantly, otherwise);
|
||||
}
|
||||
|
||||
setUndriveable(status: boolean) {
|
||||
if (!mp.vehicles.exists(this.vehicle)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.vehicle.setUndriveable(status);
|
||||
}
|
||||
|
||||
setDoorsLocked(state: boolean) {
|
||||
if (!mp.vehicles.exists(this.vehicle)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.vehicle.setDoorsLocked(state ? 2 : 1);
|
||||
}
|
||||
|
||||
setDoorOpen(door: number, loose: boolean, instantly: boolean) {
|
||||
if (!mp.vehicles.exists(this.vehicle)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.vehicle.setDoorOpen(door, loose, instantly);
|
||||
}
|
||||
|
||||
setDoorShut(door: number, instantly: boolean) {
|
||||
if (!mp.vehicles.exists(this.vehicle)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.vehicle.setDoorShut(door, instantly);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -276,7 +276,8 @@ namespace ReallifeGamemode.Server.Commands
|
||||
[Command("tsupport", "~m~Benutzung: ~s~/tsupport", Alias = "ts")]
|
||||
public void CmdAdminTSupport(Player player)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
|
||||
User user = player.GetUser();
|
||||
if (!user.IsAdmin(AdminLevel.SUPPORTER))
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
@@ -289,51 +290,14 @@ namespace ReallifeGamemode.Server.Commands
|
||||
if (player.GetData<bool>("SAdminduty") == false)
|
||||
{
|
||||
player.SetData("SAdminduty", true);
|
||||
player.SetSharedData("blipColor", 30);
|
||||
player.SetSharedData("nameTagColor", -2);
|
||||
ChatService.SendMessage(player, "~g~ ** " + "Du befindest dich im T-Support");
|
||||
}
|
||||
else
|
||||
{
|
||||
player.SetData("SAdminduty", false);
|
||||
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")]
|
||||
public void CmdAdminAduty(Player player)
|
||||
@@ -354,6 +318,11 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
else
|
||||
{
|
||||
if(player.GetData<bool>("SAdminduty"))
|
||||
{
|
||||
CmdAdminTSupport(player);
|
||||
}
|
||||
|
||||
player.SetData("Adminduty", false);
|
||||
ChatService.Broadcast("!{#ee4d2e}[SUPPORT] " + player.Name + " hat sich vom Support abgemeldet");
|
||||
|
||||
@@ -1493,37 +1462,12 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
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 });
|
||||
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);
|
||||
targetUser.Wanteds = 0;
|
||||
|
||||
targetUser.SetBlipAndNametagColor();
|
||||
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
@@ -1573,7 +1517,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
return;
|
||||
}
|
||||
|
||||
Vehicle v = NAPI.Vehicle.CreateVehicle(uHash, player.Position, player.Rotation.Z, color1, color2, engine: true);
|
||||
Vehicle v = NAPI.Vehicle.CreateVehicle(uHash, player.Position, player.Heading, color1, color2, engine: true);
|
||||
VehicleStreaming.SetEngineState(v, true);
|
||||
VehicleStreaming.SetLockStatus(v, false);
|
||||
player.SetIntoVehicle(v.Handle, 0);
|
||||
@@ -2489,38 +2433,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
u.FactionLeader = false;
|
||||
switch (u.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;
|
||||
}
|
||||
u.SetBlipAndNametagColor();
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
@@ -2563,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(target, "~b~[ADMIN]~s~ Du wurdest von ~y~" + player.Name + "~s~ zum Leader der Fraktion ~o~" + f.Name + "~s~ ernannt.");
|
||||
|
||||
switch (u.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;
|
||||
}
|
||||
u.SetBlipAndNametagColor();
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
@@ -3637,7 +3521,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
public void CmdAdminCheckStats(Player player, string nameOrId)
|
||||
{
|
||||
User user = player.GetUser();
|
||||
if(!user.IsAdmin(AdminLevel.ADMIN))
|
||||
if(!user.IsAdmin(AdminLevel.SUPPORTER))
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
}
|
||||
|
||||
@@ -109,9 +109,9 @@ namespace ReallifeGamemode.Server.Commands
|
||||
|
||||
string factionName = string.Empty;
|
||||
|
||||
if(f.StateOwned)
|
||||
if(f?.StateOwned ?? false)
|
||||
{
|
||||
factionName = player.GetUser().GetFactionRank().RankName;
|
||||
factionName = u.GetFactionRank().RankName;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -292,16 +292,15 @@ namespace ReallifeGamemode.Server.Commands
|
||||
|
||||
if (player.IsInVehicle)
|
||||
{
|
||||
ChatService.ErrorMessage(player, "Du kannst in einem Auto nicht wiederbeleben.");
|
||||
ChatService.ErrorMessage(player, "Du kannst in einem Auto nicht wiederbeleben");
|
||||
return;
|
||||
}
|
||||
|
||||
using var dbContext = new DatabaseContext();
|
||||
var nearPlayers = NAPI.Player.GetPlayersInRadiusOfPlayer(4, player);
|
||||
var deadPlayer = nearPlayers.Where(i => i.GetData<bool>("isDead") == true).FirstOrDefault();
|
||||
if (player == deadPlayer)
|
||||
{
|
||||
ChatService.ErrorMessage(player, "Du kannst dich nicht selbst wiederbeleben.");
|
||||
ChatService.ErrorMessage(player, "Du kannst dich nicht selbst wiederbeleben");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -311,34 +310,39 @@ namespace ReallifeGamemode.Server.Commands
|
||||
return;
|
||||
}
|
||||
|
||||
var deadPlayerUser = deadPlayer.GetUser(dbContext);
|
||||
|
||||
if (deadPlayerUser.Handmoney >= 100)
|
||||
if (deadPlayer.HasData("reviveSperre"))
|
||||
{
|
||||
deadPlayerUser.Handmoney -= 100;
|
||||
ChatService.ErrorMessage(player, "Der Spieler hat eine Revivesperre");
|
||||
return;
|
||||
}
|
||||
else
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
int bankMoney = 100 - deadPlayerUser.Handmoney;
|
||||
deadPlayerUser.Handmoney = 0;
|
||||
deadPlayerUser.BankAccount.Balance -= bankMoney;
|
||||
}
|
||||
var deadPlayerUser = deadPlayer.GetUser(dbContext);
|
||||
|
||||
dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += Medic.ReviveIncome;
|
||||
|
||||
dbContext.SaveChanges();
|
||||
if (deadPlayerUser.Handmoney >= 100)
|
||||
{
|
||||
deadPlayerUser.Handmoney -= 100;
|
||||
}
|
||||
else
|
||||
{
|
||||
int bankMoney = 100 - deadPlayerUser.Handmoney;
|
||||
deadPlayerUser.Handmoney = 0;
|
||||
deadPlayerUser.BankAccount.Balance -= bankMoney;
|
||||
}
|
||||
|
||||
player.PlayAnimation("amb@medic@standing@kneel@enter", "enter", 0);
|
||||
|
||||
player.PlayAnimation("amb@medic@standing@kneel@enter", "enter", 0);
|
||||
deadPlayer.TriggerEvent("onPlayerRevived");
|
||||
player.TriggerEvent("destroyMedicTaskCheckpoint");
|
||||
deadPlayer.SendNotification($"Du wurdest von ~y~{player.Name}~s~ für ~g~{100.ToMoneyString()} ~s~wiederbelebt.");
|
||||
player.SendNotification($"Du hast ~y~{deadPlayer.Name}~s~ wiederbelebt und ~g~{Medic.ReviveIncome}$ ~s~für die Fraktion verdient.");
|
||||
deadPlayer.SetData("isDead", false);
|
||||
deadPlayer.SetData("reviveSperre", 5);
|
||||
|
||||
dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += Medic.ReviveIncome;
|
||||
|
||||
deadPlayer.TriggerEvent("onPlayerRevived");
|
||||
player.TriggerEvent("destroyMedicTaskCheckpoint");
|
||||
deadPlayer.SendNotification($"Du wurdest von ~y~{player.Name}~s~ für ~g~{100.ToMoneyString()} ~s~wiederbelebt.");
|
||||
player.SendNotification($"Du hast ~y~{deadPlayer.Name}~s~ wiederbelebt und ~g~{Medic.ReviveIncome}$ ~s~für die Fraktion verdient.");
|
||||
deadPlayer.SetData("isDead", false);
|
||||
using (var dbContext1 = new DatabaseContext())
|
||||
{
|
||||
User u;
|
||||
u = deadPlayer.GetUser(dbContext1);
|
||||
u = deadPlayer.GetUser(dbContext);
|
||||
u.Dead = false;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
@@ -350,7 +354,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("heal", "~m~Benutzung: ~s~/heal [Spieler] (Preis)")] //TODO Eventuell noch mit Geldbetrag wie bei SA:MP
|
||||
public void CmdFactionMedicHealive(Player player, string receiver, int price = 100)
|
||||
public void CmdFactionMedicHealive(Player player, string receiver, int price = 10)
|
||||
{
|
||||
Player target = PlayerService.GetPlayerByNameOrId(receiver);
|
||||
if (player.GetUser()?.FactionId != 2)
|
||||
@@ -359,7 +363,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
return;
|
||||
}
|
||||
|
||||
if(player.Position.DistanceTo(target.Position) > 3)
|
||||
if(player.Position.DistanceTo(target.Position) > 5)
|
||||
{
|
||||
ChatService.ErrorMessage(player, "Der Patient ist zu weit entfernt");
|
||||
return;
|
||||
@@ -394,28 +398,10 @@ namespace ReallifeGamemode.Server.Commands
|
||||
return;
|
||||
}
|
||||
|
||||
using var dbContext = new DatabaseContext();
|
||||
User targetUser = target.GetUser(dbContext);
|
||||
|
||||
if (targetUser.Handmoney >= price)
|
||||
{
|
||||
targetUser.Handmoney -= price;
|
||||
}
|
||||
else
|
||||
{
|
||||
int bankMoney = price - targetUser.Handmoney;
|
||||
targetUser.Handmoney = 0;
|
||||
targetUser.BankAccount.Balance -= bankMoney;
|
||||
}
|
||||
|
||||
dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += price;
|
||||
|
||||
dbContext.SaveChanges();
|
||||
|
||||
target.Health = 100;
|
||||
target.SendNotification($"Du wurdest von ~g~{player.Name} ~s~ für ~g~{price.ToMoneyString()} geheilt.", false);
|
||||
player.SendNotification($"Du hast ~g~{target.Name} ~s~ für {price.ToMoneyString()} geheilt.", false);
|
||||
player.TriggerEvent("delHealTask");
|
||||
ChatService.SendMessage(target,"~g~" + player.Name + " ~s~möchte dich für ~g~$" + price + " ~s~heilen. Drücke ~g~J~s~ zum Erlauben oder ~r~N ~s~zum Verbieten");
|
||||
player.SendNotification("Du hast " + target.Name + " einen Heal angeboten",false);
|
||||
target.SetData<bool>("healDecision", true);
|
||||
Medic.HealDecisions.Add(new Medic.HealDecision {dMedic = player, dTarget = target, dPrice = price});
|
||||
}
|
||||
|
||||
#endregion Sanitäter Commands
|
||||
@@ -494,40 +480,12 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
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 });
|
||||
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);
|
||||
targetUser.Wanteds = 0;
|
||||
|
||||
targetUser.SetBlipAndNametagColor();
|
||||
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,9 +78,12 @@ namespace ReallifeGamemode.Server.Commands
|
||||
return;
|
||||
}
|
||||
|
||||
if (pVeh.GetServerVehicle() is ServerVehicle veh)
|
||||
using var dbContext = new DatabaseContext();
|
||||
|
||||
if (pVeh.GetServerVehicle(dbContext) is ServerVehicle veh)
|
||||
{
|
||||
ChatService.SendMessage(player, "~m~" + ((VehicleHash)pVeh.Model) + " | " + veh.ToString() + " | Farbe 1: " + pVeh.PrimaryColor + " | Farbe 2: " + pVeh.SecondaryColor + " | ID: " + pVeh.Handle.Value);
|
||||
string dbIdStr = player.GetUser(dbContext).IsAdmin(AdminLevel.ADMIN) ? $" | DB-ID: {veh.Id}" : "";
|
||||
ChatService.SendMessage(player, "~m~" + ((VehicleHash)pVeh.Model) + " | " + veh.ToString() + " | Farbe 1: " + pVeh.PrimaryColor + " | Farbe 2: " + pVeh.SecondaryColor + " | ID: " + pVeh.Handle.Value + dbIdStr);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -32,6 +32,7 @@ namespace ReallifeGamemode.Server.Events
|
||||
player.Kick();
|
||||
return;
|
||||
}
|
||||
|
||||
player.SetData("isDead", true);
|
||||
|
||||
|
||||
@@ -42,9 +43,6 @@ namespace ReallifeGamemode.Server.Events
|
||||
userDeath.SaveChanges();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//TODO: Zum Full Release entfernen
|
||||
if (player.HasData("togdeath")) {
|
||||
ChatService.SendMessage(player, "Du bist durch " + (killer?.Name ?? "Niemanden") + " gestorben: " + reason.ToString());
|
||||
@@ -92,21 +90,26 @@ namespace ReallifeGamemode.Server.Events
|
||||
|
||||
if (user.JailTime <= 0)
|
||||
{
|
||||
//MEDIC AUFTRAG
|
||||
MedicTask reviveTask = new MedicTask()
|
||||
if (!player.HasData("reviveSperre"))
|
||||
{
|
||||
Victim = player.Name,
|
||||
Position = player.Position,
|
||||
CauseOfDeath = reason.ToString(),
|
||||
Caller = null,
|
||||
Description = "Gestorben",
|
||||
Time = DateTime.Now,
|
||||
Type = MedicTaskType.REVIVE,
|
||||
MedicName = "none"
|
||||
};
|
||||
Medic.AddTaskToList(reviveTask);
|
||||
Medic.delHealTask(player);
|
||||
ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " ist soeben verstorben.", new List<int>() { 2 });
|
||||
//MEDIC AUFTRAG
|
||||
MedicTask reviveTask = new MedicTask()
|
||||
{
|
||||
Victim = player.Name,
|
||||
Position = player.Position,
|
||||
CauseOfDeath = reason.ToString(),
|
||||
Caller = null,
|
||||
Description = "Gestorben",
|
||||
Time = DateTime.Now,
|
||||
Type = MedicTaskType.REVIVE,
|
||||
MedicName = "none"
|
||||
};
|
||||
Medic.AddTaskToList(reviveTask);
|
||||
Medic.delHealTask(player);
|
||||
ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " ist soeben verstorben.", new List<int>() { 2 });
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (player.GetUser().IsAdmin(AdminLevel.ADMIN) == true)
|
||||
{
|
||||
|
||||
@@ -99,7 +99,7 @@ namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
//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");
|
||||
ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(player.Vehicle);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
@@ -11,6 +12,7 @@ using ReallifeGamemode.Server.Factions.Medic;
|
||||
using ReallifeGamemode.Server.Finance;
|
||||
using ReallifeGamemode.Server.Inventory;
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using ReallifeGamemode.Server.Job;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
@@ -198,6 +200,14 @@ namespace ReallifeGamemode.Server.Events
|
||||
return;
|
||||
}
|
||||
|
||||
if(!player.IsInVehicle)
|
||||
{
|
||||
if(GroundItem.PickUpGroundItem(player))
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
DutyPoint nearestDuty = PositionManager.DutyPoints.Find(d => d.Position.DistanceTo(player.Position) <= 1.5 && d.FactionId == user.FactionId);
|
||||
WeaponPoint nearestWeapon = PositionManager.WeaponPoints.Find(w => w.Position.DistanceTo(player.Position) <= 1.5 && w.FactionId == user.FactionId);
|
||||
JailReleasePoint nearestJailReleasePoint = PositionManager.JailReleasePoints.Find(j => j.Position.DistanceTo(player.Position) <= 1.5 && (user.FactionId == 1 || user.FactionId == 3) && user.GetData<bool>("duty"));
|
||||
@@ -206,7 +216,7 @@ namespace ReallifeGamemode.Server.Events
|
||||
FriseurPoint nearestFriseurPoint = PositionManager.friseurPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.5 && (!user.GetData<bool>("duty")));
|
||||
ItemshopPoint nearestItemShopPoint = PositionManager.itemshopPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.5);
|
||||
JobPoint nearestJobPoint = PositionManager.JobPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.6);
|
||||
|
||||
|
||||
if (user?.FactionId != null)
|
||||
{
|
||||
BehindVehiclePoint nearestBehindVehiclePoint = MarkerBehinVehicle.behindVehiclePoints.Find(s => s.marker.Position.DistanceTo(player.Position) <= 3 && (user.FactionId == 8 || user.FactionId == 7 || user.FactionId == 1 || user.FactionId == 3));
|
||||
@@ -285,27 +295,8 @@ namespace ReallifeGamemode.Server.Events
|
||||
}
|
||||
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
|
||||
case 3:
|
||||
//nameTagColor = new Color(173, 0, 118);
|
||||
player.SetSharedData("nameTagColor", factionId);
|
||||
player.SetSharedData("blipColor", 63);
|
||||
player.SetAccessories(2, 2, 0);
|
||||
break;
|
||||
}
|
||||
@@ -339,10 +330,9 @@ namespace ReallifeGamemode.Server.Events
|
||||
player.SendNotification("Du bist nun ~r~außer Dienst.");
|
||||
player.TriggerEvent("toggleDutyMode", false);
|
||||
Medic.UpdateDutyMedics(-1);
|
||||
player.SetSharedData("blipColor", 0);
|
||||
player.SetSharedData("nameTagColor", 0);
|
||||
UpdateCharacterCloth.LoadCharacterDefaults(player);
|
||||
}
|
||||
user.SetBlipAndNametagColor();
|
||||
}
|
||||
|
||||
if (nearestWeapon != null) // Weapon Point
|
||||
@@ -505,6 +495,11 @@ namespace ReallifeGamemode.Server.Events
|
||||
foreach (Player target in NAPI.Pools.GetAllPlayers())
|
||||
{
|
||||
User c = target.GetUser();
|
||||
if(c == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (c.JailTime > 0)
|
||||
{
|
||||
criminals.Add(c.Name);
|
||||
@@ -616,6 +611,72 @@ namespace ReallifeGamemode.Server.Events
|
||||
InventoryManager.SetBackpackItems(player);
|
||||
}
|
||||
|
||||
[RemoteEvent("keyPress:J")]
|
||||
public void KeyPressJ(Player player)
|
||||
{
|
||||
if (!player.IsLoggedIn()) return;
|
||||
if (player.GetData<bool>("healDecision") == true)
|
||||
{
|
||||
player.ResetData("healDecision");
|
||||
Medic.MakeHealDecision(player, true);
|
||||
return;
|
||||
}
|
||||
|
||||
User u = player.GetUser();
|
||||
|
||||
if (u.JobId == null) return;
|
||||
|
||||
JobBase job = JobManager.GetJob(u.JobId.Value);
|
||||
|
||||
dynamic data = null;
|
||||
|
||||
if (job.Id == 1 && job.GetUsersInJob().Contains(player))
|
||||
{
|
||||
var taxiCalls = JobManager.GetJob<TaxiDriverJob>().TaxiContracts;
|
||||
if (!taxiCalls.Any(t => t.Driver?.Handle == player.Handle)) // Spieler in keiner aktiven Fahrt
|
||||
{
|
||||
data = new
|
||||
{
|
||||
job.Id,
|
||||
Status = 0,
|
||||
JobData = new
|
||||
{
|
||||
TaxiCalls = taxiCalls
|
||||
.Where(t => t.Driver == null)
|
||||
.Select(t => new
|
||||
{
|
||||
t.Name,
|
||||
Distance = Math.Round(t.Position.DistanceTo(player.Position), 0)
|
||||
})
|
||||
.OrderBy(t => t.Distance)
|
||||
}
|
||||
};
|
||||
}
|
||||
else // Spieler in aktiver Fahrt
|
||||
{
|
||||
data = new
|
||||
{
|
||||
job.Id,
|
||||
Status = 1,
|
||||
JobData = new
|
||||
{
|
||||
taxiCalls.Where(t => t.Driver.Handle == player.Handle).First().Name
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
//JobPoint nearJobPoint = PositionManager.JobPoints.Find(p => p.Position.DistanceTo(player.Position) <= 2);
|
||||
if (u.JobId == 2 || u.JobId == 3 || u.JobId == 4)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var json = JsonConvert.SerializeObject(data);
|
||||
|
||||
player.TriggerEvent("SERVER:Job_ShowJobMenu", job.Name, json);
|
||||
}
|
||||
|
||||
|
||||
[RemoteEvent("keyPress:O")]
|
||||
public void KeyPressO(Player player)
|
||||
{
|
||||
@@ -704,6 +765,13 @@ namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
if (!player.IsLoggedIn()) return;
|
||||
|
||||
if (player.GetData<bool>("healDecision") == true)
|
||||
{
|
||||
player.ResetData("healDecision");
|
||||
Medic.MakeHealDecision(player, false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.IsInVehicle) return;
|
||||
if (player.VehicleSeat != 0) return;
|
||||
|
||||
@@ -875,8 +943,6 @@ namespace ReallifeGamemode.Server.Events
|
||||
if (!player.IsInVehicle)
|
||||
{
|
||||
Vehicle.VehicleMenuLockCarEvent(player);
|
||||
|
||||
GroundItem.PickUpGroundItem(player);
|
||||
}
|
||||
|
||||
if (player.IsInVehicle && player.VehicleSeat == 0)
|
||||
|
||||
@@ -100,42 +100,7 @@ namespace ReallifeGamemode.Server.Events
|
||||
var userItems = dbContext.UserItems.Where(u => u.UserId == user.Id).ToList();
|
||||
player.SetData("items", userItems);
|
||||
|
||||
switch (user.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;
|
||||
default:
|
||||
player.SetSharedData("blipColor", 0);
|
||||
player.SetSharedData("nameTagColor", 0);
|
||||
break;
|
||||
}
|
||||
|
||||
user.SetBlipAndNametagColor();
|
||||
|
||||
if (user.CharacterId == null)
|
||||
{
|
||||
|
||||
@@ -129,10 +129,9 @@ namespace ReallifeGamemode.Server.Extensions
|
||||
{
|
||||
User dbUser = dbContext.Users.Where(u => u.Id == user.Id).FirstOrDefault();
|
||||
dbUser.Wanteds = newWanteds;
|
||||
dbUser.SetBlipAndNametagColor();
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
user.Player.SetSharedData("nameTagColor", -1);
|
||||
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, " !{#FFFF00}Fahnundgslevel:~s~ " + newWanteds);
|
||||
|
||||
@@ -237,11 +236,83 @@ namespace ReallifeGamemode.Server.Extensions
|
||||
|
||||
public static bool IsAdmin(this User user, AdminLevel adminLevel)
|
||||
{
|
||||
if(user == null)
|
||||
if (user == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
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.FactionId != null)
|
||||
{
|
||||
if(user.FactionId > 3 || (user.FactionId >= 1 && user.FactionId <= 3 && duty))
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
user.Player.SetSharedData("nameTagColor", nameTagColor);
|
||||
user.Player.SetSharedData("blipColor", blipColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Server Factions Medic Medic.cs
|
||||
@@ -22,10 +23,18 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
public static List<MedicTask> ReviveTasks = new List<MedicTask>();
|
||||
public static List<MedicTask> HealTasks = new List<MedicTask>();
|
||||
public static List<MedicTask> FireTasks = new List<MedicTask>();
|
||||
public static List<HealDecision> HealDecisions = new List<HealDecision>();
|
||||
public static int ReviveIncome = 100;
|
||||
public static int dutyMedics = 0;
|
||||
public static int reviveTaskTime = 240;
|
||||
|
||||
public class HealDecision
|
||||
{
|
||||
public Player dMedic;
|
||||
public Player dTarget;
|
||||
public int dPrice;
|
||||
}
|
||||
|
||||
public static void AddTaskToList(MedicTask task)
|
||||
{
|
||||
if (task == null)
|
||||
@@ -72,6 +81,79 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
}
|
||||
}
|
||||
|
||||
public static void UpdateReviveSperre()
|
||||
{
|
||||
var allRevivedPlayers = NAPI.Pools.GetAllPlayers().Where(c => c.HasData("reviveSperre"));
|
||||
foreach(var player in allRevivedPlayers)
|
||||
{
|
||||
var timeLeft = player.GetData<int>("reviveSperre");
|
||||
|
||||
if (timeLeft > 0)
|
||||
{
|
||||
player.SetData("reviveSperre", timeLeft - 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.ResetData("reviveSperre");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void CheckHealDecisionDistance()
|
||||
{
|
||||
foreach(var healAuftrag in HealDecisions.ToList())
|
||||
{
|
||||
if (healAuftrag.dMedic.Position.DistanceTo(healAuftrag.dTarget.Position) > 5)
|
||||
{
|
||||
healAuftrag.dMedic.SendNotification("~r~Die Heal-Anfrage wurde abgebrochen");
|
||||
healAuftrag.dTarget.SendNotification("~r~Die Heal-Anfrage wurde abgebrochen");
|
||||
healAuftrag.dTarget.ResetData("healDecision");
|
||||
var activeDecision = HealDecisions.FirstOrDefault(d => d.dTarget == healAuftrag.dTarget);
|
||||
HealDecisions.Remove(healAuftrag);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void MakeHealDecision(Player target, bool decision)
|
||||
{
|
||||
var activeDecision = HealDecisions.FirstOrDefault(d => d.dTarget == target);
|
||||
if(decision == false)
|
||||
{
|
||||
activeDecision.dMedic.SendNotification(activeDecision.dTarget.Name + " hat den Heal ~r~abgelehnt",false);
|
||||
activeDecision.dTarget.SendNotification("Du hast den Heal ~r~abgelehnt", false);
|
||||
}
|
||||
else
|
||||
{
|
||||
activeDecision.dMedic.SendNotification(activeDecision.dTarget.Name + " hat den Heal ~g~akzeptiert", false);
|
||||
activeDecision.dTarget.SendNotification("Du hast den Heal ~g~akzeptiert", false);
|
||||
using var dbContext = new DatabaseContext();
|
||||
{
|
||||
User targetUser = target.GetUser(dbContext);
|
||||
|
||||
if (targetUser.Handmoney >= activeDecision.dPrice)
|
||||
{
|
||||
targetUser.Handmoney -= activeDecision.dPrice;
|
||||
}
|
||||
else
|
||||
{
|
||||
int bankMoney = activeDecision.dPrice - targetUser.Handmoney;
|
||||
targetUser.Handmoney = 0;
|
||||
targetUser.BankAccount.Balance -= bankMoney;
|
||||
}
|
||||
|
||||
dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += activeDecision.dPrice / 2;
|
||||
activeDecision.dMedic.GetUser(dbContext).Wage += activeDecision.dPrice / 2;
|
||||
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
activeDecision.dTarget.Health = 100;
|
||||
activeDecision.dTarget.SendNotification($"Du wurdest von ~g~{activeDecision.dMedic.Name} ~s~ für ~g~{activeDecision.dPrice.ToMoneyString()} geheilt", false);
|
||||
activeDecision.dMedic.SendNotification($"Du hast ~g~{activeDecision.dTarget.Name} ~s~ für {activeDecision.dPrice.ToMoneyString()} geheilt", false);
|
||||
delHealTask(activeDecision.dTarget);
|
||||
}
|
||||
HealDecisions.Remove(activeDecision);
|
||||
}
|
||||
|
||||
public static void UpdateTaskTimeLeft()
|
||||
{
|
||||
DateTime actualTime = DateTime.Now;
|
||||
@@ -84,7 +166,7 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
var taskTimeLeft = Math.Abs((Int32)(((DateTimeOffset)actualTime).ToUnixTimeSeconds() - ((DateTimeOffset)task.Time).ToUnixTimeSeconds() - reviveTaskTime));
|
||||
task.TimeLeft = taskTimeLeft;
|
||||
var medic = PlayerService.GetPlayerByNameOrId(task.MedicName);
|
||||
if(task.MedicName != "none") medic.TriggerEvent("setTaskTimeLeft", taskTimeLeft);
|
||||
if(medic != null) medic.TriggerEvent("setTaskTimeLeft", taskTimeLeft);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -139,7 +221,7 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
public static void delHealTask(Player player)
|
||||
{
|
||||
MedicTask task = HealTasks.FirstOrDefault(t => t.Victim == player.Name);
|
||||
RemoveTaskFromList(task);
|
||||
if(task != null) RemoveTaskFromList(task);
|
||||
player.SetData("healauftrag", false);
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ namespace ReallifeGamemode.Server.Inventory
|
||||
GroundTextLabels.Add(grndTextLabel);
|
||||
}
|
||||
|
||||
public static void PickUpGroundItem(Player player)
|
||||
public static bool PickUpGroundItem(Player player)
|
||||
{
|
||||
GroundItem nearest = GroundItems.FirstOrDefault(d => d.Position.DistanceTo(player.Position) <= 1.2);
|
||||
if (nearest != null)
|
||||
@@ -39,7 +39,7 @@ namespace ReallifeGamemode.Server.Inventory
|
||||
UserItem existingItem = InventoryManager.UserHasThisItem(player, nearest.ItemId);
|
||||
var user = player.GetUser();
|
||||
if (player.HasAttachment("ammobox"))
|
||||
{ player.SendNotification("~r~Du kannst momentan nichts tragen!", false); return; }
|
||||
{ player.SendNotification("~r~Du kannst momentan nichts tragen!", false); return false; }
|
||||
if (nearestItem.Gewicht * nearest.Amount + invWeight > 40000)
|
||||
{
|
||||
for (var i = 1; i <= nearest.Amount; i++)
|
||||
@@ -106,7 +106,10 @@ namespace ReallifeGamemode.Server.Inventory
|
||||
NAPI.Player.SetPlayerCurrentWeapon(player, WeaponHash.Unarmed);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void RemoveGroundItem(GroundItem grndItem, GTANetworkAPI.Object grndObject, TextLabel grndTextLabel)
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace ReallifeGamemode.Server.Job
|
||||
public void removeClientFromData(Player player)
|
||||
{
|
||||
if (client1 == player) { client1 = null; }
|
||||
if (client2 == player) { client2 = null; }
|
||||
if (client2 == player) { client2 = null;}
|
||||
}
|
||||
|
||||
public int getTrashCount()
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace ReallifeGamemode.Server.Job
|
||||
|
||||
public override bool NeedVehicleToStart => false;
|
||||
|
||||
const int MAX_BAG = 40;
|
||||
private const int MAX_BAG = 40;
|
||||
|
||||
public RefuseCollectorJob()
|
||||
{
|
||||
@@ -39,125 +39,125 @@ namespace ReallifeGamemode.Server.Job
|
||||
}
|
||||
|
||||
public static List<MuellmannData> muellmanData = new List<MuellmannData>();
|
||||
public float blipHeight = 1000;
|
||||
|
||||
private readonly IReadOnlyCollection<Vector3> vector3s = new List<Vector3>
|
||||
{
|
||||
new Vector3(332.9839782714844, -1741.807373046875, 29.73055076599121),
|
||||
new Vector3(321.3463439941406, -1759.986572265625, 29.644014358520508),
|
||||
new Vector3(305.2624206542969, -1776.0458984375, 28.871641159057617),
|
||||
new Vector3(300.1080017089844, -1784.01123046875, 28.438663482666016),
|
||||
new Vector3(348.7510986328125, -1820.57373046875, 28.89409637451172),
|
||||
new Vector3(328.7326965332031, -1845.462890625, 27.748090744018555),
|
||||
new Vector3(439.82269287109375, -1830.4090576171875, 28.36185646057129),
|
||||
new Vector3(427.9081115722656, -1841.7236328125, 28.463409423828125),
|
||||
new Vector3(412.9471130371094, -1856.100341796875, 27.32313346862793),
|
||||
new Vector3(399.9404296875, -1865.1639404296875, 26.716350555419922),
|
||||
new Vector3(386.0218811035156, -1882.2705078125, 25.788604736328125),
|
||||
new Vector3(368.0433349609375, -1896.9063720703125, 25.17853355407715),
|
||||
new Vector3(473.30694580078125, -1775.0206298828125, 28.69390296936035),
|
||||
new Vector3(475.3251647949219, -1758.085205078125, 28.892553329467773),
|
||||
new Vector3(479.7771301269531, -1736.3861083984375, 29.151023864746094),
|
||||
new Vector3(490.24884033203125, -1714.48974609375, 29.618074417114258),
|
||||
new Vector3(500.4996643066406, -1697.649658203125, 29.78924560546875),
|
||||
new Vector3(997.3480834960938, -729.1090087890625, 57.81574630737305),
|
||||
new Vector3(979.4336547851562, -716.036376953125, 58.22065734863281),
|
||||
new Vector3(970.9692993164062, -700.552978515625, 58.48196029663086),
|
||||
new Vector3(960.6688232421875, -669.340576171875, 58.44976806640625),
|
||||
new Vector3(943.6602783203125, -653.6834716796875, 58.4287109375),
|
||||
new Vector3(929.2879028320312, -639.0972900390625, 58.242271423339844),
|
||||
new Vector3(903.5896606445312, -616.0307006835938, 58.4549560546875),
|
||||
new Vector3(886.8736572265625, -607.783447265625, 58.445091247558594),
|
||||
new Vector3(861.7691650390625, -582.5391845703125, 58.156497955322266),
|
||||
new Vector3(920.3253784179688, -571.0201416015625, 58.36641311645508),
|
||||
new Vector3(963.1478881835938, -595.95654296875, 59.902706146240234),
|
||||
new Vector3(976.3702392578125, -579.7669067382812, 59.63575744628906),
|
||||
new Vector3(1010.3785400390625, -572.6109008789062, 60.59443283081055),
|
||||
new Vector3(999.9313354492188, -594.0516357421875, 59.63548278808594),
|
||||
new Vector3(1200.4964599609375, -576.1556396484375, 69.13911437988281),
|
||||
new Vector3(1206.1680908203125, -620.3853759765625, 66.43684387207031),
|
||||
new Vector3(1221.357421875, -668.6166381835938, 63.49313735961914),
|
||||
new Vector3(1222.5732421875, -697.0482788085938, 60.806724548339844),
|
||||
new Vector3(1228.840576171875, -725.5143432617188, 60.79587173461914),
|
||||
new Vector3(1266.1864013671875, -703.4100341796875, 64.55311584472656),
|
||||
new Vector3(1271.0609130859375, -682.7374267578125, 66.03081512451172),
|
||||
new Vector3(1265.1763916015625, -647.4813842773438, 67.92143249511719),
|
||||
new Vector3(1251.595947265625, -621.8599853515625, 69.41301727294922),
|
||||
new Vector3(1241.6507568359375, -601.6868286132812, 69.42526245117188),
|
||||
new Vector3(1242.1136474609375, -565.8869018554688, 69.65742492675781),
|
||||
new Vector3(-1898.0162353515625, 133.0081787109375, 81.85769653320312),
|
||||
new Vector3(-1960.471435546875, 212.37518310546875, 86.6491470336914),
|
||||
new Vector3(-1969.3568115234375, 246.49497985839844, 87.61412811279297),
|
||||
new Vector3(-1995.2470703125, 300.3732604980469, 91.96467590332031),
|
||||
new Vector3(-2009.92822265625, 445.47509765625, 103.01591491699219),
|
||||
new Vector3(-1995.321044921875, 590.8935546875, 117.90331268310547),
|
||||
new Vector3(-1973.7674560546875, 630.2719116210938, 122.53621673583984),
|
||||
new Vector3(-1929.476806640625, 595.318603515625, 122.28478240966797),
|
||||
new Vector3(-1939.19873046875, 551.6788330078125, 114.82840728759766),
|
||||
new Vector3(-1943.7459716796875, 449.3956298828125, 102.92235565185547),
|
||||
new Vector3(-1932.1275634765625, 362.3074035644531, 93.78870391845703),
|
||||
new Vector3(-1923.6715087890625, 298.3466796875, 89.28668975830078),
|
||||
new Vector3(-1874.3028564453125, 201.1282958984375, 84.2945327758789),
|
||||
new Vector3(-1805.06298828125, 438.19415283203125, 128.7073974609375),
|
||||
new Vector3(-1540.2606201171875, 421.3618469238281, 110.0140151977539),
|
||||
new Vector3(-1496.3275146484375, 437.88836669921875, 112.49789428710938),
|
||||
new Vector3(-1308.279541015625, 449.301513671875, 100.96974182128906),
|
||||
new Vector3(-1215.8623046875, 458.5867919921875, 91.85366821289062),
|
||||
new Vector3(-1109.628662109375, -1481.669677734375, 4.9089436531066895),
|
||||
new Vector3(-1118.3216552734375, -1487.53125, 4.71043586730957),
|
||||
new Vector3(-1130.783935546875, -1495.6463623046875, 4.425413131713867),
|
||||
new Vector3(-1108.7491455078125, -1527.6431884765625, 6.779527187347412),
|
||||
new Vector3(-1078.477783203125, -1524.1884765625, 4.883235454559326),
|
||||
new Vector3(-1087.1422119140625, -1529.7557373046875, 4.693511486053467),
|
||||
new Vector3(-1070.019775390625, -1514.546875, 5.107278347015381),
|
||||
new Vector3(-1058.235595703125, -1540.304443359375, 5.044498920440674),
|
||||
new Vector3(-1066.30029296875, -1545.3839111328125, 4.898682117462158),
|
||||
new Vector3(-1077.4962158203125, -1553.4862060546875, 4.626119136810303),
|
||||
new Vector3(-1085.2286376953125, -1558.1461181640625, 4.497615814208984),
|
||||
new Vector3(-1026.8060302734375, -1574.6785888671875, 5.1846923828125),
|
||||
new Vector3(-1022.8525390625, -1615.1187744140625, 5.009416580200195),
|
||||
new Vector3(-1031.4603271484375, -1620.6160888671875, 5.0109710693359375),
|
||||
new Vector3(-1754.563720703125, -707.9927368164062, 10.391398429870605),
|
||||
new Vector3(-1753.5606689453125, -701.3380737304688, 10.276473999023438),
|
||||
new Vector3(-1780.638427734375, -679.9152221679688, 10.493252754211426),
|
||||
new Vector3(-1788.612548828125, -671.464599609375, 10.494956970214844),
|
||||
new Vector3(-1793.9669189453125, -664.3781127929688, 10.487747192382812),
|
||||
new Vector3(-1803.5460205078125, -662.5227661132812, 10.716209411621094),
|
||||
new Vector3(-1818.578857421875, -656.5636596679688, 13.811768531799316),
|
||||
new Vector3(-1824.976806640625, -645.830810546875, 10.946636199951172),
|
||||
new Vector3(-1836.8272705078125, -631.3432006835938, 10.752060890197754),
|
||||
new Vector3(-1849.099609375, -632.3333740234375, 11.160981178283691),
|
||||
new Vector3(-1874.4722900390625, -593.102294921875, 11.885177612304688),
|
||||
new Vector3(-1880.3685302734375, -588.2398071289062, 11.835262298583984),
|
||||
new Vector3(-1897.9107666015625, -572.6138916015625, 11.845343589782715),
|
||||
new Vector3(-1923.3765869140625, -559.2033081054688, 12.060995101928711),
|
||||
new Vector3(-1947.757080078125, -532.0737915039062, 11.82839584350586),
|
||||
new Vector3(-1953.445556640625, -526.7276611328125, 11.844695091247559),
|
||||
new Vector3(-1968.46923828125, -532.5272216796875, 12.170670509338379),
|
||||
new Vector3(-1968.8458251953125, -523.1318969726562, 11.8456392288208),
|
||||
new Vector3(-1203.9110107421875, -1021.6611328125, 5.945137977600098),
|
||||
new Vector3(-1183.8720703125, -1044.6856689453125, 2.1502246856689453),
|
||||
new Vector3(-1176.88818359375, -1073.1439208984375, 5.906428813934326),
|
||||
new Vector3(-1145.39697265625, -1127.4779052734375, 6.5086894035339355),
|
||||
new Vector3(-1128.85546875, -1143.3876953125, 2.8391337394714355),
|
||||
new Vector3(-1128.4967041015625, -1162.18212890625, 6.494985103607178),
|
||||
new Vector3(-1082.1358642578125, -1139.9630126953125, 2.158600091934204),
|
||||
new Vector3(-1069.0244140625, -1161.9306640625, 2.158600091934204),
|
||||
new Vector3(-1064.1807861328125, -1159.49853515625, 2.15861105918884284),
|
||||
new Vector3(-1046.37890625, -1159.2188720703125, 2.158600091934204),
|
||||
new Vector3(-1035.042236328125, -1146.635498046875, 2.158597469329834),
|
||||
new Vector3(-1025.6204833984375, -1138.19384765625, 2.158599853515625),
|
||||
new Vector3(-1031.4193115234375, -1109.0096435546875, 2.1585986614227295),
|
||||
new Vector3(-986.4617309570312, -1122.275390625, 4.545365810394287),
|
||||
new Vector3(-991.5133056640625, -1104.2479248046875, 2.1503100395202637),
|
||||
new Vector3(-978.42822265625, -1107.8594970703125, 2.1503751277923584),
|
||||
new Vector3(-982.0960693359375, -1083.4771728515625, 2.5452053546905518),
|
||||
new Vector3(-949.2151489257812, -1107.6964111328125, 2.171846866607666),
|
||||
new Vector3(-945.9578247070312, -1123.4737548828125, 2.1503098011016846),
|
||||
new Vector3(-921.0493774414062, -1095.1513671875, 2.1503124237060547),
|
||||
new Vector3(-942.0684204101562, -1077.1378173828125, 2.1503121852874756),
|
||||
new Vector3(-951.5316772460938, -1078.955078125, 2.1503100395202637),
|
||||
|
||||
}.AsReadOnly();
|
||||
{
|
||||
new Vector3(332.9839782714844, -1741.807373046875, 29.73055076599121),
|
||||
new Vector3(321.3463439941406, -1759.986572265625, 29.644014358520508),
|
||||
new Vector3(305.2624206542969, -1776.0458984375, 28.871641159057617),
|
||||
new Vector3(300.1080017089844, -1784.01123046875, 28.438663482666016),
|
||||
new Vector3(348.7510986328125, -1820.57373046875, 28.89409637451172),
|
||||
new Vector3(328.7326965332031, -1845.462890625, 27.748090744018555),
|
||||
new Vector3(439.82269287109375, -1830.4090576171875, 28.36185646057129),
|
||||
new Vector3(427.9081115722656, -1841.7236328125, 28.463409423828125),
|
||||
new Vector3(412.9471130371094, -1856.100341796875, 27.32313346862793),
|
||||
new Vector3(399.9404296875, -1865.1639404296875, 26.716350555419922),
|
||||
new Vector3(386.0218811035156, -1882.2705078125, 25.788604736328125),
|
||||
new Vector3(368.0433349609375, -1896.9063720703125, 25.17853355407715),
|
||||
new Vector3(473.30694580078125, -1775.0206298828125, 28.69390296936035),
|
||||
new Vector3(475.3251647949219, -1758.085205078125, 28.892553329467773),
|
||||
new Vector3(479.7771301269531, -1736.3861083984375, 29.151023864746094),
|
||||
new Vector3(490.24884033203125, -1714.48974609375, 29.618074417114258),
|
||||
new Vector3(500.4996643066406, -1697.649658203125, 29.78924560546875),
|
||||
new Vector3(997.3480834960938, -729.1090087890625, 57.81574630737305),
|
||||
new Vector3(979.4336547851562, -716.036376953125, 58.22065734863281),
|
||||
new Vector3(970.9692993164062, -700.552978515625, 58.48196029663086),
|
||||
new Vector3(960.6688232421875, -669.340576171875, 58.44976806640625),
|
||||
new Vector3(943.6602783203125, -653.6834716796875, 58.4287109375),
|
||||
new Vector3(929.2879028320312, -639.0972900390625, 58.242271423339844),
|
||||
new Vector3(903.5896606445312, -616.0307006835938, 58.4549560546875),
|
||||
new Vector3(886.8736572265625, -607.783447265625, 58.445091247558594),
|
||||
new Vector3(861.7691650390625, -582.5391845703125, 58.156497955322266),
|
||||
new Vector3(920.3253784179688, -571.0201416015625, 58.36641311645508),
|
||||
new Vector3(963.1478881835938, -595.95654296875, 59.902706146240234),
|
||||
new Vector3(976.3702392578125, -579.7669067382812, 59.63575744628906),
|
||||
new Vector3(1010.3785400390625, -572.6109008789062, 60.59443283081055),
|
||||
new Vector3(999.9313354492188, -594.0516357421875, 59.63548278808594),
|
||||
new Vector3(1200.4964599609375, -576.1556396484375, 69.13911437988281),
|
||||
new Vector3(1206.1680908203125, -620.3853759765625, 66.43684387207031),
|
||||
new Vector3(1221.357421875, -668.6166381835938, 63.49313735961914),
|
||||
new Vector3(1222.5732421875, -697.0482788085938, 60.806724548339844),
|
||||
new Vector3(1228.840576171875, -725.5143432617188, 60.79587173461914),
|
||||
new Vector3(1266.1864013671875, -703.4100341796875, 64.55311584472656),
|
||||
new Vector3(1271.0609130859375, -682.7374267578125, 66.03081512451172),
|
||||
new Vector3(1265.1763916015625, -647.4813842773438, 67.92143249511719),
|
||||
new Vector3(1251.595947265625, -621.8599853515625, 69.41301727294922),
|
||||
new Vector3(1241.6507568359375, -601.6868286132812, 69.42526245117188),
|
||||
new Vector3(1242.1136474609375, -565.8869018554688, 69.65742492675781),
|
||||
new Vector3(-1898.0162353515625, 133.0081787109375, 81.85769653320312),
|
||||
new Vector3(-1960.471435546875, 212.37518310546875, 86.6491470336914),
|
||||
new Vector3(-1969.3568115234375, 246.49497985839844, 87.61412811279297),
|
||||
new Vector3(-1995.2470703125, 300.3732604980469, 91.96467590332031),
|
||||
new Vector3(-2009.92822265625, 445.47509765625, 103.01591491699219),
|
||||
new Vector3(-1995.321044921875, 590.8935546875, 117.90331268310547),
|
||||
new Vector3(-1973.7674560546875, 630.2719116210938, 122.53621673583984),
|
||||
new Vector3(-1929.476806640625, 595.318603515625, 122.28478240966797),
|
||||
new Vector3(-1939.19873046875, 551.6788330078125, 114.82840728759766),
|
||||
new Vector3(-1943.7459716796875, 449.3956298828125, 102.92235565185547),
|
||||
new Vector3(-1932.1275634765625, 362.3074035644531, 93.78870391845703),
|
||||
new Vector3(-1923.6715087890625, 298.3466796875, 89.28668975830078),
|
||||
new Vector3(-1874.3028564453125, 201.1282958984375, 84.2945327758789),
|
||||
new Vector3(-1805.06298828125, 438.19415283203125, 128.7073974609375),
|
||||
new Vector3(-1540.2606201171875, 421.3618469238281, 110.0140151977539),
|
||||
new Vector3(-1496.3275146484375, 437.88836669921875, 112.49789428710938),
|
||||
new Vector3(-1308.279541015625, 449.301513671875, 100.96974182128906),
|
||||
new Vector3(-1215.8623046875, 458.5867919921875, 91.85366821289062),
|
||||
new Vector3(-1109.628662109375, -1481.669677734375, 4.9089436531066895),
|
||||
new Vector3(-1118.3216552734375, -1487.53125, 4.71043586730957),
|
||||
new Vector3(-1130.783935546875, -1495.6463623046875, 4.425413131713867),
|
||||
new Vector3(-1108.7491455078125, -1527.6431884765625, 6.779527187347412),
|
||||
new Vector3(-1078.477783203125, -1524.1884765625, 4.883235454559326),
|
||||
new Vector3(-1087.1422119140625, -1529.7557373046875, 4.693511486053467),
|
||||
new Vector3(-1070.019775390625, -1514.546875, 5.107278347015381),
|
||||
new Vector3(-1058.235595703125, -1540.304443359375, 5.044498920440674),
|
||||
new Vector3(-1066.30029296875, -1545.3839111328125, 4.898682117462158),
|
||||
new Vector3(-1077.4962158203125, -1553.4862060546875, 4.626119136810303),
|
||||
new Vector3(-1085.2286376953125, -1558.1461181640625, 4.497615814208984),
|
||||
new Vector3(-1026.8060302734375, -1574.6785888671875, 5.1846923828125),
|
||||
new Vector3(-1022.8525390625, -1615.1187744140625, 5.009416580200195),
|
||||
new Vector3(-1031.4603271484375, -1620.6160888671875, 5.0109710693359375),
|
||||
new Vector3(-1754.563720703125, -707.9927368164062, 10.391398429870605),
|
||||
new Vector3(-1753.5606689453125, -701.3380737304688, 10.276473999023438),
|
||||
new Vector3(-1780.638427734375, -679.9152221679688, 10.493252754211426),
|
||||
new Vector3(-1788.612548828125, -671.464599609375, 10.494956970214844),
|
||||
new Vector3(-1793.9669189453125, -664.3781127929688, 10.487747192382812),
|
||||
new Vector3(-1803.5460205078125, -662.5227661132812, 10.716209411621094),
|
||||
new Vector3(-1818.578857421875, -656.5636596679688, 13.811768531799316),
|
||||
new Vector3(-1824.976806640625, -645.830810546875, 10.946636199951172),
|
||||
new Vector3(-1836.8272705078125, -631.3432006835938, 10.752060890197754),
|
||||
new Vector3(-1849.099609375, -632.3333740234375, 11.160981178283691),
|
||||
new Vector3(-1874.4722900390625, -593.102294921875, 11.885177612304688),
|
||||
new Vector3(-1880.3685302734375, -588.2398071289062, 11.835262298583984),
|
||||
new Vector3(-1897.9107666015625, -572.6138916015625, 11.845343589782715),
|
||||
new Vector3(-1923.3765869140625, -559.2033081054688, 12.060995101928711),
|
||||
new Vector3(-1947.757080078125, -532.0737915039062, 11.82839584350586),
|
||||
new Vector3(-1953.445556640625, -526.7276611328125, 11.844695091247559),
|
||||
new Vector3(-1968.46923828125, -532.5272216796875, 12.170670509338379),
|
||||
new Vector3(-1968.8458251953125, -523.1318969726562, 11.8456392288208),
|
||||
new Vector3(-1203.9110107421875, -1021.6611328125, 5.945137977600098),
|
||||
new Vector3(-1183.8720703125, -1044.6856689453125, 2.1502246856689453),
|
||||
new Vector3(-1176.88818359375, -1073.1439208984375, 5.906428813934326),
|
||||
new Vector3(-1145.39697265625, -1127.4779052734375, 6.5086894035339355),
|
||||
new Vector3(-1128.85546875, -1143.3876953125, 2.8391337394714355),
|
||||
new Vector3(-1128.4967041015625, -1162.18212890625, 6.494985103607178),
|
||||
new Vector3(-1082.1358642578125, -1139.9630126953125, 2.158600091934204),
|
||||
new Vector3(-1069.0244140625, -1161.9306640625, 2.158600091934204),
|
||||
new Vector3(-1064.1807861328125, -1159.49853515625, 2.15861105918884284),
|
||||
new Vector3(-1046.37890625, -1159.2188720703125, 2.158600091934204),
|
||||
new Vector3(-1035.042236328125, -1146.635498046875, 2.158597469329834),
|
||||
new Vector3(-1025.6204833984375, -1138.19384765625, 2.158599853515625),
|
||||
new Vector3(-1031.4193115234375, -1109.0096435546875, 2.1585986614227295),
|
||||
new Vector3(-986.4617309570312, -1122.275390625, 4.545365810394287),
|
||||
new Vector3(-991.5133056640625, -1104.2479248046875, 2.1503100395202637),
|
||||
new Vector3(-978.42822265625, -1107.8594970703125, 2.1503751277923584),
|
||||
new Vector3(-982.0960693359375, -1083.4771728515625, 2.5452053546905518),
|
||||
new Vector3(-949.2151489257812, -1107.6964111328125, 2.171846866607666),
|
||||
new Vector3(-945.9578247070312, -1123.4737548828125, 2.1503098011016846),
|
||||
new Vector3(-921.0493774414062, -1095.1513671875, 2.1503124237060547),
|
||||
new Vector3(-942.0684204101562, -1077.1378173828125, 2.1503121852874756),
|
||||
new Vector3(-951.5316772460938, -1078.955078125, 2.1503100395202637),
|
||||
}.AsReadOnly();
|
||||
|
||||
[RemoteEvent("CLIENT:MuellmannJobStarten")]
|
||||
public void MuellmannJobStarten(Player player, Vehicle vehicle)
|
||||
@@ -190,7 +190,7 @@ namespace ReallifeGamemode.Server.Job
|
||||
|
||||
if (data.hasFreePlace())
|
||||
{
|
||||
if(data.vehicle != null)
|
||||
if (data.vehicle != null)
|
||||
data.vehicle.GetServerVehicle().Spawn(data.vehicle);
|
||||
muellmanData.Remove(data);
|
||||
return;
|
||||
@@ -209,13 +209,13 @@ namespace ReallifeGamemode.Server.Job
|
||||
}
|
||||
|
||||
[RemoteEvent("CLIENT:MuellmannImShape")]
|
||||
public void MuellmannImShape(Player player, int colshapeIndex)
|
||||
public void MuellmannImShape(Player player, int index)
|
||||
{
|
||||
foreach (var data in muellmanData)
|
||||
{
|
||||
if (data.getDataFromClient(player) == null) continue;
|
||||
Player target = data.getPartnerClient(player);
|
||||
if (target != null) target.TriggerEvent("MuellmannUpdateColshape", colshapeIndex);
|
||||
if (target != null) target.TriggerEvent("MuellmannUpdateColshape", index);
|
||||
player.TriggerEvent("renderTextOnScreen", "Wirf den Müllsack in den Müllwagen.");
|
||||
player.AddAttachment("binbag", false);
|
||||
return;
|
||||
@@ -258,19 +258,17 @@ namespace ReallifeGamemode.Server.Job
|
||||
}
|
||||
player.TriggerEvent("SERVER:MuellmannZuBase");
|
||||
}
|
||||
else if(data.getTrashCount() > MAX_BAG)
|
||||
else if (data.getTrashCount() > MAX_BAG)
|
||||
{
|
||||
data.setTrashCount(MAX_BAG);
|
||||
ChatService.ErrorMessage((Player)player, "Der Müllwagen ist schon voll.");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (target != null)
|
||||
{
|
||||
user1.Wage += 25;
|
||||
user2.Wage += 25;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -305,13 +303,13 @@ namespace ReallifeGamemode.Server.Job
|
||||
if (target != null)
|
||||
{
|
||||
user1.Wage += (int)(bonus / 2);
|
||||
user2.Wage += (int)(bonus / 2);
|
||||
user2.Wage += (int)(bonus / 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
user1.Wage += bonus;
|
||||
}
|
||||
|
||||
|
||||
data.setTrashCount(0);
|
||||
|
||||
dbContext.SaveChanges();
|
||||
|
||||
@@ -63,38 +63,13 @@ namespace ReallifeGamemode.Server.Managers
|
||||
own.FactionRank = dbContext
|
||||
.FactionRanks
|
||||
.OrderBy(x => x.Order)
|
||||
.Where(r => r.FactionId == own.FactionId)
|
||||
.Where(r => r.FactionId == u.FactionId)
|
||||
.FirstOrDefault();
|
||||
|
||||
ChatService.SendMessage(leader, "!{02FCFF}" + player.Name + " hat die Einladung angenommen.");
|
||||
ChatService.SendMessage(player, "!{02FCFF}Du hast die Einladung angenommen.");
|
||||
|
||||
switch (own.FactionId)
|
||||
{
|
||||
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;
|
||||
}
|
||||
own.SetBlipAndNametagColor();
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
@@ -247,8 +222,10 @@ namespace ReallifeGamemode.Server.Managers
|
||||
return;
|
||||
}
|
||||
|
||||
User targetUser = target.GetUser();
|
||||
User playerUser = player.GetUser();
|
||||
using var dbContext = new DatabaseContext();
|
||||
|
||||
User targetUser = target.GetUser(dbContext);
|
||||
User playerUser = player.GetUser(dbContext);
|
||||
|
||||
if (type == "Fraktion")
|
||||
{
|
||||
@@ -276,21 +253,16 @@ namespace ReallifeGamemode.Server.Managers
|
||||
return;
|
||||
}
|
||||
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
target.SetData("duty", false);
|
||||
target.TriggerEvent("toggleDutyMode", false);
|
||||
Medic.UpdateDutyMedics(-1);
|
||||
target.SetSharedData("blipColor", 0);
|
||||
UpdateCharacterCloth.LoadCharacterDefaults(target);
|
||||
target.GetUser(dbContext).FactionRankId = null;
|
||||
target.GetUser(dbContext).FactionId = null;
|
||||
ChatService.SendMessage(player, "!{02FCFF}Du hast " + target.Name + " aus der Fraktion geworfen.");
|
||||
ChatService.SendMessage(target, "!{02FCFF}Du wurdest von " + player.Name + " aus der Fraktion geworfen.");
|
||||
target.SetSharedData("blipColor", 0);
|
||||
player.SetSharedData("nameTagColor", 0);
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
target.SetData("duty", false);
|
||||
target.TriggerEvent("toggleDutyMode", false);
|
||||
Medic.UpdateDutyMedics(-1);
|
||||
UpdateCharacterCloth.LoadCharacterDefaults(target);
|
||||
target.GetUser(dbContext).FactionRankId = null;
|
||||
target.GetUser(dbContext).FactionId = null;
|
||||
ChatService.SendMessage(player, "!{02FCFF}Du hast " + target.Name + " aus der Fraktion geworfen.");
|
||||
ChatService.SendMessage(target, "!{02FCFF}Du wurdest von " + player.Name + " aus der Fraktion geworfen.");
|
||||
targetUser.SetBlipAndNametagColor();
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
else if (type == "Gruppe")
|
||||
{
|
||||
@@ -318,16 +290,13 @@ namespace ReallifeGamemode.Server.Managers
|
||||
return;
|
||||
}
|
||||
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
target.GetUser(dbContext).Group = null;
|
||||
target.GetUser(dbContext).GroupRank = GroupRank.NONE;
|
||||
targetUser.Group = null;
|
||||
targetUser.GroupRank = GroupRank.NONE;
|
||||
|
||||
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(player, "!{02FCFF}Du hast " + target.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")]
|
||||
public void InteractionMenuGroupLeageGroup(Player player, string type)
|
||||
{
|
||||
|
||||
|
||||
if (type == "Gruppe")
|
||||
{
|
||||
using (var dbContext = new DatabaseContext())
|
||||
@@ -390,15 +359,15 @@ namespace ReallifeGamemode.Server.Managers
|
||||
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;
|
||||
}
|
||||
|
||||
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 newOwner = memberList.OrderByDescending(c => c.GroupRank).First();
|
||||
@@ -406,7 +375,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
newOwner.GroupRank = GroupRank.OWNER;
|
||||
ChatService.BroadcastGroup("~y~" + newOwner.Name + "~s~ wurde zum neuen Besitzer ernannt", playerUser.Group);
|
||||
}
|
||||
|
||||
|
||||
playerUser.GroupRank = GroupRank.NONE;
|
||||
playerUser.Group = null;
|
||||
ChatService.BroadcastGroup("~y~" + player.Name + "~s~ hat die Gruppe verlassen", group);
|
||||
@@ -422,13 +391,13 @@ namespace ReallifeGamemode.Server.Managers
|
||||
if (type == "Gruppe")
|
||||
{
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
{
|
||||
if (playerUser?.Group == null || playerUser.GroupRank < GroupRank.OWNER)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var deletedGroup = dbContext.Groups.FirstOrDefault(g => g.Id == playerUser.Group.Id);
|
||||
|
||||
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)
|
||||
{
|
||||
var taxiJob = JobManager.GetJob<TaxiDriverJob>();
|
||||
|
||||
if(taxiJob == null)
|
||||
if (taxiJob == null)
|
||||
{
|
||||
player.SendChatMessage("Aktuell kann kein Taxi gerufen werden.");
|
||||
return;
|
||||
@@ -802,20 +771,20 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
if (!player.IsLoggedIn()) return;
|
||||
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)
|
||||
player.TriggerEvent("showWantedlist", JsonConvert.SerializeObject(listPlayers));
|
||||
else
|
||||
player.SendNotification("~r~[Fehler] ~w~Es gibt derzeitig keine Verbrecher!");
|
||||
|
||||
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)
|
||||
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)
|
||||
{
|
||||
player.SendNotification("~r~[Fehler] ~w~Du hast bereits ein Sanitäter gerufen.");
|
||||
}else
|
||||
{
|
||||
Medic.AddTaskToList(healTask);
|
||||
}
|
||||
else
|
||||
{
|
||||
Medic.AddTaskToList(healTask);
|
||||
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 });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -13,8 +13,6 @@ using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Services;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
|
||||
|
||||
|
||||
namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
public class JobManager : Script
|
||||
@@ -124,63 +122,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
}
|
||||
}
|
||||
|
||||
[RemoteEvent("CLIENT:JobManager_ShowJobMenu")]
|
||||
public void ShowJobMenuEvent(Player player)
|
||||
{
|
||||
User u = player.GetUser();
|
||||
|
||||
if (u.JobId == null) return;
|
||||
|
||||
JobBase job = GetJob(u.JobId.Value);
|
||||
|
||||
dynamic data = null;
|
||||
|
||||
if (job.Id == 1 && job.GetUsersInJob().Contains(player))
|
||||
{
|
||||
var taxiCalls = JobManager.GetJob<TaxiDriverJob>().TaxiContracts;
|
||||
if (!taxiCalls.Any(t => t.Driver?.Handle == player.Handle)) // Spieler in keiner aktiven Fahrt
|
||||
{
|
||||
data = new
|
||||
{
|
||||
job.Id,
|
||||
Status = 0,
|
||||
JobData = new
|
||||
{
|
||||
TaxiCalls = taxiCalls
|
||||
.Where(t => t.Driver == null)
|
||||
.Select(t => new
|
||||
{
|
||||
t.Name,
|
||||
Distance = Math.Round(t.Position.DistanceTo(player.Position), 0)
|
||||
})
|
||||
.OrderBy(t => t.Distance)
|
||||
}
|
||||
};
|
||||
}
|
||||
else // Spieler in aktiver Fahrt
|
||||
{
|
||||
data = new
|
||||
{
|
||||
job.Id,
|
||||
Status = 1,
|
||||
JobData = new
|
||||
{
|
||||
taxiCalls.Where(t => t.Driver.Handle == player.Handle).First().Name
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
//JobPoint nearJobPoint = PositionManager.JobPoints.Find(p => p.Position.DistanceTo(player.Position) <= 2);
|
||||
if (u.JobId == 2 || u.JobId == 3 || u.JobId == 4)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var json = JsonConvert.SerializeObject(data);
|
||||
|
||||
player.TriggerEvent("SERVER:Job_ShowJobMenu", job.Name, json);
|
||||
}
|
||||
|
||||
[RemoteEvent("CLIENT:Job_StartJob")]
|
||||
public void StartJobEvent(Player player)
|
||||
{
|
||||
@@ -202,7 +143,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
return;
|
||||
}
|
||||
|
||||
if(player.Vehicle != null)
|
||||
if (player.Vehicle != null)
|
||||
{
|
||||
player.SetData<Vehicle>("LastVehicle", player.Vehicle);
|
||||
}
|
||||
@@ -210,6 +151,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
playerJobStartPosition[player] = player.Position;
|
||||
job.StartJob(player);
|
||||
}
|
||||
|
||||
[ServerEvent(Event.PlayerExitVehicle)]
|
||||
public void JobManagerPlayerExitVehicle(Player player, Vehicle veh)
|
||||
{
|
||||
@@ -299,9 +241,13 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
if (LastVehicle != null)
|
||||
{
|
||||
LastVehicle.ResetData("timerJobVehicleRespawn");
|
||||
ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(LastVehicle);
|
||||
ServerVehicleExtensions.Spawn(sVeh, LastVehicle);
|
||||
if (job.Id != 2) //Müllman Handelt Fahrzeug respawn eigenständig
|
||||
{
|
||||
LastVehicle.ResetData("timerJobVehicleRespawn");
|
||||
ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(LastVehicle);
|
||||
ServerVehicleExtensions.Spawn(sVeh, LastVehicle);
|
||||
}
|
||||
|
||||
job.StopJob(player);
|
||||
ChatService.SendMessage(player, $"~y~[JOB]~s~ Du hast deinen Job ~o~{job.Name}~s~ beendet.");
|
||||
CheckPointHandle.DeleteCheckpoints(player);
|
||||
@@ -397,7 +343,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
player.Heading = (57.03f);
|
||||
}
|
||||
Vehicle LastVehicle = player.GetData<Vehicle>("LastVehicle");
|
||||
if (LastVehicle != null)
|
||||
if (LastVehicle != null && job.Id != GetJob<RefuseCollectorJob>().Id)
|
||||
{
|
||||
LastVehicle.ResetData("timerJobVehicleRespawn");
|
||||
ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(LastVehicle);
|
||||
|
||||
@@ -49,6 +49,7 @@ namespace ReallifeGamemode.Server.Util
|
||||
NAPI.Task.Run(() =>
|
||||
{
|
||||
Medic.UpdateTaskTimeLeft();
|
||||
Medic.CheckHealDecisionDistance();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -59,6 +60,7 @@ namespace ReallifeGamemode.Server.Util
|
||||
Jail.JailOut_Elapsed();
|
||||
Economy.Timer_Elapsed();
|
||||
WeaponDealManager.Timer_Elapsed();
|
||||
Medic.UpdateReviveSperre();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -66,10 +66,12 @@ namespace ReallifeGamemode.Server.Wanted
|
||||
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
|
||||
|
||||
client.GetUser(dbContext).Wanteds = 0;
|
||||
clientUser.Wanteds = 0;
|
||||
client.SetData("isDead", false);
|
||||
client.RemoveAllWeapons();
|
||||
client.SetSharedData("blipColor", 0);
|
||||
@@ -100,24 +102,7 @@ namespace ReallifeGamemode.Server.Wanted
|
||||
|
||||
client.TriggerEvent("jailTime", JsonConvert.SerializeObject(timeMinutes));
|
||||
|
||||
switch (user.FactionId)
|
||||
{
|
||||
case null:
|
||||
client.SetSharedData("blipColor", 0);
|
||||
break;
|
||||
case 8:
|
||||
client.SetSharedData("blipColor", 83);
|
||||
break;
|
||||
case 7:
|
||||
client.SetSharedData("blipColor", 52);
|
||||
break;
|
||||
case 4:
|
||||
client.SetSharedData("blipColor", 5);
|
||||
break;
|
||||
case 9:
|
||||
client.SetSharedData("blipColor", 25);
|
||||
break;
|
||||
}
|
||||
clientUser.SetBlipAndNametagColor();
|
||||
|
||||
if (announceHq)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user