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

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

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

Ответ
Страница 8 из 260
 
Опции темы
#106
Старый 09.07.2010, 21:47
  #106
^
Valeonos
📖
Регистрация: 02.06.2010
Сообщения: 22
Регистрация: 02.06.2010
Сообщения: 22
По умолчанию
Re: Скрипты

Ser9K, похоже я понял в чем ошибка.. В архиве фаилов text1 и text2 нету. Я их туда добовляю, выхожу, снова захожу и их нету.. В чем проблема?
Valeonos вне форума
Ответить с цитированием
#107
Старый 10.07.2010, 10:42
  #107
^
Ser9K
 
Аватар для Ser9K
📖
Регистрация: 05.07.2007
Адрес: В далеком забытом лесу
Сообщения: 103
Выставка наград
Регистрация: 05.07.2007
Адрес: В далеком забытом лесу
Сообщения: 103
Выставка наград
По умолчанию
Re: Скрипты

Попробуй создать text1 и text2 через CustomGoal, которая находится чуть выше Odjectives. Кликаешь там на пустом поле жмешь new и вводишь название текстового сообщения, затем само сообщение. Жмешь ок, потом сохранить. Строку из CustomGoal затем нужно (!) удалить. На мой взгляд, это самый простой способ.
Ser9K вне форума
Ответить с цитированием
#108
Старый 10.07.2010, 11:44
  #108
^
Valeonos
📖
Регистрация: 02.06.2010
Сообщения: 22
Регистрация: 02.06.2010
Сообщения: 22
По умолчанию
Re: Скрипты

Ser9K, так и сделал, но все равно не работает... Тперь он правда не может создать файл с именем text1, но почему-то не работает...
Valeonos вне форума
Ответить с цитированием
#109
Старый 10.07.2010, 12:48
  #109
^
Dyrman
 
Аватар для Dyrman
📖
Регистрация: 24.06.2008
Адрес: Там, где неба кончается край
Сообщения: 3479
Отправить сообщение для  Dyrman с помощью ICQ
Регистрация: 24.06.2008
Адрес: Там, где неба кончается край
Сообщения: 3479
Отправить сообщение для  Dyrman с помощью ICQ
По умолчанию
Re: Скрипты

ValeonosSer9K, так и сделал, но все равно не работает... Тперь он правда не может создать файл с именем text1, но почему-то не работает...
Попробуй использовать програмку http://hmm5.sklabs.ru/
Dyrman вне форума
Ответить с цитированием
#110
Старый 11.07.2010, 11:05
  #110
^
Valeonos
📖
Регистрация: 02.06.2010
Сообщения: 22
Регистрация: 02.06.2010
Сообщения: 22
По умолчанию
Re: Скрипты

Я уже не знаю, что делать. Все попробовал и с программой и без.. Может кто-нибудь посмотрит что не так...
Вложения
Тип файла: zip Isand Triads.zip (170.6 Кбайт, 148 просмотров)
Valeonos вне форума
Ответить с цитированием
#111
Старый 11.07.2010, 19:07
  #111
^
Ser9K
 
Аватар для Ser9K
📖
Регистрация: 05.07.2007
Адрес: В далеком забытом лесу
Сообщения: 103
Выставка наград
Регистрация: 05.07.2007
Адрес: В далеком забытом лесу
Сообщения: 103
Выставка наград
По умолчанию
Re: Скрипты

Блин... ну конечно же!
PlayerHero = скриптовое имя героя который должен войти в регион написанное в "" (смотреть во вкладке Settings -> Script Name)

function kamillaF(hero)
if hero == PlayerHero then
MessageBox ("/Maps/SingleMissions/Island_Triads/text1.txt");
Trigger (REGION_AND_STOP_TRIGGER, "kamilla", nil );
end;
end;

Trigger (REGION_AND_STOP_TRIGGER, "kamilla", "kamillaF" );
Ser9K вне форума
Ответить с цитированием
#112
Старый 11.07.2010, 22:36
  #112
^
Valeonos
📖
Регистрация: 02.06.2010
Сообщения: 22
Регистрация: 02.06.2010
Сообщения: 22
По умолчанию
Re: Скрипты

Рад, что ты понял, правда я все равно нет =)

Вот, что я сделал, но похоже не то. Имя героя, вроде как Nemor.

SetPlayerStartResources(PLAYER_1,0,0,0,0,0,0,0);

function kamillaF(Nemor)
if hero == Nemor then
MessageBox ("/Maps/SingleMissions/Island_Triads/text1.txt");
Trigger (REGION_AND_STOP_TRIGGER, "kamilla", nil );
function aF()
if hero == Nemor then
Trigger(REGION_AND_STOP_TRIGGER,"a1",nil);
MessageBox("/Maps/SingleMissions/Island_Triads/text2.txt");
end;
end;
end;
Valeonos вне форума
Ответить с цитированием
#113
Старый 12.07.2010, 01:22
  #113
^
Dyrman
 
Аватар для Dyrman
📖
Регистрация: 24.06.2008
Адрес: Там, где неба кончается край
Сообщения: 3479
Отправить сообщение для  Dyrman с помощью ICQ
Регистрация: 24.06.2008
Адрес: Там, где неба кончается край
Сообщения: 3479
Отправить сообщение для  Dyrman с помощью ICQ
По умолчанию
Re: Скрипты

Имя героя в кавычках : "Nemor"
Dyrman вне форума
Ответить с цитированием
#114
Старый 12.07.2010, 10:18
  #114
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30680
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30680
По умолчанию
Re: Скрипты

Не REGION_AND_STOP_TRIGGER, a REGION_ENTER_AND_STOP_TRIGGER. Endы, по-моему, не там стоят.
Ment вне форума
Ответить с цитированием
#115
Старый 12.07.2010, 17:03
  #115
^
FireShaman
 
Аватар для FireShaman
📖
Регистрация: 04.06.2010
Адрес: Пермь
Сообщения: 15
Регистрация: 04.06.2010
Адрес: Пермь
Сообщения: 15
По умолчанию
Re: Скрипты

а также отсутствуют строчки Trigger (REGION_AND_STOP_TRIGGER, "kamilla", "kamillaF" ); и Trigger(REGION_AND_STOP_TRIGGER,"a1","aF");
FireShaman вне форума
Ответить с цитированием
#116
Старый 12.07.2010, 17:26
  #116
^
Valeonos
📖
Регистрация: 02.06.2010
Сообщения: 22
Регистрация: 02.06.2010
Сообщения: 22
По умолчанию
Re: Скрипты

все еще не работает...

SetPlayerStartResources(PLAYER_1,0,0,0,0,0,0,0);

function kamillaF("Nemor")
if hero == "Nemor" then
Trigger (REGION_ENTER_AND_STOP_TRIGGER, "kamilla",nil);
MessageBox ("/Maps/SingleMissions/Island_Triads/text1.txt");
Trigger (REGION_ENTER_AND_STOP_TRIGGER, "kamilla","kamillaF");
function aF()
if hero == "Nemor" then
Trigger(REGION_ENTER_AND_STOP_TRIGGER,"a1",nil);
MessageBox("/Maps/SingleMissions/Island_Triads/text2.txt");
Trigger (REGION_ENTER_AND_STOP_TRIGGER, "a1","aF");
end;
end;
end;
Valeonos вне форума
Ответить с цитированием
#117
Старый 12.07.2010, 17:41
  #117
^
FireShaman
 
Аватар для FireShaman
📖
Регистрация: 04.06.2010
Адрес: Пермь
Сообщения: 15
Регистрация: 04.06.2010
Адрес: Пермь
Сообщения: 15
По умолчанию
Re: Скрипты

Так попробуй
SetPlayerStartResources(PLAYER_1,0,0,0,0,0,0,0);

function kamillaF("Nemor")
if hero == "Nemor" then
Trigger (REGION_ENTER_AND_STOP_TRIGGER, "kamilla",nil);
MessageBox ("/Maps/SingleMissions/Island_Triads/text1.txt");
end;
end;
Trigger (REGION_ENTER_AND_STOP_TRIGGER, "kamilla","kamillaF");
function aF()
if hero == "Nemor" then
Trigger(REGION_ENTER_AND_STOP_TRIGGER,"a1",nil);
MessageBox("/Maps/SingleMissions/Island_Triads/text2.txt");
Trigger (REGION_ENTER_AND_STOP_TRIGGER, "a1","aF");
end;
end;

Добавлено через 3 минуты
а блин ошибся. последние два энда перед последним триггером
FireShaman вне форума
Ответить с цитированием
#118
Старый 12.07.2010, 18:22
  #118
^
Ser9K
 
Аватар для Ser9K
📖
Регистрация: 05.07.2007
Адрес: В далеком забытом лесу
Сообщения: 103
Выставка наград
Регистрация: 05.07.2007
Адрес: В далеком забытом лесу
Сообщения: 103
Выставка наград
По умолчанию
Re: Скрипты

Блин... вы что советуете? 0_o Я же сказал как нужно...

В твоем случае, если герой и впрямь Nemor (в простонародье Дейдра) то скрипт будет выглядеть так.

PlayerHero = "Nemor"

function kamillaF(hero)
if hero == PlayerHero then
MessageBox ( "/Maps/SingleMissions/Island_Triads/text1.txt" );
Trigger( REGION_ENTER_AND_STOP_TRIGGER, "kamilla", nil );
end;
end;

Trigger( REGION_ENTER_AND_STOP_TRIGGER, "kamilla", "kamillaF" );


Объясняю. PlayerHero это переменная созданная для удобства... во всяком случае мне и Nival'у так кажется. Можно и просто:

if hero == "Nemor" then

А можно вместо PlayerHero писать что угодно на латинице.
Ser9K вне форума
Ответить с цитированием
#119
Старый 06.09.2010, 07:30
  #119
^
Ser9K
 
Аватар для Ser9K
📖
Регистрация: 05.07.2007
Адрес: В далеком забытом лесу
Сообщения: 103
Выставка наград
Регистрация: 05.07.2007
Адрес: В далеком забытом лесу
Сообщения: 103
Выставка наград
По умолчанию
Re: Скрипты

По просьбе выкладываю тут
EnableAIHero( "RedHeavenHero04", false );
EnableAIHero( "RedHeavenHero06", false );
EnableAIHero( "RedHeavenHero03", false );
EnableAIHero( "Duncan", false );
EnableAIHero( "Freyda", false );

Ошибка закралась тут EnableAIHero. Правильно будет так EnableHeroAI

function death2 ()
PlayObjectAnimation ("golem", "death", ONESHOT_STILL);
end;
startThread(death2);

function death3 ()
PlayObjectAnimation ("gremlin", "death", ONESHOT_STILL);
end;
startThread(death3);

У голема в роликовой части нету анимации смерти (про гремлина не знаю). А эта функция берет ее именно отуда. Не знаю почему так сделано, но у многих существ анимация смерти там отсутствует. Придется менять существ на других.

И главный скрипт карты - герой (Zehyr) заходит в область, проигрывается ролик, герой, который был в этой области пермещается на другую точку (как бы телепортом), игроку (Зехиру) даётся контроль над городами и войсками другого игрока, а на последующем после этого ходу противника, вражеские герои нападают на города (человек будет чуть-чуть сильнее).

Разобьем на пару моментов.

Во-первых про заход в регион, проигрывания роликов, перенос героя и сдачу ему города. Используется простой стандартный триггер:

PlayerHero меняй на свеого.
START_DIALOG переменная куда забит адрес твоего ролика, выглядит примерно так:

START_DIALOG = "/DialogScenes/UC2/M5/S1/DialogScene.xdb#xpointer(/DialogScene)"

	function noname(hero)
	if hero == PlayerHero then
		StartDialogScene( START_DIALOG );
                SetObjectPosition( PlayerHero, 34, 6, 1 );
                SetObjectOwner("TownSilvan", PLAYER_1);
		Trigger( REGION_ENTER_AND_STOP_TRIGGER, "regionname", nil );
	end;
end;
Trigger( REGION_ENTER_AND_STOP_TRIGGER, "regionname","noname", nil );

SetObjectPosition

Параметры такие. ( heroname, x, y, z )

z - уровень (подземный или надземный). Не помню точно но кажется 1 - это подземный. То ли 0, то ли 2 - надземный. Можно вообще поставить nil тогда на тот же где он и стоял.

SetObjectOwner

Тут попроще. ( скриптовое имя города (задаешь его сам), игрок )

Во-вторых про захват городов. Тут вообще полная... кхм... ну короче есть сложности.

Существует такая вот функция:


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

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

Выглядит хорошо, но не всегда работает как надо.
Ser9K вне форума
Ответить с цитированием
#120
Старый 06.09.2010, 07:45
  #120
^
Победитель
 
Аватар для Победитель
📖
Регистрация: 18.07.2008
Сообщения: 3427
Выставка наград
Регистрация: 18.07.2008
Сообщения: 3427
Выставка наград
По умолчанию
Re: Скрипты

Угу, спасибо, только ещё одно (два): после ролика мне необходимо ещё телепортировать "Enabledнутого" героя на другую позицию. И с аттрактором: он у меня должен примениться на отключенных героев. Они на следующем ходу пойдут, или их надо как-то включить?

Спасибо большое !
Победитель вне форума
Ответить с цитированием
Ответ
Страница 8 из 260


Опции темы



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


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

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