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

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

Аватар пользователя
15 лет назад
SetAIHeroAttractor("DangeonTown", "Oddrema", 2);

Указываешь город, героя и приоритет. 2 - наивысший (то бишь захватывать будет невзирая на опасность умереть).

Выглядит хорошо, но не всегда работает как надо.
но факт что работает проверено лично мною в карте "Астралия" :D
В ответ пользователю Победитель
Аватар пользователя
15 лет назад
после ролика мне необходимо ещё телепортировать "Enabledнутого" героя на другую позицию
SetObjectPosition ;) эта функция переноса.
И с аттрактором: он у меня должен примениться на отключенных героев. Они на следующем ходу пойдут, или их надо как-то включить?
Ну так в этом триггире их и включи. В ход игрока они все равно ни куда не денутся. А со следующего хода двинутся к городу.
Аватар пользователя
15 лет назад
Квант
Но факт что работает проверено лично мною в карте "Астралия"
Не знаю, как там у тебя в Астралии, но я такую вещь делал в Гномании. В 90% случаев работало, но в 10% комп направлялся в противоположную сторону. Пришлось поставить функцию MoveHero. Такие дела.
Аватар пользователя
15 лет назад
Так, из первой порции сработало всё, кроме Ai аттрактора. Бегут куда хотят. Нет другого способа? И, перед тем как начинается битва чтобы выскакивало сообщение?

Часть два. Мне необходимо ещё такое: подбегаешь к отряду, выскакивает сообщение, отряд с карты исчезает, а в армию добавляются войска. Герой конкретный. Второе: побеждаешь монстра и выскакивает сообщение.

И наконец, последнее: задания. Первое смысловой нагрузки не несёт и звучит так: добраться до дороги на Аль-Сафир. Просто чтобы появлялось и считалось выполненным после триггера с роликом в предыдущей части. Ещё два: главное - убить вражеского героя и второстепенная - собрать кучки существ с карты (к этому относятся и предыдущие скрипты с добавлением в армию). Как это можно сделать? Пожалуйста помогите!
Аватар пользователя
15 лет назад
Гильраен
Так, из первой порции сработало всё, кроме 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 и всё.
Гильраен
Просто чтобы появлялось и считалось выполненным после триггера с роликом в предыдущей части.
SetObjectiveState("PrimObj0",OBJECTIVE_COMPLETED);--выполнение
SetObjectiveState("PrimObj0",OBJECTIVE_ACTIVE);--появление
Гильраен
убить вражеского героя
Там есть стандартное задание -- Defeat Hero.
Аватар пользователя
15 лет назад
Спасибо, вечером буду пытаться. Только немного не понял с добавлением существ, что есть переменная k, n и, как выглядит CREATURE_ID?
Аватар пользователя
15 лет назад
k -- количество присоединившихся отрядов. n -- кол-во, необходимое для выполнения задания.
CREATURE_ID -- номер существа (можно узнать в файле ID's_for_script.pdf или как-то так)
Аватар пользователя
15 лет назад
Так-с. По поводу SetObjectEnabled - от этого же отряд не исчезает, а мне нужно, чтобы исчез (герой воскресил мёртвых воинов и они присоединились к нему). Задание такое: две воскресших кучки и три собранных. Воскресшие: громовержцы, маги; присоединяющиеся: големы, маги, громовержцы. Разве можно объединить их в одну переменную? А DefeatHero - где его найти?

Задания. Для SetObjectiveState не нужна функция? Оно работает просто так? А как добавить к заданию описание?
Аватар пользователя
15 лет назад
Да, забыл... RemoveObject('monster');--убрать объект. Насчёт воскрешения--поподробнее, пожалуйста.
DefeatHero-- в дереве свойств карты, objectives, objective kind.
SetObjectiveState работает так.
Описание задания--objectives, objective description.
Аватар пользователя
15 лет назад
По поводу воскрешения - это сюжетный момент. Но вот что мне ещё надо. Move Hero: а можно сделать так, чтобы оно работало на ход противника, или на следующий день после получения? Как сделать, чтобы у героев игрока не было пунктов хода? Ну и задание по сбору: выполнено, когда сработали триггеры на сообщение и присоединение: как это написать?

Ух, и столько работы для карты крошечного размера! Надо хоть как-то её разнообразить? И спасибо, Ment, Ser9K.
Аватар пользователя
15 лет назад
Гильраен
Move Hero: а можно сделать так, чтобы оно работало на ход противника, или на следующий день после получения?
MoveHero всегда работает на ход противника. Не путай с MoveHeroRealTime ;)
Гильраен
Как сделать, чтобы у героев игрока не было пунктов хода?
x=-GetHeroStat("EnemyHero",STAT_MOVE_POINTS);
ChangeHeroStat("EnemyHero",STAT_MOVE_POINTS,x);
Гильраен
Ну и задание по сбору: выполнено, когда сработали триггеры на сообщение и присоединение: как это написать?
Если я правильно понял, то это уже написано, смотри ранее. Там проверяется, равно ли k и n. Если равны, то задание "Obj" выполнено.
Аватар пользователя
15 лет назад
Что-то у меня MessageBox не работает. Ладно, буду ещё разбираться!

Так можно максимально подробно описать, как поставить задание? Обычное, без смысла, просто зайти в регион, где написать для него текст? А DefeatHero как настроить: описание, запуск и чтобы по выполнению проигрывался ролик и кончалась миссия?

Теперь по другим картам. Вот интересно, как работает "Призыв Ильм-Хиджры" из Повелителей? Это перемещение обджектов?

А как забирать войска у героя? Просто хочу подготовить особенную карту к ноябрю этого года (вопрос на засыпку: что будет в ноябре?), а основная часть в ней также должна быть заскриптована. Причём то, что я сказал - самое важное. Помогите, а?
Аватар пользователя
15 лет назад
Гильраен
Что-то у меня MessageBox не работает.
Я тоже с ним долго разбирался. Проблема была в том, что я сообщения печатал в блокноте, а он автоматом не тот формат выбирает. Короче, посмотри эту тему, тут всё про 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");
Гильраен
Вот интересно, как работает "Призыв Ильм-Хиджры" из Повелителей? Это перемещение обджектов?
Да, похоже, это скриптовое заклинание, перемещающее объект. Хотя я там в скрипте не рылся.:)
Гильраен
А как забирать войска у героя?
Мануальчик
RemoveHeroCreatures(heroname, creatureID, quantity);
Советую почаще заглядывать в вышеприведённый источник. Вообще классная штука -- не понимаю, почему народ ей пренебрегает ;)
Вложения 1
1 файл • Общий размер: 139,4 KB
Аватар пользователя
15 лет назад
О Господи! Это MoveHero тоже не работает!! Я могу понять этих двух героев- на смерть идти не хочется, но со скриптами они же должны работать!!! У меня герои врага либо желают что хотят (пока я не посавил блоки) или просто стоят (как в последних трёх случаях). Я их уже и. MoveHero зову, и AiAttractorom тоже приманиваю, но нет же - упёрлись рогом!
В ответ пользователю Победитель
Аватар пользователя
15 лет назад
Гильраен
О Господи! Это MoveHero тоже не работает!! Я могу понять этих двух героев- на смерть идти не хочется, но со скриптами они же должны работать!!! У меня герои врага либо желают что хотят (пока я не посавил блоки) или просто стоят (как в последних трёх случаях). Я их уже и. MoveHero зову, и AiAttractorom тоже приманиваю, но нет же - упёрлись рогом!
Из фанатского руководства по скриптам:
если вы хотите, чтобы
компьютерный игрок стремглав мчался к какому-то объекту на карте и только по
определённому пути, заблокируйте ему другие и повесьте наибольший приоритет на тот
объект. Однако не забудьте снять приоритет, как только игрок до него дотронется, иначе АИ
до конца своих дней будет в него самым непристойным образом тыкаться.

Статистика

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

Сейчас на сайте 8 пользователей 1326 гостей