inshallah kein fehler
This commit is contained in:
@@ -1,13 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using GTANetworkAPI;
|
||||
|
||||
namespace ReallifeGamemode.Server.Business
|
||||
{
|
||||
class AirplaneDealerBusiness : CarDealerBusinessBase
|
||||
internal class AirplaneDealerBusiness : CarDealerBusinessBase
|
||||
{
|
||||
|
||||
public override int Id => 7;
|
||||
|
||||
public override string Name => "Flugzeug Shop";
|
||||
@@ -22,7 +18,6 @@ namespace ReallifeGamemode.Server.Business
|
||||
|
||||
public override void Load()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override string BankAccountName => Name;
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using GTANetworkAPI;
|
||||
|
||||
namespace ReallifeGamemode.Server.Business
|
||||
{
|
||||
class BeachDealerBusiness : CarDealerBusinessBase
|
||||
internal class BeachDealerBusiness : CarDealerBusinessBase
|
||||
{
|
||||
|
||||
public override int Id => 9;
|
||||
|
||||
public override string Name => "Beach Shop";
|
||||
@@ -22,7 +18,6 @@ namespace ReallifeGamemode.Server.Business
|
||||
|
||||
public override void Load()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using GTANetworkAPI;
|
||||
|
||||
namespace ReallifeGamemode.Server.Business
|
||||
{
|
||||
@@ -21,7 +18,6 @@ namespace ReallifeGamemode.Server.Business
|
||||
|
||||
public override void Load()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using GTANetworkAPI;
|
||||
|
||||
namespace ReallifeGamemode.Server.Business
|
||||
{
|
||||
@@ -21,7 +18,6 @@ namespace ReallifeGamemode.Server.Business
|
||||
|
||||
public override void Load()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
using GTANetworkAPI;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using System;
|
||||
using System.Linq;
|
||||
|
||||
namespace ReallifeGamemode.Server.Business
|
||||
{
|
||||
@@ -86,7 +86,6 @@ namespace ReallifeGamemode.Server.Business
|
||||
NAPI.Util.ConsoleOutput("Creating Bank Account for Business: " + Name);
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
|
||||
dbContext.BusinessBankAccounts.Add(new BusinessBankAccount()
|
||||
{
|
||||
BusinessId = Id,
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
using GTANetworkAPI;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace ReallifeGamemode.Server.Business
|
||||
{
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using GTANetworkAPI;
|
||||
|
||||
namespace ReallifeGamemode.Server.Business
|
||||
{
|
||||
@@ -21,7 +18,6 @@ namespace ReallifeGamemode.Server.Business
|
||||
|
||||
public override void Load()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using GTANetworkAPI;
|
||||
|
||||
namespace ReallifeGamemode.Server.Business
|
||||
{
|
||||
class LastTrainDealerBusiness : CarDealerBusinessBase
|
||||
internal class LastTrainDealerBusiness : CarDealerBusinessBase
|
||||
{
|
||||
|
||||
public override int Id => 10;
|
||||
|
||||
public override string Name => "Last Train Carshop";
|
||||
@@ -22,7 +18,6 @@ namespace ReallifeGamemode.Server.Business
|
||||
|
||||
public override void Load()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using GTANetworkAPI;
|
||||
|
||||
namespace ReallifeGamemode.Server.Business
|
||||
{
|
||||
@@ -19,7 +16,6 @@ namespace ReallifeGamemode.Server.Business
|
||||
|
||||
public override void Load()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using GTANetworkAPI;
|
||||
|
||||
namespace ReallifeGamemode.Server.Business
|
||||
{
|
||||
class SUVDealerBusiness : CarDealerBusinessBase
|
||||
internal class SUVDealerBusiness : CarDealerBusinessBase
|
||||
{
|
||||
|
||||
public override int Id => 11;
|
||||
|
||||
public override string Name => "SUV Carshop";
|
||||
@@ -22,7 +18,6 @@ namespace ReallifeGamemode.Server.Business
|
||||
|
||||
public override void Load()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using GTANetworkAPI;
|
||||
|
||||
namespace ReallifeGamemode.Server.Business
|
||||
{
|
||||
@@ -15,7 +12,6 @@ namespace ReallifeGamemode.Server.Business
|
||||
|
||||
public override void Load()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using GTANetworkAPI;
|
||||
|
||||
namespace ReallifeGamemode.Server.Business
|
||||
{
|
||||
@@ -15,7 +12,6 @@ namespace ReallifeGamemode.Server.Business
|
||||
|
||||
public override void Load()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using GTANetworkAPI;
|
||||
|
||||
namespace ReallifeGamemode.Server.Business
|
||||
{
|
||||
@@ -19,7 +16,6 @@ namespace ReallifeGamemode.Server.Business
|
||||
|
||||
public override void Load()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace ReallifeGamemode.Server.Classes
|
||||
namespace ReallifeGamemode.Server.Classes
|
||||
{
|
||||
public class TempBlip
|
||||
{
|
||||
|
||||
@@ -1,26 +1,25 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using ReallifeGamemode.Server.Business;
|
||||
using System.Text.RegularExpressions;
|
||||
using ReallifeGamemode.Server.Classes;
|
||||
using ReallifeGamemode.Server.Factions.Medic;
|
||||
using ReallifeGamemode.Server.Job;
|
||||
using ReallifeGamemode.Server.Finance;
|
||||
using ReallifeGamemode.Server.Wanted;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Database;
|
||||
using ReallifeGamemode.Services;
|
||||
using ReallifeGamemode.Server.Business;
|
||||
using ReallifeGamemode.Server.Classes;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Factions.Medic;
|
||||
using ReallifeGamemode.Server.Finance;
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using ReallifeGamemode.Server.Job;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Server.Wanted;
|
||||
using ReallifeGamemode.Services;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Admin Commands (Admin.cs)
|
||||
@@ -32,8 +31,8 @@ namespace ReallifeGamemode.Server.Commands
|
||||
{
|
||||
public class AdminCommands : Script
|
||||
{
|
||||
|
||||
#region Todo
|
||||
|
||||
[Command("eat", "~m~Benutzung: ~s~/eat [Item]")]
|
||||
public void CmdAdminEat(Player player, string item)
|
||||
{
|
||||
@@ -126,8 +125,10 @@ namespace ReallifeGamemode.Server.Commands
|
||||
ChatService.SendMessage(player, msg);
|
||||
}
|
||||
|
||||
#endregion
|
||||
#endregion Todo
|
||||
|
||||
#region ahelp
|
||||
|
||||
[Command("ahelp", "~m~Benutzung: ~s~/ahelp")]
|
||||
public void CmdAdminHelp(Player player)
|
||||
{
|
||||
@@ -143,27 +144,33 @@ namespace ReallifeGamemode.Server.Commands
|
||||
case AdminLevel.MAPPING:
|
||||
ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position");
|
||||
break;
|
||||
|
||||
case AdminLevel.ENTWICKLUNG:
|
||||
ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position");
|
||||
break;
|
||||
|
||||
case AdminLevel.SUPPORTER:
|
||||
ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position, /tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick");
|
||||
break;
|
||||
|
||||
case AdminLevel.ADMIN:
|
||||
ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position, /tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick");
|
||||
ChatService.SendMessage(player, "~b~ " + "/a, /countdown, /freeze, /unfreeze, /mark, /gotmark, /gotox, /up, /setdimension, /spec, /warn, /ip, /kick, /ban /unban, /slap, /takeweapon, /tov, /ghv, /factionlist, /businesslist, /joblist");
|
||||
break;
|
||||
|
||||
case AdminLevel.ADMIN2:
|
||||
ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position, /tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick");
|
||||
ChatService.SendMessage(player, "~b~ " + "/a, /countdown, /freeze, /unfreeze, /mark, /gotmark, /gotox, /up, /setdimension, /spec, /warn, /ip, /kick, /ban /unban, /slap, /takeweapon, /tov, /ghv, /factionlist, /businesslist, /joblist");
|
||||
ChatService.SendMessage(player, "~b~ " + "/sethp, /setarmor, /arevive, /aunjail, /aclear, /clothes, /props");
|
||||
break;
|
||||
|
||||
case AdminLevel.ADMIN3:
|
||||
ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position, /tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick");
|
||||
ChatService.SendMessage(player, "~b~ " + "/a, /countdown, /freeze, /unfreeze, /mark, /gotmark, /gotox, /up, /setdimension, /spec, /warn, /ip, /kick, /ban /unban, /slap, /takeweapon, /tov, /ghv, /factionlist, /businesslist, /joblist");
|
||||
ChatService.SendMessage(player, "~b~ " + "/sethp, /setarmor, /arevive, /aunjail, /aclear, /clothes, /props");
|
||||
ChatService.SendMessage(player, "~b~ " + "/adice, /settime, /setweather, /rsetarmor, /rgiveweapon, /giveweapon, /veh, /fv, /vfix, /vdestroy, /vlivery, /vcolor, /vehsmoke, /aneon, /mod, /showtuningmenu, /rvdestroy, /vsethp");
|
||||
break;
|
||||
|
||||
case AdminLevel.HEADADMIN:
|
||||
ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position, /tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick");
|
||||
ChatService.SendMessage(player, "~b~ " + "/a, /countdown, /freeze, /unfreeze, /mark, /gotmark, /gotox, /up, /setdimension, /spec, /warn, /ip, /kick, /ban /unban, /slap, /takeweapon, /tov, /ghv, /factionlist, /businesslist, /joblist");
|
||||
@@ -171,6 +178,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
ChatService.SendMessage(player, "~b~ " + "/adice, /settime, /setweather, /rsetarmor, /rgiveweapon, /giveweapon, /veh, /fv, /vfix, /vdestroy, /vlivery, /vcolor, /vehsmoke, /aneon, /mod, /showtuningmenu, /rvdestroy, /vsethp");
|
||||
ChatService.SendMessage(player, "~b~ " + "/aspeed, /set, /setmoney, /givemoney, /sethandmoney, /givehandmoney, /paydaydrop, /setwage, /freekh, /ainvite, /makeleader, /managefactionranks, /setweaponrack, /rmweaponrack, /setweaponrank, /giveitem, /inventory, /save, /remove, /house, /setbusinessbankbalance, /reloaddors, /interior, /editmode, /setbliptemplate, /ipl, /load, /quicksavemode, /createturf, /setturf, /cancleturf, /reloadturfs, /deleteturfs, /setturfpoint");
|
||||
break;
|
||||
|
||||
case AdminLevel.PROJEKTLEITUNG:
|
||||
ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position, /tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick");
|
||||
ChatService.SendMessage(player, "~b~ " + "/a, /countdown, /freeze, /unfreeze, /mark, /gotmark, /gotox, /up, /setdimension, /spec, /warn, /ip, /kick, /ban /unban, /slap, /takeweapon, /tov, /ghv, /factionlist, /businesslist, /joblist");
|
||||
@@ -181,12 +189,9 @@ namespace ReallifeGamemode.Server.Commands
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
#endregion ahelp
|
||||
|
||||
#region Mapping / Entwicklung
|
||||
|
||||
@@ -234,9 +239,10 @@ namespace ReallifeGamemode.Server.Commands
|
||||
ChatService.SendMessage(player, "Position: X Y Z: " + player.Position + " Richtung: " + player.Heading);
|
||||
}
|
||||
|
||||
#endregion Mapping / Entwicklung
|
||||
|
||||
#endregion
|
||||
#region Support
|
||||
|
||||
[Command("tsupport", "~m~Benutzung: ~s~/tsupport", Alias = "ts")]
|
||||
public void CmdAdminTSupport(Player player)
|
||||
{
|
||||
@@ -269,12 +275,15 @@ namespace ReallifeGamemode.Server.Commands
|
||||
case null:
|
||||
player.SetSharedData("blipColor", 0);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
player.SetSharedData("blipColor", 83);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
player.SetSharedData("blipColor", 52);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
player.SetSharedData("blipColor", 5);
|
||||
break;
|
||||
@@ -456,7 +465,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
#endregion Support
|
||||
|
||||
#region ALevel1
|
||||
|
||||
@@ -501,9 +510,6 @@ namespace ReallifeGamemode.Server.Commands
|
||||
ChatService.BroadcastAdmin("!{#1db992}** AC " + player.Name + ":~w~ " + message, AdminLevel.ADMIN);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
[Command("gotolist", "~m~Benutzung: ~s~/gotolist")] //TODO Als Browser anzeigeN??
|
||||
public void CmdAdminGotoList(Player player)
|
||||
{
|
||||
@@ -850,7 +856,6 @@ namespace ReallifeGamemode.Server.Commands
|
||||
NAPI.Entity.SetEntityVelocity(player.Vehicle, new Vector3());
|
||||
}
|
||||
else player.Position = new Vector3(p.X, p.Y, p.Z);
|
||||
|
||||
}
|
||||
}
|
||||
[Command("destroyped", "~m~Benutzung: ~s~/destroyped [PedNr]")]
|
||||
@@ -1033,7 +1038,6 @@ namespace ReallifeGamemode.Server.Commands
|
||||
else player.Position = new Vector3(x, y, z);
|
||||
}
|
||||
|
||||
|
||||
[Command("slap", "~m~Benutzung: ~s~/slap [Spieler] (Höhe)")]
|
||||
public void CmdAdminSlap(Player player, string name, int wert = 5)
|
||||
{
|
||||
@@ -1165,8 +1169,10 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
#endregion ALevel1
|
||||
|
||||
#region ALevel2
|
||||
|
||||
[Command("sethp", "~m~Benutzung: ~s~/sethp [Spieler] (Hp)")]
|
||||
public void CmdAdminSetHp(Player player, string name, int hp = 100)
|
||||
{
|
||||
@@ -1326,7 +1332,6 @@ namespace ReallifeGamemode.Server.Commands
|
||||
[Command("aclear", "~m~Benutzung: ~s~/aclear [Spieler] [Grund]", GreedyArg = true)]
|
||||
public void CmdFactionClear(Player player, string nameOrId, string reason)
|
||||
{
|
||||
|
||||
User user = player.GetUser();
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN2) ?? true)
|
||||
{
|
||||
@@ -1356,12 +1361,15 @@ namespace ReallifeGamemode.Server.Commands
|
||||
case null:
|
||||
target.SetSharedData("blipColor", 0);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
target.SetSharedData("blipColor", 83);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
target.SetSharedData("blipColor", 52);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
target.SetSharedData("blipColor", 5);
|
||||
break;
|
||||
@@ -1372,7 +1380,9 @@ namespace ReallifeGamemode.Server.Commands
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endregion ALevel2
|
||||
|
||||
#region ALevel3
|
||||
|
||||
[Command("adice", "~m~Benutzung: ~s~/adice [Zahl]")]
|
||||
@@ -1734,7 +1744,6 @@ namespace ReallifeGamemode.Server.Commands
|
||||
TimeManager.PauseTimeManager(new TimeSpan(hour, min, sec));
|
||||
NAPI.World.SetTime(hour, min, sec);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
[Command("setweather", "~m~Benutzung: ~s~/setweather [Wetter]")]
|
||||
@@ -1797,7 +1806,8 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
#endregion ALevel3
|
||||
|
||||
#region ALevel1337
|
||||
[Command("wepmod", "~m~Benutzung: ~s~/wepmod [Variable]")]
|
||||
public void CmdWeaponModifier(Player player, float modifier)
|
||||
@@ -1815,7 +1825,6 @@ namespace ReallifeGamemode.Server.Commands
|
||||
public void CmdAdminGotocp(Player admin)
|
||||
{
|
||||
admin.TriggerEvent("getCP");
|
||||
|
||||
}
|
||||
|
||||
[RemoteEvent("sendCP")]
|
||||
@@ -1922,7 +1931,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
else
|
||||
{
|
||||
UserItem item = new UserItem() { ItemId = itemId, UserId = target.GetUser().Id, Amount = amount };
|
||||
InventoryManager.AddItemToInventory(target, item);
|
||||
InventoryManager.AddItemToInventory(target, item.ItemId, item.Amount);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1968,7 +1977,6 @@ namespace ReallifeGamemode.Server.Commands
|
||||
player.SendNotification("Edit-Mode ~r~deaktiviert");
|
||||
player.TriggerEvent("toggleEditMode", false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[Command("setbliptemplate", "~m~Benutzung: ~s~/setbliptemplate [byte COLOR] [byte ALPHA] [bool SHORTRANGE] [uint SPRITE] [float SCALE] [string NAME]", GreedyArg = true)]
|
||||
@@ -2108,16 +2116,18 @@ namespace ReallifeGamemode.Server.Commands
|
||||
case null:
|
||||
target.SetSharedData("blipColor", 0);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
target.SetSharedData("blipColor", 83);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
target.SetSharedData("blipColor", 52);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
target.SetSharedData("blipColor", 5);
|
||||
break;
|
||||
|
||||
}
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
@@ -2166,16 +2176,18 @@ namespace ReallifeGamemode.Server.Commands
|
||||
case null:
|
||||
target.SetSharedData("blipColor", 0);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
target.SetSharedData("blipColor", 83);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
target.SetSharedData("blipColor", 52);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
target.SetSharedData("blipColor", 5);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
dbContext.SaveChanges();
|
||||
@@ -2196,6 +2208,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
case "blip":
|
||||
player.TriggerEvent("saveBlip");
|
||||
break;
|
||||
|
||||
case "goto":
|
||||
if (option1 == null)
|
||||
{
|
||||
@@ -2217,10 +2230,10 @@ namespace ReallifeGamemode.Server.Commands
|
||||
ChatService.SendMessage(player, "Einen Goto-Punkt mit dieser Bezeichnung gibt es schon!");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case "vehicle":
|
||||
if (player.IsInVehicle)
|
||||
{
|
||||
@@ -2233,6 +2246,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
else ChatService.SendMessage(player, "~m~Du sitzt in keinem Fahrzeug!");
|
||||
break;
|
||||
|
||||
case "fvehicle":
|
||||
if (player.IsInVehicle)
|
||||
{
|
||||
@@ -2271,6 +2285,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
else ChatService.SendMessage(player, "~m~Du sitzt in keinem Fahrzeug!");
|
||||
break;
|
||||
|
||||
case "jvehicle":
|
||||
if (player.IsInVehicle)
|
||||
{
|
||||
@@ -2469,6 +2484,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
#region loadCommand
|
||||
|
||||
[Command("load", "~m~Benutzung: ~s~/load [Typ = OnlineBunkers, ArcadiusBusinessCentre, MazeBankBuilding, LomBank, MazeBankWest, ClubWareHouse, SpecialLocations, GRHYacht, DHYacht, PYacht, AircraftCarrier, BridgeTC, BridgeTN, NorthYankton, ONeilsFarmB, ONeilsFarm, Morgue")]
|
||||
public void CmdAdminloadlocation(Player player, string typ)
|
||||
{
|
||||
@@ -2495,6 +2511,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
NAPI.World.RequestIpl("gr_case4_bunkerclosed");
|
||||
ChatService.SendMessage(player, "~y~ Online Bunkers~s~ erfolgreich geladen!");
|
||||
break;
|
||||
|
||||
case "ArcadiusBusinessCentre":
|
||||
NAPI.World.RequestIpl("ex_dt1_02_office_02b");
|
||||
NAPI.World.RequestIpl("ex_dt1_02_office_02c");
|
||||
@@ -2511,6 +2528,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
NAPI.World.RequestIpl("imp_dt1_02_modgarage");
|
||||
ChatService.SendMessage(player, "~y~ Arcadius Business Centre~s~ erfolgreich geladen!");
|
||||
break;
|
||||
|
||||
case "MazeBankBuilding":
|
||||
NAPI.World.RequestIpl("ex_dt1_11_office_02b");
|
||||
NAPI.World.RequestIpl("ex_dt1_11_office_02c");
|
||||
@@ -2527,6 +2545,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
NAPI.World.RequestIpl("imp_dt1_11_modgarage");
|
||||
ChatService.SendMessage(player, "~y~ Maze Bank Building~s~ erfolgreich geladen!");
|
||||
break;
|
||||
|
||||
case "LomBank":
|
||||
NAPI.World.RequestIpl("ex_sm_13_office_02b");
|
||||
NAPI.World.RequestIpl("ex_sm_13_office_02c");
|
||||
@@ -2543,6 +2562,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
NAPI.World.RequestIpl("imp_sm_13_modgarage");
|
||||
ChatService.SendMessage(player, "~y~Lom Bank~s~ erfolgreich geladen!");
|
||||
break;
|
||||
|
||||
case "MazeBankWest":
|
||||
NAPI.World.RequestIpl("ex_sm_15_office_02b");
|
||||
NAPI.World.RequestIpl("ex_sm_15_office_02c");
|
||||
@@ -2559,6 +2579,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
NAPI.World.RequestIpl("imp_sm_15_modgarage");
|
||||
ChatService.SendMessage(player, "~y~Maze Bank West~s~ erfolgreich geladen!");
|
||||
break;
|
||||
|
||||
case "ClubWareHouse":
|
||||
NAPI.World.RequestIpl("bkr_biker_interior_placement_interior_0_biker_dlc_int_01_milo");
|
||||
NAPI.World.RequestIpl("bkr_biker_interior_placement_interior_1_biker_dlc_int_02_milo");
|
||||
@@ -2574,6 +2595,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
NAPI.World.RequestIpl("bkr_bi_hw1_13_int");
|
||||
ChatService.SendMessage(player, "~y~Clubs & Warehouses~s~ erfolgreich geladen!");
|
||||
break;
|
||||
|
||||
case "SpecialLocations":
|
||||
NAPI.World.RequestIpl("cargoship");
|
||||
NAPI.World.RequestIpl("sunkcargoship");
|
||||
@@ -2590,6 +2612,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
NAPI.World.RequestIpl("FIBlobby");
|
||||
ChatService.SendMessage(player, "~y~Special Locations~s~ erfolgreich geladen!");
|
||||
break;
|
||||
|
||||
case "GRHYacht":
|
||||
NAPI.World.RequestIpl("gr_heist_yacht2");
|
||||
NAPI.World.RequestIpl("gr_heist_yacht2_bar");
|
||||
@@ -2599,6 +2622,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
NAPI.World.RequestIpl("gr_heist_yacht2_lounge");
|
||||
ChatService.SendMessage(player, "~y~Gunrunning heist Yacht~s~ erfolgreich geladen!");
|
||||
break;
|
||||
|
||||
case "DHYacht":
|
||||
NAPI.World.RequestIpl("hei_yacht_heist");
|
||||
NAPI.World.RequestIpl("hei_yacht_heist_enginrm");
|
||||
@@ -2610,11 +2634,13 @@ namespace ReallifeGamemode.Server.Commands
|
||||
NAPI.World.RequestIpl("hei_yacht_heist_LODLights");
|
||||
ChatService.SendMessage(player, "~y~Dignity heist Yacht~s~ erfolgreich geladen!");
|
||||
break;
|
||||
|
||||
case "PYacht":
|
||||
NAPI.World.RequestIpl("smboat");
|
||||
NAPI.World.RequestIpl("smboat_lod");
|
||||
ChatService.SendMessage(player, "~y~Party Yacht~s~ erfolgreich geladen!");
|
||||
break;
|
||||
|
||||
case "AircraftCarrier":
|
||||
NAPI.World.RequestIpl("hei_carrier");
|
||||
NAPI.World.RequestIpl("hei_carrier_DistantLights");
|
||||
@@ -2627,16 +2653,19 @@ namespace ReallifeGamemode.Server.Commands
|
||||
NAPI.World.RequestIpl("hei_carrier_LODLights");
|
||||
ChatService.SendMessage(player, "~y~Aircraft Carrier~s~ erfolgreich geladen!");
|
||||
break;
|
||||
|
||||
case "BridgeTC":
|
||||
NAPI.World.RequestIpl("canyonriver01_traincrash");
|
||||
NAPI.World.RequestIpl("canyonriver01_traincrash");
|
||||
ChatService.SendMessage(player, "~y~Bridge Train Crash~s~ erfolgreich geladen!");
|
||||
break;
|
||||
|
||||
case "BridgeTN":
|
||||
NAPI.World.RequestIpl("canyonriver01");
|
||||
NAPI.World.RequestIpl("railing_start");
|
||||
ChatService.SendMessage(player, "~y~Bridge Train Normal~s~ erfolgreich geladen!");
|
||||
break;
|
||||
|
||||
case "NorthYankton":
|
||||
NAPI.World.RequestIpl("prologue01");
|
||||
NAPI.World.RequestIpl("prologue01c");
|
||||
@@ -2671,6 +2700,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
NAPI.World.RequestIpl("prologuerdb");
|
||||
ChatService.SendMessage(player, "~y~North Yankton~s~ erfolgreich geladen!");
|
||||
break;
|
||||
|
||||
case "ONeilsFarmB":
|
||||
NAPI.World.RequestIpl("farmint");
|
||||
NAPI.World.RequestIpl("farm_burnt");
|
||||
@@ -2679,21 +2709,23 @@ namespace ReallifeGamemode.Server.Commands
|
||||
NAPI.World.RequestIpl("des_farmhs_end_occl");
|
||||
ChatService.SendMessage(player, "~y~ONeils Farm Burnt~s~ erfolgreich geladen!");
|
||||
break;
|
||||
|
||||
case "ONeilsFarm":
|
||||
NAPI.World.RequestIpl("farm");
|
||||
NAPI.World.RequestIpl("farm_props");
|
||||
NAPI.World.RequestIpl("farm_int");
|
||||
ChatService.SendMessage(player, "~y~ONeils Farm~s~ erfolgreich geladen!");
|
||||
break;
|
||||
|
||||
case "Morgue":
|
||||
NAPI.World.RequestIpl("coronertrash");
|
||||
NAPI.World.RequestIpl("Coroner_Int_On");
|
||||
ChatService.SendMessage(player, "~y~Morgue~s~ erfolgreich geladen!");
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endregion loadCommand
|
||||
|
||||
//
|
||||
[Command("managefactionranks", "~m~Benutzung: ~s~/managefactionranks [Fraktions-ID]", Alias = "mfr")]
|
||||
@@ -2964,7 +2996,6 @@ namespace ReallifeGamemode.Server.Commands
|
||||
// return;
|
||||
// }
|
||||
|
||||
|
||||
//}
|
||||
|
||||
[Command("reloaddoors", "~m~Benutzung: ~s~/reloaddoors")]
|
||||
@@ -3079,7 +3110,6 @@ namespace ReallifeGamemode.Server.Commands
|
||||
dbContext.SaveChanges();
|
||||
ChatService.SendMessage(player, "Waffeneintrag bearbeitet für die Fraktion " + f.Name + ": " + weaponModel + ", SlotId: " + slotId);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
FactionWeapon fw2 = dbContext.FactionWeapons.FirstOrDefault(w => w.FactionId == factionID && w.WeaponModel == weaponModel);
|
||||
@@ -3105,7 +3135,6 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[Command("rmweaponrack", "~m~Benutzung: ~s~/rmweaponrack [Fraktion ID] [Waffen Model]")]
|
||||
public void CmdAdminRmWeaponrack(Player player, int factionID, string weaponModel)
|
||||
{
|
||||
@@ -3267,9 +3296,11 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
player.TriggerEvent("ADMIN:Turf_CreateLeaderBlip");
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endregion ALevel1337
|
||||
|
||||
#region ALevel1338
|
||||
|
||||
[Command("whitelist", "~m~Benutzung: ~s~/whitelist [Add / Remove] [Socialclub Name]")]
|
||||
public void CmdAdminWhitelist(Player player, string option, string scName)
|
||||
{
|
||||
@@ -3374,6 +3405,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
ChatService.SendMessage(target, "~b~[ADMIN]~s~ Du wurdest durch ~y~" + player.Name + " ~s~auf Adminlevel ~y~" + target.GetUser().AdminLevel.GetName() + " ~y~(" + rank + ") ~s~gesetzt.");
|
||||
ChatService.SendMessage(player, "~b~[ADMIN]~s~ Du hast ~y~" + target.Name + " ~s~auf Adminlevel ~y~" + target.GetUser().AdminLevel.GetName() + " ~y~(" + rank + ") ~s~gesetzt.");
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endregion ALevel1338
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
using GTANetworkAPI;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
@@ -6,11 +9,7 @@ using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Factions.Medic;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Wanted;
|
||||
using ReallifeGamemode.Services;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Faction Commands (Faction.cs)
|
||||
@@ -20,7 +19,7 @@ using System.Text.RegularExpressions;
|
||||
|
||||
namespace ReallifeGamemode.Server.Commands
|
||||
{
|
||||
class FactionCommands : Script
|
||||
internal class FactionCommands : Script
|
||||
{
|
||||
#region Chat Commands
|
||||
|
||||
@@ -74,8 +73,11 @@ namespace ReallifeGamemode.Server.Commands
|
||||
ChatService.BroadcastFaction(broadcastMessage, context.Factions.ToList().FindAll(c => c.StateOwned));
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endregion Chat Commands
|
||||
|
||||
#region Leader Commands
|
||||
|
||||
[Command("giverank", "~m~Benutzung: ~s~/giverank [Name] [Rang]", GreedyArg = true)]
|
||||
public void CmdFactionGiverank(Player player, string name, string rank)
|
||||
{
|
||||
@@ -173,8 +175,8 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Leader Commands
|
||||
|
||||
#endregion
|
||||
#region Sanitäter Commands
|
||||
|
||||
[Command("revive", "~m~Benutzung: ~s~/revive")]
|
||||
@@ -297,8 +299,11 @@ namespace ReallifeGamemode.Server.Commands
|
||||
target.SendNotification($"Du wurdest von ~g~{player.Name} ~s~ für ~g~{price.ToMoneyString()} geheilt.", false);
|
||||
player.SendNotification($"Du hast ~g~{target.Name} ~s~ für {price.ToMoneyString()} geheilt.", false);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endregion Sanitäter Commands
|
||||
|
||||
#region Staatsfraktionen (LSPD / FBI) Commands
|
||||
|
||||
[Command("wanted", "~m~Benutzung: ~s~/wa(nted) [Spieler] [Anzahl] [Grund]", Alias = "wa", GreedyArg = true)]
|
||||
public void CmdFactionWanted(Player player, string nameOrId, int amount, string reason)
|
||||
{
|
||||
@@ -341,7 +346,6 @@ namespace ReallifeGamemode.Server.Commands
|
||||
[Command("clear", "~m~Benutzung: ~s~/clear [Spieler] [Grund]", GreedyArg = true)]
|
||||
public void CmdFactionClear(Player player, string nameOrId, string reason)
|
||||
{
|
||||
|
||||
User user = player.GetUser();
|
||||
if (user == null || (user.FactionId != 1 && user.FactionId != 3))
|
||||
{
|
||||
@@ -378,9 +382,11 @@ namespace ReallifeGamemode.Server.Commands
|
||||
case 8:
|
||||
target.SetSharedData("blipColor", 83);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
target.SetSharedData("blipColor", 52);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
target.SetSharedData("blipColor", 5);
|
||||
break;
|
||||
@@ -392,11 +398,6 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
#region Global Fraktions Commands
|
||||
#endregion
|
||||
#endregion Staatsfraktionen (LSPD / FBI) Commands
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
using System.Text.RegularExpressions;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace ReallifeGamemode.Server.Commands
|
||||
{
|
||||
class GroupCommands : Script
|
||||
internal class GroupCommands : Script
|
||||
{
|
||||
#region Chat Commands
|
||||
|
||||
[Command("gc", "~m~Benutzung: ~s~/gc [Nachricht]", GreedyArg = true)]
|
||||
public void CmdGroupG(Player player, string message)
|
||||
{
|
||||
@@ -26,6 +24,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
|
||||
ChatService.BroadcastGroup(message, group);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endregion Chat Commands
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database;
|
||||
using System;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Finance;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using System;
|
||||
using System.Linq;
|
||||
|
||||
namespace ReallifeGamemode.Server.Commands
|
||||
{
|
||||
class UserCommands : Script
|
||||
internal class UserCommands : Script
|
||||
{
|
||||
[Command("dice", "~m~Benutzung: ~s~/dice")]
|
||||
public void CmdUserDice(Player player)
|
||||
|
||||
@@ -1,18 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
|
||||
namespace ReallifeGamemode.Server.DrivingSchool
|
||||
{
|
||||
class DrivingSchool : Script
|
||||
internal class DrivingSchool : Script
|
||||
{
|
||||
private static TextLabel informationLabel;
|
||||
private static Marker marker;
|
||||
@@ -40,6 +36,7 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
{
|
||||
new Vector3(-813.57, -1290.37, 4.59),
|
||||
}.AsReadOnly();
|
||||
|
||||
private readonly IReadOnlyCollection<Vector3> DrivingRoute = new List<Vector3>
|
||||
{
|
||||
//BEGIN
|
||||
@@ -80,12 +77,12 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
new Vector3(-617.66, -1259.34, 9.82),
|
||||
new Vector3(-758.35, -1285.03, 3.48),
|
||||
}.AsReadOnly();
|
||||
|
||||
private readonly IReadOnlyCollection<Vector3> StopCar = new List<Vector3>
|
||||
{
|
||||
new Vector3(-788.66, -1278.75, 4),
|
||||
}.AsReadOnly();
|
||||
|
||||
|
||||
public static void Setup()
|
||||
{
|
||||
informationLabel = NAPI.TextLabel.CreateTextLabel("Fahrschule\n~y~Auto ~s~- $~g~2500\n~y~Motorrad ~s~- $~g~3500", new Vector3(-813.17, -1354.5, 5.14), 20.0f, 1.3f, 0, new Color(255, 255, 255));
|
||||
@@ -181,7 +178,6 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
user.Position = new Vector3(-813.17, -1354.5, 4.14);
|
||||
}
|
||||
|
||||
|
||||
[RemoteEvent("drivingSchoolEvent")]
|
||||
public void DrivingSchoolEvent(Player user, int checkpoint)
|
||||
{
|
||||
@@ -189,7 +185,6 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
{
|
||||
user.TriggerEvent("renderTextOnScreen", "Sollten Sie aus dem Fahrzeug aussteigen fallen Sie durch.");
|
||||
}
|
||||
|
||||
else if (checkpoint == 9)
|
||||
{
|
||||
user.TriggerEvent("renderTextOnScreen", "Fahre zwischen den Laternen Slalom.");
|
||||
@@ -205,8 +200,6 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
[RemoteEvent("startBikeSchool")]
|
||||
public void StartBikeSchool(Player client)
|
||||
{
|
||||
@@ -233,7 +226,6 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
client.TriggerEvent("waitPlayerEntersVehicle");
|
||||
}
|
||||
|
||||
|
||||
[RemoteEvent("bikeSchoolEventEnd")]
|
||||
public void bikeSchoolEventEnd(Player user, int checkpoint)
|
||||
{
|
||||
@@ -258,7 +250,6 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
user.Position = new Vector3(-813.17, -1354.5, 4.14);
|
||||
}
|
||||
|
||||
|
||||
[RemoteEvent("bikeSchoolEvent")]
|
||||
public void bikeSchoolEvent(Player user, int checkpoint)
|
||||
{
|
||||
@@ -272,6 +263,5 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
CheckPointHandle.StartCheckPointRoute(user, StopBike, 5000, 1, 7, 3, true, "bikeSchoolEventEnd");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace ReallifeGamemode.Server.DrivingSchool
|
||||
{
|
||||
@@ -19,7 +16,6 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
[JsonProperty("weaponLicense")]
|
||||
public bool WeaponLicense { get; set; }
|
||||
|
||||
|
||||
public Licenses(bool CarLicense, bool BikeLicense, bool PlaneLicense, bool weaponLicense)
|
||||
{
|
||||
this.CarLicense = CarLicense;
|
||||
@@ -27,6 +23,5 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
this.PlaneLicense = PlaneLicense;
|
||||
this.WeaponLicense = weaponLicense;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
|
||||
namespace ReallifeGamemode.Server.DrivingSchool
|
||||
{
|
||||
class PlaneSchool : Script
|
||||
internal class PlaneSchool : Script
|
||||
{
|
||||
private static TextLabel informationLabel1;
|
||||
private static Marker marker1;
|
||||
@@ -38,16 +34,13 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
new Vector3(-869.77, -1424.05, 133),
|
||||
}.AsReadOnly();
|
||||
|
||||
|
||||
private readonly IReadOnlyCollection<Vector3> planeRouteEnd = new List<Vector3>
|
||||
{
|
||||
new Vector3(-1164.29, -2351.52, 14.88),
|
||||
}.AsReadOnly();
|
||||
|
||||
|
||||
public static void Setup()
|
||||
{
|
||||
|
||||
informationLabel1 = NAPI.TextLabel.CreateTextLabel("Flugschule\n~y~Flugschein ~s~- $~g~5000", new Vector3(-1083.96, -2476.96, 14.07), 20.0f, 1.3f, 0, new Color(255, 255, 255));
|
||||
marker1 = NAPI.Marker.CreateMarker(MarkerType.VerticalCylinder, new Vector3(-1083.96, -2476.96, 13.07), new Vector3(), new Vector3(), 1f, new Color(255, 255, 255));
|
||||
|
||||
@@ -56,6 +49,7 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
_colShape1.OnEntityExitColShape += EntityExitBusinessColShape;
|
||||
NAPI.Blip.CreateBlip(90, new Vector3(-1083.96, -2476.96, 14.07), 1.0f, 4, "Flugschule", shortRange: true);
|
||||
}
|
||||
|
||||
private static void EntityEnterBusinessColShape(ColShape colShape, Player client)
|
||||
{
|
||||
if (client.IsInVehicle || !client.IsLoggedIn()) return;
|
||||
@@ -132,6 +126,7 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
user.ResetData("ActiveSchool");
|
||||
user.Position = new Vector3(-1083.96, -2476.96, 13.07);
|
||||
}
|
||||
|
||||
[RemoteEvent("planeSchoolEvent")]
|
||||
public void planeSchoolEvent(Player user, int checkpoint)
|
||||
{
|
||||
@@ -177,11 +172,7 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
user.TriggerEvent("renderTextOnScreen", "Setze zum landeflug an. Drücke 'G' um ihr Fahrwerk auszufahren.");
|
||||
CheckPointHandle.StartCheckPointRoute(user, planeRouteEnd, 5000, 6, 12, 5, true, "planeSchoolEventEnd");
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using System.Text.RegularExpressions;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
@@ -13,7 +13,7 @@ namespace ReallifeGamemode.Server.Events
|
||||
if (serverMsg.Trim().Length == 0) return;
|
||||
NAPI.Player.GetPlayersInRadiusOfPlayer(10, player).ForEach(p =>
|
||||
{
|
||||
ChatService.SendMessage(p, $"{player.Name} sagt: {serverMsg}");//
|
||||
ChatService.SendMessage(p, $"{player.Name} sagt: {serverMsg}");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Server.Wanted;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Event Login (Login.cs)
|
||||
@@ -17,7 +14,7 @@ using ReallifeGamemode.Server.Wanted;
|
||||
|
||||
namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
class Connect : Script
|
||||
internal class Connect : Script
|
||||
{
|
||||
private readonly TimeSpan LightModeTimeFrom = new TimeSpan(5, 30, 0);
|
||||
private readonly TimeSpan LightModeTimeTo = new TimeSpan(21, 00, 0);
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Factions.Medic;
|
||||
using ReallifeGamemode.Server.Inventory;
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Server.Wanted;
|
||||
|
||||
/**
|
||||
@@ -66,7 +69,6 @@ namespace ReallifeGamemode.Server.Events
|
||||
User user = player.GetUser();
|
||||
if (user.JailTime <= 0)
|
||||
{
|
||||
|
||||
//MEDIC AUFTRAG
|
||||
MedicTask reviveTask = new MedicTask()
|
||||
{
|
||||
@@ -92,8 +94,35 @@ namespace ReallifeGamemode.Server.Events
|
||||
|
||||
//TODO PICTURE NOTIFICATION + SOUND für Medics
|
||||
|
||||
player.ClearAttachments();
|
||||
|
||||
using (var userDeath = new DatabaseContext())
|
||||
{
|
||||
List<UserItem> fItem = userDeath.UserItems.Where(u => u.UserId == user.Id).ToList();
|
||||
foreach (var item in fItem)
|
||||
{
|
||||
IItem iItem = InventoryManager.GetItemById(item.ItemId);
|
||||
if (iItem is IWeaponDealItem obj)
|
||||
{
|
||||
int amount = item.Amount;
|
||||
|
||||
Vector3 dropPosition = PlayerExtension.GetPositionFromPlayer(player, 0.6f, 0);
|
||||
//new Vector3(player.Position.X, player.Position.Y, player.Position.Z - 0.8f);
|
||||
Random r = new Random();
|
||||
GTANetworkAPI.Object grndObject;
|
||||
Vector3 textPos = dropPosition;
|
||||
|
||||
dropPosition.Z -= 1.05f;
|
||||
grndObject = NAPI.Object.CreateObject(3666746839, dropPosition, new Vector3(0, 0, r.Next(0, 360)), 255, 0);
|
||||
|
||||
GroundItem grndItem = new GroundItem { ItemId = iItem.Id, Amount = amount, Position = dropPosition };
|
||||
TextLabel grndTxtLbl = NAPI.TextLabel.CreateTextLabel(iItem.Name + " ~s~(~y~" + amount + "~s~)", textPos, 5, 0.5f, 4, new Color(255, 255, 255), false, 0);
|
||||
GroundItem.AddGroundItem(grndItem, grndObject, grndTxtLbl);
|
||||
|
||||
userDeath.Remove(item);
|
||||
}
|
||||
}
|
||||
|
||||
var dead = new Database.Entities.Logs.Death
|
||||
{
|
||||
VictimId = player.GetUser().Id,
|
||||
@@ -167,7 +196,6 @@ namespace ReallifeGamemode.Server.Events
|
||||
Jail.Check_PutBehindBars(player);
|
||||
}
|
||||
|
||||
|
||||
[RemoteEvent("RespawnPlayerAtHospital")]
|
||||
public void RespawnPlayerAtHospital(Player player)
|
||||
{
|
||||
|
||||
@@ -12,8 +12,8 @@ using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Services;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Database;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Collections.Generic;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
@@ -19,17 +17,17 @@ namespace ReallifeGamemode.Server.Events
|
||||
return;
|
||||
}
|
||||
|
||||
if (vehicle.HasMarkerBehind())
|
||||
vehicle.RemoveMarkerBehind();
|
||||
|
||||
if (vehicle.GetServerVehicle() is FactionVehicle veh)
|
||||
{
|
||||
User u = client.GetUser();
|
||||
if (u.FactionId != null && veh.GetOwners().Contains(u.FactionId.Value) && (veh.Model == VehicleHash.Burrito3) && vehicle.HasData("weaponDeal") && vehicle.GetData<bool>("weaponDeal") == true)
|
||||
{
|
||||
Vector3 vector = WeaponDealPoints.getRndWD_Route(client.GetUser().FactionId.Value);
|
||||
if (vector == new Vector3())
|
||||
return;
|
||||
List<Vector3> dealPoint = new List<Vector3>();
|
||||
dealPoint.Add(vector);
|
||||
CheckPointHandle.StartCheckPointRoute(client, dealPoint, 5000, 1, 7, 4, true, "loadWeaponTransport");
|
||||
dealPoint.Add(vehicle.GetData<Vector3>("weaponDealPoint"));
|
||||
CheckPointHandle.StartCheckPointRoute(client, dealPoint, 5000, 1, 7, "loadWeaponTransport");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@ using ReallifeGamemode.Server.Managers;
|
||||
|
||||
namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
|
||||
public class EnterVehicleAttempt : Script
|
||||
{
|
||||
public static GTANetworkAPI.Vehicle Roller;
|
||||
|
||||
@@ -8,7 +8,6 @@ using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Server.WeaponDeal;
|
||||
|
||||
namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
@@ -22,6 +21,7 @@ namespace ReallifeGamemode.Server.Events
|
||||
LastVehicle = vehicle;
|
||||
if (client.VehicleSeat != 0)
|
||||
return;
|
||||
|
||||
if (vehicle.GetServerVehicle() is FactionVehicle veh)
|
||||
{
|
||||
User u = client.GetUser();
|
||||
@@ -30,6 +30,10 @@ namespace ReallifeGamemode.Server.Events
|
||||
CheckPointHandle.RemovePlayerHandlerFromList(client);
|
||||
client.TriggerEvent("destroyCP");
|
||||
}
|
||||
else if ((u.FactionId != null) && (veh.GetOwners().Contains(u.FactionId ?? 0)) && ((VehicleHash)vehicle.Model == VehicleHash.Burrito3 || (VehicleHash)vehicle.Model == VehicleHash.Policet) && vehicle.HasData("WeaponDealLoad") && vehicle.GetData<bool>("WeaponDealLoad") == true)
|
||||
{
|
||||
client.TriggerEvent("SERVER:setMarkerBehindVehicle", vehicle);
|
||||
}
|
||||
}
|
||||
if (vehicle.GetServerVehicle() is SchoolVehicle vehS)
|
||||
{
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
class Faction : Script
|
||||
internal class Faction : Script
|
||||
{
|
||||
[RemoteEvent("OnFactionRanksEdit")]
|
||||
public void OnFactionRanksEdit(Player player, string jsonData)
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
@@ -61,7 +59,6 @@ namespace ReallifeGamemode.Server.Events
|
||||
iName.Add(iItem.Name);
|
||||
iAmount.Add(vehItem.Amount);
|
||||
iId.Add(iItem.Id);
|
||||
|
||||
}
|
||||
var vehInv = new VehicleInventory
|
||||
{
|
||||
@@ -76,6 +73,5 @@ namespace ReallifeGamemode.Server.Events
|
||||
}
|
||||
return vehicleInventory;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,21 +2,21 @@
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Server.Classes;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Classes;
|
||||
using ReallifeGamemode.Server.DrivingSchool;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Factions.Medic;
|
||||
using ReallifeGamemode.Server.Finance;
|
||||
using ReallifeGamemode.Server.Inventory;
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Database;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using ReallifeGamemode.Server.DrivingSchool;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Server.WeaponDeal;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Event Key (Key.cs)
|
||||
* @author VegaZ
|
||||
@@ -47,6 +47,7 @@ namespace ReallifeGamemode.Server.Events
|
||||
tempBlip.Transparency.ToString(), 200.ToString(), tempBlip.ShortRange.ToString(), 0.ToString(), 0.ToString());
|
||||
player.SendNotification("~y~Blip~s~ erstellt!", false);
|
||||
break;
|
||||
|
||||
case "atm":
|
||||
SaveManager.OnSaveBlipData(player, "500", "Geldautomat", 0.7.ToString(), "11",
|
||||
"0", "200", true.ToString(), 0.ToString(), 0.ToString());
|
||||
@@ -182,20 +183,73 @@ namespace ReallifeGamemode.Server.Events
|
||||
if (!player.IsLoggedIn()) return;
|
||||
var user = player.GetUser();
|
||||
|
||||
ElevatorPoint nearestElevatorPoint = PositionManager.ElevatorPoints.Find(e => e.Position.DistanceTo(player.Position) <= 1.6 && (user.FactionId == 1 || user.FactionId == 3));
|
||||
ClotheshopPoint nearestClotheShopPoint = PositionManager.clotheshopPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.6 && (!user.GetData<bool>("duty")));
|
||||
|
||||
ItemshopPoint nearestItemShopPoint = PositionManager.itemshopPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.6);
|
||||
JobPoint nearestJobPoint = PositionManager.JobPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.6);
|
||||
|
||||
if (user?.FactionId != null)
|
||||
{
|
||||
DutyPoint nearestDuty = PositionManager.DutyPoints.Find(d => d.Position.DistanceTo(player.Position) <= 1.6 && d.FactionId == user.FactionId);
|
||||
WeaponPoint nearestWeapon = PositionManager.WeaponPoints.Find(w => w.Position.DistanceTo(player.Position) <= 1.6 && w.FactionId == user.FactionId);
|
||||
JailReleasePoint nearestJailReleasePoint = PositionManager.JailReleasePoints.Find(j => j.Position.DistanceTo(player.Position) <= 1.6 && (user.FactionId == 1 || user.FactionId == 3) && user.GetData<bool>("duty"));
|
||||
DutyPoint nearestDuty = PositionManager.DutyPoints.Find(d => d.Position.DistanceTo(player.Position) <= 1.5 && d.FactionId == user.FactionId);
|
||||
WeaponPoint nearestWeapon = PositionManager.WeaponPoints.Find(w => w.Position.DistanceTo(player.Position) <= 1.5 && w.FactionId == user.FactionId);
|
||||
JailReleasePoint nearestJailReleasePoint = PositionManager.JailReleasePoints.Find(j => j.Position.DistanceTo(player.Position) <= 1.5 && (user.FactionId == 1 || user.FactionId == 3) && user.GetData<bool>("duty"));
|
||||
ElevatorPoint nearestElevatorPoint = PositionManager.ElevatorPoints.Find(e => e.Position.DistanceTo(player.Position) <= 1.5 && (user.FactionId == 1 || user.FactionId == 3));
|
||||
ClotheshopPoint nearestClotheShopPoint = PositionManager.clotheshopPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.5 && (!user.GetData<bool>("duty")));
|
||||
ItemshopPoint nearestItemShopPoint = PositionManager.itemshopPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.5);
|
||||
BehindVehiclePoint nearestBehindVehiclePoint = MarkerBehinVehicle.behindVehiclePoints.Find(s => s.marker.Position.DistanceTo(player.Position) <= 3 && (user.FactionId == 8 || user.FactionId == 7 || user.FactionId == 1 || user.FactionId == 3));
|
||||
|
||||
if (nearestBehindVehiclePoint != null)
|
||||
{
|
||||
if (player.HasAttachment("ammobox")) return;
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
List<VehicleItem> vehicleItems = dbContext.VehicleItems.Where(f => f.GetVehicle().GetVehicle() == nearestBehindVehiclePoint.vehicle && InventoryManager.GetItemById(f.ItemId) is IWeaponDealItem).ToList();
|
||||
if (vehicleItems.Count == 0)
|
||||
{
|
||||
GTANetworkAPI.Vehicle vehicle = nearestBehindVehiclePoint.vehicle;
|
||||
|
||||
if (nearestDuty != null && !player.IsInVehicle)// Duty Point
|
||||
if (WeaponDealManager.checkWeaponDbyVehicle(vehicle))
|
||||
{
|
||||
vehicle.ResetData("WeaponDealLoad");
|
||||
}
|
||||
|
||||
nearestBehindVehiclePoint.vehicle.RemoveMarkerBehind();
|
||||
|
||||
return;
|
||||
}
|
||||
foreach (var v in vehicleItems)
|
||||
{
|
||||
int itemToAdd = 0;
|
||||
for (int i = 1; i <= v.Amount; i++)
|
||||
{
|
||||
if (InventoryManager.GetUserInventoryWeight(player) + (i * InventoryManager.GetItemById(v.ItemId).Gewicht) > 40000)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
itemToAdd = i;
|
||||
}
|
||||
}
|
||||
if (itemToAdd == 0)
|
||||
break;
|
||||
|
||||
v.Amount -= itemToAdd;
|
||||
if (v.Amount <= 0)
|
||||
dbContext.VehicleItems.Remove(v);
|
||||
|
||||
var newItem = new UserItem()
|
||||
{
|
||||
ItemId = v.ItemId,
|
||||
Slot = v.Slot,
|
||||
Amount = itemToAdd,
|
||||
UserId = user.Id,
|
||||
};
|
||||
|
||||
InventoryManager.AddItemToInventory(player, newItem.Id, newItem.Amount);
|
||||
nearestBehindVehiclePoint.usePoint(player);
|
||||
dbContext.SaveChanges();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (nearestDuty != null)// Duty Point
|
||||
{
|
||||
var nameTagColor = new Color(0, 0, 0);
|
||||
var factionId = user.FactionId;
|
||||
@@ -275,7 +329,6 @@ namespace ReallifeGamemode.Server.Events
|
||||
|
||||
if (nearestWeapon != null) // Weapon Point
|
||||
{
|
||||
|
||||
List<string> primarys = new List<string>();
|
||||
List<string> secondarys = new List<string>();
|
||||
List<string> melees = new List<string>();
|
||||
@@ -287,10 +340,14 @@ namespace ReallifeGamemode.Server.Events
|
||||
melees.Add("Keine");
|
||||
specials.Add("Keine");
|
||||
|
||||
|
||||
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
if (player.HasAttachment("ammobox"))
|
||||
{
|
||||
player.AddAttachment("ammobox", true);
|
||||
player.StopAnimation();
|
||||
}
|
||||
|
||||
bool unloadedWeaponPackage = false;
|
||||
|
||||
List<UserItem> fItem = context.UserItems.Where(u => u.UserId == user.Id).ToList();
|
||||
@@ -301,7 +358,11 @@ namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
FactionWeapon weapon = context.FactionWeapons.Where(w => w.FactionId == user.FactionId && w.WeaponModel == iItem.Name).FirstOrDefault();
|
||||
if (weapon == null)
|
||||
{
|
||||
context.Remove(item);
|
||||
continue;
|
||||
}
|
||||
|
||||
weapon.Ammount += item.Amount;
|
||||
ChatService.SendMessage(player, item.Amount + " " + iItem.Name + " wurden im Waffenlager hinzugefürgt.");
|
||||
context.Remove(item);
|
||||
@@ -332,14 +393,17 @@ namespace ReallifeGamemode.Server.Events
|
||||
if (user.FactionRank.Order >= weapon.Rank)
|
||||
primarys.Add(weapon.WeaponModel.ToString());
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (user.FactionRank.Order >= weapon.Rank)
|
||||
secondarys.Add(weapon.WeaponModel.ToString());
|
||||
break;
|
||||
|
||||
case 3:
|
||||
if (user.FactionRank.Order >= weapon.Rank)
|
||||
melees.Add(weapon.WeaponModel.ToString());
|
||||
break;
|
||||
|
||||
case 4:
|
||||
if (user.FactionRank.Order >= weapon.Rank)
|
||||
specials.Add(weapon.WeaponModel.ToString());
|
||||
@@ -452,7 +516,8 @@ namespace ReallifeGamemode.Server.Events
|
||||
public void KeyPressI(Player player)
|
||||
{
|
||||
if (!player.IsLoggedIn()) return;
|
||||
InventoryManager.GetUserItems(player);
|
||||
player.TriggerEvent("inventoryShow");
|
||||
InventoryManager.SetBackpackItems(player);
|
||||
}
|
||||
|
||||
[RemoteEvent("keyPress:O")]
|
||||
@@ -507,9 +572,11 @@ namespace ReallifeGamemode.Server.Events
|
||||
case 11:
|
||||
tops.Add(cloth.ClothId.ToString());
|
||||
break;
|
||||
|
||||
case 4:
|
||||
legs.Add(cloth.ClothId.ToString());
|
||||
break;
|
||||
|
||||
case 6:
|
||||
shoes.Add(cloth.ClothId.ToString());
|
||||
break;
|
||||
@@ -519,7 +586,6 @@ namespace ReallifeGamemode.Server.Events
|
||||
player.TriggerEvent("showDutyClothMenu", hats.ToArray(), tops.ToArray(), legs.ToArray(), shoes.ToArray());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[RemoteEvent("keyPress:L")]
|
||||
@@ -693,7 +759,6 @@ namespace ReallifeGamemode.Server.Events
|
||||
|
||||
if (!player.IsInVehicle)
|
||||
{
|
||||
|
||||
Vehicle.VehicleMenuLockCarEvent(player);
|
||||
|
||||
GroundItem.PickUpGroundItem(player);
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Server.Wanted;
|
||||
using ReallifeGamemode.Database;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Event Login (Login.cs)
|
||||
@@ -102,12 +100,15 @@ namespace ReallifeGamemode.Server.Events
|
||||
case null:
|
||||
player.SetSharedData("blipColor", 0);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
player.SetSharedData("blipColor", 83);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
player.SetSharedData("blipColor", 52);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
player.SetSharedData("blipColor", 5);
|
||||
break;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
@@ -12,7 +11,7 @@ using Newtonsoft.Json;
|
||||
|
||||
namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
class Register : Script
|
||||
internal class Register : Script
|
||||
{
|
||||
[RemoteEvent("CLIENT:Login_RegisterRequest")]
|
||||
public void OnPlayerRegister(Player player, string password)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using GTANetworkAPI;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
using GTANetworkAPI;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
|
||||
namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
class Siren : Script
|
||||
internal class Siren : Script
|
||||
{
|
||||
private readonly Dictionary<NetHandle, bool> _sirenStates = new Dictionary<NetHandle, bool>();
|
||||
|
||||
@@ -21,7 +19,6 @@ namespace ReallifeGamemode.Server.Events
|
||||
pV.SetSharedData("sirenSound", newValue);
|
||||
|
||||
NAPI.ClientEvent.TriggerClientEventForAll("toggleVehicleSiren", pV, newValue);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -198,7 +198,6 @@ namespace ReallifeGamemode.Server.Events
|
||||
}
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
|
||||
var clothes = dbContext.CharacterClothes.FirstOrDefault(c => c.UserId == user.Id && c.SlotId == data[0] && c.Duty == false);
|
||||
|
||||
if (clothes == null)
|
||||
@@ -265,7 +264,6 @@ namespace ReallifeGamemode.Server.Events
|
||||
client.GetUser(dbContext).Handmoney -= data[6];
|
||||
dbContext.SaveChanges();
|
||||
client.TriggerEvent("SERVER:SET_HANDMONEY", user.Handmoney);
|
||||
|
||||
}
|
||||
client.TriggerEvent("clothesMenu:updateLast", data[2], data[1], data[4], data[5], data[3]);
|
||||
}
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
|
||||
|
||||
namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
public class UpdateCharacterElevator : Script
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
@@ -48,7 +47,6 @@ namespace ReallifeGamemode.Server.Events
|
||||
client.RemoveAllWeapons();
|
||||
}
|
||||
|
||||
|
||||
[RemoteEvent("saveWeaponSelection")]
|
||||
public void SaveWeaponSelection(Player client, string primaryModel, string secondaryModel, string meleeModel, string specialModel)
|
||||
{
|
||||
@@ -69,7 +67,6 @@ namespace ReallifeGamemode.Server.Events
|
||||
melee = NAPI.Util.GetHashKey($"weapon_{meleeModel}");
|
||||
}
|
||||
|
||||
|
||||
client.GiveWeapon((WeaponHash)primary, 50);
|
||||
client.GiveWeapon((WeaponHash)secondary, 150);
|
||||
client.GiveWeapon((WeaponHash)melee, 1);
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
using System;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using System;
|
||||
|
||||
namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
@@ -175,7 +174,6 @@ namespace ReallifeGamemode.Server.Events
|
||||
msg += state ? "~g~abgeschlossen" : "~r~aufgeschlossen";
|
||||
player.TriggerEvent("vehsync:OpenCar", state);
|
||||
player.SendNotification(msg);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -280,7 +278,5 @@ namespace ReallifeGamemode.Server.Events
|
||||
VehicleStreaming.SetDoorState(veh, doorId, DoorState.DoorClosed);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ using GTANetworkAPI;
|
||||
|
||||
namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
class Voice : Script
|
||||
internal class Voice : Script
|
||||
{
|
||||
[RemoteEvent("CLIENT:AddVoiceListener")]
|
||||
public void AddPlayerVoiceListenerEvent(Player player, Player target)
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
using GTANetworkAPI;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Player Extension (PlayerExtension.cs)
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using ReallifeGamemode.Database;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using static ReallifeGamemode.Server.Types.AdminLevel;
|
||||
|
||||
@@ -21,18 +16,24 @@ namespace ReallifeGamemode.Server.Extensions
|
||||
{
|
||||
case MAPPING:
|
||||
return "Mapper";
|
||||
|
||||
case ENTWICKLUNG:
|
||||
return "Entwickler";
|
||||
|
||||
case SUPPORTER:
|
||||
return "Supporter";
|
||||
|
||||
case ADMIN:
|
||||
case ADMIN2:
|
||||
case ADMIN3:
|
||||
return "Admin";
|
||||
|
||||
case HEADADMIN:
|
||||
return "Headadmin";
|
||||
|
||||
case PROJEKTLEITUNG:
|
||||
return "Projektleiter";
|
||||
|
||||
default:
|
||||
return "Spieler";
|
||||
}
|
||||
@@ -44,10 +45,13 @@ namespace ReallifeGamemode.Server.Extensions
|
||||
{
|
||||
case GroupRank.OWNER:
|
||||
return "Besitzer";
|
||||
|
||||
case GroupRank.MANAGER:
|
||||
return "Manager";
|
||||
|
||||
case GroupRank.MEMBER:
|
||||
return "Mitglied";
|
||||
|
||||
default:
|
||||
return "Keiner";
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
using System.Linq;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using System.Linq;
|
||||
|
||||
namespace ReallifeGamemode.Server.Extensions
|
||||
{
|
||||
static class HouseExtensions
|
||||
internal static class HouseExtensions
|
||||
{
|
||||
public static House Refresh(this House house)
|
||||
{
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace ReallifeGamemode.Server.Extensions
|
||||
{
|
||||
public static class IntegerExtension
|
||||
@@ -10,6 +6,7 @@ namespace ReallifeGamemode.Server.Extensions
|
||||
{
|
||||
return ToMoneyString(money ?? 0);
|
||||
}
|
||||
|
||||
public static string ToMoneyString(this int money)
|
||||
{
|
||||
return "$" + string.Format(Main.SERVER_CULTURE, "{0:C0}", money).Replace("€", "").Trim();
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
using GTANetworkAPI;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
|
||||
namespace ReallifeGamemode.Server.Extensions
|
||||
{
|
||||
static class ListExtensions
|
||||
internal static class ListExtensions
|
||||
{
|
||||
public static bool Contains(this List<Player> list, Player client)
|
||||
{
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Server.Job;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using GTANetworkAPI;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using System.Linq;
|
||||
|
||||
namespace ReallifeGamemode.Server.Extensions
|
||||
{
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Collections.Generic;
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Server Factions Medic Medic.cs
|
||||
@@ -11,7 +8,6 @@ using ReallifeGamemode.Server.Services;
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
*/
|
||||
|
||||
|
||||
namespace ReallifeGamemode.Server.Factions.Medic
|
||||
{
|
||||
public class Medic : Script
|
||||
@@ -32,9 +28,11 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
case MedicTaskType.REVIVE:
|
||||
ReviveTasks.Add(task);
|
||||
break;
|
||||
|
||||
case MedicTaskType.HEAL:
|
||||
HealTasks.Add(task);
|
||||
break;
|
||||
|
||||
case MedicTaskType.FIRE:
|
||||
FireTasks.Add(task);
|
||||
break;
|
||||
@@ -53,14 +51,17 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
case MedicTaskType.REVIVE:
|
||||
ReviveTasks.Remove(task);
|
||||
break;
|
||||
|
||||
case MedicTaskType.HEAL:
|
||||
HealTasks.Remove(task);
|
||||
break;
|
||||
|
||||
case MedicTaskType.FIRE:
|
||||
FireTasks.Remove(task);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
[RemoteEvent("loadMedicTasks")]
|
||||
public void LoadMedicTasks(Player player, int type)
|
||||
{
|
||||
@@ -69,14 +70,17 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
case 0:
|
||||
player.TriggerEvent("showMedicTasks", 0, JsonConvert.SerializeObject(ReviveTasks));
|
||||
break;
|
||||
|
||||
case 1:
|
||||
player.TriggerEvent("showMedicTasks", 1, JsonConvert.SerializeObject(HealTasks));
|
||||
break;
|
||||
|
||||
case 2:
|
||||
player.TriggerEvent("showMedicTasks", 2, JsonConvert.SerializeObject(FireTasks));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
[RemoteEvent("updateMedicTask")]
|
||||
public void UpdateMedicTasks(Player player, int type, int index, string medicName)
|
||||
{
|
||||
@@ -85,9 +89,11 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
case 0:
|
||||
ReviveTasks[index].MedicName = medicName;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
HealTasks[index].MedicName = medicName;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
FireTasks[index].MedicName = medicName;
|
||||
break;
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
|
||||
/**
|
||||
@@ -9,7 +7,6 @@ using GTANetworkAPI;
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
*/
|
||||
|
||||
|
||||
namespace ReallifeGamemode.Server.Factions.Medic
|
||||
{
|
||||
public class MedicTask
|
||||
|
||||
@@ -1,19 +1,18 @@
|
||||
/***
|
||||
@overview Life of German - Economy
|
||||
/***
|
||||
@overview Life of German - Economy
|
||||
@author kookroach
|
||||
@copyright (c) 2008 - 2019 Life of German
|
||||
@copyright (c) 2008 - 2019 Life of German
|
||||
*/
|
||||
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Server.Wanted;
|
||||
@@ -53,7 +52,6 @@ namespace ReallifeGamemode.Server.Finance
|
||||
}
|
||||
vehicleTaxation += (int)(uVeh.Price * 0.005f);
|
||||
}
|
||||
|
||||
}
|
||||
return vehicleTaxation;
|
||||
}
|
||||
@@ -86,7 +84,6 @@ namespace ReallifeGamemode.Server.Finance
|
||||
healthInsurance = 0;
|
||||
}
|
||||
|
||||
|
||||
int? factionMoney = null;
|
||||
|
||||
if (user.Faction != null && user.FactionRank != null)
|
||||
|
||||
@@ -1,13 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace ReallifeGamemode.Server.Finance
|
||||
{
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
@@ -207,14 +206,14 @@ namespace ReallifeGamemode.Server.Gangwar
|
||||
{
|
||||
foreach (var turf in getTurfs())
|
||||
{
|
||||
if((turf.getValue() + 5) >= turf.getMaxValue())
|
||||
if ((turf.getValue() + 5) >= turf.getMaxValue())
|
||||
{
|
||||
turf.setValue(turf.getMaxValue());
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
turf.addValue(5);
|
||||
}
|
||||
}
|
||||
values.Add(turf.getValue());
|
||||
Turfs _turf = dbContext.Turfs.Where(t => t.Id == turf.getId()).FirstOrDefault();
|
||||
_turf.Value = turf.getValue();
|
||||
|
||||
@@ -1,21 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using System.Timers;
|
||||
using System.Linq;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using Newtonsoft.Json;
|
||||
using System.Timers;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
|
||||
namespace ReallifeGamemode.Server.Gangwar
|
||||
{
|
||||
public class Turf
|
||||
{
|
||||
|
||||
public int TurfID { get; set; }
|
||||
public string TurfName { get; set; }
|
||||
public int Color { get; set; }
|
||||
@@ -32,8 +30,7 @@ namespace ReallifeGamemode.Server.Gangwar
|
||||
public Player[] playerInGangwar { get; set; }
|
||||
public int timerCount;
|
||||
|
||||
|
||||
public Turf(int TurfID, string TurfName, int color, string Owner, int value, int maxValue,bool surplus)
|
||||
public Turf(int TurfID, string TurfName, int color, string Owner, int value, int maxValue, bool surplus)
|
||||
{
|
||||
this.TurfID = TurfID;
|
||||
this.TurfName = TurfName;
|
||||
@@ -124,11 +121,10 @@ namespace ReallifeGamemode.Server.Gangwar
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void update()
|
||||
{
|
||||
#region Ticket system
|
||||
|
||||
/*
|
||||
try
|
||||
{
|
||||
@@ -151,7 +147,9 @@ namespace ReallifeGamemode.Server.Gangwar
|
||||
if(owners.Length < attackers.Length)
|
||||
this.Def_Score -= attackers.Length - owners.Length;
|
||||
*/
|
||||
#endregion
|
||||
|
||||
#endregion Ticket system
|
||||
|
||||
foreach (Player gangwarPlayer in this.playerInGangwar)
|
||||
{
|
||||
gangwarPlayer.TriggerEvent("GangwarScore", this.Attacker, this.Owner, this.Att_Score, this.Def_Score);
|
||||
@@ -276,7 +274,6 @@ namespace ReallifeGamemode.Server.Gangwar
|
||||
turf.FactionId = dbContext.Factions.Where(f => f.Name == this.Owner).FirstOrDefault().Id;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
}
|
||||
this.Attacker = null;
|
||||
foreach (var c in playerInGangwar)
|
||||
@@ -303,15 +300,14 @@ namespace ReallifeGamemode.Server.Gangwar
|
||||
if (ownersInGangwar.Count < 1 && attackersInGangwar.Count < 1)
|
||||
{
|
||||
List<Player> leaders = context.Users.Include(u => u.Faction).Where(u => onlinePlayers.Contains(u.Name) && u.Faction.Name == attacker && u.FactionLeader).Select(u => u.Player).ToList();
|
||||
foreach(var l in leaders)
|
||||
foreach (var l in leaders)
|
||||
{
|
||||
ChatService.ErrorMessage(l, "Gangwarstart ist nicht möglich, da die beteiligten Fraktionen nicht genügend Mitglieder aufweisen.");
|
||||
}
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
List<Player> inGangwar = new List<Player>(ownersInGangwar.Concat(attackersInGangwar));
|
||||
|
||||
|
||||
usersInGangwar = inGangwar.ToArray();
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using System.Linq;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
|
||||
namespace ReallifeGamemode.Server.Inventory
|
||||
{
|
||||
@@ -34,10 +34,12 @@ namespace ReallifeGamemode.Server.Inventory
|
||||
var invWeight = InventoryManager.GetUserInventoryWeight(player);
|
||||
var itemsToAdd = 0;
|
||||
GTANetworkAPI.Object nearestObject = GroundObjects.FirstOrDefault(d => d.Position == nearest.Position);
|
||||
TextLabel nearestTextLabel = GroundTextLabels.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));
|
||||
IItem nearestItem = InventoryManager.GetItemById(nearest.ItemId);
|
||||
UserItem existingItem = InventoryManager.UserHasThisItem(player, nearest.ItemId);
|
||||
var user = player.GetUser();
|
||||
if (player.HasAttachment("ammobox"))
|
||||
{ player.SendNotification("~r~Du kannst momentan nichts tragen!", false); return; }
|
||||
if (nearestItem.Gewicht * nearest.Amount + invWeight > 40000)
|
||||
{
|
||||
for (var i = 1; i <= nearest.Amount; i++)
|
||||
@@ -69,7 +71,7 @@ namespace ReallifeGamemode.Server.Inventory
|
||||
else
|
||||
{
|
||||
UserItem newItem = new UserItem { ItemId = nearest.ItemId, UserId = user.Id, Amount = nearest.Amount };
|
||||
InventoryManager.AddItemToInventory(player, newItem);
|
||||
InventoryManager.AddItemToInventory(player, newItem.ItemId, newItem.Amount);
|
||||
}
|
||||
nearest.Amount -= itemsToAdd;
|
||||
nearestTextLabel.Text = nearestItem.Name + " ~s~(~y~" + nearest.Amount + "~s~)";
|
||||
@@ -90,11 +92,20 @@ namespace ReallifeGamemode.Server.Inventory
|
||||
else
|
||||
{
|
||||
UserItem item = new UserItem() { ItemId = nearest.ItemId, UserId = user.Id, Amount = nearest.Amount };
|
||||
InventoryManager.AddItemToInventory(player, item);
|
||||
InventoryManager.AddItemToInventory(player, item.ItemId, item.Amount);
|
||||
}
|
||||
RemoveGroundItem(nearest, nearestObject, nearestTextLabel);
|
||||
player.SendNotification("Du hast ~g~" + nearest.Amount + " ~y~" + nearestItem.Name + " ~s~aufgehoben.");
|
||||
}
|
||||
if (nearestItem is IWeaponDealItem obj)
|
||||
{
|
||||
if (!player.HasAttachment("ammobox"))
|
||||
{
|
||||
player.PlayAnimation("anim@heists@box_carry@", "idle", 49);
|
||||
player.AddAttachment("ammobox", false);
|
||||
NAPI.Player.SetPlayerCurrentWeapon(player, WeaponHash.Unarmed);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -108,4 +119,3 @@ namespace ReallifeGamemode.Server.Inventory
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
/**
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Interfaces Item (IItem.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Interfaces UsableItem (IUsableItem.cs)
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
|
||||
namespace ReallifeGamemode.Server.Inventory.Interfaces
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
/**
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Items Hamburger (Hamburger.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
/**
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Items Hamburger (Hamburger.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Items Hamburger (Hamburger.cs)
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
/**
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Items Hamburger (Hamburger.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
@@ -19,6 +14,6 @@ namespace ReallifeGamemode.Server.Inventory.Items
|
||||
public override int Gewicht => 4000;
|
||||
public override string Einheit => "g";
|
||||
public override uint Object => 3666746839; //3061944032
|
||||
public override int Price => 0;
|
||||
public override int Price => 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
/**
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Items Cheeseburger (Cheeseburger.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
@@ -21,6 +16,5 @@ namespace ReallifeGamemode.Server.Inventory.Items
|
||||
public override int HpAmount => 20;
|
||||
public override uint Object => 2240524752;
|
||||
public override int Price => 150;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
/**
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Items Chickenburger (Chickenburger.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
|
||||
@@ -3,9 +3,6 @@ using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace ReallifeGamemode.Server.Inventory.Items
|
||||
{
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
/**
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Items Hamburger (Hamburger.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
|
||||
@@ -3,9 +3,6 @@ using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace ReallifeGamemode.Server.Inventory.Items
|
||||
{
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
/**
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Items Hamburger (Hamburger.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
/**
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Items Hamburger (Hamburger.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
/**
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Items Hamburger (Hamburger.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
/**
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Items Hamburger (Hamburger.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
/**
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Items Hamburger (Hamburger.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
/**
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Items Hamburger (Hamburger.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
/**
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Items Hamburger (Hamburger.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
|
||||
@@ -2,10 +2,6 @@
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace ReallifeGamemode.Server.Inventory.Items
|
||||
{
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
/**
|
||||
/**
|
||||
* @overview Life of German Reallife - Inventory Items Hamburger (Hamburger.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace ReallifeGamemode.Server.Job
|
||||
{
|
||||
public abstract class JobBase : Script
|
||||
{
|
||||
public delegate void JobStartHandler(Player player);
|
||||
|
||||
public delegate void JobStopHandler(Player player);
|
||||
|
||||
public event JobStartHandler JobStart;
|
||||
|
||||
public event JobStopHandler JobStop;
|
||||
|
||||
private readonly List<Player> _inJob = new List<Player>();
|
||||
@@ -59,6 +60,7 @@ namespace ReallifeGamemode.Server.Job
|
||||
}
|
||||
|
||||
public static List<Player> GetPlayerInJob() => jobPlayer;
|
||||
|
||||
public List<Player> GetUsersInJob() => _inJob;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
@@ -10,7 +9,7 @@ using ReallifeGamemode.Server.Managers;
|
||||
|
||||
namespace ReallifeGamemode.Server.Job
|
||||
{
|
||||
class PilotJob : JobBase
|
||||
internal class PilotJob : JobBase
|
||||
{
|
||||
public override int Id => 3;
|
||||
|
||||
@@ -90,8 +89,6 @@ namespace ReallifeGamemode.Server.Job
|
||||
new Vector3(-710.89, -1836.81, 355.46),
|
||||
}.AsReadOnly();
|
||||
|
||||
|
||||
|
||||
public PilotJob()
|
||||
{
|
||||
JobStart += PilotJob_JobStart;
|
||||
@@ -106,7 +103,6 @@ namespace ReallifeGamemode.Server.Job
|
||||
|
||||
if ((VehicleHash)veh.Model == VehicleHash.Velum || (VehicleHash)veh.Model == VehicleHash.Velum2)
|
||||
{
|
||||
|
||||
listRouteTexts2.Add("Route 4");
|
||||
listRouteTexts2.Add("Route 5");
|
||||
listRouteTexts2.Add("Route 6");
|
||||
@@ -151,7 +147,6 @@ namespace ReallifeGamemode.Server.Job
|
||||
break;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
[RemoteEvent("startPilotRoute")]
|
||||
public void StartPilotRoute(Player player, string type)
|
||||
{
|
||||
|
||||
@@ -202,6 +202,7 @@ namespace ReallifeGamemode.Server.Job
|
||||
Player target = data.getPartnerClient(player);
|
||||
if (target != null) target.TriggerEvent("MuellmannUpdateColshape", colshapeIndex);
|
||||
ChatService.SendMessage((Player)player, "Du hast den Müllsack in der Hand. Bringe ihm zum Müllwagen hinten.");
|
||||
player.AddAttachment("binbag", false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -213,14 +214,10 @@ namespace ReallifeGamemode.Server.Job
|
||||
{
|
||||
if (data.getDataFromClient(player) == null) continue;
|
||||
|
||||
int count = data.getTrashCount();
|
||||
count++;
|
||||
data.setTrashCount(count);
|
||||
data.setTrashCount(data.getTrashCount() + 1);
|
||||
|
||||
Player target = data.getPartnerClient(player);
|
||||
if (target != null) ChatService.SendMessage((Player)target, $"Es sind jetzt {count} Säcke im Müllwagen.");
|
||||
ChatService.SendMessage((Player)player, $"Es sind jetzt {count} Säcke im Müllwagen.");
|
||||
|
||||
player.AddAttachment("binbag", true);
|
||||
if (data.getTrashCount() >= 20)
|
||||
{
|
||||
ChatService.SendMessage((Player)player, "Auto ist voll fahre nun zu Base.");
|
||||
@@ -241,11 +238,9 @@ namespace ReallifeGamemode.Server.Job
|
||||
{
|
||||
if (data.getDataFromClient(player) == null) continue;
|
||||
|
||||
int count = data.getTrashCount();
|
||||
|
||||
Player target = data.getPartnerClient(player);
|
||||
if (target != null) ChatService.SendMessage((Player)target, $"Fahrzeug wurde entleert. Säcke: {count}");
|
||||
ChatService.SendMessage((Player)player, $"Fahrzeug wurde entleert. Säcke: {count}");
|
||||
if (target != null) ChatService.SendMessage((Player)target, $"Fahrzeug wurde entleert. Säcke: {data.getTrashCount()}");
|
||||
ChatService.SendMessage((Player)player, $"Fahrzeug wurde entleert. Säcke: {data.getTrashCount()}");
|
||||
//bonus pro sack
|
||||
|
||||
data.setTrashCount(0);
|
||||
@@ -331,7 +326,7 @@ namespace ReallifeGamemode.Server.Job
|
||||
}
|
||||
CheckDataForDuplicatePlayer(player, data);
|
||||
data.setClientToData(player);
|
||||
|
||||
//destroy veh
|
||||
MuellmannJobStarten(player, vehicle);
|
||||
|
||||
target = data.getPartnerClient(player);
|
||||
|
||||
@@ -1,21 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using System.Timers;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
|
||||
namespace ReallifeGamemode.Server.Job
|
||||
{
|
||||
class TaxiDriverJob : JobBase
|
||||
internal class TaxiDriverJob : JobBase
|
||||
{
|
||||
public List<TaxiContract> TaxiContracts { get; set; } = new List<TaxiContract>();
|
||||
|
||||
@@ -27,7 +24,6 @@ namespace ReallifeGamemode.Server.Job
|
||||
|
||||
public override bool NeedVehicleToStart => true;
|
||||
|
||||
|
||||
private static TaxiDriverJob _Instance;
|
||||
|
||||
public TaxiDriverJob()
|
||||
@@ -42,6 +38,7 @@ namespace ReallifeGamemode.Server.Job
|
||||
_Instance = new TaxiDriverJob();
|
||||
return _Instance;
|
||||
}
|
||||
|
||||
private void TaxiDriverJobJobStart(Player player)
|
||||
{
|
||||
player.Vehicle.SetSharedData("vehicleTaxiLight", true);
|
||||
@@ -89,24 +86,23 @@ namespace ReallifeGamemode.Server.Job
|
||||
dbContext.SaveChanges();
|
||||
target.Player.TriggerEvent("SERVER:SET_HANDMONEY", target.Handmoney);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
public static void StartTaxiTimer()
|
||||
{
|
||||
Timer timer = new Timer(500);
|
||||
timer.Start();
|
||||
timer.Elapsed += UpdateFare;
|
||||
}
|
||||
*/
|
||||
/*
|
||||
public static void StartTaxiTimer()
|
||||
{
|
||||
Timer timer = new Timer(500);
|
||||
timer.Start();
|
||||
timer.Elapsed += UpdateFare;
|
||||
}
|
||||
*/
|
||||
|
||||
public static void UpdateFare()
|
||||
{
|
||||
foreach (var player in GetPlayerInJob())
|
||||
{
|
||||
User u = player.GetUser();
|
||||
if (u.JobId != 1) return;
|
||||
if (u.JobId != 1) return;
|
||||
Console.WriteLine(player.Name);
|
||||
if (!player.HasData("hasPassager")) { player.SetData<bool>("hasPassager", false); continue; }
|
||||
int playerId = player.GetUser().Id;
|
||||
@@ -124,9 +120,7 @@ namespace ReallifeGamemode.Server.Job
|
||||
{
|
||||
occupant.TriggerEvent("CLIENT:updateFare", JsonConvert.SerializeObject(distance));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,26 +1,19 @@
|
||||
using System.Globalization;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Classes;
|
||||
using ReallifeGamemode.Server.Finance;
|
||||
using ReallifeGamemode.Server.Common;
|
||||
using ReallifeGamemode.Server.Core.API;
|
||||
using ReallifeGamemode.Server.Core.Events;
|
||||
using ReallifeGamemode.Server.Core.RageMP;
|
||||
using ReallifeGamemode.Server.DrivingSchool;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Server.Wanted;
|
||||
using ReallifeGamemode.Server.DrivingSchool;
|
||||
using ReallifeGamemode.Server.WeaponDeal;
|
||||
using ReallifeGamemode.Server.Core.API;
|
||||
using ReallifeGamemode.Server.Core.RageMP;
|
||||
using ReallifeGamemode.Server.Core.Events;
|
||||
using System.Collections.Generic;
|
||||
using ReallifeGamemode.Server.Common;
|
||||
using System.Reflection;
|
||||
using System.Linq;
|
||||
using ReallifeGamemode.Server.Job;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Services;
|
||||
using System.Threading;
|
||||
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Managers ATMManager (ATMManager.cs)
|
||||
@@ -59,6 +57,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
LoadATMs();
|
||||
}
|
||||
}
|
||||
|
||||
public static void LoadATMs()
|
||||
{
|
||||
using (var dbContext = new DatabaseContext())
|
||||
@@ -73,14 +72,17 @@ namespace ReallifeGamemode.Server.Managers
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void EnterATMRange(ColShape colShape, Player client)
|
||||
{
|
||||
client.SetData("nearATM", colShape.GetData<int>("id"));
|
||||
}
|
||||
|
||||
public static void ExitATMRange(ColShape colShape, Player client)
|
||||
{
|
||||
client.ResetData("nearATM");
|
||||
}
|
||||
|
||||
public static void ShowAtmUi(Player player, int atmId)
|
||||
{
|
||||
player.TriggerEvent("SERVER:ShowAtmUi", atmId);
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Server.Business;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Database;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Database.Entities.Logs;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Entities.Logs;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Managers BankManager (BankManager.cs)
|
||||
|
||||
@@ -1,22 +1,21 @@
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Server.Business;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using ReallifeGamemode.Database;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Business;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
|
||||
namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
class BusinessManager : Script
|
||||
internal class BusinessManager : Script
|
||||
{
|
||||
public static List<BusinessBase> Businesses { get; private set; }
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
|
||||
namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
@@ -11,9 +11,10 @@ namespace ReallifeGamemode.Server.Managers
|
||||
[RemoteEvent("creator_GenderChange")]
|
||||
public void changeGender(Player player, int gender)
|
||||
{
|
||||
if(gender == 0) player.SetSkin(PedHash.FreemodeMale01);
|
||||
if (gender == 0) player.SetSkin(PedHash.FreemodeMale01);
|
||||
else player.SetSkin(PedHash.FreemodeFemale01);
|
||||
}
|
||||
|
||||
[RemoteEvent("creatorSave")]
|
||||
public void CreatorSave(Player player, bool gender, string parentData, string featureData, string appearanceData, string hairAndColorData)
|
||||
{
|
||||
@@ -304,7 +305,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
player.SetHeadOverlay(11, blemishes);
|
||||
player.SetHeadOverlay(12, blemishes);
|
||||
|
||||
|
||||
//Gesicht (Vererbung durch Mutter / Vater)
|
||||
HeadBlend headBlend = new HeadBlend()
|
||||
{
|
||||
@@ -326,7 +326,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
//Augenfarbe
|
||||
NAPI.Player.SetPlayerEyeColor(player, character.EyeColor);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,15 @@
|
||||
using GTANetworkAPI;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using ReallifeGamemode.Database;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
|
||||
namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
class CityHallManager : Script
|
||||
internal class CityHallManager : Script
|
||||
{
|
||||
private static readonly Vector3 _cityHallPosition = new Vector3(273.22, -278.14, 53.9);
|
||||
|
||||
|
||||
@@ -2,11 +2,10 @@
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Database;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Managers BankManager (BankManager.cs)
|
||||
* @author VegaZ
|
||||
|
||||
@@ -1,21 +1,22 @@
|
||||
using GTANetworkAPI;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Job;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using ReallifeGamemode.Database;
|
||||
using ReallifeGamemode.Services;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Services;
|
||||
|
||||
using ReallifeGamemode.Server.Types;
|
||||
|
||||
using System.Buffers;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using ReallifeGamemode.Server.Events;
|
||||
using System;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Managers Interaction (InteractionManager.cs)
|
||||
@@ -27,9 +28,8 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
public class InteractionManager : Script
|
||||
{
|
||||
#region Umgebungsinteraktionen PFEILTASTE-HOCH
|
||||
#endregion
|
||||
#region Eigeninteraktionen PFEILTASTE-RUNTER
|
||||
|
||||
[RemoteEvent("CLIENT:InteractionMenu_AcceptInvite")]
|
||||
public void InteractionMenuAcceptInvite(Player player, string type)
|
||||
{
|
||||
@@ -75,12 +75,15 @@ namespace ReallifeGamemode.Server.Managers
|
||||
default:
|
||||
player.SetSharedData("blipColor", 0);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
player.SetSharedData("blipColor", 83);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
player.SetSharedData("blipColor", 52);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
player.SetSharedData("blipColor", 5);
|
||||
break;
|
||||
@@ -121,6 +124,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[RemoteEvent("CLIENT:InteractionMenu_EndShow")]
|
||||
public void InteractionMenuEndShow(Player client)
|
||||
{
|
||||
@@ -165,7 +169,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
licenses.Add(playerUser.FlyingLicensePlane);
|
||||
licenses.Add(playerUser.WeaponLicense);
|
||||
target.TriggerEvent("ShowLicenses", player.Name, licenses.ToArray());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -310,7 +313,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
|
||||
target.GetUser(dbContext).Group = null;
|
||||
target.GetUser(dbContext).GroupRank = GroupRank.NONE;
|
||||
|
||||
@@ -451,8 +453,8 @@ namespace ReallifeGamemode.Server.Managers
|
||||
player.SendNotification("~r~Du kannst nur zwischen 1$ und 10000$ angeben!");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[RemoteEvent("CLIENT:InteractionMenu_LSPD_Points3")]
|
||||
public void InteractionMenu_LSPD_Points3(Player player, string jsonNameOrId, string jsoAmount, string jsonReason)
|
||||
{
|
||||
@@ -524,7 +526,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
target.SendNotification($"~w~Grund: ~g~{reason}~w~. ~x~Du hast nun ~y~{target.GetUser().Points}/8 ~x~Strafpunkten.", true);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -532,6 +533,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[RemoteEvent("CLIENT:InteractionMenu_Ticket")]
|
||||
public void InteractionMenuTicket(Player target, string type, int ticket_amount)
|
||||
{
|
||||
@@ -572,7 +574,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
target.ResetData("ticket_boolean");
|
||||
target.ResetData("ticket_amount");
|
||||
target.ResetData("ticket_player");
|
||||
|
||||
}
|
||||
else if (type == "Abgelehnt")
|
||||
{
|
||||
@@ -583,8 +584,11 @@ namespace ReallifeGamemode.Server.Managers
|
||||
target.ResetData("ticket_player");
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endregion Eigeninteraktionen PFEILTASTE-RUNTER
|
||||
|
||||
#region Spielerinteraktionen PFEILTASTE-LINKS
|
||||
|
||||
[RemoteEvent("openTradeInventory")]
|
||||
public void OpenTradeInventory(Player player, string targetPlayer)
|
||||
{
|
||||
@@ -643,8 +647,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
tradeRequester.TriggerEvent("unlockTradeItems");
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region Fraktionsinteraktionen / Jobinteraktionen PFEILTASTE-RECHTS
|
||||
#endregion
|
||||
|
||||
#endregion Spielerinteraktionen PFEILTASTE-LINKS
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
using GTANetworkAPI;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Timers;
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Inventory;
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using System;
|
||||
using System.Timers;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Services;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
|
||||
@@ -31,6 +31,85 @@ namespace ReallifeGamemode.Server.Managers
|
||||
private static Dictionary<int, Timer> TradeTimer { get; set; } = new Dictionary<int, Timer>();
|
||||
private static Dictionary<int, int> TradeValue { get; set; } = new Dictionary<int, int>();
|
||||
|
||||
public static Dictionary<Player, List<InventoryItem>> backpackItems { get; set; } = new Dictionary<Player, List<InventoryItem>>();
|
||||
public static Dictionary<Player, List<InventoryItem>> vehicleItems { get; set; } = new Dictionary<Player, List<InventoryItem>>();
|
||||
|
||||
public class InventoryItem
|
||||
{
|
||||
public string Name;
|
||||
public int Amount;
|
||||
public int ItemId;
|
||||
public int Weight;
|
||||
public Vehicle vehicle;
|
||||
}
|
||||
|
||||
public static void SetBackpackItems(Player player)
|
||||
{
|
||||
List<UserItem> itemList = GetUserItems(player);
|
||||
if (itemList == null) return;
|
||||
|
||||
if (!backpackItems.ContainsKey(player))
|
||||
backpackItems.Add(player, new List<InventoryItem>());
|
||||
|
||||
backpackItems[player] = new List<InventoryItem>();
|
||||
|
||||
foreach (var i in itemList)
|
||||
{
|
||||
var newItem = new InventoryItem()
|
||||
{
|
||||
Name = GetItemById(i.ItemId).Name,
|
||||
Amount = i.Amount,
|
||||
ItemId = i.ItemId,
|
||||
Weight = GetUserInventoryWeight(player),
|
||||
};
|
||||
backpackItems[player].Add(newItem);
|
||||
}
|
||||
|
||||
player.SetSharedData("backpackItems", JsonConvert.SerializeObject(backpackItems[player].ToArray()));
|
||||
}
|
||||
|
||||
[RemoteEvent("CLIENT:getVehicleInventory")]
|
||||
public static void SetVehicleItems(Player player)
|
||||
{
|
||||
if (player.IsInVehicle)
|
||||
{
|
||||
player.TriggerEvent("Error", "Du kannst dein Kofferraum nicht betätigen.");
|
||||
}
|
||||
Vehicle veh = NAPI.Pools.GetAllVehicles().ToList().Where(v => v.Position.DistanceTo(player.Position) <= 2).FirstOrDefault();
|
||||
if (veh == null)
|
||||
{
|
||||
player.TriggerEvent("Error", "Kein Fahrzeug in der Nähe !");
|
||||
return;
|
||||
}
|
||||
List<VehicleItem> itemList = GetVehicleItems(veh);
|
||||
|
||||
if (itemList == null)
|
||||
{
|
||||
player.TriggerEvent("Error", "Kofferraum ist leer !");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!vehicleItems.ContainsKey(player))
|
||||
vehicleItems.Add(player, new List<InventoryItem>());
|
||||
//VehicleStreaming.SetDoorState(veh, DoorID.DoorTrunk, DoorState.DoorOpen);
|
||||
|
||||
vehicleItems[player] = new List<InventoryItem>();
|
||||
|
||||
foreach (var i in itemList)
|
||||
{
|
||||
var newItem = new InventoryItem
|
||||
{
|
||||
Name = GetItemById(i.ItemId).Name,
|
||||
Amount = i.Amount,
|
||||
ItemId = i.ItemId,
|
||||
Weight = GetVehicleInventoryWeight(veh),
|
||||
vehicle = veh,
|
||||
};
|
||||
vehicleItems[player].Add(newItem);
|
||||
}
|
||||
|
||||
player.SetSharedData("vehicleItems", JsonConvert.SerializeObject(vehicleItems[player].ToArray()));
|
||||
}
|
||||
|
||||
public static void LoadItems()
|
||||
{
|
||||
@@ -79,43 +158,48 @@ namespace ReallifeGamemode.Server.Managers
|
||||
dbContext.Remove(userItem);
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
Player player = user.Player;
|
||||
|
||||
List<UserItem> itemList = GetUserItems(player);
|
||||
if (itemList == null) return;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
public static void GetUserItems(Player player)
|
||||
public static void RemoveVehicleItem(ServerVehicle sVeh, VehicleItem item, int amount, Player player)
|
||||
{
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
var vehicleItem = dbContext.VehicleItems.FirstOrDefault(i => i.Id == item.Id);
|
||||
|
||||
vehicleItem.Amount -= amount;
|
||||
|
||||
dbContext.SaveChanges();
|
||||
|
||||
if (vehicleItem.Amount == 0)
|
||||
{
|
||||
dbContext.Remove(vehicleItem);
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
Vehicle vehicle = sVeh.GetVehicle();
|
||||
List<VehicleItem> itemList = GetVehicleItems(vehicle);
|
||||
if (itemList == null) return;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
public static List<VehicleItem> GetVehicleItems(Vehicle vehicle)
|
||||
{
|
||||
return new DatabaseContext().VehicleItems.ToList().FindAll(i => i.GetVehicle().GetVehicle() == vehicle);
|
||||
}
|
||||
|
||||
public static List<UserItem> GetUserItems(Player player)
|
||||
{
|
||||
var user = player.GetUser();
|
||||
var inventoryWeight = 0;
|
||||
List<string> iName = new List<string>();
|
||||
List<int> iAmount = new List<int>();
|
||||
List<int> iId = new List<int>();
|
||||
List<int> iWeight = new List<int>();
|
||||
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
List<UserItem> userItems = context.UserItems.ToList().FindAll(i => i.UserId == user.Id);
|
||||
|
||||
|
||||
foreach (var item in userItems)
|
||||
{
|
||||
IItem iItem = GetItemById(item.ItemId);
|
||||
var currentItemWeight = iItem.Gewicht * item.Amount;
|
||||
inventoryWeight += currentItemWeight;
|
||||
|
||||
iName.Add(iItem.Name);
|
||||
iAmount.Add(item.Amount);
|
||||
iId.Add(iItem.Id);
|
||||
|
||||
}
|
||||
List<Player> targetList = NAPI.Player.GetPlayersInRadiusOfPlayer(2, player);
|
||||
List<string> username = new List<string>();
|
||||
foreach (var target in targetList)
|
||||
{
|
||||
User cl = target.GetUser();
|
||||
username.Add(cl.Name);
|
||||
}
|
||||
|
||||
player.TriggerEvent("inventoryShow", inventoryWeight, iName.ToArray(), iAmount.ToArray(), iId.ToArray(), username.ToArray());
|
||||
return context.UserItems.ToList().FindAll(i => i.UserId == user.Id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,7 +222,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
return inventoryWeight;
|
||||
}
|
||||
|
||||
|
||||
public static int GetVehicleInventoryWeight(Vehicle veh)
|
||||
{
|
||||
var inventoryWeight = 0;
|
||||
@@ -194,318 +277,170 @@ namespace ReallifeGamemode.Server.Managers
|
||||
}
|
||||
}
|
||||
|
||||
public bool CheckOriginOfItem(Player client, string jsonItemID, string jsonItemAmount, string jsonOrigin, string jsonVehAmount)
|
||||
{
|
||||
var origin = JsonConvert.DeserializeObject<int[]>(jsonOrigin);
|
||||
var itemID = JsonConvert.DeserializeObject<int>(jsonItemID);
|
||||
var itemAmount = JsonConvert.DeserializeObject<int>(jsonItemAmount);
|
||||
var vehAmount = JsonConvert.DeserializeObject<int>(jsonVehAmount);
|
||||
var user = client.GetUser();
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
if (origin.Length < 1)
|
||||
return false;
|
||||
|
||||
|
||||
if (origin[0] == 1)
|
||||
{
|
||||
foreach (Vehicle veh in NAPI.Pools.GetAllVehicles())
|
||||
{
|
||||
if (veh.Position.DistanceTo(client.Position) < 5f)
|
||||
{
|
||||
if (VehicleStreaming.GetDoorState(veh, DoorID.DoorTrunk) == DoorState.DoorOpen || VehicleStreaming.GetDoorState(veh, DoorID.DoorRearLeft) == DoorState.DoorOpen || VehicleStreaming.GetDoorState(veh, DoorID.DoorRearRight) == DoorState.DoorOpen)
|
||||
{
|
||||
|
||||
UserItem vItem = new UserItem
|
||||
{
|
||||
Amount = vehAmount,
|
||||
ItemId = itemID,
|
||||
UserId = user.Id,
|
||||
Slot = -1
|
||||
};
|
||||
|
||||
ServerVehicle serverVehicle = VehicleManager.GetServerVehicleFromVehicle(veh, context);
|
||||
VehicleItem vehItem = context.VehicleItems.Where(v => v.VehicleId == origin[1] && v.ItemId == vItem.ItemId).FirstOrDefault();
|
||||
if (vehItem != null)
|
||||
{
|
||||
IItem iItem = GetItemById(vItem.ItemId);
|
||||
|
||||
if (GetUserInventoryWeight(client) + (iItem.Gewicht * vItem.Amount) > 40000)
|
||||
{
|
||||
for (int i = 0; i <= vItem.Amount; i++)
|
||||
{
|
||||
if (GetUserInventoryWeight(client) + (iItem.Gewicht * i) > 40000)
|
||||
{
|
||||
vItem.Amount = i - 1;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (vItem.Amount == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (itemAmount < vehItem.Amount)
|
||||
{
|
||||
UserItem uItem = context.UserItems.Where(u => u.UserId == user.Id && u.ItemId == vItem.ItemId).FirstOrDefault();
|
||||
if (uItem == null)
|
||||
{
|
||||
context.Add(vItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
uItem.Amount += vItem.Amount;
|
||||
}
|
||||
context.SaveChanges();
|
||||
return true;
|
||||
}
|
||||
else if (itemAmount == vehItem.Amount)
|
||||
{
|
||||
UserItem uItem = context.UserItems.Where(u => u.UserId == user.Id && u.ItemId == vItem.ItemId).FirstOrDefault();
|
||||
if (uItem == null)
|
||||
{
|
||||
context.Add(vItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
uItem.Amount += vItem.Amount;
|
||||
}
|
||||
context.SaveChanges();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (origin[0] == 0)
|
||||
{
|
||||
|
||||
VehicleItem cItem = new VehicleItem
|
||||
{
|
||||
Amount = vehAmount,
|
||||
ItemId = itemID,
|
||||
VehicleId = origin[1],
|
||||
Slot = -1,
|
||||
};
|
||||
|
||||
UserItem uItem = context.UserItems.Where(u => u.UserId == user.Id && u.ItemId == cItem.ItemId).FirstOrDefault();
|
||||
IItem iItem = GetItemById(cItem.ItemId);
|
||||
Vehicle veh = VehicleManager.GetVehicleFromId(cItem.VehicleId);
|
||||
if (GetVehicleInventoryWeight(veh) + (iItem.Gewicht * cItem.Amount) > 250000)
|
||||
{
|
||||
for (int i = 0; i <= cItem.Amount; i++)
|
||||
{
|
||||
if (GetVehicleInventoryWeight(veh) + (iItem.Gewicht * i) > 250000)
|
||||
{
|
||||
cItem.Amount = i - 1;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (cItem.Amount == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (iItem is IWeaponDealItem weaponDealItem)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (uItem != null)
|
||||
{
|
||||
if (vehAmount < uItem.Amount)
|
||||
{
|
||||
|
||||
VehicleItem vehItem = context.VehicleItems.Where(v => v.VehicleId == cItem.VehicleId && v.ItemId == cItem.ItemId).FirstOrDefault();
|
||||
if (vehItem == null)
|
||||
{
|
||||
context.Add(cItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
vehItem.Amount += cItem.Amount;
|
||||
}
|
||||
context.SaveChanges();
|
||||
return true;
|
||||
|
||||
|
||||
}
|
||||
else if (vehAmount == uItem.Amount)
|
||||
{
|
||||
VehicleItem vehItem = context.VehicleItems.Where(v => v.VehicleId == cItem.VehicleId && v.ItemId == cItem.ItemId).FirstOrDefault();
|
||||
if (vehItem == null)
|
||||
{
|
||||
context.Add(cItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
vehItem.Amount += cItem.Amount;
|
||||
}
|
||||
context.SaveChanges();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
[RemoteEvent("saveVehicleInventory")]
|
||||
public void SaveVehicleInventory(Player player, string jsonItemID, string jsonItemAmount, string jsonGotFrom, string vehAmount)
|
||||
[RemoteEvent("transferToBackpack")]
|
||||
public void TransferToBackpack(Player player, string jsonItemID, string jsonItemAmount)
|
||||
{
|
||||
var itemID = JsonConvert.DeserializeObject<int>(jsonItemID);
|
||||
var itemAmount = JsonConvert.DeserializeObject<int>(jsonItemAmount);
|
||||
var origin = JsonConvert.DeserializeObject<int[]>(jsonGotFrom);
|
||||
|
||||
if (!CheckOriginOfItem(player, jsonItemID, jsonItemAmount, jsonGotFrom, vehAmount))
|
||||
return;
|
||||
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
if (!vehicleItems.ContainsKey(player))
|
||||
vehicleItems.Add(player, new List<InventoryItem>());
|
||||
Vehicle veh = null;
|
||||
if (vehicleItems[player].Count != 0)
|
||||
veh = vehicleItems[player].FirstOrDefault().vehicle;
|
||||
|
||||
VehicleItem vItem = new VehicleItem
|
||||
{
|
||||
Amount = itemAmount,
|
||||
ItemId = itemID,
|
||||
VehicleId = origin[1],
|
||||
Slot = -1
|
||||
};
|
||||
ServerVehicle serverVehicle = VehicleManager.GetServerVehicleFromVehicle(veh, context);
|
||||
|
||||
VehicleItem vehItem = context.VehicleItems.Where(v => v.VehicleId == vItem.VehicleId && v.ItemId == vItem.ItemId).FirstOrDefault();
|
||||
VehicleItem vehItem = context.VehicleItems.Where(v => v.VehicleId == serverVehicle.Id && v.ItemId == itemID).FirstOrDefault();
|
||||
if (vehItem == null)
|
||||
{
|
||||
context.VehicleItems.Add(vItem);
|
||||
}
|
||||
else if (vItem.Amount <= 0)
|
||||
{
|
||||
context.VehicleItems.Remove(vehItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
vehItem.Amount = vItem.Amount;
|
||||
player.TriggerEvent("Error", "Transfer nicht möglich.");
|
||||
return;
|
||||
}
|
||||
|
||||
RemoveVehicleItem(serverVehicle, vehItem, itemAmount, player);
|
||||
SetVehicleItems(player);
|
||||
|
||||
AddItemToInventory(player, itemID, itemAmount);
|
||||
|
||||
SetBackpackItems(player);
|
||||
context.SaveChanges();
|
||||
IItem iItem = GetItemById(vItem.ItemId);
|
||||
player.TriggerEvent("aproveTransfer", JsonConvert.DeserializeObject<int>(vehAmount), iItem.Name, "Rucksack");
|
||||
IItem iItem = GetItemById(vehItem.ItemId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[RemoteEvent("saveInventory")]
|
||||
public void SavePlayerInventory(Player player, string jsonItemID, string jsonItemAmount, string jsonGotFrom, string vehAmount)
|
||||
[RemoteEvent("transferToVehicle")]
|
||||
public void TransferToVehicle(Player player, string jsonItemID, string jsonItemAmount)
|
||||
{
|
||||
|
||||
var user = player.GetUser();
|
||||
var itemID = JsonConvert.DeserializeObject<int>(jsonItemID);
|
||||
var itemAmount = JsonConvert.DeserializeObject<int>(jsonItemAmount);
|
||||
var origin = JsonConvert.DeserializeObject<int[]>(jsonGotFrom);
|
||||
|
||||
if (!CheckOriginOfItem(player, jsonItemID, jsonItemAmount, jsonGotFrom, vehAmount))
|
||||
return;
|
||||
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
UserItem item = context.UserItems.Where(u => u.UserId == user.Id && u.ItemId == itemID && u.Amount <= itemAmount).FirstOrDefault();
|
||||
|
||||
UserItem cItem = new UserItem
|
||||
{
|
||||
Amount = itemAmount,
|
||||
ItemId = itemID,
|
||||
UserId = user.Id,
|
||||
Slot = -1,
|
||||
};
|
||||
|
||||
|
||||
UserItem item = context.UserItems.Where(u => u.UserId == user.Id && u.ItemId == cItem.ItemId).FirstOrDefault();
|
||||
if (item == null)
|
||||
{
|
||||
context.UserItems.Add(cItem);
|
||||
}
|
||||
else if (cItem.Amount <= 0)
|
||||
{
|
||||
context.UserItems.Remove(item);
|
||||
}
|
||||
else
|
||||
{
|
||||
item.Amount = cItem.Amount;
|
||||
player.TriggerEvent("Error", "Transfer nicht möglich.");
|
||||
return;
|
||||
}
|
||||
|
||||
RemoveUserItem(user, item, itemAmount);
|
||||
|
||||
if (!vehicleItems.ContainsKey(player))
|
||||
{
|
||||
player.TriggerEvent("Error", "Transfer nicht möglich.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!vehicleItems.ContainsKey(player))
|
||||
vehicleItems.Add(player, new List<InventoryItem>());
|
||||
Vehicle veh = null;
|
||||
if (vehicleItems[player].Count != 0)
|
||||
veh = vehicleItems[player].FirstOrDefault().vehicle;
|
||||
|
||||
if (veh == null)
|
||||
{
|
||||
player.TriggerEvent("Error", "Transfer nicht möglich.");
|
||||
return;
|
||||
}
|
||||
|
||||
AddItemToVehicleInventory(veh, itemID, itemAmount);
|
||||
SetVehicleItems(player);
|
||||
VehicleItem vehicleItem = context.VehicleItems.Where(f => f.ItemId == itemID && f.Vehicle == VehicleManager.GetServerVehicleFromVehicle(veh, context)).FirstOrDefault();
|
||||
context.SaveChanges();
|
||||
IItem iItem = GetItemById(item.ItemId);
|
||||
player.TriggerEvent("aproveTransfer", JsonConvert.DeserializeObject<int>(vehAmount), iItem.Name, "Kofferraum");
|
||||
IItem iItem = GetItemById(itemID);
|
||||
player.TriggerEvent("aproveTransfer", vehicleItem.Amount, iItem.Name, "Kofferraum");
|
||||
}
|
||||
}
|
||||
|
||||
public static void AddItemToInventory(Player player, UserItem item)
|
||||
public static void AddItemToInventory(Player player, int itemId, int amount)
|
||||
{
|
||||
var user = player.GetUser();
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
UserItem existingItem = context.UserItems.FirstOrDefault(i => i.ItemId == item.ItemId && i.UserId == item.UserId);
|
||||
int setAmount = 0;
|
||||
for (int i = 1; i <= amount; i++)
|
||||
{
|
||||
if (GetUserInventoryWeight(player) + (i * GetItemById(itemId).Gewicht) > 40000)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
setAmount = i;
|
||||
}
|
||||
}
|
||||
|
||||
if (setAmount == 0)
|
||||
{
|
||||
player.TriggerEvent("Error", "Du kannst nicht so viel tragen.");
|
||||
return;
|
||||
}
|
||||
|
||||
UserItem existingItem = context.UserItems.FirstOrDefault(i => i.ItemId == itemId && i.UserId == user.Id);
|
||||
if (existingItem != null)
|
||||
{
|
||||
existingItem.Amount += item.Amount;
|
||||
existingItem.Amount += setAmount;
|
||||
}
|
||||
else
|
||||
{
|
||||
List<UserItem> allItemsByUser = context.UserItems.ToList().FindAll(i => i.UserId == user.Id);
|
||||
var slotArr = Enumerable.Range(1, 20).ToList();
|
||||
allItemsByUser.ForEach(allItem =>
|
||||
var newItem = new UserItem()
|
||||
{
|
||||
if (slotArr.Contains(allItem.Slot)) slotArr.Remove(allItem.Slot);
|
||||
});
|
||||
|
||||
int newSlot = slotArr.Min();
|
||||
|
||||
item.Slot = newSlot;
|
||||
context.UserItems.Add(item);
|
||||
|
||||
IItem iItem = GetItemById(item.ItemId);
|
||||
|
||||
string[] newItem = new string[] { iItem.Name, iItem.Description, iItem.Gewicht.ToString(), item.Amount.ToString(), newSlot.ToString(), item.Id.ToString() };
|
||||
|
||||
player.TriggerEvent("addItem", JsonConvert.SerializeObject(newItem));
|
||||
ItemId = itemId,
|
||||
Amount = setAmount,
|
||||
Slot = -1,
|
||||
UserId = user.Id,
|
||||
};
|
||||
context.UserItems.Add(newItem);
|
||||
}
|
||||
context.SaveChanges();
|
||||
IItem iItem = GetItemById(itemId);
|
||||
player.TriggerEvent("aproveTransfer", setAmount, iItem.Name, "Rucksack");
|
||||
}
|
||||
}
|
||||
|
||||
public static void AddItemToVehicleInventory(Player player, VehicleItem item, Vehicle veh)
|
||||
public static void AddItemToVehicleInventory(Vehicle veh, int itemId, int amount)
|
||||
{
|
||||
var user = player.GetUser();
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
int setAmount = 0;
|
||||
for (int i = 1; i <= amount; i++)
|
||||
{
|
||||
if (GetVehicleInventoryWeight(veh) + (i * GetItemById(itemId).Gewicht) > 200000)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
setAmount = i;
|
||||
}
|
||||
}
|
||||
|
||||
if (setAmount == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(veh);
|
||||
VehicleItem existingItem = context.VehicleItems.FirstOrDefault(i => i.ItemId == item.ItemId && i.VehicleId == sVeh.Id);
|
||||
VehicleItem existingItem = context.VehicleItems.FirstOrDefault(i => i.ItemId == itemId && i.VehicleId == sVeh.Id);
|
||||
if (existingItem != null)
|
||||
{
|
||||
existingItem.Amount += item.Amount;
|
||||
existingItem.Amount += amount;
|
||||
}
|
||||
else
|
||||
{
|
||||
List<VehicleItem> allItemsByVehicle = context.VehicleItems.ToList().FindAll(i => i.VehicleId == sVeh.Id);
|
||||
var slotArr = Enumerable.Range(1, 20).ToList();
|
||||
allItemsByVehicle.ForEach(allItem =>
|
||||
var newVehItem = new VehicleItem()
|
||||
{
|
||||
if (slotArr.Contains(allItem.Slot)) slotArr.Remove(allItem.Slot);
|
||||
});
|
||||
|
||||
int newSlot = slotArr.Min();
|
||||
|
||||
item.Slot = newSlot;
|
||||
context.VehicleItems.Add(item);
|
||||
|
||||
IItem iItem = GetItemById(item.ItemId);
|
||||
|
||||
string[] newItem = new string[] { iItem.Name, iItem.Description, iItem.Gewicht.ToString(), item.Amount.ToString(), newSlot.ToString(), item.Id.ToString() };
|
||||
ItemId = itemId,
|
||||
Amount = amount,
|
||||
Slot = -1,
|
||||
VehicleId = sVeh.Id,
|
||||
};
|
||||
context.VehicleItems.Add(newVehItem);
|
||||
}
|
||||
context.SaveChanges();
|
||||
}
|
||||
@@ -579,11 +514,13 @@ namespace ReallifeGamemode.Server.Managers
|
||||
if (iItem is IUsableItem usableItemObj)
|
||||
{
|
||||
usableItemObj.Use(fItem);
|
||||
player.TriggerEvent("removeItem", itemId, 1);
|
||||
List<InventoryItem> items = backpackItems[player];
|
||||
player.SetSharedData("backpackItems", JsonConvert.SerializeObject(items.ToArray()));
|
||||
player.TriggerEvent("aproveUse", 1, iItem.Name);
|
||||
}
|
||||
else player.TriggerEvent("Error", "Du kannst dieses Item nicht benutzen.");
|
||||
break;
|
||||
|
||||
case "drop":
|
||||
|
||||
if (iItem == null)
|
||||
@@ -604,18 +541,19 @@ namespace ReallifeGamemode.Server.Managers
|
||||
//new Vector3(player.Position.X, player.Position.Y, player.Position.Z - 0.8f);
|
||||
Random r = new Random();
|
||||
GTANetworkAPI.Object grndObject;
|
||||
Vector3 textPos = dropPosition;
|
||||
if (iItem is IWeaponDealItem obj)
|
||||
{
|
||||
dropPosition.Z -= 1.05f;
|
||||
grndObject = NAPI.Object.CreateObject(3666746839, dropPosition, new Vector3(0, 0, r.Next(0, 360)), 0);
|
||||
grndObject = NAPI.Object.CreateObject(3666746839, dropPosition, new Vector3(0, 0, r.Next(0, 360)), 255, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
dropPosition.Z -= 0.8f;
|
||||
grndObject = NAPI.Object.CreateObject(3777723516, dropPosition, new Vector3(0, 0, r.Next(0, 360)), 0);
|
||||
grndObject = NAPI.Object.CreateObject(3777723516, dropPosition, new Vector3(0, 0, r.Next(0, 360)), 255, 0);
|
||||
}
|
||||
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~)", textPos, 5, 0.5f, 4, new Color(255, 255, 255), false, 0);
|
||||
GroundItem.AddGroundItem(grndItem, grndObject, grndTxtLbl);
|
||||
if (fItem.Amount > amount)
|
||||
{
|
||||
@@ -625,7 +563,8 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
context.UserItems.Remove(fItem);
|
||||
}
|
||||
player.TriggerEvent("removeItem", itemId, amount);
|
||||
context.SaveChanges();
|
||||
SetBackpackItems(player);
|
||||
player.TriggerEvent("aproveThrow", amount, iItem.Name);
|
||||
}
|
||||
break;
|
||||
@@ -634,234 +573,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[RemoteEvent("tradeItem")]
|
||||
public void ServerEvent_tradeItem(Player client, int value, string jsonNameOrId, string itemIdArrStr, string itemAmountArrStr)
|
||||
{
|
||||
User user = client.GetUser();
|
||||
string nameOrId = JsonConvert.DeserializeObject<string>(jsonNameOrId);
|
||||
Player target = PlayerService.GetPlayerByNameOrId(nameOrId);
|
||||
if (target == null || !target.IsLoggedIn() || target == client)
|
||||
{
|
||||
ChatService.PlayerNotFound(client);
|
||||
return;
|
||||
}
|
||||
if (client.Position.DistanceTo(target.Position) >= 5)
|
||||
{
|
||||
ChatService.ErrorMessage(client, "Spieler ist zu weit entfernt.");
|
||||
return;
|
||||
}
|
||||
int[] itemIdArr = JsonConvert.DeserializeObject<int[]>(itemIdArrStr);
|
||||
int[] itemAmountArr = JsonConvert.DeserializeObject<int[]>(itemAmountArrStr);
|
||||
List<string> itemNameList = new List<string>();
|
||||
|
||||
|
||||
if (target.HasData("inTrade") && target.GetData<bool>("inTrade") == true)
|
||||
{
|
||||
ChatService.SendMessage(client, $"~r~[FEHLER] ~w~{target.Name} befindet sich bereits in einem Handel.");
|
||||
return;
|
||||
}
|
||||
int inventoryWeight = 0;
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
int targetInvWeight = GetUserInventoryWeight(target);
|
||||
|
||||
for (int i = 0; i < itemIdArr.Length; i++)
|
||||
{
|
||||
int itemId = itemIdArr[i];
|
||||
int itemAmount = itemAmountArr[i];
|
||||
UserItem uitem = context.UserItems.Where(u => u.UserId == user.Id && u.ItemId == itemId).FirstOrDefault();
|
||||
IItem iItem = GetItemById(uitem.ItemId);
|
||||
var currentItemWeight = iItem.Gewicht * itemAmount;
|
||||
inventoryWeight += currentItemWeight;
|
||||
}
|
||||
if (((targetInvWeight + inventoryWeight) / 1000) > 40)
|
||||
{
|
||||
ChatService.ErrorMessage(client, "Handel kann nicht getätigt werden.");
|
||||
return;
|
||||
}
|
||||
|
||||
for (int x = 0; x < itemIdArr.Length; x++)
|
||||
{
|
||||
int itemId = itemIdArr[x];
|
||||
int itemAmount = itemAmountArr[x];
|
||||
UserItem item = context.UserItems.Where(u => u.UserId == user.Id && u.ItemId == itemId).FirstOrDefault();
|
||||
if (item.Amount - itemAmount > 0)
|
||||
{
|
||||
item.Amount -= itemAmount;
|
||||
}
|
||||
else
|
||||
{
|
||||
context.UserItems.Remove(item);
|
||||
}
|
||||
IItem iItem = GetItemById(itemId);
|
||||
itemNameList.Add(iItem.Name);
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
ChatService.SendMessage(client, $"~b~Du hast eine Handelsanfrage an {target.Name} gesendet.");
|
||||
TradeItems[user.Id] = (itemIdArr, itemAmountArr);
|
||||
TradeValue[user.Id] = value;
|
||||
target.SetData("tradePartner", user.Id);
|
||||
target.SetData("trade", client.Name);
|
||||
SendTradeOffer(target, client);
|
||||
target.TriggerEvent("addTradeItems", itemIdArr, itemAmountArr, itemNameList.ToArray(), inventoryWeight);
|
||||
}
|
||||
|
||||
public void SendTradeOffer(Player client, Player sender)
|
||||
{
|
||||
client.SetData("inTrade", true);
|
||||
sender.SetData("inTrade", true);
|
||||
ChatService.SendMessage(client, $"~b~ Du hast eine Handelsanfrage von {sender.Name} bekommen.");
|
||||
client.SetSharedData("tradeOffer", JsonConvert.SerializeObject(1));
|
||||
User user = sender.GetUser();
|
||||
Timer tradeTimer = new Timer(30000);
|
||||
TradeTimer[user.Id] = tradeTimer;
|
||||
tradeTimer.Start();
|
||||
tradeTimer.Elapsed += (s, e) => { SendBackToSender(sender); client.SetData("inTrade", false); sender.SetData("inTrade", false); client.SetSharedData("tradeOffer", JsonConvert.SerializeObject(0)); };
|
||||
}
|
||||
|
||||
public void SendBackToSender(Player client)
|
||||
{
|
||||
User user = client.GetUser();
|
||||
ChatService.SendMessage(client, "Dein Handelspartner hat die Anfrage nicht angenommen.");
|
||||
(int[] itemIdArr, int[] itemAmountArr) = TradeItems[user.Id];
|
||||
Timer timer = TradeTimer[user.Id];
|
||||
timer.Stop();
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
for (int x = 0; x < itemIdArr.Length; x++)
|
||||
{
|
||||
int itemId = itemIdArr[x];
|
||||
int itemAmount = itemAmountArr[x];
|
||||
UserItem item = context.UserItems.Where(u => u.UserId == user.Id && u.ItemId == itemId).FirstOrDefault();
|
||||
if (item != null)
|
||||
{
|
||||
item.Amount += itemAmount;
|
||||
}
|
||||
else
|
||||
{
|
||||
var newItem = new UserItem
|
||||
{
|
||||
ItemId = itemId,
|
||||
UserId = user.Id,
|
||||
Amount = itemAmount,
|
||||
Slot = -1
|
||||
};
|
||||
|
||||
context.UserItems.Add(newItem);
|
||||
}
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[RemoteEvent("declineTrade")]
|
||||
public void ServerEvent_declineTrade(Player client)
|
||||
{
|
||||
client.SetSharedData("tradeOffer", JsonConvert.SerializeObject(0));
|
||||
if (!client.GetData<bool>("inTrade"))
|
||||
{
|
||||
ChatService.ErrorMessage(client, "Das Handelsangebot ist abgelaufen.");
|
||||
return;
|
||||
}
|
||||
string name = client.GetData<string>("trade");
|
||||
Player target = PlayerService.GetPlayerByNameOrId(name);
|
||||
if (target == null || !target.IsLoggedIn())
|
||||
{
|
||||
ChatService.PlayerNotFound(client);
|
||||
return;
|
||||
}
|
||||
|
||||
client.SetData("inTrade", false);
|
||||
target.SetData("inTrade", false);
|
||||
SendBackToSender(target);
|
||||
}
|
||||
|
||||
public static void OpenTradeAccept(Player client)
|
||||
{
|
||||
User user = client.GetUser();
|
||||
int id = client.GetData<int>("tradePartner");
|
||||
(int[] itemIdArr, int[] itemAmountArr) = TradeItems[id];
|
||||
Timer tradeTimer = TradeTimer[id];
|
||||
tradeTimer.Stop();
|
||||
tradeTimer.Start();
|
||||
client.TriggerEvent("openTradeWindow", TradeValue[id], itemIdArr, itemAmountArr);
|
||||
}
|
||||
|
||||
[RemoteEvent("acceptTrade")]
|
||||
public void ServerEvent_AcceptTrade(Player client)
|
||||
{
|
||||
if (!client.GetData<bool>("inTrade"))
|
||||
{
|
||||
ChatService.ErrorMessage(client, "Das Handelsangebot ist abgelaufen.");
|
||||
return;
|
||||
}
|
||||
client.SetSharedData("tradeOffer", JsonConvert.SerializeObject(0));
|
||||
client.SetData("inTrade", false);
|
||||
|
||||
User user = client.GetUser();
|
||||
int id = client.GetData<int>("tradePartner");
|
||||
(int[] itemIdArr, int[] itemAmountArr) = TradeItems[id];
|
||||
Timer tradeTimer = TradeTimer[id];
|
||||
tradeTimer.Stop();
|
||||
string name = client.GetData<string>("trade");
|
||||
Player target = PlayerService.GetPlayerByNameOrId(name);
|
||||
if (target == null || !target.IsLoggedIn())
|
||||
{
|
||||
ChatService.PlayerNotFound(client);
|
||||
return;
|
||||
}
|
||||
target.SetData("inTrade", false);
|
||||
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
|
||||
int targetInvWeight = GetUserInventoryWeight(client);
|
||||
int inventoryWeight = 0;
|
||||
for (int i = 0; i < itemIdArr.Length; i++)
|
||||
{
|
||||
int itemId = itemIdArr[i];
|
||||
int itemAmount = itemAmountArr[i];
|
||||
UserItem uitem = context.UserItems.Where(u => u.UserId == user.Id && u.ItemId == itemId).FirstOrDefault();
|
||||
IItem iItem = GetItemById(uitem.ItemId);
|
||||
var currentItemWeight = iItem.Gewicht * itemAmount;
|
||||
inventoryWeight += currentItemWeight;
|
||||
}
|
||||
if (((targetInvWeight + inventoryWeight) / 1000) > 40)
|
||||
{
|
||||
ChatService.ErrorMessage(client, "Handel kann nicht getätigt werden.");
|
||||
return;
|
||||
}
|
||||
|
||||
for (int x = 0; x < itemIdArr.Length; x++)
|
||||
{
|
||||
int itemId = itemIdArr[x];
|
||||
int itemAmount = itemAmountArr[x];
|
||||
UserItem item = context.UserItems.Where(u => u.UserId == user.Id && u.ItemId == itemId).FirstOrDefault();
|
||||
if (item != null)
|
||||
{
|
||||
item.Amount += itemAmount;
|
||||
}
|
||||
else
|
||||
{
|
||||
var newItem = new UserItem
|
||||
{
|
||||
ItemId = itemId,
|
||||
UserId = user.Id,
|
||||
Amount = itemAmount,
|
||||
Slot = -1
|
||||
};
|
||||
|
||||
context.UserItems.Add(newItem);
|
||||
}
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
ChatService.SendMessage(target, $"{client.Name} hat deine Anfrage angenommen.");
|
||||
|
||||
}
|
||||
|
||||
[RemoteEvent("SERVER:BuyItems")]
|
||||
public void SrvEvent_BuyItem(Player client, string itemName)
|
||||
{
|
||||
@@ -897,7 +608,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
dbContext.SaveChanges();
|
||||
client.TriggerEvent("SERVER:SET_HANDMONEY", user.Handmoney);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
using GTANetworkAPI;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
@@ -147,7 +151,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
//JobPoint nearJobPoint = PositionManager.JobPoints.Find(p => p.Position.DistanceTo(player.Position) <= 2);
|
||||
if (u.JobId == 2 || u.JobId == 3 || u.JobId == 4)
|
||||
@@ -531,7 +534,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[RemoteEvent("CLIENT:JobManager_TaxiJob_AcceptCall")]
|
||||
public void TaxiJobAcceptCall(Player player, string name)
|
||||
{
|
||||
|
||||
@@ -14,7 +14,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
public class LoadManager : Script
|
||||
{
|
||||
|
||||
[ServerEvent(Event.ResourceStart)]
|
||||
public void OnResourceStart()
|
||||
{
|
||||
|
||||
96
ReallifeGamemode.Server/Managers/PedManager.cs
Normal file
96
ReallifeGamemode.Server/Managers/PedManager.cs
Normal file
@@ -0,0 +1,96 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities.Saves;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
|
||||
namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
public class PedManager : Script
|
||||
{
|
||||
private List<PedData> pedDatas = new List<PedData>();
|
||||
public static List<SavedPed> serverPeds = new List<SavedPed>();
|
||||
private static Dictionary<Player, List<PedData>> dataDict = new Dictionary<Player, List<PedData>>();
|
||||
private void GetPedsFromDatabase()
|
||||
{
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
serverPeds = dbContext.Peds.Where(x => x.HashModel != null).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
private List<PedData> FindDataThroughPlayer(Player player)
|
||||
{
|
||||
if (!dataDict.ContainsKey(player)) return null;
|
||||
return dataDict[player];
|
||||
}
|
||||
|
||||
[ServerEvent(Event.PlayerConnected)]
|
||||
public void LoadServerPedForPlayer(Player player)
|
||||
{
|
||||
if (serverPeds.Count == 0)
|
||||
GetPedsFromDatabase();
|
||||
List<Vector3> vector3s = new List<Vector3>();
|
||||
List<float> headings = new List<float>();
|
||||
List<string> hashes = new List<string>();
|
||||
List<int> dimensions = new List<int>();
|
||||
pedDatas = new List<PedData>();
|
||||
foreach (var s in serverPeds)
|
||||
{
|
||||
if (!s.Active) continue;
|
||||
Vector3 vector3 = new Vector3(s.PositionX, s.PositionY, s.PositionZ);
|
||||
pedDatas.Add(new PedData(player, (DataType)s.Type, vector3, s.Heading, s.HashModel));
|
||||
|
||||
vector3s.Add(vector3);
|
||||
headings.Add(s.Heading);
|
||||
hashes.Add(s.HashModel);
|
||||
dimensions.Add(s.Dimension);
|
||||
}
|
||||
dataDict[player] = pedDatas;
|
||||
Console.WriteLine($"[DEBUG] DATA ADDED - PED Data registered :{dataDict.Count}");
|
||||
|
||||
player.TriggerEvent("SERVER:CreateStaticPeds", JsonConvert.SerializeObject(vector3s.ToArray()), JsonConvert.SerializeObject(headings.ToArray()), JsonConvert.SerializeObject(hashes.ToArray()), JsonConvert.SerializeObject(dimensions.ToArray()));
|
||||
}
|
||||
|
||||
[ServerEvent(Event.PlayerDisconnected)]
|
||||
public void RemovePlayerPedDataOnDc(Player player, DisconnectionType type, string reason)
|
||||
{
|
||||
List<PedData> data = FindDataThroughPlayer(player);
|
||||
if (data == null) return;
|
||||
dataDict.Remove(player);
|
||||
Console.WriteLine($"[DEBUG] DATA REMOVED - PED Data left :{dataDict.Count}");
|
||||
}
|
||||
}
|
||||
|
||||
public enum DataType : int
|
||||
{
|
||||
WeponDealPed,
|
||||
DepartmentPed,
|
||||
PrisonPed
|
||||
}
|
||||
|
||||
public class PedData
|
||||
{
|
||||
private DataType type;
|
||||
public Player player;
|
||||
public Vector3 vector3;
|
||||
public float heading;
|
||||
public string HashModel;
|
||||
|
||||
public PedData(Player player, DataType type, Vector3 vector3, float heading, string HashModel)
|
||||
{
|
||||
this.player = player;
|
||||
this.type = type;
|
||||
this.vector3 = vector3;
|
||||
this.heading = heading;
|
||||
this.HashModel = HashModel;
|
||||
}
|
||||
|
||||
public DataType getType()
|
||||
{
|
||||
return type;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -214,6 +214,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
#endregion JobPoints
|
||||
|
||||
#region Shops
|
||||
|
||||
foreach (var shop in ShopManager.clotheStores)
|
||||
{
|
||||
shop.LoadClothes();
|
||||
@@ -232,7 +233,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
NAPI.TextLabel.CreateTextLabel("Kleiderladen - Dr\u00fccke ~y~E", s.Position, 7, 1, 0, new Color(255, 255, 255), false, 0);
|
||||
}
|
||||
|
||||
|
||||
foreach (var shop in ShopManager.itemShops)
|
||||
{
|
||||
shop.LoadItems();
|
||||
@@ -262,12 +262,70 @@ namespace ReallifeGamemode.Server.Managers
|
||||
}
|
||||
}
|
||||
|
||||
public static class MarkerBehinVehicle
|
||||
{
|
||||
public static List<BehindVehiclePoint> behindVehiclePoints = new List<BehindVehiclePoint>();
|
||||
|
||||
public static bool HasMarkerBehind(this Vehicle vehicle)
|
||||
{
|
||||
BehindVehiclePoint point = behindVehiclePoints.Find(v => v.vehicle == vehicle);
|
||||
if (point != null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void RemoveMarkerBehind(this Vehicle vehicle)
|
||||
{
|
||||
BehindVehiclePoint point = behindVehiclePoints.Find(v => v.vehicle == vehicle);
|
||||
point.marker.Delete();
|
||||
point.textLabel.Delete();
|
||||
behindVehiclePoints.Remove(point);
|
||||
}
|
||||
|
||||
public static void AddMarkerBehind(this Vehicle vehicle, Vector3 vector3)
|
||||
{
|
||||
Marker marker = NAPI.Marker.CreateMarker(1, vector3, new Vector3(), new Vector3(), 2, new Color(255, 255, 255, 70));
|
||||
TextLabel textLabel = NAPI.TextLabel.CreateTextLabel("Dr\u00fccke ~y~E~s~ um zu benutzen", new Vector3(vector3.X, vector3.Y, vector3.Z + 1.4), 7, 1, 0, new Color(255, 255, 255), false, 0);
|
||||
BehindVehiclePoint behindVehiclePoint = new BehindVehiclePoint(vehicle, marker, textLabel);
|
||||
behindVehiclePoints.Add(behindVehiclePoint);
|
||||
}
|
||||
}
|
||||
|
||||
public class DutyPoint
|
||||
{
|
||||
public Vector3 Position { get; set; }
|
||||
public int FactionId { get; set; }
|
||||
}
|
||||
|
||||
public class BehindVehiclePoint
|
||||
{
|
||||
public Vehicle vehicle { get; set; }
|
||||
public Marker marker { get; set; }
|
||||
public TextLabel textLabel { get; set; }
|
||||
|
||||
public BehindVehiclePoint(Vehicle vehicle, Marker marker, TextLabel textLabel)
|
||||
{
|
||||
this.vehicle = vehicle;
|
||||
this.marker = marker;
|
||||
this.textLabel = textLabel;
|
||||
}
|
||||
|
||||
public void usePoint(Player player)
|
||||
{
|
||||
if (vehicle.HasData("WeaponDealLoad") && vehicle.GetData<bool>("WeaponDealLoad") == true)
|
||||
{
|
||||
if (!player.HasAttachment("ammobox"))
|
||||
{
|
||||
player.PlayAnimation("anim@heists@box_carry@", "idle", 49);
|
||||
player.AddAttachment("ammobox", false);
|
||||
NAPI.Player.SetPlayerCurrentWeapon(player, WeaponHash.Unarmed);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class WeaponPoint
|
||||
{
|
||||
public Vector3 Position { get; set; }
|
||||
@@ -283,14 +341,12 @@ public class ClotheshopPoint
|
||||
{
|
||||
public Vector3 Position { get; set; }
|
||||
public ClotheShop clotheShop { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class ItemshopPoint
|
||||
{
|
||||
public Vector3 Position { get; set; }
|
||||
public ItemShop itemShop { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class JobPoint
|
||||
@@ -307,4 +363,3 @@ public class ElevatorPoint
|
||||
public int FactionId { get; set; }
|
||||
public string Stage { get; set; }
|
||||
}
|
||||
|
||||
|
||||
@@ -1,17 +1,16 @@
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Server.Business;
|
||||
using System;
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Entities.Saves;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using System;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Server.Business;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
|
||||
namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
public class SaveManager : Script
|
||||
{
|
||||
|
||||
[RemoteEvent("OnSaveBlipData")]
|
||||
public static void OnSaveBlipData(Player player, string blipSprite, string blipName, string blipScale, string blipColor,
|
||||
string blipAlpha, string blipDrawDistance, string blipShortRange, string blipRotation, string blipDimension)
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities.Saves;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
@@ -12,25 +10,25 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
public class ShopManager
|
||||
{
|
||||
|
||||
public static List<ClotheShop> clotheStores = new List<ClotheShop>();
|
||||
public static List<ItemShop> itemShops = new List<ItemShop>();
|
||||
|
||||
public static void LoadClotheShops()
|
||||
{
|
||||
using(var dbContext = new DatabaseContext())
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
List<SavedBlip> discount = dbContext.Blips.ToList().FindAll(s => s.Name == "Binco" || s.Name == "Discount Store");
|
||||
List<SavedBlip> midclass = dbContext.Blips.ToList().FindAll(s => s.Name == "Suburban");
|
||||
List<SavedBlip> luxury = dbContext.Blips.ToList().FindAll(s => s.Name == "Ponsonbys");
|
||||
|
||||
foreach(var store in discount) {
|
||||
foreach (var store in discount)
|
||||
{
|
||||
Vector3 pos = new Vector3(store.PositionX, store.PositionY, store.PositionZ);
|
||||
ClotheShop newShop = new ClotheShop(1, pos);
|
||||
clotheStores.Add(newShop);
|
||||
NAPI.Util.ConsoleOutput($"Loading ClotheShop {store.Name}");
|
||||
}
|
||||
foreach(var store in midclass)
|
||||
foreach (var store in midclass)
|
||||
{
|
||||
Vector3 pos = new Vector3(store.PositionX, store.PositionY, store.PositionZ);
|
||||
ClotheShop newShop = new ClotheShop(2, pos);
|
||||
@@ -49,21 +47,19 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
public static void LoadItemShops()
|
||||
{
|
||||
using(var dbContext = new DatabaseContext())
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
int id = 0;
|
||||
List<SavedBlip> shops = dbContext.Blips.ToList().FindAll(s => s.Name == "24/7");
|
||||
foreach(var store in shops)
|
||||
foreach (var store in shops)
|
||||
{
|
||||
Vector3 pos = new Vector3(store.PositionX, store.PositionY, store.PositionZ);
|
||||
ItemShop newShop = new ItemShop(pos, id);
|
||||
itemShops.Add(newShop);
|
||||
itemShops.Add(newShop);
|
||||
id++;
|
||||
}
|
||||
NAPI.Util.ConsoleOutput($"Loaded {itemShops.Count}x 24/7");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
using GTANetworkAPI;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System;
|
||||
using System.Timers;
|
||||
using GTANetworkAPI;
|
||||
|
||||
namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
|
||||
namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
class TuningManager : Script
|
||||
internal class TuningManager : Script
|
||||
{
|
||||
private static List<ColShape> tuningGarages = new List<ColShape>();
|
||||
|
||||
@@ -21,6 +21,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fügt eine Tuning-Garage zum Spiel hinzu
|
||||
/// </summary>
|
||||
@@ -58,7 +59,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
Vehicle veh = VehicleManager.GetVehicleFromServerVehicle(sVeh);
|
||||
if (veh == null) return;
|
||||
|
||||
|
||||
veh.SetSharedData("mod18", false);
|
||||
|
||||
using (var dbContext = new DatabaseContext())
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using GTANetworkAPI;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
@@ -783,7 +784,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
if (sVeh == null) continue;
|
||||
|
||||
sVeh.DistanceDriven = (float)v.GetSharedData<dynamic>("drivenDistance");
|
||||
|
||||
}
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
@@ -804,6 +804,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
_serverVehicles[serverVehicle.Id] = vehicle.Handle;
|
||||
}
|
||||
|
||||
internal static void DeleteVehicle(Vehicle veh)
|
||||
{
|
||||
ServerVehicle sVeh;
|
||||
@@ -885,8 +886,14 @@ namespace ReallifeGamemode.Server.Managers
|
||||
Vehicle newVeh = serverVehicle.Spawn(vehicle);
|
||||
newVeh.Repair();
|
||||
newVeh.Rotation = new Vector3(0, 0, serverVehicle.Heading);
|
||||
NAPI.Util.ConsoleOutput("VehicleDeath: Debug 4");
|
||||
}
|
||||
|
||||
[RemoteEvent("CLIENT:setMarkerBehindVehicle")]
|
||||
public void setVectorBehindVehicle(Player player, int id, string jsonX, string jsonY, string jsonZ)
|
||||
{
|
||||
Vehicle vehicle = NAPI.Pools.GetAllVehicles().Find(v => v.Id == id);
|
||||
Vector3 vector3 = new Vector3(Convert.ToSingle((double)JsonConvert.DeserializeObject(jsonX)), Convert.ToSingle((double)JsonConvert.DeserializeObject(jsonY)), Convert.ToSingle((double)JsonConvert.DeserializeObject(jsonZ)));
|
||||
vehicle.AddMarkerBehind(vector3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
using GTANetworkAPI;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
|
||||
namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
class WeaponManager
|
||||
internal class WeaponManager
|
||||
{
|
||||
private static readonly List<string> _modWeapons = new List<string>()
|
||||
{
|
||||
@@ -336,8 +335,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{ 727643628, "Ceramic Pistol"}
|
||||
};
|
||||
|
||||
|
||||
|
||||
public static bool IsValidHash(uint hash)
|
||||
{
|
||||
foreach (WeaponHash vh in Enum.GetValues(typeof(WeaponHash)))
|
||||
|
||||
@@ -29,7 +29,6 @@ namespace ReallifeGamemode.Database.Migrations
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Jobs",
|
||||
columns: table => new
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user