Add RefuseCollector Job and other misc

This commit is contained in:
Siga
2020-04-04 18:33:20 +02:00
parent 69a4ab5d22
commit c871805430
24 changed files with 2251 additions and 104 deletions

View File

@@ -995,7 +995,7 @@ namespace ReallifeGamemode.Server.Commands
return;
}
if (name is null || component == null || drawable == null)
if (name == null || component == null || drawable == null)
{
player.SendChatMessage("~m~Benutzung: ~s~/clothes [Spieler] [Component ID] [Drawable] (Textur)");
return;

View File

@@ -119,15 +119,15 @@ namespace ReallifeGamemode.Server.Finance
ChatService.SendMessage(client, "~g~[PAYDAY]~s~ Dein Stundenumsatz beträgt - $~r~" + paycheck.Amount + "~s~.");
}
/*
public static void PaydayTimer()
{
System.Timers.Timer timer = new System.Timers.Timer(60000);
timer.Start();
timer.Elapsed += Timer_Elapsed;
}
private static void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
*/
public static void Timer_Elapsed()
{
foreach (var player in NAPI.Pools.GetAllPlayers())
{

View File

@@ -1,13 +1,12 @@
using System;
using System.Collections.Generic;
using System.Text;
using GTANetworkAPI;
using System.Linq;
using ReallifeGamemode.Database.Models;
using ReallifeGamemode.Database.Entities;
using GTANetworkAPI;
using Newtonsoft.Json;
using ReallifeGamemode.Server.Services;
using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Database.Models;
using ReallifeGamemode.Server.Extensions;
using ReallifeGamemode.Server.Services;
namespace ReallifeGamemode.Server.Gangwar
{
@@ -25,7 +24,7 @@ namespace ReallifeGamemode.Server.Gangwar
List<Turf> turfing = new List<Turf>();
foreach (var t in turfs)
{
Turf newTurf = new Turf(t.Id, t.Name, t.Color, t.Owner);
Turf newTurf = new Turf(t.Id, t.Name, t.Color, t.Owner, t.Value, t.MaxValue, t.Surplus);
turfing.Add(newTurf);
}
_loadedTurfs = turfing.ToArray();
@@ -40,13 +39,12 @@ namespace ReallifeGamemode.Server.Gangwar
public static void loadTurfs_ToAllPlayers()
{
NAPI.ClientEvent.TriggerClientEventForAll("GangAreas:Create", JsonConvert.SerializeObject(turfs.ToArray()));
foreach(var l in NAPI.Pools.GetAllPlayers())
foreach (var l in NAPI.Pools.GetAllPlayers())
{
if (!l.IsLoggedIn() && !l.GetUser().FactionLeader)
return;
l.TriggerEvent("CLIENT:Turf_LoadLeaderBlip");
}
}
@@ -99,7 +97,7 @@ namespace ReallifeGamemode.Server.Gangwar
}
}
}
[RemoteEvent("SERVER:SetTurf")]
public void RmtEvent_SetTurf(Player client, string jsonX, string jsonY, string jsonRot, string jsonRange, string Name)
{
@@ -117,7 +115,7 @@ namespace ReallifeGamemode.Server.Gangwar
Range = Range,
Owner = "Neutral",
Color = 0,
Vector = null
Vector = null
};
using (var dbContext = new DatabaseContext())
{
@@ -151,7 +149,8 @@ namespace ReallifeGamemode.Server.Gangwar
}
[RemoteEvent("SERVER:Turf_SetNewLeaderPoint")]
public void RmtEvent_SetNewLeaderPoint(Player client, string vector, string jsonId) {
public void RmtEvent_SetNewLeaderPoint(Player client, string vector, string jsonId)
{
int id = JsonConvert.DeserializeObject<int>(jsonId);
if (id == -1)
{
@@ -171,7 +170,6 @@ namespace ReallifeGamemode.Server.Gangwar
}
}
[RemoteEvent("SERVER:StartGangwar")]
public void RmtEvent_StartGangwar(Player client)
{
@@ -182,7 +180,7 @@ namespace ReallifeGamemode.Server.Gangwar
{
if (turf.status == "attack")
{
ChatService.ErrorMessage(client,"Du kannst momentan kein Gangwar starten");
ChatService.ErrorMessage(client, "Du kannst momentan kein Gangwar starten");
return;
}
}
@@ -200,8 +198,30 @@ namespace ReallifeGamemode.Server.Gangwar
}
}
}
}
public static void Value_TimerElapsed()
{
List<int> values = new List<int>();
using (var dbContext = new DatabaseContext())
{
foreach (var turf in getTurfs())
{
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();
}
dbContext.SaveChanges();
}
NAPI.ClientEvent.TriggerClientEventForAll("CLIENT:UpdateTurfValue", JsonConvert.SerializeObject(values.ToArray()));
}
}
}

View File

@@ -24,18 +24,24 @@ namespace ReallifeGamemode.Server.Gangwar
public int Att_Score { get; set; }
public int Def_Score { get; set; }
public string status { get; set; }
public int value { get; set; }
public int maxValue { get; set; }
public bool surplus { get; set; }
public List<Player> playerInside { get; set; }
public Timer timer { get; set; }
public Player[] playerInGangwar { get; set; }
public int timerCount;
public Turf(int TurfID, string TurfName, int color, string Owner)
public Turf(int TurfID, string TurfName, int color, string Owner, int value, int maxValue,bool surplus)
{
this.TurfID = TurfID;
this.TurfName = TurfName;
this.Color = color;
this.Owner = Owner;
this.value = value;
this.maxValue = maxValue;
this.surplus = surplus;
this.Attacker = null;
this.Att_Score = 50;
this.Def_Score = 50;
@@ -50,6 +56,36 @@ namespace ReallifeGamemode.Server.Gangwar
return this.TurfID;
}
public int getValue()
{
return this.value;
}
public void setValue(int value)
{
this.value = value;
}
public void addValue(int addedValue)
{
this.value += addedValue;
}
public int getMaxValue()
{
return maxValue;
}
public bool getSurplus()
{
return surplus;
}
public void setSurplus(bool surplus)
{
this.surplus = surplus;
}
public string getName()
{
return this.TurfName;

View File

@@ -1,6 +1,11 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using GTANetworkAPI;
using Newtonsoft.Json;
using ReallifeGamemode.Server.Services;
using ReallifeGamemode.Database.Models;
using ReallifeGamemode.Server.Core.Managers;
namespace ReallifeGamemode.Server.Job
{
@@ -11,5 +16,341 @@ namespace ReallifeGamemode.Server.Job
public override string Name => "Müllmann";
public override bool NeedVehicleToStart => false;
public RefuseCollectorJob()
{
JobStart += RefuseCollectorJobJobStart;
JobStop += RefuseCollectorJobJobStop;
}
private void RefuseCollectorJobJobStart(Player player)
{
//setClothes
}
private void RefuseCollectorJobJobStop(Player player)
{
//removeClothes and replace with old
MuellmannJobBeenden(player);
}
public List<MuellmannData> muellmanData = new List<MuellmannData>();
private List<Vector3> vector3s = new List<Vector3>();
[ServerEvent(Event.ResourceStart)]
public void LoadHouses()
{
foreach(var marker in HouseManager.houseMarkers)
{
vector3s.Add(new Vector3(marker.Value.Position.X, marker.Value.Position.Y, marker.Value.Position.Z));
}
}
[RemoteEvent("CLIENT:MuellmannJobStarten")]
public void MuellmannJobStarten(Player player, Vehicle vehicle)
{
if (vehicle.Model == (uint)Types.VehicleModel.Trash || vehicle.Model == (uint)Types.VehicleModel.Trash2)
{
Vehicle veh;
foreach (var data in muellmanData)
{
if (data.getDataFromClient(player) == null) continue;
veh = data.vehicle;
ChatService.SendMessage((Player)player, "~g~Du hast den Müllmann-Job gestartet!");
player.TriggerEvent("SERVER:MuellmannStatusTrue");
player.TriggerEvent("SERVER:MuellmannBCSErstellen", JsonConvert.SerializeObject(vector3s.ToArray()), veh);
return;
}
}
}
public void MuellmannJobBeenden(Player player)
{
if (player.IsInVehicle)
{
Vehicle vehicle = player.Vehicle;
if (vehicle.Model == (uint)Types.VehicleModel.Trash || vehicle.Model == (uint)Types.VehicleModel.Trash2)
{
ChatService.SendMessage((Player)player, "~g~Du hast den Müllmann-Job beendet!");
player.TriggerEvent("SERVER:MuellmannStatusFalse");
player.TriggerEvent("SERVER:MuellmannBCSEntfernen");
}
else
{
ChatService.SendMessage((Player)player, "~r~INFO: Das ist kein Müllwagen!");
}
}
else
{
ChatService.SendMessage((Player)player, "~r~INFO: Zum Job beenden musst du im Auto sein.");
}
}
[RemoteEvent("CLIENT:MuellmannImShape")]
public void MuellmannImShape(Player player, string jsonColShape)
{
foreach (var data in muellmanData)
{
if (data.getDataFromClient(player) == null) continue;
Player target = data.getPartnerClient(player);
if (target != null) target.TriggerEvent("MuellmannUpdateColshape", jsonColShape);
ChatService.SendMessage((Player)player, "Du hast den Müllsack in der Hand. Bringe ihm zum Müllwagen hinten.");
return;
}
}
[RemoteEvent("CLIENT:MuellmannAddSack")]
public void MuellmannAddSack(Player player)
{
foreach (var data in muellmanData)
{
if (data.getDataFromClient(player) == null) continue;
int count = data.getTrashCount();
count++;
data.setTrashCount(count);
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.");
if (data.getTrashCount() >= 2)
{
ChatService.SendMessage((Player)player, "Auto ist voll fahre nun zu Base.");
if (target != null) { ChatService.SendMessage((Player)target, "Auto ist voll fahre nun zu Base."); target.TriggerEvent("SERVER:MuellmannZuBase"); }
player.TriggerEvent("SERVER:MuellmannZuBase");
}
//bonus pro sack
return;
}
}
[RemoteEvent("CLIENT:MuellmannBaseSack")]
public void MuellmannBaseSack(Player player)
{
if (player.VehicleSeat != 0) return;
foreach (var data in muellmanData)
{
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}");
player.TriggerEvent("SERVER:MuellmannHintenWiederLeer");
//bonus pro sack
data.setTrashCount(0);
return;
}
}
#region zweiSpeieler
[ServerEvent(Event.PlayerDisconnected)]
private void SrvEvent_PlayerDc(Player player)
{
if (!GetPlayerInJob().Contains(player)) return;
foreach (var data in muellmanData)
{
if (data.getDataFromClient(player) == null) continue;
if (data.hasFreePlace())
{
muellmanData.Remove(data);
//müllwagen respawnen
return;
}
data.removeClientFromData(player);
return;
}
}
[ServerEvent(Event.PlayerDeath)]
private void SrvEvent_PlayerDeath(Player player)
{
if (!GetPlayerInJob().Contains(player)) return;
foreach (var data in muellmanData)
{
if (data.getDataFromClient(player) == null) continue;
if (data.hasFreePlace())
{
muellmanData.Remove(data);
//müllwagen respawnen
return;
}
data.removeClientFromData(player);
return;
}
}
[ServerEvent(Event.VehicleDeath)]
private void SrvEvent_Vehicle(Vehicle veh)
{
if (veh.Model != (uint)Types.VehicleModel.Trash && veh.Model != (uint)Types.VehicleModel.Trash2) return;
foreach (var data in muellmanData)
{
if (data.vehicle == veh)
{
//müllfahrzeug respawnen
List<Player> clients = data.getClientsFromData();
foreach(var c in clients){ RefuseCollectorJobJobStop(c); }
muellmanData.Remove(data);
return;
}
}
}
[ServerEvent(Event.PlayerEnterVehicleAttempt)]
public void SrvEvent_PlayerEnterVehicle(Player player, Vehicle vehicle, sbyte seat)
{
Player target;
if (!GetPlayerInJob().Contains(player)) return;
if (vehicle.Model == (uint)Types.VehicleModel.Trash || vehicle.Model == (uint)Types.VehicleModel.Trash2)
{
foreach (var data in muellmanData)
{
if (data.vehicle == vehicle)
{
if (data.getDataFromClient(player) != null)
return;
if (!data.hasFreePlace())
{
player.StopAnimation();
return;
}
CheckDataForDuplicatePlayer(player, data);
data.setClientToData(player);
MuellmannJobStarten(player, vehicle);
target = data.getPartnerClient(player);
if (target == null)
return;
ChatService.SendMessage((Player)player, $"Dein Partner ist {target.Name} !");
ChatService.SendMessage((Player)target, $"Dein Partner ist {player.Name} !");
return;
}
}
MuellmannData newData = new MuellmannData(vehicle);
muellmanData.Add(newData);
CheckDataForDuplicatePlayer(player, newData);
newData.setClientToData(player);
MuellmannJobStarten(player, vehicle);
target = newData.getPartnerClient(player);
if (target == null)
return;
ChatService.SendMessage((Player)player, $"Dein Partner ist {target.Name} !");
ChatService.SendMessage((Player)target, $"Dein Partner ist {player.Name} !");
}
}
public void CheckDataForDuplicatePlayer(Player player, MuellmannData data)
{
foreach (var d in muellmanData)
{
if (d == data) continue;
MuellmannData temp = d.getDataFromClient(player);
if (temp == null) continue;
temp.removeClientFromData(player);
}
}
#endregion
#region Data
public class MuellmannData
{
Player client1;
Player client2;
public Vehicle vehicle;
int trashCount = 0;
public MuellmannData(Vehicle vehicle)
{
this.vehicle = vehicle;
}
public void setClientToData(Player player)
{
if (client1 == player || client2 == player)
{
Console.WriteLine("Spieler schon gespeichert");
return;
}
if (client1 == null) { client1 = player; return; }
else if (client2 == null) { client2 = player; return; }
else if (client1 != null && client2 != null) { Console.WriteLine("kein Platz"); }
}
public void removeClientFromData(Player player)
{
if (client1 == player) { client1 = null; }
if (client2 == player) { client2 = null; }
}
public int getTrashCount()
{
return this.trashCount;
}
public void setTrashCount(int i)
{
this.trashCount = i;
}
public List<Player> getClientsFromData()
{
List<Player> tempList = new List<Player>();
if (client1 != null) { tempList.Add(client1); }
if (client2 != null) { tempList.Add(client2); }
return tempList;
}
public MuellmannData getDataFromClient(Player player)
{
if (client1 != player && client2 != player)
return null;
return this;
}
public bool hasFreePlace()
{
if (client1 != null && client2 != null)
return false;
return true;
}
public Player getPartnerClient(Player player)
{
if (client1 != player && client2 != player)
return null;
if (client1 == player) { return client2; }
if (client2 == player) { return client1; }
return null;
}
}
#endregion
}
}

View File

@@ -92,17 +92,22 @@ namespace ReallifeGamemode.Server.Job
}
/*
public static void StartTaxiTimer()
{
Timer timer = new Timer(1000);
Timer timer = new Timer(500);
timer.Start();
timer.Elapsed += UpdateFare;
}
*/
private static void UpdateFare(object sender, ElapsedEventArgs e)
public static void UpdateFare()
{
foreach (var player in GetPlayerInJob())
{
User u = player.GetUser();
if (u.JobId != 1) return;
Console.WriteLine(player.Name);
if (!player.HasData("hasPassager")) { player.SetData<bool>("hasPassager", false); continue; }
int playerId = player.GetUser().Id;

View File

@@ -23,6 +23,7 @@ using Microsoft.EntityFrameworkCore.Infrastructure;
using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Services;
/**
* @overview Life of German Reallife - Main Class (Main.cs)
* @author VegaZ, hydrant
@@ -64,7 +65,7 @@ namespace ReallifeGamemode.Server
NAPI.Server.SetGlobalServerChat(false);
//NAPI.Server.SetCommandErrorMessage("~r~[FEHLER]~s~ Dieser Command existiert nicht.");
NAPI.Server.SetCommandErrorMessage("~r~[FEHLER]~s~ Dieser Command existiert nicht.");
NAPI.Server.SetDefaultSpawnLocation(DEFAULT_SPAWN_POSITION, DEFAULT_SPAWN_HEADING);
NAPI.Server.SetAutoSpawnOnConnect(false);
NAPI.Server.SetAutoRespawnAfterDeath(false);
@@ -84,7 +85,7 @@ namespace ReallifeGamemode.Server
TuningManager.LoadTuningGarages();
TimeManager.StartTimeManager();
VehicleManager.StartTimer();
VehicleManager.CheckEnabledMods();
DatabaseHelper.InitDatabaseFirstTime();
@@ -95,7 +96,7 @@ namespace ReallifeGamemode.Server
ATMManager.InitATMs();
CityHallManager.LoadCityHall();
JobManager.LoadJobs();
TaxiDriverJob.StartTaxiTimer();
//TaxiDriverJob.StartTaxiTimer(); Obselete
//HouseManager.LoadHouses();
DrivingSchool.DrivingSchool.Setup();
PlaneSchool.Setup();
@@ -113,10 +114,12 @@ namespace ReallifeGamemode.Server
NAPI.Data.SetWorldData("blipTemplate", tempBlip);
WantedEscapeTimer.WantedTimer();
Jail.JailTimer();
Economy.PaydayTimer();
WeaponDealManager.WeaponDealTimer();
//WantedEscapeTimer.WantedTimer(); Obselete
//Jail.JailTimer(); Obselete
//Economy.PaydayTimer(); Obselete
// WeaponDealManager.WeaponDealTimer(); Obselete
ThreadTimers.StartAllTimers();
UserBankAccount.BalanceChanged += (account) =>
{

View File

@@ -261,7 +261,7 @@ namespace ReallifeGamemode.Server.Managers
{
ServerVehicle sVeh = veh.GetServerVehicle();
if (sVeh == null) return;
if (sVeh is JobVehicle jV && jV.JobId == 1) // Spieler steigt in Taxi aus
if (sVeh is JobVehicle jV && jV.JobId == 1) // Spieler steigt vom Taxi aus
{
var taxiJob = JobManager.GetJob<TaxiDriverJob>();
if (veh.Occupants.Count == 0) return;

View File

@@ -722,12 +722,8 @@ namespace ReallifeGamemode.Server.Managers
private static readonly Dictionary<NetHandle, Vector3> lastPositions = new Dictionary<NetHandle, Vector3>();
private static DateTime lastSave = DateTime.UtcNow;
public static void StartTimer()
public static void CheckEnabledMods()
{
Timer timer = new Timer(500);
timer.Elapsed += VehicleTimerTick;
timer.Start();
foreach (var name in _enabledMods)
{
if (_enabledMods.Where(x => x == name).Count() != 1)
@@ -737,7 +733,7 @@ namespace ReallifeGamemode.Server.Managers
}
}
private static void VehicleTimerTick(object sender, ElapsedEventArgs e)
public static void VehicleTimerTick()
{
NAPI.Pools.GetAllVehicles().ForEach(v =>
{

View File

@@ -0,0 +1,61 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Timers;
using ReallifeGamemode.Server.Wanted;
using ReallifeGamemode.Server.Finance;
using ReallifeGamemode.Server.WeaponDeal;
using ReallifeGamemode.Server.Job;
using ReallifeGamemode.Server.Managers;
namespace ReallifeGamemode.Server.Util
{
public class ThreadTimers
{
private static Timer timer500 = new Timer(500); //0.5 seconds timer
private static Timer timer2500 = new Timer(2500); //2.5 seconds timer
private static Timer timer10000 = new Timer(10000); // 10 second timer
private static Timer timer60000 = new Timer(60000); //60 seconds timer
public static void StartAllTimers()
{
timer500.Start();
timer500.Elapsed += Timer500_Elapsed;
timer2500.Start();
timer2500.Elapsed += Timer2500_Elapsed;
timer10000.Start();
timer10000.Elapsed += Timer10000_Elapsed;
timer60000.Start();
timer60000.Elapsed += Timer60000_Elapsed;
}
private static void Timer500_Elapsed(object sender, ElapsedEventArgs e)
{
TaxiDriverJob.UpdateFare();
VehicleManager.VehicleTimerTick();
}
private static void Timer60000_Elapsed(object sender, ElapsedEventArgs e)
{
Jail.JailOut_Elapsed();
Economy.Timer_Elapsed();
WeaponDealManager.Timer_Elapsed();
}
private static void Timer10000_Elapsed(object sender, ElapsedEventArgs e)
{
Jail.BrakeOut_Elapsed();
}
private static void Timer2500_Elapsed(object sender, ElapsedEventArgs e)
{
WantedEscapeTimer.Timer_Elapsed();
Jail.JailIn_Elapsed();
Gangwar.Gangwar.Value_TimerElapsed();
}
}
}

View File

@@ -124,7 +124,7 @@ namespace ReallifeGamemode.Server.Wanted
}
/*
public static void JailTimer()
{
System.Timers.Timer timer = new System.Timers.Timer(60000);
@@ -133,12 +133,12 @@ namespace ReallifeGamemode.Server.Wanted
timer.Start();
brakeOut.Start();
jailIn.Start();
timer.Elapsed += Timer_Elapsed;
brakeOut.Elapsed += BrakeOut_Elapsed;
jailIn.Elapsed += JailIn_Elapsed;
//timer.Elapsed += Timer_Elapsed;
//brakeOut.Elapsed += BrakeOut_Elapsed;
//jailIn.Elapsed += JailIn_Elapsed;
}
private static void JailIn_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
*/
public static void JailIn_Elapsed()
{
foreach (var player in NAPI.Pools.GetAllPlayers())
{
@@ -166,7 +166,7 @@ namespace ReallifeGamemode.Server.Wanted
}
}
private static void BrakeOut_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
public static void BrakeOut_Elapsed()
{
foreach (var player in NAPI.Pools.GetAllPlayers())
{
@@ -188,7 +188,7 @@ namespace ReallifeGamemode.Server.Wanted
}
}
private static void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
public static void JailOut_Elapsed()
{
foreach (var player in NAPI.Pools.GetAllPlayers())
{

View File

@@ -20,14 +20,14 @@ namespace ReallifeGamemode.Server.Wanted
public class WantedEscapeTimer
{
public static Dictionary<int, int> waTimer { get; set; } = new Dictionary<int, int>(); //zeit in ms
/*
public static void WantedTimer()
{
System.Timers.Timer timer = new System.Timers.Timer(2500);
timer.Start();
timer.Elapsed += Timer_Elapsed;
//System.Timers.Timer timer = new System.Timers.Timer(2500);
//timer.Start();
//timer.Elapsed += Timer_Elapsed;
}
*/
public static void ResetWantedTimeToElapse(Player client)
{
User user = client.GetUser();
@@ -37,7 +37,7 @@ namespace ReallifeGamemode.Server.Wanted
waTimer[user.Id] = 300000;
}
private static void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
public static void Timer_Elapsed()
{
foreach (var player in NAPI.Pools.GetAllPlayers())
{

View File

@@ -28,7 +28,7 @@ namespace ReallifeGamemode.Server.WeaponDeal
var user = client.GetUser();
using (var context = new DatabaseContext())
{
FactionVehicle factionVehicle = context.FactionVehicles.Where(f => f.GetOwners().Contains(user.FactionId ?? 0) && f.Model == VehicleHash.Burrito3).FirstOrDefault();
FactionVehicle factionVehicle = context.FactionVehicles.ToList().Where(f => f.GetOwners().Contains(user.FactionId ?? 0) && f.Model == VehicleHash.Burrito3).FirstOrDefault();
Vehicle fVeh = VehicleManager.GetVehicleFromServerVehicle(factionVehicle);
if (fVeh.Position.DistanceTo(client.Position) > 50)
@@ -53,14 +53,15 @@ namespace ReallifeGamemode.Server.WeaponDeal
}
}
/*
public static void WeaponDealTimer()
{
System.Timers.Timer timer = new System.Timers.Timer(60000);
timer.Start();
timer.Elapsed += Timer_Elapsed;
}
private static void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
*/
public static void Timer_Elapsed()
{
using (var context = new DatabaseContext())
{