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

Post Reply 
Threaded Mode | Linear Mode
Вопросы по моддингу
» (обсуждаем моддинг здесь)
Author Message
totkotoriy Offline

Posts: 873
Post: #901

А как этот флаг передать? Нигде не нашёл...
Спасибо, но это для меня сложно :\
Структуру стека видел, но нет команды для завершения действия стека...


Ты роешься в моих паках, но ты делаешь это без уважения...
(This post was last modified: 04.03.2018 08:09 by totkotoriy.)
04.03.2018 07:51
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #902

(04.03.2018 07:51)totkotoriy Wrote:  А как этот флаг передать? Нигде не нашёл...
Спасибо, но это для меня сложно :\
Вообще ничего сложного
  1. !!BM<stack>:F?i; [получаем флаги стека]
  2. !!VRi:|67108864; [ActiveStack->Flags | 0x4000000]
  3. !!BM<stack>:Fi; [установить, что стек совершил действие в бою]
  4. !!UN:C6919200/4/?y10; [комбат мэнеджер o_BattleMgr]
  5. !!VRy1:S<stack> *1352 +21708 +y10; [получить структуру стека ActiveStack]
  6. !!VRy2:Sy1 +1168; !!UN:Cy2/4/0; [ActiveStack->StepsTaken = 0];
(04.03.2018 07:51)totkotoriy Wrote:  Структуру стека видел, но нет команды для завершения действия стека...
Команды завершения действия как таковой вроде нет. Для этого и есть флаг "совершил действие"


game bug fixes extended.dll || My Plugins || My GitHub
04.03.2018 11:09
Visit this user's website Find all posts by this user Quote this message in a reply
totkotoriy Offline

Posts: 873
Post: #903

Точно, BM:F, как я мог пропустить?! Спасибо.
Никаких изменений, скорее всего надо убивать существо немного раньше чем в BG1.

А что за знак ИЛИ перед значением флага !!VRi:|67108864;? Что эта функция тут означает? Я так понял добавляет только нужный бит.
Но изменения есть, если только вообще этот бит один оставляю !!VRi:S67108864; (оруженосец перемещается только на одну клетку).

Поменял в скрипте оруженосца А3 на А12... пока вроде глюков нет. Посмотрим...
!!BG&v7207=v7210/v7211=0:A12; [if dead henchman is next set to defend - attacker]
!!BG&v7208=v7210/v7212=0:A12; [if dead henchman is next set to defend - defender]


Ты роешься в моих паках, но ты делаешь это без уважения...
(This post was last modified: 04.03.2018 15:26 by totkotoriy.)
04.03.2018 12:47
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #904

(04.03.2018 12:47)totkotoriy Wrote:  А что за знак ИЛИ перед значением флага !!VRi:|67108864;? Что эта функция тут означает? Я так понял добавляет только нужный бит.
Да, так ты добовляешь только нужный бит, не трогая другие.
(04.03.2018 12:47)totkotoriy Wrote:  Но изменения есть, если только вообще этот бит один оставляю !!VRi:S67108864; (оруженосец перемещается только на одну клетку).
А вот так ты заберешь все способности монстра, например полёт, духклеточность, стрельбу, двойной удар и т.п.

Вообще для ERMа тебе нужно знать и понимать всего 2 оператора: & и |
1. Проверка на способность:
  1. !!VRi:&2; проверить может ли монстр летать
  2. !!IF&i=0:M^Не может летать^;
  3. !!IF&i=1:M^Может летать^;

2. Установить или забрать флаг:
а) установить:
  1. !!VRi:|2 |65536; дать монстру способность летать (2) и дать безответку (65536)
б) забрать способность (дословно - сначала дать, а потом забрать)
  1. !!VRi:|2 -2; сначала дать, а потом забрать полёт
  2. !!VRi:|65536 -65536; сначала дать, а потом забрать безответку

Если всё суммировать, то например благородный эльф имеет такие флаги:
  1. !!VRi:|4 |16 |32768; стреляет, живой, двойной удар


game bug fixes extended.dll || My Plugins || My GitHub
04.03.2018 15:45
Visit this user's website Find all posts by this user Quote this message in a reply
totkotoriy Offline

Posts: 873
Post: #905

Спасибо! В справке по ERM такого не смог найти


Ты роешься в моих паках, но ты делаешь это без уважения...
04.03.2018 18:40
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5459
Post: #906

(04.03.2018 15:45)igrik Wrote:  Вообще для ERMа тебе нужно знать и понимать всего 2 оператора: & и |
ну, в идеале бы и операцию "исключающее Или" бы знать... X. Не знаю чем она большинству бывалых не нравится. Сразу отпадает двойные операции типа "сначала дать, если нет, а потом забрать"
Например, инвертировать переменную часто нужно
Code:
!!VRv1:X1; если ноль, будет один, и наоборот
Или перевести номера от вида [0..40] к [-1..-41]
Code:
!!VRv1:Sx16 X-1;
Ну и с флагами монстров тож удобнее... где-то тут на форуме эти примеры уже писали...

totkotoriy Wrote:В справке по ERM такого не смог найти
есть, см.ресивер VR, там вначале страницы есть "логические операции"
04.03.2018 20:58
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #907

(04.03.2018 20:58)Bes Wrote:  ну, в идеале бы и операцию "исключающее Или" бы знать... X. Не знаю чем она большинству бывалых не нравится.
В части работы с флагами монстров тем, что ее результат без доп. проверок не гарантирован.
Т.е. "&" "|" и комбинация "| -" всегда гарантированно проверяют, дают или убирают флаг, не зависимо от того, какой был до этого, "X" - нет.

Вроде тоже обсуждалось уже...


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
04.03.2018 22:05
Visit this user's website Find all posts by this user Quote this message in a reply
UrbanCAESAR Offline

Posts: 12
Post: #908

Захотелось мне перерисовать интерфейс на свой лад, возникает вопрос, в основном к создателям New interface mod'а. Вы каждую кнопку отдельно ковыряли из файлов игры, или есть какой-то комплексный вариант?


nobody.one
08.04.2018 15:21
Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #909

UrbanCAESAR, моды - вещь достаточно открытая. Можно взять New interface mod и посмотреть его содержимое - там как раз только то, что менялось.


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
08.04.2018 16:58
Visit this user's website Find all posts by this user Quote this message in a reply
UrbanCAESAR Offline

Posts: 12
Post: #910

Algor, я думал об этом, но в моём виденье намного проще перерисовывать оригинальные кнопочки меняя основной цвет и добавляя детали. Так что пожалуй начну мало помалу выдирать кнопочки.


nobody.one
08.04.2018 17:35
Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #911

UrbanCAESAR, посмотрев содержимое мода можно получить список ресурсов, которые Вы хотите переработать. А брать их из этого мода или из оригинала, тут уж сами смотрите, как удобнее.


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
08.04.2018 18:05
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #912

Интересует одна вещь - срабатывание морали.
Когда срабатывает мораль, отряд получает дополнительный ход, без срабатывания триггеров регенерации/получения хода следующим отрядом и смены раунда. При этом отрабатывает BG1.
Хотелось бы получить возможность принудительно заморалить отряд, но без анимашки и записей в лог про высокий боевой дух. Или как-то иначе реализовать процесс двойного хода с соблюдением вышеуказанного поведения триггеров. Если решение покорежит стандартную мораль - не критично.
Это убрало бы ряд проблем в BattleHeroes.


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
21.04.2018 18:34
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #913

(21.04.2018 18:34)Algor Wrote:  Интересует одна вещь - срабатывание морали.
Когда срабатывает мораль, отряд получает дополнительный ход, без срабатывания триггеров регенерации/получения хода следующим отрядом и смены раунда. При этом отрабатывает BG1.
Хотелось бы получить возможность принудительно заморалить отряд, но без анимашки и записей в лог про высокий боевой дух. Или как-то иначе реализовать процесс двойного хода с соблюдением вышеуказанного поведения триггеров. Если решение покорежит стандартную мораль - не критично.
Это убрало бы ряд проблем в BattleHeroes.
А чем не нравится? В теме по UN:C есть...
  1. ; сделать стек активным.
  2. !!UN:C6919200/4/?y10;
  3. !!SN:E4607760/2/y10/[сторона (0...1)]/[номер стека у этой стороны (0...20)];
Но учти, что проверка на плохую мораль, устрашнуться, и фаза регена тут уже не проверяются. Также игнорируются ослепление, паралич и оцепенение (т.е. монстр под этими спелами будет активным и им можно будет управлять).


game bug fixes extended.dll || My Plugins || My GitHub
23.04.2018 15:59
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #914

igrik, в какой момент мне делать стек активным?
Мне нужно чтобы после одного хода (каст) отряд получил еще один ход и при этом НЕ начался новый раунд и НЕ отработали триггеры регенерации и получения хода другого отряда.
Или я замылился и торможу, а ответ очевиден?


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
23.04.2018 19:37
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #915

(23.04.2018 19:37)Algor Wrote:  igrik, в какой момент мне делать стек активным?
Мне нужно чтобы после одного хода (каст) отряд получил еще один ход и при этом НЕ начался новый раунд и НЕ отработали триггеры регенерации и получения хода другого отряда.
Или я замылился и торможу, а ответ очевиден?
Нет с пропуском BG1, 77006, 77007 ответ не так прост был...
Вот решение:
  1. ; RepeatRun - переменная повторения хода стека
  2. ; 0 - отлк., 1 - вкл.
  3. !#SN:W^RepeatRun^/0;
  4. !?FU(SetRepeatRun);
  5. !!SN:W^RepeatRun^/?y1;
  6. !!FU&y1<>1:E;
  7. ; обновляем сетку
  8. !!UN:C6919200/4/?y2;
  9. !!SN:E4797616/2/y2/0/1;
  10. !!BU:R;
  11. ; пропускам передачу хода
  12. !!SN:X?y1/0;
  13. !!VRy1:+32;
  14. !!UN:Cy1/4/4607736;
  15. ; и если надо - обнуляем переменную
  16. !!SN:W^RepeatRun^/0;
  17. !?PI; &GM0
  18. !!SN:L^EraPlugins\erm_hooker.era^/?y1;
  19. !!FU&y1=0:E;
  20. !!SN:Ay1/^SetHook^/?y2;
  21. !!SN:Ey2/1/4607082/(SetRepeatRun);
  22. *** end

Т.е. как ты уже понял, тебе остается только оперировать одной переменной W^RepeatRun^ например в триггере BG0:
- нужно сделать повтор хода - включаешь переменную (1)
После первого повторного хода переменная обнуляется (см.строку 17) и включается обычный режим.


game bug fixes extended.dll || My Plugins || My GitHub
24.04.2018 12:42
Visit this user's website 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-2025 MyBB Group