Перейти к содержанию
Авторизация  

Разработка (В режиме отладки)


Описание

Как разрабатывать без лишних действий

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

 

Итак, я хотел изменить процесс, я хотел только выполнять следующие шаги: изменить код -> компилировать -> видеть изменения в игре. И, к счастью, я смог это сделать.

 

Что тебе нужно?

 

- Рабочий сервер
- Исходники l2jserver (очевидно)

 

ПРИМЕЧАНИЕ. Это для Interlude ветки l2jserver, но я думаю, что с не большими изменениями / настройками вы можете заставить это работать для любых хроник и сборок.

 

Шаги:
1.В исходной папке вам нужны файлы gameserver / config и gameserver / data из ВАШЕГО РАБОЧЕГО СЕРВЕРА. Вы можете сделать это, скопировав папки или создав символическую ссылку, чтобы все изменения, внесенные вами в эти папки, отражались без необходимости повторного копирования / вставки.
d1awF6t.png
2 - Установите плагин JRebel в вашу среду IDE: https://zeroturnaround.com/software/jrebel/
3 - После установки перейдите в java / net / sf / l2j / gameserver / GameServer.java и закомментируйте с 714 по 721 строки, вы должны получить что-то вроде этого:

 

public static void main(String[] args) throws Exception
{
Server.serverMode = Server.MODE_GAMESERVER;
// Local Constants
final String LOG_FOLDER = "log"; // Name of folder for log file
final String LOG_NAME = "./log.cfg"; // Name of log file

 

/*** Main ***/
// Create log folder
//File logFolder = new File(Config.DATAPACK_ROOT, LOG_FOLDER);
//logFolder.mkdir();

 

// Create input stream for log file -- or store file data into memory
//InputStream is = new FileInputStream(new File(LOG_NAME));
//LogManager.getLogManager().readConfiguration(is);
//is.close();

 

// Initialize config
Config.load();
L2DatabaseFactory.getInstance();
gameServer = new GameServer();

 

if (Config.IS_TELNET_ENABLED)
{
_statusServer = new Status(Server.serverMode);
_statusServer.start();
}
else
{
System.out.println("Telnet server is currently disabled.");
}
}
4 - Отредактируйте конфигурацию Run / Debug:
RapoA98.png
Is4JWOY.png
5 - Запустите свой loginServer как обычно
6 - Запустите java / net / sf / l2j / gameserver / GameServer.java с помощью JRebel
pHeL43u.png
Как только вы закончите, вы сможете войти на сервер, отлично !. Давайте сделаем изменения:
1 - Перейти к java / net / sf / l2j / gameserver / clientpackets / EnterWorld.java
2 - Добавьте эту строку в метод runImpl, в строке 108:
activeChar.sendMessage("Hello from HOTDEPLOY!");
3 - Соберите свой проект:
zixj5Sm.png
У вас должно быть сообщение от JRebel:
"2017-10-23 12:24:01 JRebel: Перезагрузка класса 'net.sf.l2j.gameserver.clientpackets.EnterWorld'."
Отлично, наше изменение уже включено, перейдите на ваш сервер, войдите в систему с символом и:
YrmkZes.png
Ты заметил? нет простоев!
Надеюсь, поможет. Рад помочь, если кто-то не сможет этого сделать.
Хорошего дня.

 

Это перевод статьи http://www.l2jserver.com/forum/viewtopic.php?f=134&t=32482
По всем вопросам обращайтесь к автору, он отзывчивый парень!

screenshot.jpg

screenshot.jpg

screenshot.jpg

screenshot.jpg

screenshot.jpg

screenshot.jpg

screenshot.jpg



Рекомендуемые комментарии

Комментариев нет

×
×
  • Создать...