/** * @overview Life of German Reallife - Gui Infobox infobox.js * @author VegaZ * @copyright (c) 2008 - 2018 Life of German */ export default function deathScreen() { var dutyMedics = 0; var isDead = false; var deathSeconds; var deathDate: Date; const maxDeathTime = 120; var respawnTime; var fade; mp.game.gameplay.setFadeOutAfterDeath(false); function deactivateDeathScreen() { isDead = false; mp.gui.chat.activate(true); mp.game.gameplay.setFadeOutAfterDeath(false); } mp.events.add("startDeathTimer", (isSupporter) => { if (isDead) { return; } isDead = true; mp.gui.chat.activate(isSupporter); mp.game.audio.playSoundFrontend(-1, "Bed", "WastedSounds", true); deathDate = new Date(); respawnTime = Math.floor(deathDate.getTime() / 1000 + maxDeathTime); fade = 255 - maxDeathTime; mp.events.call("GetDutyMedics"); }); mp.events.add("onPlayerRevived", () => { deactivateDeathScreen(); }); mp.events.add("respawnDeathPlayer", () => { deactivateDeathScreen(); mp.events.callRemote('RespawnPlayerAtHospital'); }); mp.events.add("updateDutyMedics", (count) => { dutyMedics = count; }); mp.events.add("render", () => { if (!isDead) { return; } var medicString = "Derzeit befinden sich ~r~keine Einsatzkräfte ~s~im Dienst"; if (dutyMedics > 0) { medicString = "Das L.S.E.D. wurde benachrichtigt\nDerzeit "; if (dutyMedics === 1) { medicString += "befindet sich ~g~" + dutyMedics + " Mitglied"; } else { medicString += "befinden sich ~g~" + dutyMedics + " Mitglieder"; } medicString += " ~s~im Dienst"; } var currentDate = new Date(); deathSeconds = respawnTime - Math.floor(currentDate.getTime() / 1000); if (deathSeconds <= 0) { mp.events.call("respawnDeathPlayer"); return; } mp.game.graphics.set2dLayer(2); mp.game.graphics.drawText("~HUD_COLOUR_RED~Du bist gestorben", [0.5, 0.425], { font: 7, color: [255, 255, 255, 255], scale: [0.8, 0.8], outline: true, centre: true }); mp.game.graphics.drawText("Du wirst in " + deathSeconds + " Sekunden wiederbelebt", [0.5, 0.475], { font: 4, color: [255, 255, 255, 255], scale: [0.4, 0.4], outline: true, centre: true }); mp.game.graphics.drawText(medicString, [0.5, 0.945], { font: 4, color: [255, 255, 255, 255], scale: [0.4, 0.4], outline: true, centre: true }); var alpha = fade + Math.floor(currentDate.getTime() / 1000 - deathDate.getTime() / 1000); mp.game.graphics.set2dLayer(1); mp.game.graphics.drawRect(0.5, 0.5, 1, 1, 0, 0, 0, alpha); }); }