#1 21-09-2010 10:14

Kostyan
Registered: 27-09-2009
Posts: 94

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
: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: 94

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