Рассмотрим конкретный пример из файла game.inf
//Planting - посадка on:useground { //на событие посадка local $x,$y,$z,$id,$item; //заводим локальные переменные $x=use_x(); //вот по юз точно сказать немогу вероятнее всего дает координату х в месте "соприкосновения" линии взгляда и земли $y=use_y();//тоже самое только у $z=use_z();//только z $item=getplayerweapon();// присваиваем переменной значение ид того что игрок держит в руках if (count_stored("unit",1,$item)>0){// если количество больше 0 (того что в руках) //Grain - пшеница а не солома вовсе посмотрел бы я как вы солому жрать пошли if ($item==42){ //как раз идет проверка пшеница ли это у нее ид = 42 if ($y>0){ //если у > 0 if (freespace($x,$y,$z,20,1,0,0,0)){ // если свободное пространство freestored "unit",1,42,1;// насколько понял убираем у юнита 1(т.е. это игрок) 42 ид вещь(пшеница) в кол - ве 1 шт
$id=create("object",121,$x,$z); //вот как все неоднозначно =)
присваиваем переменной значения: это обьект с идентификатором 121 - это
модель посаженной пшеницы, с координатами х и з event "plant","object",$id;//инициируем событие посадка обьекта с указанными выше хар-ами if (skillvalue("plant")>=400){//еслискилл посадки больше или равно 400 process "planting grain",500;//растим 500 милисек }else{//иначе process "planting grain",2000;//растим 2000 милисек } play "dig.wav";//проигрываем звук копания play "mat_leaf1.wav";//звук листвы event "iskill_plant","global";//событие посадки }else{//иначе относительно условия того что есть место свободное speech "negative";//речь "никак нет еперный вас за ногу" msg "Here is not enough space!",3;//выводим месагу для глухих что никак... }
}else{//иначе относительно y>0 (btw у=0 это граница воды,поясняю еще
яснее если у<0 это ниже уровня воды, автоматически - в воде speech "negative";//никак нет! msg "Grain does not grow in water!",3;//месага: "в воде не растет" } //Sleeping спанье =) on:sleep { //на событие спать if (getplayervalue(4)>5){ //если величина 4 игрока больше 5 (это усталость) local $y; //создаем лок переменную $y=gety("unit",1); //присваиваем ей значения текущей высоты игрока(у) if ($y>0){ // если высота больше 0 те мы не в море решили поспать =) if (playerspotted()==0){//если игрок не замечен животными я понимаю так //Exhaustion
consume 0,-35,-35,100; //консум вобще интересная вещь зачем то
сделали отдельную функцию для стандартных вобщем то переменных что
делает: меняет 4 главных хар - ки игрока на указанные велечины тут :
здоровье не трогает, голод и жажду уменьшает на 35, сон увеличивает на
100 нажрались вобщем мы если я ничего не напутал
//Alcohol Stuff ихааа бухлооо ля ля ля
if ($s2g_alc>200){$s2g_alc=200;} //если $s2g_alc больше
200,приравниваем к 200 я так понимаю это отдельная зарезервированная
переменная под опьянение $s2g_alc-=60;//уменьшаем опьянение 60
if ($s2g_alc<0){$s2g_alc=0;} //если опьянение падает ниже 0
равняем 0 чтоб не получилось того что мы накапливаем запас трезвости и
выжрем хатем 6 бутылок водяры разом без эффекта //Free States freestate "unit",1,"dizzy"; //вот стэйтс это состояния диззи головокружение freestate "unit",1,"fuddle";//хз поищите вродена сайте был список состояний
//Damage if there is no Cover бьет нам по башне если спим под открытым небом =)
if (count_behaviourinrange("object","cover")==0){ //если число
обьектов укрытие равно 0 вот бехавиор ранж спорный вопрос я бы приравнял
к "если в радиусе" $damage=random(10,20);//рандомный дмг в
размере от 10 до 20 хп, блин люблю си подобные языки где захотел там
переменную и воткнул damage "unit",1,$damage;//дмгим на полученный рандом перса freevar $damage;//освобождаем переменную дмг "а то как бы что" }else{ //Treehouse Recover восстановление в домике на дереве if (count_inrange("object",190)>0){//если количество укрытий обьект 190 - это домик на дереве больше чем 0 consume 5,10,10,0;//тот же консум но с другими результатами //Hut Recover }elseif (count_inrange("object",206)>0){ consume 10,15,15,0;//аналогично 1,2,3,4 - главные параметрыи игрока } }
//Plague? чума?
if (count("object",121)>$s2g_plagues){//если количество
"соломы" блин, больше чем в зарезервированной переменной,он где то выше
вроде if (skillvalue("plant")>40){//если скилл посадки больше 40
if (random(1,3)==1){//если хм, кубик с тремя сторонами xD выпал
на одну из них(ну не знаю я как рандом на примере обьяснить) $tmp=0;//о господи накал возрастает, равняем 0 $tmp2=random(5,7);//вторую рандомим это как я предвижу определит кол во саранчи
loop ("objects",121){//к сожалению функцию луп ненаю есть
подозрение что это цикл ибо присутствует счетчик в виде 1 переменной $tmp++;//инкреминируем(это не понтовое слово тако а название увелечения чего либо) на 1 if ($tmp>=$tmp2){//если 1 большеравно 2 $tmp=0;//о господи мы обнуляем первую переменную что то будет! $id=loop_id();// присваеваем переменной значение того что вернул луп,все таки это цикл разобрался) $x=getx("object",$id);//получаем координату хэ $z=getz("object",$id);// у create "unit",43,$x,$z;//создаем О я же говорил мы все умрееем, юнита 43-понмаю так саранча в координатах ху } } freevar $id,$x,$z;//освобождаем от резервации, "о как" ненужные нам более переменные. } } }/ //Autosave автосейв он и есть автосей польза для нас какая:можем включать в любой другой скрипт куда нам захочется autosave; msg "You slept",4;//пишем месагу 4 шрифтом msg "Saved (Autosave)",1;//аналогично 1 }else{ speech "negative";//иначе грим "негатив,файр ин а хол!" msg "I should not sleep now!",3;//месага для глухих 3 шрифтом skipevent;//выходим из события } }else{ speech "negative";//аналог msg "Sleeping in the water?",3;//ты че чел я те бубка гоп чтоль под водой спать? msg "Not a good idea...",3;//ну ты трындец упорный не буду! skipevent;//выходим } freevar $y;//разрезервируем у }else{ speech "negative";//=up= msg "I'm not tired enough!",3;//=up= skipevent;//=up= } }//усе!
//Make Fire фигачим огонек on:barkbranchfire2 {//на событие пум пурум чего то там, но я понял что это событие создания огня из коры и ветви $tmp=random(1,100);//рандомим от 1 до 100
if ($barkbranchfire==0){//если пременная хм хм хм где они ее
резервируют то?равна 0 а наверн это глоб переменка, равнятся 1 на
некоторое время когда происходит событие кора + ветвь speech "negative";//нет! msg "I need a dry fireplace!",3; //нет! }else{
if ($tmp<=$s2g_firesuccess){//ох... рандом они задумали, но! если
наша рандомка меньше глоб переменной успех огня см начало гейм инф
if (addstate("object",$barkbranchfire,"fire")==1){//лобавляем
состояние обьекту ахем вот собственно и место где равняем 1 то что огонь
создан statevalue "object",$barkbranchfire,"fire",0;//жиганули и резко поставили на 0 чтоб мы не бегали и не палили лес) speech "positive";//уря! msg "Fire started",4;//уря! freestored "unit",1,107,1;//уладаляем у обьекта перс ид 107 обьект в кол-ве 1 шт freestored "unit",1,24,1;//удаляем у обьекта перс ид 24 обьект в кол-ве 1 шт }else{ speech "negative";//нет! msg "It's too wet!",3; //нет! } }else{ speech "negative";//нет! msg "It does not work...",3;//нет! msg "I have to try it again!",3; //нет! freestored "unit",1,107,1;//и хоть и не получилось один фиг обьекты удаляем freestored "unit",1,24,1;//2 обьект } } }//усе! //Skillstuff ох ты чтоб вас за ногу а...вермишель с тефтелями, т.е. я имею в виду скиллы
on:skill_wood { msgbox "Skill Info","sys/skillinfos/wood.inf"; }//на
событие вот кстати не оч понял где оно выводит, мб это просмотр скиллов в
рюкзаке?вывод делаю тк затронут файл скилинфос в котором ничего кроме
описания нет. on:iskill_wood {//на использование скилла incskill "wood",1,"Lumbering";//увеличиваем скилл лесоруб на 1 $tmp=skillvalue("wood");//присваиваем переменной значение скилла текущее в
if ($tmp==25){ event "skillup","global"; unlockcombi "branch";
}//вообщем тут и ниже в зависимости от значения скила выдаются различны
плюшки if ($tmp==50){ event "skillup","global";}//происходит глоб событие лвл ап скилла+ как вариант открывается новая комбинация if ($tmp==100){ event "skillup","global";} if ($tmp==200){ event "skillup","global";} if ($tmp==400){ event "skillup","global";} if ($tmp==800){ event "skillup","global";} }
on:skill_fish { msgbox "Skill Info","sys/skillinfos/fish.inf"; }//абсолютно все тоже только с рыбалкой on:iskill_fish { incskill "fish",1,"Fishing"; $tmp=skillvalue("fish"); if ($tmp==25){ event "skillup","global";} if ($tmp==50){ event "skillup","global"; unlockbuilding 9; }//вот тут замете открываем здание с ид 9 if ($tmp==100){ event "skillup","global";} if ($tmp==200){ event "skillup","global";} if ($tmp==500){ event "skillup","global";} } on:skill_hunt { msgbox "Skill Info","sys/skillinfos/hunt.inf"; }//охота on:iskill_hunt { incskill "hunt",1,"Hunting"; $tmp=skillvalue("hunt"); if ($tmp==25){ event "skillup","global";} if ($tmp==50){ event "skillup","global";} if ($tmp==100){ event "skillup","global"; unlockbuilding 10; } if ($tmp==200){ event "skillup","global";} }
on:skill_plant { msgbox "Skill Info","sys/skillinfos/plant.inf"; }//посадка on:iskill_plant { incskill "plant",1,"Planting"; $tmp=skillvalue("plant"); if ($tmp==50){ event "skillup","global";} if ($tmp==100){ event "skillup","global"; unlockbuilding 14;} if ($tmp==200){ event "skillup","global";} if ($tmp==400){ event "skillup","global";} if ($tmp==800){ event "skillup","global";} }
on:skill_dig { msgbox "Skill Info","sys/skillinfos/dig.inf"; }//землекоп on:iskill_dig { incskill "dig",1,"Digging"; $tmp=skillvalue("dig"); if ($tmp==25){ event "skillup","global";} if ($tmp==50){ event "skillup","global";} if ($tmp==100){ event "skillup","global";} if ($tmp==200){ event "skillup","global";} if ($tmp==500){ event "skillup","global";} } on:skillup {//а вот собственно и событие при повышении скилла msg "Skill improved!",1;//месага скилл улучшен! play "fx_spell.wav";//играем музончик
corona getx("unit",1),getz("unit",1),40,255,250,0;//не скажу не знаю
даже не подозреваю, но видя цифры 255 250 0 очень похоже что это эффект
искорок вокруг нас,я просто не помню есть он в игре или нет) } script=end//конец совсем совсем.
Команды вывода текстовых окон. add "Text" Группа: interface Добавляет строку в текстовый буфер. clear Группа: interface Очищает текстовый буфер msgbox "Title", ["Text"] Группа: interface Показывает окно с текстом. Title - заголовок окна; Text - текст выводимый в окне; Если параметр Text не указан, то выводится содержимое текстового буфера. Пример:
// Скрипт подвешенный на отмычку из первой карты Adventure on:drop { clear; // Очищаем буфер // Заполняем буфер двумя строчками add "Ээй... Что-то мне подсказывает, что эта штука мне ещё пригодится! Пожалуй, я её оставлю."; add "Думаю, на этом острове есть что-то, что этой штуковиной можно открыть. Нужно просто найти!"; msgbox "Не выбрасывай!"; // Выводим содержимое буфера в окне skipevent; // Останавливает событие drop, чтобы не выкинуть отмычку }
on:Event { Commands } Categories: basic C помощью команды "on", вы выбираете секцию скрипта выполнятся будет только в этом событии. пример: on:start {msg "sdsad"}//на старт карты (не загрузку игры сохраненной а именно на начало новой игры) выведет сообщение Вообще встречается повсеместно, так что пример можете найти практически в любом скриптовом файле. events //собственно события start - старт новой карты load - загрузка или старт новой presave - перед сохранением postsave - послесохранения create - на создание (обьекта,юнита,...) но не в случае с загрузкой а именно на создание use - на кнопку использования(е), или в случае с вещами на кнопку использовать в инвентаре
hit - на любые повреждения нанесенные игроком(нужно оговорится, сачок к
примеру бьет на 0 , но это тоже считается) фактически - на удар kill - когда уничтоженно/убито
collect - когда вещь подобранна с помощью(е) хотя я понимаю что в
случае добавления с помощь юскрипта чего то в инвентарь событие это же drop - когда выброшена вещь trigger - когда условия инфо триггера совпадают(триггер активируется) changeday - во время смены дня(00:00 часов) sleep - во время сна dig -когда игрок использует лопату(роет) (behaviour=spade) fish - когда использует удочку(ловит рыбу) (behaviour=fishingrod) useground - когда использует землю usesea - когда использует пресную воду\море impact - столкновение метательного\огнестрельного снаряда с обьектом timer - когда таймер окончился(0) getoff - слезть с "ездабельного =)" животного или с техники attack1 - если вещь в руке используется с помощью левой кнопки attack2 - если вещь в руке используется с помощью правой кнопки ai_attack - когда игрок атакован враждебным юнитом ai_idle1 - когда анимация 1 для юнитов проигрывается ai_idle2 - когда анимация 2 для юнитов проигрывается ai_idle3 - когда анимация 3 для юнитов проигрывается nodeXXXX - когда юнит двигающийся по пути достигает точки пути(инфо) с ID XXXX reach - когда юнит двигающийся по пути достигает инфо(как правило это начало\конец(если зациклен) пути) selectplace - когда кликаем на землю в режиме размещения cracklock_success - когда успешно ломаем замок cracklock_failure - когда не получается сломать замок build_setup - когда здание выбрано из списка задний build_start - когда установлено место постройки build_finish - когда здание построено keyhitXX - когда клавиша скрипта нажата??? (only in the script from game.inf) keydownXX - когда удерживается скриптовая клавиша (only in the script from game.inf) keyreleaseXX - когда отпущенна(именно момент отпускания) скрипт клавиша (only in the script from game.inf) spawn - когда создается у spawn-info(спаунится) addstate - на добавление статуса freestate - на удаление статуса seperate - when an attached item is hit edset - когда объект размещен в редакторе inhand - when an item is drawn noammo - на попытку стрельбы\метания без патронов skipevent//пропуск события(выход из него) Categories: basic
для некоторых событий, Stranded II автоматически предпринимает действия
в случае вашего с ними взаимодейтсвия. к примеру вещи лежащие на
острове(камни, листья, палки т.д.), их всегда можно будет пообрать когда
вы нажмете использовать - даже если это не описывается в скрипте.
Skipevent позволяет миновать,отключить,пропустить , простые функции для
некоторых событий.команда может быть помещена где угодно в скобках
события. поддерживаемые события collect - вещь не будет подобрана combine (only for scripts in combinations.inf) - комбинация не будет успешной use - действие относительно вещей,окружения,мертвых животных будет недоступно drop - вещь не будет выброшена getoff - игрок не слезет с животного\техники attack1 - атаки не будет attack2 - не будет дополнительного действия build_setup - игра не переключится в режим размещения зданий build_start - строительство на выбранном участке не начнется separate - на удар вещь не отделится от обьекта которому принадлежит
Команды создания ролика и управления камерой seqstart [Blend] [,Skipable] Группа: sequences Запускает режим ролика Blend - чёрные полосы сверху и снизу экрана 0 - выключены 1 - включены (по умолчанию) Skipable - указывает, можно ли остановить показ ролика клавишей Escape 0 - нельзя 1 - можно (по умолчанию) seqend Time Группа: sequences Останавливает ролик Time - время через которое ролик будет остановлен (в милисекундах). seqmsg Time, "Text" [,Font] [,Position] Группа: sequences Выводит текстовое сообщение в режиме ролика Time - момент времени от начала ролика, в который должно появиться сообщение Text - текст сообщения Font - номер шрифта Position - позиция сообщения на экране: 0 - внизу 1 - вверху 2 - по центру seqmsgclear Time [,Position] Группа: sequences Очищает заданную текстовую позицию в режиме ролика Time - момент времени от начала ролика, в который нужно произвести очистку Position - позиция сообщения на экране, которую нужно очистить seqsound Time, "File" [,Volume] [,Pan] [,Pitch] Группа: sequences Воспроизводит звуковой файл. Time - момент времени от начала ролика, в который нужно начать воспроизведение File - путь к звуковому файлу Volume - громкость звука ( от 0 до 10, возможны дробные значения ) Pan - баланс между стерео-потоками. -1 - левый поток 0 - равномерно между обоими потоками 1 - правый поток Pitch - высота тона воспроизведения (зависит от воспроизводимого файла) seqbar Time, Mode Группа: sequences Показывает или прячет чёрные полосы сверху и снизу экрана. Time - момент времени от начала ролика Mode - режим показа 0 - спрятать полосы 1 - показать полосы hidebar Time Группа: sequences Прячет чёрные полосы (всё равно что 'seqbar Time, 0;') showbar Time Группа: sequences Показывает чёрные полосы (всё равно что 'seqbar Time, 1;') setcam Time, ID или sc Time, ID Группа: sequences Устанавливает камеру в позицию, указанную с помощью идентификатора контрольной точки (info) в указанный момент времени. Time - момент времени от начала ролика ID - идентификатор контрольной точки (info) movecam Time, Targettime, ID Группа: sequences Перемещает камеру в позицию, указанную с помощью идентификатора контрольной точки (info) к указанному моменту времени Time - момент начала движения Targettime - момент остановки ID - идентификатор конечной точки (info) Добавлено (14.03.2010, 04:42) --------------------------------------------- campath Time, Steptime, ID ... [,ID] Группа: sequences Премещает камеру вдоль пути образованного несколькими контрольными точками (info). Time - момент начала движения Steptime - время перехода от одной точки к другой ID - идентификаторы контрольных точек (info), количество не ограничено. timedcampath Time, Steptime, ID ... [,Steptime, ID] Группа: sequences Премещает камеру вдоль пути образованного несколькими контрольными точками (info), но в отличии от campath, время перемещения от точки к точке задаётся индивидуально. Time - момент начала движения Steptime - время перехода от текущей точки до следующей ID - идентификаторы контрольных точек (info) Количество пар [,Steptime, ID] не ограничено. seqflash Zeit [,Red] [,Green] [,Blue] [,Speed] [,Alpha] Группа: sequences Выполняет цветную вспышку в указанный момент времени Time - момент времени от начала ролика Red, Green, Blue - красная, зелёная и синяя составляющие цвета вспышки Speed - скорость вспышеки (по умолчанию - 0.05) Alpha - прозрачность заливки (по умолчанию - 1.1) seqfade StartTime, EndTime [,R] [,G] [,B] [,Mode] Группа: sequences Вызывает затухание или проявление экрана StartTime - момент начала затухания (проявления) EndTime - момент окончания затухания (проявления) R, G, B - красная, зелёная и синяя составляющие цвета заливки Mode - режим 0 - затухание и последующее проявление (удобно использовать для перехода между сценами) 1 - затухание 2 - проявление seqevent Time, "Event" [,"Class", ID] Группа: sequences Запускает событие в указанный момент времени. Если Class и ID указаны, то событие выполняется только на указанном объекте, иначе выполнится на всех объектах игры. Time - момент времени от начала ролика Event - название события Class - класс объекта ID - идентификатор объекта seqscript Time, "Source" Группа: sequences Запускает внешний в указанный момент времени Time - момент запуска Source - путь к файлу скрипта cammode Time, Mode [,"Class", ID] Группа: sequences В указанный момент меняет режим вращения камеры. Time - момент времени от начала ролика Mode - режим вращения 0 - камера всё время смотрит в центр карты (по умолчанию) 1 - камера следт за объектом указанным с помощью Class и ID 2 - камера плавно меняет ориентацию в зависимости от ориетации контрольных точек (info), между которыми она движется, (при ориентировании камеры в редакторе она будет смотреть в сторону синей направляющей оси) 3 - камера не вращается 4 - камера находится в свободном режиме, можно менять ориетацию мышью Следующие параметры игнорируются вовсех режимах кроме №1. Class - класс объекта, на который направлена камера ID - идентификатор объекта Добавлено (14.03.2010, 04:43) --------------------------------------------- camfollow Time, "Class", ID, X, Y, Z Группа: sequences Прикрепляет камеру к объекту Time - момент времени от начала ролика Class - класс объекта, к которому прикрепляется камера ID - идентификатор объекта X,Y,Z - координаты камеры относительно объекта Например, чтобы следить за черепахой, нужно сделать так camfollow 0, "unit", 100, 0, 50, -50; В этом случае камера окажется выше черепахи и позади неё на 50 см, и будет направлена прямо на неё. При этом режим вращения камеры автоматически меняется на 1 (см. cammode), но его в любой момент можно сменить, при этом камера продолжит двигаться за объектом, но уже будет смотреть в сторону, определённую в cammode. seqcls Time, Mode [,R] [,G] [,B] Группа: sequences В указанный момент включает или выключает режим чистого экрана Time - момент включения/выключения режима Mode - 0 - отключение режима 1 - включение режима R, G, B - красная, зелёная и синяя составляющие цвета заливки seqhideplayer Time [,Hidden] Группа: sequences В указанный момент прячет или показывает модель игрока. Time - момент времени Hidden - 0 - показать игрока, 1 - спрятать (по умолчанию 1) seqimage Time, "Picture" [,Mask] Группа: sequences В указанный момент показывает изображение в центре экрана. Если изображение уже имеется - заменяет его на новое. Time - момент времени Picture - путь к файлу изображения (начиная от папки мода) Mask - указывает накладывать или нет маску на изображение 0 - не накладывать (по умолчанию) 1 - накладывать ( розовые пиксели с RGB 255,0,255 становятся прозрачными ) Команду удобно использовать в сочетании с seqcls, чтобы залить однородным фоном оставшиеся участки экрана. seqflash и seqfade на картинке не отражаются seqimagetext Time, "Text", X, Y [,Font] [,Align] Группа: sequences В указанный момент выводит текст поверх изображения загруженного с помощью seqimage (seqimage должна быть выполнена заранее). Time - момент времени Text - выводимый текст X, Y - координаты текста на изображении Font - номер шрифта Align - выравнивание текста относительно точки X, Y 0 - по левому краю 1 - по центру 2 - по правому краю seqtimemode Mode [,Absolut] Группа: sequences Меняет режим отсчёта времени в ролике. Mode - множитель на который домножается стандартный временной интервал (1 милискунда) Рекомендуемые значения: 1 - милисекунды 10 - сотые доли секунды 100 - десятые доли секунды 1000 - секунды Absolut - указывает как вести отсчёт времени 1 - абсолютное время, относительно момента начала ролика (по умолчанию) 0 - относительно предыдущей команды Эта команда влияет только на временные параметры стоящие первыми в списке, второй параметр надо всегда указывать в милисекундах
Пример: (взят из скрипта map01_intro.s2s карты Adventure)
on:intro { //..... // setup intro sequence seqstart 1,1; // Запускаем ролик. Отображаем чёрные полосы по краям экрана и разрешаем прервать ролик клавишей Escape seqtimemode 1000,1; // Устанавливаем временной интервал - 1 секунда, отсчёт времени ведём от начала ролика cammode 0,1,"unit",100; // Выбираем режим вращения камеры, следящий за кораблём
// scene 1 setcam 0,2; // Выбираем камеру №2 seqfade 0,1500,0,0,0,2; // Включаем проявление экрана. seqmsg 6,"Я помню всё, как будто это было вчера.",5; // На 6-й секунде выводим сообщение, используя шрифт №5 seqsound 6,"speech\intro_a.ogg"; // На 6-й секунде запускаем звуковой файл seqfade 8,10000,0,0,0,0; // С 8-й по 10-ю секунды выполняем затухание-проявление экрана. //Как видите, время начала затухания указано в секундах, а время окончания в милисекундах (10000) seqmsg 9,"Я только что купил новую яхту и бла бла бла...",5; // Текст
// scene 2 seqevent 9,"scene2a"; // На 9-й секунде запускаем событие "scene2a" setcam 9,4; // и переключаемся на камеру №4 seqevent 12,"scene2b"; // На 12-й секунде запускаем событие "scene2b" seqmsg 14,"Я был так рад... бла бла бла",5; seqsound 14,"speech\intro_b.ogg"; // На 14-й секунде запускаем очередную звуковую дорожку seqmsg 20,"Шторм сбил меня с курса...",5; seqfade 24,26000,0,0,0,0; // Затухание-проявление с 24-й по 26-ю секунду
// scene 3 seqevent 25,"scene3a"; // На 25-й секунде запускаем событие "scene3a" setcam 25,5; // и переключаемся на камеру №5 movecam 25,30000,6; // Двигаем камеру по направлению к точке обозначенной info №6 seqevent 30,"scene3b"; // Событие "scene3b" seqmsgclear 24; // Очищаем текстовое сообщение seqmsg 26,"Молния ударила в яхту... Начался пожар...",5; seqsound 25,"speech\intro_c.ogg"; // Очередноая звуковая дорожка seqfade 34,36000,0,0,0,0; // Очередное затухание-проявление
// Далее ничего особо интересного
}
|