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

Помогите с секретной дверью


Ridfor

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

Дверь не открывается ни одним активатором (WRDoorCastleSecret01), перепробовал все активаторы, пробовал копировать из тестовой локации и привязывать к ней тот активатор, безуспешно. В тестовой локации возле активатора стоит тригер и ещё какой-то синий маленький бокс в виде буквы Г с названием TrapLinker, может это как то связанно? может для этой двери следует что то сделать специфическое? :wall:
Ссылка на комментарий
Поделиться на другие сайты

Нашел на немецком сайте статью про эту дверь там что то со скриптом делать нужно

но этот скрип не присваивается хоть убей :wall: ХЕЛП!!!

 

И это не дверь а анимированный объект

 

m Moment geht es mir um die " WRDoorCastleSecret01 " und " DBSecretPassageStainGlassDoor "

 

Ach so. Dann kann das natürlich nicht funktionieren.

 

 

DBSecretPassageStainGlassDoor ist eine reine load door und hat keine Animation die aktiviert werden könnte.

 

WRDoorCastleSecret01 dagegen ist ein Activator Objekt und hat eine Gamebryo Animation zum öffnen und schließen. Lege folgendes Skript auf die Schalter-Referenz, dem Property SecretDoor muss die besagte Tür zugewiesen werden, dann sollte es klappen.:)

 

 

 

Scriptname SecretDoorScript extends ObjectReference

 

ObjectReference Property SecretDoor auto

 

auto State closed

Event OnActivate(ObjectReference akActionRef)

if akActionRef == Game.GetPlayer()

SecretDoor.PlayGamebryoAnimation("forward", true)

GotoState("opened")

endif

EndEvent

EndState

 

State opened

Event OnActivate(ObjectReference akActionRef)

if akActionRef == Game.GetPlayer()

SecretDoor.PlayGamebryoAnimation("backward", true)

GotoState("closed")

endif

EndEvent

EndState

 

ссылка на статью http://forum.schares...hp/t-46468.html

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

Немецкий не знаю, но со скриптом все предельно просто.

ObjectReference Property SecretDoor auto

тут объявляется свойство (переменная), т.е. дверь. сам скрипт должен быть повешен на дверь, которая является объектом типа Активатор или MovableStatic (в СК не смотрел, но как я понимаю, у тебя пробле в том ,что она не является объекктом типа дверь ,поэтому ее не открыть командой .Open() ). Предположим второй вариант ,т.к. он более общий. Итак, есть Дверь (MovableStatic или что там) и активатор. В таком случае , скрипт должен вешаться на активатор, а во вкладне "Properties" для него должно быть заполнено свойство SecretDoor Т.е. указана эта твоя "дверь"

 

сам скрипт. ну тут все просто.

auto State closed

Event OnActivate(ObjectReference akActionRef)

if akActionRef == Game.GetPlayer()

SecretDoor.PlayGamebryoAnimation("forward", true)

GotoState("opened")

endif

EndEvent

EndState

**************************

 

Слово "auto" в начале говорит о том, что этот STATE будет неактивен (т.е. на него будет смотреть игра при загрузке). Далее. Событие "При Активации" (поэтому скрипт и должен вешаться на активатор), если, активировал игрок , то для объекта SectetDoor проиграй анимацию открывания и перейди к стэйту "opened". Теперь же в STATE opened тоже ожидается событие активации. если активация прошла игроком, то для SectetDoor проиграй анимацию закрытия и перейди к STATE closed. таким образом получаем замкнутый круг.

 

 

Simple

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

Немецкий не знаю, но со скриптом все предельно просто.

ObjectReference Property SecretDoor auto

тут объявляется свойство (переменная), т.е. дверь. сам скрипт должен быть повешен на дверь, которая является объектом типа Активатор или MovableStatic (в СК не смотрел, но как я понимаю, у тебя пробле в том ,что она не является объекктом типа дверь ,поэтому ее не открыть командой .Open() ). Предположим второй вариант ,т.к. он более общий. Итак, есть Дверь (MovableStatic или что там) и активатор. В таком случае , скрипт должен вешаться на активатор, а во вкладне "Properties" для него должно быть заполнено свойство SecretDoor Т.е. указана эта твоя "дверь"

 

сам скрипт. ну тут все просто.

auto State closed

Event OnActivate(ObjectReference akActionRef)

if akActionRef == Game.GetPlayer()

SecretDoor.PlayGamebryoAnimation("forward", true)

GotoState("opened")

endif

EndEvent

EndState

**************************

 

Слово "auto" в начале говорит о том, что этот STATE будет неактивен (т.е. на него будет смотреть игра при загрузке). Далее. Событие "При Активации" (поэтому скрипт и должен вешаться на активатор), если, активировал игрок , то для объекта SectetDoor проиграй анимацию открывания и перейди к стэйту "opened". Теперь же в STATE opened тоже ожидается событие активации. если активация прошла игроком, то для SectetDoor проиграй анимацию закрытия и перейди к STATE closed. таким образом получаем замкнутый круг.

 

 

Simple

 

Не получается, когда нажимаю добавить скрип потом создаю новый пишет Script "_test22" had errors while loading, it will not be added to the object , но родные скрипты присваиваются без проблем

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

Не получается, когда нажимаю добавить скрип потом создаю новый пишет Script "_test22" had errors while loading, it will not be added to the object , но родные скрипты присваиваются без проблем

 

ну это уже проблема винды или у тебя пиратский СК (я не знаю). вообще, конечно, когда в поле "Scripts" объекта создаешь новый скрипт, он создается нормально. Не знаю, чем может быть вызвана такая проблема.

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

ну это уже проблема винды или у тебя пиратский СК (я не знаю). вообще, конечно, когда в поле "Scripts" объекта создаешь новый скрипт, он создается нормально. Не знаю, чем может быть вызвана такая проблема.

 

Обновил СК и всё заработало, скрипт добавил активатору, но он не компилируется (Failed) вот он:

Scriptname SecretDoorScript extends ObjectReference

 

ObjectReference Property SecretDoor auto

 

auto State closed

Event OnActivate(ObjectReference akActionRef)

if akActionRef == Game.GetPlayer()

SecretDoor.PlayGamebryoAnimation("forward", true)

GotoState("opened")

endif

EndEvent

EndState

 

State opened

Event OnActivate(ObjectReference akActionRef)

if akActionRef == Game.GetPlayer()

SecretDoor.PlayGamebryoAnimation("backward", true)

GotoState("closed")

endif

EndEvent

EndState

 

И соответственно не могу назначить свойство. Может не все активаторы подходят? может нужно что то с дверью вначале сделать?

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

Обновил СК и всё заработало, скрипт добавил активатору, но он не компилируется (Failed) вот он:

Scriptname SecretDoorScript extends ObjectReference

 

ObjectReference Property SecretDoor auto

 

auto State closed

Event OnActivate(ObjectReference akActionRef)

if akActionRef == Game.GetPlayer()

SecretDoor.PlayGamebryoAnimation("forward", true)

GotoState("opened")

endif

EndEvent

EndState

 

State opened

Event OnActivate(ObjectReference akActionRef)

if akActionRef == Game.GetPlayer()

SecretDoor.PlayGamebryoAnimation("backward", true)

GotoState("closed")

endif

EndEvent

EndState

 

И соответственно не могу назначить свойство. Может не все активаторы подходят? может нужно что то с дверью вначале сделать?

 

сделай скрин ошибки, что имеено компилятор пишет? без отчета об ошибке сложно сказать, могу лишь предположить, что ObjectReference Property SecretDoor auto дверь все должна быть не как обджект референс. в классе обджект референс нету функциё на анимацию

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

сделай скрин ошибки, что имеено компилятор пишет? без отчета об ошибке сложно сказать, могу лишь предположить, что ObjectReference Property SecretDoor auto дверь все должна быть не как обджект референс. в классе обджект референс нету функциё на анимацию

 

В конце компиляции просто пишет

Starting 1 compile threads for 1 files...

Compiling "SecretDoorScript"...

E:\games\The Elder Scrolls 5.Skyrim.v 1.8.151.0.7 + 4 DLC\Data\Scripts\Source\temp\SecretDoorScript.psc(7,11): no viable alternative at input 'akActionRef'

E:\games\The Elder Scrolls 5.Skyrim.v 1.8.151.0.7 + 4 DLC\Data\Scripts\Source\temp\SecretDoorScript.psc(16,11): no viable alternative at input 'akActionRef'

No output generated for SecretDoorScript, compilation failed.

 

Batch compile of 1 files finished. 0 succeeded, 1 failed.

Failed on SecretDoorScript

 

 

вот сам скрипт который компилирует

 

Scriptname SecretDoorScript extends ObjectReference

 

ObjectReference Property SecretDoor auto

 

auto State closed

Event OnActivate(ObjectReference akActionRef)

if akActionRef = Game.GetPlayer()

SecretDoor.PlayGamebryoAnimation("forward", true)

GotoState("opened")

endif

EndEvent

EndState

 

State opened

Event OnActivate(ObjectReference akActionRef)

if akActionRef = Game.GetPlayer()

SecretDoor.PlayGamebryoAnimation("backward", true)

GotoState("closed")

endif

EndEvent

EndState

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

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

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

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

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

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

Войти

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

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

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