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 adminUnshow = false;
var adminTSupport = false;
var noDmZone = false;
var dutyMode = false;
let jailTime = 0;
let att_score = 0;
@@ -84,6 +85,10 @@ export default function (globalData: IGlobalData): void {
blackScreenMode = toggle;
});
mp.events.add("toggleNoDmZone", (toggle) => {
noDmZone = toggle;
});
mp.events.add("jailTime", (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) {
var now = Date.now();
var diff = Math.trunc((now - cdTimestamp) / 1000);

View File

@@ -73,6 +73,7 @@ export default function busRouteList(globalData: IGlobalData) {
});
routeMenu.MenuClose.on(() => {
mp.events.callRemote("CLIENT:Job_StopJob");
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
mp.events.add('showReportMenu', (userTickets, TicketsArr) => {
if (!globalData.InMenu) {

View File

@@ -147,7 +147,7 @@ class RageEntityAttachmentPool implements IEntityAttachmentPool {
let e = new RageAttachments(entity, attachments, attachmentObjects);
this.attachmentPool.push(e);
return e;
return e;
}
at(remoteId: any): IEntityAttachments {
@@ -188,6 +188,10 @@ class RagePlayerPool implements IPlayerPool {
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));
})
}
exists(entity: IVehicle): boolean {
return mp.vehicles.exists(entity.id);
}
}
export {
@@ -290,5 +298,5 @@ export {
RageEntityAttachmentPool,
RageVehicle,
RageVehiclePool,
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -9,6 +9,11 @@ namespace ReallifeGamemode.Server.Events
{
internal class PlayerEvent : Script
{
[ServerEvent(Event.PlayerDamage)]
public void OnPlayerDamage(Player player, float healthLoss, float armorLoss) {
ChatService.Broadcast("dmg");
}
[RemoteEvent("CLIENT:SET_InFrontOfPos")]
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.StartCheckPointRoute(selectedRoute, MARKER_DELAY, MARKER_ID, MARKER_SIZE, MARKER_DIST, true, MARKER_EVENT);
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)
{
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);
if (type == BEGINNER)
@@ -635,13 +635,13 @@ namespace ReallifeGamemode.Server.Job
user.BusSkill++;
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 kannst jetzt auch mit dem Coach fahren!");
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!");
}
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 kannst jetzt auch mit dem Tourbus fahren!");
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!");
}
dbContext.SaveChanges();

View File

@@ -45,7 +45,7 @@ namespace ReallifeGamemode.Server.Job
_inJob.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);
}
@@ -58,7 +58,7 @@ namespace ReallifeGamemode.Server.Job
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]);
}

View File

@@ -356,8 +356,8 @@ namespace ReallifeGamemode.Server.Job
user.PilotSkill++;
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 kannst jetzt auch mit dem Velum fliegen!");
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!");
}
dbContext.SaveChanges();

View File

@@ -205,7 +205,7 @@ namespace ReallifeGamemode.Server.Job
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);
return;
@@ -254,10 +254,10 @@ namespace ReallifeGamemode.Server.Job
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)
{
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");
}
player.TriggerEvent("SERVER:MuellmannZuBase");
@@ -294,8 +294,8 @@ namespace ReallifeGamemode.Server.Job
if (data.getDataFromClient(player) == null) continue;
Player target = data.getPartnerClient(player);
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()}");
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()}");
//bonus pro sack
using (var dbContext = new DatabaseContext())
{
@@ -384,8 +384,8 @@ namespace ReallifeGamemode.Server.Job
if (target == null)
return;
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)player, $"~y~[JOB] ~s~Dein Partner ist {target.Name}!");
ChatService.SendMessage((Player)target, $"~y~[JOB] ~s~Dein Partner ist {player.Name}!");
return;
}
}
@@ -401,8 +401,8 @@ namespace ReallifeGamemode.Server.Job
if (target == null)
return;
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)player, $"~y~[JOB] ~s~Dein Partner ist {target.Name}!");
ChatService.SendMessage((Player)target, $"~y~[JOB] ~s~Dein Partner ist {player.Name}!");
}
}