prevent nullreference in exitvehicle
This commit is contained in:
@@ -228,7 +228,6 @@ namespace ReallifeGamemode.Server.Events
|
||||
}
|
||||
else
|
||||
{
|
||||
ExitVehicle.timerNoobRollerRespawn.Stop();
|
||||
vehicle.SetData("NoobSpawnVehicleTimer", false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,21 +14,41 @@ namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
public class ExitVehicle : Script
|
||||
{
|
||||
object LastVehicle;
|
||||
public static Timer timerNoobRollerRespawn = new Timer(600000); //10 Minuten Timer NoobRollerRespawn
|
||||
[ServerEvent(Event.PlayerExitVehicleAttempt)]
|
||||
public void OnPlayerExitVehicle(Player client, GTANetworkAPI.Vehicle vehicle)
|
||||
{
|
||||
LastVehicle = vehicle;
|
||||
if (client.VehicleSeat != 0)
|
||||
if (client == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (vehicle.GetServerVehicle() is FactionVehicle veh)
|
||||
if (client.VehicleSeat != 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (vehicle == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ServerVehicle serverVehicle = vehicle.GetServerVehicle();
|
||||
if (serverVehicle == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (serverVehicle is FactionVehicle factionVehicle)
|
||||
{
|
||||
User u = client.GetUser();
|
||||
if (u == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ((u.FactionId != null)
|
||||
&& (veh.GetOwners().Contains(u.FactionId ?? 0))
|
||||
&& (veh.Model == WeaponDealManager.WEAPON_DEAL_GANG_VEHICLE_HASH || veh.Model == WeaponDealManager.WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH)
|
||||
&& (factionVehicle.GetOwners().Contains(u.FactionId ?? 0))
|
||||
&& (factionVehicle.Model == WeaponDealManager.WEAPON_DEAL_GANG_VEHICLE_HASH || factionVehicle.Model == WeaponDealManager.WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH)
|
||||
&& vehicle.HasData("weaponDeal")
|
||||
&& vehicle.GetData<bool>("weaponDeal") == true)
|
||||
{
|
||||
@@ -36,14 +56,14 @@ namespace ReallifeGamemode.Server.Events
|
||||
client.TriggerEvent("destroyCP");
|
||||
}
|
||||
else if ((u.FactionId != null)
|
||||
&& (veh.Model == WeaponDealManager.WEAPON_DEAL_GANG_VEHICLE_HASH || veh.Model == WeaponDealManager.WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH)
|
||||
&& (factionVehicle.Model == WeaponDealManager.WEAPON_DEAL_GANG_VEHICLE_HASH || factionVehicle.Model == WeaponDealManager.WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH)
|
||||
&& vehicle.HasData("WeaponDealLoad")
|
||||
&& vehicle.GetData<bool>("WeaponDealLoad") == true)
|
||||
{
|
||||
client.TriggerEvent("SERVER:setMarkerBehindVehicle", vehicle);
|
||||
}
|
||||
}
|
||||
if (vehicle.GetServerVehicle() is SchoolVehicle vehS)
|
||||
if (serverVehicle is SchoolVehicle schoolVehicle)
|
||||
{
|
||||
if (client.HasData("ActiveSchool"))
|
||||
{
|
||||
@@ -56,45 +76,6 @@ namespace ReallifeGamemode.Server.Events
|
||||
CheckPointHandle.DeleteCheckpoints(client);
|
||||
}
|
||||
}
|
||||
if (vehicle.GetData<bool>("NoobSpawnVehicle") == true)
|
||||
{
|
||||
timerNoobRollerRespawn.Start();
|
||||
vehicle.SetData("NoobSpawnVehicleTimer", true);
|
||||
timerNoobRollerRespawn.AutoReset = false;
|
||||
timerNoobRollerRespawn.Elapsed += Timer600000_Elapsed;
|
||||
//LastVehicle = vehicle;
|
||||
//timerNoobRollerRespawn.Elapsed += async (sender, e) => {await
|
||||
}
|
||||
}
|
||||
private static void Timer600000_Elapsed(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
//ExitVehicle c = new ExitVehicle();
|
||||
//Vehicle veh = c.LastVehicle;
|
||||
NAPI.Task.Run(() =>
|
||||
{
|
||||
NAPI.Pools.GetAllVehicles().ForEach(v =>
|
||||
{
|
||||
if (v.GetData<bool>("NoobSpawnVehicle") == true)
|
||||
{
|
||||
if (v.GetData<bool>("NoobSpawnVehicleTimer") == true)
|
||||
{
|
||||
v.ResetData("NoobSpawnVehicleTimer");
|
||||
v.ResetData("NoobSpawnVehicle");
|
||||
VehicleManager.DeleteVehicle(v);
|
||||
}
|
||||
}
|
||||
});
|
||||
NAPI.Pools.GetAllPlayers().ForEach(p =>
|
||||
{
|
||||
//if (!p.IsInVehicle)
|
||||
//{
|
||||
if (p.GetData<bool>("HatNoobSpawnVehicle") == true)
|
||||
{
|
||||
p.ResetData("HatNoobSpawnVehicle");
|
||||
}
|
||||
//}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user