diff --git a/ReallifeGamemode.Client/core/rage-mp/entities.ts b/ReallifeGamemode.Client/core/rage-mp/entities.ts index a392b5b8..ab7a121e 100644 --- a/ReallifeGamemode.Client/core/rage-mp/entities.ts +++ b/ReallifeGamemode.Client/core/rage-mp/entities.ts @@ -1,5 +1,6 @@ import { IEntity, IPlayer, IEntityAttachments, IEntityAttachmentPool, IPlayerPool, IVehicle, IVehiclePool, VehicleSeat, EntityType } from "../../game"; import { parseJson } from "../../util"; +import game from "../.."; class RageEntity implements IEntity { private entity: EntityMp; @@ -184,11 +185,22 @@ class RageVehicle extends RageEntity implements IVehicle { class RageVehiclePool implements IVehiclePool { at(id: number): IVehicle { - return new RageVehicle(mp.vehicles.atRemoteId(Number(id))); + var veh = mp.vehicles.atRemoteId(Number(id)); + + if (!veh) { + game.ui.sendChatMessage("pool.at - veh is null") + return null; + } + + return new RageVehicle(veh); } forEach(fn: (entity: IVehicle) => void): void { mp.vehicles.forEach(e => { + if (!e) { + game.ui.sendChatMessage("forEach - e is null"); + return; + } fn(new RageVehicle(e)); }) } diff --git a/ReallifeGamemode.Client/core/rage-mp/events.ts b/ReallifeGamemode.Client/core/rage-mp/events.ts index f9200be0..5bc543f8 100644 --- a/ReallifeGamemode.Client/core/rage-mp/events.ts +++ b/ReallifeGamemode.Client/core/rage-mp/events.ts @@ -68,7 +68,12 @@ export default class RageEvents implements IEvents { var rE: RageEntity; switch (e.type) { case 'vehicle': - rE = new RageVehicle(e); + var veh = e; + if (!veh) { + game.ui.sendChatMessage("onEntityStreamIn - veh is null"); + return; + } + rE = new RageVehicle(veh); break; case 'player': rE = new RagePlayer(e); @@ -81,6 +86,11 @@ export default class RageEvents implements IEvents { onPlayerEnterVehicle(callback: (vehicle: IVehicle, seat: VehicleSeat) => void): void { mp.events.add("playerEnterVehicle", (rV: VehicleMp, rS: number) => { + if (!rV) { + game.ui.sendChatMessage("onPlayerEnterVehicle - rV is null"); + return; + } + callback(new RageVehicle(rV), (rS + 1)); }); } diff --git a/ReallifeGamemode.Client/vehiclesync/vehicleindicators.ts b/ReallifeGamemode.Client/vehiclesync/vehicleindicators.ts index 8b19fdfa..5f5c48f4 100644 --- a/ReallifeGamemode.Client/vehiclesync/vehicleindicators.ts +++ b/ReallifeGamemode.Client/vehiclesync/vehicleindicators.ts @@ -20,8 +20,10 @@ export default function vehicleIndicators() { mp.events.add("SERVER:setIndicatorStatus", (vehicle, left, right) => { var veh = mp.vehicles.atRemoteId(vehicle); - veh.setIndicatorLights(0, right); - veh.setIndicatorLights(1, left); + if (veh) { + veh.setIndicatorLights(0, right); + veh.setIndicatorLights(1, left); + } }); mp.events.add("entityStreamIn", entity => {