Cache biz items on start & add biz cmds

This commit is contained in:
Vortrex
2021-03-07 14:12:30 -06:00
parent 795e35b289
commit 23a53e52e4

View File

@@ -21,6 +21,7 @@ function initBusinessScript() {
} }
setAllBusinessIndexes(); setAllBusinessIndexes();
cacheAllBusinessItems();
logToConsole(LOG_DEBUG, "[Asshat.Business]: Business script initialized successfully!"); logToConsole(LOG_DEBUG, "[Asshat.Business]: Business script initialized successfully!");
return true; return true;
} }
@@ -519,7 +520,35 @@ function withdrawFromBusinessCommand(command, params, client) {
getBusinessData(businessId).till -= amount; getBusinessData(businessId).till -= amount;
getPlayerCurrentSubAccount(client).cash += amount; getPlayerCurrentSubAccount(client).cash += amount;
updatePlayerCash(client); updatePlayerCash(client);
messagePlayerSuccess(client, `You withdrew $${amount} from business [#0099FF]${getBusinessData(businessId).name} till'`); messagePlayerSuccess(client, `You withdrew $${amount} from business [#0099FF]${getBusinessData(businessId).name} till`);
}
// ---------------------------------------------------------------------------
function setBusinessBuyPriceCommand(command, params, client) {
if(areParamsEmpty(params)) {
messagePlayerSyntax(client, getCommandSyntaxText(command));
return false;
}
let splitParams = params.split(" ");
let amount = toInteger(splitParams[0]) || 0;
let businessId = getBusinessFromParams(splitParams[1]) || (isPlayerInAnyBusiness(client)) ? getPlayerBusiness(client) : getClosestBusinessEntrance(getPlayerPosition(client));
if(!getBusinessData(businessId)) {
messagePlayerError(client, "Business not found!");
return false;
}
if(amount < 0) {
messagePlayerError(client, `The amount can't be less than 0!`);
return false;
}
getBusinessData(businessId).buyPrice = amount;
setEntityData(getBusinessData(businessId).entrancePickup, "ag.label.price", getBusinessData(businessId).buyPrice, true);
messagePlayerSuccess(client, `[#FFFFFF]You set the [#0099FF]${getBusinessData(businessId).name} business's for-sale price to [#AAAAAA]$${amount}`);
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@@ -740,11 +769,77 @@ function saveBusinessToDatabase(businessId) {
if(dbConnection) { if(dbConnection) {
let safeBusinessName = escapeDatabaseString(dbConnection, tempBusinessData.name); let safeBusinessName = escapeDatabaseString(dbConnection, tempBusinessData.name);
if(tempBusinessData.databaseId == 0) { if(tempBusinessData.databaseId == 0) {
let dbQueryString = `INSERT INTO biz_main (biz_server, biz_name, biz_owner_type, biz_owner_id, biz_locked, biz_entrance_fee, biz_till, biz_entrance_pos_x, biz_entrance_pos_y, biz_entrance_pos_z, biz_entrance_rot_z, biz_entrance_int, biz_entrance_vw, biz_exit_pos_x, biz_exit_pos_y, biz_exit_pos_z, biz_exit_rot_z, biz_exit_int, biz_exit_vw, biz_has_interior) VALUES (${getServerId()}, '${safeBusinessName}', ${tempBusinessData.ownerType}, ${tempBusinessData.ownerId}, ${boolToInt(tempBusinessData.locked)}, ${tempBusinessData.entranceFee}, ${tempBusinessData.till}, ${tempBusinessData.entrancePosition.x}, ${tempBusinessData.entrancePosition.y}, ${tempBusinessData.entrancePosition.z}, ${tempBusinessData.entranceRotation}, ${tempBusinessData.entranceInterior}, ${tempBusinessData.entranceDimension}, ${tempBusinessData.exitPosition.x}, ${tempBusinessData.exitPosition.y}, ${tempBusinessData.exitPosition.z}, ${tempBusinessData.exitRotation}, ${tempBusinessData.exitInterior}, ${tempBusinessData.databaseId+getGlobalConfig().businessDimensionStart}, ${boolToInt(tempBusinessData.hasInterior)})`; let dbQueryString = `INSERT INTO biz_main (
biz_server,
biz_name,
biz_owner_type,
biz_owner_id,
biz_locked,
biz_entrance_fee,
biz_till,
biz_entrance_pos_x,
biz_entrance_pos_y,
biz_entrance_pos_z,
biz_entrance_rot_z,
biz_entrance_int,
biz_entrance_vw,
biz_exit_pos_x,
biz_exit_pos_y,
biz_exit_pos_z,
biz_exit_rot_z,
biz_exit_int,
biz_exit_vw,
biz_has_interior
) VALUES (
${getServerId()},
'${safeBusinessName}',
${tempBusinessData.ownerType},
${tempBusinessData.ownerId},
${boolToInt(tempBusinessData.locked)},
${tempBusinessData.entranceFee},
${tempBusinessData.till},
${tempBusinessData.entrancePosition.x},
${tempBusinessData.entrancePosition.y},
${tempBusinessData.entrancePosition.z},
${tempBusinessData.entranceRotation},
${tempBusinessData.entranceInterior},
${tempBusinessData.entranceDimension},
${tempBusinessData.exitPosition.x},
${tempBusinessData.exitPosition.y},
${tempBusinessData.exitPosition.z},
${tempBusinessData.exitRotation},
${tempBusinessData.exitInterior},
${tempBusinessData.databaseId+getGlobalConfig().businessDimensionStart},
${boolToInt(tempBusinessData.hasInterior)}
)`;
queryDatabase(dbConnection, dbQueryString); queryDatabase(dbConnection, dbQueryString);
getServerData().businesses[businessId].databaseId = getDatabaseInsertId(dbConnection); getServerData().businesses[businessId].databaseId = getDatabaseInsertId(dbConnection);
} else { } else {
let dbQueryString = `UPDATE biz_main SET biz_name='${safeBusinessName}', biz_owner_type=${tempBusinessData.ownerType}, biz_owner_id=${tempBusinessData.ownerId}, biz_locked=${boolToInt(tempBusinessData.locked)}, biz_entrance_fee=${tempBusinessData.entranceFee}, biz_till=${tempBusinessData.till}, biz_entrance_pos_x=${tempBusinessData.entrancePosition.x}, biz_entrance_pos_y=${tempBusinessData.entrancePosition.y}, biz_entrance_pos_z=${tempBusinessData.entrancePosition.z}, biz_entrance_rot_z=${tempBusinessData.entranceRotation}, biz_entrance_int=${tempBusinessData.entranceInterior}, biz_entrance_vw=${tempBusinessData.entranceDimension}, biz_exit_pos_x=${tempBusinessData.exitPosition.x}, biz_exit_pos_y=${tempBusinessData.exitPosition.y}, biz_exit_pos_z=${tempBusinessData.exitPosition.z}, biz_exit_rot_z=${tempBusinessData.exitRotation}, biz_exit_int=${tempBusinessData.exitInterior}, biz_exit_vw=${tempBusinessData.exitDimension}, biz_has_interior=${boolToInt(tempBusinessData.hasInterior)} WHERE biz_id=${tempBusinessData.databaseId}`;
let dbQueryString =
`UPDATE biz_main SET
biz_name='${safeBusinessName}',
biz_owner_type=${tempBusinessData.ownerType},
biz_owner_id=${tempBusinessData.ownerId},
biz_locked=${boolToInt(tempBusinessData.locked)},
biz_entrance_fee=${tempBusinessData.entranceFee},
biz_till=${tempBusinessData.till},
biz_entrance_pos_x=${tempBusinessData.entrancePosition.x},
biz_entrance_pos_y=${tempBusinessData.entrancePosition.y},
biz_entrance_pos_z=${tempBusinessData.entrancePosition.z},
biz_entrance_rot_z=${tempBusinessData.entranceRotation},
biz_entrance_int=${tempBusinessData.entranceInterior},
biz_entrance_vw=${tempBusinessData.entranceDimension},
biz_exit_pos_x=${tempBusinessData.exitPosition.x},
biz_exit_pos_y=${tempBusinessData.exitPosition.y},
biz_exit_pos_z=${tempBusinessData.exitPosition.z},
biz_exit_rot_z=${tempBusinessData.exitRotation},
biz_exit_int=${tempBusinessData.exitInterior},
biz_exit_vw=${tempBusinessData.exitDimension},
biz_has_interior=${boolToInt(tempBusinessData.hasInterior)}
biz_buy_price=${tempBusinessData.buyPrice}
WHERE biz_id=${tempBusinessData.databaseId}`;
queryDatabase(dbConnection, dbQueryString); queryDatabase(dbConnection, dbQueryString);
} }
disconnectFromDatabase(dbConnection); disconnectFromDatabase(dbConnection);
@@ -1231,4 +1326,18 @@ function getBusinessFloorFirstFreeItemSlot(businessId) {
return -1; return -1;
} }
// ---------------------------------------------------------------------------
function cacheAllBusinessItems() {
for(let i in getServerData().businesses) {
for(let j in getServerData().items) {
if(getItemData(j).ownerType == AG_ITEM_OWNER_BIZFLOOR && getItemData(j).ownerId == getBusinessData(j).databaseId) {
getBusinessData(j).floorItemCache.push(j);
} else if(getItemData(j).ownerType == AG_ITEM_OWNER_BIZSTORAGE && getItemData(j).ownerId == getBusinessData(j).databaseId) {
getBusinessData(j).storageItemCache.push(j);
}
}
}
}
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------