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

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

16 лет назад
Ser9K, похоже я понял в чем ошибка.. В архиве фаилов text1 и text2 нету. Я их туда добовляю, выхожу, снова захожу и их нету.. В чем проблема?
Аватар пользователя
16 лет назад
Попробуй создать text1 и text2 через CustomGoal, которая находится чуть выше Odjectives. Кликаешь там на пустом поле жмешь new и вводишь название текстового сообщения, затем само сообщение. Жмешь ок, потом сохранить. Строку из CustomGoal затем нужно (!) удалить. На мой взгляд, это самый простой способ.
16 лет назад
Ser9K, так и сделал, но все равно не работает... Тперь он правда не может создать файл с именем text1, но почему-то не работает...
В ответ пользователю Valeonos
Аватар пользователя
16 лет назад
Valeonos
Ser9K, так и сделал, но все равно не работает... Тперь он правда не может создать файл с именем text1, но почему-то не работает...
Попробуй использовать програмку http://hmm5.sklabs.ru/
16 лет назад
Я уже не знаю, что делать. Все попробовал и с программой и без.. Может кто-нибудь посмотрит что не так...
Вложения 1
1 файл • Общий размер: 177,4 KB
Аватар пользователя
16 лет назад
Блин... ну конечно же! :D
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" );
16 лет назад
Рад, что ты понял, правда я все равно нет =)

Вот, что я сделал, но похоже не то. Имя героя, вроде как 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;
Аватар пользователя
16 лет назад
Имя героя в кавычках : "Nemor" ;)
Аватар пользователя
16 лет назад
Не REGION_AND_STOP_TRIGGER, a REGION_ENTER_AND_STOP_TRIGGER. Endы, по-моему, не там стоят.
Аватар пользователя
16 лет назад
а также отсутствуют строчки Trigger (REGION_AND_STOP_TRIGGER, "kamilla", "kamillaF" ); и Trigger(REGION_AND_STOP_TRIGGER,"a1","aF");
16 лет назад
все еще не работает...

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;
Аватар пользователя
16 лет назад
Так попробуй
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 минуты
а блин ошибся. последние два энда перед последним триггером
Аватар пользователя
16 лет назад
Блин... вы что советуете? 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
Аватар пользователя
15 лет назад
По просьбе выкладываю тут :)
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 - наивысший (то бишь захватывать будет невзирая на опасность умереть).

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

Спасибо большое !

Статистика

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

Сейчас на сайте 1 пользователей 1161 гостей