#801 24-02-2009 10:59

GTASA
Registered: 13-09-2008
Posts: 476

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

Спасибо, работает. А если мне надо несколько фраз? Если по одному - работает, а так нет.

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP 
wait 0 
0@ = 304526 

:NONAME_16
wait 0
if and
   not Actor.Dead($PLAYER_ACTOR)
0AB0:   key_pressed 17 
0AB0:   key_pressed 54 
jf @NONAME_16
054C: use_GXT_table 'FIRETRK'
054C: use_GXT_table 'LAFIN1' 
054C: use_GXT_table 'SWEET1'
054C: use_GXT_table 'SYN5'
Player.CanMove($PLAYER_CHAR) = False
08D4: 3@ = create_panel_with_title 'FES_WEA' position 31.0 110.0 width 80.0 columns 1 interactive 1 background 1 alignment 0  // ’“ K 
08DB: set_panel 3@ column 0 header 'DUMMY' data 'SEXSHOP' 'SEXSHOP' 'SEXSHOP' 'SEXSHOP' 'GARAGE1' 'GRENADE' 'SYN5_GX' 'FEC_FIR' 'FIN1_LA' 'FIN1_LA' 'F_PASS1' 'SWE1SPF'  // CHA ’EPCKA• B HTOBKA // B HTOBKA // …EH‡O’ ‚A // KATAHA // ЂP“†OE // ~z~BCTPET€C• C MOE  ‚O’ATO  ’P Ђ“POK! // …E C…O‚€HA• … TA // HO„ // KO’ // ЂP“†OE // ЂP“†OE // ЂP“†OE
08D6: set_panel 3@ column 0 alignment 1 
08D6: set_panel 3@ column 1 alignment 2 
09DB: set_panel 3@ column 0 width 140 
09DB: set_panel 3@ column 1 width 46 
090E: set_panel 3@ active_row 0 


:NONAME_256
wait 0 
if 
0AB0:   key_pressed 13 
jf @NONAME_300 
03E6: remove_text_box 
08DA: remove_panel 3@ 
Player.CanMove($PLAYER_CHAR) = True
wait 10 
jump @NONAME_16 

:NONAME_300
wait 0 
if 
0AB0:   key_pressed 16 
jf @NONAME_256 
03E6: remove_text_box 
08D7: 4@ = panel 3@ active_row 
Player.CanMove($PLAYER_CHAR) = True
08DA: remove_panel 3@ 
wait 0 
if 
  4@ == 0 
jf @NONAME_423 
Model.Load(#gun_dildo1)
038B: load_requested_models 

:NONAME_370
wait 0 
if and
   Model.Available(#gun_dildo1)
   Player.Defined($PLAYER_CHAR)
   not wasted_or_busted 
jf @NONAME_370 
01B2: give_actor $PLAYER_ACTOR weapon 10 ammo 3800 // Load the weapon model before using this 
Model.Destroy(#gun_dildo1)
wait 10 
jump @NONAME_16 

:NONAME_423
wait 0 
if 
  4@ == 1 
jf @NONAME_505 
Model.Load(#gun_dildo2)
038B: load_requested_models 

:NONAME_452
wait 0 
if and
   Model.Available(#gun_dildo2)
   Player.Defined($PLAYER_CHAR)
   not wasted_or_busted 
jf @NONAME_452 
01B2: give_actor $PLAYER_ACTOR weapon 11 ammo 3800 // Load the weapon model before using this 
Model.Destroy(#gun_dildo2)
wait 10 
jump @NONAME_16 

:NONAME_505
wait 0 
if 
  4@ == 2 
jf @NONAME_587 
Model.Load(#gun_vibe1)
038B: load_requested_models 

:NONAME_534
wait 0 
if and
   Model.Available(#gun_vibe1)
   Player.Defined($PLAYER_CHAR)
   not wasted_or_busted 
jf @NONAME_534 
01B2: give_actor $PLAYER_ACTOR weapon 12 ammo 4000 // Load the weapon model before using this 
Model.Destroy(#gun_vibe1)
wait 10 
jump @NONAME_16 

:NONAME_587
wait 10 
if 
  4@ == 3 
jf @NONAME_669 
Model.Load(#gun_vibe2)
038B: load_requested_models 

:NONAME_616
wait 0 
if and
   Model.Available(#gun_vibe2)
   Player.Defined($PLAYER_CHAR)
   not wasted_or_busted 
jf @NONAME_616 
01B2: give_actor $PLAYER_ACTOR weapon 13 ammo 4000 // Load the weapon model before using this 
Model.Destroy(#gun_vibe2)
wait 10 
jump @NONAME_16 

:NONAME_669
wait 10 
if 
  4@ == 4 
jf @NONAME_751 
Model.Load(#flowera)
038B: load_requested_models 

:NONAME_698
wait 0 
if and
   Model.Available(#flowera)
   Player.Defined($PLAYER_CHAR)
   not wasted_or_busted 
jf @NONAME_698 
01B2: give_actor $PLAYER_ACTOR weapon 14 ammo 4000 // Load the weapon model before using this 
Model.Destroy(#flowera)
wait 10 
jump @NONAME_16 

:NONAME_751
wait 0 
if 
  4@ == 5 
jf @NONAME_833 
Model.Load(#grenade)
038B: load_requested_models 

:NONAME_780
wait 0 
if and
   Model.Available(#grenade)
   Player.Defined($PLAYER_CHAR)
   not wasted_or_busted 
jf @NONAME_780 
01B2: give_actor $PLAYER_ACTOR weapon 16 ammo 4000 // Load the weapon model before using this 
Model.Destroy(#grenade)
wait 10 
jump @NONAME_16 

:NONAME_833
wait 0 
if 
  4@ == 6 
jf @NONAME_915 
Model.Load(#teargas)
038B: load_requested_models 

:NONAME_862
wait 0 
if and
   Model.Available(#teargas)
   Player.Defined($PLAYER_CHAR)
   not wasted_or_busted 
jf @NONAME_862 
01B2: give_actor $PLAYER_ACTOR weapon 17 ammo 4000 // Load the weapon model before using this 
Model.Destroy(#teargas)
wait 10 
jump @NONAME_16 

:NONAME_915
wait 0 
if 
  4@ == 7 
jf @NONAME_997 
Model.Load(#molotov)
038B: load_requested_models 

:NONAME_944
wait 0 
if and
   Model.Available(#molotov)
   Player.Defined($PLAYER_CHAR)
   not wasted_or_busted 
jf @NONAME_944 
01B2: give_actor $PLAYER_ACTOR weapon 18 ammo 4000 // Load the weapon model before using this 
Model.Destroy(#molotov)
wait 10 
jump @NONAME_16 

:NONAME_997
wait 0 
if 
  4@ == 8 
jf @NONAME_1079 
Model.Load(#irgoggles)
038B: load_requested_models 

:NONAME_1026
wait 0 
if and
   Model.Available(#irgoggles)
   Player.Defined($PLAYER_CHAR)
   not wasted_or_busted 
jf @NONAME_1026 
01B2: give_actor $PLAYER_ACTOR weapon 45 ammo 7000 // Load the weapon model before using this 
Model.Destroy(#irgoggles)
wait 10 
jump @NONAME_16 

:NONAME_1079
wait 0 
if 
  4@ == 9 
jf @NONAME_1161 
Model.Load(#nvgoggles)
038B: load_requested_models 

:NONAME_1108
wait 0 
if and
   Model.Available(#nvgoggles)
   Player.Defined($PLAYER_CHAR)
   not wasted_or_busted 
jf @NONAME_1108 
01B2: give_actor $PLAYER_ACTOR weapon 44 ammo 7000 // Load the weapon model before using this 
Model.Destroy(#nvgoggles)
wait 10 
jump @NONAME_16 

:NONAME_1161
wait 0 
if 
  4@ == 10 
jf @NONAME_1243 
Model.Load(#fire_ex)
038B: load_requested_models 

:NONAME_1190
wait 0 
if and
   Model.Available(#fire_ex)
   Player.Defined($PLAYER_CHAR)
   not wasted_or_busted 
jf @NONAME_1190 
01B2: give_actor $PLAYER_ACTOR weapon 42 ammo 9999 // Load the weapon model before using this 
Model.Destroy(#fire_ex)
wait 10 
jump @NONAME_16 

:NONAME_1243
wait 0 
if 
  4@ == 11 
jf @NONAME_256 
Model.Load(#spraycan)
038B: load_requested_models 

:NONAME_1272
wait 0 
if and
   Model.Available(#spraycan)
   Player.Defined($PLAYER_CHAR)
   not wasted_or_busted 
jf @NONAME_1272 
01B2: give_actor $PLAYER_ACTOR weapon 41 ammo 9999 // Load the weapon model before using this 
Model.Destroy(#spraycan)
wait 10 
jump @NONAME_16

Offline

#802 24-02-2009 12:25

Gyr
From: Серпухов
Registered: 03-02-2009
Posts: 246
Website

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

Используй FXT тексты или редактируй american.gxt 

P.S: А вот здесь же ты не загружал...

Last edited by Gyr (24-02-2009 12:29)


Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!

Offline

#803 24-02-2009 13:05

GTASA
Registered: 13-09-2008
Posts: 476

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

Gyr, читай то что мне Seemann написал и то что я у него спрашивал. Я жду от него ответ.

Last edited by GTASA (24-02-2009 13:06)

Offline

#804 27-02-2009 17:07

Flow
From: Екатеринбург
Registered: 20-02-2008
Posts: 10

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

Как  запустить ракету? sad
Я ставлю объект ракету, но она стоит на месте... sad


таксист Вазген виселае бамбила smile

Offline

#805 27-02-2009 17:14

Alien
Registered: 12-10-2008
Posts: 564

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

вот так можно:

Object.ToggleInMovingList(0@) = True
Object.Throw(0@, 23@, 24@, 25@)

Отправляет объект в точку 23@ 24@ 25@.
Ну и смайлик, все как положено. Вот.:P

Offline

#806 27-02-2009 18:25

Flow
From: Екатеринбург
Registered: 20-02-2008
Posts: 10

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

я имел ввиду чтобы она как из базуки летела)
со звуком "ввввжиииииииииииууууу" и большим взрывом т_т


таксист Вазген виселае бамбила smile

Offline

#807 27-02-2009 18:41

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

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

@GTASA - в твоем примере никак. одновременно в память может быть загружена только одна таблица ('FIRETRK', 'LAFIN1', 'SWEET1' или 'SYN5'). Каждое последующее использование опкода 054C выгружает загруженную ранее таблицу. А так как ты используешь тексты из разных таблиц в одном опкоде сразу, то у тебя не получится их все загрузить. Нужно либо редактировать GXT (перемещать все нужные тексты в одну таблицу) или использовать GXT Hook.

Offline

#808 27-02-2009 18:44

Alien
Registered: 12-10-2008
Posts: 564

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

ну, это тебе надо все самому создавать. Вот гянь на вот это:

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
thread 'RPG7' 
8@ = 0 
9@ = 0 

:RPG7_25
wait 0 
if and
02D8:   actor $PLAYER_ACTOR current_weapon == 35 
   Player.Defined($PLAYER_CHAR)
else_jump @RPG7_25 
Model.Load(#MISSILE)
Model.Load(1582)
038B: load_requested_models 

:RPG7_64
wait 0 
if and
   Model.Available(#MISSILE)
   Model.Available(1582)
else_jump @RPG7_64 

:RPG7_89
32@ = 0 
wait 0 
if 
80E1:   not player 0 pressed_key 6 
else_jump @RPG7_124 
gosub @RPG7_296 

:RPG7_124
gosub @RPG7_614 
gosub @RPG7_1184 
if and
00E1:   player 0 pressed_key 6 
   not 8@ == 0 
   not Actor.Driving($PLAYER_ACTOR)
   Player.Controllable($PLAYER_CHAR)
else_jump @RPG7_254 
0881: set_player $PLAYER_CHAR able_to_shoot_weapons 0 

:RPG7_179
gosub @RPG7_296 
gosub @RPG7_1184 
gosub @RPG7_614 
gosub @RPG7_1647 
32@ = 0 
wait 0 
if or
80E1:   not player 0 pressed_key 6 
  8@ == 0 
   Actor.Driving($PLAYER_ACTOR)
else_jump @RPG7_179 
0881: set_player $PLAYER_CHAR able_to_shoot_weapons 1 

:RPG7_254
if or
82D8:   not actor $PLAYER_ACTOR current_weapon == 35 
   not Player.Defined($PLAYER_CHAR)
else_jump @RPG7_89 
Model.Destroy(#MISSILE)
Model.Destroy(1582)
jump @RPG7_25 
end_thread 

:RPG7_296
if and
00E1:   player 0 pressed_key 18 
  9@ == 0 
else_jump @RPG7_581 
018C: play_sound 1058 at 0.0 0.0 0.0 
8@ += 1 
if 
  8@ == 1 
else_jump @RPG7_376 
03E5: show_text_box 'RPG_1' 

:RPG7_376
if 
  8@ == 2 
else_jump @RPG7_405 
03E5: show_text_box 'RPG_2' 

:RPG7_405
if 
  8@ == 3 
else_jump @RPG7_434 
03E5: show_text_box 'RPG_3' 

:RPG7_434
if 
  8@ == 4 
else_jump @RPG7_463 
03E5: show_text_box 'RPG_4' 

:RPG7_463
if 
  8@ == 5 
else_jump @RPG7_499 
03E5: show_text_box 'RPG_0' 
8@ = 0 

:RPG7_499
0A9F: 0@ = current_thread_pointer 
0@ += 16 
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 
0@ -= -2463 
0085: 9@ = 8@ // (int) 
9@ *= 12 
005A: 0@ += 9@ // (int) 
if 
0AA9:   is_game_version_original 
else_jump @RPG7_574 
jump @RPG7_574 

:RPG7_574
9@ = 1 

:RPG7_581
if and
80E1:   not player 0 pressed_key 18 
   not 9@ == 0 
else_jump @RPG7_612 
9@ = 0 

:RPG7_612
return 

:RPG7_614
26@ = 0 

:RPG7_621
005A: 22@(26@,1i) += 32@ // (int) 
if and
03CA:   object 10@(26@,1i) exists 
   not 18@(26@,1i) == 3 
  22@(26@,1i) > 200 
else_jump @RPG7_973 
05A1: set_object 10@(26@,1i) rotation_velocity_about_an_axis 0.0 0.0 0.0 through_center_of_body 
05A2: set_object 10@(26@,1i) rotation_velocity_about_an_axis 0.0 0.0 0.0 through_center_of_mass 
0400: store_coords_to 2@ 3@ 4@ from_object 10@(26@,1i) with_offset 0.0 150.0 0.0 
0400: store_coords_to 5@ 6@ 7@ from_object 10@(26@,1i) with_offset 0.0 0.0 0.0 
0063: 2@ -= 5@ // (float) 
0063: 3@ -= 6@ // (float) 
0063: 4@ -= 7@ // (float) 
Object.Throw(10@(26@,1i), 2@, 3@, 4@)
6@ = 0 

:RPG7_839
001D:   32@ > 6@ // (int) 
else_jump @RPG7_973 
0093: 7@ = integer 6@ to_float 
7@ *= -0.15 
0400: store_coords_to 2@ 3@ 4@ from_object 10@(26@,1i) with_offset 0.0 7@ 0.0 
095C: create_smoke_at 2@ 3@ 4@ velocity 0.0 0.0 0.0 RGBA 1.0 1.0 1.0 1.0 size 0.25 last_factor 0.25 
6@ += 20 
jump @RPG7_839 

:RPG7_973
if and
03CA:   object 10@(26@,1i) exists 
  18@(26@,1i) == 3 
  22@(26@,1i) > 500 
else_jump @RPG7_1161 
Object.Throw(10@(26@,1i), 0.0, 0.0, -1.0)
0400: store_coords_to 5@ 6@ 7@ from_object 10@(26@,1i) with_offset 0.0 0.0 0.0 
016F: create_particle 3 rotation_factor 0.0 size 12.5 intensity 100 flags 255 255 255 at 5@ 6@ 7@ 
04D5: create_corona_at 5@ 6@ 7@ radius 5.0 type 1 flare 2 RGB 255 192 128 
09E5: create_flash_light_at 5@ 6@ 7@ RGB_mask 4095 4095 4095 radius 250.0 

:RPG7_1161
26@ += 1 
  26@ > 3 
else_jump @RPG7_621 
return 

:RPG7_1184
26@ = 0 

:RPG7_1191
if 
03CA:   object 10@(26@,1i) exists 
else_jump @RPG7_1624 
if or
04DA:   has_object 10@(26@,1i) collided 
  22@(26@,1i) > 5000 
else_jump @RPG7_1624 
0400: store_coords_to 2@ 3@ 4@ from_object 10@(26@,1i) with_offset 0.0 0.0 0.0 
Actor.StorePos($PLAYER_ACTOR, 5@, 6@, 7@)
050A: 5@ = distance_between_XYZ 2@ 3@ 4@ and_XYZ 5@ 6@ 7@ 
Object.Destroy(10@(26@,1i))
Object.Destroy(14@(26@,1i))
if 
  5@ > 12.5 
else_jump @RPG7_1624 
if 
  18@(26@,1i) == 1 
else_jump @RPG7_1400 
020C: create_explosion_with_radius 12 at 2@ 3@ 4@ 
020C: create_explosion_with_radius 8 at 2@ 3@ 4@ 

:RPG7_1400
if 
  18@(26@,1i) == 2 
else_jump @RPG7_1550 
020C: create_explosion_with_radius 0 at 2@ 3@ 4@ 
020C: create_explosion_with_radius 8 at 2@ 3@ 4@ 
020C: create_explosion_with_radius 8 at 2@ 3@ 4@ 
020C: create_explosion_with_radius 8 at 2@ 3@ 4@ 
020C: create_explosion_with_radius 8 at 2@ 3@ 4@ 
073E: get_car_in_sphere 2@ 3@ 4@ radius 5.0 model -1 handle_as 6@ 
if 
056E:   car 6@ defined 
else_jump @RPG7_1550 
if 
   not Car.Wrecked(6@)
else_jump @RPG7_1545 
020B: explode_car 6@ // versionA 

:RPG7_1545
Car.RemoveReferences(6@)

:RPG7_1550
if 
  18@(26@,1i) == 4 
else_jump @RPG7_1624 
020C: create_explosion_with_radius 12 at 2@ 3@ 4@ 

:RPG7_1624
26@ += 1 
  26@ > 3 
else_jump @RPG7_1191 
return 

:RPG7_1647
if and
00E1:   player 0 pressed_key 17 
  33@ > 500 
else_jump @RPG7_2372 
if 
03CA:   object 10@(1@,1i) exists 
else_jump @RPG7_1710 
Object.Destroy(10@(1@,1i))
Object.Destroy(14@(1@,1i))

:RPG7_1710
068E: get_camera_target_point_to 2@ 3@ 4@ 
068D: get_camera_position_to 5@ 6@ 7@ 
0063: 2@ -= 5@ // (float) 
0063: 3@ -= 6@ // (float) 
0063: 4@ -= 7@ // (float) 
0087: 28@ = 2@ // (float) 
0087: 29@ = 3@ // (float) 
gosub @RPG7_2374 
0509: 28@ = distance_between_XY 2@ 3@ and_XY 0.0 0.0 
0087: 29@ = 4@ // (float) 
0087: 4@ = 27@ // (float) 
gosub @RPG7_2374 
0087: 2@ = 27@ // (float) 
2@ += 90.0 
10@(1@,1i) = Object.Create(1582, 5@, 6@, 7@)
0453: set_object 10@(1@,1i) XY_rotation 2@ 0.0 angle 4@ 
0087: 27@ = 2@ // (float) 
0087: 29@ = 4@ // (float) 
0400: store_coords_to 5@ 6@ 7@ from_object 10@(1@,1i) with_offset 0.25 0.75 0.0 
Object.PutAt(10@(1@,1i), 5@, 6@, 7@)
14@(1@,1i) = Object.Create(#MISSILE, 5@, 6@, 7@)
069A: attach_object 14@(1@,1i) to_object 10@(1@,1i) with_offset 0.0 0.0 0.0 rotation 0.0 0.0 0.0 
04D9: object 10@(1@,1i) set_scripted_collision_check 1 
0906: set_object 10@(1@,1i) mass_to 7.5 // float 
0908: set_object 10@(1@,1i) turn_mass_to 750.0 // float 
08D2: object 10@(1@,1i) scale_model 0.1 
Object.ToggleInMovingList(10@(1@,1i)) = True
0750: set_object 10@(1@,1i) visibility 0 
Object.SetImmunities(10@(1@,1i), 1, 1, 1, 1, 1)
08D2: object 14@(1@,1i) scale_model 1.0 
Object.CollisionDetection(14@(1@,1i)) = False
Object.SetImmunities(14@(1@,1i), 1, 1, 1, 1, 1)
05A1: set_object 10@(1@,1i) rotation_velocity_about_an_axis 0.0 0.0 0.0 through_center_of_body 
05A2: set_object 10@(1@,1i) rotation_velocity_about_an_axis 0.0 0.0 0.0 through_center_of_mass 
0400: store_coords_to 2@ 3@ 4@ from_object 10@(1@,1i) with_offset 0.0 50.0 2.5 
0400: store_coords_to 5@ 6@ 7@ from_object 10@(1@,1i) with_offset 0.0 0.0 0.0 
0063: 2@ -= 5@ // (float) 
0063: 3@ -= 6@ // (float) 
0063: 4@ -= 7@ // (float) 
Object.Throw(10@(1@,1i), 2@, 3@, 4@)
0085: 18@(1@,1i) = 8@ // (int) 
22@(1@,1i) = 0 
1@ += 1 
if 
  1@ > 3 
else_jump @RPG7_2365 
1@ = 0 

:RPG7_2365
33@ = 0 

:RPG7_2372
return 

:RPG7_2374
0509: 27@ = distance_between_XY 28@ 29@ and_XY 0.0 0.0 
0073: 28@ /= 27@ // (float) 
0073: 29@ /= 27@ // (float) 
0509: 27@ = distance_between_XY 28@ 29@ and_XY 0.0 1.0 
26@ = 0 

:RPG7_2439
27@ /= 2.0 
006B: 27@ *= 27@ // (float) 
0087: 29@ = 27@ // (float) 
27@ *= -1.0 
27@ += 1.0 
01FB: 27@ = square_root 27@ 
27@ *= -1.0 
27@ += 1.0 
006B: 27@ *= 27@ // (float) 
005B: 27@ += 29@ // (float) 
01FB: 27@ = square_root 27@ 
26@ += 1 
  26@ > 11 
else_jump @RPG7_2439 
27@ *= 4096.0 
27@ /= 3.141529 
27@ *= 180.0 
if 
  28@ > 0.0 
else_jump @RPG7_2629 
27@ *= -1.0 
27@ += 360.0 

:RPG7_2629
return

Он позволяет переключаться в 4 режима стрельбы из РПГ. Думаю, разберешься... Вот только звука "вввввжжииииииииииуууууууу" и даже скромного "пшик" там нету, но вот взрывы и дым очень даже ничего...

Offline

#809 27-02-2009 19:22

Gyr
From: Серпухов
Registered: 03-02-2009
Posts: 246
Website

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

@GTASA -

@GTASA - в твоем примере никак. одновременно в память может быть загружена только одна таблица ('FIRETRK', 'LAFIN1', 'SWEET1' или 'SYN5'). Каждое последующее использование опкода 054C выгружает загруженную ранее таблицу. А так как ты используешь тексты из разных таблиц в одном опкоде сразу, то у тебя не получится их все загрузить. Нужно либо редактировать GXT (перемещать все нужные тексты в одну таблицу) или использовать GXT Hook.

\

Я же говорил tongue


Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!

Offline

#810 28-02-2009 06:49

GTASA
Registered: 13-09-2008
Posts: 476

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

Я хотел сделать таблицы для получения оружия, и сделал, правда пришлось распределить их на Ctrl + 8,7,6,5. Но вот следующая идея - меню телепорта, ну там никак без NEXT и BACK не обойтись. Не могу же я сделать на все клавиши по таблице. Ладно, найду выход. Спасибо за помощь.

Offline

#811 28-02-2009 18:38

KOLLEGA
Registered: 10-01-2009
Posts: 52

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

@Seemann - какОЙ опкод  в вс отвечает за массивы? как его использовать?


Поправьте меня если я ошибаюсь
только вежливо :)

Offline

#812 28-02-2009 18:55

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

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

Массивы поддерживаются на уровне языка только начиная с San Andreas. Если нужно использовать массивы в вайсе, попробуй один из этих способов.

Offline

#813 04-03-2009 14:28

GTASA
Registered: 13-09-2008
Posts: 476

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

Каким образом можно создать объект и увеличит его, например, в два раза? Слышал, что коллидность теряется, но все же увеличить можно.

Offline

#814 04-03-2009 16:00

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

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

08D2: object 0@ scale_model 2.0

Offline

#815 04-03-2009 18:18

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

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

Такой вопрос возник: если требуется организовать в скрипте несколько процессов, которые должны запускаться и прекращаться через определенные промежутки времени, то каким способом лучше это сделать? То есть нужен простой таймер, без вывода информации о времени на экран.

Offline

#816 04-03-2009 19:05

Alien
Registered: 12-10-2008
Posts: 564

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

Делается при помощи директивы компилятору

{$e}

поток (или процесс как ты его назвал) сохрянится с расширением scm - его можешь изменить, а можешь так и оставить.
Потом из запущенного скрипта при определенных условиях запускай другой внешний скрипт

0A92: create_custom_thread "the_name"

the_name - имя файла с расширением, регистр не учитывается. Чтобы завершить этот поток используй опкод

0ABA: end_custom_thread_named 'the_name'

вызывать этот опкод можно из какого угодно потока.
Совет - перед созданием нового потока проверить наличие в директории cleo файла "the_name" чтобы избежать вылетов.

:0
wait 0
if
0AAB:  file_exists "CLEO\the_name"
jf @0

Last edited by Alien (04-03-2009 20:54)

Offline

#817 04-03-2009 20:08

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

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

Спасибо, Alien, за полезную информацию, но это не то, что мне нужно. Я хотел узнать не как разбить скрипт на несколько взаимосвязанных скриптов, а как запустить таймер. Наверно неясно выразился. Впрочем, я уже нашел ответ на свой вопрос. В КЛЕО скрипте таймером является переменная 33@, в нее автоматически записывается время в миллисекундах, прошедшее с начала игры.

Offline

#818 04-03-2009 20:53

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

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

@Den_spb - точнее будет так: значения переменных 32@ и 33@ постоянно наращиваются, начиная с начала игры (т.е. в общем случае там будет храниться время, прошедшее с начала). Если ты обнулишь переменную, она продолжит наращивать значение. Эти переменные и нужно использовать как таймеры. И это необязательно CLEO скрипт, это в любом потоке так.

Offline

#819 04-03-2009 21:04

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

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

А при каких значениях эти таймеры обнуляются? Не могут же они расти бесконечно.

Offline

#820 05-03-2009 07:04

GTASA
Registered: 13-09-2008
Posts: 476

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

08D2: object 0@ scale_model 2.0

Спасибо, а может как-то можно сделать его непризрачным?

Offline

#821 05-03-2009 16:16

KOLLEGA
Registered: 10-01-2009
Posts: 52

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

Интересный глюк:

DEFINE OBJECTS 1
DEFINE OBJECT SANNY BUILDER 3.04        
DEFINE MISSIONS 0

{$VERSION 2.2.0000}

//-------------MAIN---------------
thread 'MAIN' 
fade 0 0 
01F0: set_max_wanted_level_to 6 
set_wb_check_to 0 
00C0: set_current_time 12 0 
04E4: unknown_refresh_game_renderer_at 468.7745 -1298.623 
Camera.SetAtPos(468.7745, -1298.623, 11.0712)
$player_char = Player.Create(#NULL, 773.593, -306.737, 10.81437)
$player_actor = Actor.EmulateFromPlayer($player_char)
set_weather 0 
wait 0 
0180: set_on_mission_flag_to $onmission 
if 
not Actor.Dead($player_actor)
jf @MAIN_138 
0352: set_actor $player_actor skin_to 'PLAYER6' 
038B: load_requested_models 
0353: refresh_actor $player_actor 

:MAIN_138
fade 1 1000       
if 
   Player.Defined($player_char)
jf @MAIN_174 
select_interior 0 
Player.CanMove($player_char) = True
01B7: release_weather 

:MAIN_174
014B: $ASD2 = init_parked_car_generator #INFERNUS 1 1 1 alarm 0 door_lock 0 0 10000 at -246.052 626.929 149.925 angle 17.0 
014C: set_parked_car_generator $ASD2 cars_to_generate_to 101 
014B: $ASD1 = init_parked_car_generator #RHINO 1 2 0 alarm 0 door_lock 0 0 10000 at -645.395 578.685 29.97301 angle 75.0 
014C: set_parked_car_generator $ASD1 cars_to_generate_to 101 
0369: put_player $player_char in_car $ASD1 
04BA: set_car $ASD1 speed_instantly 220.0 
Player.Money($player_char) += 1E10
end_thread

Может кто знает чем это вызвано?


Поправьте меня если я ошибаюсь
только вежливо :)

Offline

#822 05-03-2009 17:08

Gyr
From: Серпухов
Registered: 03-02-2009
Posts: 246
Website

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

А это для какой игры? В San Andreas нет опкода 0352.


Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!

Offline

#823 05-03-2009 17:21

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

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

В чем заключается глюк?
В самом скрипте куча ошибок.

Offline

#824 06-03-2009 10:51

Callback
Registered: 04-03-2009
Posts: 4

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

Два вопроса. Прошу прощения, если уже обсуждалось... smile

1. Можно ли получить ID последней машины, созданной генератором траффика?
2. Можно ли, зная ID машины, определить ее вариант (то бишь, номер "экстры")?

Заранее благодарен.

Offline

#825 06-03-2009 15:30

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

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

@Callback - вопросы хорошие, но не уверен, что на них найдется однозначный ответ. По тому, что я видел в процедуре, которая отвечает за генерацию траффика, хендл (ID) последней машины нигде не сохранянется. Это значит, скорее всего, придется напрямую работать с пулом (массивом) машин и перебирать хендлы на предмет поиска самого большого (тут я не уверен, не помню точно принцип поиска свободного хендла для новой машины, то ли это первая свободная ячейка, то ли последняя).
Насчет экстры, скорее всего да, хендл можно сконвертировать в указатель, а по указателю прочитать нужное поле в структуре машины, где хранится значение экстры (под экстрой ты понимаешь то, что используется в опкоде 0506?).

Offline

Board footer

Powered by FluxBB