Реализована новая более гибкая система ивент листнеров позволяющая избавиться от лишнего хардкода.
Это Механика слушателей произвольных событий. Для того, что бы сторонние разработчики могли добавлять свои реализации реакций на игровые и не только события вводится механизм произвольных слушателей.
Пример имплементации:
Допустим в вашем обработчике происходит действие - к примеру выдачи аугментации или геройства или любое другое действие которое вы реализовали
Метод fireEvent отвечает за генерацию события и передачу его всем зарегистрированным слушателям.
Пример - GameServer.getInstance().getListeners().fireEvent("activateHero", player, player.getActiveClassId());
где мы передаем 2 аргумента в виде объектов player и player.getActiveClassId(). Количество аргументов не ограничено
Для прослушивания произвольных событий следует создать класс реализующий интерфейс OloloListner и зарегистрировать его как глобальный слушатель через метод GameServer.....addEventListner.
Классы , реализующие интерфейс OloloListner должны обладать 2 методами
listEvents() -возвращающий массив событий, которые следует прослушивать
onEvent() - вызываемый при наступлении одного из событий события. Аргументы: строчный тип события, и произвольный список аргументов
Для каждого типа события свой список аргументов.
Например для события
"activateHero" - события наступающее при получении персонажем статуса геройства, имеет 2 аргумента: <player, player.getActiveClassId()>
Визуализация использования регистрации слушателя:
Как далее использовать зарегистрированный слушатель.
lucera2.com
Это Механика слушателей произвольных событий. Для того, что бы сторонние разработчики могли добавлять свои реализации реакций на игровые и не только события вводится механизм произвольных слушателей.
Пример имплементации:
Допустим в вашем обработчике происходит действие - к примеру выдачи аугментации или геройства или любое другое действие которое вы реализовали
Метод fireEvent отвечает за генерацию события и передачу его всем зарегистрированным слушателям.
- Параметры:
- eventType — тип события, которое произошло.
- args — произвольное количество аргументов, которые будут переданы слушателям события.
Пример - GameServer.getInstance().getListeners().fireEvent("activateHero", player, player.getActiveClassId());
где мы передаем 2 аргумента в виде объектов player и player.getActiveClassId(). Количество аргументов не ограничено
Для прослушивания произвольных событий следует создать класс реализующий интерфейс OloloListner и зарегистрировать его как глобальный слушатель через метод GameServer.....addEventListner.
Классы , реализующие интерфейс OloloListner должны обладать 2 методами
listEvents() -возвращающий массив событий, которые следует прослушивать
onEvent() - вызываемый при наступлении одного из событий события. Аргументы: строчный тип события, и произвольный список аргументов
Для каждого типа события свой список аргументов.
Например для события
"activateHero" - события наступающее при получении персонажем статуса геройства, имеет 2 аргумента: <player, player.getActiveClassId()>
Визуализация использования регистрации слушателя:

Как далее использовать зарегистрированный слушатель.
activateHero event trigger/Выполнение своих действий получение геройства
[EN][RU] Added a new event listener that allows the player to operate at will when receiving heroism. For example, I am attaching a code that sends a message for issuing 1 adena if the player’s class is Duelist and 2 adena for everyone else. You can add any mechanics and additions you like. I...
Last edited: