Merge branch 'develop' of ssh://development.life-of-german.org:451/log-gtav/reallife-gamemode into develop

This commit is contained in:
michael.reiswich
2021-04-02 16:48:10 +02:00
15 changed files with 2152 additions and 78 deletions

View File

@@ -1727,6 +1727,17 @@ namespace ReallifeGamemode.Server.Commands
#region ALevel1337
[Command("setsvar", "~m~Benutzung:~s~ /setsvar [ID] [WERT]")]
public void CmdAdmSetSvar(Player player, int varId, int varValue)
{
if (!player.GetUser()?.IsAdmin(AdminLevel.PROJEKTLEITUNG) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
Managers.SVarManager.ChangeSVarValue(player, varId, varValue);
}
[Command("createturf", "~m~Benutzung:~s~ /createturf [radius]")]
public void CmdAdmCreateTurf(Player player, float option)
{

View File

@@ -2,6 +2,7 @@
using System.Linq;
using GTANetworkAPI;
using ReallifeGamemode.Database.Models;
using ReallifeGamemode.Server.Extensions;
using ReallifeGamemode.Server.Managers;
using ReallifeGamemode.Server.Services;
using ReallifeGamemode.Server.Types;
@@ -29,21 +30,39 @@ namespace ReallifeGamemode.Server.Events
bool registered = false;
var whitelistStatus = Managers.SVarManager.SVars.FirstOrDefault(v => v.Variable == "WhitelistStatus").Value;
using (var dbContext = new DatabaseContext())
{
registered = dbContext.Users.Where(u => u.Name == player.Name).Any();
if (!dbContext.WhitelistEntries.Any(w => w.SocialClubName == player.SocialClubName))
switch (whitelistStatus)
{
string msg2 = "~m~*** " + player.Name + "[" + player.SocialClubName + "] (" + player.Address + ") hat versucht, sich einzuloggen, steht aber nicht auf der Whitelist.";
ChatService.BroadcastAdmin(msg2, AdminLevel.ADMIN);
case 0: //Whitelist aus
break;
NAPI.Util.ConsoleOutput(player.Name + " tried to join without whitelist entry");
case 1: //Whitelist aktiv (Main-Server)
if (dbContext.Users.FirstOrDefault(u => u.SocialClubName == player.SocialClubName).AdminLevel < AdminLevel.MAPPING)
{
NAPI.Util.ConsoleOutput(player.Name + " versucht sich einzuloggen während die Whitelist an ist. [STATUS 1]");
player.Kick();
return;
}
break;
ChatService.SendMessage(player, "~m~Du stehst nicht auf der Whitelist");
case 2: //Whitelist aktiv (Test-Server)
if (!dbContext.WhitelistEntries.Any(w => w.SocialClubName == player.SocialClubName))
{
string msg2 = "~m~*** " + player.Name + "[" + player.SocialClubName + "] (" + player.Address + ") hat versucht, sich einzuloggen, steht aber nicht auf der Whitelist.";
ChatService.BroadcastAdmin(msg2, AdminLevel.ADMIN);
player.Kick();
return;
NAPI.Util.ConsoleOutput(player.Name + " tried to join without whitelist entry [STATUS 2]");
ChatService.SendMessage(player, "~m~Du stehst nicht auf der Whitelist");
player.Kick();
return;
}
break;
}
}
@@ -64,7 +83,7 @@ namespace ReallifeGamemode.Server.Events
string msg = "~m~*** " + player.Name + " [" + player.SocialClubName + "] [ID: " + player.Handle.Value + "] (" + player.Address + ")";
if(player.HasData("togip"))
{
ChatService.SendMessage(player, msg);
ChatService.SendMessage(player, msg);
}
}

View File

@@ -546,13 +546,7 @@ namespace ReallifeGamemode.Server.Events
player.TriggerEvent("renderTextOnScreen", "Steige nun in eines der Fahrzeuge und starte den Motor mit der Taste 'N'.");
return;
}
}else
{
player.SendNotification("~r~[Fehler] ~w~ Du hast diesen Job nicht angenommen.");
return;
}
if (nearestJobPoint.jobId == 3 && player.GetUser().JobId == 3)
} else if (nearestJobPoint.jobId == 3 && player.GetUser().JobId == 3)
{
if (nearestJobPoint.Skill < 300 && player.GetUser().PilotSkill >= 0)
{
@@ -569,13 +563,13 @@ namespace ReallifeGamemode.Server.Events
player.TriggerEvent("renderTextOnScreen", "Steige nun in eines der Flugzeuge und starte den Motor mit der Taste 'N'.");
return;
}
}else
{
player.SendNotification("~r~[Fehler] ~w~ Du hast diesen Job nicht angenommen.");
return;
}
if (nearestJobPoint.Skill >= 300 && player.GetUser().PilotSkill >= 300)
}
else
{
player.SendChatMessage("~y~[JOB] ~r~Dein Skilllevel ist noch zu niedrig.");
return;
}
if (nearestJobPoint.Skill >= 300 && player.GetUser().PilotSkill >= 300)
{
if (job.GetUsersInJob().Contains(player))
{
@@ -590,13 +584,14 @@ namespace ReallifeGamemode.Server.Events
player.TriggerEvent("renderTextOnScreen", "Steige nun in eines der Flugzeuge und starte den Motor mit der Taste 'N'.");
return;
}
}
}
else
{
player.SendChatMessage("~y~[JOB] ~r~Dein Skilllevel ist noch zu niedrig.");
return;
}
}else
}
else
{
player.SendNotification("~r~[Fehler] ~w~ Du hast diesen Job nicht angenommen.");
return;

View File

@@ -268,6 +268,7 @@ namespace ReallifeGamemode.Server.Gangwar
}
ChatService.BroadcastFaction("~y~[GANGWAR] ~w~Deine Fraktion hat erfolgreich das Gebiet ~g~" + getName() + "~w~ verteidigt.", dbContext.Factions.Where(f => f.Name == getOwner()).FirstOrDefault());
ChatService.BroadcastFaction("~y~[GANGWAR] ~w~Deine Fraktion hat den Angrif auf das Gebiet ~r~" + getName() + "~w~ verloren.", dbContext.Factions.Where(f => f.Name == getAttacker()).FirstOrDefault());
dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Name == getOwner()).First().BankAccount.Balance += 15000;
}
else if (getOwner() != FactionName)
{
@@ -284,9 +285,10 @@ namespace ReallifeGamemode.Server.Gangwar
}
this.Owner = FactionName;
ChatService.BroadcastFaction("~y~[GANGWAR] ~w~Deine Fraktion konnte erfolgreich das Gebiet ~g~" + getName() + "~w~ erobern.", dbContext.Factions.Where(f => f.Name == getOwner()).FirstOrDefault());
dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Name == getOwner()).First().BankAccount.Balance += 10000;
Turfs turf = dbContext.Turfs.Where(t => t.Id == getId()).FirstOrDefault();
turf.Owner = this.Owner;
turf.FactionId = dbContext.Factions.Where(f => f.Name == this.Owner).FirstOrDefault().Id;
turf.FactionId = dbContext.Factions.Where(f => f.Name == this.Owner).FirstOrDefault().Id;
dbContext.SaveChanges();
}
}

View File

@@ -220,18 +220,18 @@ namespace ReallifeGamemode.Server.Job
{
return;
}
foreach (var data in muellmanData)
using (var dbContext = new DatabaseContext())
{
if (data.getDataFromClient(player) == null) continue;
Player target = data.getPartnerClient(player);
User user1 = player.GetUser();
User user2 = target.GetUser();
using (var dbContext = new DatabaseContext())
foreach (var data in muellmanData)
{
user1 = player.GetUser(dbContext);
user2 = target.GetUser(dbContext);
user1.trashcount += 1;
if (data.getDataFromClient(player) == null) continue;
Player target = data.getPartnerClient(player);
User user1 = player.GetUser(dbContext);
User user2 = target.GetUser(dbContext);
//user1 = player.GetUser(dbContext);
//user2 = target.GetUser(dbContext);
/*user1.trashcount += 1;
if (user1.trashcount == 20)
{
@@ -249,11 +249,12 @@ namespace ReallifeGamemode.Server.Job
target.SendChatMessage("~y~Dies ist dein 20ter Müllsack.");
}
}
dbContext.SaveChanges();
}
player.AddAttachment("binbag", true);
if (target != null)
if (player.GetUser().trashcount >= 20)
player.AddAttachment("binbag", true);
*/
if (player.GetUser(dbContext).trashcount >= 20)
{
ChatService.SendMessage((Player)player, "~y~Job: ~s~Der Müllwagen ist voll. Fahre nun zurück zur Recyclinganlage!");
if (target != null)
@@ -265,23 +266,20 @@ namespace ReallifeGamemode.Server.Job
}
else
{
using (var dbContext = new DatabaseContext())
//user1 = player.GetUser(dbContext);
//user2 = target.GetUser(dbContext);
user1.trashcount += 1;
player.SendNotification("Müllsack: " + user1.trashcount + " von 20.");
if (target != null)
{
user1 = player.GetUser(dbContext);
user2 = target.GetUser(dbContext);
user1.trashcount += 1;
player.SendNotification("Müllsack: " + user1.trashcount + " von 20.");
if (target != null)
{
target.SendNotification("Müllsack: " + user2.trashcount + " von 20.");
user2.trashcount += 1;
}
dbContext.SaveChanges();
target.SendNotification("Müllsack: " + user2.trashcount + " von 20.");
user2.trashcount += 1;
}
dbContext.SaveChanges();
}
player.AddAttachment("binbag", true);
if (target != null)
if (player.GetUser().trashcount >= 20)
player.AddAttachment("binbag", true);
if (player.GetUser(dbContext).trashcount >= 20)
{
ChatService.SendMessage((Player)player, "~y~Job: ~s~Der Müllwagen ist voll. Fahre nun zurück zur Recyclinganlage!");
if (target != null)
@@ -293,17 +291,22 @@ namespace ReallifeGamemode.Server.Job
}
else
{
//user1 = player.GetUser(dbContext);
//user2 = target.GetUser(dbContext);
if (target != null)
{
player.GetUser().Wage += 10;
target.GetUser().Wage += 10;
user1.Wage += 10;
user2.Wage += 10;
}
else
{
player.GetUser().Wage += 20;
user1.Wage += 20;
}
dbContext.SaveChanges();
}
}
return;
}
}
@@ -321,25 +324,24 @@ namespace ReallifeGamemode.Server.Job
if (target != null) ChatService.SendMessage((Player)target, $"~y~Job: ~s~Fahrzeug wurde entleert. Säcke: {target.GetUser().trashcount}");
ChatService.SendMessage((Player)player, $"~y~Job: ~s~Fahrzeug wurde entleert. Säcke: {player.GetUser().trashcount}");
//bonus pro sack
if (target != null)
{
player.GetUser().Wage += 100;
target.GetUser().Wage += 100;
}
else
{
player.GetUser().Wage += 200;
}
User user1 = player.GetUser();
User user2 = target.GetUser();
using (var dbContext = new DatabaseContext())
{
user1 = player.GetUser(dbContext);
user2 = target.GetUser(dbContext);
User user1 = player.GetUser(dbContext);
User user2 = target.GetUser(dbContext);
user1.trashcount -= user1.trashcount;
if (target != null)
user2.trashcount -= user2.trashcount;
{
user1.Wage += 100;
user2.Wage += 100;
}
else
{
user1.Wage += 200;
}
user1.trashcount -= user1.trashcount;
if (target != null) user2.trashcount -= user2.trashcount;
dbContext.SaveChanges();
}
Console.WriteLine($"[DATA DEBUG] vehicle: {data.vehicle.DisplayName} | Players: {data.getClientsFromData().Count} | Säcke: {data.getTrashCount()}");

View File

@@ -153,6 +153,8 @@ namespace ReallifeGamemode.Server
ThreadTimers.StartAllTimers();
Managers.SVarManager.LoadSVars();
UserBankAccount.BalanceChanged += (account) =>
{
using (var dbContext = new DatabaseContext())
@@ -162,11 +164,14 @@ namespace ReallifeGamemode.Server
PlayerService.GetPlayerByNameOrId(user).TriggerEvent("updateMoney", account.Balance);
}
};
User.HandMoneyChanged += (user) =>
{
user.Player.TriggerEvent("SERVER:SET_HANDMONEY", user.Handmoney);
};
//IPLS
NAPI.World.RequestIpl("vw_casino_garage");
}
[RemoteEvent("CLIENT:Event")]

View File

@@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using GTANetworkAPI;
using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Database.Models;
using ReallifeGamemode.Server.Services;
namespace ReallifeGamemode.Server.Managers
{
public class SVarManager : Script
{
public static List<ServerVariable> SVars = new List<ServerVariable>();
public static void LoadSVars()
{
using (var dbContext = new DatabaseContext())
{
SVars = dbContext.ServerVariables.Select(row => row).ToList();
foreach(var svar in SVars)
{
System.Console.WriteLine("[SVAR][" + svar.Id + "] " + svar.Variable + " = " + svar.Value);
}
System.Console.WriteLine("Geladene Server Variablen [" + SVars.Count() + "]");
}
}
public static void ChangeSVarValue(Player player, int varId, int varValue)
{
using (var dbContext = new DatabaseContext())
{
var changeValue = dbContext.ServerVariables.FirstOrDefault(v => v.Id == varId);
var oldValue = changeValue.Value;
SVars.FirstOrDefault(v => v.Id == varId).Value = varValue;
changeValue.Value = varValue;
dbContext.SaveChanges();
ChatService.SendMessage(player, "~r~Wert von Server Variable ~o~" + changeValue.Variable + "~r~ in ~g~ " + varValue + "~r~geändert. Alter Wert: ~y~" + oldValue);
}
}
}
}