@@ -2,9 +2,11 @@
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Managers ATMManager (ATMManager.cs)
|
||||
@@ -18,6 +20,8 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
public static List<ColShape> ATMColShapes = new List<ColShape>();
|
||||
|
||||
private static readonly ILogger logger = LogManager.GetLogger<ATMManager>();
|
||||
|
||||
public static void InitATMs()
|
||||
{
|
||||
var addedATMs = 0;
|
||||
@@ -112,15 +116,16 @@ namespace ReallifeGamemode.Server.Managers
|
||||
//client.TriggerEvent("SERVER:WORLD_INTERACTION:ATM_ERROR", 0, checkATM.Balance);
|
||||
client.SendNotification("~r~Nicht genügend Geld auf der Hand!");
|
||||
}
|
||||
else if(inputField1 < 0)
|
||||
else if (inputField1 < 0)
|
||||
{
|
||||
client.SendNotification("~r~Ungültiger Betrag!");
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
var updateBankMoneyIn = user.BankAccount;
|
||||
var updateATMBalanceIn = dbContext.ATMs.FirstOrDefault(a => a.Id == nearATM);
|
||||
user.Handmoney -= inputField1;
|
||||
logger.LogInformation("Player {0} did a deposit of {1} dollars at atm {2}", client.Name, inputField1, nearATM);
|
||||
updateBankMoneyIn.Balance += inputField1;
|
||||
updateATMBalanceIn.Balance += inputField1;
|
||||
//client.TriggerEvent("SERVER:SET_HANDMONEY", user.Handmoney);
|
||||
@@ -149,6 +154,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
var updateATMBalanceOut = dbContext.ATMs.FirstOrDefault(a => a.Id == nearATM);
|
||||
updateHandMoneyOut.Handmoney += inputField1;
|
||||
user.BankAccount.Balance -= inputField1;
|
||||
logger.LogInformation("Player {0} did a withdraw of {1} dollars at atm {2}", client.Name, inputField1, nearATM);
|
||||
updateATMBalanceOut.Balance -= inputField1;
|
||||
//client.TriggerEvent("SERVER:SET_HANDMONEY", updateHandMoneyOut.Handmoney);
|
||||
}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Events;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
|
||||
namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
@@ -14,6 +16,8 @@ namespace ReallifeGamemode.Server.Managers
|
||||
public static Vector3 surgeryPoint = new Vector3(342.30032, -1397.7542, 32.50923);
|
||||
public const int SURGERY_PRICE = 15000;
|
||||
|
||||
private static readonly ILogger logger = LogManager.GetLogger<CharacterCreator>();
|
||||
|
||||
public CharacterCreator()
|
||||
{
|
||||
//LoadSurgery();
|
||||
@@ -273,6 +277,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.LogInformation("Player {0} bought a surgery for {1} dollars", player.Name, SURGERY_PRICE);
|
||||
user.BankAccount.Balance -= SURGERY_PRICE;
|
||||
}
|
||||
saveCharacter.Remove(oldChar);
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
|
||||
@@ -11,8 +13,11 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
internal class CityHallManager : Script
|
||||
{
|
||||
private const int GROUP_PRICE = 50000;
|
||||
private static readonly Vector3 _cityHallPosition = new Vector3(273.22, -278.14, 53.9);
|
||||
|
||||
private static readonly ILogger logger = LogManager.GetLogger<CityHallManager>();
|
||||
|
||||
public static void LoadCityHall()
|
||||
{
|
||||
NAPI.Marker.CreateMarker(GTANetworkAPI.MarkerType.VerticalCylinder, _cityHallPosition.Subtract(new Vector3(0, 0, 1.7)), new Vector3(), new Vector3(), 1.0f, new Color(255, 255, 255));
|
||||
@@ -57,13 +62,14 @@ namespace ReallifeGamemode.Server.Managers
|
||||
u.Group = group;
|
||||
u.GroupRank = GroupRank.OWNER;
|
||||
|
||||
if (player.GetUser(dbContext).BankAccount.Balance < 50000)
|
||||
if (u.BankAccount.Balance < GROUP_PRICE)
|
||||
{
|
||||
ChatService.ErrorMessage(player, "Du hast nicht genug Geld");
|
||||
return;
|
||||
}
|
||||
|
||||
player.GetUser(dbContext).BankAccount.Balance -= 50000;
|
||||
logger.LogInformation("Player {0} created a group for {1} dollars", player.Name, GROUP_PRICE);
|
||||
u.BankAccount.Balance -= GROUP_PRICE;
|
||||
dbContext.SaveChanges();
|
||||
|
||||
ChatService.BroadcastGroup($"Die Gruppe \"{name}\" wurde erfolgreich erstellt.", group);
|
||||
|
||||
@@ -16,6 +16,8 @@ using ReallifeGamemode.Server.Events;
|
||||
using System;
|
||||
using ReallifeGamemode.Server.Core.API;
|
||||
using ReallifeGamemode.Server.Factions.Medic;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Managers Interaction (InteractionManager.cs)
|
||||
@@ -27,6 +29,8 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
public class InteractionManager : Script
|
||||
{
|
||||
private static readonly ILogger logger = LogManager.GetLogger<InteractionManager>();
|
||||
|
||||
#region Eigeninteraktionen Taste-M
|
||||
|
||||
[RemoteEvent("CLIENT:InteractionMenu_AcceptInvite")]
|
||||
@@ -484,8 +488,8 @@ namespace ReallifeGamemode.Server.Managers
|
||||
using var dbContext = new DatabaseContext();
|
||||
var user = player.GetUser(dbContext);
|
||||
ServerVehicle serverVehicle = dbContext.ServerVehicles.FirstOrDefault(v => v.Id == id);
|
||||
|
||||
if(serverVehicle is UserVehicle)
|
||||
|
||||
if (serverVehicle is UserVehicle)
|
||||
{
|
||||
UserVehicle userVehicle = dbContext.UserVehicles.Where(v => v.Id == id && v.UserId == user.Id).FirstOrDefault();
|
||||
var vehPrice = userVehicle.Price;
|
||||
@@ -493,25 +497,29 @@ namespace ReallifeGamemode.Server.Managers
|
||||
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.");
|
||||
logger.LogInformation("Player {0} sold his uservehicle {1} for {2} dollars", player.Name, userVehicle.Model.ToString(), backPrice);
|
||||
|
||||
ChatService.SendMessage(player, $"~b~[INFO]~s~ Du hast durch den Autoverkauf ~g~{backPrice.ToMoneyString()}~s~ erhalten.");
|
||||
|
||||
VehicleManager.DeleteVehicle(veh);
|
||||
dbContext.UserVehicles.Remove(userVehicle);
|
||||
player.SendNotification("~g~Du hast dein Fahrzeug verkauft");
|
||||
}
|
||||
else if(serverVehicle is FactionVehicle)
|
||||
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;
|
||||
|
||||
logger.LogInformation("Player {0} sold thr factionvehicle {1} of faction {2} for {3} dollars", player.Name, factionVehicle.Model.ToString(), user.Faction.Id, backPrice);
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
@@ -564,13 +572,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);
|
||||
|
||||
player.SetData<bool>("SellVehicleDecision", true);
|
||||
player.SetData<int>("VehicleToSell", id);
|
||||
ChatService.SendMessage(player, "~s~Möchtest du das Fahrzeug ~y~" + veh.DisplayName + " ~s~wirklich für ~g~" + backPrice.ToMoneyString() + " ~s~verkaufen? Drücke ~g~J~s~ zum Bestätigen oder ~r~N ~s~zum Abbrechen.");
|
||||
ChatService.SendMessage(player, "~s~Möchtest du das Fahrzeug ~y~" + veh.DisplayName + " ~s~wirklich für ~g~" + backPrice.ToMoneyString() + " ~s~verkaufen? Drücke ~g~J~s~ zum Bestätigen oder ~r~N ~s~zum Abbrechen.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -733,6 +741,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
fibBankAccount.Balance += (int)(ticket_amount / 100 * 60);
|
||||
lspdBankAccount.Balance += (int)(ticket_amount / 100 * 40);
|
||||
}
|
||||
logger.LogInformation("Player {0} accepted a ticket of {1} dollars", player.Name, ticket_amount);
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
target.ResetData("ticket_boolean");
|
||||
@@ -798,6 +807,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
if (amount > 0 && amount <= 5000)
|
||||
{
|
||||
logger.LogInformation("Player {0} did a local payment of {1} dollars to player {2}", player.Name, amount, target.Name);
|
||||
player.SendNotification($"~w~Du hast ~y~{targetname} ~w~{amount.ToMoneyString()} gegeben.");
|
||||
target.SendNotification($"~w~ Du hast von ~y~{playername} ~w~{amount.ToMoneyString()} erhalten.", true);
|
||||
|
||||
|
||||
@@ -14,6 +14,8 @@ using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Services;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Managers InventoryManager (InventoryManager.cs)
|
||||
@@ -25,6 +27,9 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
public class InventoryManager : Script
|
||||
{
|
||||
private const int MAX_USER_INVENTORY = 40000;
|
||||
private static readonly ILogger logger = LogManager.GetLogger<InventoryManager>();
|
||||
|
||||
public static List<IItem> itemList;
|
||||
|
||||
private static Dictionary<int, (int[], int[])> TradeItems { get; set; } = new Dictionary<int, (int[], int[])>();
|
||||
@@ -224,7 +229,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
List<UserItem> userItems = context.UserItems.ToList().FindAll(i => i.UserId == user.Id);
|
||||
List<UserItem> userItems = context.UserItems.Where(i => i.UserId == user.Id).ToList();
|
||||
foreach (var item in userItems)
|
||||
{
|
||||
IItem iItem = GetItemById(item.ItemId);
|
||||
@@ -381,7 +386,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
int setAmount = 0;
|
||||
for (int i = 1; i <= amount; i++)
|
||||
{
|
||||
if (GetUserInventoryWeight(player) + (i * GetItemById(itemId).Gewicht) > 40000)
|
||||
if (GetUserInventoryWeight(player) + (i * GetItemById(itemId).Gewicht) > MAX_USER_INVENTORY)
|
||||
{
|
||||
break;
|
||||
}
|
||||
@@ -589,7 +594,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
break;
|
||||
}
|
||||
context.SaveChanges();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -608,6 +613,14 @@ namespace ReallifeGamemode.Server.Managers
|
||||
return;
|
||||
}
|
||||
|
||||
logger.LogInformation("Player {0} bought the item {1} for {2} dollars", client.Name, shopItem.Name, shopItem.Price);
|
||||
|
||||
if (GetUserInventoryWeight(client) + shopItem.Gewicht > MAX_USER_INVENTORY)
|
||||
{
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
UserItem item = dbContext.UserItems.Where(i => i.ItemId == shopItem.Id && i.UserId == user.Id).FirstOrDefault();
|
||||
if (item == null)
|
||||
{
|
||||
|
||||
@@ -2,14 +2,17 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
|
||||
namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
internal class TuningManager : Script
|
||||
{
|
||||
private static readonly ILogger logger = LogManager.GetLogger<TuningManager>();
|
||||
private static List<ColShape> tuningGarages = new List<ColShape>();
|
||||
|
||||
public static void LoadTuningGarages()
|
||||
@@ -220,6 +223,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
ServerVehicle sV = player.Vehicle.GetServerVehicle(dbContext);
|
||||
if (sV == null) return;
|
||||
logger.LogInformation("Player {0} bought a tuning part for server vehicle {1}, slot: {2}, mod: {3} for {4} dollars", player.Name, sV.Id, slot, index, price);
|
||||
|
||||
VehicleMod vMod = dbContext.VehicleMods.FirstOrDefault(m => m.ServerVehicleId == sV.Id && m.Slot == slot);
|
||||
if (vMod == null && index != -1)
|
||||
@@ -265,7 +269,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
veh.SecondaryColor = color;
|
||||
}
|
||||
|
||||
using var dbContext = new DatabaseContext(true);
|
||||
using var dbContext = new DatabaseContext();
|
||||
ServerVehicle serverVeh = VehicleManager.GetServerVehicleFromVehicle(veh, dbContext);
|
||||
|
||||
if (serverVeh == null)
|
||||
@@ -311,6 +315,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
if (serverVehicle != null)
|
||||
{
|
||||
logger.LogInformation("Player {0} bought wheels for server vehicle {1}, type: {2}, wheels: {3} for {4} dollars", player.Name, serverVehicle.Id, wheelType, wheelIndex, price);
|
||||
VehicleMod typeMod = dbContext.VehicleMods.Where(m => m.ServerVehicleId == serverVehicle.Id && m.Slot == -2).FirstOrDefault();
|
||||
if (typeMod == null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user