MfG, DimGamer
This commit is contained in:
@@ -2006,38 +2006,37 @@ namespace ReallifeGamemode.Server.Commands
|
||||
if (player.IsInVehicle)
|
||||
{
|
||||
string fIdStr = option1 + " " + option2;
|
||||
int[] fIds = null;
|
||||
|
||||
string[] fIdStrs = fIdStr.Split(" ");
|
||||
|
||||
int? factionId = null;
|
||||
try
|
||||
{
|
||||
factionId = int.Parse(option1);
|
||||
fIds = fIdStrs.Select(int.Parse).ToArray();
|
||||
}
|
||||
catch (Exception) { }
|
||||
if (player.GetUser().Faction == null && factionId == null)
|
||||
catch (Exception)
|
||||
{
|
||||
ChatService.SendMessage(player, "~m~Du bist in keiner Fraktion! Invite dich erst mit ~y~/ainvite");
|
||||
ChatService.ErrorMessage(player, "Es wurden fehlerhafte Fraktionen angegeben");
|
||||
return;
|
||||
}
|
||||
else
|
||||
|
||||
if (fIds.Any())
|
||||
{
|
||||
if (factionId != null)
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
using (var dbContext = new DatabaseContext())
|
||||
if (dbContext.Factions.Where(f => fIds.Contains(f.Id)).Count() != fIds.Length)
|
||||
{
|
||||
if (dbContext.Factions.Where(f => f.Id == factionId).Count() == 0)
|
||||
{
|
||||
ChatService.ErrorMessage(player, "Diese Fraktion existiert nicht");
|
||||
return;
|
||||
}
|
||||
ChatService.ErrorMessage(player, "Mindestens eine der angegeben Fraktionen existieren nicht");
|
||||
return;
|
||||
}
|
||||
}
|
||||
Vehicle vehicle = player.Vehicle;
|
||||
int playerSeat = player.VehicleSeat;
|
||||
vehicle = SaveManager.SaveFactionVehicleData(vehicle, (VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
|
||||
vehicle.PrimaryColor, vehicle.SecondaryColor, vehicle.Locked, vehicle.EngineStatus, factionId ?? player.GetUser().FactionId.Value, vehicle.Livery);
|
||||
player.SendNotification("Fraktionsfahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
|
||||
player.SetIntoVehicle(vehicle, playerSeat);
|
||||
}
|
||||
Vehicle vehicle = player.Vehicle;
|
||||
int playerSeat = player.VehicleSeat;
|
||||
vehicle = SaveManager.SaveFactionVehicleData(vehicle, (VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
|
||||
vehicle.PrimaryColor, vehicle.SecondaryColor, vehicle.Locked, vehicle.EngineStatus, fIds, vehicle.Livery);
|
||||
player.SendNotification("Fraktionsfahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
|
||||
player.SetIntoVehicle(vehicle, playerSeat);
|
||||
}
|
||||
else ChatService.SendMessage(player, "~m~Du sitzt in keinem Fahrzeug!");
|
||||
break;
|
||||
|
||||
@@ -18,7 +18,8 @@ namespace ReallifeGamemode.Server.Events
|
||||
return;
|
||||
if (vehicle.GetServerVehicle() is FactionVehicle veh)
|
||||
{
|
||||
if (client.GetUser().FactionId != null && (veh.FactionId == client.GetUser().FactionId) && (veh.Model == VehicleHash.Burrito3) && vehicle.HasData("weaponDeal") && vehicle.GetData<bool>("weaponDeal") == true)
|
||||
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())
|
||||
|
||||
@@ -4,6 +4,7 @@ using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using ReallifeGamemode.Server.WeaponDeal;
|
||||
|
||||
namespace ReallifeGamemode.Server.Events
|
||||
@@ -22,9 +23,11 @@ namespace ReallifeGamemode.Server.Events
|
||||
|
||||
if (seat != 0) return;
|
||||
|
||||
User u = player.GetUser();
|
||||
|
||||
if (vehicle.GetServerVehicle() is FactionVehicle veh)
|
||||
{
|
||||
if (veh.FactionId != player.GetUser().FactionId)
|
||||
if (!veh.GetOwners().Contains(player.GetUser().FactionId ?? 0) && !u.IsAdmin(AdminLevel.HEADADMIN))
|
||||
{
|
||||
if ((VehicleHash)vehicle.Model == VehicleHash.Burrito3)
|
||||
{
|
||||
|
||||
@@ -19,7 +19,8 @@ namespace ReallifeGamemode.Server.Events
|
||||
return;
|
||||
if (vehicle.GetServerVehicle() is FactionVehicle veh)
|
||||
{
|
||||
if ((client.GetUser().FactionId != null) && (veh.FactionId == client.GetUser().FactionId) && ((VehicleHash)vehicle.Model == VehicleHash.Burrito3) && vehicle.HasData("weaponDeal") && vehicle.GetData<bool>("weaponDeal") == true)
|
||||
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)
|
||||
{
|
||||
CheckPointHandle.RemovePlayerHandlerFromList(client);
|
||||
client.TriggerEvent("destroyCP");
|
||||
|
||||
@@ -453,7 +453,7 @@ namespace ReallifeGamemode.Server.Events
|
||||
}
|
||||
else if (sV is FactionVehicle fV)
|
||||
{
|
||||
if (fV.FactionId != u.FactionId && !state && !u.IsAdmin(AdminLevel.ADMIN3))
|
||||
if (!fV.GetOwners().Contains(u.FactionId ?? 0) && !state && !u.IsAdmin(AdminLevel.ADMIN3))
|
||||
{
|
||||
player.SendNotification("~r~Du hast keinen Schlüssel.");
|
||||
return;
|
||||
@@ -509,7 +509,8 @@ namespace ReallifeGamemode.Server.Events
|
||||
ServerVehicle veh = player.Vehicle.GetServerVehicle();
|
||||
if (veh != null)
|
||||
{
|
||||
if (veh is FactionVehicle fV && fV.FactionId != player.GetUser()?.FactionId && (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? false))
|
||||
User u = player.GetUser();
|
||||
if (veh is FactionVehicle fV && !fV.GetOwners().Contains(u.FactionId ?? 0) && (!u.IsAdmin(AdminLevel.ADMIN3)))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace ReallifeGamemode.Server.Events
|
||||
}
|
||||
else if (sV is FactionVehicle fV)
|
||||
{
|
||||
if (fV.FactionId != u.FactionId && !state && !u.IsAdmin(AdminLevel.ADMIN3))
|
||||
if (!fV.GetOwners().Contains(u.FactionId ?? 0) && !state && !u.IsAdmin(AdminLevel.ADMIN3))
|
||||
{
|
||||
player.SendNotification("~r~Du hast keinen Schlüssel.");
|
||||
return;
|
||||
@@ -94,7 +94,7 @@ namespace ReallifeGamemode.Server.Events
|
||||
}
|
||||
else if (sV is FactionVehicle fV)
|
||||
{
|
||||
if (fV.FactionId != u.FactionId)
|
||||
if (!fV.GetOwners().Contains(u.FactionId ?? 0))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -152,7 +152,7 @@ namespace ReallifeGamemode.Server.Events
|
||||
}
|
||||
else if (sV is FactionVehicle fV)
|
||||
{
|
||||
if (fV.FactionId != u.FactionId)
|
||||
if (!fV.GetOwners().Contains(u.FactionId ?? 0))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -205,7 +205,7 @@ namespace ReallifeGamemode.Server.Events
|
||||
}
|
||||
else if (sV is FactionVehicle fV)
|
||||
{
|
||||
if (fV.FactionId != u.FactionId || !u.FactionLeader)
|
||||
if (!fV.GetOwners().Contains(u.FactionId ?? 0) || !u.FactionLeader)
|
||||
{
|
||||
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht parken.");
|
||||
return;
|
||||
|
||||
@@ -27,11 +27,11 @@ namespace ReallifeGamemode.Server.Extensions
|
||||
int c1 = veh.PrimaryColor;
|
||||
int c2 = veh.SecondaryColor;
|
||||
Vehicle newVeh = NAPI.Vehicle.CreateVehicle(model, position, heading, c1, c2, "", 255, false, false);
|
||||
veh.Livery = veh.Livery;
|
||||
veh.Livery = veh.Livery;
|
||||
VehicleStreaming.SetEngineState(newVeh, false);
|
||||
VehicleStreaming.SetLockStatus(newVeh, veh.Locked);
|
||||
VehicleManager.AddVehicle(veh, newVeh);
|
||||
newVeh.Rotation = new Vector3(0,0,heading);
|
||||
newVeh.Rotation = new Vector3(0, 0, heading);
|
||||
|
||||
newVeh.SetSharedData("drivenDistance", veh.DistanceDriven);
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace ReallifeGamemode.Server.Extensions
|
||||
|
||||
if (veh is FactionVehicle fV)
|
||||
{
|
||||
numberplate = $"F{fV.FactionId} " + numberplate;
|
||||
numberplate = $"F{string.Join(".", fV.GetOwners())} " + numberplate;
|
||||
}
|
||||
|
||||
if (veh is UserVehicle uV)
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace ReallifeGamemode.Server.Inventory.Items
|
||||
|
||||
public bool noTransfer(Player client, UserItem uItem, FactionVehicle fVeh)
|
||||
{
|
||||
if (fVeh.FactionId != client.GetUser().FactionId)
|
||||
if (!fVeh.GetOwners().Contains(client.GetUser().FactionId ?? 0))
|
||||
return false;
|
||||
if (fVeh.Model != VehicleHash.Burrito3)
|
||||
return false;
|
||||
|
||||
@@ -195,7 +195,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
PositionY = spawnPos.Y,
|
||||
PositionZ = spawnPos.Z,
|
||||
Locked = false,
|
||||
FactionId = player.GetUser().FactionId,
|
||||
Owners = JsonConvert.SerializeObject(new int[] { player.GetUser(dbContext).FactionId.Value }),
|
||||
Model = shopVehicle.Model,
|
||||
PrimaryColor = 111,
|
||||
SecondaryColor = 111,
|
||||
|
||||
@@ -5,6 +5,7 @@ using ReallifeGamemode.Database.Entities.Saves;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using System;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
@@ -133,14 +134,14 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
|
||||
public static Vehicle SaveFactionVehicleData(Vehicle veh, VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading,
|
||||
string vehicleNumberPlate, int vehiclePrimaryColor, int vehicleSecondaryColor, bool vehicleLocked, bool vehicleEngine, int factionId, int livery)
|
||||
string vehicleNumberPlate, int vehiclePrimaryColor, int vehicleSecondaryColor, bool vehicleLocked, bool vehicleEngine, int[] factionId, int livery)
|
||||
{
|
||||
using (var saveData = new DatabaseContext())
|
||||
{
|
||||
var dataSet = new FactionVehicle
|
||||
{
|
||||
Model = vehicleModel,
|
||||
FactionId = factionId,
|
||||
Owners = JsonConvert.SerializeObject(factionId),
|
||||
PositionX = vehiclePosition.X,
|
||||
PositionY = vehiclePosition.Y,
|
||||
PositionZ = vehiclePosition.Z,
|
||||
|
||||
@@ -31,10 +31,11 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
colShape.OnEntityEnterColShape += (cs, c) =>
|
||||
{
|
||||
using var dbContext = new DatabaseContext();
|
||||
if (c.IsInVehicle)
|
||||
{
|
||||
Vehicle v = c.Vehicle;
|
||||
if (v.GetServerVehicle() is FactionVehicle fV && fV.GetFaction().StateOwned)
|
||||
if (v.GetServerVehicle() is FactionVehicle fV && fV.GetOwners().TrueForAll(fV => dbContext.Factions.Where(f => f.Id == fV).First().StateOwned))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace ReallifeGamemode.Server.WeaponDeal
|
||||
var user = client.GetUser();
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
FactionVehicle factionVehicle = context.FactionVehicles.Where(f => f.FactionId == user.FactionId && f.Model == VehicleHash.Burrito3).FirstOrDefault();
|
||||
FactionVehicle factionVehicle = context.FactionVehicles.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)
|
||||
@@ -85,13 +85,13 @@ namespace ReallifeGamemode.Server.WeaponDeal
|
||||
User user = client.GetUser();
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
FactionVehicle factionVehicle = context.FactionVehicles.Where(f => f.FactionId == user.FactionId && f.Model == VehicleHash.Burrito3).FirstOrDefault();
|
||||
FactionVehicle factionVehicle = context.FactionVehicles.Where(f => f.GetOwners().Contains(user.FactionId ?? 0) && f.Model == VehicleHash.Burrito3).FirstOrDefault();
|
||||
Vehicle fVeh = VehicleManager.GetVehicleFromServerVehicle(factionVehicle);
|
||||
fVeh.SetData("weaponDeal", false);
|
||||
fVeh.SetData("WeaponDealLoad", true);
|
||||
InventoryManager.RemoveAllItemsfromVehicleInventory(fVeh);
|
||||
Random rnd = new Random();
|
||||
if (factionVehicle.FactionId == 8 || factionVehicle.FactionId == 7)
|
||||
if (factionVehicle.GetOwners().Contains(8) || factionVehicle.GetOwners().Contains(7))
|
||||
{
|
||||
VehicleItem item = new VehicleItem() { ItemId = 11, VehicleId = factionVehicle.Id, Amount = rnd.Next(45, 75) }; //pistole
|
||||
InventoryManager.AddItemToVehicleInventory(client, item, fVeh);
|
||||
|
||||
Reference in New Issue
Block a user