You are not logged in.
Pages: 1
Управление очень простое:
F4 - вкл/выкл;
W, стрелка вверх, или что там заставляет у вас CJ-я двигаться вперед - лететь.
{$CLEO} 04ed: load_animation "PARACHUTE" :anim wait 0 04EE: animation "PARACHUTE" loaded jf @anim :check wait 0 if and 0AB0: key_pressed 0x73 not actor.Driving($PLAYER_ACTOR) jf @check :check_2 wait 0 8AB0: not key_pressed 0x73 jf @check_2 actor.LockInCurrentPosition($PLAYER_ACTOR,true) actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@) 3@ += 0.5 actor.PutAt($PLAYER_ACTOR,1@,2@,3@) :levi wait 0 068D: get_camera_position_to 4@ 5@ 6@ actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@) 000f: 1@ -= 4@ 000f: 2@ -= 5@ 000f: 3@ -= 6@ 1@ *= 15.0 2@ *= 15.0 3@ *= 15.0 3@ += 4.5 0604: get_Z_angle_for_point 1@ 2@ store_to 7@ actor.Angle($PLAYER_ACTOR) = 7@ 0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE" IFP_file "PARACHUTE" 1.0 loopA 0 lockX 0 lockY 0 lockF 1 time 15 0494: get_joystick 0 data 28@ 29@ 30@ 31@ 0 > 29@ jf @checkquit 02AB: set_actor $PLAYER_ACTOR immunities BP 0 FP 0 EP 0 CP 1 MP 0 actor.LockInCurrentPosition($PLAYER_ACTOR,false) 083C: set_actor $PLAYER_ACTOR velocity_in_direction_XYZ 1@ 2@ 3@ 066A: 8@ = attach_particle "gunflash" to_actor $PLAYER_ACTOR with_offset 0.0 -0.3 -0.05 rotation 0.0 -1.0 0.0 flag 1 064C: make_particle 8@ visible jump @levi :checkquit wait 0 0650: destroy_particle 9@ actor.LockInCurrentPosition($PLAYER_ACTOR,true) 02AB: set_actor $PLAYER_ACTOR immunities BP 0 FP 0 EP 0 CP 0 MP 0 0AB0: key_pressed 0x73 jf @levi :quit wait 0 8AB0: not key_pressed 0x73 jf @quit actor.LockInCurrentPosition($PLAYER_ACTOR, false) actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@) 3@ += 0.01 actor.PutAt($PLAYER_ACTOR,1@,2@,3@) jump @check
Спать надо больше 4 часов в день!
Offline
Отличный скрипт! Летал прямтаки как Hancock, осталось только добавить возможность разносить столбы и машины при соприкосновении и клубы пыли при посадке на асфальт...
Offline
Вот это да!!! ПРикольнуло нитро из задницы XD. Подскажите как его убрать.
Хочу чуть изменить видок, чтоб летал он как Нео из матрицы, но я уже сам попробую, вот только не нашел я в помощи SB других анимаций парашюта, напишите или скажите, где я их могу найти.
Блин еще вопрос: Как сделать, чтобы когда нажмем левую кнопку мыши - он ускоряется, а когда правую - замедляется? Я пытался, но не вышло.
СПАСИБО!
Last edited by Noob (06-08-2008 13:37)
Offline
Чтобы убрать огонь удали строку:
066A: 8@ = attach_particle "gunflash" to_actor $PLAYER_ACTOR with_offset 0.0 -0.3 -0.05 rotation 0.0 -1.0 0.0 flag 1
Offline
Чтобы убрать огонь удали строку:
066A: 8@ = attach_particle "gunflash" to_actor $PLAYER_ACTOR with_offset 0.0 -0.3 -0.05 rotation 0.0 -1.0 0.0 flag 1
Лучше стереть это:
066A: 8@ = attach_particle "gunflash" to_actor $PLAYER_ACTOR with_offset 0.0 -0.3 -0.05 rotation 0.0 -1.0 0.0 flag 1 064C: make_particle 8@ visible
Offline
Спасибо, а что насчет этого?
Хочу чуть изменить видок, чтоб летал он как Нео из матрицы, но я уже сам попробую, вот только не нашел я в помощи SB других анимаций парашюта, напишите или скажите, где я их могу найти.
Блин еще вопрос: Как сделать, чтобы когда нажмем левую кнопку мыши - он ускоряется, а когда правую - замедляется? Я пытался, но не вышло.
И еще: вот когда он до земли дотрагивается - он не хочет лететь. Как это исправить?
Offline
{$CLEO} :load wait 0 04ED: load_animation "PARACHUTE" 038B: load_requested_models :anim wait 0 if 04EE: animation "PARACHUTE" loaded jf @anim :check wait 0 if and 0AB0: key_pressed 0x74 not actor.Driving($PLAYER_ACTOR) jf @check :check_2 wait 0 if 8AB0: not key_pressed 0x73 jf @check_2 actor.LockInCurrentPosition($PLAYER_ACTOR,true) actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@) 3@ += 10.5 actor.PutAt($PLAYER_ACTOR,1@,2@,3@) :levi wait 0 068D: get_camera_position_to 4@ 5@ 6@ actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@) 000f: 1@ -= 4@ 000f: 2@ -= 5@ 000f: 3@ -= 6@ 1@ *= 15.0 2@ *= 15.0 3@ *= 15.0 3@ += 4.5 0604: get_Z_angle_for_point 1@ 2@ store_to 7@ actor.Angle($PLAYER_ACTOR) = 7@ 0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE_ACCEL" IFP_file "PARACHUTE" 1.0 loopA 0 lockX 0 lockY 0 lockF 1 time 15 0494: get_joystick 0 data 28@ 29@ 30@ 31@ if 0 > 29@ jf @checkquit 02AB: set_actor $PLAYER_ACTOR immunities BP 0 FP 0 EP 0 CP 1 MP 0 actor.LockInCurrentPosition($PLAYER_ACTOR,false) 083C: set_actor $PLAYER_ACTOR velocity_in_direction_XYZ 1@ 2@ 3@ jump @levi :checkquit wait 0 actor.LockInCurrentPosition($PLAYER_ACTOR,true) 02AB: set_actor $PLAYER_ACTOR immunities BP 0 FP 0 EP 0 CP 0 MP 0 if 0AB0: key_pressed 0x74 jf @levi :quit wait 0 if 8AB0: not key_pressed 0x74 jf @quit actor.LockInCurrentPosition($PLAYER_ACTOR, false) actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@) 3@ += 0.01 actor.PutAt($PLAYER_ACTOR,1@,2@,3@) jump @check
Исправил ошибки. Убрал огонь из одного места, добавил нужные проверки, загрузил как надо анимацию итп.
Last edited by Agenzvell (07-08-2008 06:59)
Offline
Исправил ошибки. ... добавил нужные проверки, загрузил как надо анимацию итп.
Очень пафосно звучит.
Кстати, зачем ты добавил после загрузки файла анимации
038B: load_requested_model
? Анимация - это же не модель. Или я не прав?
И разве отсутствие if перед одиночными проверками - это ошибка? Они же необязательны? Или я опять неправ?
Потом у тебя конструкция
:check wait 0 if and 0AB0: key_pressed 0x74 not actor.Driving($PLAYER_ACTOR) jf @check :check_2 wait 0 if 8AB0: not key_pressed 0x73 jf @check_2
Т.е. ты проверяешь, нажата ли клавиша F5, а потом - отпущена ли F4?
Это само есть ошибка, так как пока F5 нажата, скрипт может успеть выполниться и начнется вот эта проверка
:checkquit wait 0 actor.LockInCurrentPosition($PLAYER_ACTOR,true) 02AB: set_actor $PLAYER_ACTOR immunities BP 0 FP 0 EP 0 CP 0 MP 0 if 0AB0: key_pressed 0x74 jf @levi :quit wait 0 if 8AB0: not key_pressed 0x74 jf @quit
Т.е проверка на выход.
Спать надо больше 4 часов в день!
Offline
Гы, про F4 и вправду не заметил Просто на F4 забинден скрипт сохранения. If надо ставить перед каждой проверкой. Про анимацию - загружаю её всегда так, вылетов не замечал при такой загрузке, поэтому и использую.
Offline
@Agenzvell
IF НЕ надо ставить перед одиночными проверками(кроме опкодов "if and set")
А 038B и в правду лишний
Offline
@Agenzvell -
Ошибки. Отсутствуют проверки -
1. нигде нет проверок "жив ли игрок".
2 если игрок уже выполняет другую анимацию (например падает, или плывёт), а мод по нажатию клавиши прицепит на него анимацию парашута, как думаешь что может быть с игрой?
3. если у актёра будет 1-10% жизни и в момент прицепки анимации его подстрелят, что будет?
4. если в момент полёта игрок попадёт зону действия маркера миссии, что будет?
5. если миссия уже идёт а игрок решит полетать?
6. если игрок в интерьере полетает? Он вылетит за его педелы ...
7. а под водой ...
8. ...
Мод будет работать стабильно только в идеальных для него условиях.
Сначала ты надежда и гордость,
Потом о спину ломают аршин. (c)БГ
Offline
Кнопку где там изменить? F4 не потходить какбэ
Offline
Вот отредактировал.
Добавил проверки и изменил в место F4 теперь Shift + Space + LKM (Спринт + Прыжок + Стрелять)
{$CLEO .cs} 0000: NOP :load wait 100 if Player.Defined($PLAYER_CHAR) jf @load if not Actor.Driving($PLAYER_ACTOR) jf @load 077E: get_active_interior_to $ACTIVE_INTERIOR if and $ONMISSION == 0 0038: $ACTIVE_INTERIOR == 0 jf @load if and 0AB0: key_pressed 16 0AB0: key_pressed 32 00E1: key_pressed 0 17 jf @load 04ED: load_animation "PARACHUTE" :anim wait 100 if 04EE: animation "PARACHUTE" loaded jf @anim :check_2 wait 0 actor.LockInCurrentPosition($PLAYER_ACTOR,true) actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@) 3@ += 10.5 actor.PutAt($PLAYER_ACTOR,1@,2@,3@) :levi wait 0 068D: get_camera_position_to 4@ 5@ 6@ actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@) 000f: 1@ -= 4@ 000f: 2@ -= 5@ 000f: 3@ -= 6@ 1@ *= 15.0 2@ *= 15.0 3@ *= 15.0 3@ += 4.5 0604: get_Z_angle_for_point 1@ 2@ store_to 7@ actor.Angle($PLAYER_ACTOR) = 7@ 0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE_ACCEL" IFP_file "PARACHUTE" 1.0 loopA 0 lockX 0 lockY 0 lockF 1 time 15 0494: get_joystick 0 data 28@ 29@ 30@ 31@ if 0 > 29@ jf @checkquit 02AB: set_actor $PLAYER_ACTOR immunities BP 1 FP 1 EP 1 CP 1 MP 1 actor.LockInCurrentPosition($PLAYER_ACTOR,false) 083C: set_actor $PLAYER_ACTOR velocity_in_direction_XYZ 1@ 2@ 3@ jump @levi :checkquit wait 0 actor.LockInCurrentPosition($PLAYER_ACTOR,true) 02AB: set_actor $PLAYER_ACTOR immunities BP 0 FP 0 EP 0 CP 0 MP 0 if and 0AB0: key_pressed 16 0AB0: key_pressed 32 00E1: key_pressed 0 17 jf @levi :quit wait 0 if and 8AB0: not key_pressed 16 8AB0: not key_pressed 32 80E1: not key_pressed 0 17 jf @quit actor.LockInCurrentPosition($PLAYER_ACTOR, false) actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@) 3@ += 0.01 actor.PutAt($PLAYER_ACTOR,1@,2@,3@) 04EF: release_animation "PARACHUTE" jump @load
Offline
-Dimon-, сделай чтобы когда жмем левую кнопку мыши, скорость полета постепенно увеличивалась, а когда жмем правую - уменьшалась. Резкий тормоз на правый Ctrl.
Last edited by Noob (23-08-2008 07:35)
Offline
пара вопросов:
1. какой параметр отвечает за скорость полета?
2. можно ли сделать такой скрипт, который будет перемещать игрока во время левитации вверх/вниз при нажатии соответствующих клавиш?
Offline
Скорость полёта регулируется ! Чем дальше камера тем быстрей летит А если надеть парашут и отдалить камеру как можно дальше то летит быстрей многих самолётов:cool:
Offline
А можно вопрос Это как так?
066A: 8@ = attach_particle "gunflash" to_actor $PLAYER_ACTOR with_offset 0.0 -0.3 -0.05 rotation 0.0 -1.0 0.0 flag 1
064C: make_particle 8@ visible //Загвоздка он будет дублироваться. а значит эффект будет засирать усё подряд. Перед проверкой нажатия нужно "ставить Уборку аффекта".
jump @levi
:checkquit
wait 0
0650: destroy_particle 9@ ???? И хде его, ипать что ли?
читаю форум. Ещё очень много читать.
Offline
Господа,а зачем этот скрипт есть же в собейте как раз такой на ю жмешь и летаешь ).:wow:
Offline
Pages: 1