You are not logged in.
Всем привет. Как сделать чтобы при попадании со снайперской винтовки прямо в голову педу он не умирал? Огромное количество жизней здесь не спасает. Иммунитет (бессмертие) давать не подходит, так как тогда пед не реагирует на удары, а надо чтобы он "чувствовал", что игрок его ударил.
Также: как сделать телепортацию педа в определённое место при падении в воду?
Last edited by Flame (07-07-2013 19:23)
Offline
@Flame -
0446: set_actor 2@ dismemberment_possible 0 if 04AD: actor $PLAYER_ACTOR in_water then 00A1: put_actor $PLAYER_ACTOR at 345.5621 306.2212 998.4484 end
Offline
Seemann, спасибо большое!
Тогда еще новичковый вопрос.
"Actor.WeaponAccuracy(?@)" - это точность выстрелов. Это то же самое, что урон? Допустим, у нас персонаж рубит мачете игрока. Подойдет ли "Actor.WeaponAccuracy" с громадным значением чтобы пед убивал игрока с одного удара?
Last edited by Flame (07-07-2013 19:29)
Offline
@Flame - Accuracy - это меткость актера, в %. Если поставить 50, половина выстрелов будет мимо.
Сила удара/выстрела устанавливается в файле weapons.dat для каждого оружия.
Offline
Offline
По ID - это понятно, еще бы! Мне надо, определять перебором ID скажем от 0 до 20000 и проверять пед это или нет. Хочу универсальный способ определения педа. Чтоб если педа добавить то, он тоже при проверке добавлялся, а так получается фиксировано.
I know everything and nothing...
Offline
Здесь речь шла о скоростях авто по локальным направлениям. В процессе тестирования выяснилось, что иногда бывают странные глюки: почему то скорости меняют знак, положительное направление дает минус, в чем может быть дело?
I know everything and nothing...
Offline
Это понятно, что они работают, но не всегда, в том то и дело. Я использую эти алгоритмы в неск. скриптах и в них сразу наступает такая ерунда. Причем я заметил, что именно по направлению восток-запад искажается знак скорости. Привожу один из скриптов. Это моя версия driveby, для пассажирских мест включена.
{$CLEO .cs} //-------------MAIN--------------- thread 'MFCRFIR' wait 250 0A8C: write_memory 4813336 size 4 value -1869574000 virtual_protect 1 0A8C: write_memory 4813340 size 4 value -1869574000 virtual_protect 1 0A8C: write_memory 4813344 size 1 value 144 virtual_protect 1 0A8C: write_memory 6600818 size 4 value -1869574000 virtual_protect 1 0A8C: write_memory 6600822 size 4 value -1869574000 virtual_protect 1 0A8C: write_memory 6600826 size 1 value 144 virtual_protect 1 0A8C: write_memory 6601887 size 4 value -1869574000 virtual_protect 1 0A8C: write_memory 6601891 size 4 value -1869574000 virtual_protect 1 0A8C: write_memory 6601895 size 1 value 144 virtual_protect 1 0A8C: write_memory 6609737 size 4 value -1869574000 virtual_protect 1 0A8C: write_memory 6609741 size 4 value -1869574000 virtual_protect 1 0A8C: write_memory 6609745 size 1 value 144 virtual_protect 1 0A8C: write_memory 5383203 size 2 value 37008 virtual_protect 1 :MFCRFIR_216 wait 0 if Player.Defined($PLAYER_CHAR) else_goto @MFCRFIR_1914 if 09E7: player $PLAYER_CHAR not_frozen else_goto @MFCRFIR_1914 if not Player.InRemoteMode($PLAYER_CHAR) else_goto @MFCRFIR_1914 if and 84A7: not actor $PLAYER_ACTOR driving_boat 84A9: not actor $PLAYER_ACTOR driving_heli not Actor.DrivingPlane($PLAYER_ACTOR) 84C8: not actor $PLAYER_ACTOR driving_flying_vehicle 89AE: not actor $PLAYER_ACTOR driving_train else_goto @MFCRFIR_1914 if 0449: actor $PLAYER_ACTOR in_a_car else_goto @MFCRFIR_1914 03C0: 5@ = actor $PLAYER_ACTOR car 046C: 4@ = car 5@ driver 7@ = 1 if 2@ == 0 else_goto @MFCRFIR_707 0A96: 31@ = actor $PLAYER_ACTOR struct 31@ += 1816 0A8D: 30@ = read_memory 31@ size 1 virtual_protect 0 30@ -= 1 04B8: get_weapon_data_from_actor $PLAYER_ACTOR slot 5 weapon 29@ ammo 28@ model 27@ if and 29@ > 0 28@ > 0 003C: $PLAYER_ACTOR == 4@ // (int) then 30@ = 3 end 6@ = 0 :MFCRFIR_389 30@ += 1 if or 30@ == 0 30@ == 1 30@ > 5 else_goto @MFCRFIR_442 30@ = 2 jump @MFCRFIR_515 :MFCRFIR_442 if and 003C: $PLAYER_ACTOR == 4@ // (int) 30@ == 3 else_goto @MFCRFIR_482 30@ = 4 jump @MFCRFIR_515 :MFCRFIR_482 if and 003C: $PLAYER_ACTOR == 4@ // (int) 30@ == 5 else_goto @MFCRFIR_515 30@ = 2 :MFCRFIR_515 30@ += 1 04B8: get_weapon_data_from_actor $PLAYER_ACTOR slot 30@ weapon 29@ ammo 28@ model 27@ if and 29@ > 0 28@ > 0 else_goto @MFCRFIR_578 30@ -= 1 jump @MFCRFIR_631 :MFCRFIR_578 30@ -= 1 6@ += 1 if 6@ == 6 else_goto @MFCRFIR_624 30@ = -1 jump @MFCRFIR_631 :MFCRFIR_624 jump @MFCRFIR_389 :MFCRFIR_631 if not 30@ == -1 else_goto @MFCRFIR_661 0A8C: write_memory 31@ size 1 value 30@ virtual_protect 0 :MFCRFIR_661 call_scm_func @MFCRFIR_2010 1 5@ call_scm_func @MFCRFIR_1935 1 5@ call_scm_func @MFCRFIR_2187 1 5@ 2@ = 1 :MFCRFIR_707 if 0@ == 1 else_goto @MFCRFIR_1650 if 00E1: player 0 pressed_key 7 else_goto @MFCRFIR_1169 if and not 3@ == 1 not 3@ == 2 not 3@ == 3 not 3@ == 4 else_goto @MFCRFIR_1162 3@ = 1 0A96: 31@ = actor $PLAYER_ACTOR struct 31@ += 1816 0A8D: 30@ = read_memory 31@ size 1 virtual_protect 0 6@ = 0 :MFCRFIR_798 30@ += 1 if or 30@ == 0 30@ == 1 30@ > 5 else_goto @MFCRFIR_851 30@ = 2 jump @MFCRFIR_924 :MFCRFIR_851 if and 003C: $PLAYER_ACTOR == 4@ // (int) 30@ == 3 else_goto @MFCRFIR_891 30@ = 4 jump @MFCRFIR_924 :MFCRFIR_891 if and 003C: $PLAYER_ACTOR == 4@ // (int) 30@ == 5 else_goto @MFCRFIR_924 30@ = 2 :MFCRFIR_924 30@ += 1 04B8: get_weapon_data_from_actor $PLAYER_ACTOR slot 30@ weapon 29@ ammo 28@ model 27@ if and 29@ > 0 28@ > 0 else_goto @MFCRFIR_987 30@ -= 1 jump @MFCRFIR_1040 :MFCRFIR_987 30@ -= 1 6@ += 1 if 6@ == 6 else_goto @MFCRFIR_1033 30@ = -1 jump @MFCRFIR_1040 :MFCRFIR_1033 jump @MFCRFIR_798 :MFCRFIR_1040 if not 30@ == -1 else_goto @MFCRFIR_1070 0A8C: write_memory 31@ size 1 value 30@ virtual_protect 0 :MFCRFIR_1070 call_scm_func @MFCRFIR_2010 1 5@ call_scm_func @MFCRFIR_1935 1 5@ call_scm_func @MFCRFIR_2187 1 5@ 0713: actor $PLAYER_ACTOR driveby_actor -1 car -1 point 0.0 0.0 0.0 radius 0.0 0 0 firing_rate 100 :MFCRFIR_1162 jump @MFCRFIR_1837 :MFCRFIR_1169 if 00E1: player 0 pressed_key 5 else_goto @MFCRFIR_1650 if and not 3@ == 2 not 3@ == 3 not 3@ == 4 else_goto @MFCRFIR_1643 3@ = 2 0A96: 31@ = actor $PLAYER_ACTOR struct 31@ += 1816 0A8D: 30@ = read_memory 31@ size 1 virtual_protect 0 6@ = 0 :MFCRFIR_1253 30@ -= 1 if and 30@ == 5 003C: $PLAYER_ACTOR == 4@ // (int) else_goto @MFCRFIR_1300 30@ = 4 jump @MFCRFIR_1405 :MFCRFIR_1300 if and 30@ == 3 003C: $PLAYER_ACTOR == 4@ // (int) else_goto @MFCRFIR_1340 30@ = 2 jump @MFCRFIR_1405 :MFCRFIR_1340 if or not 30@ >= 2 30@ > 5 else_goto @MFCRFIR_1405 if 003C: $PLAYER_ACTOR == 4@ // (int) else_goto @MFCRFIR_1398 30@ = 4 jump @MFCRFIR_1405 :MFCRFIR_1398 30@ = 5 :MFCRFIR_1405 30@ += 1 04B8: get_weapon_data_from_actor $PLAYER_ACTOR slot 30@ weapon 29@ ammo 28@ model 27@ if and 29@ > 0 28@ > 0 else_goto @MFCRFIR_1468 30@ -= 1 jump @MFCRFIR_1521 :MFCRFIR_1468 30@ -= 1 6@ += 1 if 6@ == 6 else_goto @MFCRFIR_1514 30@ = -1 jump @MFCRFIR_1521 :MFCRFIR_1514 jump @MFCRFIR_1253 :MFCRFIR_1521 if not 30@ == -1 else_goto @MFCRFIR_1551 0A8C: write_memory 31@ size 1 value 30@ virtual_protect 0 :MFCRFIR_1551 call_scm_func @MFCRFIR_2010 1 5@ call_scm_func @MFCRFIR_1935 1 5@ call_scm_func @MFCRFIR_2187 1 5@ 0713: actor $PLAYER_ACTOR driveby_actor -1 car -1 point 0.0 0.0 0.0 radius 0.0 0 0 firing_rate 100 :MFCRFIR_1643 jump @MFCRFIR_1837 :MFCRFIR_1650 if and 00E1: player 0 pressed_key 17 80E1: not player 0 pressed_key 5 80E1: not player 0 pressed_key 7 else_goto @MFCRFIR_1830 if and not 3@ == 3 not 3@ == 4 else_goto @MFCRFIR_1823 3@ = 3 if 0@ == 1 else_goto @MFCRFIR_1763 0881: set_player $PLAYER_CHAR able_to_shoot_weapons 1 32@ = 0 jump @MFCRFIR_1823 :MFCRFIR_1763 if not 30@ == -1 else_goto @MFCRFIR_1823 0881: set_player $PLAYER_CHAR able_to_shoot_weapons 0 0713: actor $PLAYER_ACTOR driveby_actor -1 car -1 point 0.0 0.0 0.0 radius 0.0 0 0 firing_rate 100 32@ = 0 0@ = 1 :MFCRFIR_1823 jump @MFCRFIR_1837 :MFCRFIR_1830 if 00E1: player 0 pressed_key 4 then 0881: set_player $PLAYER_CHAR able_to_shoot_weapons 0 else 0881: set_player $PLAYER_CHAR able_to_shoot_weapons 1 end 3@ = 0 if 0@ == 1 jf @MFCRFIR_1837 if 32@ > 5000 else_goto @MFCRFIR_1837 {04B8: get_weapon_data_from_actor $PLAYER_ACTOR slot 5 weapon 29@ ammo 28@ model 27@ if and 29@ > 0 28@ > 0 then 30@ = 3 end} 0A96: 31@ = actor $PLAYER_ACTOR struct 31@ += 1816 0A8D: 30@ = read_memory 31@ size 1 virtual_protect 0 04B8: get_weapon_data_from_actor $PLAYER_ACTOR slot 5 weapon 29@ ammo 28@ model 27@ if and 29@ > 0 28@ > 0 003C: $PLAYER_ACTOR == 4@ // (int) then 0A8C: write_memory 31@ size 1 value 4 virtual_protect 0 end call_scm_func @MFCRFIR_2010 1 5@ call_scm_func @MFCRFIR_1935 1 5@ call_scm_func @MFCRFIR_2187 1 5@ 0@ = 0 :MFCRFIR_1837 if 0@ == 1 then 0A8C: write_memory 12006502 size 1 value 0 virtual_protect 0 0A8C: write_memory 12006498 size 1 value 0 virtual_protect 0 end 0470: 29@ = actor $PLAYER_ACTOR current_weapon 041A: 28@ = actor $PLAYER_ACTOR weapon 29@ ammo if or 28@ > 0 29@ == 0 else_goto @MFCRFIR_1914 jump @MFCRFIR_216 :MFCRFIR_1914 if 7@ == 1 then 0881: set_player $PLAYER_CHAR able_to_shoot_weapons 1 7@ = 0 end 0@ = 0 2@ = 0 jump @MFCRFIR_216 :MFCRFIR_1935 call_scm_func @MFCRFIR_2412 2 $PLAYER_ACTOR 0@ 31@ if 31@ == 0 else_goto @MFCRFIR_1987 036A: put_actor $PLAYER_ACTOR in_car 0@ jump @MFCRFIR_2005 :MFCRFIR_1987 31@ -= 1 0430: put_actor $PLAYER_ACTOR into_car 0@ passenger_seat 31@ :MFCRFIR_2005 ret 0 :MFCRFIR_2010 0085: 29@ = 0@ // (int) 0@ = 0 0AC7: 27@ = var 0@ offset 0A97: 28@ = car 29@ struct 0A8E: 25@ = 28@ + 68 // int 0A8E: 24@ = 28@ + 20 // int 0A8D: 24@ = read_memory 24@ size 4 virtual_protect 0 0AC6: 15@ = label @MFCRFIR_2336 offset 0A8C: write_memory 15@ size 68 value 0 virtual_protect 0 0AA5: call 8331376 2 pop 2 24@ 15@ 0AA5: call 5883792 3 pop 3 25@ 15@ 27@ 0AC6: 31@ = label @MFCRFIR_2400 offset 0A8C: write_memory 31@ size 4 value 0@ virtual_protect 0 31@ += 4 0A8C: write_memory 31@ size 4 value 1@ virtual_protect 0 31@ += 4 0A8C: write_memory 31@ size 4 value 2@ virtual_protect 0 ret 0 :MFCRFIR_2187 0085: 29@ = 0@ // (int) 0@ = 0 0AC6: 31@ = label @MFCRFIR_2400 offset 0A8D: 0@ = read_memory 31@ size 4 virtual_protect 0 31@ += 4 0A8D: 1@ = read_memory 31@ size 4 virtual_protect 0 31@ += 4 0A8D: 2@ = read_memory 31@ size 4 virtual_protect 0 0AC7: 27@ = var 0@ offset 0A97: 28@ = car 29@ struct 0A8E: 25@ = 28@ + 68 // int 0A8E: 24@ = 28@ + 20 // int 0A8D: 24@ = read_memory 24@ size 4 virtual_protect 0 0AA5: call 5883792 3 pop 3 27@ 24@ 25@ ret 0 :MFCRFIR_2336 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP :MFCRFIR_2400 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP 0000: NOP :MFCRFIR_2412 046C: 6@ = car 1@ driver if 003B: 6@ == 0@ // (int) else_goto @MFCRFIR_2453 3@ = 0 jump @MFCRFIR_2587 :MFCRFIR_2453 01EA: 4@ = car 1@ max_passengers 5@ = 0 :MFCRFIR_2468 if 803B: not 4@ == 5@ // (int) else_goto @MFCRFIR_2580 if 8431: not car 1@ passenger_seat_free 5@ else_goto @MFCRFIR_2566 call_scm_func @MFCRFIR_2595 2 1@ 5@ 6@ if 003B: 6@ == 0@ // (int) else_goto @MFCRFIR_2566 0085: 3@ = 5@ // (int) 3@ += 1 jump @MFCRFIR_2587 :MFCRFIR_2566 5@ += 1 jump @MFCRFIR_2468 :MFCRFIR_2580 3@ = -1 :MFCRFIR_2587 ret 1 3@ :MFCRFIR_2595 0A97: 2@ = car 0@ struct 1@ *= 4 2@ += 1124 005A: 2@ += 1@ // (int) 0A8D: 2@ = read_memory 2@ size 4 virtual_protect 0 0AEA: 2@ = actor_struct 2@ handle ret 1 2@
I know everything and nothing...
Offline
Помогите разобраться что в коде неправильно:
Написал миссию на CLEO для GTA 3. В игре появляются маркер на радаре и сфера, но при заходе в нее ничего не происходит.
{$CLEO} 0000: :STARTER thread 'STARTER' wait 0 if $ONMISSION == 0 jf @STARTER 02A7: $mis = create_icon_marker_and_sphere 19 at 852.026 -475.984 14.5177 :STARTER_1 wait 0 if $ONMISSION ==1 then 0164: disable_marker $mis jump @STARTER end if AND 8118: not actor $PLAYER_ACTOR dead 80E0: not player $PLAYER_CHAR driving then if 00E6: player $PLAYER_CHAR stopped 852.026 -475.984 14.5177 radius 1.0 2.0 then jump @STARTER_2 end end jump @STARTER_1 :STARTER_2 wait 0 02AB: set_actor $PLAYER_ACTOR immunities 1 1 1 1 1 0164: disable_marker $mis 00BE: text_clear_all 03E6: remove_text_box 00BA: text_styled 'MISS_1' 1000 ms 2 fade 0 1000 wait 2000 004F: create_thread @MISSION jump @STARTER //-------------Mission----------------- :MISSION gosub @MISSION_29_57 if wasted_or_busted jf @MISSION_29_46 gosub @MISSION_29_144 :MISSION_29_46 $ONMISSION = 0 mission_cleanup end_thread :MISSION_29_57 increment_mission_attempts $ONMISSION = 1 0247:request model #GANG03 0247:request model #GANG04 0247:request model #BAT 0247:request model #COLT45 038B: load_requested_models :MISSION_1 wait 100 if 0248: model #GANG03 available 0248: model #GANG04 available 0248: model #BAT available 0248: model #COLT45 available jf @MISSION_1 0395: clear_area 1 at 856.941 -479.756 range 4.0 1.0 00A1: put_actor $PLAYER_ACTOR at 856.941 -479.756 14.6154 0171: set_actor $PLAYER_ACTOR z_angle_to 180 009A: $0 = create_actor 8 #GANG03 at 888.323 -515.284 16.1154 0173: set_actor $0 z_angle_to 360 009A: $1 = create_actor 8 #GANG04 at 890.493 -547.317 14.5154 0173: set_actor $1 z_angle_to 270 009A: $2 = create_actor 8 #GANG03 at 876.434 -538.549 14.5154 0173: set_actor $2 z_angle_to 90 032B: $pp = create_weapon_pickup #COLT45 3 ammo 25 at 859.41 -482.802 14.9782 01B2: give_actor $1 weapon 2 ammo 100 01B2: give_actor $0 weapon 1 ammo 999 01B2: give_actor $2 weapon 1 ammo 999 02EB: restore_camera_with_jumpcut wait 2000 fade 1 1000 wait 1000 01CB: actor $0 kill_actor $PLAYER_ACTOR 01CB: actor $1 kill_actor $PLAYER_ACTOR 01CB: actor $2 kill_actor $PLAYER_ACTOR 02AB: set_actor $PLAYER_ACTOR immunities 0 0 0 0 0 0187: $m0 = create_marker_above_actor $0 0187: $m1 = create_marker_above_actor $1 0187: $m2 = create_marker_above_actor $2 :MISSION_2 wait 100 if 0118: actor $0 dead then 0164: disable_marker $m0 end if 0118: actor $1 dead then 0164: disable_marker $m1 end if 0118: actor $2 dead then 0164: disable_marker $m2 end if AND 0118: actor $0 dead 0118: actor $1 dead 0118: actor $2 dead then jump @MISSION_3 end jump @MISSION_2 :MISSION_3 wait 100 gosub @MISSION_END 01E3: text_1number_styled GXT 'M_PASS' 1000 6000 ms 6 0109: player $PLAYER_CHAR money += 1000 return :MISSION_29_144 wait 0 gosub @MISSION_END 00BA: text_styled 'M_FAIL' time 5000 ms 2 return :MISSION_END wait 100 01C2: remove_references_to_actor $0 01C2: remove_references_to_actor $1 01C2: remove_references_to_actor $2 009B: destroy_actor_instantly $0 009B: destroy_actor_instantly $1 009B: destroy_actor_instantly $2 0164: disable_marker $m0 0164: disable_marker $m1 0164: disable_marker $m2 return
Offline
sanby как-то давно один из скриптеров сказал, что вроде бы писать миссии для GTA 3/VC на CLEO невозможно, так как опкодов мало..
Хм.. Ну я же простенькую миссию написал. Все опкоды оригинальные используются.
Или просто не все из этих опкодов поддерживаются CLEO?
Ну, ладно. Пропишу миссию в оригинальный маин и проверю снова.
Offline
@Portal25 - CLEO добавляет к уже имеющимся опкодам новые. Все опкоды, которые есть в оригинальной игре, работают в CLEO-скриптах/миссиях.
Offline
ДД, товарищи. Скажите, какую команду использовать, что бы убрать в миссии, скажем, задние двери автомобиля?
Offline
ДД, товарищи. Скажите, какую команду использовать, что бы убрать в миссии, скажем, задние двери автомобиля?
Тебе нужен один из опкодов с компонентами:
0697: set_car 543@ remove_component 4 visible_effect_flag 1 06E8: car 4@ destroy_component 2
У меня 2 вопроса:
1. Как перевести из игровых координат в экранные
2. Как перевести из экранных координат в игровые
В обоих случаях нельзя использовать игровые функции - нужен код, который будет работать в SA-MP (пишу на Pawno). У меня в распоряжении позиция камеры и Front-вектор камеры (вектор указывающий направление, куда смотрит камера), помимо координат, которые необходимо перевести.
Last edited by Voron295 (22-07-2013 23:24)
Offline
ДД, товарищи. Скажите, какую команду использовать, что бы убрать в миссии, скажем, задние двери автомобиля?
073С: car 0@ damage_component 0 {0,1,2,3,4,5}// повредить
0689: set_car 0@ remove_componentA 0 {0,1,2,3,4,5} visible_effect_flag 1 // отделить-flag 1, удалить-flag 0
068A: set_car 0@ repair_componentA 0 {0,1,2,3,4,5} // восстановить
0 - капот
1 - багажник
2 - левая передняя дверь
3 - правая передняя дверь
4 - левая задняя дверь
5 - правая задняя дверь
Тебе нужен один из опкодов с компонентами:
0697: set_car 543@ remove_component 4 visible_effect_flag 1 06E8: car 4@ destroy_component 2
0697: set_car 0@ remove_componentB 0 {0,1,4,5,6} visible_effect_flag 0 // отделить-flag 1, удалить-flag 0
0 - левое переднее крыло авто
1 - правое переднее крыло авто
4 - лобовое стекло
5 - передний бампер
6 - задний бампер
06E8: car 0@ destroy_component 2@ //удаление компонента тюнинга 2@ - номер ID
Offline
можно ли поставить камеру на объект с смещением по оси X или Y?
Стандартными средствами игры - нет. А зачем, если не секрет?)
Просто я уже пытался это сделать, мне было необходимо создать вид от первого лица. Но ничего толкового из этой идеи не вышло. Пришлось решать проблему другими способами.
Offline
Скажите. А вот как сделать, чтобы солдаты, которые стоят на полозьях вертолёта когда их убьёшь, падали бы на землю, как в некоторых миссиях. Я пробовал чисто сделать по образцу, но не вышло... Вот скрип мой. Всё работает, но дописать новые команды для дела не вышло. Что делать?
3@ = Actor.CreateAsDriver(Cop, #SWAT, 1@) 4@ = Actor.CreateAsPassenger(Cop, #SWAT, 1@, 0) 5@ = Actor.CreateAsPassenger(Cop, #SWAT, 1@, 1) 6@ = Actor.CreateAsPassenger(Cop, #SWAT, 1@, 2) Actor.GiveWeaponAndAmmo(5@, M4, 9999) Actor.WeaponAccuracy(5@) = 70 Actor.GiveWeaponAndAmmo(6@, M4, 9999) Actor.WeaponAccuracy(6@) = 70 054A: set_actor 3@ can_be_shot_in_a_car 1 054A: set_actor 4@ can_be_shot_in_a_car 1 054A: set_actor 5@ can_be_shot_in_a_car 1 054A: set_actor 6@ can_be_shot_in_a_car 1 Actor.SetMaxHealth(3@, 1500) Actor.SetMaxHealth(4@, 1500) 039E: set_actor 3@ locked 1 while_in_car Car.StorePos(1@, $TEMPVAR_FLOAT_1, $TEMPVAR_FLOAT_2, $TEMPVAR_FLOAT_3) 0362: remove_actor 5@ from_car_and_place_at $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 0639: AS_actor 5@ rotate_to_actor $PLAYER_ACTOR 0465: remove_actor 5@ from_turret_mode 0856: set_actor 5@ enable_crouch 1 0464: put_actor 5@ into_turret_on_car 1@ at_car_offset -1.0 -0.3 0.0 position 1 shooting_angle_limit 180.0 with_weapon 31 Actor.Angle(5@) = 200.0 0362: remove_actor 6@ from_car_and_place_at $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 0465: remove_actor 6@ from_turret_mode 0856: set_actor 6@ enable_crouch 1 0464: put_actor 6@ into_turret_on_car 1@ at_car_offset 1.2 -0.3 0.0 position 3 shooting_angle_limit 180.0 with_weapon 31 0639: AS_actor 6@ rotate_to_actor $PLAYER_ACTOR 05E2: AS_actor 5@ kill_actor $PLAYER_ACTOR 0350: set_actor 5@ maintain_position_when_attacked 1 05E2: AS_actor 6@ kill_actor $PLAYER_ACTOR 0350: set_actor 6@ maintain_position_when_attacked 1 Model.Destroy(#SWAT) Model.Destroy(#M4)
Last edited by Hetzer (23-07-2013 18:16)
Offline
SHooZ wrote:можно ли поставить камеру на объект с смещением по оси X или Y?
Стандартными средствами игры - нет. А зачем, если не секрет?)
Просто я уже пытался это сделать, мне было необходимо создать вид от первого лица. Но ничего толкового из этой идеи не вышло. Пришлось решать проблему другими способами.
Хочу сделать возможность крутить камерой клавишами 'A' и 'D' при выводе панели покупок (т.е. в магазинах одежды, тату-салонах парикмахерских и тд). Думаю поставить нулевой объект в координаты актер, прикрепить к нему камеру с смещением 5Х, заставить эту камеру смотреть на актера. Потом проверки: если нажата 'А' - отнимаем от угла поворота этого объекта 10º, если 'D' - добавляем. Соответственно и камера будет крутится)
Offline
Интересно. Можно ли написать один скрипт который запустит в действие второй.
Как *.cs который вызывает *.cm
Да,
Opcode 0A92
Формат опкода
0A92: create_custom_thread "ShowTextBox.s"
Описание
0A92 создает поток из указанного файла. Имя файла указывается с расширением (если таковое имеется). Обратите внимание, что если файл имеет расширение .cs, поток из этого файла будет создан автоматически при старте игры. При создании потока опкодом 0A92 можно передать в него до 34 параметров, как в опкоде 004F.Параметры
1. [in] Путь к файлу. Поиск файла ведется относительно папки CLEO. Строка отвечает соглашению о строках.... [in] Начальные значения локальных переменных и таймеров запущенного потока. Необязательные параметры.
См. также
Opcode 0A94.
Offline