Merge branch 'develop' of ssh://development.life-of-german.org:451/log-gtav/reallife-gamemode into develop
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
22
ReallifeGamemode.Client/Player/position.ts
Normal file
22
ReallifeGamemode.Client/Player/position.ts
Normal 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);
|
||||||
|
}
|
||||||
@@ -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) {
|
||||||
|
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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 = {};
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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}!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user