Fix property enter/exit
This commit is contained in:
@@ -211,42 +211,52 @@ function enterExitPropertyCommand(command, params, client) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let position = getPlayerPosition(client);
|
||||||
|
let dimension = getPlayerDimension(client);
|
||||||
|
|
||||||
|
/*
|
||||||
// The player's currentPickup wasn't always being set. This prevented entering/exiting a property.
|
// The player's currentPickup wasn't always being set. This prevented entering/exiting a property.
|
||||||
// Needs further testing and tweaks.
|
// Needs further testing and tweaks.
|
||||||
if (!getPlayerData(client).currentPickup) {
|
if (getPlayerData(client).currentPickup != null) {
|
||||||
let ownerType = getEntityData(getPlayerData(client).currentPickup, "agrp.owner.type");
|
if (getDistance(getPlayerData(client).currentPickup.position, getPlayerPosition(client)) <= 2) {
|
||||||
let ownerId = getEntityData(getPlayerData(client).currentPickup, "agrp.owner.id");
|
let ownerType = getEntityData(getPlayerData(client).currentPickup, "agrp.owner.type");
|
||||||
|
let ownerId = getEntityData(getPlayerData(client).currentPickup, "agrp.owner.id");
|
||||||
|
|
||||||
switch (ownerType) {
|
switch (ownerType) {
|
||||||
case AGRP_PICKUP_BUSINESS_ENTRANCE:
|
case AGRP_PICKUP_BUSINESS_ENTRANCE:
|
||||||
isBusiness = true;
|
isBusiness = true;
|
||||||
isEntrance = true;
|
isEntrance = true;
|
||||||
closestProperty = getServerData().businesses[ownerId];
|
closestProperty = getServerData().businesses[ownerId];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AGRP_PICKUP_BUSINESS_EXIT:
|
case AGRP_PICKUP_BUSINESS_EXIT:
|
||||||
isBusiness = true;
|
isBusiness = true;
|
||||||
isEntrance = false;
|
isEntrance = false;
|
||||||
closestProperty = getServerData().businesses[ownerId];
|
closestProperty = getServerData().businesses[ownerId];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AGRP_PICKUP_HOUSE_ENTRANCE:
|
case AGRP_PICKUP_HOUSE_ENTRANCE:
|
||||||
isBusiness = false;
|
isBusiness = false;
|
||||||
isEntrance = true;
|
isEntrance = true;
|
||||||
closestProperty = getServerData().houses[ownerId];
|
closestProperty = getServerData().houses[ownerId];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AGRP_PICKUP_HOUSE_EXIT:
|
case AGRP_PICKUP_HOUSE_EXIT:
|
||||||
isBusiness = false;
|
isBusiness = false;
|
||||||
isEntrance = false;
|
isEntrance = false;
|
||||||
closestProperty = getServerData().houses[ownerId];
|
closestProperty = getServerData().houses[ownerId];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
getPlayerData(client).currentPickup = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
// Check businesses first
|
// Check businesses first
|
||||||
if (closestProperty == null) {
|
if (closestProperty == null) {
|
||||||
let businessIndex = getClosestBusinessEntrance(getPlayerPosition(client), getPlayerDimension(client));
|
let businessIndex = getClosestBusinessEntrance(getPlayerPosition(client), getPlayerDimension(client));
|
||||||
@@ -284,6 +294,48 @@ function enterExitPropertyCommand(command, params, client) {
|
|||||||
closestProperty = getServerData().houses[houseIndex];
|
closestProperty = getServerData().houses[houseIndex];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Check businesses first
|
||||||
|
if (closestProperty == null) {
|
||||||
|
for (let i in getServerData().businesses) {
|
||||||
|
if (getServerData().businesses[i].entranceDimension == dimension) {
|
||||||
|
if (getDistance(position, getServerData().businesses[i].entrancePosition) <= getGlobalConfig().enterPropertyDistance) {
|
||||||
|
isBusiness = true;
|
||||||
|
isEntrance = true;
|
||||||
|
closestProperty = getServerData().businesses[i];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (getServerData().businesses[i].exitDimension == dimension) {
|
||||||
|
if (getDistance(position, getServerData().businesses[i].exitPosition) <= getGlobalConfig().exitPropertyDistance) {
|
||||||
|
isBusiness = true;
|
||||||
|
isEntrance = false;
|
||||||
|
closestProperty = getServerData().businesses[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (closestProperty == null) {
|
||||||
|
for (let i in getServerData().houses) {
|
||||||
|
if (getServerData().houses[i].entranceDimension == dimension) {
|
||||||
|
if (getDistance(position, getServerData().houses[i].entrancePosition) <= getGlobalConfig().enterPropertyDistance) {
|
||||||
|
isBusiness = false;
|
||||||
|
isEntrance = true;
|
||||||
|
closestProperty = getServerData().houses[i];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (getServerData().houses[i].exitDimension == dimension) {
|
||||||
|
if (getDistance(position, getServerData().houses[i].exitPosition) <= getGlobalConfig().exitPropertyDistance) {
|
||||||
|
isBusiness = false;
|
||||||
|
isEntrance = false;
|
||||||
|
closestProperty = getServerData().houses[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (closestProperty == null) {
|
if (closestProperty == null) {
|
||||||
logToConsole(LOG_DEBUG, `${getPlayerDisplayForConsole(client)}'s closest door is null`);
|
logToConsole(LOG_DEBUG, `${getPlayerDisplayForConsole(client)}'s closest door is null`);
|
||||||
@@ -293,7 +345,7 @@ function enterExitPropertyCommand(command, params, client) {
|
|||||||
logToConsole(LOG_DEBUG, `${getPlayerDisplayForConsole(client)}'s closest door is ${(isBusiness) ? closestProperty.name : closestProperty.description} ${(isEntrance) ? "entrance" : "exit"}`);
|
logToConsole(LOG_DEBUG, `${getPlayerDisplayForConsole(client)}'s closest door is ${(isBusiness) ? closestProperty.name : closestProperty.description} ${(isEntrance) ? "entrance" : "exit"}`);
|
||||||
|
|
||||||
let englishId = getLocaleFromParams("English");
|
let englishId = getLocaleFromParams("English");
|
||||||
let typeString = (isBusiness) ? getLocaleString(client, "Business") : getLocaleString(client, "House");
|
let typeString = (isBusiness) ? getLanguageLocaleString(englishId, "Business") : getLanguageLocaleString(englishId, "House");
|
||||||
let nameString = (isBusiness) ? closestProperty.name : closestProperty.description;
|
let nameString = (isBusiness) ? closestProperty.name : closestProperty.description;
|
||||||
|
|
||||||
if (isEntrance) {
|
if (isEntrance) {
|
||||||
|
|||||||
Reference in New Issue
Block a user