You are not logged in.
Как разрешить актёру стрелять во время анимации?
Offline
Всем привет. Как сделать чтобы при попадании со снайперской винтовки прямо в голову педу он не умирал? Огромное количество жизней здесь не спасает. Иммунитет (бессмертие) давать не подходит, так как тогда пед не реагирует на удары, а надо чтобы он "чувствовал", что игрок его ударил.
Также: как сделать телепортацию педа в определённое место при падении в воду?
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
можно ли поставить камеру на объект с смещением по оси 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