Перейти к содержимому
MedvedevTD

[PythonAPI] Методы для работы с событиями (Events)

В этой теме 1 комментарий

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

16 880
Разработчик
6 961 публикация

PythonAPI - Events

Методы "events" позволяют работать с различными событиями в клиенте игры (открытие окна, нажатие на кнопку меню, нажатие кнопки на клавиатуре, вход в бой и др.).

 

Доступные методы:

events

  • events.onFlashReady(func)
  • events.onSFMEvent(func)
  • events.onReceiveShellInfo(func)
  • events.onBattleStart(func)
  • events.onBattleEnd(func)
  • events.onBattleQuit(func)
  • events.onKeyEvent(func)
  • events.onMouseEvent(func)
  • events.onGotRibbon(func)
  • events.onAchievementEarned(func)
  • events.onBattleStatsReceived(func)

 

Эвенты вызываются извне и передают различные параметры в функции, которые на данные эвенты подписаны. Пример подписи на эвент: events.eventName(myEventHandlerFunc)

 

events.onFlashReady(func)

Данный эвент срабатывает сразу после загрузки и инициализации Flash-части мода "Main.swf" (при её наличии).

Входной параметр: func - функция-обработчик события (def func(modName):), получает в качестве входного аргумента modName - имя мода, Flash-часть которого была загружена.


events.onSFMEvent(func)

Данный метод позволяет работать с различными событиями SFM-машины, такими как: показ и скрытие различных окон, нажатия на некоторые кнопки, нажатие кнопки на клавиатуре или мышке, вход в бой и т.д и т.п.

Входной параметр "func" - функция-обработчик событий, которая принимает от SFM-машины два параметра: eventName - название события, eventData - dict с параметрами события.

 

events_onSFMEvent.png

 


events.onReceiveShellInfo(func)

Данный эвент срабатывает при нанесении/получении урона противнику/от противника снарядами/торпедами.

Функция-обработчик события "func(*args, **kwargs)", обрабатывающая событие, получает следующие параметры:

  • victimID - идентификатор shipID атакованного
  • shooterID - идентификатор shipID атакующего
  • ammoId - тип снаряда
  • matID - тип материала, в который было попадание
  • shotID - идентификатор ID выстрела
  • booleans - тип повреждений после попадания (это значение имеет битовую маску):
  1. урон получил наш корабль
  2. пробитие брони
  3. повреждение под водой
  4. корабль уничтожен
  5. снаряд прошел сквозь корабль
  6. рикошет от брони
  7. урон от сплэша
  8. орудия главного калибра уничтожены
  9. торпедные установки уничтожены
  10. ПМК уничтожены
  • damage - количество нанесенного урона
  • shotPosition - tuple с координатами точки попадания
  • yaw - yaw снаряда, угол попадания снаряда
  • hlinfo - tuple с информацией о выстреле (list с информацией о повреждениях, ID залпового выстрела или № залпа)

 

events_onReceiveShellInfo.png

 


events.onBattleStart(func)

Данный эвент срабатывает при начале боя, после окончания отсчета таймера перед боем.


events.onBattleEnd(func)

Данный эвент срабатывает при окончании боя.


events.onBattleQuit(func)

Данный эвент срабатывает при выходе из боя и/или выходе из игры.
Принимает в качестве аргумента - "func" функцию-обработчик, функция получает при обработке события один аргумент - "True".


events.onKeyEvent(func)

Данный метод срабатывает при нажатии кнопок на клавиатуре или мышке после входа в игру (загрузке порта).
Принимает в качестве аргумента - "func" функцию-обработчик события, функция получает объект события с различной информацией о нажатии на клавиатуре/мышке.
Прим.: def func(event), где "event" - объект события, имеет следующие свойства:
  - event.key - код нажатой клавиши на клавиатуре (import Keys - дает доступ к константам клавиатуры: Keys.KEY_F1 - клавиша "F1", Keys.KEY_Q - клавиша Q и т.д.)
  - event.isKeyDown() - функция проверяет нажата ли какая нибудь клавиша и возвращает "True" или "False"
  - event.isKeyUp() - функция проверяет была ли отжата клавиша после нажатия и возвращает "True" или "False"
  - event.isShiftDown() - проверяет нажат ли "Shift", возвращает "True" или "False"
  - event.isCtrlDown() - проверяет нажат ли "Ctrl", возвращает "True" или "False"
  - event.isAltDown() - проверяет нажат ли "Alt", возвращает "True" или "False"


events.onMouseEvent(func)

Данный метод обрабатывает перемещение курсора мышки.
Принимает в качестве аргумента - "func" функцию-обработчик события, функция получает объект события "event" с различной информацией для обработки.
"event" - объект события, имеет следующие свойства:
  - event.dx - delta изменение хоординаты по оси "X"
  - event.dy - delta изменение хоординаты по оси "Y"
  - event.dz - значение всегда 0


events.onGotRibbon(func)

Данный эвент срабатывает при получении боевой ленты (Ribbon).
Принимает в качестве аргумента - "func" функцию-обработчик, входные параметры функции: *args, **kwargs.
Аргумент "args" получает значение константы боевой ленты.


events.onAchievementEarned(func)

Данный эвент срабатывает при получении достижения (ачивки)
Принимает в качестве аргумента - "func" функцию обработчик, входные параметры функции: *args, **kwargs.


events.onBattleStatsRecived(func)

Данный эвент срабатывает при получении пост боевой информации
Принимает в качестве аргумента - "func" функцию обработчик, входные параметры функции: arg.

Рассказать о публикации


Ссылка на публикацию

×