Current time: 18.04.2024, 11:30 Hello There, Guest! (LoginRegister)
Language: english | russian  

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

Posts: 4338
Post: #1096

(30.01.2020 18:45)Awesomealldays Wrote:  Хоту удалил, там мистицизм 5\10\15, поместье 250\500\1000.

Пожалуй, это ещё нормально. А вот порезанные логистика, дипломатия, сапоги, перчатки и замедление просто кричат: "SOD+WOG+плагины!!!"


Image: widget.png?style=banner2

Новейший Heroes 3 Launcher
30.01.2020 19:36
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16470
Post: #1097

(30.01.2020 18:45)Awesomealldays Wrote:  Хоту удалил, там мистицизм 5\10\15, поместье 250\500\1000.

Awesomealldays, мистицизм чем именно плох?


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

Posts: 410
Post: #1098

Заменил в Оплоте Кентавров Феями.
Подскажите, как также правильно прописать замену Кентавров на Маленьких фей и Фей в генераторе-двеллинге Конюшни Кентавров на карте.

P.S. Попробовал просто приписать Фей к двеллингу, но не хватает знаний установить 7-дневный интервал их появления в жилище.
(This post was last modified: 05.02.2020 19:23 by Sandris.)
05.02.2020 16:44
Find all posts by this user Quote this message in a reply
Ethereal Offline

Posts: 341
Post: #1099

asandris, с Тифоном это делается намного проще. Там же, в "DwTable.txt" можно и Фей к любому жилищу добавить.

Кстати у меня была такая же идея, но я от неё отказался. Феи достойны большего, чем конюшни и без перерисовки строений замков тут не обойтись. Что же касается внешних жилищ, то можно просто поменять def-ы.
(This post was last modified: 12.02.2020 12:25 by Ethereal.)
12.02.2020 12:19
Find all posts by this user Quote this message in a reply
Sandris Offline

Posts: 410
Post: #1100

(12.02.2020 12:19)Ethereal Wrote:  asandris, с Тифоном это делается намного проще. Там же, в "DwTable.txt" можно и Фей к любому жилищу добавить.

Кстати у меня была такая же идея, но я от неё отказался. Феи достойны большего, чем конюшни и без перерисовки строений замков тут не обойтись. Что же касается внешних жилищ, то можно просто поменять def-ы.
Да, спасибо. Я уже так и сделал. Ab
12.02.2020 13:04
Find all posts by this user Quote this message in a reply
Zur13 Offline

Posts: 223
Post: #1101

Может кто знает у меня в ЕРА самой новой похоже сломан сетевой код. Ситуация такая, сетевая игра, синий против красного, один из героев, надевает артефакт 170 из рюкзака руками без скриптов (проверял и вариант когда он подбирает артефакт на карте, и он сразу надевается в слот), после чего герой с надетым артефактом вступает в битву с героем второго игрока, но в битве идет рассинхрон, на одном компе артефакт надет на первом герое, а на втором компе не надет:

Code:
!?BG0&1000;
!!UN:P895/?v1;         [Check for WoG option]
!!FU&v1<>1:E;          [Exit if Option 895 is OFF]

!!BG:A?y-1;                       [y-1 action]
!!BG:H?y-2;                       [y-2 hero]
!!BG:N?y-3;                       [y-3 acting stack number]
!!BG:E?y-4;                       [y-4 target stack number (-1 if no dest stack)]
!!BG:D?y-5;                       [y-5 destination position]
!!BG:S?y-6;                       [y-6 Number of a Spell to Cast ]

!!FU&v6357>=0:E;                  [Exit if invalid reduce request (self recursion call?)]

!!VRv6357:S-1;                    [v6357 request to reduce magic damage]
!!VRv6356:S-1;                    [v6356 caster spell]
!!VRv6355:S-1;                    [v6355 caster hero side]

!!IF:M^Action: %Y-1 Spell: %Y-6 Hero: %Y-2^;

!!FU&y-1<>1:E;                    [Exit if not a Hero cast a spell action]
!!FU&y-2<0:E;                     [Exit invalid hero]

!!FU&y-6<10:E;                           [Exit if invalid spell]
!!FU&y-6<>23/y-6<>16/y-6<>21/y-6<>15:E;  [Exit if invalid spell]

*!FU&y-4<0:E;                     [Exit if no target stack]
*!FU&y-5<0:E;                     [Exit if invalid target position]

!!VRy-7:S0;                       [y-7 = 0]
!!HEy-2&y-2>=0:A2/170/?y-8/?y-7;  [y-7 number of equipped #170 hero]
!!IF:M^Action: %Y-1 Spell: %Y-6 Hero: %Y-2 ArtEquiped: %Y-7^;

В результате на компе 1 выводит ArtEquiped: 1 а на втором ArtEquiped: 0, остальные три переменные в выводе одинаковы.
(This post was last modified: 22.02.2020 13:29 by Zur13.)
22.02.2020 13:09
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16470
Post: #1102

Zur13, в ближайшем же обновлении я отключу временно изменение генератора случайных чисел. Очень важен будет твой отчёт, исправился баг или нет. Если нужно срочнее, скомпилирую код 2.9.10 без генератора и загружу быстрее.


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

Posts: 223
Post: #1103

(22.02.2020 16:02)Berserker Wrote:  Zur13, в ближайшем же обновлении я отключу временно изменение генератора случайных чисел. Очень важен будет твой отчёт, исправился баг или нет. Если нужно срочнее, скомпилирую код 2.9.10 без генератора и загружу быстрее.

Да я смогу проверить, у меня сейчас ЕРА 2.9.10 английская с HD модом 5.0 РС64 модами ВоГ и Вог скрипты и моим на комбо артефакты. Хотя я не совсем понимаю как связан генератор случайных чисел с работой ресивера

!!HEy-2:A2/170/?y-8/?y-7; [y-7 number of equipped #170 hero]

Проверял также на артефакте №128 на всякий случай, тоже самое второй ПК не знает о том что герой на первом ПК надел артефакт. Это не ситуация когда скрипт заменил артефакт на карте случайным образом на другой, это моя тестовая карта в которой артефакт прямо в редакторе положен в рюкзак герою.


Нашел еще один кусок кода который не работает в новой версии ЕРА:
Похоже что в новой версии ЕРА сломался вот этот код, y1 всегда 1, в 2.8.8 работало:
Code:
** x1 == hero id  0..155
** x2 == ?RESULT (this much free slots is in hero backpack)
!?FU23041;
!!FU&v9217<>1:E; [Exit if WoG option is not ON]

!!VRy1:S0;
!!DO23042/19/82/1:Px1/=y1/?y1;     [y1 free slots counter in x1 hero backpack]


** x1 == hero id  0..155
** x2 == this much free slots counted on previous steps
** x3 == this much free slots counted on previous steps + this step
** x16 == backpack slot 19..82
!?FU23042;
!!FU&v9217<>1:E; [Exit if WoG option is not ON]

!!VRx3:Sx2;

!!HEx1:A1/?y1/x16;      [y1 Check what artifact is in x16 slot]

!!VRx3&y1<0:Sx2+1;      [change result counter x3]
(This post was last modified: 22.02.2020 18:47 by Zur13.)
22.02.2020 16:42
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16470
Post: #1104

Quote:Да я смогу проверить, у меня сейчас ЕРА 2.9.10 английская с HD модом 5.0 РС64 модами ВоГ и Вог скрипты и моим на комбо артефакты. Хотя я не совсем понимаю как связан генератор случайных чисел с работой ресивера
Рассинхронизация может быть в другом коде, где используется VR:R. Будут разные последовательности на разных сторонах = разные события, артефакты, замены на карте.

Да, !!DO циклы оптимизированы до схожих с циклом FOR на других ЯП, подобные проверки работать не будут в !!DO/!!FU:P/!!FU:D.


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

Posts: 223
Post: #1105

Тут наткнулся на непонятную ситуацию, и единственный имеющий смысл вариант наблюдаемого поведения, это то что иногда при вызове функций, не указанные явно параметры функций не обнуляются
Code:
!!FU21020:P1/2;

!?FU21020;
* х1 == 1
* х2 == 2
* но в некоторых случаях х3 <> 0

Я сейчас не смог найти в справочнике этого, но вроде раньше где-то встречал упоминание о том что пропущенные аргументы автоматически обнуляются, там даже был пример вроде такого !!FUxxx:P1/2//4; с указанием что аргумент 3 будет считаться 0. Что-то изменилось или это относится только к явно пропущенным аргументам между "//" ?
24.02.2020 15:29
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2814
Post: #1106

Начиная с версий 2.8.4 и выше (если не ошибаюсь) обнуление x переменых в функциях убрано.
Теперь это нужно делать вручную. Да и правильнее ручное (явное) обнуление, с моей точки зрения.

Справочник начинает устаревать, но его обновление уже готовится.


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

Posts: 16470
Post: #1107

Zur13, сейчас сделано как в компилируемых языках. Только переданные параметры перезаписываются. Полагаться на значения по умолчанию нельзя много где (в Go разве что сделали инициализацию нулями по умолчанию). Рекомендую писать код и для y-переменных и для x-переменных, не рассчитывающий на что-либо конкретно. Добавится оптимизация какая, расчёт перестанет быть верным.


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

Posts: 223
Post: #1108

(24.02.2020 18:20)Berserker Wrote:  Zur13, сейчас сделано как в компилируемых языках. Только переданные параметры перезаписываются. Полагаться на значения по умолчанию нельзя много где (в Go разве что сделали инициализацию нулями по умолчанию). Рекомендую писать код и для y-переменных и для x-переменных, не рассчитывающий на что-либо конкретно. Добавится оптимизация какая, расчёт перестанет быть верным.

Да я уже понял, я просто на всякий случай уточнил, я в одном месте лажанул и забыл передать нулевой аргумент, и в функции проверки на максимальное значение этого аргумента не было, получался очень длинный цикл иногда, но у меня в тестах этого не вылезало. В большинстве других ЯП есть проверки на количество аргументов при вызове функций, обнуление помогает хотя бы сделать вызовы функций с меньшим количество аргументов детерминированными и избежать неопределенного и случайного поведения, не знаю с чем было связано такое решение, но мне кажется что тут вы поспешили с избавлением от обнуления явно не передаваемых аргументов 105
24.02.2020 22:11
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16470
Post: #1109

Zur13,
Quote:В большинстве других ЯП есть проверки на количество аргументов при вызове функций
Обижаешь Ab

Version 2.9.7
------------------------
[+] Added possibility to query function arguments count for functions, called via FU:P, FU:D, DO:P.
    New command !!FU:A?$ returns number of x-arguments (not including x16 for DO:P), received by function.
    This mechanism allows to write functions with optional parameters (parameters with default values) and
    functions with variadic arguments number.

А циклы уже вместо !!SN:G можно писать на !!re. Смотри Help\Era\era ii changelog.txt

; Clear current hero army


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

Posts: 223
Post: #1110

(24.02.2020 22:22)Berserker Wrote:  Zur13,
Quote:В большинстве других ЯП есть проверки на количество аргументов при вызове функций
Обижаешь Ab

Version 2.9.7
------------------------
[+] Added possibility to query function arguments count for functions, called via FU:P, FU:D, DO:P.
    New command !!FU:A?$ returns number of x-arguments (not including x16 for DO:P), received by function.
    This mechanism allows to write functions with optional parameters (parameters with default values) and
    functions with variadic arguments number.

А циклы уже вместо !!SN:G можно писать на !!re. Смотри Help\Era\era ii changelog.txt

; Clear current hero army

Спасибо, это реально полезно. Возможно стоит помещать актуальные примеры кода не в ченжлог, а просто в отдельные текстовые файлы чтобы оно было хотя бы сгруппировано по темам как в справочнике, вроде examples_fu.txt examples_do.txt examples_general.txt вроде это не так много работы как обновление html справочника и сравнимо с обновлением ченжлога?

И еще вопрос, а область видимости имен меток какая, внутри одного триггера, файла или вообще везде?
24.02.2020 23:44
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