Показать сообщение отдельно
Старый 09.09.2017, 11:08   #5
Пользователь
 
Регистрация: 14.07.2016
Сообщений: 59
Сказал Спасибо: 6
Имеет 10 спасибок в 9 сообщенях
Smwr на пути к лучшему
По умолчанию

вся карта поделена на регионы.
Код:
public static int WORLD_X_MIN = 15;
public static int WORLD_X_MAX = 26;
private static short getRegionOffset(int x, int y)
{
	int rx = x >> 11; // =/(256 * 8)
	int ry = y >> 11;
	return (short) (((rx + Config.WORLD_X_MIN) << 5) + (ry + Config.WORLD_Y_MIN));
подсмотреть значения x/y min можно в исходниках явы своих хроник (код выше из lucera interlude). вообще, мне кто то говорил, что они везде одинаковы, однако значения с интерлюда не подошли к хф (хотя вероятно я где то накосячил), но т.к. я у себя карты не использую забил на это дело.

про многоэтажные локации: пробежаться по ним, глянуть высоту на каждом этаже и выдавать карту в зависимости от высоты.
Smwr вне форума   Ответить с цитированием