Merge dev to surgery

This commit is contained in:
VegaZ
2021-04-25 15:27:32 +02:00
29 changed files with 220 additions and 145 deletions

View File

@@ -151,7 +151,7 @@ namespace ReallifeGamemode.Server.Bank
{
player.SendNotification($"~w~Du hast {target.Name} $~g~{amount} ~w~Überwiesen.");
player.GetUser(dbContext).BankAccount.Balance -= (int)(amount * 1.05);
target.GetUser(dbContext).otheramount = amount;
target.GetUser(dbContext).otheramount += amount;
dbContext.SaveChanges();
}
}
@@ -203,7 +203,7 @@ namespace ReallifeGamemode.Server.Bank
{
player.SendNotification($"~w~Du hast {target.Name} $~g~{amount} ~w~Überwiesen.");
player.GetUser(dbContext).Faction.BankAccount.Balance -= (int)(amount * 1.05);
target.GetUser(dbContext).otheramount = amount;
target.GetUser(dbContext).otheramount += amount;
dbContext.SaveChanges();
}
}

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
@@ -165,12 +165,6 @@ namespace ReallifeGamemode.Server.Commands
[Command("position", "~m~Benutzung: ~s~/position")]
public void CmdAdminPosition(Player player)
{
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
ChatService.SendMessage(player, "Position: X Y Z: " + player.Position + " Richtung: " + player.Heading);
}
@@ -1358,7 +1352,7 @@ namespace ReallifeGamemode.Server.Commands
if (target.GetData<bool>("isDead") == true)
{
ChatService.ErrorMessage(player, "Dieser Spieler ist tot. Nutze /arevive.");
ChatService.ErrorMessage(player, "Dieser Spieler ist tot. Nutze /arevive");
return;
}

View File

@@ -120,7 +120,7 @@ namespace ReallifeGamemode.Server.Commands
}
[Command("help", "~m~Benutzung: ~s~/help")]
public void CmdHelp(Player player)
public void CmdUserHelp(Player player)
{
player.SendChatMessage("E - Interagieren (ATM, Türen, Shops, Friseur etc.");
player.SendChatMessage("M - Interaktionsmenü öffnen und schließen");
@@ -129,7 +129,7 @@ namespace ReallifeGamemode.Server.Commands
player.SendChatMessage("O - Onlineliste öffnen / schließen");
player.SendChatMessage("I - Inventar öffnen / schließen");
player.SendChatMessage("F4 - Mikrofon an/aus schalten");
player.SendChatMessage("/skill - Skillpunkte anzeigen");
player.SendChatMessage("/report - Support-Anfrage");
}
[Command("hup")]

View File

@@ -632,10 +632,9 @@ namespace ReallifeGamemode.Server.Events
if(player.GetData<bool>("SellVehicleDecision") == true && player.HasData("VehicleToSell"))
{
InteractionManager.SellPlayerVehicle(player, player.GetData<int>("VehicleToSell"));
InteractionManager.SellServerVehicle(player, player.GetData<int>("VehicleToSell"));
player.ResetData("SellVehicleDecision");
player.ResetData("VehicleToSell");
player.SendNotification("~g~Du hast dein Fahrzeug verkauft");
player.ResetData("VehicleToSell");
return;
}

View File

@@ -1,4 +1,4 @@
using System.Linq;
using System.Linq;
using GTANetworkAPI;
using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json;
@@ -100,7 +100,7 @@ namespace ReallifeGamemode.Server.Events
if (user.Wanteds > 0)
{
ChatService.HQMessage("Der Straftäter" + user.Name + " hat sich mit " + user.Wanteds + " Wanteds eingeloggt.");
ChatService.HQMessage("Der Straftäter " + user.Name + " hat sich mit " + user.Wanteds + " Wanteds eingeloggt.");
}
if (user.Wanteds == 0)

View File

@@ -29,9 +29,9 @@ namespace ReallifeGamemode.Server.Events
player.TriggerEvent("SERVER:Login_Error", "Das Passwort muss aus mindestens 6 Zeichen bestehen.");
return;
}
if (dbContext.Users.Where(u => u.SocialClubName == player.SocialClubName).Count() >= 3)
if (dbContext.Users.Where(u => u.SocialClubName == player.SocialClubName).Count()!= 0)
{
player.TriggerEvent("SERVER:Login_Error", "Es sind schon 3 Konten mit dieser Socialclub-ID registriert.");
player.TriggerEvent("SERVER:Login_Error", "Es ist schon ein Konto mit dieser Socialclub-ID registriert.");
return;
}

View File

@@ -195,6 +195,21 @@ namespace ReallifeGamemode.Server.Factions.Medic
}
}
public static void RemoveOldHealTask()
{
if (HealTasks.Count != 0)
{
foreach (var task in HealTasks.ToList())
{
var taskActive = DateTime.Now - task.Time;
if (taskActive > TimeSpan.FromMinutes(10) && task.MedicName == "none")
{
delHealTask(PlayerService.GetPlayerByNameOrId(task.Victim));
}
}
}
}
[RemoteEvent("loadMedicTasks")]
public void LoadMedicTasks(Player player, int type)
{

View File

@@ -1,4 +1,4 @@
using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using GTANetworkAPI;
using Newtonsoft.Json;
@@ -145,7 +145,7 @@ namespace ReallifeGamemode.Server.Gangwar
int id = JsonConvert.DeserializeObject<int>(jsonId);
if (id == -1)
{
ChatService.ErrorMessage(client, "Du befindest dich in keinem Gebiet!");
ChatService.ErrorMessage(client, "Du befindest dich in keinem Gebiet");
return;
}
using (var dbContext = new DatabaseContext())

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
@@ -217,8 +217,8 @@ namespace ReallifeGamemode.Server.Gangwar
{
using (var dbContext = new DatabaseContext())
{
ChatService.BroadcastFaction("~y~[GANGWAR] ~r~" + client.Name + "~w~ ist nicht im Gangwar beteiligt !", dbContext.Factions.Where(f => f.Name == getOwner()).FirstOrDefault());
ChatService.BroadcastFaction("~y~[GANGWAR] ~r~" + client.Name + "~w~ ist nicht im Gangwar beteiligt !", dbContext.Factions.Where(f => f.Name == getAttacker()).FirstOrDefault());
ChatService.BroadcastFaction("~y~[GANGWAR] ~r~" + client.Name + "~w~ ist nicht im Gangwar beteiligt!", dbContext.Factions.Where(f => f.Name == getOwner()).FirstOrDefault());
ChatService.BroadcastFaction("~y~[GANGWAR] ~r~" + client.Name + "~w~ ist nicht im Gangwar beteiligt!", dbContext.Factions.Where(f => f.Name == getAttacker()).FirstOrDefault());
}
return;
}
@@ -332,7 +332,7 @@ namespace ReallifeGamemode.Server.Gangwar
List<Player> leaders = context.Users.Include(u => u.Faction).Where(u => onlinePlayers.Contains(u.Name) && u.Faction.Name == attacker && u.FactionLeader).Select(u => u.Player).ToList();
foreach (var l in leaders)
{
ChatService.ErrorMessage(l, "Gangwarstart ist nicht möglich, da die beteiligten Fraktionen nicht genügend Mitglieder aufweisen.");
ChatService.ErrorMessage(l, "Du kannst keinen Gangwar starten, weil in der gegnerischen Fraktion zu wenig Spieler online sind");
}
return;

View File

@@ -30,14 +30,14 @@ namespace ReallifeGamemode.Server.Inventory.Items
if (!HasCooldownElapsed(user))
{
DateTime time = InventoryManager.itemCooldown[user];
DateTime time = InventoryManager.itemCooldown[user.Id];
int timeUntillNextUse = (int)(time - DateTime.Now).TotalSeconds;
uItem.GetUser().Player.TriggerEvent("Error", $"Versuche es nach {timeUntillNextUse} Sekunden erneut.");
return false;
}
DateTime cooldown = DateTime.Now.AddMilliseconds(Cooldown);
InventoryManager.itemCooldown.Add(user, cooldown);
InventoryManager.itemCooldown.Add(user.Id, cooldown);
Consume(uItem);
return true;
@@ -48,13 +48,13 @@ namespace ReallifeGamemode.Server.Inventory.Items
if (user.Player == null || !user.Player.IsLoggedIn())
return false;
if (!InventoryManager.itemCooldown.ContainsKey(user))
if (!InventoryManager.itemCooldown.ContainsKey(user.Id))
return true;
int timeRemaining = (int)(InventoryManager.itemCooldown[user] - DateTime.Now).TotalSeconds;
int timeRemaining = (int)(InventoryManager.itemCooldown[user.Id] - DateTime.Now).TotalSeconds;
if (timeRemaining <= 0)
InventoryManager.itemCooldown.Remove(user);
InventoryManager.itemCooldown.Remove(user.Id);
return timeRemaining <= 0;
}

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using GTANetworkAPI;
@@ -267,7 +267,7 @@ namespace ReallifeGamemode.Server.Job
else if (data.getTrashCount() > MAX_BAG)
{
data.setTrashCount(MAX_BAG);
ChatService.ErrorMessage((Player)player, "Der Müllwagen ist schon voll.");
ChatService.ErrorMessage((Player)player, "Der Müllwagen ist schon voll");
}
else
{

View File

@@ -1,4 +1,4 @@
using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using GTANetworkAPI;
using Newtonsoft.Json;
@@ -479,21 +479,39 @@ namespace ReallifeGamemode.Server.Managers
}
}
public static void SellPlayerVehicle(Player player, int id)
public static void SellServerVehicle(Player player, int id)
{
using var dbContext = new DatabaseContext();
var user = player.GetUser(dbContext);
var userVehicle = dbContext.UserVehicles.Where(v => v.Id == id && v.UserId == user.Id).FirstOrDefault();
var vehPrice = userVehicle.Price;
var backPrice = (int)(vehPrice * 0.4);
GTANetworkAPI.Vehicle veh = VehicleManager.GetVehicleFromServerVehicle(userVehicle);
user.BankAccount.Balance += backPrice;
ServerVehicle serverVehicle = dbContext.ServerVehicles.FirstOrDefault(v => v.Id == id);
if(serverVehicle is UserVehicle)
{
UserVehicle userVehicle = dbContext.UserVehicles.Where(v => v.Id == id && v.UserId == user.Id).FirstOrDefault();
var vehPrice = userVehicle.Price;
var backPrice = (int)(vehPrice * 0.4);
GTANetworkAPI.Vehicle veh = VehicleManager.GetVehicleFromServerVehicle(userVehicle);
user.BankAccount.Balance += backPrice;
ChatService.SendMessage(player, $"~b~[INFO]~s~ Du hast durch den Autoverkauf ~g~{backPrice.ToMoneyString()}~s~ erhalten.");
ChatService.SendMessage(player, $"~b~[INFO]~s~ Du hast durch den Autoverkauf ~g~{backPrice.ToMoneyString()}~s~ erhalten.");
VehicleManager.DeleteVehicle(veh);
VehicleManager.DeleteVehicle(veh);
dbContext.UserVehicles.Remove(userVehicle);
player.SendNotification("~g~Du hast dein Fahrzeug verkauft");
}
else if(serverVehicle is FactionVehicle)
{
FactionVehicle factionVehicle = dbContext.FactionVehicles.FirstOrDefault(v => v.Id == id);
var backPrice = (int)(factionVehicle.BuyPrice * 1.5 * 0.4);
user.Faction.BankAccount.Balance += backPrice;
dbContext.UserVehicles.Remove(userVehicle);
ChatService.SendMessage(player, $"~b~[INFO]~s~ Die Fraktionskasse hat ~g~{backPrice.ToMoneyString()}~s~ erhalten.");
VehicleManager.DeleteVehicle(VehicleManager.GetVehicleFromServerVehicle(factionVehicle));
dbContext.FactionVehicles.Remove(factionVehicle);
player.SendNotification("~g~Du hast dein Fraktionsfahrzeug verkauft");
}
dbContext.SaveChanges();
}
@@ -533,10 +551,10 @@ namespace ReallifeGamemode.Server.Managers
return;
}
var factionVehicleCount = dbContext.FactionVehicles.ToList().Where(v => v.Id == id && v.GetOwners().Contains(user.FactionId.Value)).Count();
var factionVehicleCount = dbContext.FactionVehicles.ToList().Where(v => v.GetOwners().Contains(user.FactionId.Value)).Count();
if (factionVehicleCount <= 6)
{
ChatService.ErrorMessage(player, "Die Fraktion braucht mindestens 6 Fahrzeuge");
ChatService.ErrorMessage(player, "Die Fraktion braucht mindestens sechs Fahrzeuge");
return;
}
@@ -546,16 +564,13 @@ namespace ReallifeGamemode.Server.Managers
ChatService.ErrorMessage(player, "Das Fahrzeug konnte nicht verkauft werden. Bitte melde dich bei der Leaderverwaltung");
return;
}
var backPrice = (int)(price.Price * 1.5 * 0.4);
user.Faction.BankAccount.Balance += backPrice;
ChatService.SendMessage(player, $"~b~[INFO]~s~ Die Fraktionskasse ~g~{backPrice.ToMoneyString()}~s~ erhalten.");
VehicleManager.DeleteVehicle(veh);
dbContext.FactionVehicles.Remove(factionVehicle);
dbContext.SaveChanges();
player.SetData<bool>("SellVehicleDecision", true);
player.SetData<int>("VehicleToSell", id);
ChatService.SendMessage(player, "~s~Möchtes du das Fahrzeug ~y~" + veh.DisplayName + " ~s~wirklich für ~g~$" + backPrice + " ~s~verkaufen? Drücke ~g~J~s~ zum Bestätigen oder ~r~N ~s~zum Abbrechen");
}
}

View File

@@ -34,7 +34,7 @@ namespace ReallifeGamemode.Server.Managers
public static Dictionary<Player, List<InventoryItem>> backpackItems { get; set; } = new Dictionary<Player, List<InventoryItem>>();
public static Dictionary<Player, List<InventoryItem>> vehicleItems { get; set; } = new Dictionary<Player, List<InventoryItem>>();
public static Dictionary<User, DateTime> itemCooldown = new Dictionary<User, DateTime>();
public static Dictionary<int, DateTime> itemCooldown = new Dictionary<int, DateTime>();
public class InventoryItem
{

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
@@ -66,7 +66,7 @@ namespace ReallifeGamemode.Server.Managers
if (u.JobId == null)
{
ChatService.ErrorMessage(player, "Du hast momentan keinen Job, den du kündigen könntest.");
ChatService.ErrorMessage(player, "Du bist bereits arbeitslos");
return;
}
@@ -89,20 +89,20 @@ namespace ReallifeGamemode.Server.Managers
if (u.JobId != null)
{
ChatService.ErrorMessage(player, "Du musst deinen alten Job kündigen, bevor du einen neuen ausüben kannst.");
ChatService.ErrorMessage(player, "Du musst deinen alten Job kündigen, bevor du einen Neuen ausüben kannst");
return;
}
//Pilotjob
if (jobId == 3 && u.FlyingLicensePlane == false)
{
ChatService.ErrorMessage(player, "Um diesen Job annehmen zu können, musst du einen Flugschein besitzen.");
ChatService.ErrorMessage(player, "Um diesen Job annehmen zu können, musst du einen Flugschein besitzen");
return;
}
if (u.DriverLicenseVehicle == false)
{
ChatService.ErrorMessage(player, "Um diesen Job annehmen zu können, musst du einen Führerschein besitzen.");
ChatService.ErrorMessage(player, "Um diesen Job annehmen zu können, musst du einen Führerschein besitzen");
return;
}
@@ -202,9 +202,9 @@ namespace ReallifeGamemode.Server.Managers
{
JobBase job = GetJob(player.GetUser().JobId ?? -1);
if (job != null && job.GetUsersInJob().Contains(player) && seat == 0)
if (job != null && job.GetUsersInJob().Contains(player))
{
if(job.CheckVehicle(player, veh))
if(job.CheckVehicle(player, veh) && seat == 0)
{
if (!playerTimersJobVehicleRespawn.ContainsKey(player))
return;

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using GTANetworkAPI;
using Newtonsoft.Json;
@@ -35,7 +35,7 @@ namespace ReallifeGamemode.Server.Report
if (listReports.FindAll(e => (e.isAssigned() == false)).Count == 0)
{
ChatService.ErrorMessage(client, "Im Moment gibt es keine Tickets.");
ChatService.ErrorMessage(client, "Aktuell gibt es keine Tickets");
return;
}
@@ -92,7 +92,8 @@ namespace ReallifeGamemode.Server.Report
}
}
ChatService.SendMessage(player, "!{#008fff}[REPORT]!{#FFFFFF} Admin " + admin.Name + " hat dein Ticket angenommen! (Benutze /rc zum Schreiben)");
ChatService.SendMessage(player, "!{#008fff}[REPORT]!{#FFFFFF} Admin " + admin.Name + " hat dein Ticket angenommen! Über /rc [Text] kannst du mit dem Admin schreiben.");
ChatService.SendMessage(admin, "!{#008fff}[REPORT]!{#FFFFFF} Du hast das Ticket von " + player.Name + " angenommen! Über /rc [Text] kannst du mit dem User schreiben.");
ChatService.BroadcastDutyAdmin("!{#008fff}[REPORT]!{#FFFFFF} " + admin.Name + " hat das Ticket von " + player.Name + " angenommen");
}

View File

@@ -74,6 +74,7 @@ namespace ReallifeGamemode.Server.Util
Economy.Timer_Elapsed();
WeaponDealManager.Timer_Elapsed();
Medic.UpdateReviveSperre();
Medic.RemoveOldHealTask();
});
}