Files
GTA4RP/scripts/client/skin-select.js
2021-04-20 21:29:48 -05:00

140 lines
5.3 KiB
JavaScript

// ===========================================================================
// Asshat-Gaming Roleplay
// https://github.com/VortrexFTW/gtac_asshat_rp
// Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com)
// ===========================================================================
// FILE: skin-select.js
// DESC: Provides skin-selector functions and usage
// TYPE: Client (JavaScript)
// ===========================================================================
let skinSelectMessageFontTop = null;
let skinSelectMessageFontBottom = null;
let skinSelectMessageTextTop = "Skin Name";
let skinSelectMessageTextBottom = "Choose a skin using LEFT and RIGHT arrows. Use ENTER to finish or BACKSPACE to cancel.";
let skinSelectMessageColourTop = COLOUR_YELLOW;
let skinSelectMessageColourBottom = COLOUR_WHITE;
let usingSkinSelector = false;
let usingNewCharacterSkinSelector = false;
let skinSelectorIndex = 0;
let skinSelectPosition = null;
let skinSelectHeading = null;
let newCharacterSkinSelectPedPosition = [
[],
[139.54, -903.00, 26.16],
[-379.16, -535.27, 17.28],
[2495.03, -1685.66, 13.51],
[904.27, -498.00, 14.522],
];
let newCharacterSkinSelectPedHeading = [
[],
[15.0],
[0.0],
[0.01],
[3.127],
];
// ===========================================================================
function initSkinSelectScript() {
logToConsole(LOG_DEBUG, "[Asshat.SkinSelect]: Initializing skin selector script ...");
skinSelectMessageFontTop = loadSkinSelectMessageFontTop();
skinSelectMessageFontBottom = loadSkinSelectMessageFontBottom();
logToConsole(LOG_DEBUG, "[Asshat.SkinSelect]: Skin selector script initialized!");
}
// ===========================================================================
function loadSkinSelectMessageFontTop() {
return lucasFont.createDefaultFont(20.0, "Roboto");
}
// ===========================================================================
function loadSkinSelectMessageFontBottom() {
return lucasFont.createDefaultFont(12.0, "Roboto", "Light");
}
// ===========================================================================
function processSkinSelectKeyPress(keyCode) {
if(usingSkinSelector) {
if(keyCode == SDLK_RIGHT) {
if(allowedSkins[gta.game].length-1 == skinSelectorIndex) {
skinSelectorIndex = 0;
} else {
skinSelectorIndex++;
}
localPlayer.skin = allowedSkins[gta.game][skinSelectorIndex][0];
skinSelectMessageTextTop = allowedSkins[gta.game][skinSelectorIndex][1];
} else if(keyCode == SDLK_LEFT) {
if(skinSelectorIndex <= 0) {
skinSelectorIndex = allowedSkins[gta.game].length-1;
} else {
skinSelectorIndex--;
}
localPlayer.skin = allowedSkins[gta.game][skinSelectorIndex][0];
skinSelectMessageTextTop = allowedSkins[gta.game][skinSelectorIndex][1];
} else if(keyCode == SDLK_RETURN) {
triggerNetworkEvent("ag.skinSelected", skinSelectorIndex);
} else if(keyCode == SDLK_BACKSPACE) {
triggerNetworkEvent("ag.skinSelected", -1);
}
}
}
// ===========================================================================
function processSkinSelectRendering() {
if(usingSkinSelector) {
if(skinSelectMessageFontTop != null && skinSelectMessageFontBottom != null) {
if(gta.game != GAME_GTA_VC) {
skinSelectMessageFontTop.render(skinSelectMessageTextTop, [0, gta.height-100], gta.width, 0.5, 0.0, skinSelectMessageFontTop.size, skinSelectMessageColourTop, true, true, false, true);
skinSelectMessageFontBottom.render(skinSelectMessageTextBottom, [0, gta.height-65], gta.width, 0.5, 0.0, skinSelectMessageFontBottom.size, skinSelectMessageColourBottom, true, true, false, true);
}
}
localPlayer.position = skinSelectPosition;
localPlayer.heading = skinSelectHeading;
if(gta.game == GAME_GTA_III || gta.game == GAME_GTA_VC) {
localPlayer.clearObjective();
}
}
}
// ===========================================================================
function toggleSkinSelect(state) {
if(state) {
skinSelectorIndex = getAllowedSkinIndexBySkinId(localPlayer.skin);
if(localPlayer.skin != allowedSkins[gta.game][skinSelectorIndex][0]) {
localPlayer.skin = allowedSkins[gta.game][skinSelectorIndex][0];
}
usingSkinSelector = true;
let tempPosition = localPlayer.position;
tempPosition.z += 0.5;
let frontCameraPosition = getPosInFrontOfPos(tempPosition, localPlayer.heading, 3);
gta.setCameraLookAt(frontCameraPosition, localPlayer.position, true);
gui.showCursor(true, false);
localPlayer.invincible = true;
localPlayer.setProofs(true, true, true, true, true);
localPlayer.collisionsEnabled = false;
skinSelectPosition = localPlayer.position;
skinSelectHeading = localPlayer.heading;
} else {
usingSkinSelector = false;
//gta.restoreCamera(true);
gui.showCursor(false, true);
if(localPlayer) {
localPlayer.invincible = false;
localPlayer.setProofs(false, false, false, false, false);
localPlayer.collisionsEnabled = true;
}
}
}
// ===========================================================================