https://dropmefiles.com/nl4VE
Завезли проверку строковых литералов ^...^ и именованных строковых глобальных переменных s^^ в условия триггеров и ресиверов. Дело за константами и внедрение ЕРМ 2.0 можно считать завершённым.
https://dropmefiles.com/XTxSZ
Реализована поддержка глобальных именованных констант, подставляемых во время прекомпиляции ERM.
Имена констант отличаются от функций тем, что обязаны состоять из "A".."Z", "0"-"9", "_". А имена функций не должны быть корректными именами констант.
Ребята, есть проблема. Быстрые переменные f..t глобальные. Их использование + вызов функции/события может стать источником багов.
Предложение — сделать их локальными.
Berserker, готовиться к потоку нерабочих модов?
Berserker, реально, пытаясь уйти от вероятных будущих багов ты породишь таким решением кучу багов из прошлого... да, стандартные скрипты то можно исправить, но что делать с многочисленными сторонними скриптами и модами?
ой не знаю...
Bes, а есть где примеры, чтобы временные переменные использовали в качестве глобальных? Везде, где я видел, они как замена y1..y100.
(23.02.2020 08:20)Berserker Wrote: [ -> ]Bes, а есть где примеры, чтобы временные переменные использовали в качестве глобальных? Везде, где я видел, они как замена y1..y100.
поддерживаю. Нужно пробовать. Я тоже не видел их глобальными.
+1, я их всегда рассматривал как аналог (v1-v10), со всеми вытекающими.
Berserker, ты вообще спишь?
когда f..t используют в последовательности инструкций, это считается как глобальность? я всегда считал что да... да, там они вроде как временные, но ведь локальные уже не передадут значение из одной инструкции в другую? верно?
такие манипуляции встречаются в стандартных скриптах WoG, как минимум. А значит кто-то где-то на сторое тож мог такой приём взять в практику
Я не знаю правильно ли я выбрал тред для моего вопроса/предложения как пойдет. В общем пока я работал над модом мне очень не хватало одной возможности ЕРМ довольно очевидной, возможность правильно снять артефакт с героя чтобы была возможность указать слот из которого его снять ( идеально было бы иметь возможность указать варианты: положить его в рюкзак или удалить совсем).
Под правильно я понимаю снятие артефакта со срабатыванием всех тригеров !?AE для него, с обработкой удаления добавляемого им заклинания (если он помечен как добавляющий заклинание через !!UN:A#1/8/1) и если артефакт помечен как результат сборного артефакта через !!UN:A#1/4/<номер сборника> снять его замочки (только если они присутствуют).
Может я что-то пропустил и такой функционал уже есть, но чтобы вы могли понять весь трагизм ситуации для того чтобы снять 1 артефакт сейчас я делаю:
1. Проверить сколько копий артефактов надето на герое и сколько у него всего копий этого артефакта.
2. Удаляю все копии артефакта через !!HE#:A-, потому что у других функций в справочнике указаны разные баги с ними связанные, эта выглядит наиболее подходящей.
3. В героях с незапамятных времен остался баг, если в окне просмотра героя в рюкзаке осталась "дырка" после удаления артефакта (в слотах рюкзака есть артефакты слева и справа от пустого слота), и в рюкзаке осталось всего 2 свободных слота, пользователь может поломать героя сняв и положив в рюкзак 3 артефакта (если он будет ложить в рюкзак снятые артефакты справа от пустого слота). Идет какое-то повреждение памяти и после этого в рюкзак героя больше невозможно ложить артефакты.
4. Для фикса предыдущего пункта, запускаю здоровенный цикл который, удаляя и добавляя артефакты из рюкзака, закрывает эти дыры.
5. Команда !!HE:А- возможно имеет баг при удалении артефакта, который был помечен как результат сборного артефакта, но потом отключен через !!UN:A#1/4/-1 и через !!UN:A#1/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0 , из слота екипировки героя появляются замочки на слотах сборника (замочков до этого на слотах не было)
6. Для фикса предыдущего пункта с появившимися замками, запускается код от igrik, который удаляет замки со всех слотов героя
7. Добавляю нужное количество копий артефакта в рюкзак героя
Algor, со сном были проблемы, но, думаю, наладится.
Bes, локальные в смысле для инструкций своя копия, для каждого триггера своя. Нельзя присвоить значение в одном триггере и в новом событии его испортить. А глобальная память работает так. Изменил в любом месте, считал то же значение в любом месте.
igrik, как думаешь, вопрос с артефактами решаем? С ходу готовой функции, не привязанной к окну героя, не вижу. Точно помню, когда работал над Фениксом, тоже неудобно было.
Есть ещё один важный момент. У меня получилось полностью отвязать воговский скин/кампании от игры через патч (главная тема снова mainmenu.mp3 вместо mainmenuwog.mp3). Хочу вернуть текстовикам и pcx-ам оригинальные названия, общие для SoD/Hota/etc: crtraits.txt, pic1005.pcx и т.д. Префиксы были введены, чтобы не трогать оригинальные файлы игры, породив дубликаты. Но для Эры и других проектов со своими lod/pac это не актуально. Что думаете? zsetup-ы и новые файлы сохранят старые имена.
(23.02.2020 17:46)Berserker Wrote: [ -> ]igrik, как думаешь, вопрос с артефактами решаем? С ходу готовой функции, не привязанной к окну героя, не вижу. Точно помню, когда работал над Фениксом, тоже неудобно было.
Так есть же. И лично тобой написаны))
снятие артефактов и не только
Zur13 смотри по ссылке.
igrik, так это писалось ещё во времена моей молодости…

Спасибо!
Quote:Хочу вернуть текстовикам и pcx-ам оригинальные названия, общие для SoD/Hota/etc: crtraits.txt, pic1005.pcx и т.д. Префиксы были введены, чтобы не трогать оригинальные файлы игры, породив дубликаты. Но для Эры и других проектов со своими lod/pac это не актуально. Что думаете? zsetup-ы и новые файлы сохранят старые имена.
Значит, решено единогласно.