Всем привет , сижу вот пытаюсь сделать лифт как в дополнении Anchorage ( когда спускаешься на аванпост изгоев ) , и там оказался скрипт , в общем я в этом скрипте заменил что надо и все вроде бы работает , он отправляет меня в интерьер , проигрывается анимация спуска , в общем все как в дополнении , потом он с таким же успехом поднимает на верх , но в конце анимации почему то не отправляет обратно в интерьер из которого я пришел . В общем если кто понимает в скриптах , посмотрите пожалуйста в чем проблема ? Вот сам скрипт собсна .
(моя версия)
scn aaaOvsElevatorSCRIPT
; this script contrls the elevator on the aaaOvsAvanpost side of things
short state ; 0 = not running, at top ; 1 = going down ; 2 = not running, at bottom ; 3 = going UP ref actronaut
begin onActivate
set actronaut to getActionRef
if actronaut == player if state == 2 set state to 3 aOvsElevShaft.playgroup backward 0 ; send the elevator back up aOvsElevGate.playgroup backward 0 ; raise the little gate .playgroup forward 0 ; play my little switch anim else ; do nothing endif else ; if not the player actronaut.activate aOvsGenDoor
endif
end
begin gameMode
if state == 0 ; run once to establish correct state aOvsElevShaft.playgroup forward 0 ; jump right into running the elevator aOvsElevGate.playgroup forward 0 ; lower gate with it. set state to 1 endif
if aOvsElevShaft.isAnimPlaying forward == 0 ; when the anim is finished....
set state to 2
endif
endif
if state == 3 if aOvsElevShaft.isAnimPlaying backward == 0 aOvsGenDoor.activate player ; send player through to Bailey's Crossroads set state to 0 endif endif
end
(Вот исходный скрипт)
scn DLC02ElevatorSCRIPT
; this script contrls the elevator on the DLC02VSS01 side of things
short state ; 0 = not running, at top ; 1 = going down ; 2 = not running, at bottom ; 3 = going UP ref actronaut
begin onActivate
set actronaut to getActionRef
if actronaut == player if state == 2 set state to 3 DLC02ElevShaft.playgroup backward 0 ; send the elevator back up DLC02ElevGate.playgroup backward 0 ; raise the little gate .playgroup forward 0 ; play my little switch anim else ; do nothing endif else ; if not the player actronaut.activate DLC02VSStoBaileys
endif
end
begin gameMode
if DLC02LD.elevFlag == 1 ; if we're flagged to run by the global var
if state == 0 ; run once to establish correct state DLC02ElevShaft.playgroup forward 0 ; jump right into running the elevator DLC02ElevGate.playgroup forward 0 ; lower gate with it. set state to 1 endif
if DLC02ElevShaft.isAnimPlaying forward == 0 ; when the anim is finished....
set DLC02LD.elevFlag to 0 set state to 2
endif
endif
if state == 3 if DLC02ElevShaft.isAnimPlaying backward == 0 DLC02VSStoBaileys.activate player ; send player through to Bailey's Crossroads set state to 0 endif endif
if DLC02ElevShaft.isAnimPlaying forward == 1 || DLC02ElevShaft.isAnimPlaying backward == 1 triggerHitShader 0.1 setRumble 0.15 0.1 0.01 ; going for a low, constant rumble endif
Дверь не телепортит, судя по всему. Телепотрт правильно настроен?
Там одна дверь в виде лифта к ней привязан переключатель , все работает отлично , телепортит при нажатии на переключатель далее анимация со спуском вниз , другая GenDoor ( собсна ее ID aOvsGenDoor ) , двери эти работают отлично , и в том скрипте , как я понял , при окончании анимации (поднятия на верх) должна активироваться эта дверь(GenDoor) и возвращать меня , но этого не происходит , увы не знаю почему
А, вон оно, кажись... Верни на место вторую переменную, которую выкинул. По ней скрипт отличает спуск от подъёма. А то state так всё время и будет перескакивать на двойку. Мог бы в игре спросить активатор ShowVars, он бы тебе сам это сказал.
Ой , спасибо большое , ваша наводка вывела меня на ряд проблем и моих упущений , все исправлено , лифт работает исправно . Там ряд скриптов которые я не учел и один тригер , собсна невнимательность ...