Цитата:
Сообщение от regis77
Взял скрипт с мода титаник который позволяет садится на лавочки и т.д. Поменял немного ему анимацию чтобы он соотвествовал моим требованиям. Поменял на анимацию курения, в итоге мне надо сделать так чтобы персонаж курил с перерывом 5 секунд, вроде все работает, но теперь нельзя деактивировать скрипт, персонаж всегда в софтлоке, наверное из-за того что скрипт зациклился goto 1 ссылается на первый лейбл и так бесконечно. Может кто скинуть уже готовый скрипт чтобы все работало?
Развернуть для просмотра
dim_flt 2
dim_frm 1
dim_act 2
findframe 0, ""
findactor 0, "Tommy"
findactor 1, "seat2_camera"
label SITDOWN
detector_waitforuse 8950002
player_lockcontrols 1
actor_setplacement 0, 0
setevent 1, sit01, -1
label 1
person_playanim 0, "koureniautopotahnuti.i3d", simple
let flt[0] = flt[0] - 323
wait flt[0]
person_playanim 0, "koureniautostativ.i3d"
emitparticle 1, 25
wait 5000
goto 1
wait 300
label STANDUP
ctrl_read 1, ACTION
if flt[1] = 1, -1, STANDUP
person_stopanim 0
playsound "seatup.wav" ,-1 ,50 ,1 ,2
person_playanim 0, "", 0, SIMPLE
wait 300
stopsound 2
camera_unlock
player_lockcontrols 0
goto SITDOWN [свернуть]
|
Код от строки STANDUP до последней включительно перенеси внутрь цикла и немного доработай условные переходы
Вместо Wait 5000 сделай Wait 10 и добавь переменную-счётчик, чтобы при достижении ею нужного значения включалась/выключалась требуемая анимация.
Так и тайминг анимации будет соблюдён и считывание нажатия клавиш будет работать.
Проще говоря, вложенный цикл - внутри цикла, контролирующего анимацию, цикл, считывающий нажатие клавиши.
Последний раз редактировалось KlassenAS; 25.08.2022 в 18:27.
|