prevent nullreference in exitvehicle
This commit is contained in:
@@ -228,7 +228,6 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ExitVehicle.timerNoobRollerRespawn.Stop();
|
|
||||||
vehicle.SetData("NoobSpawnVehicleTimer", false);
|
vehicle.SetData("NoobSpawnVehicleTimer", false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,21 +14,41 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
{
|
{
|
||||||
public class ExitVehicle : Script
|
public class ExitVehicle : Script
|
||||||
{
|
{
|
||||||
object LastVehicle;
|
|
||||||
public static Timer timerNoobRollerRespawn = new Timer(600000); //10 Minuten Timer NoobRollerRespawn
|
|
||||||
[ServerEvent(Event.PlayerExitVehicleAttempt)]
|
[ServerEvent(Event.PlayerExitVehicleAttempt)]
|
||||||
public void OnPlayerExitVehicle(Player client, GTANetworkAPI.Vehicle vehicle)
|
public void OnPlayerExitVehicle(Player client, GTANetworkAPI.Vehicle vehicle)
|
||||||
{
|
{
|
||||||
LastVehicle = vehicle;
|
if (client == null)
|
||||||
if (client.VehicleSeat != 0)
|
{
|
||||||
return;
|
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();
|
User u = client.GetUser();
|
||||||
|
if (u == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if ((u.FactionId != null)
|
if ((u.FactionId != null)
|
||||||
&& (veh.GetOwners().Contains(u.FactionId ?? 0))
|
&& (factionVehicle.GetOwners().Contains(u.FactionId ?? 0))
|
||||||
&& (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("weaponDeal")
|
&& vehicle.HasData("weaponDeal")
|
||||||
&& vehicle.GetData<bool>("weaponDeal") == true)
|
&& vehicle.GetData<bool>("weaponDeal") == true)
|
||||||
{
|
{
|
||||||
@@ -36,14 +56,14 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
client.TriggerEvent("destroyCP");
|
client.TriggerEvent("destroyCP");
|
||||||
}
|
}
|
||||||
else if ((u.FactionId != null)
|
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.HasData("WeaponDealLoad")
|
||||||
&& vehicle.GetData<bool>("WeaponDealLoad") == true)
|
&& vehicle.GetData<bool>("WeaponDealLoad") == true)
|
||||||
{
|
{
|
||||||
client.TriggerEvent("SERVER:setMarkerBehindVehicle", vehicle);
|
client.TriggerEvent("SERVER:setMarkerBehindVehicle", vehicle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (vehicle.GetServerVehicle() is SchoolVehicle vehS)
|
if (serverVehicle is SchoolVehicle schoolVehicle)
|
||||||
{
|
{
|
||||||
if (client.HasData("ActiveSchool"))
|
if (client.HasData("ActiveSchool"))
|
||||||
{
|
{
|
||||||
@@ -56,45 +76,6 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
CheckPointHandle.DeleteCheckpoints(client);
|
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