Но факт что работает проверено лично мною в карте "Астралия"
Не знаю, как там у тебя в Астралии, но я такую вещь делал в Гномании. В 90% случаев работало, но в 10% комп направлялся в противоположную сторону. Пришлось поставить функцию MoveHero. Такие дела.
Так, из первой порции сработало всё, кроме Ai аттрактора. Бегут куда хотят. Нет другого способа? И, перед тем как начинается битва чтобы выскакивало сообщение?
Часть два. Мне необходимо ещё такое: подбегаешь к отряду, выскакивает сообщение, отряд с карты исчезает, а в армию добавляются войска. Герой конкретный. Второе: побеждаешь монстра и выскакивает сообщение.
И наконец, последнее: задания. Первое смысловой нагрузки не несёт и звучит так: добраться до дороги на Аль-Сафир. Просто чтобы появлялось и считалось выполненным после триггера с роликом в предыдущей части. Ещё два: главное - убить вражеского героя и второстепенная - собрать кучки существ с карты (к этому относятся и предыдущие скрипты с добавлением в армию). Как это можно сделать? Пожалуйста помогите!
Так, из первой порции сработало всё, кроме Ai аттрактора. Бегут куда хотят.
Это было предсказуемо. Если есть возможность, надо заменить на MoveHero(hero,x,y);Гильраен
И, перед тем как начинается битва чтобы выскакивало сообщение?
Я бы поставил регион "town" такой, чтобы его надо было пересечь, прежде, чем напасть на город. Далее function show_mes(hero) if hero=="EnemyHero" then MessageBox(GetMapDataPath().."mes.txt"); end; end; Trigger(REGION_ENTER_WITHOUT_STOP_TRIGGER,"town","show_mes");Гильраен
Мне необходимо ещё такое: подбегаешь к отряду, выскакивает сообщение, отряд с карты исчезает, а в армию добавляются войска.+собрать кучки существ с карты
function Add(hero) if hero=="YourHero" then MessageBox(GetMapDataPath().."mes2.txt"); AddHeroCreatures("YourHero",CR_ID,QUANTITY); k=k+1; if k==n then --кол-во существ для сбора SetObjectiveState("Obj",OBJECTIVE_COMPLETED); end; end; end; SetObjectEnabled("monster",nil); Trigger(OBJECT_TOUCH_TRIGGER,"monster","Add");Гильраен
Второе: побеждаешь монстра и выскакивает сообщение.
Тут можно просто написать скрипт в свойствах монстра, вкладка скрипт. Пишешь там MessageBox и всё.Гильраен
Просто чтобы появлялось и считалось выполненным после триггера с роликом в предыдущей части.
k -- количество присоединившихся отрядов. n -- кол-во, необходимое для выполнения задания. CREATURE_ID -- номер существа (можно узнать в файле ID's_for_script.pdf или как-то так)
Так-с. По поводу SetObjectEnabled - от этого же отряд не исчезает, а мне нужно, чтобы исчез (герой воскресил мёртвых воинов и они присоединились к нему). Задание такое: две воскресших кучки и три собранных. Воскресшие: громовержцы, маги; присоединяющиеся: големы, маги, громовержцы. Разве можно объединить их в одну переменную? А DefeatHero - где его найти?
Задания. Для SetObjectiveState не нужна функция? Оно работает просто так? А как добавить к заданию описание?
По поводу воскрешения - это сюжетный момент. Но вот что мне ещё надо. Move Hero: а можно сделать так, чтобы оно работало на ход противника, или на следующий день после получения? Как сделать, чтобы у героев игрока не было пунктов хода? Ну и задание по сбору: выполнено, когда сработали триггеры на сообщение и присоединение: как это написать?
Ух, и столько работы для карты крошечного размера! Надо хоть как-то её разнообразить? И спасибо, Ment, Ser9K.
Что-то у меня MessageBox не работает. Ладно, буду ещё разбираться!
Так можно максимально подробно описать, как поставить задание? Обычное, без смысла, просто зайти в регион, где написать для него текст? А DefeatHero как настроить: описание, запуск и чтобы по выполнению проигрывался ролик и кончалась миссия?
Теперь по другим картам. Вот интересно, как работает "Призыв Ильм-Хиджры" из Повелителей? Это перемещение обджектов?
А как забирать войска у героя? Просто хочу подготовить особенную карту к ноябрю этого года (вопрос на засыпку: что будет в ноябре?), а основная часть в ней также должна быть заскриптована. Причём то, что я сказал - самое важное. Помогите, а?
Я тоже с ним долго разбирался. Проблема была в том, что я сообщения печатал в блокноте, а он автоматом не тот формат выбирает. Короче, посмотри эту тему, тут всё про MessageBox написано, что можно.Гильраен
Так можно максимально подробно описать, как поставить задание?
В смысле, включая название, описание задания? Или я не понял? Потому что скриптовая часть исчерпывается функцией SetObjectiveState. Ну можно ещё иногда применять SetObjectiveProgress.Гильраен
DefeatHero как настроить: описание, запуск и чтобы по выполнению проигрывался ролик и кончалась миссия?
Значит так(+скриншот):
function P0_end() StartDialogScene("bla-bla"); Win(1); end;
function P0_start() SetObjectiveState("P0",OBJECTIVE_ACTIVE); Trigger(OBJECTIVE_STATE_CHANGE_TRIGGER,"P0","P0_end"); end;
Trigger(Тип триггера,parametrs,"P0_start");
Гильраен
Вот интересно, как работает "Призыв Ильм-Хиджры" из Повелителей? Это перемещение обджектов?
Да, похоже, это скриптовое заклинание, перемещающее объект. Хотя я там в скрипте не рылся.:) Гильраен
О Господи! Это MoveHero тоже не работает!! Я могу понять этих двух героев- на смерть идти не хочется, но со скриптами они же должны работать!!! У меня герои врага либо желают что хотят (пока я не посавил блоки) или просто стоят (как в последних трёх случаях). Я их уже и. MoveHero зову, и AiAttractorom тоже приманиваю, но нет же - упёрлись рогом!
О Господи! Это MoveHero тоже не работает!! Я могу понять этих двух героев- на смерть идти не хочется, но со скриптами они же должны работать!!! У меня герои врага либо желают что хотят (пока я не посавил блоки) или просто стоят (как в последних трёх случаях). Я их уже и. MoveHero зову, и AiAttractorom тоже приманиваю, но нет же - упёрлись рогом!
Из фанатского руководства по скриптам: если вы хотите, чтобы компьютерный игрок стремглав мчался к какому-то объекту на карте и только по определённому пути, заблокируйте ему другие и повесьте наибольший приоритет на тот объект. Однако не забудьте снять приоритет, как только игрок до него дотронется, иначе АИ до конца своих дней будет в него самым непристойным образом тыкаться.