Fixes for vehicle engine

This commit is contained in:
Vortrex
2021-01-08 06:31:34 -06:00
parent eb2daa83c6
commit 6a517229bf

View File

@@ -26,14 +26,14 @@ let smallGameMessageTimer = null;
let inSphere = false; let inSphere = false;
let inVehicle = false; let inVehicle = false;
let isWalking = false;
let isSpawned = false;
let localPlayerJobType = 0; let localPlayerJobType = 0;
let localPlayerWorking = false; let localPlayerWorking = false;
let mouseCameraEnabled = false; let mouseCameraEnabled = false;
let isWalking = false;
let garbageCollectorInterval = null; let garbageCollectorInterval = null;
let parkedVehiclePosition = false; let parkedVehiclePosition = false;
@@ -45,7 +45,7 @@ let renderLogo = false;
let renderSmallGameMessage = false; let renderSmallGameMessage = false;
let renderScoreboard = false; let renderScoreboard = false;
let logLevel = LOG_DEBUG | LOG_INFO | LOG_ERROR | LOG_WARN | LOG_VERBOSE; let logLevel = LOG_DEBUG;
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@@ -65,7 +65,7 @@ bindEventHandler("onResourceReady", thisResource, function(event, resource) {
fontStream.close(); fontStream.close();
} }
let logoStream = openFile("files/images/main-logo.png"); let logoStream = openFile(mainLogoPath);
if(logoStream != null) { if(logoStream != null) {
logoImage = drawing.loadPNG(logoStream); logoImage = drawing.loadPNG(logoStream);
logoStream.close(); logoStream.close();
@@ -78,17 +78,14 @@ bindEventHandler("onResourceReady", thisResource, function(event, resource) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
bindEventHandler("onResourceStart", thisResource, function(event, resource) { bindEventHandler("onResourceStart", thisResource, function(event, resource) {
triggerNetworkEvent("ag.clientStarted");
if(gta.game == GAME_GTA_SA) { if(gta.game == GAME_GTA_SA) {
gta.setDefaultInteriors(false); gta.setDefaultInteriors(false);
gta.setCiviliansEnabled(false); gta.setCiviliansEnabled(false);
} }
// Run garbage collector every minute
garbageCollectorInterval = setInterval(collectAllGarbage, 1000*60); garbageCollectorInterval = setInterval(collectAllGarbage, 1000*60);
addNetworkHandler("ag.passenger", enterVehicleAsPassenger); addNetworkHandler("ag.passenger", enterVehicleAsPassenger);
triggerNetworkEvent("ag.clientStarted");
}); });
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@@ -135,9 +132,9 @@ addNetworkHandler("ag.ambience", function(state) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.runCode", function(code, returnTo) { addNetworkHandler("ag.runCode", function(code, returnTo) {
let returnVal = "Nothing"; let returnValue = "Nothing";
try { try {
returnVal = eval("(" + code + ")"); returnValue = eval("(" + code + ")");
} catch(error) { } catch(error) {
triggerNetworkEvent("ag.runCodeFail", returnTo, code); triggerNetworkEvent("ag.runCodeFail", returnTo, code);
return false; return false;
@@ -188,6 +185,10 @@ addEventHandler("onElementStreamIn", function(event, element) {
syncCivilianProperties(element); syncCivilianProperties(element);
break; break;
case ELEMENT_PLAYER:
syncPlayerProperties(element);
break;
default: default:
break; break;
} }
@@ -305,6 +306,22 @@ function processEvent(event, deltaTime) {
position = localPlayer.vehicle.position; position = localPlayer.vehicle.position;
} }
if(inVehicle != false) {
if(!localPlayer.vehicle.engine) {
localPlayer.vehicle.velocity = toVector3(0.0, 0.0, 0.0);
localPlayer.vehicle.turnVelocity = toVector3(0.0, 0.0, 0.0);
if(vehicleParkedPosition) {
localPlayer.vehicle.position = parkedVehiclePosition;
localPlayer.vehicle.heading = parkedVehicleHeading;
}
} else {
if(vehicleParkedPosition) {
parkedVehiclePosition = false;
parkedVehicleHeading = false;
}
}
}
getElementsByType(ELEMENT_PICKUP).forEach(function(pickup) { getElementsByType(ELEMENT_PICKUP).forEach(function(pickup) {
if(pickup.isOwner) { if(pickup.isOwner) {
destroyElement(pickup); destroyElement(pickup);
@@ -337,15 +354,27 @@ function processEvent(event, deltaTime) {
if(localPlayer.vehicle) { if(localPlayer.vehicle) {
if(!inVehicle) { if(!inVehicle) {
triggerEvent("OnLocalPlayerEnterVehicle", null, inVehicle);
triggerNetworkEvent("ag.onPlayerEnterVehicle"); triggerNetworkEvent("ag.onPlayerEnterVehicle");
inVehicle = localPlayer.vehicle; inVehicle = localPlayer.vehicle;
inVehicleSeat = getLocalPlayerVehicleSeat();
if(inVehicleSeat == 0) {
inVehicle.engine = false;
if(!inVehicle.engine) {
parkedVehiclePosition = vehicle.position;
parkedVehicleHeading = vehicle.position;
}
}
} }
} else { } else {
if(inVehicle) { if(inVehicle) {
triggerEvent("OnLocalPlayerExitVehicle", null, inVehicle);
triggerNetworkEvent("ag.onPlayerExitVehicle"); triggerNetworkEvent("ag.onPlayerExitVehicle");
if(inVehicleSeat) {
parkedVehiclePosition = false;
parkedVehicleHeading = false;
}
inVehicle = false; inVehicle = false;
inVehicleSeat = false;
} }
} }
} }
@@ -354,22 +383,6 @@ function processEvent(event, deltaTime) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addEventHandler("OnRender", function(event) { addEventHandler("OnRender", function(event) {
// OnProcess was allowing vehicles to slide slowly. This shouldn't.
if(inVehicle != false) {
if(!localPlayer.vehicle.engine) {
localPlayer.vehicle.velocity = toVector3(0.0, 0.0, 0.0);
localPlayer.vehicle.turnVelocity = toVector3(0.0, 0.0, 0.0);
if(vehicleParkedPosition) {
localPlayer.vehicle.position = parkedVehiclePosition;
localPlayer.vehicle.heading = parkedVehicleHeading;
}
} else {
if(vehicleParkedPosition) {
parkedVehiclePosition = false;
parkedVehicleHeading = false;
}
}
}
}); });
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@@ -392,12 +405,9 @@ addEventHandler("OnDrawnHUD", function (event) {
} }
} }
// Draw logo in corner of screen
if(renderLogo) { if(renderLogo) {
if(logoImage != null) { if(logoImage != null) {
if(showLogo) { drawing.drawRectangle(logoImage, logoPos, logoSize);
drawing.drawRectangle(logoImage, logoPos, logoSize);
}
} }
} }
}); });
@@ -523,6 +533,13 @@ addNetworkHandler("ag.removeWorldObject", function(model, position, range) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.excludeGroundSnow", function(model) {
logToConsole(LOG_DEBUG, `Disabling ground snow for object model ${model}`);
groundSnow.excludeModel(model);
});
// ---------------------------------------------------------------------------
addEventHandler("OnLocalPlayerEnterSphere", function(event, sphere) { addEventHandler("OnLocalPlayerEnterSphere", function(event, sphere) {
if(sphere == jobRouteStopSphere) { if(sphere == jobRouteStopSphere) {
enteredJobRouteSphere(); enteredJobRouteSphere();
@@ -531,32 +548,6 @@ addEventHandler("OnLocalPlayerEnterSphere", function(event, sphere) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addEventHandler("OnLocalPlayerEnterVehicle", function(event, vehicle) {
localPlayer.vehicle.engine = false;
if(!localPlayer.vehicle.engine) {
parkedVehiclePosition = vehicle.position;
parkedVehicleHeading = vehicle.position;
}
});
// ---------------------------------------------------------------------------
//addEventHandler("OnPickupCollected", function(event, pickup, ped) {
// if(localPlayer != null) {
// if(ped == localPlayer) {
// if(pickup == jobRouteStopSphere) {
// triggerNetworkEvent("ag.arrivedAtBusStop");
// destroyElement(jobRouteStopSphere);
// destroyElement(jobRouteStopBlip);
// jobRouteStopSphere = null;
// jobRouteStopBlip = null;
// }
// }
// }
//});
// ---------------------------------------------------------------------------
addNetworkHandler("ag.smallGameMessage", function(text, colour, duration) { addNetworkHandler("ag.smallGameMessage", function(text, colour, duration) {
if(smallGameMessageText != "") { if(smallGameMessageText != "") {
clearTimeout(smallGameMessageTimer); clearTimeout(smallGameMessageTimer);
@@ -596,6 +587,14 @@ addNetworkHandler("ag.working", function(tempWorking) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.spawned", function(client, state) {
if(state) {
syncPlayerProperties(client.player);
}
});
// ---------------------------------------------------------------------------
addNetworkHandler("ag.mouseCamera", function(state) { addNetworkHandler("ag.mouseCamera", function(state) {
mouseCameraEnabled = !mouseCameraEnabled; mouseCameraEnabled = !mouseCameraEnabled;
SetStandardControlsEnabled(!mouseCameraEnabled); SetStandardControlsEnabled(!mouseCameraEnabled);
@@ -611,4 +610,25 @@ function clearSelfOwnedPeds() {
}); });
} }
// ---------------------------------------------------------------------------
addNetworkHandler("ag.set2DRendering", function(hudState, labelState, smallGameMessageState, scoreboardState) {
renderHUD = hudState;
setHUDEnabled(hudState);
renderLabels = labelState;
renderSmallGameMessage = smallGameMessageState;
renderScoreboard = scoreboardState;
});
// ---------------------------------------------------------------------------
function getLocalPlayerVehicleSeat() {
for(let i = 0 ; i <= 4 ; i++) {
if(localPlayer.vehicle.getOccupant(i) == localPlayer) {
return i;
}
}
}
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------