24.10.2020, 02:42
24.10.2020, 02:50
Заменить на:
24.10.2020, 03:00
Berserker, да, точно - в функцию можно передать координаты через х1, х2, х3.
Насчёт всего остального понял. Спасибо!
P.S. А вот с циклом нужно разобраться. Много нового.
Насчёт всего остального понял. Спасибо!
P.S. А вот с циклом нужно разобраться. Много нового.

24.10.2020, 03:16
Смотри, я прохожусь от i = цвет первого игрока до цвет последнего игрока
Вот эти константы:
Далее, тебе нужен был массив из 8 счётчиков. Скажем, visits[8] выделит
[y20, y21, y22, y23, y24, y25, y26, y27] под это дело.
visits[0], где 0 - логический индекс элемента в массиве (всегда от нуля), скомпилируется в y20.
visits[1] в y21 и т.д.
А @visits или @visits[0] скомпилируется в индекс без y-префикса: 20.
@visits[0] = 20
@visits[7] = 27.
Тогда данная строка просто вычислит индекс y-переменной счётчика для i-го игрока
!!VR(visitPtr:y):S(@visits) +i;
=>
!!VR(visitPtr:y):S20 +i;
А значит y(visitPtr) означает y20..y27 поочерёдно. То есть буквально y-переменная с индексом, хранимым как число в переменной (visitPtr)
Вот эти константы:
Далее, тебе нужен был массив из 8 счётчиков. Скажем, visits[8] выделит
[y20, y21, y22, y23, y24, y25, y26, y27] под это дело.
visits[0], где 0 - логический индекс элемента в массиве (всегда от нуля), скомпилируется в y20.
visits[1] в y21 и т.д.
А @visits или @visits[0] скомпилируется в индекс без y-префикса: 20.
@visits[0] = 20
@visits[7] = 27.
Тогда данная строка просто вычислит индекс y-переменной счётчика для i-го игрока
!!VR(visitPtr:y):S(@visits) +i;
=>
!!VR(visitPtr:y):S20 +i;
А значит y(visitPtr) означает y20..y27 поочерёдно. То есть буквально y-переменная с индексом, хранимым как число в переменной (visitPtr)
24.10.2020, 03:23
Berserker, а с какой версии Эры начинают работать !?OB(OBJ_KEYMASTERS_TENT); и другие константы?
И где можно скачать эту версию, если нет доступа к Яндексу?
И где можно скачать эту версию, если нет доступа к Яндексу?
24.10.2020, 03:29
Вот же...
(24.10.2020 01:32)Berserker Wrote: [ -> ]Обновление: https://dropmefiles.com/PSvrC
24.10.2020, 04:14
С 3.0.1, если не ошибаюсь. Но мод Era Erm Framework (должен быть включён) обновляется с каждым релизом Эры.
25.10.2020, 06:25
Задача: сделать возможным переопределять глобальные переменные мода из json-конфига с поддержкой констант.
Требования: Era 3.2.0+, Erm Framework Mod 3.2.0+
Решение:
Требования: Era 3.2.0+, Erm Framework Mod 3.2.0+
Решение:
25.10.2020, 12:24
Berserker, спасибо за код скрипта с палатками. Разобрался полностью.
(24.10.2020 04:14)Berserker Wrote: [ -> ]Задача: сделать возможным переопределять глобальные переменные мода из json-конфига с поддержкой констант.Если можно, то небольшой пример, пожалуйста, в каких целях это можно применить
25.10.2020, 16:08
SergOz, я выпускаю мод на смешанные нейтралы с json-файлом настроек в Lang. Ты выпускаешь свой мини-мод настроек смешанных нейтралов по каждому типу монстров и заодно меняешь глобальные настрйки так:
Мой мод отображает глобальные настройки из json на глобальные именованные переменные. А ты, как пользователь-настройщик, в ЕРМ файлы не лезешь, но можешь использовать константы в виде значений. Скажем, тебе нужно в слоте сгенерировать монстра той же фракции или союзной фракции.
Ты пишешь: "type": "MIX_MON_TYPE_ALLIED_FACTION" вместо -3, например.
Code:
{
"mix": {
"global": {
"minNumNeutralStacks": "2", // Minimum number of mixed neutral stacks in battle.
"maxNumNeutralStacks": "4", // Maximum Number of mixed neutral stacks in battle.
"neutralStackSpread": "MIX_SPREAD_SPACE_BETWEEN", // Default spread strategy for neutral stacks.
// Possible values:"sp_no", "sp_random", "sp_top_down", "sp_near_center", "sp_away_form_center", "sp_space_between".
"neutralStackScale": "125", // Multiplier for original neutrals quantity on adventure map in percents.
"netralStackScaleForHuman": "200", // Additional multiplier of neutrals power only for humans in percents.
"noNeutralsMorale": "1", // If 1, neutrals will have no morale at all.
"generateMonstersByFactions": "1", // If 1, additional generated monsters will belong to the same faction.
"allowAlliedFactions": "1", // If 1, allied faction monsters will also be generated.
"moveNeutralsToFactions": "1", // If 1, all WoG neutral monsters will be assigned a faction / town.
"registerRegularMonsters": "1", // If 1, all regular WoG creatures are registered and will become accessible for generation.
"registerFactionAllies": "1", // If 1, configurates each faction allies and their association level.
},
"mon173": {
"custom": "1",
"slot0": {
"type": "MIX_MON_TYPE_ALLIED_FACTION",
}
}
}
}
Мой мод отображает глобальные настройки из json на глобальные именованные переменные. А ты, как пользователь-настройщик, в ЕРМ файлы не лезешь, но можешь использовать константы в виде значений. Скажем, тебе нужно в слоте сгенерировать монстра той же фракции или союзной фракции.
Ты пишешь: "type": "MIX_MON_TYPE_ALLIED_FACTION" вместо -3, например.
25.10.2020, 19:01
Berserker, как я понимаю, последовательность !?FU и !#VA не принципиальна, и можно
в обратном порядке вызывать?
в обратном порядке вызывать?
25.10.2020, 19:15
Berserker, в коментах научных каналов часто можно видеть такое:
"Ничего не понятно, но афигенно интересно".
Здесь примерно то же самое, но суть я уловил. Перечитывая, раза с N-ного дойдёт.
Спасибо!
"Ничего не понятно, но афигенно интересно".
Здесь примерно то же самое, но суть я уловил. Перечитывая, раза с N-ного дойдёт.

Спасибо!
25.10.2020, 21:43
Bes, нельзя.
Глобальные переменные — это i^..^, s^...^. а (такиеПеременные) — сугубо локальные от !?XX до следующего !?XX.
Глобальные переменные — это i^..^, s^...^. а (такиеПеременные) — сугубо локальные от !?XX до следующего !?XX.
25.10.2020, 21:54
а чего тогда ты сделал объявление локальной через синтаксис !# ? (сразу провокация на выход из твоих примеров использования
)

25.10.2020, 22:33
Чтобы выделить данную конструкцию визуально. Она работает только на этапе прекомпиляции как команда-пустышка, но все объявленные в ней переменные остаются.
Иными словами нет разницы между:
и
Иными словами нет разницы между:
и