formatted code

This commit is contained in:
Lennart Kampshoff
2019-05-05 17:59:11 +02:00
parent a34c03eae9
commit a88d5256a8
54 changed files with 290 additions and 210 deletions

View File

@@ -14,9 +14,9 @@ import moneyFormat from '../moneyformat';
export default function carDealer() { export default function carDealer() {
var shopMenu; var shopMenu: NativeUI.Menu;
mp.events.add('ShopVehicle_OpenMenu', (businessName, price) => { mp.events.add('ShopVehicle_OpenMenu', (businessName, price, availableOptions: string[]) => {
var veh = mp.players.local.vehicle; var veh = mp.players.local.vehicle;
if (!veh) return; if (!veh) return;
mp.gui.chat.show(false); mp.gui.chat.show(false);
@@ -34,6 +34,10 @@ export default function carDealer() {
priceItem.SetRightLabel("~g~$~s~ " + moneyFormat(price)); priceItem.SetRightLabel("~g~$~s~ " + moneyFormat(price));
shopMenu.AddItem(priceItem); shopMenu.AddItem(priceItem);
var targetsCollection = new ItemsCollection(availableOptions);
var targetItem = new UIMenuListItem("Besitzer", "W<>hle den Besitzer aus", targetsCollection);
shopMenu.AddItem(targetItem);
var saveItem = new UIMenuItem("Kaufen"); var saveItem = new UIMenuItem("Kaufen");
saveItem.BackColor = new Color(0, 100, 0); saveItem.BackColor = new Color(0, 100, 0);
saveItem.HighlightedBackColor = new Color(0, 150, 0); saveItem.HighlightedBackColor = new Color(0, 150, 0);
@@ -48,7 +52,7 @@ export default function carDealer() {
if (item === cancelItem) { if (item === cancelItem) {
shopMenu.Close(); shopMenu.Close();
} else if (item === saveItem) { } else if (item === saveItem) {
mp.events.callRemote("VehShop_BuyVehicle"); mp.events.callRemote("VehShop_BuyVehicle", targetItem.SelectedItem.Id);
shopMenu.Close(); shopMenu.Close();
} }
}); });

View File

@@ -81,7 +81,7 @@ namespace ReallifeGamemode.Server.Business
public User GetOwner(DatabaseContext dbContext = null) public User GetOwner(DatabaseContext dbContext = null)
{ {
if(dbContext == null) if (dbContext == null)
{ {
using (dbContext = new DatabaseContext()) using (dbContext = new DatabaseContext())
{ {

View File

@@ -37,7 +37,7 @@ namespace ReallifeGamemode.Server.Commands
IItem iItem = InventoryManager.GetItemByName(item); IItem iItem = InventoryManager.GetItemByName(item);
if(iItem == null) if (iItem == null)
{ {
player.SendChatMessage("Dieses Essen existiert nicht."); player.SendChatMessage("Dieses Essen existiert nicht.");
return; return;
@@ -46,13 +46,13 @@ namespace ReallifeGamemode.Server.Commands
List<UserItem> itemList = player.GetUser().GetItems(); List<UserItem> itemList = player.GetUser().GetItems();
UserItem eatItem = itemList.FirstOrDefault(i => i.ItemId == iItem.Id); UserItem eatItem = itemList.FirstOrDefault(i => i.ItemId == iItem.Id);
if(eatItem == null) if (eatItem == null)
{ {
player.SendChatMessage("Du hast dieses Item nicht"); player.SendChatMessage("Du hast dieses Item nicht");
return; return;
} }
if(iItem is IUsableItem usableItemObj) if (iItem is IUsableItem usableItemObj)
{ {
usableItemObj.Use(eatItem); usableItemObj.Use(eatItem);
} }
@@ -339,7 +339,7 @@ namespace ReallifeGamemode.Server.Commands
return; return;
} }
var gotoString = ""; var gotoString = "";
using(var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
foreach (GotoPoint point in dbContext.GotoPoints) foreach (GotoPoint point in dbContext.GotoPoints)
{ {
@@ -659,7 +659,7 @@ namespace ReallifeGamemode.Server.Commands
{ {
GotoPoint p = dbContext.GotoPoints.FirstOrDefault(x => x.Description == location); GotoPoint p = dbContext.GotoPoints.FirstOrDefault(x => x.Description == location);
if(p == null) if (p == null)
{ {
ChatService.Error(player, "Dieser Goto-Punkt existiert nicht."); ChatService.Error(player, "Dieser Goto-Punkt existiert nicht.");
return; return;
@@ -757,7 +757,7 @@ namespace ReallifeGamemode.Server.Commands
} }
Vehicle v = VehicleManager.GetVehicleFromId(vehid); Vehicle v = VehicleManager.GetVehicleFromId(vehid);
if(v == null) if (v == null)
{ {
ChatService.Error(player, "Dieses Fahrzeug existiert nicht."); ChatService.Error(player, "Dieses Fahrzeug existiert nicht.");
return; return;
@@ -864,7 +864,7 @@ namespace ReallifeGamemode.Server.Commands
public void CmdAdminVeh(Client player, string hash, int color1 = 111, int color2 = 111) public void CmdAdminVeh(Client player, string hash, int color1 = 111, int color2 = 111)
{ {
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true) if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true)
//TODO: Bestimmte Autos nur ab Adminlevel 1337, "normale Fahrzeuge" schon ab Adminlevel 3. //TODO: Bestimmte Autos nur ab Adminlevel 1337, "normale Fahrzeuge" schon ab Adminlevel 3.
{ {
ChatService.NotAuthorized(player); ChatService.NotAuthorized(player);
return; return;
@@ -876,10 +876,10 @@ namespace ReallifeGamemode.Server.Commands
return; return;
} }
if(!uint.TryParse(hash, out uint uHash)) if (!uint.TryParse(hash, out uint uHash))
uHash = NAPI.Util.GetHashKey(hash); uHash = NAPI.Util.GetHashKey(hash);
if(!VehicleManager.IsValidHash(uHash)) if (!VehicleManager.IsValidHash(uHash))
{ {
ChatService.Error(player, "Dieses Fahrzeug existiert nicht."); ChatService.Error(player, "Dieses Fahrzeug existiert nicht.");
return; return;
@@ -931,7 +931,7 @@ namespace ReallifeGamemode.Server.Commands
else else
{ {
targetVeh = VehicleManager.GetVehicleFromId(vid); targetVeh = VehicleManager.GetVehicleFromId(vid);
if(targetVeh == null) if (targetVeh == null)
{ {
ChatService.Error(player, "Dieses Fahrzeug existiert nicht."); ChatService.Error(player, "Dieses Fahrzeug existiert nicht.");
return; return;
@@ -939,7 +939,7 @@ namespace ReallifeGamemode.Server.Commands
} }
ServerVehicle veh = VehicleManager.GetServerVehicleFromVehicle(targetVeh); ServerVehicle veh = VehicleManager.GetServerVehicleFromVehicle(targetVeh);
if(veh != null) if (veh != null)
{ {
ChatService.Error(player, "Dieses Fahrzeug wird von einem Server-System benutzt: ~m~" + veh.GetType().Name); ChatService.Error(player, "Dieses Fahrzeug wird von einem Server-System benutzt: ~m~" + veh.GetType().Name);
return; return;
@@ -1155,7 +1155,7 @@ namespace ReallifeGamemode.Server.Commands
using (var context = new DatabaseContext()) using (var context = new DatabaseContext())
{ {
List<UserItem> userItems = context.UserItems.ToList().FindAll(i => i.UserId == target.GetUser().Id); List<UserItem> userItems = context.UserItems.ToList().FindAll(i => i.UserId == target.GetUser().Id);
foreach(var uItem in userItems) foreach (var uItem in userItems)
{ {
invWeight += uItem.Amount * InventoryManager.GetItemById(uItem.ItemId).Gewicht; invWeight += uItem.Amount * InventoryManager.GetItemById(uItem.ItemId).Gewicht;
} }
@@ -1202,7 +1202,7 @@ namespace ReallifeGamemode.Server.Commands
return; return;
} }
if(player.GetData("editmode") == false) if (player.GetData("editmode") == false)
{ {
player.SetData("editmode", true); player.SetData("editmode", true);
player.SendNotification("Edit-Mode ~g~aktiviert"); player.SendNotification("Edit-Mode ~g~aktiviert");
@@ -1433,13 +1433,13 @@ namespace ReallifeGamemode.Server.Commands
return; return;
} }
if(hour > 23 || min > 59 || sec > 59) if (hour > 23 || min > 59 || sec > 59)
{ {
ChatService.Error(player, "Es wurde eine ungültige Zeit eingegeben."); ChatService.Error(player, "Es wurde eine ungültige Zeit eingegeben.");
return; return;
} }
if(hour == -1) if (hour == -1)
{ {
player.SendChatMessage("Es wird nun wieder die Echtzeit genutzt."); player.SendChatMessage("Es wird nun wieder die Echtzeit genutzt.");
TimeManager.StartTimeManager(); TimeManager.StartTimeManager();
@@ -1618,26 +1618,26 @@ namespace ReallifeGamemode.Server.Commands
case "svehicle": case "svehicle":
if (player.IsInVehicle) if (player.IsInVehicle)
{ {
if(option1 == null || option2 == null) if (option1 == null || option2 == null)
{ {
player.SendChatMessage("~m~Benutzung: ~s~/save SVehicle [Carshop Business ID] [Preis]"); player.SendChatMessage("~m~Benutzung: ~s~/save SVehicle [Carshop Business ID] [Preis]");
return; return;
} }
if(!int.TryParse(option1, out int businessId) || !int.TryParse(option2, out int price)) if (!int.TryParse(option1, out int businessId) || !int.TryParse(option2, out int price))
{ {
player.SendChatMessage("~m~Benutzung: ~s~/save SVehicle [Carshop Business ID] [Preis]"); player.SendChatMessage("~m~Benutzung: ~s~/save SVehicle [Carshop Business ID] [Preis]");
return; return;
} }
BusinessBase business = BusinessManager.GetBusiness(businessId); BusinessBase business = BusinessManager.GetBusiness(businessId);
if(business == null) if (business == null)
{ {
ChatService.Error(player, "Dieses Business existiert nicht."); ChatService.Error(player, "Dieses Business existiert nicht.");
return; return;
} }
if(!(business is CarDealerBusinessBase)) if (!(business is CarDealerBusinessBase))
{ {
ChatService.Error(player, "Dieses Business ist kein Fahrzeug-Business."); ChatService.Error(player, "Dieses Business ist kein Fahrzeug-Business.");
return; return;
@@ -1666,23 +1666,23 @@ namespace ReallifeGamemode.Server.Commands
return; return;
} }
switch(type.ToLower()) switch (type.ToLower())
{ {
case "vehicle": case "vehicle":
if(!player.IsInVehicle) if (!player.IsInVehicle)
{ {
player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!"); player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
return; return;
} }
ServerVehicle veh = player.Vehicle.GetServerVehicle(); ServerVehicle veh = player.Vehicle.GetServerVehicle();
if(veh == null) if (veh == null)
{ {
ChatService.Error(player, "Dieses Fahrzeug wird nicht von einem Server-System genutzt."); ChatService.Error(player, "Dieses Fahrzeug wird nicht von einem Server-System genutzt.");
return; return;
} }
if(option.ToLower() != "yes") if (option.ToLower() != "yes")
{ {
player.SendChatMessage("Bist du sicher, dass du folgendes Fahrzeug löschen willst: ~m~" + veh.ToString() + " ~s~?"); player.SendChatMessage("Bist du sicher, dass du folgendes Fahrzeug löschen willst: ~m~" + veh.ToString() + " ~s~?");
player.SendChatMessage("Falls ~g~Ja~s~, nutze ~y~/remove vehicle yes"); player.SendChatMessage("Falls ~g~Ja~s~, nutze ~y~/remove vehicle yes");
@@ -1699,7 +1699,7 @@ namespace ReallifeGamemode.Server.Commands
break; break;
case "goto": case "goto":
if(option == "") if (option == "")
{ {
player.SendChatMessage("~m~Benutzung: ~s~/remove [Goto] [Punkt]"); player.SendChatMessage("~m~Benutzung: ~s~/remove [Goto] [Punkt]");
return; return;
@@ -1712,7 +1712,7 @@ namespace ReallifeGamemode.Server.Commands
using (var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
GotoPoint p = dbContext.GotoPoints.FirstOrDefault(x => x.Description == option); GotoPoint p = dbContext.GotoPoints.FirstOrDefault(x => x.Description == option);
if(p == null) if (p == null)
{ {
ChatService.Error(player, "Dieser Goto-Punkt existiert nicht."); ChatService.Error(player, "Dieser Goto-Punkt existiert nicht.");
return; return;
@@ -2119,26 +2119,26 @@ namespace ReallifeGamemode.Server.Commands
return; return;
} }
if(target.GetUser().BusinessId != null) if (target.GetUser().BusinessId != null)
{ {
ChatService.Error(player, "Der Spieler besitzt momentan schon ein Business: ~o~" + BusinessManager.GetBusiness(target.GetUser().BusinessId).Name); ChatService.Error(player, "Der Spieler besitzt momentan schon ein Business: ~o~" + BusinessManager.GetBusiness(target.GetUser().BusinessId).Name);
return; return;
} }
BusinessBase business = BusinessManager.GetBusiness(businessid); BusinessBase business = BusinessManager.GetBusiness(businessid);
if(business == null) if (business == null)
{ {
ChatService.Error(player, "Dieses Business existiert nicht. ~m~/businesslist"); ChatService.Error(player, "Dieses Business existiert nicht. ~m~/businesslist");
return; return;
} }
if(business.GetOwner() != null) if (business.GetOwner() != null)
{ {
ChatService.Error(player, "Das Business hat momentan noch einen Besitzer: ~o~" + business.GetOwner().Name + "~s~. Entferne diesen Besitzer erst mit ~m~/clearbusiness"); ChatService.Error(player, "Das Business hat momentan noch einen Besitzer: ~o~" + business.GetOwner().Name + "~s~. Entferne diesen Besitzer erst mit ~m~/clearbusiness");
return; return;
} }
using(var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
Entities.User targetUser = target.GetUser(dbContext); Entities.User targetUser = target.GetUser(dbContext);
targetUser.BusinessId = businessid; targetUser.BusinessId = businessid;
@@ -2164,10 +2164,10 @@ namespace ReallifeGamemode.Server.Commands
return; return;
} }
using(var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
User owner = business.GetOwner(dbContext); User owner = business.GetOwner(dbContext);
if(owner == null) if (owner == null)
{ {
ChatService.Error(player, "Dieses Business hat momentan keinen Besitzer."); ChatService.Error(player, "Dieses Business hat momentan keinen Besitzer.");
return; return;
@@ -2226,16 +2226,16 @@ namespace ReallifeGamemode.Server.Commands
option1 = option1.ToString(); option1 = option1.ToString();
if(option1 != "add" && option1 != "remove" && option1 != "setenterposition" && option1 != "setexitposition") if (option1 != "add" && option1 != "remove" && option1 != "setenterposition" && option1 != "setexitposition")
{ {
player.SendChatMessage("~m~Benutzung: ~s~/interior [Add / Remove / SetEnterPosition / SetExitPosition] [Name]"); player.SendChatMessage("~m~Benutzung: ~s~/interior [Add / Remove / SetEnterPosition / SetExitPosition] [Name]");
return; return;
} }
switch(option1) switch (option1)
{ {
case "add": case "add":
using(var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
Interior interiorAdd = new Interior Interior interiorAdd = new Interior
{ {
@@ -2249,13 +2249,13 @@ namespace ReallifeGamemode.Server.Commands
case "remove": case "remove":
using (var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
if(!int.TryParse(option2, out int intId)) if (!int.TryParse(option2, out int intId))
{ {
ChatService.Error(player, "Es muss eine Nummer angegeben werden."); ChatService.Error(player, "Es muss eine Nummer angegeben werden.");
return; return;
} }
Interior interiorRemove = InteriorManager.GetInteriorById(intId, dbContext); Interior interiorRemove = InteriorManager.GetInteriorById(intId, dbContext);
if(interiorRemove == null) if (interiorRemove == null)
{ {
ChatService.Error(player, "Dieses Interior existiert nicht."); ChatService.Error(player, "Dieses Interior existiert nicht.");
return; return;

View File

@@ -267,7 +267,7 @@ namespace ReallifeGamemode.Server.Commands
[Command("duty", "~m~Benutzung: ~s~/duty")] [Command("duty", "~m~Benutzung: ~s~/duty")]
public void CmdFactionDuty(Client player) public void CmdFactionDuty(Client player)
{ {
if(player.GetData("duty") == false) if (player.GetData("duty") == false)
{ {
player.SetData("duty", true); player.SetData("duty", true);
player.SendNotification("~g~Du bist jetzt im Dienst!", false); player.SendNotification("~g~Du bist jetzt im Dienst!", false);

View File

@@ -17,11 +17,11 @@ namespace ReallifeGamemode.Server.Commands
option = option.ToLower(); option = option.ToLower();
switch(option) switch (option)
{ {
case "invite": case "invite":
{ {
if(!player.HasData("accept_invite")) if (!player.HasData("accept_invite"))
{ {
ChatService.Error(player, "Du hast keine Einladung in eine Fraktion erhalten."); ChatService.Error(player, "Du hast keine Einladung in eine Fraktion erhalten.");
return; return;
@@ -29,11 +29,11 @@ namespace ReallifeGamemode.Server.Commands
player.ResetData("accept_data"); player.ResetData("accept_data");
using(var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
Client leader = NAPI.Player.GetPlayerFromHandle((NetHandle)player.GetData("accept_invite")); Client leader = NAPI.Player.GetPlayerFromHandle((NetHandle)player.GetData("accept_invite"));
if(leader == null) if (leader == null)
{ {
ChatService.Error(player, "Die Einladung ist abgelaufen."); ChatService.Error(player, "Die Einladung ist abgelaufen.");
return; return;
@@ -68,9 +68,9 @@ namespace ReallifeGamemode.Server.Commands
Vehicle pVeh = player.Vehicle; Vehicle pVeh = player.Vehicle;
if(pVeh.GetServerVehicle() is ServerVehicle veh) if (pVeh.GetServerVehicle() is ServerVehicle veh)
{ {
if(player.GetUser().IsAdmin(AdminLevel.SUPPORTER)) if (player.GetUser().IsAdmin(AdminLevel.SUPPORTER))
{ {
player.SendChatMessage("~m~" + ((VehicleHash)pVeh.Model) + " | " + veh.ToString() + " | Farbe 1: " + pVeh.PrimaryColor + " | Farbe 2: " + pVeh.SecondaryColor + " | ID: " + pVeh.Handle.Value); player.SendChatMessage("~m~" + ((VehicleHash)pVeh.Model) + " | " + veh.ToString() + " | Farbe 1: " + pVeh.PrimaryColor + " | Farbe 2: " + pVeh.SecondaryColor + " | ID: " + pVeh.Handle.Value);
} }

View File

@@ -17,7 +17,8 @@ namespace ReallifeGamemode.Server.Entities
[Key] [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; } public int Id { get; set; }
public int Balance { public int Balance
{
get => _balance; get => _balance;
set set
{ {

View File

@@ -1,5 +1,8 @@
using System; using ReallifeGamemode.Server.Models;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text; using System.Text;
namespace ReallifeGamemode.Server.Entities namespace ReallifeGamemode.Server.Entities
@@ -8,6 +11,17 @@ namespace ReallifeGamemode.Server.Entities
{ {
public Group Group { get; set; } public Group Group { get; set; }
[ForeignKey("Group")]
public int? GroupId { get; set; }
public Group GetGroup()
{
using (var dbContext = new DatabaseContext())
{
return dbContext.Groups.Where(g => g.Id == GroupId).FirstOrDefault();
}
}
public override string ToString() public override string ToString()
{ {
return "Gruppen Fahrzeug | Gruppe: " + Group.Name; return "Gruppen Fahrzeug | Gruppe: " + Group.Name;

View File

@@ -48,7 +48,7 @@ namespace ReallifeGamemode.Server.Entities
string numberplate = $"{this.Id}"; string numberplate = $"{this.Id}";
if(this is FactionVehicle fV) if (this is FactionVehicle fV)
{ {
numberplate = $"F{fV.FactionId} " + numberplate; numberplate = $"F{fV.FactionId} " + numberplate;
} }
@@ -58,7 +58,7 @@ namespace ReallifeGamemode.Server.Entities
numberplate = $"U{uV.UserId} " + numberplate; numberplate = $"U{uV.UserId} " + numberplate;
} }
if(this is ShopVehicle sV) if (this is ShopVehicle sV)
{ {
numberplate = "Shop"; numberplate = "Shop";
VehicleStreaming.SetLockStatus(veh, false); VehicleStreaming.SetLockStatus(veh, false);
@@ -66,6 +66,11 @@ namespace ReallifeGamemode.Server.Entities
veh.Position.Add(new Vector3(0, 0, 1.3)), 10.0f, 1f, 1, new Color(255, 255, 255)); veh.Position.Add(new Vector3(0, 0, 1.3)), 10.0f, 1f, 1, new Color(255, 255, 255));
} }
if (this is GroupVehicle gV)
{
numberplate = $"{gV.GroupId}" + numberplate;
}
veh.NumberPlate = numberplate; veh.NumberPlate = numberplate;
return veh; return veh;

View File

@@ -60,6 +60,8 @@ namespace ReallifeGamemode.Server.Entities
public Group Group { get; set; } public Group Group { get; set; }
public GroupRank GroupRank { get; set; }
public FactionRank GetFactionRank() public FactionRank GetFactionRank()
{ {
using (var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
@@ -128,7 +130,7 @@ namespace ReallifeGamemode.Server.Entities
public List<UserItem> GetItems() public List<UserItem> GetItems()
{ {
using(var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
return dbContext.UserItems.ToList().FindAll(u => u.UserId == this.Id); return dbContext.UserItems.ToList().FindAll(u => u.UserId == this.Id);
} }

View File

@@ -28,12 +28,13 @@ namespace ReallifeGamemode.Server.Entities
public string Bic { get; set; } public string Bic { get; set; }
[StringLength(32)] [StringLength(32)]
public string Iban { get; set; } public string Iban { get; set; }
public int Balance { public int Balance
{
get => _balance; get => _balance;
set set
{ {
_balance = value; _balance = value;
using(var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
ClientService.GetClientByNameOrId(dbContext.Users.First(u => u.Id == UserId).Name).TriggerEvent("updateMoney", value); ClientService.GetClientByNameOrId(dbContext.Users.First(u => u.Id == UserId).Name).TriggerEvent("updateMoney", value);
} }

View File

@@ -24,7 +24,7 @@ namespace ReallifeGamemode.Server.Events
using (var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
if(!dbContext.WhitelistEntries.Any(w => w.SocialClubName.ToLower() == player.SocialClubName.ToLower())) if (!dbContext.WhitelistEntries.Any(w => w.SocialClubName.ToLower() == player.SocialClubName.ToLower()))
{ {
string msg2 = "~m~*** " + player.Name + "[" + player.SocialClubName + "] (" + player.Address + ") hat versucht, sich einzuloggen, steht aber nicht auf der Whitelist."; string msg2 = "~m~*** " + player.Name + "[" + player.SocialClubName + "] (" + player.Address + ") hat versucht, sich einzuloggen, steht aber nicht auf der Whitelist.";
ChatService.BroadcastAdmin(msg2, AdminLevel.ADMIN); ChatService.BroadcastAdmin(msg2, AdminLevel.ADMIN);
@@ -69,7 +69,7 @@ namespace ReallifeGamemode.Server.Events
var timeStamp = bannedUser.UntilDateTime; var timeStamp = bannedUser.UntilDateTime;
int unixTimestamp = (int)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; int unixTimestamp = (int)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
if(timeStamp > unixTimestamp) if (timeStamp > unixTimestamp)
{ {
player.SendChatMessage("Du bist noch bis zum !{#FF4040}" + dt.AddSeconds(timeStamp).ToLocalTime() + " Uhr ~s~gebannt. [" + bannedUser.Reason + "]"); player.SendChatMessage("Du bist noch bis zum !{#FF4040}" + dt.AddSeconds(timeStamp).ToLocalTime() + " Uhr ~s~gebannt. [" + bannedUser.Reason + "]");
player.Kick(); player.Kick();

View File

@@ -67,7 +67,7 @@ namespace ReallifeGamemode.Server.Events
killerPosY = killer.Position.Y; killerPosY = killer.Position.Y;
killerPosZ = killer.Position.Z; killerPosZ = killer.Position.Z;
killerHeading = killer.Heading; killerHeading = killer.Heading;
if(player != killer) if (player != killer)
{ {
string message = "~y~[HINWEIS]: " + killer.Name + " hat " + player.Name + " getötet (" + NAPI.Player.GetPlayerCurrentWeapon(killer) + ")"; string message = "~y~[HINWEIS]: " + killer.Name + " hat " + player.Name + " getötet (" + NAPI.Player.GetPlayerCurrentWeapon(killer) + ")";
ChatService.BroadcastAdmin(message, AdminLevel.ADMIN); ChatService.BroadcastAdmin(message, AdminLevel.ADMIN);
@@ -91,9 +91,20 @@ namespace ReallifeGamemode.Server.Events
using (var userDeath = new DatabaseContext()) using (var userDeath = new DatabaseContext())
{ {
var dead = new Entities.Logs.Death { VictimId = player.GetUser().Id, KillerId = killerId, KillerPositionX = killerPosX, KillerPositionY = killerPosY, var dead = new Entities.Logs.Death
KillerPositionZ = killerPosZ, KillerHeading = killerHeading, VictimPositionX = player.Position.X, VictimPositionY = player.Position.Y, {
VictimPositionZ = player.Position.Z, VictimHeading = player.Heading, CauseOfDeath = reason.ToString()}; VictimId = player.GetUser().Id,
KillerId = killerId,
KillerPositionX = killerPosX,
KillerPositionY = killerPosY,
KillerPositionZ = killerPosZ,
KillerHeading = killerHeading,
VictimPositionX = player.Position.X,
VictimPositionY = player.Position.Y,
VictimPositionZ = player.Position.Z,
VictimHeading = player.Heading,
CauseOfDeath = reason.ToString()
};
userDeath.DeathLogs.Add(dead); userDeath.DeathLogs.Add(dead);
userDeath.SaveChanges(); userDeath.SaveChanges();
} }

View File

@@ -39,7 +39,7 @@ namespace ReallifeGamemode.Server.Events
var user = player.GetUser(saveUser); var user = player.GetUser(saveUser);
Vector3 pos = player.Position; Vector3 pos = player.Position;
if(!float.IsNaN(pos.X) && !float.IsNaN(pos.Y) && !float.IsNaN(pos.Z)) if (!float.IsNaN(pos.X) && !float.IsNaN(pos.Y) && !float.IsNaN(pos.Z))
{ {
user.PositionX = pos.X; user.PositionX = pos.X;
user.PositionY = pos.Y; user.PositionY = pos.Y;

View File

@@ -23,7 +23,7 @@ namespace ReallifeGamemode.Server.Events
if (vehicle.GetServerVehicle() is FactionVehicle veh) if (vehicle.GetServerVehicle() is FactionVehicle veh)
{ {
if(veh.FactionId != player.GetUser().FactionId) if (veh.FactionId != player.GetUser().FactionId)
{ {
player.StopAnimation(); player.StopAnimation();
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht benutzen!", true); player.SendNotification("~r~Du darfst dieses Fahrzeug nicht benutzen!", true);

View File

@@ -15,7 +15,7 @@ namespace ReallifeGamemode.Server.Events
public void OnFactionRanksEdit(Client player, string jsonData) public void OnFactionRanksEdit(Client player, string jsonData)
{ {
FactionRankHelper helper = JsonConvert.DeserializeObject<FactionRankHelper>(jsonData); FactionRankHelper helper = JsonConvert.DeserializeObject<FactionRankHelper>(jsonData);
using(var context = new DatabaseContext()) using (var context = new DatabaseContext())
{ {
Entities.Faction f = context.Factions.FirstOrDefault(x => x.Id == helper.FactionId); Entities.Faction f = context.Factions.FirstOrDefault(x => x.Id == helper.FactionId);
if (f == null) if (f == null)
@@ -31,10 +31,10 @@ namespace ReallifeGamemode.Server.Events
List<int> found = new List<int>(); List<int> found = new List<int>();
for(int i = 0; i < ranks.Count; i++) for (int i = 0; i < ranks.Count; i++)
{ {
Rank newRank = ranks[i]; Rank newRank = ranks[i];
if(newRank.Id == 0) if (newRank.Id == 0)
{ {
context.FactionRanks.Add(new FactionRank context.FactionRanks.Add(new FactionRank
{ {
@@ -52,9 +52,9 @@ namespace ReallifeGamemode.Server.Events
} }
} }
for(int i = 0; i < factionRanks.Count; i++) for (int i = 0; i < factionRanks.Count; i++)
{ {
if(!found.Contains(factionRanks[i].Id)) if (!found.Contains(factionRanks[i].Id))
{ {
context.FactionRanks.Remove(factionRanks[i]); context.FactionRanks.Remove(factionRanks[i]);
} }

View File

@@ -92,7 +92,7 @@ namespace ReallifeGamemode.Server.Events
} }
} }
[RemoteEvent("keyPress:E")] [RemoteEvent("keyPress:E")]
public void KeyPressE(Client player) public void KeyPressE(Client player)
{ {
if (!player.IsLoggedIn()) return; if (!player.IsLoggedIn()) return;
@@ -113,9 +113,9 @@ namespace ReallifeGamemode.Server.Events
if (player.GetUser().FactionId == 2) //Fire Department if (player.GetUser().FactionId == 2) //Fire Department
{ {
int medicCount = 0; int medicCount = 0;
foreach(Client c in NAPI.Pools.GetAllPlayers()) foreach (Client c in NAPI.Pools.GetAllPlayers())
{ {
if((c.GetUser()?.Faction.Id ?? 0) == 2) if ((c.GetUser()?.Faction.Id ?? 0) == 2)
{ {
medicCount++; medicCount++;
} }
@@ -134,15 +134,15 @@ namespace ReallifeGamemode.Server.Events
{ {
List<CharacterCloth> clothes = context.CharacterClothes.Where(u => u.UserId == user.Id && u.Duty == true).ToList(); List<CharacterCloth> clothes = context.CharacterClothes.Where(u => u.UserId == user.Id && u.Duty == true).ToList();
foreach(var cloth in clothes) foreach (var cloth in clothes)
{ {
if(cloth.SlotType == 0) if (cloth.SlotType == 0)
{ {
player.SetClothes(cloth.SlotId, cloth.ClothId, 0); player.SetClothes(cloth.SlotId, cloth.ClothId, 0);
} }
else else
{ {
if(cloth.ClothId != -1) if (cloth.ClothId != -1)
{ {
player.SetAccessories(cloth.SlotId, cloth.ClothId, 0); player.SetAccessories(cloth.SlotId, cloth.ClothId, 0);
} }
@@ -178,7 +178,7 @@ namespace ReallifeGamemode.Server.Events
List<Client> players = NAPI.Pools.GetAllPlayers(); List<Client> players = NAPI.Pools.GetAllPlayers();
List<ListPlayer> ListPlayers = new List<ListPlayer>(); List<ListPlayer> ListPlayers = new List<ListPlayer>();
foreach(Client listPlayer in players) foreach (Client listPlayer in players)
{ {
var lPlayer = new ListPlayer var lPlayer = new ListPlayer
{ {
@@ -210,9 +210,9 @@ namespace ReallifeGamemode.Server.Events
using (var context = new DatabaseContext()) using (var context = new DatabaseContext())
{ {
List<DutyCloth> clothes = context.DutyClothes.ToList().FindAll(c => c.FactionId == user.FactionId && c.Gender == user.GetCharacter().Gender); List<DutyCloth> clothes = context.DutyClothes.ToList().FindAll(c => c.FactionId == user.FactionId && c.Gender == user.GetCharacter().Gender);
foreach(var cloth in clothes) foreach (var cloth in clothes)
{ {
if(cloth.SlotType == 1) if (cloth.SlotType == 1)
{ {
if (cloth.ClothId != -1) if (cloth.ClothId != -1)
{ {
@@ -263,13 +263,13 @@ namespace ReallifeGamemode.Server.Events
if (player.IsInVehicle && player.VehicleSeat == -1) if (player.IsInVehicle && player.VehicleSeat == -1)
{ {
ServerVehicle veh = player.Vehicle.GetServerVehicle(); ServerVehicle veh = player.Vehicle.GetServerVehicle();
if(veh != null) if (veh != null)
{ {
if(veh is FactionVehicle fV && fV.FactionId != player.GetUser()?.FactionId && (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? false)) if (veh is FactionVehicle fV && fV.FactionId != player.GetUser()?.FactionId && (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? false))
{ {
return; return;
} }
else if(veh is ShopVehicle) else if (veh is ShopVehicle)
{ {
return; return;
} }

View File

@@ -22,7 +22,7 @@ namespace ReallifeGamemode.Server.Events
{ {
var users = NAPI.Pools.GetAllPlayers(); var users = NAPI.Pools.GetAllPlayers();
foreach(Client user in users) foreach (Client user in users)
{ {
using (var saveUsers = new DatabaseContext()) using (var saveUsers = new DatabaseContext())
{ {

View File

@@ -139,7 +139,7 @@ namespace ReallifeGamemode.Server.Events
foreach (var cloth in charClothes) foreach (var cloth in charClothes)
{ {
if(cloth.SlotType == 1) if (cloth.SlotType == 1)
{ {
player.SetAccessories(cloth.SlotId, cloth.ClothId, 0); player.SetAccessories(cloth.SlotId, cloth.ClothId, 0);
} }

View File

@@ -74,9 +74,9 @@ namespace ReallifeGamemode.Server.Events
return; return;
} }
} }
else if(sV is UserVehicle uV) else if (sV is UserVehicle uV)
{ {
if(uV.UserId != u.Id && !u.IsAdmin(AdminLevel.ADMIN3)) if (uV.UserId != u.Id && !u.IsAdmin(AdminLevel.ADMIN3))
{ {
return; return;
} }

View File

@@ -15,7 +15,7 @@ namespace ReallifeGamemode.Server.Extensions
/// <returns></returns> /// <returns></returns>
public static string GetName(this AdminLevel level) public static string GetName(this AdminLevel level)
{ {
switch(level) switch (level)
{ {
case SUPPORTER: case SUPPORTER:
return "Supporter"; return "Supporter";

View File

@@ -25,7 +25,7 @@ namespace ReallifeGamemode.Server.Extensions
public static User GetUser(this Client client, DatabaseContext context = null) public static User GetUser(this Client client, DatabaseContext context = null)
{ {
if (!client.IsLoggedIn()) return null; if (!client.IsLoggedIn()) return null;
if(context == null) if (context == null)
{ {
using (context = new DatabaseContext()) using (context = new DatabaseContext())
{ {
@@ -33,7 +33,8 @@ namespace ReallifeGamemode.Server.Extensions
.Users .Users
.Include(u => u.Faction) .Include(u => u.Faction)
.Include(u => u.FactionRank) .Include(u => u.FactionRank)
.FirstOrDefault(u => u.Name == client.Name); .Where(u => u.Name == client.Name)
.FirstOrDefault();
} }
} }
else else
@@ -42,7 +43,8 @@ namespace ReallifeGamemode.Server.Extensions
.Users .Users
.Include(u => u.Faction) .Include(u => u.Faction)
.Include(u => u.FactionRank) .Include(u => u.FactionRank)
.FirstOrDefault(u => u.Name == client.Name); .Where(u => u.Name == client.Name)
.FirstOrDefault();
} }
} }

View File

@@ -40,9 +40,9 @@ namespace ReallifeGamemode.Server.Inventory
var user = player.GetUser(); var user = player.GetUser();
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++)
{ {
if(invWeight + (i * nearestItem.Gewicht) > 40000) if (invWeight + (i * nearestItem.Gewicht) > 40000)
{ {
break; break;
} }
@@ -51,13 +51,13 @@ namespace ReallifeGamemode.Server.Inventory
itemsToAdd = i; itemsToAdd = i;
} }
} }
if(itemsToAdd < 1) if (itemsToAdd < 1)
{ {
player.SendNotification("~r~Du hast keinen Platz im Inventar!", false); player.SendNotification("~r~Du hast keinen Platz im Inventar!", false);
} }
else else
{ {
if(existingItem != null) if (existingItem != null)
{ {
using (var context = new DatabaseContext()) using (var context = new DatabaseContext())
{ {

View File

@@ -24,7 +24,7 @@ namespace ReallifeGamemode.Server.Inventory.Items
Client player = uItem.GetUser().Client; Client player = uItem.GetUser().Client;
int amountToAdd = HpAmount; int amountToAdd = HpAmount;
if(player.Health + amountToAdd > 100) if (player.Health + amountToAdd > 100)
{ {
amountToAdd = 100 - player.Health; amountToAdd = 100 - player.Health;
} }

View File

@@ -28,7 +28,7 @@ namespace ReallifeGamemode.Server.Managers
{ {
if (currentATM.Sprite == 500) if (currentATM.Sprite == 500)
{ {
if(dbContext.ATMs.FirstOrDefault(a => a.Id == currentATM.Id) == null) if (dbContext.ATMs.FirstOrDefault(a => a.Id == currentATM.Id) == null)
{ {
var dataSet = new ATM var dataSet = new ATM
{ {
@@ -46,7 +46,7 @@ namespace ReallifeGamemode.Server.Managers
} }
} }
} }
if(addedATMs > 0) if (addedATMs > 0)
{ {
NAPI.Util.ConsoleOutput(addedATMs + " Geldautomaten hinzugefügt"); NAPI.Util.ConsoleOutput(addedATMs + " Geldautomaten hinzugefügt");
} }
@@ -94,7 +94,7 @@ namespace ReallifeGamemode.Server.Managers
using (var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
var checkATM = dbContext.ATMs.FirstOrDefault(a => a.Id == nearATM); var checkATM = dbContext.ATMs.FirstOrDefault(a => a.Id == nearATM);
if(checkATM.Balance < inputField1) if (checkATM.Balance < inputField1)
{ {
//TODO im CEFBrowser anzeigen client.SendChatMessage("Nicht genügend Geld im Automaten. Maximal Verfügbar: " + checkATM.Balance); //TODO im CEFBrowser anzeigen client.SendChatMessage("Nicht genügend Geld im Automaten. Maximal Verfügbar: " + checkATM.Balance);
client.TriggerEvent("SERVER:WORLD_INTERACTION:ATM_ERROR", 0, checkATM.Balance); client.TriggerEvent("SERVER:WORLD_INTERACTION:ATM_ERROR", 0, checkATM.Balance);

View File

@@ -1,4 +1,5 @@
using GTANetworkAPI; using GTANetworkAPI;
using Newtonsoft.Json;
using ReallifeGamemode.Server.Business; using ReallifeGamemode.Server.Business;
using ReallifeGamemode.Server.Entities; using ReallifeGamemode.Server.Entities;
using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Extensions;
@@ -51,7 +52,7 @@ namespace ReallifeGamemode.Server.Managers
public void BusinessDepositMoney(Client player, int amount) public void BusinessDepositMoney(Client player, int amount)
{ {
User user = player.GetUser(); User user = player.GetUser();
if(user == null) if (user == null)
{ {
return; return;
} }
@@ -70,7 +71,8 @@ namespace ReallifeGamemode.Server.Managers
player.SendNotification("~r~Du hast nicht genug Geld"); player.SendNotification("~r~Du hast nicht genug Geld");
return; return;
} }
else */if(result == TransactionResult.SUCCESS) else */
if (result == TransactionResult.SUCCESS)
{ {
player.TriggerEvent("business_updateMoney", playerBusiness.GetBankAccount().Balance.ToMoneyString()); player.TriggerEvent("business_updateMoney", playerBusiness.GetBankAccount().Balance.ToMoneyString());
player.SendNotification("~g~Du hast erfolgreich ~s~" + amount.ToMoneyString() + " ~g~ überwiesen"); player.SendNotification("~g~Du hast erfolgreich ~s~" + amount.ToMoneyString() + " ~g~ überwiesen");
@@ -114,14 +116,24 @@ namespace ReallifeGamemode.Server.Managers
{ {
ServerVehicle sVeh = veh.GetServerVehicle(); ServerVehicle sVeh = veh.GetServerVehicle();
if (sVeh == null) return; if (sVeh == null) return;
if(!(sVeh is ShopVehicle)) return; if (!(sVeh is ShopVehicle)) return;
ShopVehicle shopVehicle = (ShopVehicle)sVeh; ShopVehicle shopVehicle = (ShopVehicle)sVeh;
player.TriggerEvent("ShopVehicle_OpenMenu", GetBusiness(shopVehicle.BusinessId).Name, shopVehicle.Price);
List<string> availableTargets = new List<string>()
{
"Spieler (dich selbst)"
};
if (player.GetUser().FactionLeader && !player.GetUser().Faction.StateOwned) availableTargets.Add("Fraktion");
if (player.GetUser().GroupRank == GroupRank.OWNER) availableTargets.Add("Gruppe");
player.TriggerEvent("ShopVehicle_OpenMenu", GetBusiness(shopVehicle.BusinessId).Name, shopVehicle.Price, availableTargets.ToArray());
} }
[RemoteEvent("VehShop_BuyVehicle")] [RemoteEvent("VehShop_BuyVehicle")]
public void CarDealerBusiness_BuyVehicle(Client player) public void CarDealerBusiness_BuyVehicle(Client player, string target)
{ {
player.SendChatMessage(target);
ServerVehicle sVeh = player.Vehicle?.GetServerVehicle(); ServerVehicle sVeh = player.Vehicle?.GetServerVehicle();
if (sVeh == null) return; if (sVeh == null) return;
if (!(sVeh is ShopVehicle)) return; if (!(sVeh is ShopVehicle)) return;
@@ -129,7 +141,7 @@ namespace ReallifeGamemode.Server.Managers
int price = shopVehicle.Price; int price = shopVehicle.Price;
CarDealerBusinessBase business = GetBusiness(shopVehicle.BusinessId) as CarDealerBusinessBase; CarDealerBusinessBase business = GetBusiness(shopVehicle.BusinessId) as CarDealerBusinessBase;
TransactionResult result = BankManager.TransferMoney(player.GetUser(), business, price, "Auto gekauft"); TransactionResult result = BankManager.TransferMoney(player.GetUser(), business, price, "Auto gekauft");
if(result == TransactionResult.SENDER_NOT_ENOUGH_MONEY) if (result == TransactionResult.SENDER_NOT_ENOUGH_MONEY)
{ {
player.SendNotification("~r~Du hast nicht genug Geld: " + price.ToMoneyString()); player.SendNotification("~r~Du hast nicht genug Geld: " + price.ToMoneyString());
return; return;
@@ -153,7 +165,7 @@ namespace ReallifeGamemode.Server.Managers
Active = true, Active = true,
}; };
using(var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
dbContext.UserVehicles.Add(newVeh); dbContext.UserVehicles.Add(newVeh);
dbContext.SaveChanges(); dbContext.SaveChanges();

View File

@@ -21,7 +21,7 @@ namespace ReallifeGamemode.Server.Managers
{ {
using (var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
foreach(Door door in dbContext.Doors) foreach (Door door in dbContext.Doors)
{ {
_doorColShapes[door.Id] = NAPI.ColShape.CreateSphereColShape(door.Position, 30f); _doorColShapes[door.Id] = NAPI.ColShape.CreateSphereColShape(door.Position, 30f);
} }
@@ -30,7 +30,7 @@ namespace ReallifeGamemode.Server.Managers
public static void ReloadDoors() public static void ReloadDoors()
{ {
foreach(var doorPair in _doorColShapes) foreach (var doorPair in _doorColShapes)
{ {
doorPair.Value.Entity<ColShape>().Delete(); doorPair.Value.Entity<ColShape>().Delete();
} }
@@ -47,9 +47,9 @@ namespace ReallifeGamemode.Server.Managers
IQueryable<Door> NearDoors = dbContext.Doors.Where(d => d.Position.DistanceTo(player.Position) <= d.Radius); IQueryable<Door> NearDoors = dbContext.Doors.Where(d => d.Position.DistanceTo(player.Position) <= d.Radius);
foreach (Door d in NearDoors) foreach (Door d in NearDoors)
{ {
if(!user.IsAdmin(AdminLevel.ADMIN) && (d.FactionId != user.FactionId || d.FactionId == null)) if (!user.IsAdmin(AdminLevel.ADMIN) && (d.FactionId != user.FactionId || d.FactionId == null))
{ {
string lockState = "~r~Du hast kein Recht diese T\u00fcr " + (d.Locked == true ? "auf" : "ab") + "zuschlie\u00dfen!"; string lockState = "~r~Du hast kein Recht diese T\u00fcr " + (d.Locked == true ? "auf" : "ab") + "zuschlie\u00dfen!";
player.SendNotification(lockState, true); player.SendNotification(lockState, true);
continue; continue;
} }
@@ -69,11 +69,11 @@ namespace ReallifeGamemode.Server.Managers
[ServerEvent(Event.PlayerEnterColshape)] [ServerEvent(Event.PlayerEnterColshape)]
public void DoorManagerPlayerEnterColShapeEvent(ColShape colShape, Client player) public void DoorManagerPlayerEnterColShapeEvent(ColShape colShape, Client player)
{ {
if(_doorColShapes.ContainsValue(colShape.Handle)) if (_doorColShapes.ContainsValue(colShape.Handle))
{ {
int doorId = _doorColShapes.Where(d => d.Value.Value == colShape.Handle.Value).FirstOrDefault().Key; int doorId = _doorColShapes.Where(d => d.Value.Value == colShape.Handle.Value).FirstOrDefault().Key;
using(var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
Door door = dbContext.Doors.Where(d => d.Id == doorId).First(); Door door = dbContext.Doors.Where(d => d.Id == doorId).First();
player.TriggerEvent("changeDoorState", door.Model, door.X, door.Y, door.Z, (door.Locked ? 1 : 0), 0.0f, 0.0f, 0.0f); player.TriggerEvent("changeDoorState", door.Model, door.X, door.Y, door.Z, (door.Locked ? 1 : 0), 0.0f, 0.0f, 0.0f);

View File

@@ -17,7 +17,7 @@ namespace ReallifeGamemode.Server.Managers
public static Interior GetInteriorByName(string name, DatabaseContext dbContext = null) public static Interior GetInteriorByName(string name, DatabaseContext dbContext = null)
{ {
if(dbContext == null) if (dbContext == null)
{ {
using (dbContext = new DatabaseContext()) using (dbContext = new DatabaseContext())
{ {
@@ -114,12 +114,12 @@ namespace ReallifeGamemode.Server.Managers
{ {
int enterId = GetInteriorIdFromEnterColShape(colShape); int enterId = GetInteriorIdFromEnterColShape(colShape);
int exitId = GetInteriorIdFromExitColShape(colShape); int exitId = GetInteriorIdFromExitColShape(colShape);
if(enterId != 0) if (enterId != 0)
{ {
Interior interior = GetInteriorById(enterId); Interior interior = GetInteriorById(enterId);
player.TriggerEvent("InteriorManager_ShowHelpText", interior.Name, interior.Id, 0); player.TriggerEvent("InteriorManager_ShowHelpText", interior.Name, interior.Id, 0);
} }
else if(exitId != 0) else if (exitId != 0)
{ {
Interior interior = GetInteriorById(exitId); Interior interior = GetInteriorById(exitId);
player.TriggerEvent("InteriorManager_ShowHelpText", interior.Name, interior.Id, 1); player.TriggerEvent("InteriorManager_ShowHelpText", interior.Name, interior.Id, 1);
@@ -129,7 +129,7 @@ namespace ReallifeGamemode.Server.Managers
[ServerEvent(Event.PlayerExitColshape)] [ServerEvent(Event.PlayerExitColshape)]
public void InteriorManagerPlayerExitColshapeEvent(ColShape colShape, Client player) public void InteriorManagerPlayerExitColshapeEvent(ColShape colShape, Client player)
{ {
if(GetInteriorIdFromEnterColShape(colShape) != 0 || GetInteriorIdFromExitColShape(colShape) != 0) if (GetInteriorIdFromEnterColShape(colShape) != 0 || GetInteriorIdFromExitColShape(colShape) != 0)
{ {
player.TriggerEvent("InteriorManager_ClearHelpText"); player.TriggerEvent("InteriorManager_ClearHelpText");
} }

View File

@@ -303,10 +303,10 @@ namespace ReallifeGamemode.Server.Managers
{ {
Vector3 dropPosition = ClientExtension.GetPositionFromPlayer(player, 0.6f, 0); Vector3 dropPosition = ClientExtension.GetPositionFromPlayer(player, 0.6f, 0);
dropPosition.Z -= 0.8f; dropPosition.Z -= 0.8f;
//new Vector3(player.Position.X, player.Position.Y, player.Position.Z - 0.8f); //new Vector3(player.Position.X, player.Position.Y, player.Position.Z - 0.8f);
Random r = new Random(); Random r = new Random();
GTANetworkAPI.Object grndObject = NAPI.Object.CreateObject(3777723516, dropPosition, new Vector3(0, 0, r.Next(0, 360)), 0); GTANetworkAPI.Object grndObject = NAPI.Object.CreateObject(3777723516, dropPosition, new Vector3(0, 0, r.Next(0, 360)), 0);
GroundItem grndItem = new GroundItem { ItemId = iItem.Id, Amount = amount, Position = dropPosition}; GroundItem grndItem = new GroundItem { ItemId = iItem.Id, Amount = amount, Position = dropPosition };
TextLabel grndTxtLbl = NAPI.TextLabel.CreateTextLabel(iItem.Name + " ~s~(~y~" + amount + "~s~)", dropPosition, 5, 0.5f, 4, new Color(255, 255, 255), false, 0); TextLabel grndTxtLbl = NAPI.TextLabel.CreateTextLabel(iItem.Name + " ~s~(~y~" + amount + "~s~)", dropPosition, 5, 0.5f, 4, new Color(255, 255, 255), false, 0);
GroundItem.AddGroundItem(grndItem, grndObject, grndTxtLbl); GroundItem.AddGroundItem(grndItem, grndObject, grndTxtLbl);
fItem.Amount -= amount; fItem.Amount -= amount;

View File

@@ -21,14 +21,14 @@ namespace ReallifeGamemode.Server.Managers
{ {
foreach (SavedBlip b in loadData.Blips) foreach (SavedBlip b in loadData.Blips)
{ {
if(b.Active == true) if (b.Active == true)
{ {
NAPI.Blip.CreateBlip((uint) b.Sprite, new Vector3(b.PositionX, b.PositionY, b.PositionZ), b.Scale, NAPI.Blip.CreateBlip((uint)b.Sprite, new Vector3(b.PositionX, b.PositionY, b.PositionZ), b.Scale,
b.Color, b.Name, b.Alpha, b.DrawDistance, b.ShortRange, (short) b.Rotation, b.Dimension); b.Color, b.Name, b.Alpha, b.DrawDistance, b.ShortRange, (short)b.Rotation, b.Dimension);
} }
} }
foreach(ServerVehicle veh in loadData.ServerVehicles) foreach (ServerVehicle veh in loadData.ServerVehicles)
{ {
if (!veh.Active) continue; if (!veh.Active) continue;

View File

@@ -25,7 +25,7 @@ namespace ReallifeGamemode.Server.Managers
foreach (DutyPoint d in DutyPoints) foreach (DutyPoint d in DutyPoints)
{ {
NAPI.Marker.CreateMarker(1, new Vector3(d.Position.X, d.Position.Y, d.Position.Z - 2), new Vector3(d.Position.X, d.Position.Y, d.Position.Z + 1), NAPI.Marker.CreateMarker(1, new Vector3(d.Position.X, d.Position.Y, d.Position.Z - 2), new Vector3(d.Position.X, d.Position.Y, d.Position.Z + 1),
new Vector3(0,0,0), 3, new Color(255, 255, 255, 50), false, 0); new Vector3(0, 0, 0), 3, new Color(255, 255, 255, 50), false, 0);
NAPI.TextLabel.CreateTextLabel("Stempeluhr - Dr\u00fccke ~y~E\n~s~Dienstkleidung - Dr\u00fccke ~y~K", d.Position, 7, 1, 0, new Color(255, 255, 255), false, 0); NAPI.TextLabel.CreateTextLabel("Stempeluhr - Dr\u00fccke ~y~E\n~s~Dienstkleidung - Dr\u00fccke ~y~K", d.Position, 7, 1, 0, new Color(255, 255, 255), false, 0);
} }
} }

View File

@@ -28,7 +28,7 @@ namespace ReallifeGamemode.Server.Managers
float rotation = float.Parse(blipRotation); float rotation = float.Parse(blipRotation);
byte dimension = Convert.ToByte(blipDimension); byte dimension = Convert.ToByte(blipDimension);
NAPI.Blip.CreateBlip(uint.Parse(blipSprite), new Vector3(x,y,z), scale, color, name, alpha, drawDistance, shortRange, short.Parse(blipRotation), dimension); NAPI.Blip.CreateBlip(uint.Parse(blipSprite), new Vector3(x, y, z), scale, color, name, alpha, drawDistance, shortRange, short.Parse(blipRotation), dimension);
using (var saveData = new DatabaseContext()) using (var saveData = new DatabaseContext())
{ {

View File

@@ -12,7 +12,7 @@ namespace ReallifeGamemode.Server.Managers
public static void StartTimeManager() public static void StartTimeManager()
{ {
if(realTimeTimer == null) if (realTimeTimer == null)
{ {
realTimeTimer = new Timer(1000); realTimeTimer = new Timer(1000);
realTimeTimer.Elapsed += SetTime; realTimeTimer.Elapsed += SetTime;

View File

@@ -31,10 +31,10 @@ namespace ReallifeGamemode.Server.Managers
colShape.OnEntityEnterColShape += (cs, c) => colShape.OnEntityEnterColShape += (cs, c) =>
{ {
if(c.IsInVehicle) if (c.IsInVehicle)
{ {
Vehicle v = c.Vehicle; Vehicle v = c.Vehicle;
if(v.GetServerVehicle() is FactionVehicle fV && fV.GetFaction().StateOwned) if (v.GetServerVehicle() is FactionVehicle fV && fV.GetFaction().StateOwned)
{ {
return; return;
} }
@@ -60,13 +60,13 @@ namespace ReallifeGamemode.Server.Managers
using (var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
foreach(VehicleMod vMod in dbContext.VehicleMods.ToList().FindAll(vM => vM.ServerVehicleId == sVeh.Id)) foreach (VehicleMod vMod in dbContext.VehicleMods.ToList().FindAll(vM => vM.ServerVehicleId == sVeh.Id))
{ {
if(vMod.Slot == 18) if (vMod.Slot == 18)
{ {
veh.SetSharedData("mod" + vMod.Slot, true); veh.SetSharedData("mod" + vMod.Slot, true);
} }
else if(vMod.Slot == 22) else if (vMod.Slot == 22)
{ {
int color = vMod.ModId - 2; int color = vMod.ModId - 2;
if (vMod.ModId == 0) color = -1; if (vMod.ModId == 0) color = -1;
@@ -99,9 +99,9 @@ namespace ReallifeGamemode.Server.Managers
Vehicle pV = player.Vehicle; Vehicle pV = player.Vehicle;
if (index == 0) index--; if (index == 0) index--;
if(slot != 18) if (slot != 18)
{ {
if(slot == 22) if (slot == 22)
{ {
int color = index - 2; int color = index - 2;
if (index == 0) color = -1; if (index == 0) color = -1;
@@ -126,7 +126,7 @@ namespace ReallifeGamemode.Server.Managers
using (var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
VehicleMod vMod = dbContext.VehicleMods.FirstOrDefault(m => m.ServerVehicleId == sV.Id && m.Slot == slot); VehicleMod vMod = dbContext.VehicleMods.FirstOrDefault(m => m.ServerVehicleId == sV.Id && m.Slot == slot);
if(vMod == null && index != -1) if (vMod == null && index != -1)
{ {
vMod = new VehicleMod vMod = new VehicleMod
{ {
@@ -136,7 +136,7 @@ namespace ReallifeGamemode.Server.Managers
}; };
dbContext.VehicleMods.Add(vMod); dbContext.VehicleMods.Add(vMod);
} }
else if(vMod != null && index == -1) else if (vMod != null && index == -1)
{ {
dbContext.VehicleMods.Remove(vMod); dbContext.VehicleMods.Remove(vMod);
} }

View File

@@ -117,7 +117,7 @@ namespace ReallifeGamemode.Server.Managers
public static void AddVehicle(ServerVehicle serverVehicle, Vehicle vehicle) public static void AddVehicle(ServerVehicle serverVehicle, Vehicle vehicle)
{ {
if(_serverVehicles.ContainsKey(serverVehicle.Id)) if (_serverVehicles.ContainsKey(serverVehicle.Id))
{ {
return; return;
} }
@@ -152,7 +152,7 @@ namespace ReallifeGamemode.Server.Managers
public static Vehicle GetVehicleFromServerVehicle(ServerVehicle serverVehicle) public static Vehicle GetVehicleFromServerVehicle(ServerVehicle serverVehicle)
{ {
if(!_serverVehicles.ContainsKey(serverVehicle.Id)) if (!_serverVehicles.ContainsKey(serverVehicle.Id))
{ {
return null; return null;
} }
@@ -162,7 +162,7 @@ namespace ReallifeGamemode.Server.Managers
public static ServerVehicle GetServerVehicleFromVehicle(Vehicle veh, DatabaseContext dbContext = null) public static ServerVehicle GetServerVehicleFromVehicle(Vehicle veh, DatabaseContext dbContext = null)
{ {
if(dbContext == null) if (dbContext == null)
{ {
using (dbContext = new DatabaseContext()) using (dbContext = new DatabaseContext())
{ {
@@ -191,12 +191,12 @@ namespace ReallifeGamemode.Server.Managers
public static bool IsValidHash(uint hash) public static bool IsValidHash(uint hash)
{ {
foreach(VehicleHash vh in Enum.GetValues(typeof(VehicleHash))) foreach (VehicleHash vh in Enum.GetValues(typeof(VehicleHash)))
{ {
if ((uint)vh == hash) return true; if ((uint)vh == hash) return true;
} }
foreach(string mod in _enabledMods) foreach (string mod in _enabledMods)
{ {
if (NAPI.Util.GetHashKey(mod) == hash) return true; if (NAPI.Util.GetHashKey(mod) == hash) return true;
} }

View File

@@ -9,7 +9,7 @@ using ReallifeGamemode.Server.Models;
namespace ReallifeGamemode.Migrations namespace ReallifeGamemode.Migrations
{ {
[DbContext(typeof(DatabaseContext))] [DbContext(typeof(DatabaseContext))]
[Migration("20190505145708_Groups")] [Migration("20190505154643_Groups")]
partial class Groups partial class Groups
{ {
protected override void BuildTargetModel(ModelBuilder modelBuilder) protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -776,6 +776,8 @@ namespace ReallifeGamemode.Migrations
b.Property<int?>("GroupId"); b.Property<int?>("GroupId");
b.Property<int>("GroupRank");
b.Property<int>("Handmoney"); b.Property<int>("Handmoney");
b.Property<int>("LogUserId"); b.Property<int>("LogUserId");

View File

@@ -12,6 +12,12 @@ namespace ReallifeGamemode.Migrations
table: "Users", table: "Users",
nullable: true); nullable: true);
migrationBuilder.AddColumn<int>(
name: "GroupRank",
table: "Users",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<int>( migrationBuilder.AddColumn<int>(
name: "GroupId", name: "GroupId",
table: "ServerVehicles", table: "ServerVehicles",
@@ -110,6 +116,10 @@ namespace ReallifeGamemode.Migrations
name: "GroupId", name: "GroupId",
table: "Users"); table: "Users");
migrationBuilder.DropColumn(
name: "GroupRank",
table: "Users");
migrationBuilder.DropColumn( migrationBuilder.DropColumn(
name: "GroupId", name: "GroupId",
table: "ServerVehicles"); table: "ServerVehicles");

View File

@@ -774,6 +774,8 @@ namespace ReallifeGamemode.Migrations
b.Property<int?>("GroupId"); b.Property<int?>("GroupId");
b.Property<int>("GroupRank");
b.Property<int>("Handmoney"); b.Property<int>("Handmoney");
b.Property<int>("LogUserId"); b.Property<int>("LogUserId");

View File

@@ -68,7 +68,7 @@ namespace ReallifeGamemode.Server.Services
{ {
NAPI.Pools.GetAllPlayers().ForEach(p => NAPI.Pools.GetAllPlayers().ForEach(p =>
{ {
if(p.GetUser()?.IsAdmin(minLevel) ?? false) if (p.GetUser()?.IsAdmin(minLevel) ?? false)
{ {
p.SendChatMessage(message); p.SendChatMessage(message);
} }

View File

@@ -25,7 +25,7 @@ namespace ReallifeGamemode.Server.Services
List<Client> playerList = NAPI.Pools.GetAllPlayers(); List<Client> playerList = NAPI.Pools.GetAllPlayers();
if(int.TryParse(nameOrId, out int id)) if (int.TryParse(nameOrId, out int id))
{ {
toReturn = playerList.Find(p => p.Handle.Value == id); toReturn = playerList.Find(p => p.Handle.Value == id);
return toReturn; return toReturn;
@@ -33,7 +33,7 @@ namespace ReallifeGamemode.Server.Services
toReturn = playerList.Find(p => p.Name.ToLower() == nameOrId); toReturn = playerList.Find(p => p.Name.ToLower() == nameOrId);
if(toReturn == null) if (toReturn == null)
{ {
toReturn = playerList.Find(p => p.Name.ToLower().StartsWith(nameOrId)); toReturn = playerList.Find(p => p.Name.ToLower().StartsWith(nameOrId));
} }

View File

@@ -9,7 +9,7 @@ namespace ReallifeGamemode.Server.Util
public static void InitDatabaseFirstTime() public static void InitDatabaseFirstTime()
{ {
NAPI.Util.ConsoleOutput("Initializing database..."); NAPI.Util.ConsoleOutput("Initializing database...");
using(var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
dbContext.Users.FirstOrDefault(); dbContext.Users.FirstOrDefault();
dbContext.SaveChanges(); dbContext.SaveChanges();

View File

@@ -9,11 +9,11 @@ namespace ReallifeGamemode.Server.Util
public static void CheckFactionBankAccounts() public static void CheckFactionBankAccounts()
{ {
NAPI.Util.ConsoleOutput("Checking faction bank accounts..."); NAPI.Util.ConsoleOutput("Checking faction bank accounts...");
using(var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
foreach(Faction faction in dbContext.Factions) foreach (Faction faction in dbContext.Factions)
{ {
if(faction.GetBankAccount(dbContext) == null) if (faction.GetBankAccount(dbContext) == null)
{ {
NAPI.Util.ConsoleOutput("Adding bank account for faction: " + faction.Name); NAPI.Util.ConsoleOutput("Adding bank account for faction: " + faction.Name);
FactionBankAccount factionBankAccount = new FactionBankAccount() FactionBankAccount factionBankAccount = new FactionBankAccount()

View File

@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace ReallifeGamemode.Server.Util
{
public enum GroupRank
{
NONE,
MEMBER,
MANAGER,
OWNER
}
}

View File

@@ -207,7 +207,7 @@ namespace ReallifeGamemode.Server.Util
NAPI.ClientEvent.TriggerClientEventInDimension(veh.Dimension, "VehStream_SetLockStatus", veh, status); NAPI.ClientEvent.TriggerClientEventInDimension(veh.Dimension, "VehStream_SetLockStatus", veh, status);
NAPI.Pools.GetAllPlayers().ForEach(p => NAPI.Pools.GetAllPlayers().ForEach(p =>
{ {
if(p.IsInVehicle && p.Vehicle.Handle == veh.Handle) if (p.IsInVehicle && p.Vehicle.Handle == veh.Handle)
{ {
p.TriggerEvent("Vehicle_setLockStatus", status); p.TriggerEvent("Vehicle_setLockStatus", status);
} }