16.02.2014, 03:48
(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; /до атаки, если ни первая, ни вторая метки не установлены