162 lines
5.1 KiB
JavaScript
162 lines
5.1 KiB
JavaScript
// ===========================================================================
|
|
// Asshat-Gaming Roleplay
|
|
// https://github.com/VortrexFTW/gtac_asshat_rp
|
|
// Copyright (c) 2020 Asshat-Gaming (https://asshatgaming.com)
|
|
// ---------------------------------------------------------------------------
|
|
// FILE: client.js
|
|
// DESC: Provides client communication and cross-endpoint operations
|
|
// TYPE: Server (JavaScript)
|
|
// ===========================================================================
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
addNetworkHandler("ag.onPlayerEnterSphere", function(client, sphere) {
|
|
switch(sphere.getData("ag.type")) {
|
|
case AG_SPHERE_HOUSE:
|
|
client.player.setData("ag.atHouse", sphere.getData("ag.id"), false);
|
|
break;
|
|
|
|
case AG_SPHERE_BUSINESS:
|
|
client.player.setData("ag.atBusiness", sphere.getData("ag.id"), false);
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
});
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
addNetworkHandler("ag.onPlayerExitSphere", function(client, sphere) {
|
|
client.player.removeData("ag.atHouse");
|
|
client.player.removeData("ag.atBusiness");
|
|
});
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
addNetworkHandler("ag.promptAnswerNo", function(client) {
|
|
if(!client.getData("ag.prompt")) {
|
|
return false;
|
|
}
|
|
|
|
switch(client.getData("ag.prompt")) {
|
|
case AG_PROMPT_CREATEFIRSTCHAR:
|
|
triggerNetworkEvent("ag.showError", client, "You don't have a character to play. Goodbye!", "No Characters");
|
|
setTimeout(function() { client.disconnect(); }, 5000);
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
client.removeData("ag.prompt");
|
|
});
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
addNetworkHandler("ag.promptAnswerYes", function(client) {
|
|
if(!client.getData("ag.prompt")) {
|
|
return false;
|
|
}
|
|
|
|
switch(client.getData("ag.prompt")) {
|
|
case AG_PROMPT_CREATEFIRSTCHAR:
|
|
triggerNetworkEvent("ag.showNewCharacter", client);
|
|
break;
|
|
S
|
|
default:
|
|
break;
|
|
}
|
|
|
|
client.removeData("ag.prompt");
|
|
});
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
addNetworkHandler("ag.onPlayerEnterSphere", function(client, sphere) {
|
|
let ownerType = sphere.getData("ag.ownerType");
|
|
let ownerId = sphere.getData("ag.ownerId");
|
|
|
|
switch(ownerType) {
|
|
case AG_PICKUP_JOB:
|
|
let jobData = getJobData(ownerId);
|
|
showJobInformationToPlayer(client, jobData.jobType);
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
});
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
addNetworkHandler("ag.afk", function(client, afkState) {
|
|
if(afkState) {
|
|
client.setData("ag.afk", true, true);
|
|
} else {
|
|
client.removeData("ag.afk");
|
|
}
|
|
});
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
// Not implemented yet
|
|
addNetworkHandler("ag.heldKey", function(client, key) {
|
|
switch(key) {
|
|
case getServerConfig().keybinds.actionKey:
|
|
processHoldActionKey(client);
|
|
break;
|
|
|
|
case getServerConfig().keybinds.vehicleLightsKey:
|
|
processHoldVehicleLightsKey(client);
|
|
break;
|
|
|
|
case getServerConfig().keybinds.vehicleLockKey:
|
|
processHoldVehicleLockKey(client);
|
|
break;
|
|
|
|
case getServerConfig().keybinds.vehicleEngineKey:
|
|
processHoldVehicleEngineKey(client);
|
|
break;
|
|
}
|
|
});
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
addNetworkHandler("ag.player.sync", function(client, position, heading) {
|
|
//console.log(`POS: ${position}, X: ${position.x}, Y: ${position.y}, Z: ${position.z}`);
|
|
client.setData("ag.position", position, true);
|
|
client.setData("ag.heading", heading, true);
|
|
});
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
addNetworkHandler("ag.player.death", function(client, position, heading) {
|
|
//console.log(`POS: ${position}, X: ${position.x}, Y: ${position.y}, Z: ${position.z}`);
|
|
client.setData("ag.position", position, true);
|
|
client.setData("ag.heading", heading, true);
|
|
processPlayerDeath(client);
|
|
});
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
addNetworkHandler("ag.veh.sync", function(client, syncId, position, heading) {
|
|
let vehicleData = getVehicleDataFromSyncId(syncId);
|
|
if(vehicleData) {
|
|
vehicleData.syncPosition = position;
|
|
vehicleData.syncHeading = heading;
|
|
}
|
|
|
|
});
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
addNetworkHandler("ag.iv.veh", function(client, syncId) {
|
|
if(syncId == -1) {
|
|
client.removeData("ag.vehicle");
|
|
} else {
|
|
client.setData("ag.vehicle", syncId, true);
|
|
}
|
|
});
|
|
|
|
// ---------------------------------------------------------------------------
|