Adding logging and event handlers

This commit is contained in:
Vortrex
2021-01-25 22:39:50 -06:00
parent 631242fca8
commit 511b7a6960

View File

@@ -66,6 +66,8 @@ let itemActionDelaySize = toVector2(100, 10);
let drunkEffectAmount = 0; let drunkEffectAmount = 0;
let drunkEffectDurationTimer = null; let drunkEffectDurationTimer = null;
let controlsEnabled = false;
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addEvent("OnLocalPlayerEnterSphere", 1); addEvent("OnLocalPlayerEnterSphere", 1);
@@ -95,6 +97,8 @@ bindEventHandler("onResourceReady", thisResource, function(event, resource) {
triggerNetworkEvent("ag.clientReady"); triggerNetworkEvent("ag.clientReady");
openAllGarages(); openAllGarages();
}); });
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@@ -108,6 +112,13 @@ bindEventHandler("onResourceStart", thisResource, function(event, resource) {
addNetworkHandler("ag.passenger", enterVehicleAsPassenger); addNetworkHandler("ag.passenger", enterVehicleAsPassenger);
triggerNetworkEvent("ag.clientStarted"); triggerNetworkEvent("ag.clientStarted");
addEventHandler("onProcess", processEvent);
});
// ---------------------------------------------------------------------------
bindEventHandler("onResourceStop", thisResource, function(event, resource) {
removeEventHandler("onProcess");
}); });
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@@ -265,154 +276,133 @@ function getIslandFromPosition(position) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addEventHandler("onPedSpawn", function(event, ped) { addNetworkHandler("ag.position", function(position) {
// Nasty workaround since localPlayer is null as the player spawns (reported as client bug #194) logToConsole(LOG_DEBUG, `[Asshat.Main] Setting position to ${position.x}, ${position.y}, ${position.z}`);
setTimeout(initLocalPlayer, 500, ped); localPlayer.position = position;
});
// ---------------------------------------------------------------------------
function attemptToShowBlipsOnSpawn(ped) {
if(ped == localPlayer) {
showIslandBlips();
}
}
// ---------------------------------------------------------------------------
addNetworkHandler("ag.skin", function(skin) {
localPlayer.skin = skin;
});
// ---------------------------------------------------------------------------
addNetworkHandler("ag.pedSkin", function(ped, skin) {
ped.skin = skin;
}); });
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.position", function(position) { addNetworkHandler("ag.position", function(position) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Setting position to ${position.x}, ${position.y}, ${position.z}`);
localPlayer.position = position; localPlayer.position = position;
}); });
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.heading", function(heading) { addNetworkHandler("ag.heading", function(heading) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Setting heading to ${heading}`);
localPlayer.heading = heading; localPlayer.heading = heading;
}); });
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.interior", function(interior) { addNetworkHandler("ag.interior", function(interior) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Interior set to ${interior}`);
localPlayer.interior = interior; localPlayer.interior = interior;
gta.cameraInterior = interior; gta.cameraInterior = interior;
}); });
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.dimension", function(dimension) {
localPlayer.dimension = dimension;
});
// ---------------------------------------------------------------------------
addNetworkHandler("ag.removeFromVehicle", function() { addNetworkHandler("ag.removeFromVehicle", function() {
logToConsole(LOG_DEBUG, `[Asshat.Main] Removing local player from vehicle`);
localPlayer.removeFromVehicle(); localPlayer.removeFromVehicle();
}); });
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
function initLocalPlayer(player) {
addEventHandler("onProcess", processEvent);
}
// ---------------------------------------------------------------------------
function processEvent(event, deltaTime) { function processEvent(event, deltaTime) {
gta.clearMessages(); gta.clearMessages();
if(localPlayer != null) { if(localPlayer != null) {
localPlayer.wantedLevel = 0; if(isSpawned) {
if(!controlsEnabled) {
//localPlayer.velocity = new Vec3(0.0, 0.0, 0.0);
localPlayer.clearObjective();
}
let position = localPlayer.position; localPlayer.wantedLevel = 0;
if(localPlayer.vehicle) {
position = localPlayer.vehicle.position;
}
if(inVehicle && localPlayer.vehicle != null) { let position = localPlayer.position;
if(!localPlayer.vehicle.engine) { if(localPlayer.vehicle) {
localPlayer.vehicle.velocity = toVector3(0.0, 0.0, 0.0); position = localPlayer.vehicle.position;
localPlayer.vehicle.turnVelocity = toVector3(0.0, 0.0, 0.0); }
if(parkedVehiclePosition) {
localPlayer.vehicle.position = parkedVehiclePosition; if(inVehicle && localPlayer.vehicle != null) {
localPlayer.vehicle.heading = parkedVehicleHeading; 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(parkedVehiclePosition) {
localPlayer.vehicle.position = parkedVehiclePosition;
localPlayer.vehicle.heading = parkedVehicleHeading;
}
} else {
if(parkedVehiclePosition) {
parkedVehiclePosition = false;
parkedVehicleHeading = false;
}
}
}
getElementsByType(ELEMENT_PICKUP).forEach(function(pickup) {
if(pickup.isOwner) {
destroyElement(pickup);
}
});
getElementsByType(ELEMENT_MARKER).forEach(function(sphere) {
if(position.distance(sphere.position) <= sphere.radius) {
if(!inSphere) {
inSphere = sphere;
triggerEvent("OnLocalPlayerEnterSphere", null, sphere);
//triggerNetworkEvent("ag.onPlayerEnterSphere", sphere);
}
} else {
if(inSphere) {
inSphere = false;
triggerEvent("OnLocalPlayerExitSphere", null, sphere);
//triggerNetworkEvent("ag.onPlayerExitSphere", sphere);
}
}
});
if(gta.game == GAME_GTA_SA) {
if(jobRouteStopSphere != null) {
if(position.distance(jobRouteStopSphere.position) <= 2.0) {
enteredJobRouteSphere();
}
}
}
if(localPlayer.vehicle) {
if(!inVehicle) {
inVehicle = localPlayer.vehicle;
inVehicleSeat = getLocalPlayerVehicleSeat();
triggerEvent("OnLocalPlayerEnteredVehicle", inVehicle, inVehicleSeat);
} }
} else { } else {
if(parkedVehiclePosition) { if(inVehicle) {
parkedVehiclePosition = false; triggerEvent("OnLocalPlayerExitedVehicle", inVehicle, inVehicleSeat);
parkedVehicleHeading = false; inVehicle = false;
inVehicleSeat = false;
} }
} }
}
getElementsByType(ELEMENT_PICKUP).forEach(function(pickup) { if(forceWeapon != 0) {
if(pickup.isOwner) { if(localPlayer.weapon != forceWeapon) {
destroyElement(pickup); localPlayer.weapon = forceWeapon;
} localPlayer.setWeaponClipAmmunition(getWeaponSlot(forceWeapon), forceWeaponClipAmmo);
}); localPlayer.setWeaponAmmunition(getWeaponSlot(forceWeapon), forceWeaponAmmo);
} else {
getElementsByType(ELEMENT_MARKER).forEach(function(sphere) { forceWeaponClipAmmo = localPlayer.getWeaponClipAmmunition(getWeaponSlot(forceWeapon));
if(position.distance(sphere.position) <= sphere.radius) { forceWeaponAmmo = localPlayer.getWeaponAmmunition(getWeaponSlot(forceWeapon));
if(!inSphere) {
inSphere = sphere;
triggerEvent("OnLocalPlayerEnterSphere", null, sphere);
//triggerNetworkEvent("ag.onPlayerEnterSphere", sphere);
} }
} else { } else {
if(inSphere) { if(localPlayer.weapon > 0) {
inSphere = false; localPlayer.clearWeapons();
triggerEvent("OnLocalPlayerExitSphere", null, sphere);
//triggerNetworkEvent("ag.onPlayerExitSphere", sphere);
} }
} }
});
if(gta.game == GAME_GTA_SA) {
if(jobRouteStopSphere != null) {
if(position.distance(jobRouteStopSphere.position) <= 2.0) {
enteredJobRouteSphere();
}
}
}
if(localPlayer.vehicle) {
if(!inVehicle) {
inVehicle = localPlayer.vehicle;
inVehicleSeat = getLocalPlayerVehicleSeat();
triggerEvent("OnLocalPlayerEnteredVehicle", inVehicle, inVehicleSeat);
}
} else {
if(inVehicle) {
triggerEvent("OnLocalPlayerExitedVehicle", inVehicle, inVehicleSeat);
inVehicle = false;
inVehicleSeat = false;
}
}
if(forceWeapon != 0) {
if(localPlayer.weapon != forceWeapon) {
localPlayer.weapon = forceWeapon;
localPlayer.setWeaponClipAmmunition(getWeaponSlot(forceWeapon), forceWeaponClipAmmo);
localPlayer.setWeaponAmmunition(getWeaponSlot(forceWeapon), forceWeaponAmmo);
} else {
forceWeaponClipAmmo = localPlayer.getWeaponClipAmmunition(getWeaponSlot(forceWeapon));
forceWeaponAmmo = localPlayer.getWeaponAmmunition(getWeaponSlot(forceWeapon));
}
} else {
if(localPlayer.weapon > 0) {
localPlayer.clearWeapons();
}
} }
} }
} }
@@ -529,36 +519,38 @@ function closeAllGarages() {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.freeze", function(state) { addNetworkHandler("ag.freeze", function(state) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Setting frozen state to ${state}`);
gui.showCursor(state, !state); gui.showCursor(state, !state);
}); });
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.control", function(controlState, cursorState = false) { addNetworkHandler("ag.control", function(controlState, cursorState = false) {
gui.showCursor(cursorState, controlState); logToConsole(LOG_DEBUG, `[Asshat.Main] Setting control state to ${controlState} (Cursor: ${cursorState})`);
}); controlsEnabled = controlState;
localPlayer.invincible = true;
// --------------------------------------------------------------------------- localPlayer.collisionsEnabled = controlState;
localPlayer.invincible = false;
addNetworkHandler("ag.cursortoggle", function() {
gui.showCursor(!gui.cursorEnabled, false);
}); });
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.fadeCamera", function(state, time) { addNetworkHandler("ag.fadeCamera", function(state, time) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Fading camera ${(state)?"in":"out"} for ${time} seconds`);
gta.fadeCamera(state, time); gta.fadeCamera(state, time);
}); });
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addEventHandler("OnPedWasted", function(event, wastedPed, killerPed, weapon, pedPiece) { addEventHandler("OnPedWasted", function(event, wastedPed, killerPed, weapon, pedPiece) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Ped ${wastedPed.name} died`);
wastedPed.clearWeapons(); wastedPed.clearWeapons();
}); });
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.showBusStop", function(position, colour) { addNetworkHandler("ag.showBusStop", function(position, colour) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Showing bus stop`);
if(gta.game == GAME_GTA_SA) { if(gta.game == GAME_GTA_SA) {
jobRouteStopSphere = gta.createPickup(1318, position, 1); jobRouteStopSphere = gta.createPickup(1318, position, 1);
} else { } else {
@@ -572,6 +564,7 @@ addNetworkHandler("ag.showBusStop", function(position, colour) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.snow", function(fallingSnow, groundSnow) { addNetworkHandler("ag.snow", function(fallingSnow, groundSnow) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Setting falling snow to ${fallingSnow} and ground snow to ${groundSnow}`);
if(!isNull(snowing)) { if(!isNull(snowing)) {
snowing = fallingSnow; snowing = fallingSnow;
forceSnowing(groundSnow); forceSnowing(groundSnow);
@@ -581,6 +574,7 @@ addNetworkHandler("ag.snow", function(fallingSnow, groundSnow) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.money", function(amount) { addNetworkHandler("ag.money", function(amount) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Setting local player money`);
localPlayer.money = amount; localPlayer.money = amount;
}); });
@@ -601,6 +595,7 @@ addNetworkHandler("ag.excludeGroundSnow", function(model) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addEventHandler("OnLocalPlayerEnterSphere", function(event, sphere) { addEventHandler("OnLocalPlayerEnterSphere", function(event, sphere) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Local player entered sphere`);
if(sphere == jobRouteStopSphere) { if(sphere == jobRouteStopSphere) {
enteredJobRouteSphere(); enteredJobRouteSphere();
} }
@@ -609,6 +604,7 @@ addEventHandler("OnLocalPlayerEnterSphere", function(event, sphere) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.smallGameMessage", function(text, colour, duration) { addNetworkHandler("ag.smallGameMessage", function(text, colour, duration) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Showing small game message '${text}' for ${duration}ms`);
if(smallGameMessageText != "") { if(smallGameMessageText != "") {
clearTimeout(smallGameMessageTimer); clearTimeout(smallGameMessageTimer);
} }
@@ -626,6 +622,7 @@ addNetworkHandler("ag.smallGameMessage", function(text, colour, duration) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
function enteredJobRouteSphere() { function enteredJobRouteSphere() {
logToConsole(LOG_DEBUG, `[Asshat.Main] Entered job route sphere`);
triggerNetworkEvent("ag.arrivedAtBusStop"); triggerNetworkEvent("ag.arrivedAtBusStop");
destroyElement(jobRouteStopSphere); destroyElement(jobRouteStopSphere);
destroyElement(jobRouteStopBlip); destroyElement(jobRouteStopBlip);
@@ -643,14 +640,15 @@ addNetworkHandler("ag.jobType", function(tempJobType) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.working", function(tempWorking) { addNetworkHandler("ag.working", function(tempWorking) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Setting working state to ${tempWorking}`);
localPlayerWorking = tempWorking; localPlayerWorking = tempWorking;
}); });
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.spawned", function(client, state) { addNetworkHandler("ag.spawned", function(client, state) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Setting spawned state to ${state}`);
isSpawned = state; isSpawned = state;
syncPlayerProperties(localPlayer);
}); });
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@@ -677,6 +675,13 @@ addNetworkHandler("ag.mouseCamera", function(state) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.mouseCursor", function(state) {
logToConsole(LOG_DEBUG, `[Asshat.Main] ${(state)?"Enabled":"Disabled"} mouse cursor`);
gui.showCursor(state, !state);
});
// ---------------------------------------------------------------------------
function clearSelfOwnedPeds() { function clearSelfOwnedPeds() {
logToConsole(LOG_DEBUG, `Clearing self-owned peds`); logToConsole(LOG_DEBUG, `Clearing self-owned peds`);
getElementsByType(ELEMENT_CIVILIAN).forEach(function(ped) { getElementsByType(ELEMENT_CIVILIAN).forEach(function(ped) {
@@ -689,6 +694,7 @@ function clearSelfOwnedPeds() {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.set2DRendering", function(hudState, labelState, smallGameMessageState, scoreboardState, hotBarState, itemActionDelayState) { addNetworkHandler("ag.set2DRendering", function(hudState, labelState, smallGameMessageState, scoreboardState, hotBarState, itemActionDelayState) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Updating render states (HUD: ${hudState}, Labels: ${labelState}, Bottom Text: ${smallGameMessageState}, Scoreboard: ${scoreboardState}, HotBar: ${hotBarState}, Item Action Delay: ${itemActionDelayState})`);
renderHUD = hudState; renderHUD = hudState;
setHUDEnabled(hudState); setHUDEnabled(hudState);
@@ -711,11 +717,16 @@ function getLocalPlayerVehicleSeat() {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addEventHandler("OnPedInflictDamage", function(event, damagedPed, damagerEntity, weaponId, healthLoss, pedPiece) { addEventHandler("OnPedInflictDamage", function(event, damagedEntity, damagerEntity, weaponId, healthLoss, pedPiece) {
if(damagedPed == localPlayer) { logToConsole(LOG_DEBUG, `[Asshat.Main] ${damagerEntity.name} (${damagerEntity.name}, ${damagerEntity.type} - ${typeof damagerEntity}) damaged ${damagedEntity} (${damagedEntity.name}, ${damagedEntity.type} - ${typeof damagedEntity}) at part ${pedPiece} with weapon ${weaponId}`);
if(!weaponDamageEnabled[damagerEntity.name]) { if(!isNull(damagedEntity) && !isNull(damagerEntity)) {
event.preventDefault(); if(damagedEntity.isType(ELEMENT_PLAYER)) {
triggerNetworkEvent("ag.weaponDamage", damagerEntity, weaponId, pedPiece); if(damagedEntity == localPlayer) {
if(!weaponDamageEnabled[damagerEntity.name]) {
event.preventDefault();
triggerNetworkEvent("ag.weaponDamage", damagerEntity.name, weaponId, pedPiece, healthLoss);
}
}
} }
} }
}); });
@@ -723,6 +734,7 @@ addEventHandler("OnPedInflictDamage", function(event, damagedPed, damagerEntity,
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addEventHandler("OnLocalPlayerExitedVehicle", function(event, vehicle, seat) { addEventHandler("OnLocalPlayerExitedVehicle", function(event, vehicle, seat) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Local player exited vehicle`);
triggerNetworkEvent("ag.onPlayerExitVehicle"); triggerNetworkEvent("ag.onPlayerExitVehicle");
if(inVehicleSeat) { if(inVehicleSeat) {
parkedVehiclePosition = false; parkedVehiclePosition = false;
@@ -733,6 +745,7 @@ addEventHandler("OnLocalPlayerExitedVehicle", function(event, vehicle, seat) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addEventHandler("OnLocalPlayerEnteredVehicle", function(event, vehicle, seat) { addEventHandler("OnLocalPlayerEnteredVehicle", function(event, vehicle, seat) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Local player entered vehicle`);
triggerNetworkEvent("ag.onPlayerEnterVehicle"); triggerNetworkEvent("ag.onPlayerEnterVehicle");
if(inVehicleSeat == 0) { if(inVehicleSeat == 0) {
@@ -752,7 +765,7 @@ addNetworkHandler("ag.showItemActionDelay", function(duration) {
itemActionDelayDuration = duration; itemActionDelayDuration = duration;
itemActionDelayStart = sdl.ticks; itemActionDelayStart = sdl.ticks;
itemActionDelayEnabled = true; itemActionDelayEnabled = true;
logToConsole(LOG_DEBUG, `Item action delay event called. Duration: ${itemActionDelayDuration}, Start: ${itemActionDelayStart}, Render: ${renderItemActionDelay}`); logToConsole(LOG_DEBUG, `Item action delay started. Duration: ${itemActionDelayDuration}, Start: ${itemActionDelayStart}, Rendering Enabled: ${renderItemActionDelay}`);
}); });
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@@ -764,6 +777,7 @@ function getWeaponSlot(weaponId) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.drunkEffect", function(amount, duration) { addNetworkHandler("ag.drunkEffect", function(amount, duration) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Drunk effect set to ${amount} for ${duration}ms`);
drunkEffectAmount = 0; drunkEffectAmount = 0;
drunkEffectDurationTimer = setInterval(function() { drunkEffectDurationTimer = setInterval(function() {
drunkEffectAmount = drunkEffectAmount; drunkEffectAmount = drunkEffectAmount;
@@ -779,7 +793,21 @@ addNetworkHandler("ag.drunkEffect", function(amount, duration) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.clearPedState", function() { addNetworkHandler("ag.clearPedState", function() {
logToConsole(LOG_DEBUG, `[Asshat.Main] Clearing local ped state`);
localPlayer.clearObjective(); localPlayer.clearObjective();
}); });
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
addNetworkHandler("ag.pedSpeech", function(pedName, speechId) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Making ${pedName}'s ped talk (${speechId})`);
gta.SET_CHAR_SAY(int, int)
});
// ---------------------------------------------------------------------------
addNetworkHandler("ag.hotbar", function(activeSlot, itemsArray) {
logToConsole(LOG_DEBUG, `[Asshat.Main] Updating hotbar`);
});
// ---------------------------------------------------------------------------