add service ruf sanitäter

This commit is contained in:
Michael
2020-09-22 14:11:51 +02:00
parent 0639b3d517
commit 1be8590b36
8 changed files with 134 additions and 15 deletions

View File

@@ -30,6 +30,7 @@ export default function factionInteraction(globalData: IGlobalData) {
var pointsName: string;
var factionInteractionMenu;
var healTaskMenuMedic;
var reviveTaskMenuMedic;
/*mp.events.add("updateFactionBlips", (type, taskList) => {
@@ -184,9 +185,10 @@ export default function factionInteraction(globalData: IGlobalData) {
healTaskMenuMedic.SetRightLabel(hPM + healTaskCountMedic)
factionInteractionMenu.AddItem(healTaskMenuMedic);
fireTaskMenuMedic = new UIMenuItem("Feuerauftr\u00e4ge");
/*fireTaskMenuMedic = new UIMenuItem("Feuerauftr\u00e4ge"); //wenn die funktion dafür vorhanden ist wird das wieder eingebunden
fireTaskMenuMedic.SetRightLabel(fPM + fireTaskCountMedic);
factionInteractionMenu.AddItem(fireTaskMenuMedic);
factionInteractionMenu.AddItem(fireTaskMenuMedic);
*/
}
}
@@ -211,6 +213,12 @@ export default function factionInteraction(globalData: IGlobalData) {
mp.gui.chat.activate(true);
globalData.InMenu = false;
break;
case healTaskMenuMedic:
mp.events.callRemote("loadMedicTasks", 1)
factionInteractionMenu.Close();
mp.gui.chat.activate(true);
globalData.InMenu = false;
break;
}
});
@@ -286,7 +294,56 @@ export default function factionInteraction(globalData: IGlobalData) {
});
break;
case 1:
break;
healTaskMenuMedic = new Menu("Heal", "\u00c4lteste zu erst", new Point(0, screenRes.y / 2), null, null);
let aTask1;
for (var i = 0; i < tasks.length; i++) {
if (tasks[i].MedicName === "none") {
aTask1 = new UIMenuItem("~g~" + tasks[i].Victim);
} else {
aTask1 = new UIMenuItem("~r~" + tasks[i].Victim);
}
aTask1.SetRightLabel(mp.game.gameplay.getDistanceBetweenCoords(player.position.x, player.position.y, player.position.z, tasks[i].Position.x, tasks[i].Position.y, tasks[i].Position.z, true).toFixed(2).toString() + " ~g~m");
healTaskMenuMedic.AddItem(aTask1);
}
let backItem1 = new UIMenuItem("Zur\u00fcck", "Zur\u00fcck zur Fraktionsinteraktion.");
backItem1.BackColor = new Color(213, 0, 0);
backItem1.HighlightedBackColor = new Color(229, 57, 53);
healTaskMenuMedic.AddItem(backItem1);
healTaskMenuMedic.ItemSelect.on((item, index) => {
if (item === backItem1) {
healTaskMenuMedic.Close();
factionInteractionMenu.Visible = true;
} else {
if (tasks[index].MedicName === "none") {
mp.game.graphics.requestStreamedTextureDict("medicimages", true);
mp.events.callRemote("updateMedicTask", 1, index, player.name);
mp.game.ui.setNewWaypoint(tasks[index].Position.x, tasks[index].Position.y);
activeCheckpoint = mp.markers.new(1, new mp.Vector3(tasks[index].Position.x, tasks[index].Position.y, tasks[index].Position.z - 2), 3.0, {
color: [255, 0, 0, 150],
visible: true,
dimension: 0
});
healTaskMenuMedic.Close();
mp.gui.chat.activate(true);
globalData.InMenu = false;
ambulanceImagePos = 0.325
taskStart = player.position;
taskFinish = tasks[index].Position;
taskRange = mp.game.gameplay.getDistanceBetweenCoords(player.position.x, player.position.y, player.position.z, tasks[index].Position.x, tasks[index].Position.y, tasks[index].Position.z, true);
activeTask = true;
}
}
});
healTaskMenuMedic.Open();
healTaskMenuMedic.MenuClose.on(() => {
healTaskMenuMedic.Visible = false;
globalData.InMenu = false;
});
case 2:
break;
}
@@ -379,6 +436,7 @@ export default function factionInteraction(globalData: IGlobalData) {
} else {
activeTask = false;
activeCheckpoint.destroy();
mp.events.callRemote("delHealTask");
}
}
});

View File

@@ -387,14 +387,20 @@ export default function (globalData: IGlobalData) {
function getServicesMenu(parentMenu: NativeUI.Menu): NativeUI.Menu {
var servicesMenu = new Menu("Services", "Rufe einen Service", new Point(50, 50), null, null);
servicesMenu.AddItem(new UIMenuItem("Taxi rufen", "Rufe ein Taxi zu deiner Position"));
var saniItem = new UIMenuItem("Sanitäter rufen", "Rufe einen Sanitäter zu deiner Position.");
servicesMenu.AddItem(saniItem);
servicesMenu.Visible = false;
servicesMenu.ItemSelect.on((item, index) => {
if (index === 0) { // Taxi
mp.events.callRemote("CLIENT:InteractionMenu_CallService_Taxi", getStreetName(), getZoneName());
}
parentMenu.Close();
else if (index === 1) { // Sanitäter
mp.events.callRemote("CLIENT:InteractionMenu_CallService_Sani");
}
parentMenu.Close(true);
});
return servicesMenu;

View File

@@ -1418,8 +1418,7 @@ namespace ReallifeGamemode.Server.Commands
NAPI.Player.SpawnPlayer(target, target.Position);
target.Health = 100;
MedicTask task = Medic.ReviveTasks.FirstOrDefault(t => t.Victim == target.Name);
Medic.RemoveTaskFromList(task);
Medic.delReviveTasks(target);
}
[Command("setap", "~m~Benutzung: ~s~/setap [Spieler] (Armor)")]
@@ -2182,8 +2181,7 @@ namespace ReallifeGamemode.Server.Commands
NAPI.Player.SpawnPlayer(managedPlayer, managedPlayer.Position);
managedPlayer.Health = 100;
MedicTask task = Medic.ReviveTasks.FirstOrDefault(t => t.Victim == managedPlayer.Name);
Medic.RemoveTaskFromList(task);
Medic.delReviveTasks(managedPlayer);
}
ChatService.SendMessage(player, "~b~Du hast " + playerRevided + " Spieler wiederbelebt.");

View File

@@ -368,6 +368,7 @@ namespace ReallifeGamemode.Server.Commands
target.Health = 100;
target.SendNotification($"Du wurdest von ~g~{player.Name} ~s~ für ~g~{price.ToMoneyString()} geheilt.", false);
player.SendNotification($"Du hast ~g~{target.Name} ~s~ für {price.ToMoneyString()} geheilt.", false);
player.TriggerEvent("delHealTask");
}
#endregion Sanitäter Commands

View File

@@ -104,6 +104,7 @@ namespace ReallifeGamemode.Server.Events
MedicName = "none"
};
Medic.AddTaskToList(reviveTask);
Medic.delHealTasks(player);
ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " ist soeben verstorben.", new List<int>() { 2 });
if (player.GetUser().IsAdmin(AdminLevel.ADMIN) == true)
@@ -231,8 +232,7 @@ namespace ReallifeGamemode.Server.Events
dbContext.SaveChanges();
}
player.RemoveAllWeapons();
MedicTask task = Medic.ReviveTasks.FirstOrDefault(t => t.Victim == player.Name);
Medic.RemoveTaskFromList(task);
Medic.delReviveTasks(player);
NAPI.Player.SpawnPlayer(player, new Vector3(-495.45, -336.33, 34.5), -98.36f);
}

View File

@@ -137,8 +137,8 @@ namespace ReallifeGamemode.Server.Events
player.TriggerEvent("CLIENT:DestroyPed", 2);
player.TriggerEvent("CLIENT:DestroyPed", 3);
player.TriggerEvent("CLIENT:DestroyPed", 4);
MedicTask task = Medic.ReviveTasks.FirstOrDefault(t => t.Victim == player.Name);
Medic.RemoveTaskFromList(task);
Medic.delHealTasks(player);
Medic.delReviveTasks(player);
}
}
}

View File

@@ -2,6 +2,7 @@
using GTANetworkAPI;
using Newtonsoft.Json;
using ReallifeGamemode.Server.Services;
using System.Linq;
/**
* @overview Life of German Reallife - Server Factions Medic Medic.cs
@@ -89,11 +90,12 @@ namespace ReallifeGamemode.Server.Factions.Medic
{
case 0:
ReviveTasks[index].MedicName = medicName;
ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + "hat den Reviveauftrag von " + medicName + " angenommen.", new List<int>() { 2 });
ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat den Reviveauftrag von " + medicName + " angenommen.", new List<int>() { 2 });
break;
case 1:
HealTasks[index].MedicName = medicName;
ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat den Healauftrag von " + medicName + " angenommen.", new List<int>() { 2 });
break;
case 2:
@@ -101,5 +103,33 @@ namespace ReallifeGamemode.Server.Factions.Medic
break;
}
}
[RemoteEvent("delHealTask")]
public void delHealTask(Player player)
{
MedicTask task = HealTasks.FirstOrDefault(t => t.Victim == player.Name);
RemoveTaskFromList(task);
player.SetData("healauftrag", false);
}
[RemoteEvent("delReviveTask")]
public void delReviveTask(Player player)
{
MedicTask task = ReviveTasks.FirstOrDefault(t => t.Victim == player.Name);
RemoveTaskFromList(task);
}
public static void delHealTasks(Player player)
{
MedicTask task = HealTasks.FirstOrDefault(t => t.Victim == player.Name);
RemoveTaskFromList(task);
player.SetData("healauftrag", false);
}
public static void delReviveTasks(Player player)
{
MedicTask task = ReviveTasks.FirstOrDefault(t => t.Victim == player.Name);
RemoveTaskFromList(task);
}
}
}

View File

@@ -15,6 +15,7 @@ using Microsoft.EntityFrameworkCore;
using ReallifeGamemode.Server.Events;
using System;
using ReallifeGamemode.Server.Core.API;
using ReallifeGamemode.Server.Factions.Medic;
/**
* @overview Life of German Reallife - Managers Interaction (InteractionManager.cs)
@@ -689,10 +690,35 @@ namespace ReallifeGamemode.Server.Managers
}
}
[RemoteEvent("CLIENT:InteractionMenu_CallService_Sani")]
public void CallServiceSani(Player player)
{
//MEDIC AUFTRAG
MedicTask healTask = new MedicTask()
{
Victim = player.Name,
Position = player.Position,
Caller = null,
Description = "Healen",
Time = DateTime.Now,
Type = MedicTaskType.HEAL,
MedicName = "none"
};
if (player.GetData<bool>("healauftrag") == true)
{
player.SendNotification("~r~[Fehler] ~w~Du hast bereits ein Sanitäter gerufen.");
}else
{
Medic.AddTaskToList(healTask);
player.SetData("healauftrag", true);
ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat soeben einen Serviceauftrag beantragt.", new List<int>() { 2 });
}
}
#endregion Eigeninteraktionen PFEILTASTE-RUNTER
#region Spielerinteraktionen PFEILTASTE-LINKS
#region Spielerinteraktionen PFEILTASTE-LINKS
[RemoteEvent("openTradeInventory")]
public void OpenTradeInventory(Player player, string targetPlayer)