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

Сообщения от Текущие вопросы и ответы по редактору карт

В ответ пользователю }{0TT@6bI4
Аватар пользователя
#5402
}{0TT@6bI4
Я не тестировал, эффекты каких бафов можно наложить скриптом, в этом вопросе более компетентен Waterfall, который это тестировал

Ну я как бы тоже не тестировал что можно накладывать скриптом (потому что никогда не писал ни одного скрипта).
Но каждый скилл имеет графу БАФЫ и вот туда что-то можно всунуть xD
Допустим вот пример, в графу бафы вписана руна берсеркерства и теперь центр-перк рыцаря позволяет его армии бить дважды.
Ссылка на мой мод Heroes 5 Armageddons Blade

Ссылка на мои уроки по модостроению в Героях 5

Ссылка на мой Artstation
Аватар пользователя
#5403
Ладно. Надо будет тестировать, какие бафы можно развесить скриптом. Если не ошибаюсь, это как минимум "бонусы" городов
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
Аватар пользователя
#5404

Здравствуйте ещё раз! 👻 Возник ещё один вопрос: можно ли выносить изменение счётчика прогресса из скриптов в текстовый файл? Я знаю, что такое работает с MessageBox, вскрыв 3 карту кампании за Орнеллу и Арантира. Там это выглядит вот так:

            addedCreatures = ZOMBIE_COUNT - difLevel*5;
MessageBox({"Maps/Scenario/A2C1M3/MessageBox10_GraveYardZombie.txt"; quantity = addedCreatures});

 

а в самом текстовом файле:

"Вы наняли на этом погосте <value=quantity> зомби!"


Мне же хочется использовать подобное на SetObjectiveProgress. Прописал скрипт:

red_troops_count = 0;

function red3()
print("Проверяем сколько челов собрал Влад");
if red_troops_count ~= 3 then
red_troops_count = red_troops_count + 1;
print("Влад собрал ", red_troops_count ," демонов из 3");
sleep(1);
SetObjectiveProgress( "test_obj", red_troops_count );
else
if red_troops_count == 3 then
SetObjectiveProgress( "test_obj", red_troops_count );
print("Влад собрал всех демонов. Arrivederci Signor Giocatore!");
end;
end;
end;

for i = 1, 3 do
Trigger( OBJECT_TOUCH_TRIGGER, "rh"..i, "red3" )
end;

И текст прогресса квеста:

Собрано <value=red_troops_count> из 3 демонов


Скрипт работает(хотя научил бы кто-нибудь расставлению end'ов, а то порой +100500 перезапусков сценария на наличие ошибок скрипта начинает выводить), но вот текст в прогрессе квеста не видит этот самый прогресс, оставляя место между "Собрано" и "из" пустым. 

Аватар пользователя
#5405
Азгалор, описание квестов данную фичу не поддерживает, к тому же у вас синтаксис выдуман из головы, а чтобы оно работало (там где может работать), должно быть написано ровно так, как в примере - в фигурных скобках, через точку с запятой, в виде приравнивания имени из текстового файла и значения. Но если прогрессов квеста всего несколько, можно создать для каждого своё описание "Собрано 1 из 3 демонов", "Собрано 2 из 3 демонов" и т.д. В ЧаВо из моей подписи это описано.
Азгалор
научил бы кто-нибудь расставлению end'ов
Так просто делайте все внутренние блоки кода с отступом относительно внешнего блока, например:
function red3()
print("Проверяем сколько челов собрал Влад");
if red_troops_count ~= 3 then
red_troops_count = red_troops_count + 1;
print("Влад собрал ", red_troops_count ," демонов из 3");
sleep(1);
SetObjectiveProgress( "test_obj", red_troops_count );
else
if red_troops_count == 3 then
SetObjectiveProgress( "test_obj", red_troops_count );
print("Влад собрал всех демонов. Arrivederci Signor Giocatore!");
end;
end;
end;
И никаких проблем с end'ами не будет, всё будет видно визуально.
РПГ-сценарий для HoMM5: Путь героя
ЧаВо по созданию карт для HoMM5: ЧаВо
Аватар пользователя
#5406
Также порекомендую пользоваться редактором скриптов, который любезно подсказывает о нехватке end'ов и подсвечивает, какой блок не закрыт.
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
В ответ пользователю Jack_of_shadows
Аватар пользователя
#5407
Jack_of_shadows
Азгалор, описание квестов данную фичу не поддерживает, к тому же у вас синтаксис выдуман из головы, а чтобы оно работало (там где может работать), должно быть написано ровно так, как в примере - в фигурных скобках, через точку с запятой, в виде приравнивания имени из текстового файла и значения. Но если прогрессов квеста всего несколько, можно создать для каждого своё описание "Собрано 1 из 3 демонов", "Собрано 2 из 3 демонов" и т.д. В ЧаВо из моей подписи это описано.
Так просто делайте все внутренние блоки кода с отступом относительно внешнего блока, например:
function red3()
print("Проверяем сколько челов собрал Влад");
if red_troops_count ~= 3 then
red_troops_count = red_troops_count + 1;
print("Влад собрал ", red_troops_count ," демонов из 3");
sleep(1);
SetObjectiveProgress( "test_obj", red_troops_count );
else
if red_troops_count == 3 then
SetObjectiveProgress( "test_obj", red_troops_count );
print("Влад собрал всех демонов. Arrivederci Signor Giocatore!");
end;
end;
end;


И никаких проблем с end'ами не будет, всё будет видно визуально.

Это да, после отправки своего вопроса я попробовал прописать обжективпрогресс как тот msg бокс, и получил ошибку о том что неверен первый аргумент. Обидно что разрабы не сделали этот функционал и на обжективпрогрессы, а то например мне нужно чтобы прогресс менялся на каждом существе, а их планируется 20-30(для теста скрипта поставил только 3), и мне для этого придётся целых 30 txt файлов клёпать?... Ладно уж, нормальные герои всегда идут в обход, как говорится. 😄 Пока что скачаю ЧаВо из вашей подписи и почитаю что там есть)

Внутренние блоки кода относительно внешнего блока - это всякие проверки и подфункции? Типа if, while, SetObjectiveState? Просто я в скриптовых терминах полный 0. 💀



Добавлено через 1 минуту
}{0TT@6bI4
Также порекомендую пользоваться редактором скриптов, который любезно подсказывает о нехватке end'ов и подсвечивает, какой блок не закрыт.
Скачал его, но не пользовался. Лишь прочитал вступление про Lua, и какие есть проверки и т.д. Благодаря ему узнал что такое массив)) Надо попробовать на нём помастерить.
Аватар пользователя
#5408
Азгалор
а их планируется 20-30
Можно сделать прогресс каждые 5 или 10 существ, будет тоже неплохо выглядеть.
Азгалор
Внутренние блоки кода относительно внешнего блока - это всякие проверки и подфункции? Типа if, while, SetObjectiveState?
Ага, всё что начинается каким-нибудь ключевым словом и заканчивается end'ом или else'ом.
РПГ-сценарий для HoMM5: Путь героя
ЧаВо по созданию карт для HoMM5: ЧаВо
Аватар пользователя
#5409
И ещё вопрос, который меня давненько беспокоит. В общем, есть функция MakeHeroReturnToTavernAfterDeath. Ситуация: Есть у меня союзник-рыцарь с героем Дугал. Этому союзнику я прописал чтобы он никого не нанимал кроме Дугала, то есть всё в ноль через AllowPlayerTavernRace, а Дугала AllowPlayerTavernHero(player, "Orrin", 1), и MakeHeroReturnToTavernAfterDeath чтобы храбрый рыцарь дрался пока его не похоронят. Приходит время и это действительно происходит, игрок-Дугал проигрывает, и теперь возникает то ли баг то ли какое-то моё незнание: Не могу Дугала себе перестроить. То есть, блокирую его для найма у павшего игрока, разрешаю у себя и, чтоб наверняка "сработало", обнуляю его возвращение в таверну после смерти, а он не появляется. Неделя-другая, а его всё нет и нет. Можно ли это как-то поправить?
#5410
Люди, подскажите пожалуйста, как сделать на карте свои недели, напрмер чтобы была только "неделя золота" или определённого существа?
Аватар пользователя
#5411
Автопереведено
https://vk.com/wall-197578149_226
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
Аватар пользователя
#5412
Здравствуйте. У меня возникла пара любопытных вопросов.
1) Можно ли специализацию любого героя (Шадии например) передать герою другой фракции, однако со своим описанием и иконкой (скорее всего так сделать можно, но на всякий случай спрашиваю).
2) При создании собственного двеллинга, возникла проблемка: индикатор принадлежности к игроку наполовину скрыт в текстуре(скрин прилагается). Можно ли её решить?
3) Помнится, где-то видел старую иконку Годрика (Где он меч держит на плече). Облазил половину Интернета, смотрел среди иконок Повелителей орды, нигде не нашел. Может, кто-нибудь знает о её местонахождении.
Вложения 1
1 файл • Общий размер: 405,6 KB
Сценарий: "Наследие прошлого"
Кампании:
"
Новый порядок", "Серый Альянс""Поиски Истины"

Трейлер №2 кампании "Дыхание Пустоты": https://www.youtube.com/watch?v=XkHKXk5BctA&ab_channel=%D0%90ndrei_21

Аватар пользователя
#5413
1) Как создать своего героя?
2) Честно, не знаю. Разве что поменять расположение эффекта, но тогда и везде в остальных местах он уползёт вверх.
3) Эта иконка?
Вложения 1
1 файл • Общий размер: 19,7 KB
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
Аватар пользователя
#5414
Спасибо за разъяснения, }{0TT@6bI4, Иконка именно та. Просто на каком-то арте она была в полный размер .
Сценарий: "Наследие прошлого"
Кампании:
"
Новый порядок", "Серый Альянс""Поиски Истины"

Трейлер №2 кампании "Дыхание Пустоты": https://www.youtube.com/watch?v=XkHKXk5BctA&ab_channel=%D0%90ndrei_21

Аватар пользователя
#5415
Здравствуйте. И снова я со своими проблемами. Первая связана с 4 миссией моей кампании. Судя по отзывам на форуме и прохождению на Youtube замок некромантов не разрушается. Хотя в графе Razed стоят руины людского города. Лично у меня всё работает, город взрывается под "Метеоритный дождь" (скрины прилагаются). С чем связан этот баг не понимаю. Вторая проблема: не понимаю, как систематизировать появление "красных героев" в таверне. У некоторых игроков герои вообще не нанимаются. Перезапуск карты решает проблему, однако, хочется узнать: можно ли исключить эту случайную вероятность?
Вложения 4
4 файл(ов) • Общий размер: 1,6 MB
Сценарий: "Наследие прошлого"
Кампании:
"
Новый порядок", "Серый Альянс""Поиски Истины"

Трейлер №2 кампании "Дыхание Пустоты": https://www.youtube.com/watch?v=XkHKXk5BctA&ab_channel=%D0%90ndrei_21

Аватар пользователя
#5416
Насчет замка — пока идей нет, а вот с наймом героев все достаточно просто.
Нужно воспользоваться функцией AllowPlayerTavernRace(номеригрока, TOWN_XXX, nil) для всех рас, кроме людской, и AllowPlayerTavernHero(номеригрока, "имя героя", nil) для всех героев, кроме красных.
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________