From 5f5b3300cd86b4a04c0e6ecfcaf3f0f4dea30089 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Mon, 14 Dec 2020 10:40:24 -0600 Subject: [PATCH] Add bus driver job stuff (incomplete) --- scripts/client/main.js | 39 +++++++++++++++++++++++++++++---------- scripts/server/job/bus.js | 15 +++++++++++---- 2 files changed, 40 insertions(+), 14 deletions(-) diff --git a/scripts/client/main.js b/scripts/client/main.js index 059e99f3..f903d340 100644 --- a/scripts/client/main.js +++ b/scripts/client/main.js @@ -8,14 +8,14 @@ // TYPE: Client (JavaScript) // =========================================================================== -let allServerBlips = []; -let currentServerBlips = []; - let bigMessageFont = null; let mainLogo = null; let showLogo = true; +let busStopBlip = null; +let busStopSphere = null; + // --------------------------------------------------------------------------- addNetworkHandler("ag.connectCamera", function(cameraPosition, cameraLookat) { @@ -62,6 +62,9 @@ addEventHandler("onPickupCollected", function(event, pickup, ped) { bindEventHandler("onResourceStart", thisResource, function(event, resource) { triggerNetworkEvent("ag.clientReady"); + + addEvent("OnLocalPlayerEnterSphere", 1); + addEvent("OnLocalPlayerExitSphere", 1); }); // --------------------------------------------------------------------------- @@ -227,10 +230,7 @@ addNetworkHandler("ag.removeFromVehicle", function() { // --------------------------------------------------------------------------- function initLocalPlayer(player) { - attemptToShowBlipsOnSpawn(player); - if(gta.game < GAME_GTA_IV) { - addEventHandler("onProcess", processEvent); - } + addEventHandler("onProcess", processEvent); } // --------------------------------------------------------------------------- @@ -240,11 +240,13 @@ function processEvent(event, deltaTime) { if(localPlayer.position.distance(sphere.position) <= sphere.radius) { if(localPlayer.getData("ag.inSphere") == null) { localPlayer.setData("ag.inSphere", sphere); + triggerEvent("OnLocalPlayerEnterSphere", sphere, sphere); triggerNetworkEvent("ag.onPlayerEnterSphere", sphere); } } else { - if(localPlayer.getData("ag.inSphere")) { + if(localPlayer.getData("ag.inSphere") != null) { localPlayer.removeData("ag.inSphere", sphere); + triggerEvent("OnLocalPlayerExitSphere", sphere, sphere); triggerNetworkEvent("ag.onPlayerExitSphere", sphere); } } @@ -370,8 +372,8 @@ addNetworkHandler("ag.freeze", function(state) { // --------------------------------------------------------------------------- -addNetworkHandler("ag.control", function(state) { - gui.showCursor(state, false); +addNetworkHandler("ag.control", function(controlState, cursorState = false) { + gui.showCursor(cursorState, controlState); }); // --------------------------------------------------------------------------- @@ -380,4 +382,21 @@ addNetworkHandler("ag.fadeCamera", function(state, time) { gta.fadeCamera(state, time); }); +// --------------------------------------------------------------------------- + +addEventHandler("OnPedWasted", function(event, wastedPed, killerPed, weapon, pedPiece) { + wastedPed.clearWeapons(); +}); + +// --------------------------------------------------------------------------- + +addNetworkHandler("ag.showBusStop", function(position, colour) { + let busStopSphere = gta.createSphere(position, 3); + let busStopBlip = gta.createBlip(position, 0, 2, colour); + + bindEventHandler("OnLocalPlayerEnterSphere", busStopSphere, function(event, sphere) { + triggerNetworkEvent("ag.arrivedAtBusStop"); + }); +}); + // --------------------------------------------------------------------------- \ No newline at end of file diff --git a/scripts/server/job/bus.js b/scripts/server/job/bus.js index cfec482b..cb7c0225 100644 --- a/scripts/server/job/bus.js +++ b/scripts/server/job/bus.js @@ -104,10 +104,10 @@ let busRoutes = [ function getNextStopOnBusRoute(client) { if(getEntityData(client, "ag.busRoute") && getEntityData(client, "ag.lastBusStop")) { if(!isGoingToLastStopOnBusRoute(client)) { - return busRoutes[server.game][getEntityData(client, "ag.busRoute")][getEntityData(client, "ag.lastBusStop")+1]; + return busRoutes[server.game][getEntityData(client, "ag.busRoute")].positions[getEntityData(client, "ag.lastBusStop")+1]; } else { let slot = busRoutes[server.game][getEntityData(client, "ag.busRoute")].length-1; - return busRoutes[server.game][getEntityData(client, "ag.busRoute")][slot]; + return busRoutes[server.game][getEntityData(client, "ag.busRoute")].positions[slot]; } } } @@ -125,13 +125,20 @@ function isGoingToLastStopOnBusRoute(client) { // --------------------------------------------------------------------------- function freezeBusForStop(client) { - triggerNetworkEvent("ag.freeze", client, true); + triggerNetworkEvent("ag.control", client, false, false); } // --------------------------------------------------------------------------- function unFreezeBusForStop(client) { - triggerNetworkEvent("ag.freeze", client, false); + triggerNetworkEvent("ag.control", client, true, false); +} + +// --------------------------------------------------------------------------- + +function showNextBusStop(client) { + let nextStop = getNextStopOnBusRoute(client); + triggerNetworkEvent("ag.showBusStop", client, nextStop, getColourByName("busDriverGreen")); } // --------------------------------------------------------------------------- \ No newline at end of file