Current time: 23.04.2024, 21:02 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Ваши вопросы по ERM-скриптам
Author Message
Berserker Offline
Administrators

Posts: 16488
Post: #7651

Это флаги переменной i^battle_type^. Но удобнее конкретные флаги тестировать, обращаясь к другим глобальным переменным:
Code:
[+] The following improvements were introduced in "Era Erm Framework" mod:
  
  - "OnBeforeBattle" and "OnBeforeBattleUniversal" events were improved, storing most of prebattle parameters in global variables.
  i^battle_isQuick^:       (TRUE) if quick battle is enabled, (FALSE) otherwise
  i^battle_x^:             Battle x-coordinate
  i^battle_y^:             Battle y-coordinate
  i^battle_z^:             Battle z-coordinate
  i^battle_owner_0^:       Left side owner or (NO_OWNER)
  i^battle_owner_1^:       Right side owner or (NO_OWNER)
  i^battle_hero_0^:        Left side hero or (NO_HERO)
  i^battle_hero_1^:        Right side hero or (NO_HERO). Any negative value is normalized into (NO_HERO)
  i^battle_ai_0^:          (TRUE) if left side is controlled by AI, (FALSE) otherwise.
  i^battle_ai_1^:          (TRUE) if right side is controlled by AI, (FALSE) otherwise.
  i^battle_human_0^:       (TRUE) if left side is controlled by human, (FALSE) otherwise.
  i^battle_human_1^:       (TRUE) if right side is controlled by human, (FALSE) otherwise.
  i^battle_remote_0^:      (TRUE) if left side is controlled by remote human, (FALSE) otherwise.
  i^battle_remote_1^:      (TRUE) if right side is controlled by remote human, (FALSE) otherwise.
  i^battle_local_0^:       (TRUE) if left side is controlled by local human or AI, (FALSE) otherwise.
  i^battle_local_1^:       (TRUE) if right side is controlled by local human or AI, (FALSE) otherwise.
  i^battle_localHuman_0^:  (TRUE) if left side is controlled by local human, (FALSE) otherwise.
  i^battle_localHuman_1^:  (TRUE) if right side is controlled by local human, (FALSE) otherwise.
  i^battle_hasHuman^:      (TRUE) if least one side is controlled by human, (FALSE) otherwise.
  i^battle_humanOnly^:     (TRUE) if all sides are controlled by humans, (FALSE) otherwise.
  i^battle_aiOnly^:        (TRUE) if all sides are controlled by AI, (FALSE) otherwise.
  i^battle_isVisible^:     (TRUE) if at least one side is human and quick battle is off, (FALSE) otherwise.
  i^battle_isNetwork^:     (TRUE) if it's network human vs human battle, (FALSE) otherwise.
  i^battle_type^:          Battle type bit mask: a collection of BATTLE_TYPE_FLAG_XXX constants.
  i^battle_current_side^:  Current/active stack battle side (BATTLE_LEFT = 0 or BATTLE_RIGHT = 1). Changes in "OnBeforeBattleStackTurn" and "OnBattleStackObtainsTurn" events.
  i^battle_current_stack^: Current/active stack ID. Changes in "OnBeforeBattleStackTurn" and "OnBattleStackObtainsTurn" events.
  i^battle_acting_stack^:  ID of stack, performing action. It's set in "OnBeforeBattleAction" only.
  i^battle_acting_side^:   Side (BATTLE_LEFT = 0 or BATTLE_RIGHT = 1) of stack, performing action. It's set in "OnBeforeBattleAction" only.

  - i^battle_round^ keeps current valid round and can be used throughout battle triggers and in OnBattleRound condition
  like !?FU(OnBattleRound)&i^battle_round^=0 instead of v997.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
10.01.2021 23:47
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4338
Post: #7652

Вот проблемка есть с OnKeyPressed. Как исключить её срабатывание в чате?

И ещё вопрос. Как клавише присвоить возможность нажать кнопку интерфейса?


Image: widget.png?style=banner2

Новейший Heroes 3 Launcher
11.01.2021 00:22
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #7653

daemon_n, второе — через эмуляцию щелчка, конкретный код не подскажу. Если при создании элемента не задана его горячая клавиша изначально.

Первое уже порядком надоело мне. Костыльный метод: обрабатывать OnChat событие Эры, запоминать вход в чат, выход из чата. Игнорировать нажатия клавиш, пока в чате.
Альтернатива — я сделаю то же самое для любых клавиш в Эре 3.3. Пока активно поле ввода, никакой обработки скриптами. Кто что думает?


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
11.01.2021 01:33
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4338
Post: #7654

Отлично, уже что-то)

а что касается клавиш, костыль уже неплохой, к слову.

Дальше моя голова уже не варит - с утра за ERM сижу, но вот что давненько красуется в сборке by igrik Rolleyes


Image: widget.png?style=banner2

Новейший Heroes 3 Launcher
11.01.2021 03:16
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #7655

Ой какой древний ужас )
Code:
[+] 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!^;


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
11.01.2021 14:52
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4338
Post: #7656

Berserker, ага... Но только этот "древний ужас" отлично работает с чатомYes

Видел эти триггеры! За них отдельное спасибо, на них уже переехал почти,

Но вот функции типа "OnChatLeave" я не нашёл102
(UPD: нашёл, что OnChat срабатывает 2 -3 раза.
1 - при входе в чат
2 - при отправке сообщения
3 - при выходе из чата
Но!

Выход из чата на esc или отправка сообщения клавишами F1..8 (пршептать) не тригеррит OnChat 3-ий раз. Так что костыль будет с костылями)

P.S.: Нашёл-таки только что возможность нажать новые клавиши интерфейса - .btn файл.

Ирония в том, что она работает под теми же кодами клавиш, что и "древний ужас" 96-copy


Наблюдаются жутчайшие тормоза без HD мод, когда печатаешь в бою.

При этом OnChat срабатывает 1 раз - только при отправке сообщения.
Какие-то там явно проблемы. Тут пока даже костыли не помогут.


Image: widget.png?style=banner2

Новейший Heroes 3 Launcher
11.01.2021 15:07
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #7657

OnChat первым параметром передаёт подтип события. Вторым — адрес введённого текста, если не ошибаюсь.
Кнопки F1..F12 никогда не отправляли у меня сообщений, повторить ни в чате, ни вне его не удалось.

Выход из чата по ESC генерирует событие с x1=2, там всё в порядке и отслежается давно ещё в моде Quick Savings.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
11.01.2021 16:32
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4338
Post: #7658

Berserker, нажми "tab", чтобы открыть чат.
Введи что-нибудь и нажми F1-F8, чтобы "прошептать" в личку любому игроку.


Image: widget.png?style=banner2

Новейший Heroes 3 Launcher
11.01.2021 16:40
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #7659

Странно, при нажатии на TCP/IP у меня вылет с HD-модом, ранее нормально работала игра по локалке.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
11.01.2021 17:01
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4338
Post: #7660

Berserker, не нужна локалка - это работает и в одиночной игре.


Image: widget.png?style=banner2

Новейший Heroes 3 Launcher
11.01.2021 17:03
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #7661

Шёпот генерирует событие выхода из чата, всё нормально. Да, обычный ввод не генерируется (подсобытие 1).


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
11.01.2021 17:05
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4338
Post: #7662

Berserker, а как его поймать, "это событие"?

Это и есть x1=2?


Image: widget.png?style=banner2

Новейший Heroes 3 Launcher
11.01.2021 17:07
Visit this user's website Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4338
Post: #7663

(11.01.2021 17:01)Berserker Wrote:  Странно, при нажатии на TCP/IP у меня вылет с HD-модом, ранее нормально работала игра по локалке.

брандмауэр или "directplay"


Image: widget.png?style=banner2

Новейший Heroes 3 Launcher
11.01.2021 17:15
Visit this user's website Find all posts by this user Quote this message in a reply
fatsawhorse Offline

Posts: 1012
Post: #7664

Здравствуйте..

Когда начал позавчера перебрасывать некоторые готовые скрипты в уже доработанную карту, столкнулся с такой проблемой, которая поставила меня в тупик!

Вопрос:
Как можно вставить ERM-скрипт в карту, если этот скрипт должен работать 4 года, тем самым когда сама карта максимум 672 дня поддерживает (около 2 лет)? Что мне делать в этом случае? Почему так мало держат свойства событий карты?
Внедрите такое новшество в будущем, чтобы события карты держали максимум 9999 дней вместо 672 (лично я предпочитаю только через свойства карты работать со скриптами и вставлять их в события, чтобы не множить ненужные файлы в большом количестве. Если к примеру потеряется документ со скриптом, то карта без него не будет рабочая, а так скрипт будет вшит в саму карту как цельный отдельный файл)?

Я, например, делаю карту на 5 лет минимум! Там будут и задания, локальные события, миссии и т. д. Мне просто надо иметь такую расширенную способность!
Мне не устраивает вариант множить текстовик с картой и таскать с собой два файла (файл карты и файл документа со скриптами). Удобнее иметь цельный запечатанный файл уровня с уже вшитыми в события карты кодами, а там не позволяет 672 дня это внедрить!
Таймер держит спокойно 9999 дней, а может даже ещё и больше и прекрасно работает с ними (тестировал без событий карты с рядом имевшимся документом до 3 лет), но события карта то нет! А почему нельзя и события самой карты также расширить?

Я считаю, что если ребята вносят многие изменения в игру, то внесите и эти! Пусть будут расширены возможности карты, а то 1,8 месяцев - это вообще не серьёзно для огромных карт, а даже просто-напросто нелепо и смешно (особенно, когда в карте будет два уровня, будут проблемы с ходами (передвижение будет значительно уменьшено) и герои-игроки не будут иметь полёта, двери в измерение и горпортала, а обшарить при этом надо суметь каждый закоулок этой огромной карты внизу и вверху)!

Не понимаю, что делать мне сейчас с этой проблемой (если в 2 года всё вписать, то будет хаос в карте)?
(This post was last modified: 11.01.2021 17:18 by fatsawhorse.)
11.01.2021 17:18
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #7665

daemon_n, в справке по Эре 1.5 есть описание события OnChat.
x1 = 0 - вход в чат
x1 = 1 - вывод сообщения (глобально)
x1 = 2 - выход из чата


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
11.01.2021 17:49
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group