MSFD Кинематическая последовательность
Здесь описывается интересный способ сделать кинематическую последовательность, предложенный gianluca (форум Morrowind Summit).
Скрипт отключает управление игрока, помещает его на невидимый объект "CollisionWall", а затем двигает его (а вместе с ним и камеру) вокруг.
Нельзя сделать киноэпизод с прямым участием игрока, но и так выглядит здорово.
If menumode==1
return
endif
if doOnce == 0
"Collision wall2"->disable
"Collision wall3"->disable
"Collision wall4"->disable
set doOnce to 1
endif
if doOnce == 1
"Collision wall1"->moveworld X 800
messagebox "moving"
if ( "Player"->getPos Z < 570 )
set doOnce to 2
set playxx to "Player"->getPos X
set playyy to "Player"->getPos Y
set playzz to "Player"->getPos Z
"Collision wall2"->enable
Player->position –114679 –4119 590 90
endif
endif
if doOnce == 2
"Collision wall2"->moveworld X 800
messagebox "moving"
if ( "Player"->getPos Z < 570 )
set playxx to "Player"->getPos X
set playyy to "Player"->getPos Y
set playzz to "Player"->getPos Z
"Collision wall3"->enable
Player->position –112634 –4119 590 90
set doOnce to 3
endif
endif
if doOnce == 3
"Collision wall3"->moveworld X 200
"Collision wall3"->moveworld Y –800
if ( "Player"->getPos Z < 570 )
set doOnce to 4
set playxx to "Player"->getPos X
set playyy to "Player"->getPos Y
set playzz to "Player"->getPos Z
"Collision Wall4"->enable
Player->position –112126 –6150 590 90
endif
endif
if doOnce == 4
"Collision wall4"->moveworld X 600
"Collision wall4"->moveworld Y –450
if ( Player->getPos Z < 570 )
set doOnce to 5
set playxx to "Player"->getPos X
set playyy to "Player"->getPos Y
set playzz to "Player"->getPos Z
endif
endif
if doOnce == 5
stopscript ELDQ_visualforbattle
endif
end