Fix for localPlayer null on spawn

This commit is contained in:
VortrexFTW
2020-09-12 13:15:13 -05:00
parent e7d2cf467b
commit 226cba380d

View File

@@ -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);
}
}
});
}
// ---------------------------------------------------------------------------