[+] Added new events to "Era Erm Framework": "OnKeyPressed_AdvMap", "OnKeyPressed_Battle", "OnKeyPressed_HeroScreen",
"OnKeyPressed_HeroMeetingScreen", "OnKeyPressed_Town", occuring right after "OnKeyPressed" events and taking two arguments:
x1 - key code
x2 - prevent default reaction (0 - no, 1 - yes).
Example:
!?FU(OnKeyPressed_Battle)&x1=(KEY_F1):;
!#VA(key:x) (preventDefault:x);
!!VR(preventDefault):S(TRUE);
!!IF:M^Pressed F1 in battle!^;
То есть уже давно не нужно вручную проверять какой сейчас у игры диалог, сразу используй событие для битвы или карты приключений. Код клавишы уже заботливо лежит в глобальной переменной i^key^. Сами коды в виде констант (KEY_Q), (KEY_A), (KEY_ESC) — тоже не нужно писать голые числа.
А в бою доступно много глобальных переменных для левой и правой стороны:
Code:
i^battle_isQuick^: (TRUE) если включена быстрая битва, (FALSE) в противном случае
i^battle_x^: Боевая координата x
i^battle_y^: Битва y-координата
i^battle_z^: Боевая z-координата
i^battle_owner_0^: Владелец левой стороны или (NO_OWNER)
i^battle_owner_1^: Владелец правой стороны или (NO_OWNER)
i^battle_hero_0^: Герой левой стороны или (NO_HERO)
i^battle_hero_1^: Герой правой стороны или (NO_HERO). Любое отрицательное значение нормализуется в (NO_HERO)
i^battle_ai_0^: (TRUE), если левая сторона управляется AI, (FALSE) в противном случае.
i^battle_ai_1^: (TRUE) если правая сторона управляется AI, (FALSE) в противном случае.
i^battle_human_0^: (TRUE) если левая сторона контролируется человеком, (FALSE) в противном случае.
i^battle_human_1^: (TRUE) если правая сторона контролируется человеком, (FALSE) в противном случае.
i^battle_remote_0^: (TRUE) если левая сторона управляется удаленным человеком, (FALSE) в противном случае.
i^battle_remote_1^: (TRUE) если правая сторона управляется удаленным человеком, (FALSE) в противном случае.
i^battle_local_0^: (TRUE), если левая сторона контролируется локальным человеком или ИИ, (FALSE) в противном случае.
i^battle_local_1^: (TRUE), если правая сторона контролируется локальным человеком или ИИ, (FALSE) в противном случае.
i^battle_localHuman_0^: (TRUE) если левая сторона контролируется локальным человеком, (FALSE) в противном случае.
i^battle_localHuman_1^: (TRUE) если правая сторона контролируется локальным человеком, (FALSE) в противном случае.
i^battle_hasHuman^: (TRUE) если хотя бы одна сторона контролируется человеком, (FALSE) в противном случае.
i^battle_humanOnly^: (TRUE) если все стороны контролируются людьми, (FALSE) в противном случае.
i^battle_aiOnly^: (TRUE), если все стороны контролируются AI, (FALSE) в противном случае.
i^battle_isVisible^: (TRUE), если хотя бы одна сторона является человеком и быстрая битва отключена, (FALSE) в противном случае.
i^battle_isNetwork^: (TRUE) , если это сетевая битва человека против человека, (FALSE) в противном случае.
i^battle_type^: Битная маска типа битвы: набор констант BATTLE_TYPE_FLAG_XXX.
i^battle_current_side^: Текущая/активная боевая сторона стека (BATTLE_LEFT = 0 или BATTLE_RIGHT = 1). Изменения в событиях "OnBeforeBattleStackTurn" и "OnBattleStackObtainsTurn".
i^battle_current_stack^: Текущий/активный идентификатор стека. Изменения в событиях "OnBeforeBattleStackTurn" и "OnBattleStackObtainsTurn".
i^battle_acting_stack^: идентификатор стека, выполняющего действие. Он установлен только в "OnBeforeBattleAction".
i^battle_acting_side^: Сторона (BATTLE_LEFT = 0 или BATTLE_RIGHT = 1) стека, выполняющая действие. Он установлен только в "OnBeforeBattleAction".