#4226 02-07-2013 09:42

SHooZ
From: Львів
Registered: 05-06-2013
Posts: 51
Website

Re: Один вопрос

Как разрешить актёру стрелять во время анимации?

Offline

#4227 07-07-2013 19:20

Flame
Registered: 17-12-2011
Posts: 11

Re: Один вопрос

Всем привет. Как сделать чтобы при попадании со снайперской винтовки прямо в голову педу он не умирал? Огромное количество жизней здесь не спасает. Иммунитет (бессмертие) давать не подходит, так как тогда пед не реагирует на удары, а надо чтобы он "чувствовал", что игрок его ударил.

Также: как сделать телепортацию педа в определённое место при падении в воду?

Last edited by Flame (07-07-2013 19:23)

Offline

#4228 07-07-2013 19:24

Seemann
Registered: 07-08-2006
Posts: 2,093

Re: Один вопрос

@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

#4229 07-07-2013 19:28

Flame
Registered: 17-12-2011
Posts: 11

Re: Один вопрос

Seemann, спасибо большое!

Тогда еще новичковый вопрос.

"Actor.WeaponAccuracy(?@)" - это точность выстрелов. Это то же самое, что урон? Допустим, у нас персонаж рубит мачете игрока. Подойдет ли "Actor.WeaponAccuracy" с громадным значением чтобы пед убивал игрока с одного удара?

Last edited by Flame (07-07-2013 19:29)

Offline

#4230 09-07-2013 09:33

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 551
Website

Re: Один вопрос

Как проверить, что модель - пед?


I know everything and nothing...

Offline

#4231 09-07-2013 09:51

Seemann
Registered: 07-08-2006
Posts: 2,093

Re: Один вопрос

@Flame - Accuracy - это меткость актера, в %. Если поставить 50, половина выстрелов будет мимо.
Сила удара/выстрела устанавливается в файле weapons.dat для каждого оружия.

Offline

#4232 09-07-2013 09:53

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Один вопрос

@mfisto - По id? >= 9, <= 299. См. peds.ide.

Offline

#4233 09-07-2013 17:55

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 551
Website

Re: Один вопрос

По ID - это понятно, еще бы! Мне надо, определять перебором ID скажем от 0 до 20000 и проверять пед это или нет. Хочу универсальный способ определения педа. Чтоб если педа добавить то, он тоже при проверке добавлялся, а так получается фиксировано.


I know everything and nothing...

Offline

#4234 10-07-2013 22:43

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 551
Website

Re: Один вопрос

Пост

Здесь речь шла о скоростях авто по локальным направлениям. В процессе тестирования выяснилось, что иногда бывают странные глюки: почему то скорости меняют знак, положительное направление дает минус, в чем может быть дело?


I know everything and nothing...

Offline

#4235 11-07-2013 20:56

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 937
Website

Re: Один вопрос

Алгоритмы верные, глюков быть не должно. Нужно более подробное описание проблемы, желательно с примером применения кода.

Offline

#4236 11-07-2013 21:51

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 551
Website

Re: Один вопрос

Это понятно, что они работают, но не всегда, в том то и дело.  Я использую эти алгоритмы в неск. скриптах и в них сразу наступает такая ерунда. Причем я заметил, что именно по направлению восток-запад искажается знак скорости. Привожу один из скриптов. Это моя версия 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

#4237 19-07-2013 21:54

sanby
Registered: 19-07-2013
Posts: 2

Re: Один вопрос

Помогите разобраться что в коде неправильно:
Написал миссию на 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

#4238 19-07-2013 22:42

Portal25
From: Tambov
Registered: 25-06-2011
Posts: 52
Website

Re: Один вопрос

sanby как-то давно один из скриптеров сказал, что вроде бы писать миссии для GTA 3/VC на CLEO невозможно, так как опкодов мало..


OgYkX.png

Offline

#4239 20-07-2013 11:08

sanby
Registered: 19-07-2013
Posts: 2

Re: Один вопрос

Portal25 wrote:

sanby как-то давно один из скриптеров сказал, что вроде бы писать миссии для GTA 3/VC на CLEO невозможно, так как опкодов мало..

Хм.. Ну я же простенькую миссию написал. Все  опкоды оригинальные используются.
Или просто не все из этих опкодов поддерживаются CLEO?
Ну, ладно. Пропишу миссию в оригинальный маин и проверю снова.

Offline

#4240 20-07-2013 16:42

Seemann
Registered: 07-08-2006
Posts: 2,093

Re: Один вопрос

@Portal25 - CLEO добавляет к уже имеющимся опкодам новые. Все опкоды, которые есть в оригинальной игре, работают в CLEO-скриптах/миссиях.

Offline

#4241 20-07-2013 16:48

Portal25
From: Tambov
Registered: 25-06-2011
Posts: 52
Website

Re: Один вопрос

Seemann пардон. Не знал blush


OgYkX.png

Offline

#4242 22-07-2013 13:11

Hetzer
Registered: 22-07-2013
Posts: 3

Re: Один вопрос

ДД, товарищи. Скажите, какую команду использовать, что бы убрать в миссии, скажем, задние двери автомобиля?

Offline

#4243 22-07-2013 23:21

Voron295
From: Каушаны
Registered: 06-12-2010
Posts: 425
Website

Re: Один вопрос

Hetzer wrote:

ДД, товарищи. Скажите, какую команду использовать, что бы убрать в миссии, скажем, задние двери автомобиля?

Тебе нужен один из опкодов с компонентами:

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)


Добро всегда побеждает зло. Кто победил, тот и добрый!
userbar.png

Offline

#4244 23-07-2013 03:42

kenking
From: Казахстан
Registered: 28-06-2010
Posts: 253

Re: Один вопрос

Hetzer wrote:

ДД, товарищи. Скажите, какую команду использовать, что бы убрать в миссии, скажем, задние двери автомобиля?

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 - правая задняя дверь

Voron295 wrote:

Тебе нужен один из опкодов с компонентами:

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

#4245 23-07-2013 08:48

SHooZ
From: Львів
Registered: 05-06-2013
Posts: 51
Website

Re: Один вопрос

можно ли поставить камеру на объект с смещением по оси X или Y?

Offline

#4246 23-07-2013 17:05

RitrS
From: Downtown
Registered: 11-07-2013
Posts: 62
Website

Re: Один вопрос

Интересно. Можно ли написать один скрипт который запустит в действие второй.

Как *.cs который вызывает *.cm

Offline

#4247 23-07-2013 17:22

Voron295
From: Каушаны
Registered: 06-12-2010
Posts: 425
Website

Re: Один вопрос

SHooZ wrote:

можно ли поставить камеру на объект с смещением по оси X или Y?

Стандартными средствами игры - нет. А зачем, если не секрет?)
Просто я уже пытался это сделать, мне было необходимо создать вид от первого лица. Но ничего толкового из этой идеи не вышло. Пришлось решать проблему другими способами.


Добро всегда побеждает зло. Кто победил, тот и добрый!
userbar.png

Offline

#4248 23-07-2013 18:16

Hetzer
Registered: 22-07-2013
Posts: 3

Re: Один вопрос

Скажите. А вот как сделать, чтобы солдаты, которые стоят на полозьях вертолёта когда их убьёшь, падали бы на землю, как в некоторых миссиях. Я пробовал чисто сделать по образцу, но не вышло... Вот скрип мой. Всё работает, но дописать новые команды для дела не вышло. Что делать?

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

#4249 23-07-2013 19:29

SHooZ
From: Львів
Registered: 05-06-2013
Posts: 51
Website

Re: Один вопрос

Voron295 wrote:
SHooZ wrote:

можно ли поставить камеру на объект с смещением по оси X или Y?

Стандартными средствами игры - нет. А зачем, если не секрет?)
Просто я уже пытался это сделать, мне было необходимо создать вид от первого лица. Но ничего толкового из этой идеи не вышло. Пришлось решать проблему другими способами.

Хочу сделать возможность крутить камерой клавишами 'A' и 'D' при выводе панели покупок (т.е. в магазинах одежды, тату-салонах парикмахерских и тд). Думаю поставить нулевой объект в координаты актер, прикрепить к нему камеру с смещением 5Х, заставить эту камеру смотреть на актера. Потом проверки: если нажата 'А' - отнимаем от угла поворота этого объекта 10&#186;, если 'D' - добавляем. Соответственно и камера будет крутится)

Offline

#4250 23-07-2013 19:34

SHooZ
From: Львів
Registered: 05-06-2013
Posts: 51
Website

Re: Один вопрос

RitrS wrote:

Интересно. Можно ли написать один скрипт который запустит в действие второй.

Как *.cs который вызывает *.cm

Да,

Opcode 0A92
Формат опкода
0A92: create_custom_thread "ShowTextBox.s"
Описание
0A92 создает поток из указанного файла. Имя файла указывается с расширением (если таковое имеется). Обратите внимание, что если файл имеет расширение .cs, поток из этого файла будет создан автоматически при старте игры. При создании потока опкодом 0A92 можно передать в него до 34 параметров, как в опкоде 004F.

Параметры
1.  [in] Путь к файлу. Поиск файла ведется относительно папки CLEO. Строка отвечает соглашению о строках.

...  [in] Начальные значения локальных переменных и таймеров запущенного потока. Необязательные параметры.
См. также
Opcode 0A94.

Offline

Board footer

Powered by FluxBB