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

Скрипт для потайных дверей


Рекомендуемые сообщения

Доброе время суток.

 

Скажу сразу, я совершенно не владею скриптами, но решилась взяться за такое дело: насколько помните, в Шиши был череп, который поворачивается на 90 градусов, что, в свою очередь, активирует движение стены, за которой находится вход. Так вот, я скопировала этот скрипт, поменяла имена. Работает. Но, мне также нужно, чтобы череп было возможно повернуть обратно, после чего стена опять встала бы на свое место (в вышеупомянутом скрипте такой функции нет)... Никак не могу этого добиться...

 

сам скрипт:

 

 

begin name

 

float timer

short doOnce

 

if ( doOnce == 2 )

return

endif

 

if ( MenuMode == 1 )

return

endif

 

if ( OnActivate == 1 )

if ( doOnce == 0 )

PlaySound "Stone Door Open 1"

set doOnce to 1

endif

endif

 

if ( doOnce == 1 )

 

set timer to timer + GetSecondsPassed

 

if ( timer <= 1 )

RotateWorld Z 90

endif

 

"name"->Move Z -50

 

if ( timer > 5 )

Set doOnce to 2

endif

 

endif

 

end

Ссылка на комментарий
Поделиться на другие сайты

Сделать действие обратное повороту стены. После таймера doonce == 2, после чего следует return и полный игнор дальнейших строчек кода.

if ( doOnce == 2 )
return
endif

Лишнее. Убрать.

 


if ( OnActivate == 1 )
if ( doOnce == 0 )
PlaySound "Stone Door Open 1"
set doOnce to 1
set timer to 0
elseif ( doonce ==  2 )
PlaySound "Stone Door Close 1";имя звука
set doOnce to 3
set timer to 0
endif
endif

if ( doOnce == 1 )

set timer to timer + GetSecondsPassed

if ( timer <= 1 )
RotateWorld Z 90
endif

"name"->Move Z -50

if ( timer > 5 )
Set doOnce to 2
endif

elseif ( doOnce == 3 )

set timer to timer + GetSecondsPassed

if ( timer <= 1 )
RotateWorld Z -90
endif

"name"->Move Z 50

if ( timer > 5 )
Set doOnce to 0
endif

endif

Что-то такое.

Изменено пользователем Муурн Шепард
Ссылка на комментарий
Поделиться на другие сайты

Благодарю! Сейчас проверю и отпишусь

===

К сожалению, не работает =( При запуске сейва пишет: "Expression error in skript "name"

 

Мультипост запрещен. Хочешь что-то добавить - редактируй предыдущее сообщение. Цернон

Изменено пользователем Цернон
мультипост
Ссылка на комментарий
Поделиться на другие сайты

m1santhropy, вот мой скрипт из моего мода с домом в АльдРуне (выложен в моей теме):

 

begin _RH_movingScript

float timer
short CMoving

if menumode == 1
return
elseif GetPCSleep == 1
return
endif

if OnActivate == 1
if CMoving == 0
Set CMoving to 1
playsound3d "Door Stone Open"
Endif
Endif

if CMoving == 1
Set timer to timer + GetSecondsPassed
If timer <= 3
MoveWorld x, 80
Else
Set timer to 0
Set CMoving to 2
Endif
Endif

If CMoving == 2
Set Timer to Timer + GetSecondsPassed
If timer >= 3
Set CMoving to 3
Set timer to 0
playsound3d "Door Stone Close"
Endif
Endif

If CMoving == 3
Set Timer to Timer + GetSecondsPassed
If timer <= 3
MoveWorld x, -80
Else
SetPos, x, 4800
SetPos, y, 5376
SetPos, z, 15232
Set timer to 0
Set  CMoving to 0
Endif
Endif

End

 

Повешен на двигающуюся стену. На место становится автоматом. Может, пригодится.

Изменено пользователем DesT
Ссылка на комментарий
Поделиться на другие сайты

DesT, а у вас скрипт, получается на саму стену накладывается? А при каком действии она сдвигается?

Скрипт повешен на созданный мной активатор, которому я выдала в редакторе модель стены. Сдвигается при активации, через 3 сек. автоматически встает обратно. Через сторонний объект активацию тоже сделать не сложно, нужно просто использовать ID со стрелочкой.

Главное вот это не забыть:

SetPos, x, 4800

SetPos, y, 5376

SetPos, z, 15232

- координаты моей стены в КС (без них окончательно на место не встает), соответственно, нужно заменить на свои.

Ссылка на комментарий
Поделиться на другие сайты

Благодарю! Буду пробовать применять новую информацию.

Тоже была проблема вот с этим скриптом:

 

 

BEGIN name

Short Open

Short Close

Short State

Short First

Float timer

Short doOnce

 

IF ( MenuMode == 1 )

return

ENDIF

 

IF ( OnActivate == 1 )

Set State to 1

ENDIF

 

IF ( State == 1 )

if ( First == 0 )

if ( doOnce == 0 )

PlaySound "Door Stone Open"

Set Open to 1

set doOnce to 1

endif

endIf

ENDIF

 

IF ( Open == 1 )

set timer to timer + GetSecondsPassed

 

if ( timer <= 1 )

RotateWorld Z 75

Return

endif

 

"name"->Move Y -100

 

if ( timer > 2.5 )

Set Timer to 0

Set First to 1

Set State to 0

Set Open to 0

set doOnce to 0

endif

ENDIF

 

IF ( State == 1 )

If ( First == 1 )

If ( doOnce == 0 )

PlaySound "Door Stone Close"

Set Close to 1

Set doOnce to 1

endif

endIf

ENDIF

 

IF ( Close == 1 )

set timer to timer + GetSecondsPassed

 

if ( timer <= 1 )

RotateWorld Z -75

Return

endif

 

"name"->SetPos, Y, 100

 

if ( timer > 2.5 )

Set Timer to 0

Set First to 0

Set State to 0

Set Close to 0

Set doOnce to 0

endif

ENDIF

 

END

 

Это скрипт из плагина, который добавляет заброшенный дом в Балморе. Там автор тоже использовал череп, как активатор. У меня он работает - череп поворачивается, но при закрытии стена на место не встает... а в том плагине все работает =)

 

К сожалению, автоматическое закрытие не подойдет, иначе не получится выйти из помещения =) Попробую задать точные координаты, может быть, это сработает)

Ссылка на комментарий
Поделиться на другие сайты

Это скрипт из плагина, который добавляет заброшенный дом в Балморе. Там автор тоже использовал череп, как активатор. У меня он работает - череп поворачивается, но при закрытии стена на место не встает... а в том плагине все работает =)

К сожалению, автоматическое закрытие не подойдет, иначе не получится выйти из помещения =) Попробую задать точные координаты, может быть, это сработает)

Еще бы - там тоже точные координаты для того объекта: SetPos, Y, 100

Причем тут автоматическое закрытие. Если череп с одной стороны - выйти все равно не получится, Либо делать активируемую стену (как у меня), либо 2 черепа.

Ссылка на комментарий
Поделиться на другие сайты

К сожалению, не работает =( При запуске сейва пишет: "Expression error in skript "name"

Вместо name айди своего предмета подставить надо было.

Ссылка на комментарий
Поделиться на другие сайты

Вместо name айди своего предмета подставить надо было.

Только не вверху в названии скрипта.

Ссылка на комментарий
Поделиться на другие сайты

DesT, спасибо огромное!! Ваш совет по поводу точных координат помог! Теперь все отлично работает!!!!

 

Муурн Шепард, вставила =) это я просто имя своего скрипта здесь на "имя" заменила...

 

Благодарю за помощь!!

 

И снова мультипост. Цернон

Изменено пользователем Цернон
мультипост
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...