Обновление до версии 3.3.8
Скачать
[+] !!VR:F команда теперь может быть вызвана с 3 параметрами: !!VR(var):F(minValue)/(maxValue)/(showErrors);
Если третий параметр указан и не равен (FALSE), значения вне заданного диапазона выводятся в виде ошибки с помощью диалогового окна ERM ошибок.
[+] Реализована автоматическая статическая и динамическая проверка индексов для массивов ERM 2.0. Сообщается о недопустимых индексах и принудительно устанавливается допустимый диапазон.
Пример:
Давайте перепишем пример без ошибок:
[+] Событие DL/(OnCustomDialogEvent) теперь получает все параметры мыши/клавиатуры, доступные через !!CM и отслеживает щелчки вне основной области диалогов.
Проверьте значение CM:T или i^dlg_action^ на:
    (DLG_ACTION_INDLG_CLICK)
    (DLG_ACTION_OUTDLG_CLICK)
    (DLG_ACTION_MOUSE_WHEEL)
    (DLG_ACTION_KEY_PRESSED)
Пример:
Для (DLG_ACTION_MOUSE_WHEEL) действие CM:S или i^mouse_action^ может быть одним из:
    (MOUSE_WHEEL_UP)
    (MOUSE_WHEEL_DOWN)
Пример:
Нажатия клавиш в диалоге теперь можно обрабатывать с помощью Era Erm Framework:
Добавлены две глобальные переменные в Era Erm Framework:
- i^dlg_action^ со значением CM:T (тип действия). Особенно полезно для событий DL-dialog. См. константы DLG_ACTION_XXX.
- i^dlg_id^ с ID активного DL-диалога.
[-] Исправлена ошибка в Era Erm Framework: функции NewIntArray и NewStrArray игнорировали аргумент (storageType).
[-] Исправлена ошибка в Era Erm Framework: данные событий мыши/клавиатуры не восстанавливались в конце триггера.
[!] SN:Q устарел и не должен использоваться, потому что он может нарушить любую функциональность ERM-библиотеки/мода/скрипта.
В частности, использование SN:Q нарушает работу обработчиков событий Era Erm Framework, которые должны срабатывать после всех остальных.
Code:
[+] !!VR:F command can be called with 3 parameters now: !!VR(var):F(minValue)/(maxValue)/(showErrors);
    If the third parameter is specified and not (FALSE), values outside specified range are reported using regular ERM error reporting dialog.
[+] Implemented automatical static and dynamical index checking for ERM 2.0 arrays. Invalid indexes are reported and forced to valid range.
  Example:
  !#VA(msgType[7]:y) (msgColor[7]:y);
  !!re i/(PLAYER_FIRST)/(PLAYER_LAST);
    !!VR(msgType[i]):S(PIC_TYPE_FLAG); Here we get error. Array size is 7, while number of game players is 8. i = 7 is outside of valid 0..6 range
    !!VR(msgColor[i]):Si;              Here we get error. Array size is 7, while number of game players is 8. i = 7 is outside of valid 0..6 range
  !!en:;
  Let's rewrite the example without bugs:
  !#VA(msgType[NUM_PLAYERS]:y) (msgColor[NUM_PLAYERS]:y);
  !!re i/(PLAYER_FIRST)/(PLAYER_LAST);
    !!VR(msgType[i]):S(PIC_TYPE_FLAG);
    !!VR(msgColor[i]):Si;
  !!en:;
[+] Event DL/(OnCustomDialogEvent) now receive all mouse/keyboard parameters, accessible via !!CM and tracks clicks outside dialogs main area.
    Check CM:T or i^dlg_action^ value for:
      (DLG_ACTION_INDLG_CLICK)
      (DLG_ACTION_OUTDLG_CLICK)
      (DLG_ACTION_MOUSE_WHEEL)
      (DLG_ACTION_KEY_PRESSED)
    Example:
      !?DL&i^dlg_action^=(DLG_ACTION_OUTDLG_CLICK);
      !!IF:M^You clicked outside dialog!^;
    For (DLG_ACTION_MOUSE_WHEEL) action CM:S or i^mouse_action^ can be one of:
      (MOUSE_WHEEL_UP)
      (MOUSE_WHEEL_DOWN)
    Example:
      !?DL&i^dlg_action^=(DLG_ACTION_MOUSE_WHEEL);
      !!IF:M^Wheel: %i(mouse_action)^; display 1/-1 for wheel up/down
    Keyboard presses in dialog can be handled now using Era Erm Framework:
      !?DL&i^dlg_action^=(DLG_ACTION_KEY_PRESSED)/i^key^=(KEY_Q);
      !!IF:M^Good buy any dialog!^;
      !!DLi^dlg_id^:C(TRUE);
    Added two global variables to Era Erm Framework:
    - i^dlg_action^ with CM:T value (action type). Specially useful for DL-dialog events. See DLG_ACTION_XXX constants.
    - i^dlg_id^ with active DL-dialog ID.
[-] Fixed bug in Era Erm Framework: NewIntArray and NewStrArray function were ignoring (storageType) argument.
[-] Fixed bug in Era Erm Framework: mouse/keyboard event data was not restored on trigger end.
[!] SN:Q is deprecated and shoudn't be used because it may break any ERM library/mod/script functionality.
    In particular, SN:Q usage breaks Era Erm Framework work flow.