Decoupled player and NPC view distance.

This commit is contained in:
dongresource 2020-08-26 04:53:27 +02:00
parent 3e5101892b
commit 4178945abe
5 changed files with 10 additions and 6 deletions

View File

@ -18,7 +18,8 @@ randomcharacters=true
port=8002
ip=127.0.0.1
# distance at which other players and NPCs become visible
view=20000
playerdistance=20000
npcdistance=16000
# little message players see when they enter the game
motd=Welcome to OpenFusion!
# NPC json data

View File

@ -86,7 +86,7 @@ void NPCManager::updatePlayerNPCS(CNSocket* sock, PlayerView& view) {
int diffX = abs(view.plr->x - pair.second.appearanceData.iX);
int diffY = abs(view.plr->y - pair.second.appearanceData.iY);
if (diffX < settings::VIEWDISTANCE && diffY < settings::VIEWDISTANCE) {
if (diffX < settings::NPCDISTANCE && diffY < settings::NPCDISTANCE) {
yesView.push_back(pair.first);
} else {
noView.push_back(pair.first);

View File

@ -85,7 +85,7 @@ void PlayerManager::updatePlayerPosition(CNSocket* sock, int X, int Y, int Z) {
int diffX = abs(pair.second.plr->x - X); // the map is like a grid, X and Y are your position on the map, Z is the height. very different from other games...
int diffY = abs(pair.second.plr->y - Y);
if (diffX < settings::VIEWDISTANCE && diffY < settings::VIEWDISTANCE) {
if (diffX < settings::PLAYERDISTANCE && diffY < settings::PLAYERDISTANCE) {
yesView.push_back(pair.first);
}
else {

View File

@ -10,7 +10,8 @@ bool settings::LOGINRANDCHARACTERS = false;
int settings::SHARDPORT = 8002;
std::string settings::SHARDSERVERIP = "127.0.0.1";
int settings::VIEWDISTANCE = 20000;
int settings::PLAYERDISTANCE = 20000;
int settings::NPCDISTANCE = 16000;
// default spawn point is city hall
int settings::SPAWN_X = 179213;
@ -39,7 +40,8 @@ void settings::init() {
LOGINRANDCHARACTERS = reader.GetBoolean("login", "randomcharacters", LOGINRANDCHARACTERS);
SHARDPORT = reader.GetInteger("shard", "port", SHARDPORT);
SHARDSERVERIP = reader.Get("shard", "ip", "127.0.0.1");
VIEWDISTANCE = reader.GetInteger("shard", "view", VIEWDISTANCE);
PLAYERDISTANCE = reader.GetInteger("shard", "playerdistance", PLAYERDISTANCE);
NPCDISTANCE = reader.GetInteger("shard", "npcdistance", NPCDISTANCE);
SPAWN_X = reader.GetInteger("shard", "spawnx", SPAWN_X);
SPAWN_Y = reader.GetInteger("shard", "spawny", SPAWN_Y);
SPAWN_Z = reader.GetInteger("shard", "spawnz", SPAWN_Z);

View File

@ -6,7 +6,8 @@ namespace settings {
extern bool LOGINRANDCHARACTERS;
extern int SHARDPORT;
extern std::string SHARDSERVERIP;
extern int VIEWDISTANCE;
extern int PLAYERDISTANCE;
extern int NPCDISTANCE;
extern int SPAWN_X;
extern int SPAWN_Y;
extern int SPAWN_Z;