[BUG-93][BUG-49] Tuning Preise angepasst und Fehler behoben
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
@@ -35,7 +36,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
colShape.OnEntityEnterColShape += (cs, c) =>
|
||||
{
|
||||
using var dbContext = new DatabaseContext();
|
||||
if (c.IsInVehicle && c.VehicleSeat == 0)
|
||||
if (c.IsInVehicle && c.VehicleSeat == 0 && IsPlayerAllowedToTuneVehicle(c, c.Vehicle, dbContext))
|
||||
{
|
||||
c.TriggerEvent("showTuningInfo");
|
||||
}
|
||||
@@ -43,12 +44,42 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
colShape.OnEntityExitColShape += (cs, c) =>
|
||||
{
|
||||
c.TriggerEvent("hideTuningInfo", true);
|
||||
if(c.IsInVehicle)
|
||||
{
|
||||
c.TriggerEvent("hideTuningInfo", true);
|
||||
}
|
||||
};
|
||||
|
||||
tuningGarages.Add(colShape);
|
||||
}
|
||||
|
||||
private static bool IsPlayerAllowedToTuneVehicle(Player c, Vehicle vehicle, DatabaseContext dbContext)
|
||||
{
|
||||
User user = c.GetUser();
|
||||
if(user == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
ServerVehicle serverVehicle = vehicle.GetServerVehicle(dbContext);
|
||||
if(serverVehicle == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if(serverVehicle is UserVehicle userVehicle && userVehicle.UserId == user.Id)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if(serverVehicle is FactionVehicle factionVehicle && factionVehicle.GetOwners().Contains(user.FactionId ?? 0))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void ApplyTuningToServerVehicle(ServerVehicle sVeh)
|
||||
{
|
||||
Vehicle veh = VehicleManager.GetVehicleFromServerVehicle(sVeh);
|
||||
@@ -81,7 +112,33 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
if (!player.IsInVehicle) return;
|
||||
|
||||
player.TriggerEvent("showTuningMenu");
|
||||
player.TriggerEvent("showTuningMenu", false, GetVehicleBasePrice(player.Vehicle));
|
||||
}
|
||||
|
||||
private int GetVehicleBasePrice(Vehicle vehicle)
|
||||
{
|
||||
if(vehicle == null)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
ServerVehicle serverVehicle = vehicle.GetServerVehicle();
|
||||
if(serverVehicle == null)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(serverVehicle is UserVehicle userVehicle)
|
||||
{
|
||||
return userVehicle.Price ?? 0;
|
||||
}
|
||||
|
||||
if(serverVehicle is FactionVehicle factionVehicle)
|
||||
{
|
||||
return factionVehicle.BuyPrice;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
[RemoteEvent("repairVehicle")]
|
||||
|
||||
Reference in New Issue
Block a user