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

AlhimN1

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

как можно или чем можно еще поменять значения 55 и 64 на 128 128 например или надо менять те что -32 -64 ?
1722707747086.png
 
вот например что пишет когда пытаюсь покинуть этот мир)))
1722721622144.png игра повисла, но в базе вот такие координаты у перса уже
1722721462254.png
 

круто, ты добился того, что было понятно сразу - что придется удалять проверку в исходниках сервера, которых у тебя нет ))
 
круто, ты добился того, что было понятно сразу - что придется удалять проверку в исходниках сервера, которых у тебя нет ))
ну я как бы только недавно начать ковыряться в этом деле, буквально в конце июня
постепенно узнаю что за кухня
а использую тот сервер что первым нашел и который запустился с двух кликов
 
ну я как бы только недавно начать ковыряться в этом деле, буквально в конце июня
постепенно узнаю что за кухня
а использую тот сервер что первым нашел и который запустился с двух кликов

для любого кастома всегда нужны исходы. я выше кидал норм сборку с исходами, велкам. там инструкция даже для ламеров понятная)
 
Ну есть размеры мира по координатам в клиенте, а то, что ты пытаешься менять, это разбивка его по регионам, что-бы контролировать объект в мире сервером, там идет разбивка по секторам (регионам) при старте сервера. И идет проверка сервером местоположения персонажа относительно нахождения персонажа в какомлибо регионе, а если персонаж не входит в зону региона, то будет ошибка, в каждой сборке по разному будет на это реагировать сервер.
 
Ну есть размеры мира по координатам в клиенте, а то, что ты пытаешься менять, это разбивка его по регионам, что-бы контролировать объект в мире сервером, там идет разбивка по секторам (регионам) при старте сервера. И идет проверка сервером местоположения персонажа относительно нахождения персонажа в какомлибо регионе, а если персонаж не входит в зону региона, то будет ошибка, в каждой сборке по разному будет на это реагировать сервер.
я смог поменять только видимый объём мира это который 327680, а вот количество регионов которые 55 и 64 не могу
 
Смотри метод в конструкторе у тебя initRegions, там идет инициализация, посмотри че там написано, ну 100% там твой ответ.
 
Запрещено публиковать исходный код без BB-кода — CODE
Смотри метод в конструкторе у тебя initRegions, там идет инициализация, посмотри че там написано, ну 100% там твой ответ.
та тут всё завязано на этих константах которые не могу поменять через дирт джо
private void initRegions() {
_log.config("L2World: Setting up World Regions");
this._worldRegions = new L2WorldRegion[REGIONS_X + 1][REGIONS_Y + 1];
for (int i = 0; i <= REGIONS_X; i++) {
for (int j = 0; j <= REGIONS_Y; j++)
this._worldRegions[j] = new L2WorldRegion(i, j);
}
for (int x = 0; x <= REGIONS_X; x++) {
for (int y = 0; y <= REGIONS_Y; y++) {
for (int a = -1; a <= 1; a++) {
for (int b = -1; b <= 1; b++) {
if (validRegion(x + a, y + b))
this._worldRegions[x + a][y + b].addSurroundingRegion(this._worldRegions[x][y]);
}
}
}
}
 
Опиши подробней, что именно ты хочешь сделать, как я понял, ты просто хочешь увеличить размер мира?
 
Опиши подробней, что именно ты хочешь сделать, как я понял, ты просто хочешь увеличить размер мира?

он пытается увеличить и размер мира, и соотвественно добавить регионов как я понял. ему походу мешаются проверки в ядре сервера. а исходов у той сборки нет, взял первую попавшуюся
 
Без исходников, чисто манипулируя байткодом, это будет довольно непросто сделать, т.к условно, в той же лыже например, при установке XYZ, они нормализуются до размеров мира, и размеры мира туда подтянуты в виде магических чисел. + по коду еще сотни мест, где это все проверяется, начиная от проверок при входе в мир, в эффектах скилов, при ТП через НпЦ, в ИИ, и кончая хардкодом в геодвижке.

Поменяв пару констант в одном из тысячи классов, ты не добьешься нужного тебе результата, если там конечно не какая-то уникальная сборка, которая прям протянула через все ядро эти константы, ничего не хардкодя.
 
Без исходников, чисто манипулируя байткодом, это будет довольно непросто сделать, т.к условно, в той же лыже например, при установке XYZ, они нормализуются до размеров мира, и размеры мира туда подтянуты в виде магических чисел. + по коду еще сотни мест, где это все проверяется, начиная от проверок при входе в мир, в эффектах скилов, при ТП через НпЦ, в ИИ, и кончая хардкодом в геодвижке.

Поменяв пару констант в одном из тысячи классов, ты не добьешься нужного тебе результата, если там конечно не какая-то уникальная сборка, которая прям протянула через все ядро эти константы, ничего не хардкодя.

а самое главное- зачем? он выбрал какую-то первую попавшуюся помоечную сборку) был бы это еще годный ПТС - еще бы был смысл какой-то страдать... но даже в таком случае пока не нужно, и для тестов более чем достаточно явы с исходами
 
Ну без исходников, я не пробовал таким заниматься, лучше возьми сборку с исходниками, скачай прогу IntelliJ IDEA Community Edition 2024.1.4 открой как проект и посмотри по ссылкам, где используются твои регионы, там все замени под себя, я имею ввиду к примеру пакеты от клиента, там идут проверки связанные с местоположением объекта в мире.
 
Назад
Сверху Снизу