вопрос любителям поковырять ядро ява сервера

AlhimN1

Интересующийся
VIP
Сообщения
874
Розыгрыши
0
Решения
2
Репутация
612
Реакции
740
Баллы
352
Хроники
  1. Interlude
Исходники
Отсутствуют
Сборка
L2JTD
вообщем хочу расширить мир до куба от -327680 на до 327680
везде поменять поменял, но выбрасывает всё равно из зоны
не могу поменять через дирта регион х и регион у

как можно или чем можно еще поменять значения 55 и 64 на 128 128 например или надо менять те что -32 -64 ?
1722707747086.webp
 
вообщем хочу расширить мир до куба от -327680 на до 327680
везде поменять поменял, но выбрасывает всё равно из зоны
не могу поменять через дирта регион х и регион у

как можно или чем можно еще поменять значения 55 и 64 на 128 128 например или надо менять те что -32 -64 ?
Посмотреть вложение 76521
В некоторых сборках есть проверочки на выход за рамки дозволенного. Дальше я пока не копал
 
В некоторых сборках есть проверочки на выход за рамки дозволенного. Дальше я пока не копал
ну рамки я поставил 327680 во все стороны, на хай хрониках именно так и сделали, но мне кажется что там еще подсчёт этих регионов идёт и порталит в гиран если вышел из региона большее 55 или 64...
не понятно что к чему
 
ну рамки я поставил 327680 во все стороны, на хай хрониках именно так и сделали, но мне кажется что там еще подсчёт этих регионов идёт и порталит в гиран если вышел из региона большее 55 или 64...
не понятно что к чему
я находил банальное
если(х > махХ ll y > maxY ll x < minX ll y < minY){тпВГиран(игрок)}
а ограничения клиента, формата гео или пакетов я пока не ковырял на эту тему
 
вот допустим часть кода про телепорт
// Метод для установки координат объекта
public final void setXYZ(int x, int y, int z) {
// Проверка, что регион мира не равен null, если включены утверждения
if (Config.ASSERT && !$assertionsDisabled && getWorldRegion() == null)
throw new AssertionError(); // Бросаем AssertionError, если регион мира равен null

setWorldPosition(x, y, z); // Устанавливаем новую позицию объекта

try {
// Проверка, изменился ли регион мира, и обновление региона, если это так
if (L2World.getInstance().getRegion(getWorldPosition()) != getWorldRegion())
updateWorldRegion();
} catch (Exception e) {
// Логируем предупреждение с неправильными координатами объекта
_log.warning("Object Id at bad coords: (x: " + getX() + ", y: " + getY() + ", z: " + getZ() + ").");

// Обработка неправильных координат в зависимости от типа активного объекта
if (getActiveObject() instanceof net.sf.l2j.gameserver.model.L2Character) {
getActiveObject().decayMe(); // Для объектов типа L2Character вызываем метод decayMe()
} else if (getActiveObject() instanceof L2PcInstance) {
((L2PcInstance)getActiveObject()).teleToLocation(0, 0, 0, false); // Телепортируем объект на координаты (0, 0, 0)
((L2PcInstance)getActiveObject()).sendMessage("Error with your coords, Please ask a GM for help!"); // Отправляем сообщение игроку о проблеме с координатами
}
}
}

тут именно ворлд регион getWorldRegion()) , а он задаётся теми константами, но поменять не могу их..
 
а в методах getRegion и getWorldRegion что там за код?
 
Запрещено публиковать исходный код без BB-кода — CODE
ну вот есть такая проверка
private boolean validRegion(int x, int y) {
return (x >= 0 && x <= REGIONS_X && y >= 0 && y <= REGIONS_Y);
}
она ведёт к тем констатнтам которые не видны для изменения через диртджо
 
ну вот есть такая проверка
private boolean validRegion(int x, int y) {
return (x >= 0 && x <= REGIONS_X && y >= 0 && y <= REGIONS_Y);
}
она ведёт к тем констатнтам которые не видны для изменения через диртджо
может есть другой jar в либах где эти константы лежат? например, на l2j вроде они в геодрайвер.jar или типо того, а в геймсервер.jar их нет
сори, туплю. не правильно прочитал, все выше такое себе

а метод validRegion можешь изменить?
 
Вот тут я писал чутка инфы по этой теме:
 
Вот тут я писал чутка инфы по этой теме:
Шикарная статья, только сейчас еще раз перечитывал с: То есть если высота ограничена От -16384 до 16383 у автора никак не получится сделать куб, а только прямоугольный параллелепипед. В скором времени в ответах постараюсь дополнить эту статью
 
Шикарная статья, только сейчас еще раз перечитывал с: То есть если высота ограничена От -16384 до 16383 у автора никак не получится сделать куб, а только прямоугольный параллелепипед. В скором времени в ответах постараюсь дополнить эту статью
ну по высоте нету проверок, высоту я не трогаю там в самом клиенте ниже -10000 не упадёшь
ща почитаю)

А почему не возьмете какие-нибудь исходники?
та я так любитель, чисто ради интереса ковыряю клиент и сервер
 
та я так любитель, чисто ради интереса ковыряю клиент и сервер
Да в нашем сообществе в основном все ради интереса х) Вон Aristo серьезно занимается, но таких по пальцам фрезеровщика можно пересчитать
 
Вот тут я писал чутка инфы по этой теме:
вот что дано:
public static final int SHIFT_BY = 12;

public static final int MAP_MIN_X = -327680;

public static final int MAP_MAX_X = 327680;

public static final int MAP_MIN_Y = -327680;

public static final int MAP_MAX_Y = 327680;

public static final int OFFSET_X = Math.abs(-32);

public static final int OFFSET_Y = Math.abs(-64);

private static final int REGIONS_X = 55 + OFFSET_X;

private static final int REGIONS_Y = 64 + OFFSET_Y;

зачем абс -32 а не 32 и тоже с 64 не понятно
55 регионов + 32??
 
Формула взята с птс, лучше не пытаться делать по своему или будут игроки вылетать при переходе в некоторых местах.
Не забывайте что клиент не современный, даже если брать новые хроники.
Все что делают это натягивают сову на глобус с новым интерфейсом и фиксят некоторые баги движка в исходниках с оптимизацией клиента.
 
Формула взята с птс, лучше не пытаться делать по своему или будут игроки вылетать при переходе в некоторых местах.
Не забывайте что клиент не современный, даже если брать новые хроники.
Все что делают это натягивают сову на глобус с новым интерфейсом и фиксят некоторые баги движка в исходниках с оптимизацией клиента.
да ээто ж не игровой сервер) это тестовый только для себя
смотрю что можно выжать из выжатого лимона
например в анреале можно выжать большее пространство для мира добавляю карты в квадраты 27+ а меня сервак уносит в гиран, поэтому не могу проверить что там да как с картами.
максимальную вертикаль которую могу проверить это 26, тоже самое и с другой стороны на 15 вертикаль не пускает

в новых то хрониках мир от 10 до 30 работает, они же это прописали

например меня х у до 327680 я добился что персонаж виден даже в 27 вертикали, но через секунду получаю тп
 
да ээто ж не игровой сервер) это тестовый только для себя
смотрю что можно выжать из выжатого лимона
например в анреале можно выжать большее пространство для мира добавляю карты в квадраты 27+ а меня сервак уносит в гиран, поэтому не могу проверить что там да как с картами.
максимальную вертикаль которую могу проверить это 26, тоже самое и с другой стороны на 15 вертикаль не пускает

в новых то хрониках мир от 10 до 30 работает, они же это прописали

например меня х у до 327680 я добился что персонаж виден даже в 27 вертикали, но через секунду получаю тп
Сталкивался с такими вылетами, эксперименты конечно можно. Просто не стоит это потраченного времени поверьте. ?
 
Сталкивался с такими вылетами, эксперименты конечно можно. Просто не стоит это потраченного времени поверьте. ?
ну почему, это забавно) время есть, это ж досуг-развлечение
 
Назад
Сверху Снизу