Wake of Gods Forum | Форум Во Имя Богов

Full Version: Мод "WoG Scripts"
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
Quote:скрипт 76 wog - artifact boost.erm
переменная k всегда 0, потому кольцо просто не рабоает - не знаю, как такое фиксить
хм, замени переменную k на другую, проверь реакция та же?
неужели буквенные переменные похерелись?



P.S. там весь скрипт выше-ниже такую же конструкцию с k использует
Bes, не сработало
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, ну так я ж потому и сделал выше вариант с циклом re4
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 не планируется.
так что там много какие скрипты должны были в итоге похериться, увы. Kap

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

И так по всем ерм командам бы пройтись, понять для чего не сделана компиляция между языками, чтобы через тотал-коммандер поискать по скритам...
Хотя я думаю это слишком уж, упрощать так, в принципе потребуется работа на перелопачивание с 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 проверьте кто-нибудь ещё96-copy ) - спасибо!
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
Reference URL's