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

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

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

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

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

К А
Стикеры GBF в Telegram
Аватар пользователя
Так, из первой порции сработало всё, кроме Ai аттрактора. Бегут куда хотят. Нет другого способа? И, перед тем как начинается битва чтобы выскакивало сообщение?

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

И наконец, последнее: задания. Первое смысловой нагрузки не несёт и звучит так: добраться до дороги на Аль-Сафир. Просто чтобы появлялось и считалось выполненным после триггера с роликом в предыдущей части. Ещё два: главное - убить вражеского героя и второстепенная - собрать кучки существ с карты (к этому относятся и предыдущие скрипты с добавлением в армию). Как это можно сделать? Пожалуйста помогите!
Карты для Heroes of Might and Magic V
Цикл "Закадычные враги": "Особенное гостеприимство, "Супероружие", "Меж молотом и наковальней"
"Падение Шантири"

Кампания для "Кодекса Войны"
"Выбор Сагиттеля"
Аватар пользователя
Гильраен
Так, из первой порции сработало всё, кроме 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.
 

К А
Стикеры GBF в Telegram
Аватар пользователя
Спасибо, вечером буду пытаться. Только немного не понял с добавлением существ, что есть переменная k, n и, как выглядит CREATURE_ID?
Карты для Heroes of Might and Magic V
Цикл "Закадычные враги": "Особенное гостеприимство, "Супероружие", "Меж молотом и наковальней"
"Падение Шантири"

Кампания для "Кодекса Войны"
"Выбор Сагиттеля"
Аватар пользователя
k -- количество присоединившихся отрядов. n -- кол-во, необходимое для выполнения задания.
CREATURE_ID -- номер существа (можно узнать в файле ID's_for_script.pdf или как-то так)
 

К А
Стикеры GBF в Telegram
Аватар пользователя
Так-с. По поводу SetObjectEnabled - от этого же отряд не исчезает, а мне нужно, чтобы исчез (герой воскресил мёртвых воинов и они присоединились к нему). Задание такое: две воскресших кучки и три собранных. Воскресшие: громовержцы, маги; присоединяющиеся: големы, маги, громовержцы. Разве можно объединить их в одну переменную? А DefeatHero - где его найти?

Задания. Для SetObjectiveState не нужна функция? Оно работает просто так? А как добавить к заданию описание?
Карты для Heroes of Might and Magic V
Цикл "Закадычные враги": "Особенное гостеприимство, "Супероружие", "Меж молотом и наковальней"
"Падение Шантири"

Кампания для "Кодекса Войны"
"Выбор Сагиттеля"
Аватар пользователя
Да, забыл... RemoveObject('monster');--убрать объект. Насчёт воскрешения--поподробнее, пожалуйста.
DefeatHero-- в дереве свойств карты, objectives, objective kind.
SetObjectiveState работает так.
Описание задания--objectives, objective description.
 

К А
Стикеры GBF в Telegram
Аватар пользователя
По поводу воскрешения - это сюжетный момент. Но вот что мне ещё надо. Move Hero: а можно сделать так, чтобы оно работало на ход противника, или на следующий день после получения? Как сделать, чтобы у героев игрока не было пунктов хода? Ну и задание по сбору: выполнено, когда сработали триггеры на сообщение и присоединение: как это написать?

Ух, и столько работы для карты крошечного размера! Надо хоть как-то её разнообразить? И спасибо, Ment, Ser9K.
Карты для Heroes of Might and Magic V
Цикл "Закадычные враги": "Особенное гостеприимство, "Супероружие", "Меж молотом и наковальней"
"Падение Шантири"

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

К А
Стикеры GBF в Telegram
Аватар пользователя
Что-то у меня MessageBox не работает. Ладно, буду ещё разбираться!

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

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

А как забирать войска у героя? Просто хочу подготовить особенную карту к ноябрю этого года (вопрос на засыпку: что будет в ноябре?), а основная часть в ней также должна быть заскриптована. Причём то, что я сказал - самое важное. Помогите, а?
Карты для Heroes of Might and Magic V
Цикл "Закадычные враги": "Особенное гостеприимство, "Супероружие", "Меж молотом и наковальней"
"Падение Шантири"

Кампания для "Кодекса Войны"
"Выбор Сагиттеля"
Аватар пользователя
Гильраен
Что-то у меня 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
 

К А
Стикеры GBF в Telegram
Аватар пользователя
О Господи! Это MoveHero тоже не работает!! Я могу понять этих двух героев- на смерть идти не хочется, но со скриптами они же должны работать!!! У меня герои врага либо желают что хотят (пока я не посавил блоки) или просто стоят (как в последних трёх случаях). Я их уже и. MoveHero зову, и AiAttractorom тоже приманиваю, но нет же - упёрлись рогом!
Карты для Heroes of Might and Magic V
Цикл "Закадычные враги": "Особенное гостеприимство, "Супероружие", "Меж молотом и наковальней"
"Падение Шантири"

Кампания для "Кодекса Войны"
"Выбор Сагиттеля"
В ответ пользователю Победитель
Аватар пользователя
Гильраен
О Господи! Это MoveHero тоже не работает!! Я могу понять этих двух героев- на смерть идти не хочется, но со скриптами они же должны работать!!! У меня герои врага либо желают что хотят (пока я не посавил блоки) или просто стоят (как в последних трёх случаях). Я их уже и. MoveHero зову, и AiAttractorom тоже приманиваю, но нет же - упёрлись рогом!
Из фанатского руководства по скриптам:
если вы хотите, чтобы
компьютерный игрок стремглав мчался к какому-то объекту на карте и только по
определённому пути, заблокируйте ему другие и повесьте наибольший приоритет на тот
объект. Однако не забудьте снять приоритет, как только игрок до него дотронется, иначе АИ
до конца своих дней будет в него самым непристойным образом тыкаться.

Статистика

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