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