From 226cba380d8f543aa9469a2414bcd9c65f0690f5 Mon Sep 17 00:00:00 2001 From: VortrexFTW Date: Sat, 12 Sep 2020 13:15:13 -0500 Subject: [PATCH] Fix for localPlayer null on spawn --- scripts/client/main.js | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/scripts/client/main.js b/scripts/client/main.js index 6d3a291d..6450d45b 100644 --- a/scripts/client/main.js +++ b/scripts/client/main.js @@ -19,6 +19,8 @@ addNetworkHandler("ag.connectCamera", function(cameraPosition, cameraLookat) { // --------------------------------------------------------------------------- addEventHandler("onPickupCollected", function(event, pickup, ped) { + console.log(`PICKUP COLLECTED: Ped ${ped.id}, ${pickup.id}`); + // This won't be needed in next GTAC update. onPickupCollccted has been added server side if(ped == localPlayer) { triggerNetworkEvent("ag.onPickupCollected", pickup); @@ -128,7 +130,7 @@ function getIslandFromPosition(position) { addEventHandler("onPedSpawn", function(event, ped) { // Nasty workaround since localPlayer is null as the player spawns (reported as client bug #194) - setTimeout(attemptToShowBlipsOnSpawn, 500, ped); + setTimeout(initLocalPlayer, 500, ped); }); // --------------------------------------------------------------------------- @@ -151,4 +153,29 @@ addNetworkHandler("ag.removeFromVehicle", function() { localPlayer.removeFromVehicle(); }); +// --------------------------------------------------------------------------- + +function initLocalPlayer(player) { + attemptToShowBlipsOnSpawn(player) + bindEventHandler("onEntityProcess", localPlayer, processLocalPlayerEntity); +} + +// --------------------------------------------------------------------------- + +function processLocalPlayerEntity(event, player) { + getElementsByType(ELEMENT_MARKER).forEach(function(sphere) { + if(player.position.distance(sphere.position) <= sphere.radius) { + if(player.getData("ag.inSphere") == null) { + player.setData("ag.inSphere", sphere); + triggerNetworkEvent("ag.onPlayerEnterSphere", sphere); + } + } else { + if(player.getData("ag.inSphere")) { + player.removeData("ag.inSphere", sphere); + triggerNetworkEvent("ag.onPlayerExitSphere", sphere); + } + } + }); +} + // --------------------------------------------------------------------------- \ No newline at end of file