Fixes for vehicle engine
This commit is contained in:
@@ -26,14 +26,14 @@ let smallGameMessageTimer = null;
|
||||
|
||||
let inSphere = false;
|
||||
let inVehicle = false;
|
||||
let isWalking = false;
|
||||
let isSpawned = false;
|
||||
|
||||
let localPlayerJobType = 0;
|
||||
let localPlayerWorking = false;
|
||||
|
||||
let mouseCameraEnabled = false;
|
||||
|
||||
let isWalking = false;
|
||||
|
||||
let garbageCollectorInterval = null;
|
||||
|
||||
let parkedVehiclePosition = false;
|
||||
@@ -45,7 +45,7 @@ let renderLogo = false;
|
||||
let renderSmallGameMessage = 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();
|
||||
}
|
||||
|
||||
let logoStream = openFile("files/images/main-logo.png");
|
||||
let logoStream = openFile(mainLogoPath);
|
||||
if(logoStream != null) {
|
||||
logoImage = drawing.loadPNG(logoStream);
|
||||
logoStream.close();
|
||||
@@ -78,17 +78,14 @@ bindEventHandler("onResourceReady", thisResource, function(event, resource) {
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
bindEventHandler("onResourceStart", thisResource, function(event, resource) {
|
||||
triggerNetworkEvent("ag.clientStarted");
|
||||
|
||||
if(gta.game == GAME_GTA_SA) {
|
||||
gta.setDefaultInteriors(false);
|
||||
gta.setCiviliansEnabled(false);
|
||||
}
|
||||
|
||||
// Run garbage collector every minute
|
||||
garbageCollectorInterval = setInterval(collectAllGarbage, 1000*60);
|
||||
|
||||
addNetworkHandler("ag.passenger", enterVehicleAsPassenger);
|
||||
|
||||
triggerNetworkEvent("ag.clientStarted");
|
||||
});
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -135,9 +132,9 @@ addNetworkHandler("ag.ambience", function(state) {
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
addNetworkHandler("ag.runCode", function(code, returnTo) {
|
||||
let returnVal = "Nothing";
|
||||
let returnValue = "Nothing";
|
||||
try {
|
||||
returnVal = eval("(" + code + ")");
|
||||
returnValue = eval("(" + code + ")");
|
||||
} catch(error) {
|
||||
triggerNetworkEvent("ag.runCodeFail", returnTo, code);
|
||||
return false;
|
||||
@@ -188,6 +185,10 @@ addEventHandler("onElementStreamIn", function(event, element) {
|
||||
syncCivilianProperties(element);
|
||||
break;
|
||||
|
||||
case ELEMENT_PLAYER:
|
||||
syncPlayerProperties(element);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -305,6 +306,22 @@ function processEvent(event, deltaTime) {
|
||||
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) {
|
||||
if(pickup.isOwner) {
|
||||
destroyElement(pickup);
|
||||
@@ -337,15 +354,27 @@ function processEvent(event, deltaTime) {
|
||||
|
||||
if(localPlayer.vehicle) {
|
||||
if(!inVehicle) {
|
||||
triggerEvent("OnLocalPlayerEnterVehicle", null, inVehicle);
|
||||
triggerNetworkEvent("ag.onPlayerEnterVehicle");
|
||||
inVehicle = localPlayer.vehicle;
|
||||
inVehicleSeat = getLocalPlayerVehicleSeat();
|
||||
|
||||
if(inVehicleSeat == 0) {
|
||||
inVehicle.engine = false;
|
||||
if(!inVehicle.engine) {
|
||||
parkedVehiclePosition = vehicle.position;
|
||||
parkedVehicleHeading = vehicle.position;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(inVehicle) {
|
||||
triggerEvent("OnLocalPlayerExitVehicle", null, inVehicle);
|
||||
triggerNetworkEvent("ag.onPlayerExitVehicle");
|
||||
if(inVehicleSeat) {
|
||||
parkedVehiclePosition = false;
|
||||
parkedVehicleHeading = false;
|
||||
}
|
||||
inVehicle = false;
|
||||
inVehicleSeat = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -354,22 +383,6 @@ function processEvent(event, deltaTime) {
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
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(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) {
|
||||
if(sphere == jobRouteStopSphere) {
|
||||
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) {
|
||||
if(smallGameMessageText != "") {
|
||||
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) {
|
||||
mouseCameraEnabled = !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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
Reference in New Issue
Block a user