#1 21-09-2010 10:14

Kostyan
Registered: 27-09-2009
Posts: 93

Помогите найти глюк

Вобще три дня назад написал для себя скрипт, вроде всё хорошо, но в скрипте есть один глюк, когда пед начинает атаковать и после нескольких ударов(не заметил закономерности), пед стаёт бессмертным, то есть, у него над голдовой уже чёрный треугольник, а он всё атакует и убить его нельзя и случиться это может с первым педо, который попал под действие скрипта, а может с пятым, а может и с 20, уже два дня потратил, так и не нашёл ошибку (хотя уже до такой степени скрипт испохабил из-за этого глюка, что он теперь одна большая ошибка)

:CET_11
wait 0 
20@ = 0 
10@ = 0 
12@ = 0 
if 
   Player.Defined($PLAYER_CHAR)
else_jump @CET_961 
if 
   not Actor.Driving($PLAYER_ACTOR)
else_jump @CET_75 
jump @CET_82 

:CET_75
jump @CET_961 

:CET_82
Actor.StorePos($PLAYER_ACTOR, 21@, 22@, 23@)
0AE1: 1@ = random_actor_near_point 21@ 22@ 23@ in_radius 15.0 find_next 0 pass_deads 0 //IF and SET 
if 
  1@ > -1 
else_jump @CET_961 
if 
   not Actor.Dead(1@)
else_jump @CET_160 
jump @CET_167 

:CET_160
jump @CET_961

:CET_167
gosub @CET_811 
gosub @CET_899 
gosub @CET_552 
if 
  10@ == 0 
else_jump @CET_213 
jump @CET_292 

:CET_213
jump @CET_220 

:CET_220
if 
874F:   not actor 1@ ped_event == 26 
else_jump @CET_956 
if 
   not 9@ == 6 
else_jump @CET_263 
jump @CET_270 

:CET_263
jump @CET_956 

:CET_270
05DB: AS_actor 1@ flee_from_actor $PLAYER_ACTOR from_origin_radius 100.0 timelimit -1 
jump @CET_956 

:CET_292
if 
  12@ == 1 
else_jump @CET_317 
jump @CET_324 

:CET_317
jump @CET_956 

:CET_324
jump @CET_331 

:CET_331
if 
   Actor.Defined(1@)
else_jump @CET_354 
jump @CET_361 

:CET_354
jump @CET_956 

:CET_361
if 
   not Actor.Dead(1@)
else_jump @CET_384 
jump @CET_391 

:CET_384
jump @CET_956 

:CET_391
if 
0184:   actor 1@ health >= 30 
0AA0: gosub_if_false @CET_703 
if 
  20@ == 0 
else_jump @CET_434 
jump @CET_441 

:CET_434
jump @CET_270 

:CET_441
if or
0A1B:   actor 1@ colliding_with_actor $PLAYER_ACTOR 
074F:   actor 1@ ped_event == 15 
074F:   actor 1@ ped_event == 49 
else_jump @CET_956 
if and 
82E0:   not actor 1@ aggressive 
874F:   not actor 1@ ped_event == 26 
else_jump @CET_956 
if 
   Actor.Defined(1@)
else_jump @CET_354 
if 
   not Actor.Dead(1@)
else_jump @CET_384
05E2: AS_actor 1@ kill_actor $PLAYER_ACTOR 
jump @CET_956 

:CET_552
089F: get_actor 1@ pedtype_to 9@ 
if and
   not 9@ == 6 
   not 9@ == 7 
   not 9@ == 8 
   not 9@ == 9 
   not 9@ == 10 
   not 9@ == 11 
   not 9@ == 12 
else_jump @CET_687 
if and
   not 9@ == 13 
   not 9@ == 14 
   not 9@ == 15 
   not 9@ == 16 
   not 9@ == 17 
   not 9@ == 20 
else_jump @CET_687 
if and
  not Actor.Model(1@) == #MALE01
   not actor.model(1@) == #BMYBE
   not actor.model(1@) == #BMYDJ
   not actor.model(1@) == #BMYRI
   not actor.model(1@) == #BMYCR
   not actor.model(1@) == #BMYST
   not actor.model(1@) == #WMYBMX
else_jump @CET_687
if and
   not actor.model(1@) == #WBDYG1
   not actor.model(1@) == #WBDYG2
   not actor.model(1@) == #BMYDRUG
   not actor.model(1@) == #WMYDRUG
   not actor.model(1@) == #HMYDRUG
   not actor.model(1@) == #DWMYLC1
   not actor.model(1@) == #HMYBE
else_jump @CET_687
if and
   not actor.model(1@) == #HMYRI
   not actor.model(1@) == #HMYCR
   not actor.model(1@) == #HMYST
   not actor.model(1@) == #OMYST
   not actor.model(1@) == #BMYPOL1
   not actor.model(1@) == #BMYPOL2
   not actor.model(1@) == #WMYJG
else_jump @CET_687
12@ = 0 
jump @CET_701 

:CET_687
12@ = 1 
jump @CET_701 

:CET_701
return 

:CET_703
0470: 16@ = actor 1@ current_weapon 
if 
  16@ >= 2 
else_jump @CET_736 
jump @CET_743 

:CET_736
jump @CET_802 

:CET_743
Actor.StorePos(1@, 13@, 14@, 15@)
0781: get_weapon_with_ID 16@ model_to 18@ 
0209: 19@ = random_int_in_ranges 22 794 
032B: 17@ = create_weapon_pickup 18@ group 3 ammo 19@ at 13@ 14@ 15@ 
048F: actor 1@ remove_weapons 

:CET_802
20@ = 1 
return 

:CET_811
0470: 5@ = actor $PLAYER_ACTOR current_weapon 
if and
  5@ >= 16 
  34 >= 5@ 
else_jump @CET_858 
10@ = 2 
jump @CET_897 

:CET_858
if and
  5@ >= 35 
  39 >= 5@ 
else_jump @CET_897 
10@ = 4 
jump @CET_897 

:CET_897
return 

:CET_899
080E: get_actor $PLAYER_ACTOR ped_event_to 8@ 
if 
   not 8@ == 72 
0AA0: gosub_if_false @CET_927 
return 

:CET_927
if 
   not Player.WantedLevel($PLAYER_CHAR) > 10@
else_jump @CET_954 
Player.SetMinWantedLevel($PLAYER_CHAR, 10@)

:CET_954
return 

:CET_956
Actor.RemoveReferences(1@)

:CET_961
jump @CET_11

Offline

#2 21-09-2010 13:13

kostay scr
From: Беларусь
Registered: 25-05-2007
Posts: 176

Re: Помогите найти глюк

Во первых ты чего скрипт декомпилируеш?
Нужно всё менять в исходнике - .txt и сохранять, а то так не читабельно совсем.
Вместо 05E2 попробуй использовать 01C9: actor $2324 kill_actor $2291
05E2 для ActionSequence'в - читай SBManual
И самое главное делай Actor.RemoveReferences .

Last edited by kostay scr (21-09-2010 13:20)


GTA VC - ЭТО НАСТОЯЩАЯ ГТА!

Offline

#3 21-09-2010 13:27

Kostyan
Registered: 27-09-2009
Posts: 93

Re: Помогите найти глюк

Спасибо большое, всё сделаю, как сказал.

Offline

#4 21-09-2010 21:37

kostay scr
From: Беларусь
Registered: 25-05-2007
Posts: 176

Re: Помогите найти глюк

Да не за что wink

Last edited by kostay scr (21-09-2010 21:38)


GTA VC - ЭТО НАСТОЯЩАЯ ГТА!

Offline

Board footer

Powered by FluxBB