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

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

Аватар пользователя
10 лет назад
PlayDialogScene -- функция запуска ролика.
После выполнения задания -- поставить триггер Trigger(OBJECTIVE_STATE_CHANGE_TRIGGER,...
В общем, несложно, во многом похоже на штуку с регионом из соседней темы.
Как вставить свою озвучку? Нужный формат есть, а вставить в диалоговую сцену не получается. Заранее спасибо!
Нужно экспортировать звук, как ресурс, в игру. А в ролике соответственно вставить этот звук (или звуки). Вообще, не совсем тривиальная задача, частичное представление о ней можно получить тут: http://psatkha.narod.ru/tutorial_ru.html. Не уверен, что овчинка стоит выделки, в домашних условиях адекватно озвучить ролики практически нереально, а потом ещё мучиться, учиться их вставлять.
В ответ пользователю Ment
Аватар пользователя
10 лет назад
function Objective()
StartDialogScene("/DialogScenes03/New Object03/DialogScene.xdb#xpointer(/DialogScene)");
end;
Trigger(OBJECTIVE_STATE_CHANGE_TRIGGER,"obj1","Objective");

Что не так в этом коде? :confused: миссию завершает, а ролик не запускает
Аватар пользователя
10 лет назад
миссию завершает, а ролик не запускает
Я так думаю, он сначала завершает миссию, а потом запускает ролик. Такие штуки имеют больший приоритет, чем скрипты и выполняются в первую очередь. Вам надо сделать так, чтобы задание не завершало миссию, запустить ролик, подождать немного (функция sleep), и вот тогда завершить миссию скриптовой функцией Win() (там вроде с большой буквы, но я точно не помню, проверьте меня).
В ответ пользователю Ment
Аватар пользователя
10 лет назад
function Objective()
StartDialogScene("/DialogScenes03/New Object03/DialogScene.xdb#xpointer(/DialogScene)");
sleep(20)
Win()
end;

Trigger(OBJECTIVE_STATE_CHANGE_TRIGGER,"obj1","Objective");
Не работает. Задание завершается, а ролика нет. И у меня как бы из одного вопроса два вытекает:
1)Как сделать, чтобы после завершения задания проигрывался ролик, и я продолжал играть и выполнять другие задания?
2)Как сделать, чтобы после завершения задания проигрывался ролик, и я выигрывал?
Вот эти два момента не дают мне спокойно жить:confused:
Аватар пользователя
10 лет назад
Как сделать, чтобы после завершения задания проигрывался ролик, и я продолжал играть и выполнять другие задания?
Не писать win.
Как сделать, чтобы после завершения задания проигрывался ролик, и я выигрывал?
Писать win ;)
Не знаю, почему не работает. Потенциальных ошибок может быть много -- это и заглавные/строчные буквы (они воспринимаются игрой по-разному), и слеши в StartDialogScene (не уверен, что в эту сторону повёрнуты). Консоль что пишет?
В ответ пользователю Ment
Аватар пользователя
10 лет назад
Код рабочий, просто название задачи почему-то не существовало, вернее в Properties Tree оно было написано, в скрипте то же самое написано, но консоль говорила, что этой задачи не существует. В итоге я из кода скопировал название задачи, запихнул в Properties Tree, и все заработало:D(возможно, что в коде было написано на английском, а в Properties Tree на американском, или наоборот.)
Спасибо вам большое, больше пределов творчеству нет:)
Аватар пользователя
10 лет назад
Подскажите как сделать специализацию героя-командира: +1 к защите и нападению за 2 уровня для заданного существа. В оригинальных файлах командирских специализаций не нашел, так что, наверное, надо скриптом прописывать.
Аватар пользователя
10 лет назад
О великие знатоки, подскажите как показать игроку сообщение в ПЕРВЫЙ день игры? Пыталась сделать через
Trigger(NEW_DAY_TRIGGER, "new_day" );
function new_day()
if GetDate(DAY) == 1 then
MessageBoxForPlayers(PLAYER_1,GetMapDataPath().."hello.txt");
end;
end;
Но увы, не работает =(
Меняю день на второй и сообщение отображается.
Аватар пользователя
10 лет назад
Потому что триггер срабатывает при наступлении некого события. А первый день игры не наступает, но идёт с самого начала. Просто надо
MessageBoxForPlayers(PLAYER_1,GetMapDataPath().."hello.txt");
и всё.
Аватар пользователя
10 лет назад
function kill_army()
a=14
while a>13 do
MakeHeroInteractWithObject('Arantir','altar1')
sleep(2)
a=1
for i=1,119 do
a=a+GetHeroCreatures('Arantir',i)
end
if a>12 then do
StartAdvMapDialog(2)
sleep(2)
end
end
end
StartAdvMapDialog(3)
вот кусок функции в результате которой я хочу увидеть следующее:
герою предлагается порезать армию на алтаре
потом происходит проверка на количество существ в армии героя
если их больше 12 - запускается диалог(2)
если нет, тогда диалог(3)
Проблема в том, что герой только начинает взаимодействовать с алтарем, а программа уже успела посчитать его войско и после жертвоприношения показывает диалог(2), а вот как бы сделать так, чтобы проверка количества существ запускалась после того, как герой пожертвует войско?
Аватар пользователя
10 лет назад
Medyan, вы как-то описали туманно все. Если нужно
если их больше 12 - запускается диалог(2)
если нет, тогда диалог(3)
тогда и код должен быть
if a>12 then
StartAdvMapDialog(2)
else
StartAdvMapDialog(3)
end
Если проверка количества существ должна быть после взаимодействия с алтарем, то и писать ее надо в обработчике тыкания в алтарь.
10 лет назад
Нужна помощь, как сделать скрипт который будет давать все скиллы которые есть в игре? Я видел такое в карте "Эльфийская песнь", там если написать @gsall skillsall artefacts, ГГ дадут все скиллы и артефакты, но мне нужны только скиллы, карту я в редакторе открыть не могу, так как её нету в папке с картами. И да, в 2016 году играют в героев 5. И ещё одно, если это возможно, можно как-то сделать этот скрипт, что-бы он на всех картах работал? Я имею ввиду через @DoFile. Хотя тогда придется каждый раз редактировать скрипт файл, у героев ведь разные скриптовые имена... Ну команда add_skill и прочие ведь работают на выделенном герое, вот я и хочу как-то сделать что-бы скрипт работал на выделенном герое. Надеюсь это возможно. В любом случае заранее спасибо за помощь, буду ждать ответа.
В ответ пользователю xxxRustamxxx
Аватар пользователя
10 лет назад
xxxRustamxxx
Нужна помощь, как сделать скрипт который будет давать все скиллы которые есть в игре? Я видел такое в карте "Эльфийская песнь", там если написать @gsall skillsall artefacts, ГГ дадут все скиллы и артефакты, но мне нужны только скиллы, карту я в редакторе открыть не могу, так как её нету в папке с картами. И да, в 2016 году играют в героев 5. И ещё одно, если это возможно, можно как-то сделать этот скрипт, что-бы он на всех картах работал? Я имею ввиду через @DoFile. Хотя тогда придется каждый раз редактировать скрипт файл, у героев ведь разные скриптовые имена... Ну команда add_skill и прочие ведь работают на выделенном герое, вот я и хочу как-то сделать что-бы скрипт работал на выделенном герое. Надеюсь это возможно. В любом случае заранее спасибо за помощь, буду ждать ответа.
Можно так:
for i=1,3 do
for j=1,220 do
consoleCmd('add_skill ' .. j)
end
end
Даст все навыки и умения выделенному герою. Скрипт можно сохранить в файл и вызывать через doFile.
10 лет назад
Огромное спасибо! Просто у меня была задумка для карты. Месть Эльрата называется карта которую я хочу сделать. Сюжет: На совете богов выясинили, что людей которые поклоняются Эльрату стает все меньше и меньше, если так и будет, Эльрата вовсе забудут и он больше не будет богом! Эльрату это очень не нравится, он решил спуститься к смертным в облике архангела под именем Ратиэль. Но как только он спускается к смертным он увидел ужасное... Демоны берут в плен подданых Эльрата, его народ, и увозят в Шио. Зачем и почему, сам Эльрат должен узнать...
P.S. Скрипт нужен был для ГГ, ну он типа БОГ, должен уметь всё. Я карту хотел создать с существами NCF. У Эльрата в армии будут 10 Ангелов Хранителей, и 15 обычных ангелов. Я думаю задумка неплохая, но реализовать будет очень сложно, я уже пытался дать герою модель ангела, вставил аним сет ему, но он не использует анимации которые я ему задал. Просто в форме Т всё делает...

Добавлено через 1 минуту
Хотя я вообще хочу кампанию сделать, это только первая миссия, кампания "Война Богов". Я не уверен что у меня терпения хватит....

Статистика

Приветствуем новейшего участника: recijeb

Сейчас на сайте 7 пользователей 1288 гостей