Merge branch 'develop' of ssh://development.life-of-german.org:451/log-gtav/reallife-gamemode into develop

This commit is contained in:
2021-04-21 22:59:25 +02:00
17 changed files with 99 additions and 31 deletions

View File

@@ -16,6 +16,7 @@ export default function (globalData: IGlobalData): void {
var adutyMode = false; var adutyMode = false;
var adminUnshow = false; var adminUnshow = false;
var adminTSupport = false; var adminTSupport = false;
var noDmZone = false;
var dutyMode = false; var dutyMode = false;
let jailTime = 0; let jailTime = 0;
let att_score = 0; let att_score = 0;
@@ -84,6 +85,10 @@ export default function (globalData: IGlobalData): void {
blackScreenMode = toggle; blackScreenMode = toggle;
}); });
mp.events.add("toggleNoDmZone", (toggle) => {
noDmZone = toggle;
});
mp.events.add("jailTime", (time) => { mp.events.add("jailTime", (time) => {
jailTime = JSON.parse(time); jailTime = JSON.parse(time);
}); });
@@ -345,6 +350,17 @@ export default function (globalData: IGlobalData): void {
}) })
} }
if (noDmZone) {
mp.game.graphics.drawText("~r~NoDM Zone", [0.907, 0.741],
{
font: 4,
color: [255, 255, 255, 255],
scale: [0.8, 0.8],
outline: true,
centre: false
})
}
if (countdown > 0) { if (countdown > 0) {
var now = Date.now(); var now = Date.now();
var diff = Math.trunc((now - cdTimestamp) / 1000); var diff = Math.trunc((now - cdTimestamp) / 1000);

View File

@@ -73,6 +73,7 @@ export default function busRouteList(globalData: IGlobalData) {
}); });
routeMenu.MenuClose.on(() => { routeMenu.MenuClose.on(() => {
mp.events.callRemote("CLIENT:Job_StopJob");
globalData.InMenu = false; globalData.InMenu = false;
}); });
} }

View File

@@ -0,0 +1,22 @@

export function isPlayerInNoDMZone(pos) {
if (pos.x >= -540 && pos.x <= -531
&& pos.y >= -2151 && pos.y <= -2139) {
return true;
}
return false;
}
export default function positionHandler() {
mp.events.add("checkPosition", (targetEntity) => {
if (isPlayerInNoDMZone(mp.players.local.position) || isPlayerInNoDMZone(targetEntity.position)) {
mp.gui.chat.push("Kein DM in NODM!");
}
});
setInterval(() => {
mp.events.call('toggleNoDmZone', isPlayerInNoDMZone(mp.players.local.position));
}, 200);
}

View File

@@ -39,7 +39,6 @@ export default function reportList(globalData: IGlobalData) {
//Weapon Menu //Weapon Menu
mp.events.add('showReportMenu', (userTickets, TicketsArr) => { mp.events.add('showReportMenu', (userTickets, TicketsArr) => {
if (!globalData.InMenu) { if (!globalData.InMenu) {

View File

@@ -188,6 +188,10 @@ class RagePlayerPool implements IPlayerPool {
fn(new RagePlayer(e)); fn(new RagePlayer(e));
}); });
} }
exists(entity: IPlayer): boolean {
return mp.players.exists(entity.id);
}
} }
@@ -280,6 +284,10 @@ class RageVehiclePool implements IVehiclePool {
fn(new RageVehicle(e)); fn(new RageVehicle(e));
}) })
} }
exists(entity: IVehicle): boolean {
return mp.vehicles.exists(entity.id);
}
} }
export { export {

View File

@@ -10,8 +10,8 @@ export default class RageGame implements IGame {
events: IEvents = new RageEvents; events: IEvents = new RageEvents;
ui: IUi = new RageUi; ui: IUi = new RageUi;
async wait(ms: number): Promise<void> { wait(ms: number): void {
await mp.game.waitAsync(ms); mp.game.wait(ms);
} }
disableDefaultEngineBehaviour(): void { disableDefaultEngineBehaviour(): void {

View File

@@ -1,5 +1,5 @@
interface IGame { interface IGame {
wait(ms: number): Promise<void>; wait(ms: number): void;
events: IEvents; events: IEvents;
ui: IUi; ui: IUi;
@@ -75,6 +75,7 @@ interface IVehicle extends IEntity {
interface IEntityPool<TEntity> { interface IEntityPool<TEntity> {
at(id: number): TEntity; at(id: number): TEntity;
forEach(fn: (entity: TEntity) => void): void; forEach(fn: (entity: TEntity) => void): void;
exists(entity: TEntity): boolean;
} }

View File

@@ -186,6 +186,9 @@ ped();
import reportList from './Player/reportmenu'; import reportList from './Player/reportmenu';
reportList(globalData); reportList(globalData);
import positionHandler from './Player/position';
positionHandler();
import checkpointHandle from './util/checkpoint'; import checkpointHandle from './util/checkpoint';
checkpointHandle(globalData); checkpointHandle(globalData);

View File

@@ -15,7 +15,7 @@ export default function attachmentManager(game: IGame) {
{ {
attachments: {}, attachments: {},
addFor: async function (entity, id) { addFor: function (entity, id) {
if (this.attachments.hasOwnProperty(id)) { if (this.attachments.hasOwnProperty(id)) {
if (!entity.__attachmentObjects) { if (!entity.__attachmentObjects) {
entity.__attachmentObjects = {}; entity.__attachmentObjects = {};

View File

@@ -7,6 +7,12 @@
player.setSuffersCriticalHits(false); player.setSuffersCriticalHits(false);
}); });
mp.events.add('outgoingDamage', (sourceEntity, targetEntity, sourcePlayer, weapon, boneIndex, damage) => {
mp.events.call('checkPosition', targetEntity);
});
mp.events.add("render", () => { mp.events.add("render", () => {
if (blockInput) { if (blockInput) {
mp.game.controls.disableControlAction(32, 142, true); mp.game.controls.disableControlAction(32, 142, true);

View File

@@ -10,9 +10,9 @@ game.events.add('SERVER:Vehicle:UpdateData', (vehId, dataStr) => {
setVehicleData(vehicle, data); setVehicleData(vehicle, data);
}); });
game.events.onPlayerEnterVehicle(async (vehicle, seat) => { game.events.onPlayerEnterVehicle((vehicle, seat) => {
while (!game.players.local.inVehicle) { while (!game.players.local.inVehicle) {
await game.wait(0); game.wait(0);
} }
if (vehicle) { if (vehicle) {
@@ -22,11 +22,11 @@ game.events.onPlayerEnterVehicle(async (vehicle, seat) => {
} }
}); });
game.events.onPlayerExitVehicle(async () => { game.events.onPlayerExitVehicle(() => {
var veh = game.players.local.vehicle; var veh = game.players.local.vehicle;
while (game.players.local.inVehicle) { while (game.players.local.inVehicle) {
await game.wait(0); game.wait(0);
} }
if (veh) { if (veh) {
@@ -51,7 +51,7 @@ game.events.onEntityStreamIn((entity: IEntity) => {
}); });
function setVehicleData(veh: IVehicle, data: VehicleData): void { function setVehicleData(veh: IVehicle, data: VehicleData): void {
if (!veh) { if (!veh || !game.vehicles.exists(veh)) {
return; return;
} }

View File

@@ -17,6 +17,13 @@ namespace ReallifeGamemode.Server.Commands
{ {
internal class UserCommands : Script internal class UserCommands : Script
{ {
[Command("nodm", "~m~nodm")]
public void CmdUserNoDm(Player player)
{
ChatService.Broadcast("ss");
player.TriggerEvent("toggleNoDmZone", true);
}
[Command("look", "~m~look")] [Command("look", "~m~look")]
public void CmdUserLook(Player player) public void CmdUserLook(Player player)
{ {

View File

@@ -9,6 +9,11 @@ namespace ReallifeGamemode.Server.Events
{ {
internal class PlayerEvent : Script internal class PlayerEvent : Script
{ {
[ServerEvent(Event.PlayerDamage)]
public void OnPlayerDamage(Player player, float healthLoss, float armorLoss) {
ChatService.Broadcast("dmg");
}
[RemoteEvent("CLIENT:SET_InFrontOfPos")] [RemoteEvent("CLIENT:SET_InFrontOfPos")]
public void SetFrontOfPos(Player player, Vector3 pos) public void SetFrontOfPos(Player player, Vector3 pos)
{ {

View File

@@ -424,13 +424,13 @@ namespace ReallifeGamemode.Server.Job
player.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/FahrplanAbfahrt", "wav", 15); player.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/FahrplanAbfahrt", "wav", 15);
player.StartCheckPointRoute(selectedRoute, MARKER_DELAY, MARKER_ID, MARKER_SIZE, MARKER_DIST, true, MARKER_EVENT); player.StartCheckPointRoute(selectedRoute, MARKER_DELAY, MARKER_ID, MARKER_SIZE, MARKER_DIST, true, MARKER_EVENT);
if (index != -1) if (index != -1)
player.SendChatMessage($"~y~[JOB]: ~w~Dir wurde ~g~ Route {index + 1}~w~ zugeteilt."); player.SendChatMessage($"~y~[JOB] ~w~Dir wurde ~g~ Route {index + 1}~w~ zugeteilt.");
} }
public override void LastCheckpoint(Player player) public override void LastCheckpoint(Player player)
{ {
Vehicle v = player.Vehicle; Vehicle v = player.Vehicle;
player.SendChatMessage("~y~[JOB]: ~w~Die neue Route lädt. Bitte warten..."); player.SendChatMessage("~y~[JOB] ~w~Die neue Route lädt. Bitte warten...");
string type = getPlayerRouteType(player); string type = getPlayerRouteType(player);
if (type == BEGINNER) if (type == BEGINNER)
@@ -635,13 +635,13 @@ namespace ReallifeGamemode.Server.Job
user.BusSkill++; user.BusSkill++;
if (user.BusSkill == BusDriverJob.SKILL_INTERMEDIATE) if (user.BusSkill == BusDriverJob.SKILL_INTERMEDIATE)
{ {
player.SendChatMessage($"~y~[JOB]: ~w~Du hast nun die Route ~g~{BusDriverJob.INTERMEDIATE} ~w~freigeschaltet!"); player.SendChatMessage($"~y~[JOB] ~w~Du hast nun die Route ~g~{BusDriverJob.INTERMEDIATE} ~w~freigeschaltet!");
player.SendChatMessage($"~y~[JOB]: ~w~Du kannst jetzt auch mit dem Coach fahren!"); player.SendChatMessage($"~y~[JOB] ~w~Du kannst jetzt auch mit dem Coach fahren!");
} }
if (user.BusSkill == BusDriverJob.SKILL_PROFESSIONAL) if (user.BusSkill == BusDriverJob.SKILL_PROFESSIONAL)
{ {
player.SendChatMessage($"~y~[JOB]: ~w~Du hast nun die Route ~g~{BusDriverJob.PROFESSIONAL} ~w~freigeschaltet!"); player.SendChatMessage($"~y~[JOB] ~w~Du hast nun die Route ~g~{BusDriverJob.PROFESSIONAL} ~w~freigeschaltet!");
player.SendChatMessage($"~y~[JOB]: ~w~Du kannst jetzt auch mit dem Tourbus fahren!"); player.SendChatMessage($"~y~[JOB] ~w~Du kannst jetzt auch mit dem Tourbus fahren!");
} }
dbContext.SaveChanges(); dbContext.SaveChanges();

View File

@@ -45,7 +45,7 @@ namespace ReallifeGamemode.Server.Job
_inJob.Add(player); _inJob.Add(player);
jobPlayer.Add(player); jobPlayer.Add(player);
ChatService.SendMessage(player, $"~y~[Job]~s~ Du hast deinen Job ~o~{this.Name}~s~ gestartet."); ChatService.SendMessage(player, $"~y~[JOB]~s~ Du hast deinen Job ~o~{this.Name}~s~ gestartet.");
JobStart?.Invoke(player); JobStart?.Invoke(player);
} }
@@ -58,7 +58,7 @@ namespace ReallifeGamemode.Server.Job
if (quit) if (quit)
{ {
ChatService.SendMessage(player, $"~y~[Job]~s~ Du hast deinen Job ~o~{this.Name}~s~ beendet."); ChatService.SendMessage(player, $"~y~[JOB]~s~ Du hast deinen Job ~o~{this.Name}~s~ beendet.");
player.SafeTeleport(JobManager.playerJobStartPosition[player]); player.SafeTeleport(JobManager.playerJobStartPosition[player]);
} }

View File

@@ -356,8 +356,8 @@ namespace ReallifeGamemode.Server.Job
user.PilotSkill++; user.PilotSkill++;
if (user.PilotSkill == BusDriverJob.SKILL_INTERMEDIATE) if (user.PilotSkill == BusDriverJob.SKILL_INTERMEDIATE)
{ {
player.SendChatMessage($"~y~[JOB]: ~w~Du hast nun die Route ~g~{BusDriverJob.INTERMEDIATE} ~w~freigeschaltet!"); player.SendChatMessage($"~y~[JOB] ~w~Du hast nun die Route ~g~{BusDriverJob.INTERMEDIATE} ~w~freigeschaltet!");
player.SendChatMessage($"~y~[JOB]: ~w~Du kannst jetzt auch mit dem Velum fliegen!"); player.SendChatMessage($"~y~[JOB] ~w~Du kannst jetzt auch mit dem Velum fliegen!");
} }
dbContext.SaveChanges(); dbContext.SaveChanges();

View File

@@ -205,7 +205,7 @@ namespace ReallifeGamemode.Server.Job
player.AddAttachment("binbag", true); player.AddAttachment("binbag", true);
} }
ChatService.SendMessage(data.getPartnerClient(player), $"~y~[Job] ~s~Dein Partner hat den Job beendet."); ChatService.SendMessage(data.getPartnerClient(player), $"~y~[JOB] ~s~Dein Partner hat den Job beendet.");
data.removeClientFromData(player); data.removeClientFromData(player);
return; return;
@@ -254,10 +254,10 @@ namespace ReallifeGamemode.Server.Job
if (data.getTrashCount() == MAX_BAG) if (data.getTrashCount() == MAX_BAG)
{ {
ChatService.SendMessage((Player)player, "~y~[Job] ~s~Der Müllwagen ist voll. Fahre nun zurück zur Recyclinganlage!"); ChatService.SendMessage((Player)player, "~y~[JOB] ~s~Der Müllwagen ist voll. Fahre nun zurück zur Recyclinganlage!");
if (target != null) if (target != null)
{ {
ChatService.SendMessage((Player)target, "~y~[Job] ~s~Der Müllwagen ist voll! Er muss entleert werden."); ChatService.SendMessage((Player)target, "~y~[JOB] ~s~Der Müllwagen ist voll! Er muss entleert werden.");
target.TriggerEvent("SERVER:MuellmannZuBase"); target.TriggerEvent("SERVER:MuellmannZuBase");
} }
player.TriggerEvent("SERVER:MuellmannZuBase"); player.TriggerEvent("SERVER:MuellmannZuBase");
@@ -294,8 +294,8 @@ namespace ReallifeGamemode.Server.Job
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) ChatService.SendMessage((Player)target, $"~y~[Job] ~s~Fahrzeug wurde entleert. Säcke: {data.getTrashCount()}"); if (target != null) ChatService.SendMessage((Player)target, $"~y~[JOB] ~s~Fahrzeug wurde entleert. Säcke: {data.getTrashCount()}");
ChatService.SendMessage((Player)player, $"~y~[Job] ~s~Fahrzeug wurde entleert. Säcke: {data.getTrashCount()}"); ChatService.SendMessage((Player)player, $"~y~[JOB] ~s~Fahrzeug wurde entleert. Säcke: {data.getTrashCount()}");
//bonus pro sack //bonus pro sack
using (var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
@@ -384,8 +384,8 @@ namespace ReallifeGamemode.Server.Job
if (target == null) if (target == null)
return; return;
ChatService.SendMessage((Player)player, $"~y~[Job] ~s~Dein Partner ist {target.Name}!"); ChatService.SendMessage((Player)player, $"~y~[JOB] ~s~Dein Partner ist {target.Name}!");
ChatService.SendMessage((Player)target, $"~y~[Job] ~s~Dein Partner ist {player.Name}!"); ChatService.SendMessage((Player)target, $"~y~[JOB] ~s~Dein Partner ist {player.Name}!");
return; return;
} }
} }
@@ -401,8 +401,8 @@ namespace ReallifeGamemode.Server.Job
if (target == null) if (target == null)
return; return;
ChatService.SendMessage((Player)player, $"~y~[Job] ~s~Dein Partner ist {target.Name}!"); ChatService.SendMessage((Player)player, $"~y~[JOB] ~s~Dein Partner ist {target.Name}!");
ChatService.SendMessage((Player)target, $"~y~[Job] ~s~Dein Partner ist {player.Name}!"); ChatService.SendMessage((Player)target, $"~y~[JOB] ~s~Dein Partner ist {player.Name}!");
} }
} }