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

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

Аватар пользователя
#4874
Сначала назначьте скриптовое имя нужному существу. Убедитесь, что в его анимсете есть нужная анимация(лучше поменять анимсет с имясущества-adv на имясущества-arena). Потом в нужное время проиграйте эту анимацию скриптом:
PlayObjectAnimation('назначенное вами скриптовое имя объекта',
'название анимации',
третий параметр - IDLE, если хотите, чтобы анимация зациклилась,
ONESHOT - чтобы проигралась один раз,
ONESHOT_STILL - чтобы существо застыло в финальном кадре анимации)
Нет войне.
В ответ пользователю Gerter
Аватар пользователя
#4875
Спасибо огромное вам двоим, разобрался, да. Хотелось бы еще спросить: Вы не знаете скрипта, который убирал бы юбку фракции у существ?
P.S. еще неплохо было бы узнать команду задержки, чтобы зацикленное действие повторялось раз в несколько секунд, например.
В ответ пользователю Min_Carolin
#4876
Min_Carolin
Спасибо огромное вам двоим, разобрался, да. Хотелось бы еще спросить: Вы не знаете скрипта, который убирал бы юбку фракции у существ?
P.S. еще неплохо было бы узнать команду задержки, чтобы зацикленное действие повторялось раз в несколько секунд, например.

Сперва нужно написать команду SetObjectEnabled("имя объекта",nil)-Обязательно!

Далее вводим команду SetMonsterSelectionType("имя объекта",0)

Добавлено через 30 секунд
команда задержки, как я понял, sleep(число)
Карты: Экспедиция ГрувераНаследие ШантириВременной парадоксПоиски рунной сферыПуть возвращения
В ответ пользователю AlekseyS
Аватар пользователя
#4877
У меня с задержками странная проблемка. Я в скриптах прописываю следующее:
PlayObjectAnimation("SlaveGob_1", "attack00", IDLE);
sleep (2)
Но вместо того, чтобы ждать две секунды (это же секунды, да?), этот хоблен, как будто игнорируя нижнюю строчку, зацикливается на анимации без каких-либо видимых задержек. Мне надо, чтобы он бил руду, ждал две секунды, а потом еще раз бил и так цикл за циклом до бесконечности.
В ответ пользователю Min_Carolin
#4878
Min_Carolin
У меня с задержками странная проблемка. Я в скриптах прописываю следующее:
PlayObjectAnimation("SlaveGob_1", "attack00", IDLE);
sleep (2)
Но вместо того, чтобы ждать две секунды (это же секунды, да?), этот хоблен, как будто игнорируя нижнюю строчку, зацикливается на анимации без каких-либо видимых задержек. Мне надо, чтобы он бил руду, ждал две секунды, а потом еще раз бил и так цикл за циклом до бесконечности.

Допустим, сделаем для анимации годом на ототдельную функцию:

function goblin()
PlayObjectAnimation("SlaveGob_1", "attack00", IDLE);
sleep (2)
end
startThread(goblin)
Карты: Экспедиция ГрувераНаследие ШантириВременной парадоксПоиски рунной сферыПуть возвращения
Аватар пользователя
#4879
Но вместо того, чтобы ждать две секунды (это же секунды, да?)
sleep не в секундах, поэкспериментировав немного вы научитесь подбирать величины для него. Кажется дискрет 0.2 секунды, но точно я не помню.
function goblin()
PlayObjectAnimation("SlaveGob_1", "attack00", IDLE);
sleep (2)
end
startThread(goblin)
чтобы бесконечно происходило, нужен ещё бесконечный цикл, например:
function goblin()
while (true) do
PlayObjectAnimation("SlaveGob_1", "attack00", IDLE);
sleep (2)
end
end
startThread(goblin)
РПГ-сценарий для HoMM5: Путь героя
ЧаВо по созданию карт для HoMM5: ЧаВо
В ответ пользователю AlekseyS
Аватар пользователя
#4880
А теперь у меня проблема с функшионалами:smile04:
Пытаюсь их щас освоить, делаю все в точности как написано в мануале Ogo, но в игре при заходе в регион ничегошеньки не происходит, герой даже не останавливается.

function CyclopsFrontF ()
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "CyclopsFront", nil);
MessageBox ("\Maps\Multiplayer\OrcTown\CyclopsFrontF.txt");
end;
Перепробовал все что только можно. И кучу раз текстовый документ (он, кстати, в формате юникод, т.ч. все нормально) перезакидывал в архив с картой, и слеши менял ( то \, то /), нашел здесь вроде решение проблемы (говорили, что лучше писать GetMapDataPath().."Deadst.txt", но я не понял, что значит, например, две точки после скобочек, нужно ли там что-то записывать и т.д.) - ничего не помогло.
Может быть, проблема в том, что у меня карта мультиплеерная и там нельзя пользоваться половиной скриптов?
ПЫ.СЫ. А что, кстати, надо вписывать в функшионалы goblin, которые Вы здесь приводите в пример. Или можно просто закинуть пустой файл и будет работать?
Аватар пользователя
#4881
Min_Carolin, тут нужен систематический подход к проблеме.
Пытаюсь их щас освоить, делаю все в точности как написано в мануале Ogo, но в игре при заходе в регион ничегошеньки не происходит, герой даже не останавливается.
остановка при заходе в регион выполняется автоматически если отработала функция
Trigger(REGION_ENTER_AND_STOP_TRIGGER, 'ИМЯ_РЕГИОНА', 'ИМЯ_ФУНКЦИИ');
если этого не произошло, либо эта функция написана с ошибкой, либо любая другая строчка кода перед этой функцией написана с ошибкой (код полностью перестает выполняться, если будет допущена хоть одна грубая ошибка). Есть методики, как это проверять (print прежде всего). Мультиплеер тоже может быть проблемой. И слеши правильно прямые. В мануале у меня в подписи я описывал многие из этих вещей.
А что, кстати, надо вписывать в функшионалы goblin, которые Вы здесь приводите в пример. Или можно просто закинуть пустой файл и будет работать?
это кусок кода, который пишется в файле с кодом и выполняет указанную вами функцию (гоблин бьёт руду). Про пустой файл не понял что имелось ввиду.
РПГ-сценарий для HoMM5: Путь героя
ЧаВо по созданию карт для HoMM5: ЧаВо
В ответ пользователю Jack_of_shadows
Аватар пользователя
#4882
Хорошо, спасибо большое, буду искать ошибку более внимательно. В общем-то да, здесь только мое разгильдяйство должно быть виновато, может, что не так понял. Ваше руководство начал просматривать - очень помогло во многих нюансах, буду изучать дальше. Решил, что возьмусь за триггер-скрипты только тогда, когда сяду за сингл-мапу: там, глядишь, все ровнее пойдет. Единственное, что хотелось бы еще узнать, так это то, где лежат ресурсы игры (мне надо для того, чтобы, например, поменять иконку спецы героя в разделе shared, ну я это уже писал в первом своем комментарии). И можно ли добавлять в эти ресурсы что-то свое (например, добавить в папку с амбиентной музыкой собственную аудиозапись, чтобы потом присобачить ее к адвенчурной музыке героя в его shared).
Ну и еще, это я тоже писал в первом комментарии, есть ли возможность нацепить модельку существа из мода на героя. Их просто не видно, есть только ванильные модельки, есть даже модельки из роликов кампании, но кастомных моделек из того же NCF нет, раздел neutral проверял.
Пы.Сы. Про function я имел в виду то, что в архив с картой вроде нужно кидать текстовые документы с каким-либо художественным текстом (как в случае с MessageBox), ну или, возможно, не знаю, просто предположил, кусками скрипта, и этот текстовый документ выполняет функцию, извиняюсь за тавтологию, function.
Аватар пользователя
#4883
Про function я имел в виду то, что в архив с картой вроде нужно кидать текстовые документы с каким-либо художественным текстом (как в случае с MessageBox), ну или, возможно, не знаю, просто предположил, кусками скрипта, и этот текстовый документ выполняет функцию, извиняюсь за тавтологию, function.
Там всё проще. Главный файл карты map.xdb, в нём хранится описание почти всего что есть на карте в xml формате. В том числе есть ссылка на скрипт карты. По умолчанию редактор его называет MapScript.lua. Весь код должен находится в нём или вызываться из него. Код пишется на языке lua, поэтому и файл такое расширение имеет. Текстовые файлы *.txt могут находиться где угодно - внутри карты (чаще всего), в ресурсах игры, рядом с игрой, главное в скриптах правильно указать путь к ним.

Ресурсы игры почти все в data/data.pak. Всё что вы положите внутрь карты тоже добавится к ресурсам. Корень карты - это путь "/". То есть если что-то лежит внутри карты в папке foobar, то оно будет доступно как "/foobar/...". Если редактор не даёт где-то поправить путь, всегда можно открыть map.xdb блокнотом и поменять путь вручную (на ваш страх и риск).
РПГ-сценарий для HoMM5: Путь героя
ЧаВо по созданию карт для HoMM5: ЧаВо
#4884
Создал карту через редактор карт из директории Повелители Орды. После сохранения и последующего редактирования редактор неожиданно вылетает. Запускаю редактор снова, при попытке отредактировать карту, а именно добавить текстуру на местность(снег, песок, трава) не накладывается и после этого редактор вылетает. Объекты добавлять, деформировать местность я могу, а текстуры не накладываются на местность. В чем может быть проблема? :confused:

P.S файл карты в архиве
Вложения 3
3 файл(ов) • Общий размер: 94,6 KB
Аватар пользователя
#4885
AlexBroAnimator, у меня с вашей картой такие же проблемы. Может какую-то настройку некорректно выставили, или это редактор что-то запорол в файле карты.
РПГ-сценарий для HoMM5: Путь героя
ЧаВо по созданию карт для HoMM5: ЧаВо
В ответ пользователю Jack_of_shadows
Аватар пользователя
#4886
Ммм... Очень извиняюсь за то, что снова побеспокоил, но у меня опять какие-то затупы происходят. Вот вы мне дали функцию:

function goblin()
while (true) do
PlayObjectAnimation("SlaveGob_1", "attack00", IDLE);
sleep (0.5)
end
end
startThread(goblin)

Я вставляю ее в скрипт карты и иду тестить. Запускаю карту, она загружается, а когда я оказываюсь уже непосредственно в игре, она намертво зависает. При этом звук от всяких перебираний копыт, бряцаний доспехов и тому подобного слышен. Подскажите, в чем я ошибся, ничего в голову не приходит.

Еще у меня проблемка есть: у меня на другом компьютере, когда я на нем сижу в редакторе, почему-то не работает properties. Не знаю, не работает ли в нем все, но вот когда я делал кастомного героя на шаблоне одного из уже доступных, переделал ему спецу, биографию, внешний вид, описание и прочее, все это сохранилось и даже в редакторе была видна новая шкурка, но вот когда я зашел на карту непосредственно в игре, то передо мной предстал совершенно ванильный герой. Это была Нура с ее ванильной биографией, специализацией, иконкой и моделькой, а должен был быть совершенно другой герой. Это, конечно, некритично, но может быть лекарство на этот баг найдется, а то тестить неудобно.
Вложения 1
1 файл • Общий размер: 61,8 KB
Аватар пользователя
#4887
Min_Carolin, sleep может принимать только целочисленные значения. И ещё тут мешанина получилась на самом деле из двух подходов к решению задачи, нужно склониться либо к одному либо к другому, так как они вместе не имеют смысла.

Вариант 1:
PlayObjectAnimation("SlaveGob_1", "attack00", IDLE);

Вариант 2:
function goblin()
while (true) do
PlayObjectAnimation("SlaveGob_1", "attack00", ONESHOT);
sleep (10)
end
end
startThread(goblin)


Добавлено через 24 минуты
Еще у меня проблемка есть: у меня на другом компьютере, когда я на нем сижу в редакторе, почему-то не работает properties. Не знаю, не работает ли в нем все, но вот когда я делал кастомного героя на шаблоне одного из уже доступных, переделал ему спецу, биографию, внешний вид, описание и прочее, все это сохранилось и даже в редакторе была видна новая шкурка, но вот когда я зашел на карту непосредственно в игре, то передо мной предстал совершенно ванильный герой. Это была Нура с ее ванильной биографией, специализацией, иконкой и моделькой, а должен был быть совершенно другой герой. Это, конечно, некритично, но может быть лекарство на этот баг найдется, а то тестить неудобно.
Вы создавали новый файл с новым названием для нового героя, или просто правили стандартного героя? Если правили, то в игровых ресурсах появляется 2 копии одного файла - оригинальный и ваш внутри карты. Возможно из-за каких-то особенностей игра подтянула оригинальный вместо вашего. Можно попробовать изменить имя файла с вашим описанием, так чтобы это был полностью новый ресурс в игре, проверить всё это в редакторе и потом в игре.
РПГ-сценарий для HoMM5: Путь героя
ЧаВо по созданию карт для HoMM5: ЧаВо
В ответ пользователю Jack_of_shadows
Аватар пользователя
#4888
Вот спасибо огромное, все заработало. И анимация наконец зациклилась, и баг пропал. Если когда-нибудь наконец-то создам собственную карту, Вы получите релизную версию самым первым:D . Хотя, если брать во внимание мои кривые руки, для Вас это будет скорее мучением, нежели наградой и выражением благодарности за советы и мануал ^__^.