Fixes for vehicle engine
This commit is contained in:
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
Reference in New Issue
Block a user