#4226 02-07-2013 09:42

SHooZ
Registered: 05-06-2013
Posts: 51

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,156

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

@Flame -

1
2
3
4
5
6
7
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: 558
Website

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

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


I know everything and nothing...

Offline

#4231 09-07-2013 09:51

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

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: 558
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: 558
Website

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

Пост

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


I know everything and nothing...

Offline

#4235 11-07-2013 20:56

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

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

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

Offline

#4236 11-07-2013 21:51

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

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

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

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
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
{$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. В игре появляются маркер на радаре и сфера, но при заходе в нее ничего не происходит.



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
{$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,156

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:

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

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

1
2
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:

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

1
2
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
Registered: 05-06-2013
Posts: 51

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: Один вопрос

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

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
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
Registered: 05-06-2013
Posts: 51

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

Voron295 wrote:
SHooZ wrote:

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

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

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

Offline

#4250 23-07-2013 19:34

SHooZ
Registered: 05-06-2013
Posts: 51

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