Сразу извиняюсь за стену текста, но раз этот человек сам не хочет
(ничему учиться) открывать руководства, процитирую ему от туда то, что нужно.
Цитирую: "Практически всё в этом мире делается с помощью триггеров. Выглядит, он, к примеру, так:
Trigger(REGION_ENTER_AND_STOP_TRIGGER,
“kamilla”,
“kamillaF” );
Триггер будет висеть в игре всё время, и реагировать на те «раздражители», которые вы ему
указали. Например, этот будет реагировать на вход в регион “kamilla” героя и вызывать в это
время функцию “kamillaF”. Рассмотрим этот пример гораздо более подробно."
Для того, чтобы создать регион, нужно перейти в 4-ю вкладку в панели редактора, щелкнуть New Region и на карте, удерживая ЛКМ, перетащить стрелку мыши. Т.е. регион создается также, как и выделяется группа объектов"Регион назван именем kamilla. Что нужно сделать, чтобы он реагировал на то, что в него
кто-то вошёл и при этом выдалось текстовое сообщение? Правильно, повесить триггер.
Смотрим в официальное руководство по скриптам от Нивала (находится по адресу: "папка с
игрой\Editor Documentation") или в руководство Новика и находим наиболее (и единственно)
подходящий триггер - Trigger(REGION_ENTER_AND_STOP_TRIGGER, sRegionName, sProc)
(Процедура (sProc) вызывается, когда какой-либо герой останавливается в регионе с именем
sRegionName).
Триггеры записываются обязательно в том виде, котором они предложены. То есть этот мы
запишем так: Trigger(REGION_ENTER_AND_STOP_TRIGGER, «теперь в кавычках пишем
название региона, которое мы ему дали», «имя функции, которая будет вызываться, когда мы
туда войдём»), и после этого это должно выглядеть так -
Trigger(REGION_ENTER_AND_STOP_TRIGGER,
“kamilla”,
“kamillaF” );
Название функции можете давать любое, но я для удобства даю то же, что и у региона (в
данном случае), только добавляя буковку «F».
Откуда взять функцию, которая будет вызываться? Всё очень просто – написать её.
Вот как это выглядит:
function kamillaF ()
MessageBox("Maps/SingleMissions/НАЗВАНИЕ_КАРТЫ/ИМЯ_ТЕКСТА.txt");
end;
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "kamilla", "kamillaF");
(Скрипты вписываются только в Map Properties -> Scripts)Разъяснение:
Это обязательная надпись function, затем название, отмеченное в триггере, затем пустые
скобки. Зачем? Не знаю, но без них иногда не работает.
Потом, в следующей строке, идёт собственно команда. MessageBox () вызывает окошечко с
описанным вами текстом. Для того чтобы игра могла прочитать текст, текстовый файл в
формате Unicode должен находиться в папке с картой по тому адресу, на который ссылается
скрипт (/Maps/SingleMissions/НАЗВАНИЕ_КАРТЫ) Как туда файл положить? Откройте
карту любым архиватором - это обычный zip-архив. Вложите файл в конечную папку. Как
сделать файл в формате Юникод? Скопируйте любой текстовый документ с карты (к примеру,
name) и сделайте с него копию, а потом вложите обратно уже с новым текстом и названием,
как было описано выше. Все имена следует давать латинскими буквами.
Вместо MessageBox можно вписать любую другую команду или хоть десять MessageBoxов,
все они будут выполняться по очереди.
!Внимание – как именно пользоваться командами достаточно подробно описано у Новика и в
официальном руководстве по скриптам от Нивала. Поэтому это не входит в задачу данного
руководства.
Обязательно следите за тем, чтобы команды были написаны точно так, как и подано в
руководствах. !Помните, большая и маленькая буквы – это разные символы! Так же не
забывайте после каждой команды ставить точку с запятой.
В конце обязательно поставьте end;"
В нашем случае вместо функции MessageBox() нужна функция PlayObjectAnimation (). Ее параметры можно посмотреть в руководстве."Чаще всего нужно, чтобы функция срабатывала лишь однажды, когда герой впервые зайдёт в
обусловленный регион. Для этого обнулите триггер и, желательно, запишите это в самом
начале функции (однако можно и в конце – где запишете, там и обнулится). Обнуляется он
просто: Trigger(REGION_ENTER_AND_STOP_TRIGGER,
“kamilla”,
nil); то есть вместо
имени функции вписывается значение
nil… Выглядит теперь функция так:
function kamillaF ()
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "kamilla", nil );
MessageBox ("/Maps/SingleMissions/ НАЗВАНИЕ_КАРТЫ / НАЗВАНИЕ_ТЕКСТА.txt");
end;
"
Это все, что нужно знать для проигрывания анимации у объекта. Как давать имя объекту (это понадобиться в функции PlayObjectAnimation() ) вам уже более чем подробно объяснили. Ссылка на руководство:
http://hmmp.ru/_ld/1/101_5_1.pdf