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

скрипт для летающих предметов


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

;Название = Летающие Предметы
;Автор = 沒有名字的(NmLs)
;Назначение скрипта = скрипт вешается на разного рода предметы, которые можно взять.
;Предмет будет рандомно вращаться и левитировать в воздухе пока игрок не возьмет его.


Begin _ItemFlyingScript

short doOnce
short doOnce2
short OnPCAdd

short StateRotateX
short StateRotateY
short StateRotateZ

short rXRandom
short rYRandom
short rZRandom

float TimerMoveZ
float TimerRotateX
float TimerRotateY
float TimerRotateZ

short mZVector
short rXVector
short rYVector
short rZVector

float StartPos


if ( MenuMode == 1 )
Return
Endif

if ( doOnce != 0 )
Return
endif

if ( doOnce2 == 0 )
Set StartPos to GetPos Z
set doOnce2 to 1
endif

if ( OnPCAdd == 1 )
Set doOnce to 1
Endif

if ( CellChanged == 1 )
SetPos Z StartPos
Endif


;движение вверх-вниз
if ( mZVector == 0 )
set TimerMoveZ to ( TimerMoveZ + GetSecondsPassed )
if ( TimerMoveZ <= 1 )
	MoveWorld Z 1
else
	set TimerMoveZ to 0
	set mzVector to 1
endif
else
set TimerMoveZ to ( TimerMoveZ + GetSecondsPassed )
if ( TimerMoveZ <= 1 )
	MoveWorld Z -1
else
	set TimerMoveZ to 0
	set mzVector to 0
endif
endif


;вращение по оси X
if ( StateRotateX == 0 )
set rXRandom to Random 100
if ( rXRandom >= 50 )
	set StateRotateX to 1
	set rXVector to Random 2
endif
endif

if ( StateRotateX == 1 )
set TimerRotateX to ( TimerRotateX + GetSecondsPassed )
if ( TimerRotateX <= 2 )
	if ( rXVector == 1 )
		Rotate X -15
	else
		Rotate X 15
	endif
else
	set TimerRotateX to 0
	set StateRotateX to 0
endif
endif


;вращение по оси Y
if ( StateRotateY == 0 )
set rYRandom to Random 100
if ( rYRandom >= 50 )
	set StateRotateY to 1
	set rYVector to Random 2
endif
endif

if ( StateRotateY == 1 )
set TimerRotateY to ( TimerRotateY + GetSecondsPassed )
if ( TimerRotateY <= 2 )
	if ( rYVector == 1 )
		Rotate Y -15
	else
		Rotate Y 15
	endif
else
	set TimerRotateY to 0
	set StateRotateY to 0
endif
endif


;вращение по оси Z
if ( StateRotateZ == 0 )
set rZRandom to Random 100
if ( rZRandom >= 50 )
	set StateRotateZ to 1
	set rZVector to Random 2
endif
endif

if ( StateRotateZ == 1 )
set TimerRotateZ to ( TimerRotateX + GetSecondsPassed )
if ( TimerRotateZ <= 2 )
	if ( rZVector == 1 )
		Rotate Z -15
	else
		Rotate Z 15
	endif
else
	set TimerRotateZ to 0
	set StateRotateZ to 0
endif
endif


End _ItemFlyingScript

 

 

кому пригодилось напишите)

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

плагина нет. я этот скрипт от нечего делать написал. толку прямого от него сопственно ноль. он нужен для красоты. Это что-то вроде более сложной версии скрипта плавающих предметов, вроде как имитация невесомости)
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...
гм, одно не понятно, после вытягивания из инвентаря предмет летает или лежит? нигде не нашел блоков указывающиех на это
Ссылка на комментарий
Поделиться на другие сайты

гм, одно не понятно, после вытягивания из инвентаря предмет летает или лежит? нигде не нашел блоков указывающиех на это

if ( OnPCAdd == 1 )

Set doOnce to 1

Endif

 

и вот еще -

 

if ( doOnce != 0 )

Return

endif

 

и пояснение - после добавления в инвентарь и выкладывания оттуда предмет больше не двигается. Мне показалось, что подобравшему предмет игроку больше захочется поставить его на полку, чем повесить обратно в воздух :megalol:

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

Хм, можно сделать отличную иммитацию полтергейста!

А если предмет находится в интерьере, он по всей комнате будет летать или в ограниченной зоне?

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

Хм, можно сделать отличную иммитацию полтергейста!

А если предмет находится в интерьере, он по всей комнате будет летать или в ограниченной зоне?

 

естественно в ограниченой) иначе бы предмет просто вылетел за пределы интерьера :jokingly:

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

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

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

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

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

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

Войти

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

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

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