DaemoniaC Опубликовано 14 декабря, 2011 Жалоба Поделиться Опубликовано 14 декабря, 2011 (изменено) Доброго всем времени суток, я не разбираюсь в скриптинге и язык учебника OSFM для меня немного тяжеловат, поэтому прошу помощи у Вас. На основе заклинания "Вызов Хаскилла" я захотел сделать заклинание, призывающее трон Шеогората к игроку. Создал 2 маркера (SheoThroneSummonMarker и SheoThroneSummonReturnMarker), присвоил трону новый скрипт (1), создал квест вызова трона, привязал измененный скрипт (2) к нему, создал заклинание и на основе вызова камердинера сделал третий скрипт (3) и привязал к спеллу. В итоге, трон призывается, но есть несколько НО: 1) Трон не перемещается обратно, то есть остается навсегда2) Я никак не могу заставить трон появиться прямо за спиной игрока и повернутым к нему сиденьем, он появляется с одной и той же стороны, а нужно, чтобы он появлялся за спиной независимо от угла поворота игрока, и смотрел на спину игрока сиденьем. Помогите начинающему, пожалуйста :) Скрипт 1 scn SheoThroneScript short introWhoshort introWhatshort introDoorshort introWantshort introPeopleshort greetVAR short leaveVARfloat timershort doOncefloat fadetimerfloat HaskillAlphashort fadeOnceshort resetAlphashort summonedfloat summontimershort summonblocker Begin GameMode ;this chunk fades him out after summonif ( fadeOnce == 4 )Set HaskillAlpha to 0.9Set FadeTimer to 4SetActorAlpha HaskillAlphaset fadeOnce to 5endif if ( FadeOnce == 5 )if ( FadeTimer > 0 )Set FadeTimer to ( FadeTimer - GetSecondsPassed )Set HaskillAlpha to ( HaskillAlpha - .01 )SetActorAlpha HaskillAlphaelseif ( FadeTimer <= 0 )Set HaskillAlpha to 0Set FadeOnce to 2Set FadeTimer to 0MoveTo SheoThroneSummonReturnMarkerset resetAlpha to 1set summoned to 0set summontimer to 0set summonblocker to 0endifendif if ( resetAlpha == 1 )setActorAlpha 1set resetAlpha to 0endif if ( summoned == 1 )set summontimer to ( summontimer + GetSecondsPassed )if ( summontimer >= 5 )if ( summonblocker == 0 )SESheogorathThroneREF.pme STRPset SESheogorathThroneREF.FadeOnce to 4set summonblocker to 1endifendifendif End Скрипт 2 scn SheoThroneSummonQuestScript ;this script keeps the player from breaking the Haskill summon by summoning and quickly fast travelling. With this, resetVAR is set;in the SESummonHaskillSpellScript on ScriptEffectFinish if the player isn't in the same cell. This script then resets all of Haskill's variable;as they would be if the player remained in the cell with him and Haskills script were still updating every frame short resetVAR Begin GameMode if ( resetVAR == 1 )Set SESheogorathThroneREF.HaskillAlpha to 0Set SESheogorathThroneREF.FadeOnce to 2Set SESheogorathThroneREF.FadeTimer to 0SESheogorathThroneREF.MoveTo SheoThroneSummonReturnMarkerset SESheogorathThroneREF.resetAlpha to 1set SESheogorathThroneREF.summoned to 0set SESheogorathThroneREF.summontimer to 0set SESheogorathThroneREF.summonblocker to 0set resetVAR to 0endif End Скрипт 3 scn SheoThroneSummonSpellSCRIPT float timershort returnEffect ; set to 1 when playedfloat xfloat yfloat zfloat angle begin ScriptEffectStartif ( SESheogorathThroneREF.summoned == 0 )set SESheogorathThroneREF.summoned to 1SheoThroneSummonReturnMarker.moveto SESheogorathThroneREFSheoThroneSummonMarker.moveto playerset angle to SESheogorathThroneREF.getangle z + SESheogorathThroneREF.GetHeadingAngle playerSESheogorathThroneREF.setangle z angle SESheogorathThroneREF.moveto player -100 y 130SESheogorathThroneREF.pme STRPelseMessage "Haskill has been summoned too recently."endif end begin ScriptEffectUpdateset timer to timer + ScriptEffectElapsedSecondsif returnEffect == 0 && timer > 4.5SESheogorathThroneREF.pme STRPset returnEffect to 1endifend begin ScriptEffectFinishif ( SESheogorathThroneREF.GetInSameCell Player == 0 ) && ( SESheogorathThroneREF.summoned == 1 )set SheoThroneSummonQuest.resetVAR to 1endif; send Haskill back where he came from;SESheogorathThroneREF.pme STRP;SESheogorathThroneREF.removescriptpackage;SESheogorathThroneREF.stoplook;SESheogorathThroneREF.moveto SheoThroneSummonReturnMarker;set SESheogorathThroneREF.FadeOnce to 4;set SESheogorathThroneREF.greetVAR to 0end Изменено 14 декабря, 2011 пользователем DaemoniaC Ссылка на комментарий Поделиться на другие сайты Поделиться
HellSodomist Опубликовано 15 декабря, 2011 Жалоба Поделиться Опубликовано 15 декабря, 2011 для первого нужно сделать обьект с моделью null,а потом "тронID.moveto пустойобьектID 0,0,0" ,притом обьект должен находиться точно там куда должен вернуться трон а для второго можно сделать через такой же обьект,только придется поиграться с координатами(нули после ID команды moveto и второго ID) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти