Cache biz items on start & add biz cmds
This commit is contained in:
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
Reference in New Issue
Block a user