This commit is contained in:
Luke
2021-05-29 03:01:50 +02:00
parent 02e4e5773f
commit 8f23ecb7fe
4 changed files with 17 additions and 37 deletions

View File

@@ -6,46 +6,39 @@
export default function deathScreen() { export default function deathScreen() {
var playerName;
var playerId;
var playerMoney;
var dutyMedics = 0; var dutyMedics = 0;
var isDeath = false; var isDead = false;
var deathTime;
var respawnTime;
var deathSeconds; var deathSeconds;
var fade;
var deathDate: Date; var deathDate: Date;
var taskTimeout = false;
const maxDeathTime = 120; const maxDeathTime = 120;
const medicJobTime = maxDeathTime * -1; var respawnTime;
var fade;
mp.game.gameplay.setFadeOutAfterDeath(false); mp.game.gameplay.setFadeOutAfterDeath(false);
mp.events.add("startDeathTimer", (isAdmin) => { mp.events.add("startDeathTimer", (isSupporter) => {
if (isDeath === false) { if (isDead === false) {
isDeath = true; isDead = true;
mp.gui.chat.activate(true); mp.gui.chat.activate(isSupporter);
mp.game.audio.playSoundFrontend(-1, "Bed", "WastedSounds", true); mp.game.audio.playSoundFrontend(-1, "Bed", "WastedSounds", true);
deathDate = new Date(); deathDate = new Date();
respawnTime = Math.floor(deathDate.getTime() / 1000 + maxDeathTime); respawnTime = Math.floor(deathDate.getTime() / 1000 + maxDeathTime);
fade = 255 - maxDeathTime; fade = 255 - maxDeathTime;
mp.game.graphics.requestStreamedTextureDict("Mptattoos", true); mp.game.graphics.requestStreamedTextureDict("Mptattoos", true);
mp.events.call("GetDutyMedics"); mp.events.call("GetDutyMedics");
taskTimeout = false;
} }
}); });
mp.events.add("onPlayerRevived", () => { mp.events.add("onPlayerRevived", () => {
isDeath = false; isDead = false;
mp.gui.chat.activate(true); mp.gui.chat.activate(true);
mp.game.gameplay.setFadeOutAfterDeath(false); mp.game.gameplay.setFadeOutAfterDeath(false);
mp.game.graphics.setStreamedTextureDictAsNoLongerNeeded("Mptattoos"); mp.game.graphics.setStreamedTextureDictAsNoLongerNeeded("Mptattoos");
}); });
mp.events.add("respawnDeathPlayer", () => { mp.events.add("respawnDeathPlayer", () => {
isDeath = false; isDead = false;
mp.gui.chat.activate(true); mp.gui.chat.activate(true);
mp.game.gameplay.setFadeOutAfterDeath(false); mp.game.gameplay.setFadeOutAfterDeath(false);
mp.events.callRemote('RespawnPlayerAtHospital'); mp.events.callRemote('RespawnPlayerAtHospital');
@@ -59,23 +52,24 @@ export default function deathScreen() {
mp.events.add("render", () => { mp.events.add("render", () => {
var currentDate = new Date(); var currentDate = new Date();
if (isDeath === true) { if (isDead === true) {
var medicString; var medicString;
if (dutyMedics > 0) { if (dutyMedics > 0) {
medicString = "Das L.S.E.D. wurde benachrichtigt\nDerzeit "; medicString = "Das L.S.E.D. wurde benachrichtigt\nDerzeit ";
if (dutyMedics === 1) { if (dutyMedics === 1) {
medicString += "befindet sich ~g~" + dutyMedics + " Mitglied"; medicString += "befindet sich ~g~" + dutyMedics + " Mitglied";
} else { } else {
medicString += "befinden sich ~g~" + dutyMedics + " Mitglieder"; medicString += "befinden sich ~g~" + dutyMedics + " Mitglieder";
} }
medicString += " ~s~im Dienst"; medicString += " ~s~im Dienst";
} else { } else {
medicString = "Derzeit befinden sich ~r~keine Einsatzkräfte ~s~im Dienst"; medicString = "Derzeit befinden sich ~r~keine Einsatzkräfte ~s~im Dienst";
} }
deathSeconds = respawnTime - Math.floor(currentDate.getTime() / 1000); deathSeconds = respawnTime - Math.floor(currentDate.getTime() / 1000);
var alpha = fade + Math.floor(currentDate.getTime() / 1000 - deathDate.getTime() / 1000);
if (deathSeconds >= 0) { if (deathSeconds >= 0) {
mp.game.graphics.set2dLayer(2); mp.game.graphics.set2dLayer(2);
mp.game.graphics.drawSprite("Mptattoos", "clearout", 0.625, 0.5, 0.1, 0.1, 0, 255, 255, 255, 236); mp.game.graphics.drawSprite("Mptattoos", "clearout", 0.625, 0.5, 0.1, 0.1, 0, 255, 255, 255, 236);
@@ -95,6 +89,8 @@ export default function deathScreen() {
outline: true, outline: true,
centre: false centre: false
}); });
var alpha = fade + Math.floor(currentDate.getTime() / 1000 - deathDate.getTime() / 1000);
mp.game.graphics.set2dLayer(1); mp.game.graphics.set2dLayer(1);
mp.game.graphics.drawRect(0.5, 0.5, 1, 1, 0, 0, 0, alpha); mp.game.graphics.drawRect(0.5, 0.5, 1, 1, 0, 0, 0, alpha);

View File

@@ -197,15 +197,7 @@ namespace ReallifeGamemode.Server.Events
} }
player.SetData("isDead", true); player.SetData("isDead", true);
player.TriggerEvent("startDeathTimer", user.IsAdmin(AdminLevel.SUPPORTER));
if (player.GetUser().IsAdmin(AdminLevel.ADMIN) == true)
{
player.TriggerEvent("startDeathTimer", true);
}
else
{
player.TriggerEvent("startDeathTimer", false);
}
//TODO PICTURE NOTIFICATION + SOUND für Medics //TODO PICTURE NOTIFICATION + SOUND für Medics
} }

View File

@@ -194,14 +194,7 @@ namespace ReallifeGamemode.Server.Events
{ {
if (user.Dead == true) if (user.Dead == true)
{ {
if (user.IsAdmin(AdminLevel.ADMIN) == true) player.TriggerEvent("startDeathTimer", user.IsAdmin(AdminLevel.SUPPORTER));
{
player.TriggerEvent("startDeathTimer", true);
}
else
{
player.TriggerEvent("startDeathTimer", false);
}
player.SafeSetHealth(0); player.SafeSetHealth(0);
player.SetData("isDead", true); player.SetData("isDead", true);
} }

View File

@@ -42,7 +42,6 @@ namespace ReallifeGamemode.Server.Services
public static void SendMessage(Player player, string message) public static void SendMessage(Player player, string message)
{ {
if (player == null) return; if (player == null) return;
if (player.GetData<bool>("isDead") == true && (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)) return;
player.SendChatMessage(message); player.SendChatMessage(message);
} }