Перейти к содержанию

Сообщения от Скрипты

В ответ пользователю Dyrman
Аватар пользователя
Dyrman
Жалко, что пользовательский редактор скриптов ругается на %.
Потому что он рассчитан на Lua 5, а не Lua 4 (как в Г5), а у них синтаксис несколько отличается. % в пятой версии - это оператор остатка от деления.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
Кстати. При одновременных ходах значение
while GetLastSavedCombatIndex() == combat_index do
sleep()
end
может же измениться?
Если два игрока одновременно проводят бои, например. В результате, герой ещё ведёт бой, а индекс изменился. Он может проиграть, а в результате функция вернёт, что жив.

Поэтому и хотелось бы вызывать функцию только на конец боя.
Моды для HeroesV:
NHF 0.90 : NHF - группа в VK

Карты для HeroesV:
Путешествие , Условие крови , Рука судьбы.Часть 1: В поход , Рука судьбы.Часть 2: Отчаянье , Рука судьбы.Часть 3: Восхождение , Стойкость
Абсолютная власть , Иду на Вы! , Корона Ургаша , На задворках
Мир надо уничтожить... Чтобы создать свой...
В ответ пользователю Dyrman
Аватар пользователя
Можно, наверное, так. Только я не помню точно, что значит второй аргумент в GetSavedCombatArmyHero.
local wrapStartCombat = StartCombat
function StartCombat(hero, enemy, stacks, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18)
%wrapStartCombat(hero, enemy, stacks, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18)
local combat_index = GetLastSavedCombatIndex()
while 1 do
if GetLastSavedCombatIndex() ~= combat_index then
if GetSavedCombatArmyHero(combat_index, 0) ~= hero and GetSavedCombatArmyHero(combat_index, 1) ~= hero then
combat_index = GetLastSavedCombatIndex()
else
break
end
end
sleep()
end
local result = IsHeroAlive(hero)
return result
end
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
Ага, похоже на правду.
StartCombat(hero, nil,4,CREATURE_FIRE_ELEMENTAL,5, CREATURE_WATER_ELEMENTAL,5, CREATURE_EARTH_ELEMENTAL,5, CREATURE_AIR_ELEMENTAL,5,nil,'NHF_Touch_hero_treasury_reward_F("'..hero..'","'..MASS.. '","'..NHF_mass_CYCLOPS_STOCKPILE.variant1.treasury.spell[1]..'")',nil,not nil);

А нельзя ли как-нибудь передать массив MASS? Консоль ругается, что нельзя)
Моды для HeroesV:
NHF 0.90 : NHF - группа в VK

Карты для HeroesV:
Путешествие , Условие крови , Рука судьбы.Часть 1: В поход , Рука судьбы.Часть 2: Отчаянье , Рука судьбы.Часть 3: Восхождение , Стойкость
Абсолютная власть , Иду на Вы! , Корона Ургаша , На задворках
Мир надо уничтожить... Чтобы создать свой...
Аватар пользователя
Вручную перевести массив в его строковое представление.

Добавлено через 32 секунды
Способ постом выше работает?

Добавлено через 38 секунд
Просто переводить массивы в строку - операция сложная и медленная.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
В ответ пользователю RedHeavenHero
Аватар пользователя
RedHeavenHero
Вручную перевести массив в его строковое представление.

Добавлено через 32 секунды
Способ постом выше работает?

Добавлено через 38 секунд
Просто переводить массивы в строку - операция сложная и медленная.
Верхний вариант в одновременке оттестировать нет возможности.
По лоике, должен пахать.
Моды для HeroesV:
NHF 0.90 : NHF - группа в VK

Карты для HeroesV:
Путешествие , Условие крови , Рука судьбы.Часть 1: В поход , Рука судьбы.Часть 2: Отчаянье , Рука судьбы.Часть 3: Восхождение , Стойкость
Абсолютная власть , Иду на Вы! , Корона Ургаша , На задворках
Мир надо уничтожить... Чтобы создать свой...
Аватар пользователя
Dyrman
Напомни, плиз, какое преимущество даёт использование % перед переменной?
Ещё можно ставить перед именами глобальных переменных и переданных параметров, чтобы функция использовала переменную как константу (т.е. впоследствии изменение значения переменной не повлияет на работу функции).
А нельзя ли как-нибудь передать массив MASS? Консоль ругается, что нельзя)
Можно же его передать через глобальную переменную.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
В ответ пользователю RedHeavenHero
Аватар пользователя
RedHeavenHero
Ещё можно ставить перед именами глобальных переменных и переданных параметров, чтобы функция использовала переменную как константу (т.е. впоследствии изменение значения переменной не повлияет на работу функции).

Можно же его передать через глобальную переменную.
Я так и сделал.
Для каждого игрока своя глобалка.
Это ещё нужно для того, чтобы запоминать посещения , наград итп
Пригодится для новых спец.
Хочу сразу сделать инструмент более объёмным, чтобы не напарываться на грабли и не переделывать старые функции.
Моды для HeroesV:
NHF 0.90 : NHF - группа в VK

Карты для HeroesV:
Путешествие , Условие крови , Рука судьбы.Часть 1: В поход , Рука судьбы.Часть 2: Отчаянье , Рука судьбы.Часть 3: Восхождение , Стойкость
Абсолютная власть , Иду на Вы! , Корона Ургаша , На задворках
Мир надо уничтожить... Чтобы создать свой...
Аватар пользователя
Всем привет. Решил в своей карте дать герою параметр "авторитет", который позволяет ограничивать число существ в армии героя. Для того, чтобы реализовать его, пришлось во всех жилищах отключить стандартный найм существ и прописать скриптом вопрос: "Вы хотите нанять [х] существ за [y] золотых? ОК Отмена"
Но недостаток в том, что герой может взять только всех существ, доступных в строении, либо на которых хватает авторитета и золота.
А еще при апгрейде существ или взятии их из гарнизона изменение свободного авторитета не учитывается, так что герой может набрать армию больше, чем позволяет ему авторитет.
Можно ли сделать так, чтобы в стандартном окне найма существ их количество ограничивалось не только золотом, но и авторитетом?
 Создается карта про эльфов: Воссоединение - готовность 71%
Аватар пользователя
Варианты:
1) Талкбокс, имитирующий окно найма, в частности + и -.
2) Прячешь на карте гарнизон, чтобы никто не видел. При прикосновении к зданию найма (стандартное свойство которого отключено), заполняешь гарнизон только теми существами, которыми возможно купить по "золоту"\"лидерству"(тут авторитет). Лучше по одиночке(по типу), ибо придется делать допонительные проверки. Потом героя заставляешь скриптами посетить этот гарнизон.
3) Обнуляешь в начале недель и после прикосновения двеллы. При прикосновении определяешь что за двелл, изменяешь скриптами его прирост до максимально возможного по авторитету и золоту. Тут прокатывают только двеллы, где можно нанимать армию одного типа.

Добавлено через 7 минут
Spectral

Варианты:
А еще при апгрейде существ или взятии их из гарнизона изменение свободного авторитета не учитывается, так что герой может набрать армию больше, чем позволяет ему авторитет.
1)Можно запустить постоянный цикл и проверять количество.
2)При прикосновении к гарнизону уменьшать армию настолько в нём, на сколько позволит взять авторитет.
А ап-неап сделать с одним авторитетом.
Моды для HeroesV:
NHF 0.90 : NHF - группа в VK

Карты для HeroesV:
Путешествие , Условие крови , Рука судьбы.Часть 1: В поход , Рука судьбы.Часть 2: Отчаянье , Рука судьбы.Часть 3: Восхождение , Стойкость
Абсолютная власть , Иду на Вы! , Корона Ургаша , На задворках
Мир надо уничтожить... Чтобы создать свой...
Аватар пользователя
Что такое florID, я знаю что это номер уровня, на который нужно поставить артефакт, НО Я НЕ МОГУ ПОНЯТЬ ЧТО ЭТО ЗНАЧИТ
[url=Таверна (фулдилка) - заходите.


Аватар пользователя
Подземелье/поверхность. В первом случае индекс равен 1, во втором 0.
 

К А
Стикеры GBF в Telegram
Аватар пользователя
как указать скриптовое имя героя в задании - Герой должен выжить.
[url=Таверна (фулдилка) - заходите.


Аватар пользователя
дайте правильной скрипт для диалогоа (ролика), пожалуйста. (я видел такой, но проблема в том, что сколько я не пытался сделать ролик, у меня не получалось)
[url=Таверна (фулдилка) - заходите.


Статистика

Приветствуем новейшего участника: Вязов Анатолий Аркадьевич