Quote:скрипт 76 wog - artifact boost.erm
переменная k всегда 0, потому кольцо просто не рабоает - не знаю, как такое фиксить
хм, замени переменную k на другую, проверь реакция та же?
неужели буквенные переменные похерелись?
P.S. там весь скрипт выше-ниже такую же конструкцию с k использует
Line 365 in **WoG 39 HERO SPECIALIZATION BOOST (HSB) needs to be deleted according to Panda because it can give Debug Message during the game.
Quote:скрипт 76 wog - artifact boost.erm
кольцо Дипломата, удваивающее 1лвл унитов в начале недели
Очевидно же, что быстрая переменная "k" использовалась в качестве временной глобальной в цикле !!DO607/0/6/1:P;
Решение: заменить на неиспользуемую временную v-переменную.
Berserker, очевидно?))
Но на Эре 2.9.14 проблем не было. Неужели переменные изменили своё назначение?
Есть где-то четкий список с тем, что мы имеем в итоге для использования?
Berserker, ну так я ж потому и сделал выше вариант с циклом re
daemon_n сказал, что ничего не изменилось
daemon_n, да, в Эре 3 быстрые переменные f..t стали локальными для триггера. Ранее были глобальными. Причина — их в каждом триггере используют как локальные, для временных значений и счётчиков.
В скрипте быстрые переменные поголовно используются как глобальные. Это очень плохо.
В Sublime Text можно для данного скрипта выделить все f..t переменные через поиск по следующему регулярному выражению:
Code:
\[[^\r\n]*+(*SKIP)(*F)|\*\*[^\r\n]*+(*SKIP)(*F)|;[^\r\n]*+(*SKIP)(*F)|![!#].{2}(*SKIP)(*F)|[f-t]
Преобразовал в глобальные целочисленные именованные переменные с префиксом wab_
k => i^wab_k^
i => i^wab_i^
https://dropmefiles.com/oCqrz
Berserker, спасибо! но будет ли это работать на ERM 1?
в том то и дело ,что НЕТ
igrikже сказал, что пока перевод на ERA3 не планируется.
так что там много какие скрипты должны были в итоге похериться, увы.
daemon_n, надо каждый скрипт теперь на предмет глобальности "быстрых" переменных смотреть и менять под реалии ERA3

А иначе тебя замучают багрепортами щас.
daemon_n, Bes, Berserker, а я спрашивал, что отвалится. Мне ответили - ничего, всё должно быть.
А тут такое. Список бы, что реализовано в Эра2, а то с Era2 на Era3 пока не перенесено, можно было бы самому хоть по поиску покопаться по скриптом, определить какие скрипты отвалятся.
в сборке есть папка help, где есть история изменений ERAIII, в которой все нововведения изложены

Bes, ну так это надо всё вообще досконально про erm знать, чтобы понимать, что к чему. Мне бы вариант для "тупых", которые только условно могут "кубики квадратные в квадратную дырочку вставить". Вот там есть такое:
Code:
To define a constant use the following instruction !#DC(CONSTANT_NAME) = 777; where 777 is arbitrary number.
Examples:
!#DC(PLAYER_BLUE) = 1;
!#DC(SKILL_FIRST_AID) = 27;
To use a constant simply write its name in parentheses:
!!OW:R(CURRENT_PLAYER)/(RES_GOLD)/d1000; give 1000 gold to current player
will be compiled to
!!OW:R-1/6/d1000; give 1000 gold to current player
То есть я понимаю, что
!!OW:R-1/6/d1000 стало теперь
!!OW:R(CURRENT_PLAYER)/(RES_GOLD)/d1000, вот так бы по стилю:
"
Era2 пример ---> Era3 пример теперь так", по простому.
И так по всем ерм командам бы пройтись, понять для чего не сделана компиляция между языками, чтобы через тотал-коммандер поискать по скритам...
Такого вида.
1) *** ---> ***
2) *** ---> ***
3) *** ---> ***
Хотя я думаю это слишком уж, упрощать так, в принципе потребуется работа на перелопачивание с changelog программиста на changelog for lamer =) Лан, пусть как есть, будем в процессе ловить все ошибки и баги.
Night, мы обсуждали здесь на форуме, делать ли переменные f..t локальными. Все высказались за. 99% пользы, 1% вреда из-за того, что какой-то один скрипт писал не-программист. Такой вот скрипт нашёлся в единичном экземпляре. Для его исправления качаем мою версию, а затем через поиск и замену меняем i^wab_i^ на какую-нибудь v20, i^wab_k^ на v21 и так далее, пока не станет совсем i^wab_?^. Всё, скрипт будет работать под любой версией после этого.
Если ребята не справятся, сам заменю, напишите.
Quote:То есть я понимаю, что !!OW:R-1/6/d1000 стало теперь !!OW:R(CURRENT_PLAYER)/(RES_GOLD)/d1000, вот так бы по стилю:
Так
можно, но старый подход с просто числами тоже работает. Править не нужно.
Товарищи, пробуем исправленный скрипт для всех версий Эры:
https://dropmefiles.com/cB5KC
FIXED 76 wog - artifact boost.erm
Если работает, теребим игрика с просьбой включить в мод.
Berserker, не могу скачать
Скрипт работает (на Эра 3. на Эра 2 проверьте кто-нибудь ещё

) - спасибо!