inshallah kein fehler

This commit is contained in:
hydrant
2020-05-10 23:18:53 +02:00
153 changed files with 6517 additions and 3407 deletions

View File

@@ -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;

View File

@@ -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()
{
}
}
}

View File

@@ -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()
{
}
}
}

View File

@@ -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()
{
}
}
}

View File

@@ -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,

View File

@@ -1,7 +1,4 @@
using GTANetworkAPI;
using System;
using System.Collections.Generic;
using System.Text;
namespace ReallifeGamemode.Server.Business
{

View File

@@ -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()
{
}
}
}

View File

@@ -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()
{
}
}
}

View File

@@ -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()
{
}
}
}

View File

@@ -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()
{
}
}
}

View File

@@ -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()
{
}
}
}

View File

@@ -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()
{
}
}
}

View File

@@ -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()
{
}
}
}

View File

@@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace ReallifeGamemode.Server.Classes
namespace ReallifeGamemode.Server.Classes
{
public class TempBlip
{

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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)

View File

@@ -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");
}
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -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;
}
}
}
}

View File

@@ -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}");
});
}
}

View File

@@ -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);

View File

@@ -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)
{

View File

@@ -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;
/**

View File

@@ -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");
}
}
}

View File

@@ -12,7 +12,6 @@ using ReallifeGamemode.Server.Managers;
namespace ReallifeGamemode.Server.Events
{
public class EnterVehicleAttempt : Script
{
public static GTANetworkAPI.Vehicle Roller;

View File

@@ -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)
{

View File

@@ -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)

View File

@@ -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;
}
}
}

View File

@@ -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);

View File

@@ -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;

View File

@@ -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)

View File

@@ -1,4 +1,5 @@
using GTANetworkAPI;
using System.Linq;
using GTANetworkAPI;
using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Database.Models;
using ReallifeGamemode.Server.Extensions;

View File

@@ -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);
}
}
}

View File

@@ -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]);
}

View File

@@ -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

View File

@@ -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);

View File

@@ -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);
}
}
}
}

View File

@@ -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)

View File

@@ -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)

View File

@@ -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";
}

View File

@@ -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)
{

View File

@@ -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();

View File

@@ -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)
{

View File

@@ -1,6 +1,3 @@
using System;
using System.Collections.Generic;
using System.Text;
using GTANetworkAPI;
using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Server.Job;

View File

@@ -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
{

View File

@@ -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;

View File

@@ -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

View File

@@ -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)

View File

@@ -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
{

View File

@@ -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();

View File

@@ -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();
}

View File

@@ -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
}
}
}

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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

View File

@@ -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
{

View File

@@ -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

View File

@@ -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
{

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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
{

View File

@@ -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

View File

@@ -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;

View File

@@ -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;
}
}

View File

@@ -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)
{

View File

@@ -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);

View File

@@ -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));
}
}
}
}
}

View File

@@ -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;

View File

@@ -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);

View File

@@ -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)

View File

@@ -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; }

View File

@@ -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);
}
}
}

View File

@@ -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);

View File

@@ -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

View File

@@ -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
}
}

View File

@@ -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);
}
}
}
}

View File

@@ -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)
{

View File

@@ -14,7 +14,6 @@ namespace ReallifeGamemode.Server.Managers
{
public class LoadManager : Script
{
[ServerEvent(Event.ResourceStart)]
public void OnResourceStart()
{

View 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;
}
}
}

View File

@@ -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; }
}

View File

@@ -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)

View File

@@ -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");
}
}
}
}
}

View File

@@ -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
{

View File

@@ -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())

View File

@@ -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);
}
}
}

View File

@@ -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)))

View File

@@ -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