Таким образом, можно вместо 360287970189640059 писать 379.
Вот где маска 100% нужна, это регистры, глобальные переменные, локальные переменные, быстрые строки (если уберете маску у быстрой строки, она станет обычной строкой).
Знаю, да, но по маскам иногда легче ориентироваться. Если открываешь потом свои изменения и ищешь юнита, то по 360 в начале числа быстро найдешь, а если накидываешь кучу кода в котором больше ковыряться не будешь и надо именно ускорить процесс, то можно и без маски
на выходе получаем вот такой вариант, скорее всего нерабочий потому что первые числа не поставил или потому что в блокноте писал?
Потому что код исковеркан. Разве твоя пилигримская империя основана чисто на моргсе? Ты ж писал что и мораль убирал, и еще какие-то фичи, я подумал ты знаешь структуру кода. Ну если нет, то возвращаемся к началу, а именно к шапке темы. Внимательно ее изучив, видим следующие ошибки:
1) Пропущен счетчик. Число твоих операций явно увеличилось, а счетчик (первый номер после -1) так и остался 6. Игра уже не запустится
2) Добавляемый тобой блок вклинен не в то место, надо соблюдать структуру "операция - кол-во параметров - параметры", и там где 2136 3 надо пропустить 3 числа, прежде чем вставлять отсебятину. Оригинальный код был 2136 3 1224979098644774913 360287970189639737 360287970189639764 501 3 1224979098644774912, значит свое надо было вставлять перед 501
3) Напрочь пропущены переменные, думаю это потому что они были пропущены и у меня в примере. Но пример это не рабочий код который можно вставлять, это просто описание сути. Базовое понимание структуры все еще требуется (опять же, я думал оно у тебя есть)
4) Я описал только как пишутся диапазоны, но в каждой ситуации свои тонкости. Надо смотреть по коду, что идет до диапазона, что после, как добавить новый чтоб работало. Иногда может понадобиться трайблок, иногда приходится всю систему переписывать. Открываем код оригинала в модульке:
("update_mercenary_units_of_towns",
[
(try_for_range, ":var0", "p_town_1", "p_castle_1"),
(store_random_in_range, ":var1", "trp_watchman", "trp_mercenaries_end"),
(party_set_slot, ":var0", 90, ":var1"),
(store_random_in_range, ":var2", 2, 10),
(party_set_slot, ":var0", 91, ":var2"),
(end_try),
]),
и видим что диапазон юнитов указан не в цикле, а в одной операции, значит добавлять сюда новые мы никак не можем, надо переписывать систему, причем первым способом из примера, второй здесь не катит. Переписываем хотя бы так (скорее всего это не лучший вариант):
("update_mercenary_units_of_towns",
[
(try_for_range, ":var0", "p_town_1", "p_castle_1"),
(store_random_in_range, ":var1", 1, 4),
(try_begin),
(eq, ":var1", 1),
(store_random_in_range, ":var2", "trp_cattle", "trp_hero_burilgi"),
(else_try),
(eq, ":var1", 2),
(store_random_in_range, ":var2", "trp_omen_seeker", "trp_sarleon_lady_in_waiting"),
(else_try),
(store_random_in_range, ":var2", "trp_heretic_lair_leader", "trp_custom_knight_1"),
(try_end),
(party_set_slot, ":var0", 90, ":var2"),
(store_random_in_range, ":var3", 2, 10),
(party_set_slot, ":var0", 91, ":var3"),
(end_try),
]),
В скомпилированном виде это будет выглядеть так:
update_mercenary_units_of_towns -1
15 6 3 1224979098644774912 648518346341351446 648518346341351464 2136 3 1224979098644774913 1 4 4 0 31 2 1224979098644774913 1 2136 3 1224979098644774914 360287970189639734 360287970189639981 5 0 31 2 1224979098644774913 2 2136 3 1224979098644774914 360287970189640000 360287970189640047 5 0 2136 3 1224979098644774914 360287970189640061 360287970189640100 3 0 501 3 1224979098644774912 90 1224979098644774913 2136 3 1224979098644774914 2 10 501 3 1224979098644774912 91 1224979098644774914 3 0
И вот это уже можно заменять и тестить.