The Elder Scrolls & Fallout 3 Modding

на главную страницу сайта

Форум Oblivion, Skyrim & Fallout 3/4 Modding

Объявление

У нас есть свой сервер Дискорда. Заходите, пообщаемся.
Господа, те кто пользуются фотохостингом http://uploads.ru/ для размещения изображений. Рекомендую воспользоваться для упрощения загрузки вот этой программой.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Форум Oblivion, Skyrim & Fallout 3/4 Modding » Скрипты » Левитация в Фоллаут Нью Вегас


Левитация в Фоллаут Нью Вегас

Сообщений 1 страница 5 из 5

1

Суть вопроса такова:
Имеется скрипт на левитацию,он рабочий,но вот незадача при посадке в 70% случаев,ГГ убивается словно упал с высоты,каким образом повесить кнопку "приземление" и дать команду нормалльно(безопасно) приземлятся и не умирать.Скрипт эффектный.Кто знает как это сделать?

scn aaaforcelevitationscript

float angleZ

float X
float Y
float Z
float DX
float DY
float DZ
float oldX
float oldY
float oldZ
float oldDX
float oldDY
float oldDZ
float maxDXY
float t1
float t2
float t5
float t6
float sina
float turbo

begin ScriptEffectStart

set oldX to getPos x
set oldY to getPos y
set oldZ to getPos z
end

begin ScriptEffectUpdate

set X to getPos x
set Y to getPos y
set Z to getPos z
set DZ to Z - oldZ
; Levitation

set DX to x - oldX
set DY to y - oldY

if (DX*DX)>(DY*DY)
set maxDXY to DX
else
set maxDXY to DY
endif

if maxDXY < 0
set maxDXY to -maxDXY
endif

set Z to oldZ

if isSneaking == 0
set turbo to 10
else
set turbo to 2
endif

if (DX*DX+DY*DY>8)
set X to oldX + turbo*DX/maxDXY
set Y to oldY + turbo*DY/maxDXY
; endif
setPos x , X
setPos y , Y

set angleZ to GetAngle x
;Message angleZ+1
;set Z to Z - (angleZ/180)

if angleZ < -180
set angleZ to angleZ + 360
elseif angleZ > 180
set angleZ to angleZ - 360
endif

set t1 to angleZ / 57.29577951 ; precalculate powers of "angle"
set t2 to t1*t1
set t5 to t2*t2*t1
set t6 to t5*t1
set sina to t1 - t1*t2/6 + t5/120 - t5*t2/5040 + t6*t2*t1/362880

set Z to Z - turbo*(sina)
endif
setPos z , Z

set oldX to X
set oldY to Y
set oldZ to Z
set oldDZ to DZ
resetFallDamageTimer
end

СКРИПТ РАБОТАЕТ! НО...

Когда персонаж летит, он проигрывает анимацию ходьбы и даже ТОПАЕТ!

0

2

Кажется, я подобный скрипт прикручивал в Ф3 (передрал из мода к обливиону)
Где-то даже тема такая есть.
Поглядите, может там чего полезное есть.

А чтобы не убивался, где-то надо прикрутить команду Resetfalldamagetimer - скорее всего в блоке scripteffectfinish.

Технически точно не могу посоветовать - я не силен в фоллаутовских скриптах.

0

3

Вовочка написал(а):

А чтобы не убивался, где-то надо прикрутить команду Resetfalldamagetimer - скорее всего в блоке scripteffectfinish.

Посмотри на последние строчки скрипта...Почему то resetFallDamageTimer не работает или работает неправильно.
Если помнишь этот скрипт,то подскажи:
Зелье"Левитация" работает 3 минуты = 180 секунд,каким образом скриптом устроить проверку на время -чтобы на 170 секунде,на дисплей выводилась надпись-"До окончания "Левитации" 10 секунд."Это для того чтобы удачно приземлятся хотя бы в 50%

------------------------------------------------------------------------------
scn AAAlarmTime

short Stage
float Timer

Begin ScriptEffectStart
if (Stage == 0)
  set Stage to 1
endif
End

Begin ScriptEffectUpdate
if (Stage == 1)
  Set Timer to Timer + ScriptEffectElapsedSeconds
    if (Timer >= 170)
     ShowMessage ААА02;До окончания "Левитации" 10 секунд.
      set Stage to 2
    endif
endif 
End
---------------------------------------------------------------------------
Сработает ли такой скрипт прикрученный к зелью"Левитация" с выводом предупреждения на дисплей?И можно ли добавить по окончанию эффекта замедление времени(Slowing down time) и безопасную посадку Player.resetFallDamageTimer?
P.S.Скрипт правильный-то есть записался в г.е.к.к.,но вот не выводит сообщение в игре,на монитор в чем ошибка? ShowMessage -сообщение создал.

Отредактировано alex2011 (2011-10-17 02:22:14)

0

4

А зачем вообще используется функция resetFallDamageTimer?

alex2011 написал(а):

Когда персонаж летит, он проигрывает анимацию ходьбы и даже ТОПАЕТ!

Потому как для игры он не летит, а идет. Соответственно и проигрывается данная анимация. Кстати, в Ф3 как и в Обливионе при левитации игрок пролетает сквозь статики или нет?

По поводу скрипта таймера - не факт что таймер работает корректно. то что гекк позволил сохранить скрипт еще не значит, что скрипт корректный.

0

5

Igor_Ra написал(а):

Потому как для игры он не летит, а идет.

Что интересно - в Обливионе проигрывается анимация зависания в прыжке - то есть там для движка важнее не движение, а сам факт нахождения на земле - в воздухе.

В Фоллауте 3 я взлетал из воды - так там персонаж ПЛЫЛ в воздухе:)))))))))))) А с земли - действительно топал. Пробовал прикручивать idle-анимации - в общем, после ряда проб и ошибок понял, что не всякую анимацию прикрутишь, чтобы потом корректно выйти из нее.

Igor_Ra написал(а):

Соответственно и проигрывается данная анимация. Кстати, в Ф3 как и в Обливионе при левитации игрок пролетает сквозь статики или нет?

В Обливионе если он в экстерьерной ячейке, то может засесть в землю или внутрь камня. А если в интерьерной - вообще очень трудно управлять, поскольку он не только вляпывается в статики, но еще и траекторию почему-то меняет почти непредсказуемо.

0


Вы здесь » Форум Oblivion, Skyrim & Fallout 3/4 Modding » Скрипты » Левитация в Фоллаут Нью Вегас