WT: PoliceT eingbunden, WT nicht starten wenn noch läuft

This commit is contained in:
hydrant
2020-05-11 17:05:07 +02:00
parent e3f2c9db2e
commit 7692c86f68
2 changed files with 36 additions and 12 deletions

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using System.Timers; using System.Timers;
@@ -25,12 +25,20 @@ namespace ReallifeGamemode.Server.Events
if (vehicle.GetServerVehicle() is FactionVehicle veh) if (vehicle.GetServerVehicle() is FactionVehicle veh)
{ {
User u = client.GetUser(); User u = client.GetUser();
if ((u.FactionId != null) && (veh.GetOwners().Contains(u.FactionId ?? 0)) && ((VehicleHash)vehicle.Model == VehicleHash.Burrito3) && vehicle.HasData("weaponDeal") && vehicle.GetData<bool>("weaponDeal") == true) if ((u.FactionId != null)
&& (veh.GetOwners().Contains(u.FactionId ?? 0))
&& ((VehicleHash)vehicle.Model == VehicleHash.Burrito3 || (VehicleHash)vehicle.Model == VehicleHash.Policet)
&& vehicle.HasData("weaponDeal")
&& vehicle.GetData<bool>("weaponDeal") == true)
{ {
CheckPointHandle.RemovePlayerHandlerFromList(client); CheckPointHandle.RemovePlayerHandlerFromList(client);
client.TriggerEvent("destroyCP"); 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) 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); client.TriggerEvent("SERVER:setMarkerBehindVehicle", vehicle);
} }

View File

@@ -24,9 +24,9 @@ namespace ReallifeGamemode.Server.WeaponDeal
public void SrvEVENT_startWeaponDeal(Player client) public void SrvEVENT_startWeaponDeal(Player client)
{ {
var user = client.GetUser(); var user = client.GetUser();
using (var context = new DatabaseContext()) using (var context = new DatabaseContext(true))
{ {
FactionVehicle factionVehicle = context.FactionVehicles.ToList().Where(f => f.GetOwners().Contains(user.FactionId ?? 0) && f.Model == VehicleHash.Burrito3).FirstOrDefault(); FactionVehicle factionVehicle = context.FactionVehicles.Where(f => f.Model == VehicleHash.Burrito3 || f.Model == VehicleHash.Policet).ToList().Where(f => f.GetOwners().Contains(user.FactionId ?? 0)).FirstOrDefault();
if (factionVehicle == null) if (factionVehicle == null)
{ {
@@ -37,7 +37,14 @@ namespace ReallifeGamemode.Server.WeaponDeal
Vehicle fVeh = VehicleManager.GetVehicleFromServerVehicle(factionVehicle); Vehicle fVeh = VehicleManager.GetVehicleFromServerVehicle(factionVehicle);
if (fVeh.Position.DistanceTo(client.Position) > 80) if (fVeh.HasData("weaponDeal") && fVeh.GetData<bool>("weaponDeal") == true)
{
ChatService.ErrorMessage(client, "Es läuft aktuell schon ein Waffentransport");
return;
}
float distance = fVeh.Position.DistanceTo2D(client.Position);
if ((distance > 80 && factionVehicle.Model == VehicleHash.Burrito3) || (distance > 400 && factionVehicle.Model == VehicleHash.Policet))
{ {
ChatService.ErrorMessage(client, "Der Transporter ist zu weit entfernt"); ChatService.ErrorMessage(client, "Der Transporter ist zu weit entfernt");
return; return;
@@ -87,8 +94,10 @@ namespace ReallifeGamemode.Server.WeaponDeal
} }
} }
string vehName = NAPI.Vehicle.GetVehicleDisplayName(factionVehicle.Model);
ChatService.BroadcastFaction($"~y~[WAFFENDEAL]~s~ {msg}", user.Faction); ChatService.BroadcastFaction($"~y~[WAFFENDEAL]~s~ {msg}", user.Faction);
ChatService.SendMessage(client, "~y~[WAFFENDEAL]~s~ Steige in den Burrito ein und fahre zum Waffendeal."); ChatService.SendMessage(client, $"~y~[WAFFENDEAL]~s~ Steige in den {vehName} ein und fahre zum Waffendeal.");
fVeh.SetData("weaponDeal", true); fVeh.SetData("weaponDeal", true);
InventoryManager.RemoveAllItemsfromVehicleInventory(fVeh); InventoryManager.RemoveAllItemsfromVehicleInventory(fVeh);
Faction fac = context.Factions.Where(f => f.Id == user.FactionId).FirstOrDefault(); Faction fac = context.Factions.Where(f => f.Id == user.FactionId).FirstOrDefault();
@@ -135,8 +144,16 @@ namespace ReallifeGamemode.Server.WeaponDeal
[RemoteEvent("loadWeaponTransport")] [RemoteEvent("loadWeaponTransport")]
public void SrvEVENT_loadWeaponTransport(Player client) public void SrvEVENT_loadWeaponTransport(Player client)
{ {
if ((VehicleHash)client.Vehicle.Model != VehicleHash.Burrito3) var veh = client.Vehicle;
if (veh == null)
{
return; return;
}
if ((VehicleHash)veh.Model != VehicleHash.Burrito3 && (VehicleHash)veh.Model != VehicleHash.Policet)
{
return;
}
User user = client.GetUser(); User user = client.GetUser();
using (var context = new DatabaseContext()) using (var context = new DatabaseContext())
@@ -151,16 +168,15 @@ namespace ReallifeGamemode.Server.WeaponDeal
fVeh.SetData("weaponDeal", false); fVeh.SetData("weaponDeal", false);
fVeh.SetData("WeaponDealLoad", true); fVeh.SetData("WeaponDealLoad", true);
InventoryManager.RemoveAllItemsfromVehicleInventory(fVeh); InventoryManager.RemoveAllItemsfromVehicleInventory(fVeh);
Random rnd = new Random();
int oMembers = NAPI.Pools.GetAllPlayers().Where(p => p.IsLoggedIn() && p.GetUser(context).FactionId == user.FactionId).Count(); int oMembers = NAPI.Pools.GetAllPlayers().Where(p => p.IsLoggedIn() && p.GetUser(context).FactionId == user.FactionId).Count();
if (factionVehicle.GetOwners().Contains(8) || factionVehicle.GetOwners().Contains(7)) if (factionVehicle.GetOwners().Contains(8) || factionVehicle.GetOwners().Contains(7))
{ {
VehicleItem item = new VehicleItem() { ItemId = 11, VehicleId = factionVehicle.Id, Amount = rnd.Next(3, 5) * oMembers }; //pistole VehicleItem item = new VehicleItem() { ItemId = 11, VehicleId = factionVehicle.Id, Amount = 2 * oMembers }; //pistole
InventoryManager.AddItemToVehicleInventory(fVeh, item.ItemId, item.Amount); InventoryManager.AddItemToVehicleInventory(fVeh, item.ItemId, item.Amount);
VehicleItem item3 = new VehicleItem() { ItemId = 14, VehicleId = factionVehicle.Id, Amount = rnd.Next(1, 4) * oMembers }; //Pumpe VehicleItem item3 = new VehicleItem() { ItemId = 14, VehicleId = factionVehicle.Id, Amount = 2 * oMembers }; //Pumpe
InventoryManager.AddItemToVehicleInventory(fVeh, item3.ItemId, item3.Amount); InventoryManager.AddItemToVehicleInventory(fVeh, item3.ItemId, item3.Amount);
VehicleItem item2 = new VehicleItem() { ItemId = 16, VehicleId = factionVehicle.Id, Amount = 1 * oMembers }; //Schutzweste VehicleItem item2 = new VehicleItem() { ItemId = 16, VehicleId = factionVehicle.Id, Amount = 2 * oMembers }; //Schutzweste
InventoryManager.AddItemToVehicleInventory(fVeh, item2.ItemId, item2.Amount); InventoryManager.AddItemToVehicleInventory(fVeh, item2.ItemId, item2.Amount);
} }
} }