Lots of changes and fixes

* Add guiReady state
* Add mouseCameraEnabled state
* Make sure GUI is ready on some things
* Fix wrong veh prop funcs being used clientside
* Add local player ped parts/props util for IV
* Add vehicle.lightStatus sync
* Add element interior sync
* Dont use interior on IV
* Use new class structure
* Set default anim offset to 1
* Set biz data to save when changing biz properties
* Add mouse cam state util
* Prefix item type admin cmds with "itemtype"
* Fix server config saving
* Fix server time setting hour to minute arg
* Add player returnTo data types
* Make veh rent/buy price numbers readable
* Fix wrong house index being used to create blip/pickup on create
* Don't cache player hotbar items if working
* Fix cache player hotbar items util
* Add lots of anims to GTA SA
* Try/catch on all data saving to prevent one from blocking the rest
* Fix readable time from showing AM for 12 PM (noon)
* Set veh interior on create
* Dont set engine for spawnlocked vehicles
This commit is contained in:
Vortrex
2021-09-18 06:48:13 -05:00
parent 70d846303f
commit 80eeaa14c5
29 changed files with 2097 additions and 1758 deletions

View File

@@ -31,7 +31,7 @@ function loadItemsFromDatabase() {
if(dbQuery) {
if(dbQuery.numRows > 0) {
while(dbFetchAssoc = fetchQueryAssoc(dbQuery)) {
let tempItemData = new serverClasses.itemData(dbFetchAssoc);
let tempItemData = new ItemData(dbFetchAssoc);
tempItems.push(tempItemData);
}
}
@@ -53,7 +53,7 @@ function loadItemTypesFromDatabase() {
if(dbQuery) {
if(getQueryNumRows(dbQuery) > 0) {
while(dbFetchAssoc = fetchQueryAssoc(dbQuery)) {
let tempItemTypeData = new serverClasses.itemTypeData(dbFetchAssoc);
let tempItemTypeData = new ItemTypeData(dbFetchAssoc);
tempItemTypes.push(tempItemTypeData);
}
}
@@ -68,7 +68,7 @@ function loadItemTypesFromDatabase() {
// ===========================================================================
function createItem(itemTypeId, value, ownerType, ownerId, amount=1) {
let tempItemData = new serverClasses.itemData(false);
let tempItemData = new ItemData(false);
tempItemData.itemType = getItemTypeData(itemTypeId).databaseId;
tempItemData.ownerType = ownerType;
tempItemData.ownerId = ownerId;
@@ -991,18 +991,20 @@ function getPlayerFirstEmptyHotBarSlot(client) {
// ===========================================================================
function cachePlayerHotBarItems(client) {
if(!isPlayerWorking(client)) {
for(let i = 0 ; i <= 9 ; i++) {
getPlayerData(client).hotBarItems[i] = -1;
}
if(isPlayerWorking(client)) {
return false;
}
for(let i in getServerData().items) {
if(getItemData(i).ownerType == VRR_ITEM_OWNER_PLAYER) {
if(getItemData(i).ownerId == getPlayerCurrentSubAccount(client).databaseId) {
let firstSlot = getPlayerFirstEmptyHotBarSlot(client);
if(firstSlot != -1) {
getPlayerData(client).hotBarItems[firstSlot] = i;
}
for(let i = 0 ; i <= 9 ; i++) {
getPlayerData(client).hotBarItems[i] = -1;
}
for(let i in getServerData().items) {
if(getItemData(i).ownerType == VRR_ITEM_OWNER_PLAYER) {
if(getItemData(i).ownerId == getPlayerCurrentSubAccount(client).databaseId) {
let firstSlot = getPlayerFirstEmptyHotBarSlot(client);
if(firstSlot != -1) {
getPlayerData(client).hotBarItems[firstSlot] = i;
}
}
}
@@ -1067,7 +1069,8 @@ function deleteItem(itemId) {
if(getItemData(itemId).databaseId > 0) {
quickDatabaseQuery(`DELETE FROM item_main WHERE item_id = ${getItemData(itemId).databaseId}`);
}
getServerData().items.splice(itemId, 1);
getServerData().items[itemId] = false;
setItemDataIndexes();
}
// ===========================================================================
@@ -1285,14 +1288,12 @@ function saveItemToDatabase(itemId) {
// ===========================================================================
function storePlayerItemsInJobLocker(client) {
for(let i in getPlayerData(client).hotBarItems) {
//if(getPlayerData(client).hotBarItems[i] != -1) {
getPlayerData(client).jobLockerCache[i] = getPlayerData(client).hotBarItems[i];
getPlayerData(client).hotBarItems[i] = -1;
//}
for(let i = 0 ; i <= 8 ; i++) {
getPlayerData(client).jobLockerCache[i] = getPlayerData(client).hotBarItems[i];
getPlayerData(client).hotBarItems[i] = -1;
}
cachePlayerHotBarItems(client);
//cachePlayerHotBarItems(client);
updatePlayerHotBar(client);
}
@@ -1305,15 +1306,12 @@ function restorePlayerJobLockerItems(client) {
}
}
for(let i in getPlayerData(client).jobLockerCache) {
//if(getPlayerData(client).jobLockerCache[i] != -1) {
getPlayerData(client).hotBarItems[i] = getPlayerData(client).jobLockerCache[i];
getPlayerData(client).jobLockerCache[i] = -1;
//}
for(let i = 0 ; i <= 8 ; i++) {
getPlayerData(client).hotBarItems[i] = getPlayerData(client).jobLockerCache[i];
getPlayerData(client).jobLockerCache[i] = -1;
}
cachePlayerHotBarItems(client);
updatePlayerHotBar(client);
}
@@ -1431,7 +1429,44 @@ function toggleItemEnabledCommand(command, params, client) {
}
getItemData(getPlayerActiveItem(client)).enabled = !getItemData(getPlayerActiveItem(client)).enabled;
messagePlayerNormal(client, `You turned ${getBoolRedGreenInlineColour(getItemData(itemIndex).enabled)}${toUpperCase(getOnOffFromBool(getItemData(itemIndex).enabled))} ${getInlineChatColourByName("white")}your ${getItemName(getPlayerActiveItem(client))} in slot ${getPlayerActiveItemSlot(client)} ${getInlineChatColourByName("lightGrey")}${getItemValueDisplayForItem(getPlayerActiveItem(client))}`)
messagePlayerNormal(client, `You turned ${getBoolRedGreenInlineColour(getItemData(itemIndex).enabled)}${toUpperCase(getOnOffFromBool(getItemData(itemIndex).enabled))} ${getInlineChatColourByName("white")}your ${getItemName(getPlayerActiveItem(client))} in slot ${getPlayerActiveItemSlot(client)} ${getInlineChatColourByName("lightGrey")}${getItemValueDisplayForItem(getPlayerActiveItem(client))}`);
}
// ===========================================================================
function deleteItemInPlayerInventoryCommand(command, params, client) {
if(areParamsEmpty(params)) {
messagePlayerSyntax(client, getCommandSyntaxText(command));
return false;
}
let splitParams = params.split(" ");
let targetClient = getPlayerFromParams(splitParams[0]);
let hotBarSlot = splitParams[1];
if(isNaN(hotBarSlot)) {
messagePlayerError(client, `The item slot must be a number!`);
return false;
}
if(toInteger(hotBarSlot) <= 0 || toInteger(hotBarSlot) > 9) {
messagePlayerError(client, `The item slot must be between 1 and 9!`);
return false;
}
if(getPlayerData(client).hotBarItems[hotBarSlot-1] == -1) {
messagePlayerError(client, `${getCharacterFullName(client)} doesn't have anything in that slot!`);
return false;
}
if(getItemData(getPlayerData(client).hotBarItems[hotBarSlot-1])) {
messagePlayerError(client, `${getCharacterFullName(client)} doesn't have anything in that slot!`);
return false;
}
let tempName = getItemTypeData(getItemData(getPlayerData(client).hotBarItems[hotBarSlot-1]).itemTypeIndex).name
deleteItem(getPlayerData(client).hotBarItems[hotBarSlot-1]);
messagePlayerSuccess(client, `You deleted the ${getInlineChatColourByName("lightGrey")}${tempName} ${getInlineChatColourByName("white")}item in ${getInlineChatColourByName("lightGrey")}${getCharacterFullName(client)}'s ${getInlineChatColourByName("white")}inventory`);
}
// ===========================================================================