You are not logged in.
Спасибо, работает. А если мне надо несколько фраз? Если по одному - работает, а так нет.
// 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
Используй FXT тексты или редактируй american.gxt
P.S: А вот здесь же ты не загружал...
Last edited by Gyr (24-02-2009 12:29)
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
Gyr, читай то что мне Seemann написал и то что я у него спрашивал. Я жду от него ответ.
Last edited by GTASA (24-02-2009 13:06)
Offline
Как запустить ракету?
Я ставлю объект ракету, но она стоит на месте...
таксист Вазген виселае бамбила
Offline
вот так можно:
Object.ToggleInMovingList(0@) = True Object.Throw(0@, 23@, 24@, 25@)
Отправляет объект в точку 23@ 24@ 25@.
Ну и смайлик, все как положено. Вот.:P
Offline
я имел ввиду чтобы она как из базуки летела)
со звуком "ввввжиииииииииииууууу" и большим взрывом т_т
таксист Вазген виселае бамбила
Offline
@GTASA - в твоем примере никак. одновременно в память может быть загружена только одна таблица ('FIRETRK', 'LAFIN1', 'SWEET1' или 'SYN5'). Каждое последующее использование опкода 054C выгружает загруженную ранее таблицу. А так как ты используешь тексты из разных таблиц в одном опкоде сразу, то у тебя не получится их все загрузить. Нужно либо редактировать GXT (перемещать все нужные тексты в одну таблицу) или использовать GXT Hook.
Offline
ну, это тебе надо все самому создавать. Вот гянь на вот это:
// 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
@GTASA -
@GTASA - в твоем примере никак. одновременно в память может быть загружена только одна таблица ('FIRETRK', 'LAFIN1', 'SWEET1' или 'SYN5'). Каждое последующее использование опкода 054C выгружает загруженную ранее таблицу. А так как ты используешь тексты из разных таблиц в одном опкоде сразу, то у тебя не получится их все загрузить. Нужно либо редактировать GXT (перемещать все нужные тексты в одну таблицу) или использовать GXT Hook.
\
Я же говорил
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
Я хотел сделать таблицы для получения оружия, и сделал, правда пришлось распределить их на Ctrl + 8,7,6,5. Но вот следующая идея - меню телепорта, ну там никак без NEXT и BACK не обойтись. Не могу же я сделать на все клавиши по таблице. Ладно, найду выход. Спасибо за помощь.
Offline
@Seemann - какОЙ опкод в вс отвечает за массивы? как его использовать?
Поправьте меня если я ошибаюсь
только вежливо :)
Offline
Массивы поддерживаются на уровне языка только начиная с San Andreas. Если нужно использовать массивы в вайсе, попробуй один из этих способов.
Offline
Каким образом можно создать объект и увеличит его, например, в два раза? Слышал, что коллидность теряется, но все же увеличить можно.
Offline
08D2: object 0@ scale_model 2.0
Offline
Такой вопрос возник: если требуется организовать в скрипте несколько процессов, которые должны запускаться и прекращаться через определенные промежутки времени, то каким способом лучше это сделать? То есть нужен простой таймер, без вывода информации о времени на экран.
Offline
Делается при помощи директивы компилятору
{$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
Спасибо, Alien, за полезную информацию, но это не то, что мне нужно. Я хотел узнать не как разбить скрипт на несколько взаимосвязанных скриптов, а как запустить таймер. Наверно неясно выразился. Впрочем, я уже нашел ответ на свой вопрос. В КЛЕО скрипте таймером является переменная 33@, в нее автоматически записывается время в миллисекундах, прошедшее с начала игры.
Offline
@Den_spb - точнее будет так: значения переменных 32@ и 33@ постоянно наращиваются, начиная с начала игры (т.е. в общем случае там будет храниться время, прошедшее с начала). Если ты обнулишь переменную, она продолжит наращивать значение. Эти переменные и нужно использовать как таймеры. И это необязательно CLEO скрипт, это в любом потоке так.
Offline
08D2: object 0@ scale_model 2.0
Спасибо, а может как-то можно сделать его непризрачным?
Offline
Интересный глюк:
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
В чем заключается глюк?
В самом скрипте куча ошибок.
Offline
Два вопроса. Прошу прощения, если уже обсуждалось...
1. Можно ли получить ID последней машины, созданной генератором траффика?
2. Можно ли, зная ID машины, определить ее вариант (то бишь, номер "экстры")?
Заранее благодарен.
Offline
@Callback - вопросы хорошие, но не уверен, что на них найдется однозначный ответ. По тому, что я видел в процедуре, которая отвечает за генерацию траффика, хендл (ID) последней машины нигде не сохранянется. Это значит, скорее всего, придется напрямую работать с пулом (массивом) машин и перебирать хендлы на предмет поиска самого большого (тут я не уверен, не помню точно принцип поиска свободного хендла для новой машины, то ли это первая свободная ячейка, то ли последняя).
Насчет экстры, скорее всего да, хендл можно сконвертировать в указатель, а по указателю прочитать нужное поле в структуре машины, где хранится значение экстры (под экстрой ты понимаешь то, что используется в опкоде 0506?).
Offline