Скрипты - Страница 9 - Форум HeroesWorld-а

Быстрая навигация по основным разделам форума:
Турниры
КАРТЫ
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

Герои Меча и Магии 5 - Картостроительство (Редактор карт) В этом разделе можно обсуждать все что касается редактора карт для Heroes of Might and Magic V. Так же здесь обсуждаем картостроительство.

Ответ
Страница 9 из 260
 
Опции темы
#121
Старый 06.09.2010, 10:04
  #121
^
Квант
 
Аватар для Квант
📖
Регистрация: 23.12.2009
Адрес: Тюмень
Сообщения: 312
Отправить сообщение для  Квант с помощью ICQ
Выставка наград
Регистрация: 23.12.2009
Адрес: Тюмень
Сообщения: 312
Отправить сообщение для  Квант с помощью ICQ
Выставка наград
По умолчанию
Re: Скрипты

SetAIHeroAttractor("DangeonTown", "Oddrema", 2);

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

Выглядит хорошо, но не всегда работает как надо.
но факт что работает проверено лично мною в карте "Астралия"
Квант вне форума
Ответить с цитированием
#122
Старый 06.09.2010, 10:17
  #122
^
Ser9K
 
Аватар для Ser9K
📖
Регистрация: 05.07.2007
Адрес: В далеком забытом лесу
Сообщения: 103
Выставка наград
Регистрация: 05.07.2007
Адрес: В далеком забытом лесу
Сообщения: 103
Выставка наград
По умолчанию
Re: Скрипты

после ролика мне необходимо ещё телепортировать "Enabledнутого" героя на другую позицию
SetObjectPosition эта функция переноса.

И с аттрактором: он у меня должен примениться на отключенных героев. Они на следующем ходу пойдут, или их надо как-то включить?
Ну так в этом триггире их и включи. В ход игрока они все равно ни куда не денутся. А со следующего хода двинутся к городу.
Ser9K вне форума
Ответить с цитированием
#123
Старый 06.09.2010, 13:14
  #123
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30674
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30674
Радость
Re: Скрипты

КвантНо факт что работает проверено лично мною в карте "Астралия"
Не знаю, как там у тебя в Астралии, но я такую вещь делал в Гномании. В 90% случаев работало, но в 10% комп направлялся в противоположную сторону. Пришлось поставить функцию MoveHero. Такие дела.
Ment вне форума
Ответить с цитированием
#124
Старый 06.09.2010, 19:16
  #124
^
Победитель
 
Аватар для Победитель
📖
Регистрация: 18.07.2008
Сообщения: 3427
Выставка наград
Регистрация: 18.07.2008
Сообщения: 3427
Выставка наград
По умолчанию
Re: Скрипты

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

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

И наконец, последнее: задания. Первое смысловой нагрузки не несёт и звучит так: добраться до дороги на Аль-Сафир. Просто чтобы появлялось и считалось выполненным после триггера с роликом в предыдущей части. Ещё два: главное - убить вражеского героя и второстепенная - собрать кучки существ с карты (к этому относятся и предыдущие скрипты с добавлением в армию). Как это можно сделать? Пожалуйста помогите!
Победитель вне форума
Ответить с цитированием
#125
Старый 08.09.2010, 21:57
  #125
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30674
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30674
По умолчанию
Re: Скрипты

ГильраенТак, из первой порции сработало всё, кроме 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.
Ment вне форума
Ответить с цитированием
#126
Старый 09.09.2010, 07:23
  #126
^
Победитель
 
Аватар для Победитель
📖
Регистрация: 18.07.2008
Сообщения: 3427
Выставка наград
Регистрация: 18.07.2008
Сообщения: 3427
Выставка наград
По умолчанию
Re: Скрипты

Спасибо, вечером буду пытаться. Только немного не понял с добавлением существ, что есть переменная k, n и, как выглядит CREATURE_ID?
Победитель вне форума
Ответить с цитированием
#127
Старый 09.09.2010, 07:47
  #127
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30674
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30674
По умолчанию
Re: Скрипты

k -- количество присоединившихся отрядов. n -- кол-во, необходимое для выполнения задания.
CREATURE_ID -- номер существа (можно узнать в файле ID's_for_script.pdf или как-то так)
Ment вне форума
Ответить с цитированием
#128
Старый 09.09.2010, 07:59
  #128
^
Победитель
 
Аватар для Победитель
📖
Регистрация: 18.07.2008
Сообщения: 3427
Выставка наград
Регистрация: 18.07.2008
Сообщения: 3427
Выставка наград
По умолчанию
Re: Скрипты

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

Задания. Для SetObjectiveState не нужна функция? Оно работает просто так? А как добавить к заданию описание?
Победитель вне форума
Ответить с цитированием
#129
Старый 09.09.2010, 09:03
  #129
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30674
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30674
По умолчанию
Re: Скрипты

Да, забыл... RemoveObject('monster');--убрать объект. Насчёт воскрешения--поподробнее, пожалуйста.
DefeatHero-- в дереве свойств карты, objectives, objective kind.
SetObjectiveState работает так.
Описание задания--objectives, objective description.
Ment вне форума
Ответить с цитированием
#130
Старый 09.09.2010, 16:59
  #130
^
Победитель
 
Аватар для Победитель
📖
Регистрация: 18.07.2008
Сообщения: 3427
Выставка наград
Регистрация: 18.07.2008
Сообщения: 3427
Выставка наград
По умолчанию
Re: Скрипты

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

Ух, и столько работы для карты крошечного размера! Надо хоть как-то её разнообразить? И спасибо, Ment, Ser9K.
Победитель вне форума
Ответить с цитированием
#131
Старый 09.09.2010, 17:14
  #131
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30674
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30674
По умолчанию
Re: Скрипты

ГильраенMove Hero: а можно сделать так, чтобы оно работало на ход противника, или на следующий день после получения?
MoveHero всегда работает на ход противника. Не путай с MoveHeroRealTime
ГильраенКак сделать, чтобы у героев игрока не было пунктов хода?
x=-GetHeroStat("EnemyHero",STAT_MOVE_POINTS);
ChangeHeroStat("EnemyHero",STAT_MOVE_POINTS,x);
ГильраенНу и задание по сбору: выполнено, когда сработали триггеры на сообщение и присоединение: как это написать?
Если я правильно понял, то это уже написано, смотри ранее. Там проверяется, равно ли k и n. Если равны, то задание "Obj" выполнено.
Ment вне форума
Ответить с цитированием
#132
Старый 13.09.2010, 21:26
  #132
^
Победитель
 
Аватар для Победитель
📖
Регистрация: 18.07.2008
Сообщения: 3427
Выставка наград
Регистрация: 18.07.2008
Сообщения: 3427
Выставка наград
По умолчанию
Re: Скрипты

Что-то у меня MessageBox не работает. Ладно, буду ещё разбираться!

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

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

А как забирать войска у героя? Просто хочу подготовить особенную карту к ноябрю этого года (вопрос на засыпку: что будет в ноябре?), а основная часть в ней также должна быть заскриптована. Причём то, что я сказал - самое важное. Помогите, а?
Победитель вне форума
Ответить с цитированием
#133
Старый 13.09.2010, 22:41
  #133
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30674
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30674
По умолчанию
Re: Скрипты

ГильраенЧто-то у меня 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);
Советую почаще заглядывать в вышеприведённый источник. Вообще классная штука -- не понимаю, почему народ ей пренебрегает
Миниатюры
Нажмите на изображение для увеличения
Название:  scrsh.jpg
Просмотров: 289
Размер:	196.6 Кбайт
ID:	20166  
Ment вне форума
Ответить с цитированием
#134
Старый 18.09.2010, 09:02
  #134
^
Победитель
 
Аватар для Победитель
📖
Регистрация: 18.07.2008
Сообщения: 3427
Выставка наград
Регистрация: 18.07.2008
Сообщения: 3427
Выставка наград
По умолчанию
Re: Скрипты

О Господи! Это MoveHero тоже не работает!! Я могу понять этих двух героев- на смерть идти не хочется, но со скриптами они же должны работать!!! У меня герои врага либо желают что хотят (пока я не посавил блоки) или просто стоят (как в последних трёх случаях). Я их уже и. MoveHero зову, и AiAttractorom тоже приманиваю, но нет же - упёрлись рогом!
Победитель вне форума
Ответить с цитированием
#135
Старый 18.09.2010, 11:39
  #135
^
Nikitatigr
 
Аватар для Nikitatigr
📖
Регистрация: 08.08.2010
Сообщения: 99
Регистрация: 08.08.2010
Сообщения: 99
Сообщение
Re: Скрипты

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


Опции темы



Часовой пояс GMT +4, время: 05:28.


vBulletin v3.5.0, Copyright ©2000-2024, Jelsoft Enterprises Ltd. (Русский)

Яндекс цитирование    Top.Mail.Ru