Compare commits
10 Commits
2d9bc023d2
...
a2271fafb8
| Author | SHA1 | Date | |
|---|---|---|---|
| a2271fafb8 | |||
|
|
bcb170fa9b | ||
|
|
a121658a65 | ||
|
|
cb649927a2 | ||
|
|
7316df0786 | ||
|
|
84c3a84ed0 | ||
|
|
f70218e85a | ||
|
|
0fe0c69e0c | ||
|
|
73046bd5f4 | ||
|
|
30628cf74e |
@@ -27,7 +27,6 @@ export default function carDealer(globalData: IGlobalData) {
|
|||||||
|
|
||||||
mp.events.addDataHandler("shopVehicleTextLabel", (entity: EntityMp, labelId: number) => {
|
mp.events.addDataHandler("shopVehicleTextLabel", (entity: EntityMp, labelId: number) => {
|
||||||
var label = mp.labels.atRemoteId(labelId);
|
var label = mp.labels.atRemoteId(labelId);
|
||||||
var veh = entity as VehicleMp;
|
|
||||||
setShopVehicleTextLabel(entity as VehicleMp, label);
|
setShopVehicleTextLabel(entity as VehicleMp, label);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -42,6 +41,15 @@ export default function carDealer(globalData: IGlobalData) {
|
|||||||
entity.freezePosition(true);
|
entity.freezePosition(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mp.events.add('ShopVehicle_UpdatePrice', (entity: EntityMp, price: number) => {
|
||||||
|
var labelId = entity.getVariable("shopVehicleTextLabel");
|
||||||
|
if (labelId === undefined) return;
|
||||||
|
|
||||||
|
var label: TextLabelMp = mp.labels.atRemoteId(labelId);
|
||||||
|
var vehicle: VehicleMp = entity as VehicleMp;
|
||||||
|
var vehicleDisplayName: string = mp.game.ui.getLabelText(mp.game.vehicle.getDisplayNameFromVehicleModel(vehicle.model));
|
||||||
|
label.text = vehicleDisplayName + "\n~g~$" + moneyFormat(price);
|
||||||
|
});
|
||||||
|
|
||||||
mp.events.add('ShopVehicle_OpenMenu', (businessName, price, availableOptions: string[]) => {
|
mp.events.add('ShopVehicle_OpenMenu', (businessName, price, availableOptions: string[]) => {
|
||||||
var veh = mp.players.local.vehicle;
|
var veh = mp.players.local.vehicle;
|
||||||
|
|||||||
@@ -10,12 +10,12 @@ function setDrivers(driversJson) {
|
|||||||
var listTag = $("#drivers-list");
|
var listTag = $("#drivers-list");
|
||||||
drivers.forEach(driver => {
|
drivers.forEach(driver => {
|
||||||
var name = driver.Name;
|
var name = driver.Name;
|
||||||
var dateTime = new Date(driver.Time);
|
var dateTime = new Date(driver.DateTime);
|
||||||
|
|
||||||
var date = `${dateTime.getDay()}.${dateTime.getMonth()}.${dateTime.getFullYear()}`;
|
var date = dateTime.toLocaleDateString('de-DE', { day: '2-digit', month: '2-digit' });
|
||||||
var time = `${dateTime.getHours()}:${dateTime.getMinutes()}:${dateTime.getSeconds()}`;
|
var time = dateTime.toLocaleTimeString('de-DE', { hour: '2-digit', minute: '2-digit' });
|
||||||
|
|
||||||
var infoLine = `${name} am ${date} um ${time} Uhr`;
|
var infoLine = `${name} (${date} um ${time} Uhr)`;
|
||||||
var listItemTag = `<li>${infoLine}</li>`;
|
var listItemTag = `<li>${infoLine}</li>`;
|
||||||
listTag.append(listItemTag);
|
listTag.append(listItemTag);
|
||||||
});
|
});
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -33,7 +33,7 @@ namespace ReallifeGamemode.Server.Admin
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cheater.Dimension != 0)
|
if (cheater.Dimension != 0 && cheat == "Unallowed Weapon")
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ using ReallifeGamemode.Database.Models;
|
|||||||
using ReallifeGamemode.Server.Extensions;
|
using ReallifeGamemode.Server.Extensions;
|
||||||
using ReallifeGamemode.Server.Finance;
|
using ReallifeGamemode.Server.Finance;
|
||||||
using ReallifeGamemode.Server.Log;
|
using ReallifeGamemode.Server.Log;
|
||||||
|
using ReallifeGamemode.Server.Services;
|
||||||
using ReallifeGamemode.Services;
|
using ReallifeGamemode.Services;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
@@ -90,7 +91,7 @@ namespace ReallifeGamemode.Server.Bank
|
|||||||
|
|
||||||
if (amount <= 0 || amount > player.GetUser(dbContext).Handmoney)
|
if (amount <= 0 || amount > player.GetUser(dbContext).Handmoney)
|
||||||
{
|
{
|
||||||
player.SendNotification($"~r~Dieser Betrag ist ungültig.");
|
NotificationService.SendErrorNotification(player, "Dieser Betrag ist ungültig");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -114,7 +115,7 @@ namespace ReallifeGamemode.Server.Bank
|
|||||||
|
|
||||||
if (amount <= 0 || amount > player.GetUser(dbContext).BankAccount.Balance)
|
if (amount <= 0 || amount > player.GetUser(dbContext).BankAccount.Balance)
|
||||||
{
|
{
|
||||||
player.SendNotification($"~r~Dieser Betrag ist ungültig.");
|
NotificationService.SendErrorNotification(player, "Dieser Betrag ist ungültig");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -137,7 +138,7 @@ namespace ReallifeGamemode.Server.Bank
|
|||||||
|
|
||||||
if (!target.IsLoggedIn())
|
if (!target.IsLoggedIn())
|
||||||
{
|
{
|
||||||
player.SendNotification($"~r~Dieser Spieler ist nicht Online.");
|
NotificationService.SendErrorNotification(player, "Dieser Spieler ist nicht online");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -146,7 +147,7 @@ namespace ReallifeGamemode.Server.Bank
|
|||||||
User user = player.GetUser(dbContext);
|
User user = player.GetUser(dbContext);
|
||||||
if (user.PlayedMinutes < 180)
|
if (user.PlayedMinutes < 180)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du kannst Geld erst ab 3 Spielstunden vergeben");
|
NotificationService.SendErrorNotification(player, "Du kannst Geld erst ab drei Spielstunden vergeben");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -154,12 +155,12 @@ namespace ReallifeGamemode.Server.Bank
|
|||||||
|
|
||||||
if (user == targetUser)
|
if (user == targetUser)
|
||||||
{
|
{
|
||||||
player.SendNotification($"~r~Du kannst dir selber kein Geld überweisen.");
|
NotificationService.SendErrorNotification(player, "Du kannst dir selber kein Geld überweisen");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (amount <= 0 || (int)(amount * 1.05) > user.BankAccount.Balance)
|
else if (amount <= 0 || (int)(amount * 1.05) > user.BankAccount.Balance)
|
||||||
{
|
{
|
||||||
player.SendNotification($"~r~Dieser Betrag kann nicht überwiesen werden.");
|
NotificationService.SendErrorNotification(player, "Dieser Betrag kann nicht überwiesen werden");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -189,7 +190,7 @@ namespace ReallifeGamemode.Server.Bank
|
|||||||
|
|
||||||
if (amount <= 0 || amount > user.BankAccount.Balance)
|
if (amount <= 0 || amount > user.BankAccount.Balance)
|
||||||
{
|
{
|
||||||
player.SendNotification($"~r~Dieser Betrag ist ungültig.");
|
NotificationService.SendErrorNotification(player, "Dieser Betrag ist ungültig");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -212,7 +213,7 @@ namespace ReallifeGamemode.Server.Bank
|
|||||||
|
|
||||||
if (!target.IsLoggedIn())
|
if (!target.IsLoggedIn())
|
||||||
{
|
{
|
||||||
player.SendNotification($"~r~Dieser Spieler ist nicht Online.");
|
NotificationService.SendErrorNotification(player, "Dieser Spieler ist nicht online");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -222,7 +223,7 @@ namespace ReallifeGamemode.Server.Bank
|
|||||||
User targetUser = target.GetUser(dbContext);
|
User targetUser = target.GetUser(dbContext);
|
||||||
if (amount <= 0 || (int)(amount * 1.05) > user.Faction.BankAccount.Balance)
|
if (amount <= 0 || (int)(amount * 1.05) > user.Faction.BankAccount.Balance)
|
||||||
{
|
{
|
||||||
player.SendNotification($"~r~Dieser Betrag kann nicht überwiesen werden.");
|
NotificationService.SendErrorNotification(player, "Dieser Betrag kann nicht überwiesen werden");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net.Http;
|
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using GTANetworkAPI;
|
using GTANetworkAPI;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
@@ -3943,20 +3942,25 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
{
|
{
|
||||||
oldPrice = shopVehicle.Price;
|
oldPrice = shopVehicle.Price;
|
||||||
shopVehicle.Price = price;
|
shopVehicle.Price = price;
|
||||||
|
|
||||||
|
Vehicle vehicleFromServerVehicle = VehicleManager.GetVehicleFromServerVehicle(shopVehicle);
|
||||||
|
NAPI.Player.GetPlayersInRadiusOfPosition(500, shopVehicle.Position)
|
||||||
|
.ForEach(playerInRange => {
|
||||||
|
playerInRange.TriggerEvent("ShopVehicle_UpdatePrice", vehicleFromServerVehicle, price);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ChatService.ErrorMessage(player, "Dieses Fahrzeug ist weder ein User- noch ein Fraktionsfahrzeug");
|
ChatService.ErrorMessage(player, $"Der Preis dieses Fahrzeugs kann nicht angepasst werden (Typ: {serverVehicle.GetType()})");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.LogInformation("{0} set the buyprice of vehicle {1} to {2}", user.Name, serverVehicle.Id, price);
|
|
||||||
|
|
||||||
dbContext.SaveChanges();
|
dbContext.SaveChanges();
|
||||||
|
|
||||||
string oldPriceStr = oldPrice == null ? "nicht gesetzt" : oldPrice.ToMoneyString();
|
logger.LogInformation("{0} set the buyprice of vehicle {1} to {2}", user.Name, serverVehicle.Id, price);
|
||||||
|
|
||||||
ChatService.SendMessage(player, $"~b~[ADMIN]~s~ Der Kaufpreis des Fahrzeugs ~y~{serverVehicle.Id}~s~ wurde auf ~g~{price.ToMoneyString()} gesetzt. Alter Preis: {oldPriceStr}");
|
string oldPriceStr = oldPrice == null ? "nicht gesetzt" : oldPrice.ToMoneyString();
|
||||||
|
ChatService.SendMessage(player, $"~b~[ADMIN]~s~ Der Kaufpreis des Fahrzeugs ~b~#{serverVehicle.Id} ~s~wurde auf ~b~{price.ToMoneyString()} ~s~gesetzt (Bisher: {oldPriceStr}).");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("setclothes", "~m~Benutzung: ~s~/setclothes [Spieler] [Component ID] [Drawable] (Textur)")]
|
[Command("setclothes", "~m~Benutzung: ~s~/setclothes [Spieler] [Component ID] [Drawable] (Textur)")]
|
||||||
|
|||||||
@@ -209,15 +209,15 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Mit diesem Fahrzeug ist noch niemand gefahren");
|
NotificationService.SendErrorNotification(player, "Mit diesem Fahrzeug ist Niemand gefahren");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var list = lastDriverDic.Select(v => new
|
var list = lastDriverDic.Select(v => new
|
||||||
{
|
{
|
||||||
Name = v.Key,
|
Name = v.Key,
|
||||||
Time = v.Value
|
DateTime = v.Value
|
||||||
}).OrderByDescending(v => v.Time).ToList();
|
}).OrderByDescending(v => v.DateTime).ToList();
|
||||||
|
|
||||||
player.TriggerEvent("lookLastDrivers", JsonConvert.SerializeObject(list));
|
player.TriggerEvent("lookLastDrivers", JsonConvert.SerializeObject(list));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ using ReallifeGamemode.Server.Util;
|
|||||||
using ReallifeGamemode.Server.WeaponDeal;
|
using ReallifeGamemode.Server.WeaponDeal;
|
||||||
using ReallifeGamemode.Server.Managers;
|
using ReallifeGamemode.Server.Managers;
|
||||||
using ReallifeGamemode.Server.Job;
|
using ReallifeGamemode.Server.Job;
|
||||||
|
using ReallifeGamemode.Server.Services;
|
||||||
|
|
||||||
namespace ReallifeGamemode.Server.Events
|
namespace ReallifeGamemode.Server.Events
|
||||||
{
|
{
|
||||||
@@ -37,7 +38,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
player.StopAnimation();
|
player.StopAnimation();
|
||||||
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht benutzen!", true);
|
NotificationService.SendErrorNotification(player, "Du darfst dieses Fahrzeug nicht benutzen!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -46,7 +47,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
if (jveh.JobId != player.GetUser().JobId && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty()))
|
if (jveh.JobId != player.GetUser().JobId && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty()))
|
||||||
{
|
{
|
||||||
player.StopAnimation();
|
player.StopAnimation();
|
||||||
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht benutzen!", true);
|
NotificationService.SendErrorNotification(player, "Du darfst dieses Fahrzeug nicht benutzen!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty())
|
else if (u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty())
|
||||||
@@ -89,13 +90,13 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
if (!player.HasData("ActiveSchool") && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty()))
|
if (!player.HasData("ActiveSchool") && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty()))
|
||||||
{
|
{
|
||||||
player.StopAnimation();
|
player.StopAnimation();
|
||||||
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht benutzen!", true);
|
NotificationService.SendErrorNotification(player, "Du darfst dieses Fahrzeug nicht benutzen!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (sVeh.SchoolId != player.GetData<int>("ActiveSchool"))
|
if (sVeh.SchoolId != player.GetData<int>("ActiveSchool"))
|
||||||
{
|
{
|
||||||
player.StopAnimation();
|
player.StopAnimation();
|
||||||
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht benutzen!", true);
|
NotificationService.SendErrorNotification(player, "Du darfst dieses Fahrzeug nicht benutzen!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -106,7 +107,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
if (player.GetUser().PlayedMinutes > 1800)
|
if (player.GetUser().PlayedMinutes > 1800)
|
||||||
{
|
{
|
||||||
player.StopAnimation();
|
player.StopAnimation();
|
||||||
player.SendNotification("~r~Du hast schon über 30 Spielstunden!", true);
|
NotificationService.SendErrorNotification(player, "Du hast schon über 30 Spielstunden!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -121,13 +122,13 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
if (player.GetUser().PlayedMinutes > 1800)
|
if (player.GetUser().PlayedMinutes > 1800)
|
||||||
{
|
{
|
||||||
player.StopAnimation();
|
player.StopAnimation();
|
||||||
player.SendNotification("~r~Du hast schon über 30 Spielstunden!", true);
|
NotificationService.SendErrorNotification(player, "Du hast schon über 30 Spielstunden!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (player.GetData<bool>("HatNoobSpawnVehicle") == true)
|
if (player.GetData<bool>("HatNoobSpawnVehicle") == true)
|
||||||
{
|
{
|
||||||
player.StopAnimation();
|
player.StopAnimation();
|
||||||
player.SendNotification("~r~Du hast bereits einen Roller!", true);
|
NotificationService.SendErrorNotification(player, "Du hast bereits einen Roller!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -223,7 +224,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
if (player.GetUser().PlayedMinutes > 1800)
|
if (player.GetUser().PlayedMinutes > 1800)
|
||||||
{
|
{
|
||||||
player.StopAnimation();
|
player.StopAnimation();
|
||||||
player.SendNotification("~r~Du hast schon über 30 Spielstunden!", true);
|
NotificationService.SendErrorNotification(player, "Du hast schon über 30 Spielstunden!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -641,12 +641,12 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
{
|
{
|
||||||
if (user.GetData<bool>("duty"))
|
if (user.GetData<bool>("duty"))
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Im Dienst kannst du keine Kleidung kaufen", false);
|
NotificationService.SendErrorNotification(player, "Im Dienst kannst du keine Kleidung kaufen", false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (JobBase.GetPlayerInJob().Contains(player))
|
if (JobBase.GetPlayerInJob().Contains(player))
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Im aktiven Job kannst du keine Kleidung kaufen", false);
|
NotificationService.SendErrorNotification(player, "Im aktiven Job kannst du keine Kleidung kaufen", false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
nearestClotheShopPoint.clotheShop.LoadShopNUI(player);
|
nearestClotheShopPoint.clotheShop.LoadShopNUI(player);
|
||||||
@@ -659,12 +659,12 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
{
|
{
|
||||||
if (user.GetData<bool>("duty"))
|
if (user.GetData<bool>("duty"))
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Im Dienst wirst du nicht vom Friseur bedient", false);
|
NotificationService.SendErrorNotification(player, "Im Dienst wirst du nicht vom Friseur bedient", false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (JobBase.GetPlayerInJob().Contains(player))
|
if (JobBase.GetPlayerInJob().Contains(player))
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Im aktiven Job wirst du nicht vom Friseur bedient", false);
|
NotificationService.SendErrorNotification(player, "Im aktiven Job wirst du nicht vom Friseur bedient", false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
nearestFriseurPoint.friseurShop.LoadShopNUI(player);
|
nearestFriseurPoint.friseurShop.LoadShopNUI(player);
|
||||||
@@ -673,7 +673,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
{
|
{
|
||||||
if (!user.WeaponLicense)
|
if (!user.WeaponLicense)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du besitzt keinen Waffenschein");
|
NotificationService.SendErrorNotification(player, "Du besitzt keinen Waffenschein");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -685,17 +685,17 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
//{
|
//{
|
||||||
// if (user.GetData<bool>("duty"))
|
// if (user.GetData<bool>("duty"))
|
||||||
// {
|
// {
|
||||||
// player.SendNotification("~r~Im Dienst kannst du nicht operiert werden", false);
|
// NotificationService.SendErrorNotification(player, "Im Dienst kannst du nicht operiert werden", false);
|
||||||
// return;
|
// return;
|
||||||
// }
|
// }
|
||||||
// if (JobBase.GetPlayerInJob().Contains(player))
|
// if (JobBase.GetPlayerInJob().Contains(player))
|
||||||
// {
|
// {
|
||||||
// player.SendNotification("~r~Im aktiven Job kannst du nicht operiert werden", false);
|
// NotificationService.SendErrorNotification(player, "Im aktiven Job kannst du nicht operiert werden", false);
|
||||||
// return;
|
// return;
|
||||||
// }
|
// }
|
||||||
// if (user.Wanteds > 0)
|
// if (user.Wanteds > 0)
|
||||||
// {
|
// {
|
||||||
// player.SendNotification("~r~Wenn du gesucht wirst kannst du nicht operiert werden", false);
|
// NotificationService.SendErrorNotification(player, "Wenn du gesucht wirst kannst du nicht operiert werden", false);
|
||||||
// return;
|
// return;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
@@ -751,12 +751,12 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
{
|
{
|
||||||
if (user.GetData<bool>("duty"))
|
if (user.GetData<bool>("duty"))
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Im Dienst kannst du keinen Job ausführen", false);
|
NotificationService.SendErrorNotification(player, "Im Dienst kannst du keinen Job ausführen", false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (user.Wanteds > 0)
|
if (user.Wanteds > 0)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Mit Wanteds kannst du keinen Job starten", false);
|
NotificationService.SendErrorNotification(player, "Mit Wanteds kannst du keinen Job starten", false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (player.GetUser().JobId == 3)
|
if (player.GetUser().JobId == 3)
|
||||||
@@ -779,7 +779,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~[Fehler] ~w~ Du hast diesen Job nicht angenommen.");
|
NotificationService.SendErrorNotification(player, "Du hast diesen Job nicht angenommen");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1030,7 +1030,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
{
|
{
|
||||||
player.ResetData("SellVehicleDecision");
|
player.ResetData("SellVehicleDecision");
|
||||||
player.ResetData("VehicleToSell");
|
player.ResetData("VehicleToSell");
|
||||||
player.SendNotification("~r~Du hast den Fahrzeugverkauf abgebrochen");
|
NotificationService.SendErrorNotification(player, "Du hast den Fahrzeugverkauf abgebrochen");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1044,7 +1044,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
|
|
||||||
if (NAPI.Entity.GetEntityVelocity(v).Length() > 1 && v.Class != 16)
|
if (NAPI.Entity.GetEntityVelocity(v).Length() > 1 && v.Class != 16)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Der Motor kann nur im Stand betätigt werden.", true);
|
NotificationService.SendErrorNotification(player, "Der Motor kann nur im Stand betätigt werden");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1071,7 +1071,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
}
|
}
|
||||||
else if (!fV.GetOwners().Contains(u.FactionId ?? 0) && !state && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty()))
|
else if (!fV.GetOwners().Contains(u.FactionId ?? 0) && !state && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty()))
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du hast keinen Schlüssel.");
|
NotificationService.SendErrorNotification(player, "Du hast keinen Schlüssel");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1079,7 +1079,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
{
|
{
|
||||||
if (gV.GroupId != u.Group.Id && !state && !u.IsAdmin(AdminLevel.ADMIN3) && player.IsAdminDuty())
|
if (gV.GroupId != u.Group.Id && !state && !u.IsAdmin(AdminLevel.ADMIN3) && player.IsAdminDuty())
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du hast keinen Schlüssel.");
|
NotificationService.SendErrorNotification(player, "Du hast keinen Schlüssel");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1087,7 +1087,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
{
|
{
|
||||||
if (jV.JobId != player.GetUser().JobId && !state && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty()))
|
if (jV.JobId != player.GetUser().JobId && !state && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty()))
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du hast keinen Schlüssel.");
|
NotificationService.SendErrorNotification(player, "Du hast keinen Schlüssel");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1106,7 +1106,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
}
|
}
|
||||||
else if (uV.UserId != u.Id && !u.IsAdmin(AdminLevel.HEADADMIN))
|
else if (uV.UserId != u.Id && !u.IsAdmin(AdminLevel.HEADADMIN))
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du hast keinen Schlüssel.");
|
NotificationService.SendErrorNotification(player, "Du hast keinen Schlüssel");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ using ReallifeGamemode.Server.Util;
|
|||||||
using ReallifeGamemode.Server.WeaponDeal;
|
using ReallifeGamemode.Server.WeaponDeal;
|
||||||
using ReallifeGamemode.Server.Log;
|
using ReallifeGamemode.Server.Log;
|
||||||
using ReallifeGamemode.Server.Managers;
|
using ReallifeGamemode.Server.Managers;
|
||||||
|
using ReallifeGamemode.Server.Services;
|
||||||
|
|
||||||
namespace ReallifeGamemode.Server.Events
|
namespace ReallifeGamemode.Server.Events
|
||||||
{
|
{
|
||||||
@@ -30,7 +31,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
|
|
||||||
if (NAPI.Entity.GetEntityVelocity(v).Length() > 1 && v.Class != 16)
|
if (NAPI.Entity.GetEntityVelocity(v).Length() > 1 && v.Class != 16)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Der Motor kann nur im Stand betätigt werden.", true);
|
NotificationService.SendErrorNotification(player, "Der Motor kann nur im Stand betätigt werden");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,7 +53,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
}
|
}
|
||||||
else if (!fV.GetOwners().Contains(u.FactionId ?? 0) && !state && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty()))
|
else if (!fV.GetOwners().Contains(u.FactionId ?? 0) && !state && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty()))
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du hast keinen Schlüssel.");
|
NotificationService.SendErrorNotification(player, "Du hast keinen Schlüssel");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -60,7 +61,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
{
|
{
|
||||||
if (gV.GroupId != u.Group.Id && !state && !u.IsAdmin(AdminLevel.ADMIN3))
|
if (gV.GroupId != u.Group.Id && !state && !u.IsAdmin(AdminLevel.ADMIN3))
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du hast keinen Schlüssel.");
|
NotificationService.SendErrorNotification(player, "Du hast keinen Schlüssel");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -68,7 +69,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
{
|
{
|
||||||
if (jV.JobId != player.GetUser().JobId && !state && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty()))
|
if (jV.JobId != player.GetUser().JobId && !state && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty()))
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du hast keinen Schlüssel.");
|
NotificationService.SendErrorNotification(player, "Du hast keinen Schlüssel");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -123,7 +124,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
{
|
{
|
||||||
if (uV.UserId != u.Id)
|
if (uV.UserId != u.Id)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du hast keinen Schlüssel.");
|
NotificationService.SendErrorNotification(player, "Du hast keinen Schlüssel");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -238,7 +239,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
{
|
{
|
||||||
if (uV.UserId != u.Id && (!u.IsAdmin(AdminLevel.HEADADMIN) || !player.IsTSupport()))
|
if (uV.UserId != u.Id && (!u.IsAdmin(AdminLevel.HEADADMIN) || !player.IsTSupport()))
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht parken.");
|
NotificationService.SendErrorNotification(player, "Du darfst dieses Fahrzeug nicht parken");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -246,7 +247,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
{
|
{
|
||||||
if ((!fV.GetOwners().Contains(u.FactionId ?? 0) || !u.FactionLeader) && (!u.IsAdmin(AdminLevel.HEADADMIN) || !player.IsTSupport()))
|
if ((!fV.GetOwners().Contains(u.FactionId ?? 0) || !u.FactionLeader) && (!u.IsAdmin(AdminLevel.HEADADMIN) || !player.IsTSupport()))
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht parken.");
|
NotificationService.SendErrorNotification(player, "Du darfst dieses Fahrzeug nicht parken");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -254,18 +255,18 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
{
|
{
|
||||||
if (gV.GroupId != u.Group.Id || u.GroupRank < GroupRank.MANAGER)
|
if (gV.GroupId != u.Group.Id || u.GroupRank < GroupRank.MANAGER)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht parken.");
|
NotificationService.SendErrorNotification(player, "Du darfst dieses Fahrzeug nicht parken");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (sV is JobVehicle)
|
else if (sV is JobVehicle)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht parken.");
|
NotificationService.SendErrorNotification(player, "Du darfst dieses Fahrzeug nicht parken");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (sV is SchoolVehicle)
|
else if (sV is SchoolVehicle)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht parken.");
|
NotificationService.SendErrorNotification(player, "Du darfst dieses Fahrzeug nicht parken");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ using ReallifeGamemode.Server.Extensions;
|
|||||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||||
using ReallifeGamemode.Server.Log;
|
using ReallifeGamemode.Server.Log;
|
||||||
using ReallifeGamemode.Server.Managers;
|
using ReallifeGamemode.Server.Managers;
|
||||||
|
using ReallifeGamemode.Server.Services;
|
||||||
using ReallifeGamemode.Server.Util;
|
using ReallifeGamemode.Server.Util;
|
||||||
|
|
||||||
namespace ReallifeGamemode.Server.Inventory
|
namespace ReallifeGamemode.Server.Inventory
|
||||||
@@ -21,10 +22,10 @@ namespace ReallifeGamemode.Server.Inventory
|
|||||||
public Vector3 Position { get; set; }
|
public Vector3 Position { get; set; }
|
||||||
|
|
||||||
public static List<GroundItem> GroundItems = new List<GroundItem>();
|
public static List<GroundItem> GroundItems = new List<GroundItem>();
|
||||||
public static List<GTANetworkAPI.Object> GroundObjects = new List<GTANetworkAPI.Object>();
|
public static List<Object> GroundObjects = new List<Object>();
|
||||||
public static List<TextLabel> GroundTextLabels = new List<TextLabel>();
|
public static List<TextLabel> GroundTextLabels = new List<TextLabel>();
|
||||||
|
|
||||||
public static void AddGroundItem(GroundItem grndItem, GTANetworkAPI.Object grndObject, TextLabel grndTextLabel)
|
public static void AddGroundItem(GroundItem grndItem, Object grndObject, TextLabel grndTextLabel)
|
||||||
{
|
{
|
||||||
GroundItems.Add(grndItem);
|
GroundItems.Add(grndItem);
|
||||||
GroundObjects.Add(grndObject);
|
GroundObjects.Add(grndObject);
|
||||||
@@ -38,13 +39,16 @@ namespace ReallifeGamemode.Server.Inventory
|
|||||||
{
|
{
|
||||||
var invWeight = InventoryManager.GetUserInventoryWeight(player);
|
var invWeight = InventoryManager.GetUserInventoryWeight(player);
|
||||||
var itemsToAdd = 0;
|
var itemsToAdd = 0;
|
||||||
GTANetworkAPI.Object nearestObject = GroundObjects.FirstOrDefault(d => d.Position == nearest.Position);
|
Object nearestObject = GroundObjects.FirstOrDefault(d => d.Position == nearest.Position);
|
||||||
TextLabel nearestTextLabel = GroundTextLabels.FirstOrDefault(d => d.Position == new Vector3(nearest.Position.X, nearest.Position.Y, nearest.Position.Z + 1.05) || d.Position == new Vector3(nearest.Position.X, nearest.Position.Y, nearest.Position.Z + 0.8) || d.Position == nearest.Position);
|
TextLabel nearestTextLabel = GroundTextLabels.FirstOrDefault(d => d.Position == new Vector3(nearest.Position.X, nearest.Position.Y, nearest.Position.Z + 1.05) || d.Position == new Vector3(nearest.Position.X, nearest.Position.Y, nearest.Position.Z + 0.8) || d.Position == nearest.Position);
|
||||||
IItem nearestItem = InventoryManager.GetItemById(nearest.ItemId);
|
IItem nearestItem = InventoryManager.GetItemById(nearest.ItemId);
|
||||||
UserItem existingItem = InventoryManager.UserHasThisItem(player, nearest.ItemId);
|
UserItem existingItem = InventoryManager.UserHasThisItem(player, nearest.ItemId);
|
||||||
var user = player.GetUser();
|
var user = player.GetUser();
|
||||||
if (player.HasAttachment("ammobox"))
|
if (player.HasAttachment("ammobox")) {
|
||||||
{ player.SendNotification("~r~Du kannst momentan nichts tragen!", false); return false; }
|
NotificationService.SendErrorNotification(player, "Du kannst momentan nichts tragen!", false);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (nearestItem.Gewicht * nearest.Amount + invWeight > 40000)
|
if (nearestItem.Gewicht * nearest.Amount + invWeight > 40000)
|
||||||
{
|
{
|
||||||
for (var i = 1; i <= nearest.Amount; i++)
|
for (var i = 1; i <= nearest.Amount; i++)
|
||||||
@@ -60,7 +64,7 @@ namespace ReallifeGamemode.Server.Inventory
|
|||||||
}
|
}
|
||||||
if (itemsToAdd < 1)
|
if (itemsToAdd < 1)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du hast keinen Platz im Inventar!", false);
|
NotificationService.SendErrorNotification(player, "Du hast keinen Platz im Inventar!", false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -120,7 +124,7 @@ namespace ReallifeGamemode.Server.Inventory
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RemoveGroundItem(GroundItem grndItem, GTANetworkAPI.Object grndObject, TextLabel grndTextLabel)
|
public static void RemoveGroundItem(GroundItem grndItem, Object grndObject, TextLabel grndTextLabel)
|
||||||
{
|
{
|
||||||
GroundItems.Remove(grndItem);
|
GroundItems.Remove(grndItem);
|
||||||
NAPI.Entity.DeleteEntity(grndObject);
|
NAPI.Entity.DeleteEntity(grndObject);
|
||||||
|
|||||||
@@ -90,13 +90,13 @@ namespace ReallifeGamemode.Server.Job
|
|||||||
if (player.HasData("hasPassager"))
|
if (player.HasData("hasPassager"))
|
||||||
{
|
{
|
||||||
User target = dbContext.Users.Where(u => u.Id == targetId).FirstOrDefault();
|
User target = dbContext.Users.Where(u => u.Id == targetId).FirstOrDefault();
|
||||||
player.SendNotification("~r~[Info] ~w~ Dein Kunde hat kein Geld mehr auf der Hand.");
|
NotificationService.SendErrorNotification(player, "Dein Kunde hat kein Geld mehr auf der Hand");
|
||||||
|
|
||||||
if ((target.Handmoney - amount) <= 0)
|
if ((target.Handmoney - amount) <= 0)
|
||||||
{
|
{
|
||||||
Player targetmoney = PlayerService.GetPlayerByNameOrId(Convert.ToString(targetId));
|
Player targetmoney = PlayerService.GetPlayerByNameOrId(Convert.ToString(targetId));
|
||||||
targetmoney.SendNotification("~r~[Fehler] ~w~ Du hast kein Geld mehr auf der Hand.");
|
targetmoney.SendNotification("~r~[Fehler] ~w~ Du hast kein Geld mehr auf der Hand.");
|
||||||
player.SendNotification("~r~[Fehler] ~w~ Dein Fahrgast kann dich nicht mehr bezahlen.");
|
NotificationService.SendErrorNotification(player, "Dein Fahrgast kann dich nicht mehr bezahlen");
|
||||||
player.TriggerEvent("CLIENT:cancelFare");
|
player.TriggerEvent("CLIENT:cancelFare");
|
||||||
targetmoney.TriggerEvent("CLIENT:cancelFareCustomer");
|
targetmoney.TriggerEvent("CLIENT:cancelFareCustomer");
|
||||||
targetmoney.WarpOutOfVehicle();
|
targetmoney.WarpOutOfVehicle();
|
||||||
|
|||||||
@@ -75,12 +75,12 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
|
|
||||||
if (result == TransactionResult.NEGATIVE_MONEY_SENT)
|
if (result == TransactionResult.NEGATIVE_MONEY_SENT)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Es können nur positive Beträge überwiesen werden");
|
NotificationService.SendErrorNotification(player, "Es können nur positive Beträge überwiesen werden");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (result == TransactionResult.SENDER_NOT_ENOUGH_MONEY)
|
else if (result == TransactionResult.SENDER_NOT_ENOUGH_MONEY)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du hast nicht genug Geld");
|
NotificationService.SendErrorNotification(player, "Du hast nicht genug Geld");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (result == TransactionResult.SUCCESS)
|
else if (result == TransactionResult.SUCCESS)
|
||||||
@@ -110,12 +110,12 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
|
|
||||||
if (result == TransactionResult.NEGATIVE_MONEY_SENT)
|
if (result == TransactionResult.NEGATIVE_MONEY_SENT)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Es können nur positive Beträge überwiesen werden");
|
NotificationService.SendErrorNotification(player, "Es können nur positive Beträge überwiesen werden");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (result == TransactionResult.SENDER_NOT_ENOUGH_MONEY)
|
else if (result == TransactionResult.SENDER_NOT_ENOUGH_MONEY)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Es ist nicht genug Geld auf der Businesskasse vorhanden");
|
NotificationService.SendErrorNotification(player, "Es ist nicht genug Geld auf der Businesskasse vorhanden");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (result == TransactionResult.SUCCESS)
|
else if (result == TransactionResult.SUCCESS)
|
||||||
@@ -177,11 +177,10 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
TransactionResult result = BankManager.TransferMoney(user, business, price, "Auto gekauft", dbContext);
|
TransactionResult result = BankManager.TransferMoney(user, business, price, "Auto gekauft", dbContext);
|
||||||
if (result == TransactionResult.SENDER_NOT_ENOUGH_MONEY)
|
if (result == TransactionResult.SENDER_NOT_ENOUGH_MONEY)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du hast nicht genug Geld: " + price.ToMoneyString());
|
NotificationService.SendErrorNotification(player, "Du hast nicht genug Geld: " + price.ToMoneyString());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
player.SendChatMessage("~y~Du hast das Fahrzeug erfolgreich gekauft");
|
player.SendChatMessage("~y~Du hast das Fahrzeug erfolgreich gekauft");
|
||||||
player.SendNotification("~r~[Wichtig] ~w~Benutze 'Z', um dein Fahrzeug umzuparken.");
|
|
||||||
|
|
||||||
newVeh = new UserVehicle
|
newVeh = new UserVehicle
|
||||||
{
|
{
|
||||||
@@ -205,7 +204,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
TransactionResult result = BankManager.TransferMoney(faction, business, (int)(price * FACTION_CAR_MULTIPLIER), "Auto gekauft", dbContext);
|
TransactionResult result = BankManager.TransferMoney(faction, business, (int)(price * FACTION_CAR_MULTIPLIER), "Auto gekauft", dbContext);
|
||||||
if (result == TransactionResult.SENDER_NOT_ENOUGH_MONEY)
|
if (result == TransactionResult.SENDER_NOT_ENOUGH_MONEY)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Die Fraktion hat nicht genug Geld: " + (price * FACTION_CAR_MULTIPLIER).ToMoneyString());
|
NotificationService.SendErrorNotification(player, "Die Fraktion hat nicht genug Geld: " + (price * FACTION_CAR_MULTIPLIER).ToMoneyString());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
player.SendChatMessage("~y~Deine Fraktion hat das Fahrzeug erfolgreich gekauft");
|
player.SendChatMessage("~y~Deine Fraktion hat das Fahrzeug erfolgreich gekauft");
|
||||||
@@ -245,6 +244,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
dbContext.SaveChanges();
|
dbContext.SaveChanges();
|
||||||
|
|
||||||
newVeh.Spawn(null);
|
newVeh.Spawn(null);
|
||||||
|
player.SetIntoVehicle(VehicleManager.GetVehicleFromServerVehicle(newVeh).Handle, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -336,19 +336,19 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
var user = player.GetUser(dbContext);
|
var user = player.GetUser(dbContext);
|
||||||
if (user.Faction?.StateOwned ?? false || user.Faction?.GangOwned == false)
|
if (user.Faction?.StateOwned ?? false || user.Faction?.GangOwned == false)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du darfst keine Hanfsamen einpflanzen");
|
NotificationService.SendErrorNotification(player, "Du darfst keine Hanfsamen einpflanzen");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player.HasData(PLAYER_CURRENTLY_PLANTING_DATA_KEY) && player.GetData<bool>(PLAYER_CURRENTLY_PLANTING_DATA_KEY))
|
if (player.HasData(PLAYER_CURRENTLY_PLANTING_DATA_KEY) && player.GetData<bool>(PLAYER_CURRENTLY_PLANTING_DATA_KEY))
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du pflanzt aktuell schon einen Hanfsamen ein");
|
NotificationService.SendErrorNotification(player, "Du pflanzt aktuell schon einen Hanfsamen ein");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dbContext.CannabisPlants.Where(p => p.PlantedById == user.Id && !p.Harvested).Count() >= MAX_CONCURRENT_PLANTS)
|
if (dbContext.CannabisPlants.Where(p => p.PlantedById == user.Id && !p.Harvested).Count() >= MAX_CONCURRENT_PLANTS)
|
||||||
{
|
{
|
||||||
player.SendNotification($"~r~Du kannst nur {MAX_CONCURRENT_PLANTS} Pflanzen gleichzeitig anpflanzen");
|
NotificationService.SendErrorNotification(player, $"Du kannst nur {MAX_CONCURRENT_PLANTS} Pflanzen gleichzeitig anpflanzen");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -366,7 +366,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
UserItem userCannabisSeedsItem = InventoryManager.UserHasThisItem(player, cannabisSeedItem.Id);
|
UserItem userCannabisSeedsItem = InventoryManager.UserHasThisItem(player, cannabisSeedItem.Id);
|
||||||
if (userCannabisSeedsItem == null)
|
if (userCannabisSeedsItem == null)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du hast keine Samen mehr");
|
NotificationService.SendErrorNotification(player, "Du hast keine Samen mehr");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -464,7 +464,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
|
|
||||||
if (amount > GetAmountOfCannabisSeedsPlayerCanBuyToday(user))
|
if (amount > GetAmountOfCannabisSeedsPlayerCanBuyToday(user))
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du kannst heute nicht mehr so viele Samen kaufen");
|
NotificationService.SendErrorNotification(player, "Du kannst heute nicht mehr so viele Samen kaufen");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -480,7 +480,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
HanfNpc hanfNpc = GetHanfNpcWherePlayerIsStanding(player);
|
HanfNpc hanfNpc = GetHanfNpcWherePlayerIsStanding(player);
|
||||||
if (hanfNpc == null)
|
if (hanfNpc == null)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du bist nicht mehr beim Dealer");
|
NotificationService.SendErrorNotification(player, "Du bist nicht mehr beim Dealer");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -488,7 +488,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
|
|
||||||
if (user.Handmoney < price)
|
if (user.Handmoney < price)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du hast nicht genug Geld dafür");
|
NotificationService.SendErrorNotification(player, "Du hast nicht genug Geld dafür");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -549,7 +549,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
{
|
{
|
||||||
if (!((user.FactionId == 1 || user.FactionId == 3) && player.IsDuty()))
|
if (!((user.FactionId == 1 || user.FactionId == 3) && player.IsDuty()))
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du kannst kein Hanf ernten");
|
NotificationService.SendErrorNotification(player, "Du kannst kein Hanf ernten");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -567,7 +567,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
bool isPlantRotten = DateTime.Now - plant.PlantDate > MAX_PLANT_TIME;
|
bool isPlantRotten = DateTime.Now - plant.PlantDate > MAX_PLANT_TIME;
|
||||||
if (isPlantRotten)
|
if (isPlantRotten)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Die Pflanze ist leider verrottet");
|
NotificationService.SendErrorNotification(player, "Die Pflanze ist leider verrottet");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -583,7 +583,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du konntest den Samen leider nicht wieder ausgraben");
|
NotificationService.SendErrorNotification(player, "Du konntest den Samen leider nicht wieder ausgraben");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -605,7 +605,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du hast die falschen Samen eingesät und keinen Ertrag aus dieser Pflanze erhalten");
|
NotificationService.SendErrorNotification(player, "Du hast die falschen Samen eingesät und keinen Ertrag aus dieser Pflanze erhalten");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -671,7 +671,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
UserItem userCannabisItem = userItems.Where(i => i.ItemId == cannabisItem.Id).FirstOrDefault();
|
UserItem userCannabisItem = userItems.Where(i => i.ItemId == cannabisItem.Id).FirstOrDefault();
|
||||||
if (userCannabisItem == null || userCannabisItem.Amount < CANNABIS_NEEDED_FOR_JOINT)
|
if (userCannabisItem == null || userCannabisItem.Amount < CANNABIS_NEEDED_FOR_JOINT)
|
||||||
{
|
{
|
||||||
player.SendNotification($"~r~Du hast nicht genug Cannabis dabei~n~Zur Herstellung eines Joints werden {CANNABIS_NEEDED_FOR_JOINT} Hanfblüten benötigt");
|
NotificationService.SendErrorNotification(player, $"Du hast nicht genug Cannabis dabei~n~Zur Herstellung eines Joints werden {CANNABIS_NEEDED_FOR_JOINT} Hanfblüten benötigt");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -730,14 +730,14 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
|
|
||||||
if (seedsUserCanBuy == 0)
|
if (seedsUserCanBuy == 0)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du kannst heute keine Samen mehr kaufen");
|
NotificationService.SendErrorNotification(player, "Du kannst heute keine Samen mehr kaufen");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
HanfNpc hanfNpc = GetHanfNpcWherePlayerIsStanding(player);
|
HanfNpc hanfNpc = GetHanfNpcWherePlayerIsStanding(player);
|
||||||
if (hanfNpc == null)
|
if (hanfNpc == null)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du bist nicht bei einem Dealer");
|
NotificationService.SendErrorNotification(player, "Du bist nicht bei einem Dealer");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -765,14 +765,14 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
|
|
||||||
if (cannabisAmount == 0)
|
if (cannabisAmount == 0)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du hast kein Cannabis dabei");
|
NotificationService.SendErrorNotification(player, "Du hast kein Cannabis dabei");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
HanfNpc hanfNpc = GetHanfNpcWherePlayerIsStanding(player);
|
HanfNpc hanfNpc = GetHanfNpcWherePlayerIsStanding(player);
|
||||||
if (hanfNpc == null)
|
if (hanfNpc == null)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du bist nicht bei einem Dealer");
|
NotificationService.SendErrorNotification(player, "Du bist nicht bei einem Dealer");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -797,14 +797,14 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
|
|
||||||
if (cannabisAmount < amount)
|
if (cannabisAmount < amount)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du hast nicht so viel Cannabis dabei");
|
NotificationService.SendErrorNotification(player, "Du hast nicht so viel Cannabis dabei");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
HanfNpc hanfNpc = GetHanfNpcWherePlayerIsStanding(player);
|
HanfNpc hanfNpc = GetHanfNpcWherePlayerIsStanding(player);
|
||||||
if (hanfNpc == null)
|
if (hanfNpc == null)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du bist nicht mehr bei einem Dealer");
|
NotificationService.SendErrorNotification(player, "Du bist nicht mehr bei einem Dealer");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
{
|
{
|
||||||
if (!playerUser.DriverLicenseBike && !playerUser.DriverLicenseVehicle && !playerUser.FlyingLicensePlane && !playerUser.WeaponLicense)
|
if (!playerUser.DriverLicenseBike && !playerUser.DriverLicenseVehicle && !playerUser.FlyingLicensePlane && !playerUser.WeaponLicense)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Sie besitzen keine Scheine!");
|
NotificationService.SendErrorNotification(player, "Sie besitzen keine Scheine!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (player.Position.DistanceTo(target.Position) > 5)
|
if (player.Position.DistanceTo(target.Position) > 5)
|
||||||
@@ -188,7 +188,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
}
|
}
|
||||||
if (targetUser?.Wanteds > 0)
|
if (targetUser?.Wanteds > 0)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du kannst diesen Spieler nicht inviten da er aktuell gesucht wird. (Wanted)", false);
|
NotificationService.SendErrorNotification(player, "Du kannst diesen Spieler nicht inviten, da nach ihm gefahndet wird", false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -600,13 +600,13 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
}
|
}
|
||||||
else if (target == player)
|
else if (target == player)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du kannst dir selbst kein Ticket geben!");
|
NotificationService.SendErrorNotification(player, "Du kannst dir selbst kein Ticket geben!");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (amount <= 0 || amount > 10000)
|
if (amount <= 0 || amount > 10000)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du kannst nur einen Betrag zwischen $1 und $10.000 angeben!");
|
NotificationService.SendErrorNotification(player, "Du kannst nur einen Betrag zwischen $1 und $10.000 angeben!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -630,7 +630,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
|
|
||||||
if (!int.TryParse((string)JsonConvert.DeserializeObject(jsoAmount), out int amount))
|
if (!int.TryParse((string)JsonConvert.DeserializeObject(jsoAmount), out int amount))
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Es muss eine gültige Zahl für die Punkte angegeben werden!");
|
NotificationService.SendErrorNotification(player, "Es muss eine gültige Zahl für die Punkte angegeben werden!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -642,7 +642,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
|
|
||||||
if (target == player)
|
if (target == player)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du kannst dir selbst keine Punkte setzen!");
|
NotificationService.SendErrorNotification(player, "Du kannst dir selbst keine Punkte setzen!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -657,13 +657,13 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
|
|
||||||
if (targetUser.DriverLicenseVehicle == false && targetUser.DriverLicenseBike == false)
|
if (targetUser.DriverLicenseVehicle == false && targetUser.DriverLicenseBike == false)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Der Spieler hat weder einen Auto- noch einen Motorradführerschein!");
|
NotificationService.SendErrorNotification(player, "Der Spieler hat weder einen Auto- noch einen Motorradführerschein!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (amount < -13 || amount > 13)
|
if (amount < -13 || amount > 13)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du kannst nur zwischen 1 und 12 Punkte verteilen!");
|
NotificationService.SendErrorNotification(player, "Du kannst nur zwischen 1 und 12 Punkte verteilen!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -777,7 +777,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
|
|
||||||
if (player.Position.DistanceTo(target.Position) > 5)
|
if (player.Position.DistanceTo(target.Position) > 5)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Der Spieler ist nicht in deiner Nähe");
|
NotificationService.SendErrorNotification(player, "Der Spieler ist nicht in deiner Nähe");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -841,14 +841,14 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
var vehicle = NAPI.Pools.GetAllVehicles().Where(v => v.Position.DistanceTo(player.Position) <= 5).OrderBy(v => v.Position.DistanceTo(player.Position)).FirstOrDefault();
|
var vehicle = NAPI.Pools.GetAllVehicles().Where(v => v.Position.DistanceTo(player.Position) <= 5).OrderBy(v => v.Position.DistanceTo(player.Position)).FirstOrDefault();
|
||||||
if (vehicle == null)
|
if (vehicle == null)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Es befindet sich kein Fahrzeug in deiner Nähe");
|
NotificationService.SendErrorNotification(player, "Es befindet sich kein Fahrzeug in deiner Nähe");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ServerVehicle serverVehicle = vehicle.GetServerVehicle(dbContext);
|
ServerVehicle serverVehicle = vehicle.GetServerVehicle(dbContext);
|
||||||
if (serverVehicle == null)
|
if (serverVehicle == null)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Dieses Fahrzeug kann nicht durchsucht werden");
|
NotificationService.SendErrorNotification(player, "Dieses Fahrzeug kann nicht durchsucht werden");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -857,14 +857,14 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
Player owner = PlayerService.GetPlayerByNameOrId(dbContext.Users.Where(u => u.Id == userVehicle.UserId).Select(u => u.Name).First());
|
Player owner = PlayerService.GetPlayerByNameOrId(dbContext.Users.Where(u => u.Id == userVehicle.UserId).Select(u => u.Name).First());
|
||||||
if (owner == null || !owner.IsLoggedIn() || player.Position.DistanceTo(owner.Position) > 15)
|
if (owner == null || !owner.IsLoggedIn() || player.Position.DistanceTo(owner.Position) > 15)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Der Besitzer des Fahrzeugs ist nicht in der Nähe");
|
NotificationService.SendErrorNotification(player, "Der Besitzer des Fahrzeugs ist nicht in der Nähe");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (serverVehicle.Model == VehicleHash.Riot)
|
if (serverVehicle.Model == VehicleHash.Riot)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Der Riot muss zur Asservatenkammer gefahren werden");
|
NotificationService.SendErrorNotification(player, "Der Riot muss zur Asservatenkammer gefahren werden");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -911,7 +911,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
{
|
{
|
||||||
if (player.GetUser().PlayedMinutes < 180)
|
if (player.GetUser().PlayedMinutes < 180)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du kannst Geld erst ab 3 Spielstunden vergeben");
|
NotificationService.SendErrorNotification(player, "Du kannst Geld erst ab drei Spielstunden vergeben");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -923,7 +923,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~" + stringAmount + " ist kein gültiger Betrag.");
|
NotificationService.SendErrorNotification(player, $"{stringAmount} ist kein gültiger Betrag");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player target = PlayerService.GetPlayerByNameOrId(nameOrId);
|
Player target = PlayerService.GetPlayerByNameOrId(nameOrId);
|
||||||
@@ -937,15 +937,15 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
}
|
}
|
||||||
else if (target == player)
|
else if (target == player)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du kannst dir selber kein Geld geben!");
|
NotificationService.SendErrorNotification(player, "Du kannst dir selber kein Geld geben!");
|
||||||
}
|
}
|
||||||
else if (!nearbyPlayers.Contains(target))
|
else if (!nearbyPlayers.Contains(target))
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Dieser Spieler befindet sich nicht in deiner Nähe!");
|
NotificationService.SendErrorNotification(player, "Dieser Spieler befindet sich nicht in deiner Nähe!");
|
||||||
}
|
}
|
||||||
else if (player.GetUser().Handmoney < amount)
|
else if (player.GetUser().Handmoney < amount)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du hast nicht genug Geld.");
|
NotificationService.SendErrorNotification(player, "Du hast nicht genug Geld");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -968,7 +968,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Du kannst nur zwischen $1 und $5.000 geben!");
|
NotificationService.SendErrorNotification(player, "Du kannst nur zwischen $1 und $5.000 geben!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -990,7 +990,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
if (listPlayers.Count() > 0)
|
if (listPlayers.Count() > 0)
|
||||||
player.TriggerEvent("showWantedlist", JsonConvert.SerializeObject(listPlayers));
|
player.TriggerEvent("showWantedlist", JsonConvert.SerializeObject(listPlayers));
|
||||||
else
|
else
|
||||||
player.SendNotification("~r~[Fehler] ~w~Es gibt derzeit keine Verbrecher!");
|
NotificationService.SendErrorNotification(player, "Es gibt derzeit keine Verbrecher!");
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1003,7 +1003,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
User user = player.GetUser(dbContext);
|
User user = player.GetUser(dbContext);
|
||||||
if (user.House == null)
|
if (user.House == null)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~[Fehler] ~w~Du besitzt kein Haus!");
|
NotificationService.SendErrorNotification(player, "Du besitzt kein Haus!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1018,7 +1018,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
{
|
{
|
||||||
if (player.GetUser().FactionId == 2 && player.IsDuty())
|
if (player.GetUser().FactionId == 2 && player.IsDuty())
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~[Fehler] ~w~Du kannst keinen Sanitäter rufen");
|
NotificationService.SendErrorNotification(player, "Du kannst keinen Sanitäter rufen");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1035,7 +1035,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
};
|
};
|
||||||
if (player.GetData<bool>("healauftrag") == true)
|
if (player.GetData<bool>("healauftrag") == true)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~[Fehler] ~w~Du hast bereits einen Sanitäter gerufen");
|
NotificationService.SendErrorNotification(player, "Du hast bereits einen Sanitäter gerufen");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1078,8 +1078,8 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
if (player.GetUser().Handmoney < tradePrize)
|
if (player.GetUser().Handmoney < tradePrize)
|
||||||
{
|
{
|
||||||
tradeRequester.TriggerEvent("unlockTradeItems");
|
tradeRequester.TriggerEvent("unlockTradeItems");
|
||||||
tradeRequester.SendNotification("~y~" + player.Name + " ~r~hat nicht genügend Bargeld! ~s~Handel abgebrochen.");
|
tradeRequester.SendNotification("~y~" + player.Name + " ~s~hat nicht genügend Bargeld! Handel abgebrochen.");
|
||||||
player.SendNotification("~r~Du hast nicht genügend Bargeld! ~s~Handel abgebrochen.");
|
NotificationService.SendErrorNotification(player, "Du hast nicht genügend Bargeld! Handel abgebrochen");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ using ReallifeGamemode.Database.Entities;
|
|||||||
using ReallifeGamemode.Database.Models;
|
using ReallifeGamemode.Database.Models;
|
||||||
using ReallifeGamemode.Server.Extensions;
|
using ReallifeGamemode.Server.Extensions;
|
||||||
using ReallifeGamemode.Server.Log;
|
using ReallifeGamemode.Server.Log;
|
||||||
|
using ReallifeGamemode.Server.Services;
|
||||||
|
|
||||||
namespace ReallifeGamemode.Server.Managers
|
namespace ReallifeGamemode.Server.Managers
|
||||||
{
|
{
|
||||||
@@ -132,7 +133,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
ServerVehicle serverVehicle = vehicle.GetServerVehicle(dbContext);
|
ServerVehicle serverVehicle = vehicle.GetServerVehicle(dbContext);
|
||||||
if (serverVehicle is FactionVehicle factionVehicle && factionVehicle.BuyPrice == 0)
|
if (serverVehicle is FactionVehicle factionVehicle && factionVehicle.BuyPrice == 0)
|
||||||
{
|
{
|
||||||
player.SendNotification("~r~Dieses Fahrzeug kann aktuell leider nicht getunt werden");
|
NotificationService.SendErrorNotification(player, "Dieses Fahrzeug kann aktuell leider nicht getunt werden");
|
||||||
onlyRepair = true;
|
onlyRepair = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using GTANetworkAPI;
|
using GTANetworkAPI;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using ReallifeGamemode.Database.Entities;
|
using ReallifeGamemode.Database.Entities;
|
||||||
@@ -765,6 +765,23 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
"fibj",//mod
|
"fibj",//mod
|
||||||
"fibn3",//mod
|
"fibn3",//mod
|
||||||
"fibr",//mod
|
"fibr",//mod
|
||||||
|
"calico",
|
||||||
|
"comet6",
|
||||||
|
"cypher",
|
||||||
|
"dominator7",
|
||||||
|
"dominator8",
|
||||||
|
"euros",
|
||||||
|
"futo2",
|
||||||
|
"growler",
|
||||||
|
"jester4",
|
||||||
|
"previon",
|
||||||
|
"remus",
|
||||||
|
"rt3000",
|
||||||
|
"sultan3",
|
||||||
|
"tailgater2",
|
||||||
|
"vectre",
|
||||||
|
"warrener2",
|
||||||
|
"zr350",
|
||||||
};
|
};
|
||||||
|
|
||||||
private static readonly List<string> _restrictedVehicles = new List<string>()
|
private static readonly List<string> _restrictedVehicles = new List<string>()
|
||||||
|
|||||||
@@ -22,14 +22,14 @@ namespace ReallifeGamemode.Server.Services
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="player">Der Spieler, der die Benachrichtigung erhalten soll</param>
|
/// <param name="player">Der Spieler, der die Benachrichtigung erhalten soll</param>
|
||||||
/// <param name="message">Die Nachricht, die dem Spieler als Benachrichtigung zugestellt werden soll</param>
|
/// <param name="message">Die Nachricht, die dem Spieler als Benachrichtigung zugestellt werden soll</param>
|
||||||
public static void SendNotification(Player player, string message)
|
public static void SendNotification(Player player, string message, bool flashing = true)
|
||||||
{
|
{
|
||||||
if (player == null || !player.IsLoggedIn())
|
if (player == null || !player.IsLoggedIn())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
player.SendNotification(message);
|
player.SendNotification(message, flashing);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -37,35 +37,35 @@ namespace ReallifeGamemode.Server.Services
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="player">Der Spieler, der die Benachrichtigung erhalten soll</param>
|
/// <param name="player">Der Spieler, der die Benachrichtigung erhalten soll</param>
|
||||||
/// <param name="message">Die Nachricht, die dem Spieler als Benachrichtigung zugestellt werden soll</param>
|
/// <param name="message">Die Nachricht, die dem Spieler als Benachrichtigung zugestellt werden soll</param>
|
||||||
public static void SendErrorNotification(Player player, string message)
|
public static void SendErrorNotification(Player player, string message, bool flashing = true)
|
||||||
{
|
{
|
||||||
if (message.EndsWith("."))
|
if (message.EndsWith("."))
|
||||||
{
|
{
|
||||||
message.Substring(0, message.Length - 1);
|
message.Substring(0, message.Length - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
SendNotification(player, $"~r~Fehler:~n~~s~{message}");
|
SendNotification(player, $"~r~Fehler:~n~~s~{message}", flashing);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sendet eine Benachrichtigung an alle Spieler
|
/// Sendet eine Benachrichtigung an alle Spieler
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="message">Die Nachricht, die dem Spieler als Benachrichtigung zugestellt werden soll</param>
|
/// <param name="message">Die Nachricht, die dem Spieler als Benachrichtigung zugestellt werden soll</param>
|
||||||
public static void SendServerNotification(string message) => NAPI.Pools.GetAllPlayers().ForEach(player => SendNotification(player, message));
|
public static void SendServerNotification(string message, bool flashing = true) => NAPI.Pools.GetAllPlayers().ForEach(player => SendNotification(player, message, flashing));
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sendet eine Benachrichtigung an die Mitglieder einer Fraktion
|
/// Sendet eine Benachrichtigung an die Mitglieder einer Fraktion
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="faction">Die Fraktion, deren Mitglieder diese Benachrichtigung erhalten soll</param>
|
/// <param name="faction">Die Fraktion, deren Mitglieder diese Benachrichtigung erhalten soll</param>
|
||||||
/// <param name="message">Die Nachricht, die den Mitgliedern als Benachrichtigung zugestellt werden soll</param>
|
/// <param name="message">Die Nachricht, die den Mitgliedern als Benachrichtigung zugestellt werden soll</param>
|
||||||
public static void SendFactionNotification(Faction faction, string message) => SendFactionNotification(new List<Faction>() { faction }, message);
|
public static void SendFactionNotification(Faction faction, string message, bool flashing = true) => SendFactionNotification(new List<Faction>() { faction }, message, flashing);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sendet eine Benachrichtigung an die Mitglieder mehrerer Fraktionen
|
/// Sendet eine Benachrichtigung an die Mitglieder mehrerer Fraktionen
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="factions">Die Liste an Fraktionen, deren Mitglieder diese Benachrichtigung erhalten sollen</param>
|
/// <param name="factions">Die Liste an Fraktionen, deren Mitglieder diese Benachrichtigung erhalten sollen</param>
|
||||||
/// <param name="message">Die Nachricht, die den Mitgliedern als Benachrichtigung zugestellt werden soll</param>
|
/// <param name="message">Die Nachricht, die den Mitgliedern als Benachrichtigung zugestellt werden soll</param>
|
||||||
public static void SendFactionNotification(List<Faction> factions, string message)
|
public static void SendFactionNotification(List<Faction> factions, string message, bool flashing = true)
|
||||||
{
|
{
|
||||||
foreach (Player player in NAPI.Pools.GetAllPlayers())
|
foreach (Player player in NAPI.Pools.GetAllPlayers())
|
||||||
{
|
{
|
||||||
@@ -74,7 +74,7 @@ namespace ReallifeGamemode.Server.Services
|
|||||||
|
|
||||||
if (userFaction != null && factions.Find(faction => faction.Id == userFaction.Id) != null)
|
if (userFaction != null && factions.Find(faction => faction.Id == userFaction.Id) != null)
|
||||||
{
|
{
|
||||||
SendNotification(player, message);
|
SendNotification(player, message, flashing);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -83,30 +83,30 @@ namespace ReallifeGamemode.Server.Services
|
|||||||
/// Sendet eine Nachricht an die Mitglieder der Strafverfolgungsbehörden
|
/// Sendet eine Nachricht an die Mitglieder der Strafverfolgungsbehörden
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="message">Die Nachricht, die den Beamten als Benachrichtigung zugestellt werden soll</param>
|
/// <param name="message">Die Nachricht, die den Beamten als Benachrichtigung zugestellt werden soll</param>
|
||||||
public static void SendPolicingNotification(string message) => SendFactionNotificationByFactionIds(new List<int>() { 1, 3 }, $"!{{#8181E9}}HQ-Meldung:~n~~s~{message}");
|
public static void SendPolicingNotification(string message, bool flashing = true) => SendFactionNotificationByFactionIds(new List<int>() { 1, 3 }, $"!{{#8181E9}}HQ-Meldung:~n~~s~{message}", flashing);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sendet eine Benachrichtigung an alle Spieler mit einem bestimmten Admin-Level
|
/// Sendet eine Benachrichtigung an alle Spieler mit einem bestimmten Admin-Level
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="minLevel">Das Admin-Level, dass für den Erhalt dieser Benachrichtigung erforderlich ist</param>
|
/// <param name="minLevel">Das Admin-Level, dass für den Erhalt dieser Benachrichtigung erforderlich ist</param>
|
||||||
/// <param name="message">Die Nachricht, die den Spielern als Benachrichtigung zugestellt werden soll</param>
|
/// <param name="message">Die Nachricht, die den Spielern als Benachrichtigung zugestellt werden soll</param>
|
||||||
public static void SendAdminLevelNotification(AdminLevel minLevel, string message)
|
public static void SendAdminLevelNotification(AdminLevel minLevel, string message, bool flashing = true)
|
||||||
{
|
{
|
||||||
NAPI.Pools.GetAllPlayers()
|
NAPI.Pools.GetAllPlayers()
|
||||||
.Where(player => player.IsLoggedIn())
|
.Where(player => player.IsLoggedIn())
|
||||||
.Where(player => player.GetUser().IsAdmin(minLevel)).ToList()
|
.Where(player => player.GetUser().IsAdmin(minLevel)).ToList()
|
||||||
.ForEach(player => SendNotification(player, message));
|
.ForEach(player => SendNotification(player, message, flashing));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sendet eine Benachrichtigung an alle Spieler, die sich im T-Support befinden
|
/// Sendet eine Benachrichtigung an alle Spieler, die sich im T-Support befinden
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="message">Die Nachricht, die den Spielern als Benachrichtigung zugestellt werden soll</param>
|
/// <param name="message">Die Nachricht, die den Spielern als Benachrichtigung zugestellt werden soll</param>
|
||||||
public static void SendDutyTeamMemberNotification(string message)
|
public static void SendDutyTeamMemberNotification(string message, bool flashing = true)
|
||||||
{
|
{
|
||||||
NAPI.Pools.GetAllPlayers()
|
NAPI.Pools.GetAllPlayers()
|
||||||
.Where(player => player.IsAdminDuty()).ToList()
|
.Where(player => player.IsAdminDuty()).ToList()
|
||||||
.ForEach(player => SendNotification(player, message));
|
.ForEach(player => SendNotification(player, message, flashing));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -115,11 +115,11 @@ namespace ReallifeGamemode.Server.Services
|
|||||||
/// <param name="position">Position, von der die Distanz ermittelt wird</param>
|
/// <param name="position">Position, von der die Distanz ermittelt wird</param>
|
||||||
/// <param name="range">Distanz, bis zu welcher Spieler benachrichtigt werden</param>
|
/// <param name="range">Distanz, bis zu welcher Spieler benachrichtigt werden</param>
|
||||||
/// <param name="message">Die Nachricht, die dem Spieler als Benachrichtigung zugestellt werden soll</param>
|
/// <param name="message">Die Nachricht, die dem Spieler als Benachrichtigung zugestellt werden soll</param>
|
||||||
internal static void SendRangeNotification(Vector3 position, int range, string message)
|
internal static void SendRangeNotification(Vector3 position, int range, string message, bool flashing = true)
|
||||||
{
|
{
|
||||||
NAPI.Pools.GetAllPlayers()
|
NAPI.Pools.GetAllPlayers()
|
||||||
.Where(player => player.Position.DistanceTo(position) <= range).ToList()
|
.Where(player => player.Position.DistanceTo(position) <= range).ToList()
|
||||||
.ForEach(player => SendNotification(player, message));
|
.ForEach(player => SendNotification(player, message, flashing));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -127,11 +127,11 @@ namespace ReallifeGamemode.Server.Services
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="group">Die Gruppe, deren Mitglieder diese Benachrichtigung erhalten soll</param>
|
/// <param name="group">Die Gruppe, deren Mitglieder diese Benachrichtigung erhalten soll</param>
|
||||||
/// <param name="message">Die Nachricht, die den Mitgliedern als Benachrichtigung zugestellt werden soll</param>
|
/// <param name="message">Die Nachricht, die den Mitgliedern als Benachrichtigung zugestellt werden soll</param>
|
||||||
public static void SendGroupNotification(Group group, string message)
|
public static void SendGroupNotification(Group group, string message, bool flashing = true)
|
||||||
{
|
{
|
||||||
NAPI.Pools.GetAllPlayers()
|
NAPI.Pools.GetAllPlayers()
|
||||||
.Where(player => player.GetUser().Group.Id == group.Id).ToList()
|
.Where(player => player.GetUser().Group.Id == group.Id).ToList()
|
||||||
.ForEach(player => SendNotification(player, $"!{{FF8080}}Gruppe:~n~~s~{message}"));
|
.ForEach(player => SendNotification(player, $"!{{FF8080}}Gruppe:~n~~s~{message}", flashing));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -139,13 +139,13 @@ namespace ReallifeGamemode.Server.Services
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="job">Der Beruf, dessen Arbeiter diese Benachrichtigung erhalten soll</param>
|
/// <param name="job">Der Beruf, dessen Arbeiter diese Benachrichtigung erhalten soll</param>
|
||||||
/// <param name="message">Die Nachricht, die den Mitgliedern als Benachrichtigung zugestellt werden soll</param>
|
/// <param name="message">Die Nachricht, die den Mitgliedern als Benachrichtigung zugestellt werden soll</param>
|
||||||
public static void SendJobNotification(JobBase job, string message) => job.GetUsersInJob().ForEach(player => SendNotification(player, message));
|
public static void SendJobNotification(JobBase job, string message, bool flashing = true) => job.GetUsersInJob().ForEach(player => SendNotification(player, message, flashing));
|
||||||
|
|
||||||
internal static void SendFactionNotificationByFactionIds(List<int> factionIds, string message)
|
internal static void SendFactionNotificationByFactionIds(List<int> factionIds, string message, bool flashing = true)
|
||||||
{
|
{
|
||||||
using (var dbContext = new DatabaseContext())
|
using (var dbContext = new DatabaseContext())
|
||||||
{
|
{
|
||||||
SendFactionNotification(dbContext.Factions.Where(faction => factionIds.Contains(faction.Id)).ToList(), message);
|
SendFactionNotification(dbContext.Factions.Where(faction => factionIds.Contains(faction.Id)).ToList(), message, flashing);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user