Current time: 22.04.2024, 01:46 Hello There, Guest! (LoginRegister)
Language: english | russian  

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

Posts: 3880
Post: #2536

(16.02.2014 02:31)fatsawhorse Wrote:  Быстро же меня уже успели раскритиковать и опять же те же самые разлюбезные лица, что и всегда! Ну в следующий раз тогда я буду приводить, как пример, неполную функцию, а её только часть, где и возникает сомнение, во избежание подобных недоразумений.
Не заводись. Ни у кого нет цели цепляться к коду. Просто чтобы найти, что не работает, нужно для начала понять 2 вещи: как должно работать и как работает сейчас. И если первое можно и нужно описывать словами, то для второго необходим анализ кода, который весьма затруднен, когда в коде мусор (неиспользуемые/нерабочие вещи как в случае с "&y10>20/y10<5").

Вкратце по первому скрипту:

*** следующее действует только если атакует защищающийся герой. Так и должно быть?
!!BG:Q?y19;
!!FU&y19=0:E; убеждаемся, что это не ход нашего героя
!!BG:N?y20; берем номер отряда, чей сейчас ход
!!BMy20:N/?v2787; запоминаем монстров
!!VRy21:Sv2787*80:100; уничтожаем всех монстров
!!VRy18:Sv2787-y21; Формула уничтожения монстров
*** Эта стока не работает. Должно быть !!BMy20:Ndy18
!!BMy20:Nd/y18; устанавливаем полученный результат
*** причем, если численность существ надо уменьшать (подозреваю, что так), то вместо
!!VRy18:Sv2787-y21; Формула уничтожения монстров
*** нужно указать
!!VRy18:Sy21-v2787; Формула уничтожения монстров
*** чтобы y18 оказалась отрицательной и вычлась из текущей численности отряда в !!BMy20:Ndy18
*** и после изменения численности отряда надо бы !!BU:R делать
*** Следующий код тоже фактически бесполезен в текущем варианте. Как скорее всего должно быть - см. ниже про метки.
!!VRv2788:S1; ставим переменную-метку для следующего триггера
!?BG1&v2788=1; триггер после атаки(если стоит метка)
!!VRv2788:S0; сбрасываем метку

(16.02.2014 02:31)fatsawhorse Wrote:  Говоря простым языком в народе: всё срабатывает одновременно, а хочется сделать (поставить) у каждой функции отдельное срабатывания от остальных двух имеющихся функций!
Функции срабатывают не одновременно, а последовательно. И, собственно, в коде ничто не запрещает им всем по очереди срабатывать. Подозреваю, строки типа
!!VRv2788:S1; ставим переменную-метку для следующего триггера
должны были выполнять роль ограничителя (если есть метка, следующая функция не срабатывает), но этого нигде не прописано.
Сделать можно было например так:

***для второй функции
!?BG0&v2788=0; /до атаки, если первая метка не установлена

***для третьей функции
!?BG0&v2788=0/v2790=0; /до атаки, если ни первая, ни вторая метки не установлены


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
16.02.2014 03:48
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #2537

(16.02.2014 01:50)Bes Wrote:  gamecreator, самое интересное, это откуда вообще в y10 попадают значения... переменная возникает из воздуха...
Аргх, он уже удалил тот код. Но я помню что ясно видел там !!VRy10:S0 R99;

(16.02.2014 02:31)fatsawhorse Wrote:  Быстро же меня уже успели раскритиковать и опять же те же самые разлюбезные лица, что и всегда!
Да успокойся, никто тебя не трогает. Мне просто было интересно, может я что не так понял. Думал может местные гуру развеют сомнения.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
16.02.2014 03:52
Find all posts by this user Quote this message in a reply
fatsawhorse Offline

Posts: 1012
Post: #2538

Quote:Аргх, он уже удалил тот код. Но я помню что ясно видел там !!VRy10:S0 R99;
- да, была эта строчка, но она опять же никак не влияет на само событие, так как с ней оно (это событие) работает должным образом, так, как и должно работать с моей установкой... У меня много событий сделано подобным способом и все прекрасно срабатывают друг за другом, как и должно быть по моим установкам, но также и никак не пересекаются друг с другом (так тоже должно быть).. Всё работает прекрасно и поэтому само тело тригера я стараюсь не трргать, а только экспериментировать с ресивером..

Quote:Да успокойся, никто тебя не трогает. Мне просто было интересно, может я что не так понял. Думал может местные гуру развеют сомнения.
- Вы скорее всего правильно поняли и может как раз быть также ошибка в этих строчках !!VRy10:S0 R99; и в других, но они, самое главное, - работают и меня это устраивает (они все свою функцию выполняют, по крайней мере, как я заметил).

Quote:Не заводись. Ни у кого нет цели цепляться к коду. Просто чтобы найти, что не работает, нужно для начала понять 2 вещи: как должно работать и как работает сейчас. И если первое можно и нужно описывать словами, то для второго необходим анализ кода, который весьма затруднен, когда в коде мусор (неиспользуемые/нерабочие вещи как в случае с "&y10>20/y10<5").
- спасибо Вам "Algor" за детальную подсказку.. Уберу весь лишний мусор с кода!

Quote:*** следующее действует только если атакует защищающийся герой. Так и должно быть?
- да, я к этому и стремился, что если только враг атакует меня, то получает полный пакет начинки, а в случае, если он ожидает хода или не ходит, то остаётся целёхоньким..


Quote:Функции срабатывают не одновременно, а последовательно. И, собственно, в коде ничто не запрещает им всем по очереди срабатывать. Подозреваю, строки типа
!!VRv2788:S1; ставим переменную-метку для следующего триггера
должны были выполнять роль ограничителя (если есть метка, следующая функция не срабатывает), но этого нигде не прописано.
- понятно.. Я как раз не вдавался в более мелкие подробности с этими строчками, но если же это так на самом деле, то прекрасно будет..

Quote:Подозреваю, строки типа
!!VRv2788:S1; ставим переменную-метку для следующего триггера
должны были выполнять роль ограничителя (если есть метка, следующая функция не срабатывает), но этого нигде не прописано.
- Да, именно так - эти строки вообще не ограничивают действие скрипта, вернее не останавливают его и поэтому он, как я думаю, прикрепляется к действию второго и третьего и они друг за другом срабатывают последовательно - это, конечно, ужас полнейший.. Ведь так вражеский противник много не проживёт...

А можно ли у Вас ещё уточнить "Algor": если я поставлю переменные на вторую и третью функции
, то первая будет оставаться по-прежнему с нулём? Тогда она будет всегда срабатывать совместно с третьей и второй функциями. Как я понимаю этот алгоритм действия: вторая зависит от первой, а третья, в свою очередь, от первой и второй. Выходит первая функция не зависит не от чего и может прицепиться к любой из нижеприведённых? - тогда плохи дела.. Если у меня ещё у каждой функции из трёх стоит свой шанс срабатывания на каждую абилку, да ещё в добавок будет тригер !?BG0; с переменными ограничивать будет..

На данный момент у меня при аналогичной постановке
, а первоя функция взята без изменений !?BG0; работает следующим образом:

С большим шансом срабатывания первая функция единственная активируется, но при маленьком шансе срабатывания второй и третьей - так и должно быть, скажем всё в порядке;
С мизерным шансом срабатывания первой функции и с большим шансом второй, например - срабатывает вторая функция без третьей, но затем следует и первая функция, добивая при этом врага до смерти
Тертья с большим шансом равна тому, что указано во-второй с большим шансом..
(This post was last modified: 16.02.2014 13:58 by fatsawhorse.)
16.02.2014 12:11
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2814
Post: #2539

Абсолютно не "въехал" в последний абзац, но что мешает сделать так?


game bug fixes extended.dll || My Plugins || My GitHub
16.02.2014 23:57
Visit this user's website Find all posts by this user Quote this message in a reply
fatsawhorse Offline

Posts: 1012
Post: #2540

Quote:Абсолютно не "въехал" в последний абзац, но что мешает сделать так?
- наверное то, что у меня три разных существа, активирующие каждый своё событие, а не одним монстр. Идёт проверка на наличие артефакта, в отсутствие которого скрипт работать просто-напросто не должен. Активируют это событие они только тогда, когда нанесут противнику урон и каждое существо со своим личным шансом срабатывания может активировать только свою функцию, но не чужую...
(This post was last modified: 17.02.2014 01:17 by fatsawhorse.)
17.02.2014 01:08
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2814
Post: #2541

Ну так а где эти проверки на монстра и на артефакт, на шанс абилки в теле триггера BG0?!! Именно поэтому способности и срабатывают всегда и все поочереди.


game bug fixes extended.dll || My Plugins || My GitHub
17.02.2014 01:42
Visit this user's website Find all posts by this user Quote this message in a reply
fatsawhorse Offline

Posts: 1012
Post: #2542

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

На данный момент у меня следующая ситуация:

Но, что-то всё равно не работает..
(This post was last modified: 21.02.2014 00:01 by fatsawhorse.)
17.02.2014 16:09
Find all posts by this user Quote this message in a reply
fatsawhorse Offline

Posts: 1012
Post: #2543

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

Кто может подсказать: у меня армия занимает все стеки (стандартные семь стэков). Чудовище-привидение находится, предположительно где-то в середине, но никак не на первом стеке. После нанесения удара чудовищем-привидением активируется скрипт. Срабатывает он прекрасно, но почему-то всегда при его срабатывании, в самом описании, урон наносит только первый стек, а не тот, кто удар производит... Почему так? Ведь в скрипте есть и проверка на монстра и тем более на его количество.. Что может быть не так?

Скрипт, где чудовище-привидение мгновенно убивает весь отряд противника после атаки
(This post was last modified: 20.02.2014 23:56 by fatsawhorse.)
20.02.2014 23:51
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #2544

а разве в WoG команда MF:N не выдаёт "мусор"?
(вопрос к знатокам темы...)
21.02.2014 20:21
Visit this user's website Find all posts by this user Quote this message in a reply
Anfis Offline

Posts: 77
Post: #2545

Реально как-нибудь сделать событие на карте исключительно для компьютера? Речь не идёт о компьютере с фиксированной позицией города в начале игры, это как раз и в обычном редакторе можно сделать. Смысл в том, что бы в зависимости от каких-то условий сделать так, чтоб можно было усилить копмьютер при помощи события - дать артефакт, мораль, существ не из замка и т.д.
(This post was last modified: 23.02.2014 20:18 by Anfis.)
23.02.2014 20:12
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #2546

А в чём проблема? Флаг 1000 определяет, ходит сейчас компьютер или нет.


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

Posts: 77
Post: #2547

(23.02.2014 20:17)Berserker Wrote:  А в чём проблема? Флаг 1000 определяет, ходит сейчас компьютер или нет.

Да пока как-то не особо получается%)

(This post was last modified: 23.02.2014 21:42 by Anfis.)
23.02.2014 21:32
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #2548

Тогда HE-1:O для получения владельца текущего героя и OW:I для того, чтобы выяснить, ИИ ли владелец.


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

Posts: 2814
Post: #2549

Quote:... в самом описании, урон наносит только первый стек...
потому что параметру x1 не присвоен стек монстра, из-за чего x1 всегда равно нулю, а стек под номером 0 это первый монстр левого героя
отсюда:
так неправильно

так правильно


game bug fixes extended.dll || My Plugins || My GitHub
24.02.2014 03:06
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #2550

Так тогда просто 20 раз проверится один и тот же стек. Может там х16 должно быть?


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
24.02.2014 03:58
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