Berserker, если ты про ES, то хотелось бы просто перенести все изменения WoG-скриптов оттуда в основной мод (в ЕS правились в основном баги или вносились корректировки для совместимости). Часть WoG-скриптов из ES я уже убрал, т.к. скорректированные верси ты прошлый раз добавил в WoG Scripts, в дальнейшем хочу убрать и остальные.
(22.02.2020 16:46)Berserker Wrote: [ -> ]https://dropmefiles.com/TSA9v
"!!OW" - wrong command
> ERM context in 77 wog - map rules.erm:71:10
!!OW:Tx16/?y1; [get team number if any]
x16 = 1
"!!UN" - wrong command
> ERM context in option 733 - third class.erm:49:16
!!UN:N6/3/x16/2/1; !!VRy1:Vz3; [y1 - числовое значение параметра]
x16 = 1
"!!VR" - wrong command
> ERM context in option 733 - third class.erm:54:19
!!VRz4:S^^ M1/z3/0/1; !!VRy4:Vz4;[y4 - числовое значение a-коэффициента]
y4..y8 = 3
z3 = "2433332"
z4 = "2"
и т.д.
Баг исправлен и ещё ряд улучшений. Это система кэширования разобранных ЕРМ команд, дающая +33% скорости в циклах.
Полностью запустил WoG Scripts мод без ошибок.
https://dropmefiles.com/XiFWA
Algor, я когда сравнивал через WinMerge, счёл небезопасный просто скопировать один-в-один скрипты. Где-то изменены числа, где-то здоровенные куски кода, не ясно, пользующиеся функциями и переменными из ES Scripts или нет. Потому переносил самое безопасное на мой взгляд.
Да, было бы здорово, чтобы моды друг от друга не зависели. И в будущем от !?TM1/!?TM2 тоже. Сделаем какую-нибудь общую библиотеку универсальных функций, которую можно требовать в зависимостях.
Berserker, я во всех своих скриптах где используется TM1/TM2 просто переопределяю их. Так что они вполне себе работают как с WS, так и без него.
Хм, даже странно - на этапе загрузки ошибок не вылезло

Детально потестировать не могу пока.
Ан нет, все нормально
Unknown error
> ERM context in 31 wog - creature relationships.erm:141:17
!!MA&y2<=173/y2=>0:Py2/?y4; [get HP/creature of type y2 and store in y4]
y2 = 0
Algor, а как вызывать, не подскажешь?
ERM стал строже. => не является больше синонимом >=. Думаешь, стоит разрешить?
https://dropmefiles.com/ZVZj7
Странные => и =< теперь снова синонимы >= и <=.
В этой версии прирост производительности циклов до 1.5x по сравнению с 2.9.10.
У меня 66 msec в среднем, то есть до 1 500 000 сложных операций в секунду.
Код теста:
Berserker, китайские собратья малость сетуют на частые обновления в последнее время, им не успевали адаптированную версию обновлять
Archer30 Wrote:google перевод...
- "Это должна быть самая полная и удобная версия китайского ERA. Просто Bersy обновляется очень часто, и для его обслуживания требуется много усилий."
источник
(22.02.2020 23:02)Berserker Wrote: [ -> ]Странные => и =< теперь снова синонимы >= и <=.
Мда, действительно странные. Как-то не заметил сразу.
Но ты пока все равно не расслабляйся, может еще вылезет пока свое буду тестить
(22.02.2020 23:02)Berserker Wrote: [ -> ]Код теста:
у меня на 2.9.10 с этим кодом очень большой разброс - 32..65
на последней версии - 35..63
Видимо, нужно что-то более точное для оценки.
Bes, было дело, обслуживали…

Quote:Но ты пока все равно не расслабляйся,
Расслабишься тут с тобой
Quote:у меня на 2.9.10 с этим кодом очень большой разброс - 32..65
на последней версии - 35..63
Видимо, нужно что-то более точное для оценки.
Попробую сравнить у себя с 2.9.10 из установщика.
Algor, по производительности всё верно. После переписывания ядра интерпретатора скорость выполнения теста у меня замедлилась до 100 мс, то есть 1 000 000 команд/сек. Чтобы вернуть хотя бы 66 мс пришлось попотеть. Оптимизация доступа к y/v/x по статичным индексам, кэширование разбора команд в циклах. Если использовать глобальные именованные переменные, то в 2..2.5 раз медленнее. На моём ПК порядка 571 000 команд / сек.