Update client house script
This commit is contained in:
@@ -22,37 +22,58 @@ class HouseData {
|
|||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
|
|
||||||
function receiveHouseFromServer(houseId, entrancePosition, blipModel, pickupModel, hasInterior) {
|
function receiveHouseFromServer(houseId, entrancePosition, blipModel, pickupModel, hasInterior) {
|
||||||
|
logToConsole(LOG_DEBUG, `[VRR.House] Received house ${houseId} (${name}) from server`);
|
||||||
|
|
||||||
if(getGame() == VRR_GAME_GTA_IV) {
|
if(getGame() == VRR_GAME_GTA_IV) {
|
||||||
if(getHouseData(houseId) != false) {
|
if(getHouseData(houseId) != false) {
|
||||||
|
let houseData = getHouseData(houseId);
|
||||||
|
houseData.entrancePosition = entrancePosition;
|
||||||
|
houseData.blipModel = blipModel;
|
||||||
|
houseData.pickupModel = pickupModel;
|
||||||
|
houseData.hasInterior = hasInterior;
|
||||||
|
|
||||||
|
logToConsole(LOG_DEBUG, `[VRR.House] House ${houseId} already exists. Checking blip ...`);
|
||||||
if(blipModel == -1) {
|
if(blipModel == -1) {
|
||||||
natives.removeBlipAndClearIndex(getHouseData(houseId).blipId);
|
if(houseData.blipId != -1) {
|
||||||
getHouseData(houseId).blipId = -1;
|
logToConsole(LOG_DEBUG, `[VRR.House] House ${houseId}'s blip has been removed by the server`);
|
||||||
//houses.splice(getHouseData(houseId).index, 1);
|
if(getGame() == VRR_GAME_GTA_IV) {
|
||||||
//setAllHouseDataIndexes();
|
natives.removeBlipAndClearIndex(getHouseData(houseId).blipId);
|
||||||
} else {
|
} else {
|
||||||
if(getHouseData(houseId).blipId != -1) {
|
destroyElement(getElementFromId(blipId));
|
||||||
natives.setBlipCoordinates(getHouseData(houseId).blipId, getHouseData(houseId).entrancePosition);
|
|
||||||
natives.changeBlipSprite(getHouseData(houseId).blipId, getHouseData(houseId).blipModel);
|
|
||||||
//natives.changeBlipNameFromAscii(getHouseData(houseId).blipId, `${name.substr(0, 24)}${(name.length > 24) ? " ...": ""}`);
|
|
||||||
} else {
|
|
||||||
let blipId = natives.addBlipForCoord(entrancePosition);
|
|
||||||
if(blipId) {
|
|
||||||
getHouseData(houseId).blipId = blipId;
|
|
||||||
natives.changeBlipSprite(blipId, blipModel);
|
|
||||||
natives.setBlipMarkerLongDistance(blipId, false);
|
|
||||||
}
|
}
|
||||||
|
houseData.blipId = -1;
|
||||||
|
} else {
|
||||||
|
logToConsole(LOG_DEBUG, `[VRR.House] House ${houseId}'s blip is unchanged`);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(houseData.blipId != -1) {
|
||||||
|
logToConsole(LOG_DEBUG, `[VRR.House] House ${houseId}'s blip has been changed by the server`);
|
||||||
|
if(getGame() == VRR_GAME_GTA_IV) {
|
||||||
|
natives.setBlipCoordinates(houseData.blipId, houseData.entrancePosition);
|
||||||
|
natives.changeBlipSprite(houseData.blipId, houseData.blipModel);
|
||||||
|
natives.setBlipMarkerLongDistance(houseData.blipId, false);
|
||||||
|
natives.setBlipAsShortRange(houseData.blipId, true);
|
||||||
|
natives.changeBlipNameFromAscii(houseData.blipId, `${houseData.name.substr(0, 24)}${(houseData.name.length > 24) ? " ...": ""}`);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
let blipId = createGameBlip(houseData.blipModel, houseData.entrancePosition, houseData.name);
|
||||||
|
if(blipId != -1) {
|
||||||
|
houseData.blipId = blipId;
|
||||||
|
}
|
||||||
|
logToConsole(LOG_DEBUG, `[VRR.House] House ${houseId}'s blip has been added by the server (Model ${blipModel}, ID ${blipId})`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let tempHouseData = new HouseData(houseId, entrancePosition, blipModel, pickupModel, hasInterior, hasItems);
|
logToConsole(LOG_DEBUG, `[VRR.House] House ${houseId} doesn't exist. Adding ...`);
|
||||||
|
let tempHouseData = new HouseData(houseId, entrancePosition, blipModel, pickupModel, hasInterior);
|
||||||
if(blipModel != -1) {
|
if(blipModel != -1) {
|
||||||
let blipId = natives.addBlipForCoord(entrancePosition);
|
let blipId = createGameBlip(tempHouseData.blipModel, tempHouseData.entrancePosition, "House");
|
||||||
if(blipId) {
|
if(blipId != -1) {
|
||||||
tempHouseData.blipId = blipId;
|
tempHouseData.blipId = blipId;
|
||||||
natives.changeBlipSprite(blipId, blipModel);
|
|
||||||
natives.setBlipMarkerLongDistance(blipId, false);
|
|
||||||
//natives.changeBlipNameFromAscii(blipId, `${name.substr(0, 24)}${(name.length > 24) ? " ...": ""}`);
|
|
||||||
}
|
}
|
||||||
|
logToConsole(LOG_DEBUG, `[VRR.House] House ${houseId}'s blip has been added by the server (Model ${blipModel}, ID ${blipId})`);
|
||||||
|
} else {
|
||||||
|
logToConsole(LOG_DEBUG, `[VRR.House] House ${houseId} has no blip.`);
|
||||||
}
|
}
|
||||||
houses.push(tempHouseData);
|
houses.push(tempHouseData);
|
||||||
setAllHouseDataIndexes();
|
setAllHouseDataIndexes();
|
||||||
@@ -66,9 +87,14 @@ function receiveHouseFromServer(houseId, entrancePosition, blipModel, pickupMode
|
|||||||
* @param {number} houseId - The ID of the house (initially provided by server)
|
* @param {number} houseId - The ID of the house (initially provided by server)
|
||||||
* @return {HouseData} The house's data (class instance)
|
* @return {HouseData} The house's data (class instance)
|
||||||
*/
|
*/
|
||||||
function getHouseData(houseId) {
|
function getHouseData(houseId) {
|
||||||
let tempHouseData = houses.find((h) => h.houseId == houseId);
|
for(let i in houses) {
|
||||||
return (typeof tempHouseData != "undefined") ? tempHouseData : false;
|
if(houses[i].houseId == houseId) {
|
||||||
|
return houses[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
|
|||||||
Reference in New Issue
Block a user