You are not logged in.
Версия 1.0 US cracked. А где достать compact версию?
нашел только битые ссылки. SA запускается, нажимаю new game, а когда появляется бар загрузки игра сразу вылетает...
А когда он меняет память, когда начинается новая игра или сразу после загрузки EXE?
странно, а у тебя какая? у меня только поставленная Vista Ultimate x86, захожу как администратор...
вот тут тоже беда с dll на висте
http://www.gtaforums.com/index.php?show … &p=4100577
Может ты настройки ставил специальные, чтобы отключить проверку изменения памяти...?
Как вообще отследить ошибку injection'a?
ты думаешь, что не может быть несовместимости в самих файлах и алгоритмах?
нашел вот такую инфу, вроде тут сказано, что Виста как раз не предотвращает изменения значений памяти
11) Windows Vista was said to be the most secure system ever for a Windows OS. Why did MS not prevent dll injection in the OS.
-Why not prevent process behaviors that might harm the system using heuristics analysis?
-Some malicious software and spyware and lowlevel hijacker code can still hijack memory space of other processes through memory injection. MS introduced Memory randomization algorithms into this OS per reboot. But that is not enough because programs still can be hijacked and their memory read. Why MS did not extend the memory space randomization to be per process based? So each time a system process or even any process would start, it would get a different memory fingerprint in the system.
EDIT2: Хотя судя по постам на GTAF про dll моды (Vice studios) injection там тоже не работает, так что может ты и прав
в WinXp SP2 не видятся 4гб оперативы, на SP1 переходить не хочу, на WinXP 64 тоже, получается остается только Vista - читал в форумах, по другому не лечится, а у меня 1 гиг пропадает...
EDIT: В висте любые ASI файлы вылетают, вероятно из-за инжектора в vorbisfile... (это касается и cleo и limit adjuster'a)
В связи с обновлением железа возник резонный вопрос, если ли шанс запсутить CLEO и вообще ASI моды на Vista??
я тут скрипт твой порубошил немного, в итоге все работает с разными водителями в разных городах, в за пределами городов я поставил дефолтно форму из Лос Анджелеса, т.к. не помню в чем они там реально ездят..
Задержку появления машин поставил плавающую, чтобы было интереснее...
Не хотелось бы останавливаться на достигнутом, хорошо бы еще присобачить возможность, чтобы некоторые машины появлялись на задании с включенными мигалками и игнорирующие светофоры, но не очень часто...
да и таймер нужно бы сделать внутренним @32, а не wait
// 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 :AMBUL_5 thread 'AMBUL' wait 0 :AMBUL_12 wait 500 if Player.Defined($PLAYER_CHAR) jf @AMBUL_12 if 0154: actor $PLAYER_ACTOR in_zone 'SF' else_jump @AMBUL_13 Model.Load(276) Model.Load(416) 038B: load_requested_models :AMBUL_22 wait 200 if and Model.Available(416) Model.Available(276) else_jump @AMBUL_22 20@ = 276 jump @AMBUL_26 :AMBUL_13 if 0154: actor $PLAYER_ACTOR in_zone 'LA' else_jump @AMBUL_14 Model.Load(274) Model.Load(416) 038B: load_requested_models :AMBUL_23 wait 200 if and Model.Available(416) Model.Available(274) else_jump @AMBUL_23 20@ = 274 jump @AMBUL_26 :AMBUL_14 if 0154: actor $PLAYER_ACTOR in_zone 'VE' else_jump @AMBUL_15 Model.Load(275) Model.Load(416) 038B: load_requested_models :AMBUL_24 wait 200 if and Model.Available(416) Model.Available(275) else_jump @AMBUL_24 20@ = 275 jump @AMBUL_26 :AMBUL_15 Model.Load(274) Model.Load(416) 038B: load_requested_models :AMBUL_25 wait 200 if and Model.Available(416) Model.Available(274) else_jump @AMBUL_25 20@ = 274 jump @AMBUL_26 :AMBUL_26 wait 1000 0208: 1@ = random_float_in_ranges -90.0 90.0 0208: 2@ = random_float_in_ranges -90.0 90.0 04C4: store_coords_to 3@ 4@ 5@ from_actor $PLAYER_ACTOR with_offset 1@ 2@ 0.0 02C1: store_to 6@ 7@ 8@ car_path_coords_closest_to 3@ 4@ 5@ 9@ = Car.Create(416, 6@, 7@, 8@) 0129: 12@ = create_actor_pedtype 18 model 20@ in_car 9@ driverseat Car.SetDriverBehaviour(9@, FollowRoad) :AMBUL_186 wait 400 if or 82CA: not car 9@ bounding_sphere_visible Car.Wrecked(9@) else_jump @AMBUL_186 Actor.RemoveReferences(20@) Car.RemoveReferences(9@) Model.Destroy(416) Model.Destroy(274) Model.Destroy(275) Model.Destroy(276) 0209: 11@ = random_int 50000 300000 wait 11@ jump @AMBUL_12
Хорошо бы его в контекстные меню добавить, а то он очень запрятан...
А в чем конкретно отличия загрузчика от Alexander'ского? Кроме конечно внешнего вида настроек аудиопараметров каждой машины, хотя они тоже похожи
Я нашел баг с SannyBuilder'e:
- когда в коде есть координаты игрока или угол его поворота и я хочу заменить их новыми (insert > Player coords), то я выделяю старые и нажимаю insert coords, но вместо замены он вставляет новые координаты сразу после старых без пробела - получается длинное такое число
Кстати, есть ли в Sanny букмарки? Я их не нашел..
Кстати вопрос на засыпку: некоторые номера иконок при выводе радара или сферы (ХХХ) не используются. Есть ли возможность найти на какие текстуры ссылается та или иная неиспользуемая иконка?
02A8: $M2 = create_marker ХХХ at $X_POS $Y_POS $Z_POS
например номер 1 это белый квадратик. Как может называться текстура, чтобы заменить его? Такая же штука с номерами 64, 65, 66.
и еще, есть такие иконки с мигалками, 20 и 30. Они вообще где-нибудь используются в игре?
Мне кажется можно как-то сделать, чтобы не копировать один и тот же код несколько раз. Например:
7@ = 277 8@ = 278 9@ = 279 0209: 1@ = random_int 7@ 9@ .... 0129: 10@ = create_actor_pedtype 18 model 1@ in_car 9@ driverseat
а перед этим грузишь все модели не по именам, а по номерам...
Вот я тоже об этом думаю, если время будет - займусь, пока просто хочется понять, что с ним случилось
по-моему полезный скрипт, каждый же может себе любые детали тюнинга вписать в скрипт и все будет хорошо
Да ХЗ что с этим, я думаю, это издержки того, что самолет на путь поставлен. Как он с пути снят, так разрушается без проблем. Может Seemann подскажет, он, я помню, пути изучал...
Кстати еще такой баг непонятный нашел: когда самолет приземляется, он останавливается, а потом продолжает ехать дальше, врезается в забор или взлаетает и падает. Получается, что самолет в конце пути останавливается, а потом как будто путь и вовсе не заканчивается... требуется разбирательство..
а че она должна делать, по твоему? Помоему нормально приехал,вылез, деньги сняли. Сам берешь цепляешь свой автомобиль и едешь куда надо. или при импорте-экспорте тачек.
Ну это кстати не клево, лучше бы он ее к ближайшему трансфендеру перегонял или просто к какой-нибудь локации похожей на автосервис.
Я тут нашел похожий скрипт, я не знаю чей он, но там как раз все проработано. Посмотри как референс, код для MB. Скрипт у меня почему-то не работает, запускается, но потом виснет.
:BORDEL4_10 0001: wait 5000 ms :BORDEL4_15 0001: wait 50 ms 00D6: if 0 00DF: actor $3 driving 004D: jump_if_false ЈЈBORDEL4_20 03C0: $bordel400 = actor $3 car 00D6: if 5 84C8: NOT actor $3 driving flying_vehicle 84A7: NOT actor $3 driving boat 847A: NOT actor $3 driving motorbike 8137: NOT car $bordel400 id == #BMX 8137: NOT car $bordel400 id == #BIKE 8137: NOT car $bordel400 id == #MTBIKE 004D: jump_if_false ЈЈBORDEL4_16 0006: @24 = 0 ;; integer values 0002: jump ЈЈBORDEL4_15 :BORDEL4_16 0006: @24 = 1 ;; integer values 0002: jump ЈЈBORDEL4_15 :BORDEL4_20 0001: wait 50 ms 00D6: if 0 80DF: NOT actor $3 driving 004D: jump_if_false ЈЈBORDEL4_15 00D6: if 1 00E1: key_pressed 0 18 00E1: key_pressed 0 4 004D: jump_if_false ЈЈBORDEL4_20 0001: wait 1000 ms ;; to make it as a long press on the touch 00D6: if 2 00E1: key_pressed 0 18 00E1: key_pressed 0 4 0039: @24 == 0;; integer values 004D: jump_if_false ЈЈBORDEL4_20 020A: set_car $bordel400 door_status_to 2 0519: unknown_car $bordel400 flag 1 0247: request model #CELLPHONE 0729: unknown_action_sequence $3 1 0001: wait 10000 ms 0729: unknown_action_sequence $3 0 0249: release_model #CELLPHONE :BORDEL4_200 0001: wait 100 ms 0247: request model #TOWTRUCK 0247: request model #WMYMECH 038B: load_requested_models :BORDEL4_300 0001: wait 0 ms 00D6: if 1 0248: model #TOWTRUCK available 0248: model #WMYMECH available 004D: jump_if_false ЈЈBORDEL4_200 0004: $towed = 1;; integer values 0006: @26 = 0 ;; integer values 00AA: store_car $bordel400 position_to @4 @5 @6 02C1: set @7 @8 @9 to_car_path_coords_closest_to @4 @5 @6 050A: @25 = distance_between @4 @5 @6 and @7 @8 @9 04C4: create_coordinate @21 @22 @23 from_actor $3 offset 6.0 6.0 0.0 00D6: if 0 8021: NOT @25 > 30.0;; floating-point values 004D: jump_if_false ЈЈBORDEL4_302 0407: create_coordinate @4 @5 @6 from_car $bordel400 offset -50.0 -50.0 3.0 02C1: set @7 @8 @9 to_car_path_coords_closest_to @4 @5 @6 0006: @26 = 0 ;; integer values :BORDEL4_302 00A5: $bordel401 = create_car #TOWTRUCK at @7 @8 @9 0224: set_car $bordel401 health_to 1000 0129: $bordel402 = create_actor 24 #WMYMECH in_car $bordel401 driverseat 0186: $mark900 = create_marker_above_car $bordel401 018B: show_on_radar $mark900 2 :BORDEL4_310 0001: wait 0 ms 00D6: if 0 0039: @26 == 0;; integer values 004D: jump_if_false ЈЈBORDEL4_311 05D1: unknown_action_sequence $bordel402 $bordel401 @21 @22 @23 25.0 1 0 3 04E0: car $bordel401 abandon_path_radius 60 0002: jump ЈЈBORDEL4_312 :BORDEL4_311 05D1: unknown_action_sequence $bordel402 $bordel401 @21 @22 @23 25.0 1 0 3 04E0: car $bordel401 abandon_path_radius 250 0001: wait 5000 ms :BORDEL4_312 0001: wait 1000 ms 00D6: if 0 8104: NOT actor $bordel402 near_actor $3 radius 15.0 15.0 6.0 sphere 0 004D: jump_if_false ЈЈBORDEL4_314 02E3: @12 = car $bordel401 speed 0097: make @12 absolute_float 00D6: if 2 0185: car $bordel401 health >= 500 0021: @12 > 1.0;; floating-point values 0184: actor $bordel402 health >= 1 004D: jump_if_false ЈЈBORDEL4_313 0002: jump ЈЈBORDEL4_312 :BORDEL4_313 0224: set_car $bordel401 health_to 1000 0223: set_actor $bordel402 health_to 120 00AB: put_car $bordel401 at @21 @22 @23 0002: jump ЈЈBORDEL4_312 :BORDEL4_314 05CD: unknown_action_sequence $bordel402 $bordel401 ;; actor leave car 04C4: create_coordinate @1 @2 @3 from_actor $3 offset 0.0 2.0 0.0 0639: unknown_action_sequence $3 $bordel402 ;;rotate actor to look at actor 05D3: unknown_action_sequence $bordel402 @1 @2 @3 6 6000;; actor go to player :BORDEL4_320 0001: wait 0 ms 00D6: if 0 0104: actor $bordel402 near_actor $3 radius 2.3 2.3 3.0 sphere 0 004D: jump_if_false ЈЈBORDEL4_320 0249: release_model #TOWTRUCK 0249: release_model #WMYMECH 01B4: set_player $2 frozen_state 0 (frozen) 0639: unknown_action_sequence $bordel402 $3 ;;rotate actor to look at actor 0639: unknown_action_sequence $3 $bordel402 ;;rotate actor to look at actor 0373: set_camera_directly_behind_player 0677: AS_actor $3 chat_with_actor $bordel402 1 1 0001: wait 2000 ms 0677: AS_actor $bordel402 chat_with_actor $3 1 1 05C0: unknown_action_sequence $bordel402 $bordel400 2000;;actor look at car for 2000ms 0001: wait 2000 ms 05BF: unknown_action_sequence $bordel402 $3 2000 ;;actor look at actor 0001: wait 2000 ms 05CB: $bordel402 enter_car $bordel401 -1 03F5: unknown_prepare_car $bordel400 for_explosion flag 0 01B4: set_player $2 frozen_state 1 (unfrozen) 03F3: get_car $bordel400 color $10422 $10423 0988: get_car $bordel400 paintjob $10085 0441: $10486 = car $bordel400 model 0004: $towed = 0;; integer values 0004: $slot = 0;; integer values :BORDEL4_322 0001: wait 2000 ms 00D6: if 0 8038: NOT $slot == 16;; integer values 004D: jump_if_false ЈЈBORDEL4_325 096D: $bordel400 $slot $carco 0084: $11563($slot,16i) = $carco;; integer values and handles 04F7: status_text $slot 0 line 2 'PETRST' 04F7: status_text $carco 0 line 3 'PETRST' 04F7: status_text $11563($slot,16i) 0 line 4 'PETRST' 0008: $slot += 1;; integer values 0002: jump ЈЈBORDEL4_322 :BORDEL4_325 0001: wait 50 ms 00D6: if 0 00DB: actor $bordel402 in_car $bordel401 004D: jump_if_false ЈЈBORDEL4_325 0407: create_coordinate @21 @22 @23 from_car $bordel400 offset 5.0 -10.0 1.0 05D1: unknown_action_sequence $bordel402 $bordel401 @21 @22 @23 10.0 1 0 3 04E0: car $bordel401 abandon_path_radius 250 0001: wait 3000 ms :BORDEL4_326 0001: wait 1000 ms 00D6: if 0 8100: NOT actor $bordel402 near_point_in_car @21 @22 @23 radius 4.5 4.5 5.5 sphere 1 004D: jump_if_false ЈЈBORDEL4_330 02E3: @12 = car $bordel401 speed 0097: make @12 absolute_float 00D6: if 2 0185: car $bordel401 health >= 500 0021: @12 > 1.0;; floating-point values 0184: actor $bordel402 health >= 1 004D: jump_if_false ЈЈBORDEL4_327 0002: jump ЈЈBORDEL4_326 :BORDEL4_327 0224: set_car $bordel401 health_to 1000 0223: set_actor $bordel402 health_to 120 0174: @11 = car $bordel400 z_angle 0175: set_car $bordel401 z_angle_to @11 00AB: put_car $bordel401 at @21 @22 @23 :BORDEL4_330 0407: create_coordinate @21 @22 @23 from_car $bordel400 offset 0.0 8.0 1.0 05D1: unknown_action_sequence $bordel402 $bordel401 @21 @22 @23 10.0 1 0 3 04E0: car $bordel401 abandon_path_radius 250 0001: wait 5000 ms :BORDEL4_340 0001: wait 1000 ms 00D6: if 0 8100: NOT actor $bordel402 near_point_in_car @21 @22 @23 radius 4.5 4.5 5.5 sphere 1 004D: jump_if_false ЈЈBORDEL4_345 00D6: if 3 0185: car $bordel401 health >= 500 0021: @12 > 1.0;; floating-point values 0184: actor $bordel402 health >= 1 00DB: actor $bordel402 in_car $bordel401 004D: jump_if_false ЈЈBORDEL4_341 0002: jump ЈЈBORDEL4_340 :BORDEL4_341 0224: set_car $bordel401 health_to 1000 0223: set_actor $bordel402 health_to 120 0174: @11 = car $bordel400 z_angle 0175: set_car $bordel401 z_angle_to @11 00AB: put_car $bordel401 at @21 @22 @23 :BORDEL4_345 0174: @11 = car $bordel400 z_angle 0175: set_car $bordel401 z_angle_to @11 0519: unknown_car $bordel400 flag 0 0893: put_trailer $bordel400 on_cab $bordel401 00AA: store_car $bordel401 position_to @4 @5 @6 02C1: set @21 @22 @23 to_car_path_coords_closest_to @4 @5 @6 0519: unknown_car $bordel401 flag 1 0001: wait 5000 ms 0519: unknown_car $bordel401 flag 0 05D1: unknown_action_sequence $bordel402 $bordel401 @21 @22 @23 15.0 1 0 3 04E0: car $bordel401 abandon_path_radius 250 0001: wait 5000 ms :BORDEL4_350 0001: wait 1000 ms 00A0: store_actor $3 position_to @4 @5 @6 00AA: store_car $bordel401 position_to @7 @8 @9 050A: @25 = distance_between @4 @5 @6 and @7 @8 @9 00D6: if 0 8021: NOT @25 > 250.0;; floating-point values 004D: jump_if_false ЈЈBORDEL4_356 00D6: if 0 8100: NOT actor $bordel402 near_point_in_car @21 @22 @23 radius 8.5 8.5 5.5 sphere 1 004D: jump_if_false ЈЈBORDEL4_354 02E3: @12 = car $bordel401 speed 0097: make @12 absolute_float 00D6: if 0 07AB: car $bordel400 attached_to_car $bordel401 004D: jump_if_false ЈЈBORDEL4_355 00D6: if 3 0185: car $bordel401 health >= 500 0021: @12 > 1.0;; floating-point values 0184: actor $bordel402 health >= 1 00DB: actor $bordel402 in_car $bordel401 004D: jump_if_false ЈЈBORDEL4_356 0002: jump ЈЈBORDEL4_350 :BORDEL4_354 04E0: car $bordel401 abandon_path_radius 0 05D1: unknown_action_sequence $bordel402 $bordel401 1670.0 2200.0 11.0 25.0 0 0 0 04E0: car $bordel401 abandon_path_radius 0 0001: wait 5000 ms 0002: jump ЈЈBORDEL4_357 :BORDEL4_355 0893: put_trailer $bordel400 on_cab $bordel401 0002: jump ЈЈBORDEL4_350 :BORDEL4_356 0684: detach_car $bordel400 0.0 0.0 0.0 collision_detection 0 03F5: unknown_prepare_car $bordel400 for_explosion flag 1 0519: unknown_car $bordel400 flag 1 020A: set_car $bordel400 door_status_to 1 00A6: destroy_car $bordel400 0164: disable_marker $mark900 01C3: remove_references_to_car $bordel401;; Like turning a car into any random car 01C2: remove_references_to_actor $bordel402;; Like turning an actor into a random pedestrian 0002: jump ЈЈBORDEL4_358 :BORDEL4_357 0001: wait 0 ms 00A0: store_actor $3 position_to @4 @5 @6 00AA: store_car $bordel401 position_to @7 @8 @9 050A: @25 = distance_between @4 @5 @6 and @7 @8 @9 00D6: if 0 8021: NOT @25 > 250.0;; floating-point values 004D: jump_if_false ЈЈBORDEL4_356 00D6: if 0 8100: NOT actor $bordel402 near_point_in_car 1670.0 2200.0 11.0 radius 4.5 4.5 5.5 sphere 1 004D: jump_if_false ЈЈBORDEL4_356 02E3: @12 = car $bordel401 speed 0097: make @12 absolute_float 00D6: if 0 07AB: car $bordel400 attached_to_car $bordel401 004D: jump_if_false ЈЈBORDEL4_1475 00D6: if 3 0185: car $bordel401 health >= 500 0021: @12 > 1.0;; floating-point values 0184: actor $bordel402 health >= 1 00DB: actor $bordel402 in_car $bordel401 004D: jump_if_false ЈЈBORDEL4_356 00D6: if 0 0185: car $bordel400 health >= 500 004D: jump_if_false ЈЈBORDEL4_1480 0002: jump ЈЈBORDEL4_357 :BORDEL4_358 0001: wait 100 ms 00D6: if 21 00FF: actor $3 0 ()near_point_on_foot 1670.0 2200.0 11.0 radius 100.0 100.0 60.0 0100: actor $3 near_point_in_car 1670.0 2200.0 11.0 radius 100.0 100.0 60.0 sphere 0 004D: jump_if_false ЈЈBORDEL4_358 :BORDEL4_359 0001: wait 100 ms 0247: request model #TOWTRUCK 0247: request model #WMYMECH 0247: request model #CHEETAH 0247: request model #BANSHEE 0247: request model $10486 0247: request_model -9 (CR_AMMOBOX) 04ED: load_animation "CAR" 038B: load_requested_models :BORDEL4_360 0001: wait 100 ms 00D6: if 6 0248: model #TOWTRUCK available 0248: model #WMYMECH available 0248: model #CHEETAH available 0248: model #BANSHEE available 0248: model $10486 available 0248: model -9 (CR_AMMOBOX) available 04EE: animation "CAR" loaded 004D: jump_if_false ЈЈBORDEL4_359 0395: clear_area 1 at 1645.0 2200.0 15.0 range 70.0 0107: @2 = create_object -9 (CR_GUNCRATE) at 1652.08 2193.83 9.6 0107: @3 = create_object -9 (CR_GUNCRATE) at 1652.08 2197.11 9.6 0107: @6 = create_object -9 (CR_GUNCRATE) at 1653.82 2193.83 9.6 0107: @7 = create_object -9 (CR_GUNCRATE) at 1653.82 2197.11 9.6 0107: @4 = create_object -9 (CR_GUNCRATE) at 1643.0 2190.0 9.6 0107: @5 = create_object -9 (CR_GUNCRATE) at 1642.4 2190.0 9.6 0107: @8 = create_object -9 (CR_GUNCRATE) at 1643.0 2190.6 9.6 0107: @9 = create_object -9 (CR_GUNCRATE) at 1642.4 2190.6 9.6 0107: @10 = create_object -9 (CR_GUNCRATE) at 1645.0 2190.0 9.6 0107: @11 = create_object -9 (CR_GUNCRATE) at 1645.6 2190.0 9.6 0107: @12 = create_object -9 (CR_GUNCRATE) at 1645.0 2190.6 9.6 0107: @13 = create_object -9 (CR_GUNCRATE) at 1645.6 2190.6 9.6 0107: @18 = create_object -9 (CR_GUNCRATE) at 1630.82 2194.6 9.6 0107: @15 = create_object -9 (CR_GUNCRATE) at 1630.82 2191.4 9.6 0107: @16 = create_object -9 (CR_GUNCRATE) at 1629.08 2194.6 9.6 0107: @17 = create_object -9 (CR_GUNCRATE) at 1629.08 2191.4 9.6 00A5: $bordel400 = create_car $10486 at 1644.0 2194.0 13.0 0175: set_car $bordel400 z_angle_to 180.0 0229: set_car $bordel400 color_to $10422 $10423 06ED: set_car $bordel400 paintjob $10085 0004: $slot = -1;; integer values :BORDEL4_700 0001: wait 2000 ms 00D6: if 0 8038: NOT $slot == 16;; integer values 004D: jump_if_false ЈЈBORDEL4_999 0008: $slot += 1;; integer values 00D6: if 0 8038: NOT $11563($slot,16i) == 0;; integer values 004D: jump if false ЈЈBORDEL4_700 0084: $carcomp = $11563($slot,16i);; integer values and handles :BORDEL4_800 06E9: request_car_component $carcomp 038B: load requested models :BORDEL4_900 0001: wait 0 ms 00D6: if 0 06EA: car_component_available $carcomp 004D: jump_if_false ЈЈBORDEL4_800 06E7: $useless = add_car_component $carcomp to_car $bordel400 06EB: release_car_component $carcomp 0002: jump ЈЈBORDEL4_700 :BORDEL4_999 0519: unknown_car $bordel400 flag 1 00A5: @14 = create_car #TOWTRUCK at 1672.0 2195.0 11.0 00A5: @27 = create_car #TOWTRUCK at 1666.0 2198.0 11.0 0519: unknown_car @27 flag 1 0657: car @27 open_component 0 00A5: @28 = create_car #CHEETAH at 1653.0 2195.5 11.0 0657: car @28 open_component 1 0657: car @28 open_component 2 0657: car @28 open_component 3 00A5: @31 = create_car #BANSHEE at 1630.0 2193.0 13.0 0657: car @31 open_component 0 0657: car @31 open_component 2 009A: @29 = create_actor 4 #WMYMECH at 1653.0 2192.3 9.6 0173: set_actor @29 z_angle_to 180.0 009A: @30 = create_actor 4 #WMYMECH at 1666.0 2201.5 9.3 009A: @0 = create_actor 4 #WMYMECH at 1630.0 2196.5 9.6 009A: @1 = create_actor 4 #WMYMECH at 1644.0 2188.5 9.6 0173: set_actor @1 z_angle_to 180.0 0605: actor @30 perform_animation_sequence "FIXN_CAR_LOOP" from_file "CAR" 4.0 1 0 0 1 0 ms 0605: actor @29 perform_animation_sequence "FIXN_CAR_LOOP" from_file "CAR" 4.0 1 0 0 1 0 ms 0605: actor @0 perform_animation_sequence "FIXN_CAR_LOOP" from_file "CAR" 4.0 1 0 0 1 0 ms 0605: actor @1 perform_animation_sequence "FIXN_CAR_LOOP" from_file "CAR" 4.0 1 0 0 1 0 ms 0001: wait 3000 ms 01C3: remove_references_to_car @14;; Like turning a car into any random car 0519: unknown_car @28 flag 1 0519: unknown_car @31 flag 1 0006: @19 = 0;; integer values 0006: @20 = 0;; integer values 0006: @21 = 0;; integer values 0006: @22 = 0;; integer values 0006: @23 = 0;; integer values 0006: @24 = 0;; integer values :BORDEL4_1361 0001: wait 0 ms 00D6: if 5 851A: NOT unknown_actor @30 hit_by_actor $3 8457: NOT player $2 aiming_at_actor @30 831E: NOT vehicle @28 hit_by_weapon 57 851A: NOT unknown_actor @29 hit_by_actor $3 8457: NOT player $2 aiming_at_actor @29 831E: NOT vehicle @31 hit_by_weapon 57 004D: jump_if_false ЈЈBORDEL4_1370 00D6: if 4 851A: NOT unknown_actor @0 hit_by_actor $3 8457: NOT player $2 aiming_at_actor @0 851A: NOT unknown_actor @1 hit_by_actor $3 8457: NOT player $2 aiming_at_actor @1 831E: NOT vehicle @27 hit_by_weapon 57 004D: jump_if_false ЈЈBORDEL4_1370 00D6: if 0 8448: NOT actor $3 in_car @27 004D: jump_if_false ЈЈBORDEL4_1400 00D6: if 0 8448: NOT actor $3 in_car @28 004D: jump_if_false ЈЈBORDEL4_1410 00D6: if 0 8448: NOT actor $3 in_car @31 004D: jump_if_false ЈЈBORDEL4_1420 00D6: if 21 00FF: actor $3 0 ()near_point_on_foot 1670.0 2200.0 11.0 radius 100.0 100.0 60.0 0100: actor $3 near_point_in_car 1670.0 2200.0 11.0 radius 100.0 100.0 60.0 sphere 0 004D: jump_if_false ЈЈBORDEL4_1365 00D6: if 0 0202: actor $3 near_car $bordel400 radius 7.0 7.0 unknown 0 004D: jump_if_false ЈЈBORDEL4_1361 0605: actor @1 perform_animation_sequence "FIXN_CAR_OUT" from_file "CAR" 4.0 0 0 0 0 0 ms 0001: wait 3000 ms 0639: AS_actor @1 rotate_to_actor $3 0001: wait 2000 ms 05D3: AS_actor @1 go_to 1665.0 2203.0 11.2 speed 4 4000 ms 0001: wait 4000 ms 0677: AS_actor @1 chat_with_actor @30 1 1 0519: unknown_car $bordel400 flag 0 01C3: remove_references_to_car $bordel400;; Like turning a car into any random car 0006: @23 = 1;; integer values :BORDEL4_1362 0001: wait 100 ms 00D6: if 0 8039: NOT @24 == 1;; integer values 004D: jump_if_false ЈЈBORDEL4_1363 00D6: if 5 851A: NOT unknown_actor @30 hit_by_actor $3 8457: NOT player $2 aiming_at_actor @30 831E: NOT vehicle @28 hit_by_weapon 57 851A: NOT unknown_actor @29 hit_by_actor $3 8457: NOT player $2 aiming_at_actor @29 831E: NOT vehicle @31 hit_by_weapon 57 004D: jump_if_false ЈЈBORDEL4_1370 00D6: if 4 851A: NOT unknown_actor @0 hit_by_actor $3 8457: NOT player $2 aiming_at_actor @0 851A: NOT unknown_actor @1 hit_by_actor $3 8457: NOT player $2 aiming_at_actor @1 831E: NOT vehicle @27 hit_by_weapon 57 004D: jump_if_false ЈЈBORDEL4_1370 00D6: if 0 8448: NOT actor $3 in_car @27 004D: jump_if_false ЈЈBORDEL4_1400 00D6: if 0 8448: NOT actor $3 in_car @28 004D: jump_if_false ЈЈBORDEL4_1410 00D6: if 0 8448: NOT actor $3 in_car @31 004D: jump_if_false ЈЈBORDEL4_1420 00D6: if 0 0256: player $2 defined 004D: jump_if_false ЈЈBORDEL4_1365 00D6: if 0 0448: actor $3 in_car $bordel400 004D: jump_if_false ЈЈBORDEL4_1363 0006: @24 = 1;; integer values :BORDEL4_1363 00D6: if 1 80FF: NOT actor $3 0 ()near_point_on_foot 1670.0 2200.0 11.0 radius 100.0 100.0 60.0 8100: NOT actor $3 near_point_in_car 1670.0 2200.0 11.0 radius 100.0 100.0 60.0 sphere 0 004D: jump_if_false ЈЈBORDEL4_1362 :BORDEL4_1365 0001: wait 5000 ms 0108: destroy_object @1 0108: destroy_object @2 0108: destroy_object @3 0108: destroy_object @4 0108: destroy_object @5 0108: destroy_object @6 0108: destroy_object @7 0108: destroy_object @8 0108: destroy_object @9 0108: destroy_object @10 0108: destroy_object @11 0108: destroy_object @12 0108: destroy_object @13 0108: destroy_object @18 0108: destroy_object @15 0108: destroy_object @16 0108: destroy_object @17 01C2: remove_references_to_actor @29;; Like turning an actor into a random pedestrian 01C2: remove_references_to_actor @30;; Like turning an actor into a random pedestrian 01C2: remove_references_to_actor @0;; Like turning an actor into a random pedestrian 01C2: remove_references_to_actor @1;; Like turning an actor into a random pedestrian :BORDEL4_1366 00D6: if 0 8039: NOT @19 == 1;; integer values 004D: jump_if_false ЈЈBORDEL4_1367 01C3: remove_references_to_car @27;; Like turning a car into any random car :BORDEL4_1367 00D6: if 0 8039: NOT @20 == 1;; integer values 004D: jump_if_false ЈЈBORDEL4_1368 01C3: remove_references_to_car @28;; Like turning a car into any random car :BORDEL4_1368 00D6: if 0 8039: NOT @21 == 1;; integer values 004D: jump_if_false ЈЈBORDEL4_1369 01C3: remove_references_to_car @31;; Like turning a car into any random car :BORDEL4_1369 0249: release_model #TOWTRUCK 0249: release_model #CHEETAH 0249: release_model #BANSHEE 0249: release_model #WMYMECH 0249: release_model -9 (CR_GUNCRATE) 04EF: release_animation "CAR" 0249: release_model $10486 00D6: if 0 0039: @24 == 1;; integer values 004D: jump_if_false ЈЈBORDEL4_358 0002: jump ЈЈBORDEL4_15 :BORDEL4_1370 0001: wait 100 ms 00D6: if 0 8039: NOT @23 == 1;; integer values 004D: jump_if_false ЈЈBORDEL4_1375 01C3: remove_references_to_car $bordel400;; Like turning a car into any random car 0006: @23 = 1;; integer values :BORDEL4_1375 0001: wait 100 ms 00D6: if 0 8039: NOT @22 == 1;; integer values 004D: jump_if_false ЈЈBORDEL4_1383 0247: request model #CHROMEGUN 038B: load_requested_models :BORDEL4_1380 0001: wait 100 ms 00D6: if 1 0248: model #CHROMEGUN available 004D: jump_if_false ЈЈBORDEL4_1375 01B2: give_actor @29 weapon 25 ammo 100;; Load the weapon model before using this 05E2: AS_actor @29 kill_actor $3 01B2: give_actor @30 weapon 25 ammo 100;; Load the weapon model before using this 05E2: AS_actor @30 kill_actor $3 01B2: give_actor @0 weapon 25 ammo 100;; Load the weapon model before using this 05E2: AS_actor @0 kill_actor $3 01B2: give_actor @1 weapon 25 ammo 100;; Load the weapon model before using this 05E2: AS_actor @1 kill_actor $3 0001: wait 1000 ms 0249: release_model #CHROMEGUN 0006: @22 = 1;; integer values :BORDEL4_1383 0001: wait 0 ms 00D6: if 0 8448: NOT actor $3 in_car @27 004D: jump_if_false ЈЈBORDEL4_1400 00D6: if 0 8448: NOT actor $3 in_car @28 004D: jump_if_false ЈЈBORDEL4_1410 00D6: if 0 8448: NOT actor $3 in_car @31 004D: jump_if_false ЈЈBORDEL4_1420 00D6: if 0 0256: player $2 defined 004D: jump_if_false ЈЈBORDEL4_1365 00D6: if 1 80FF: NOT actor $3 0 ()near_point_on_foot 1670.0 2200.0 11.0 radius 100.0 100.0 60.0 8100: NOT actor $3 near_point_in_car 1670.0 2200.0 11.0 radius 100.0 100.0 60.0 sphere 0 004D: jump_if_false ЈЈBORDEL4_1383 0002: jump ЈЈBORDEL4_1365 :BORDEL4_1400 0006: @19 = 1;; integer values 02D4: unknown_turn_off_car @27 engine 0002: jump ЈЈBORDEL4_1370 :BORDEL4_1410 0006: @20 = 1;; integer values 02D4: unknown_turn_off_car @28 engine 0002: jump ЈЈBORDEL4_1370 :BORDEL4_1420 0006: @21 = 1;; integer values 02D4: unknown_turn_off_car @31 engine 0002: jump ЈЈBORDEL4_1370 :BORDEL4_1475 0893: put_trailer $bordel400 on_cab $bordel401 0002: jump ЈЈBORDEL4_357 :BORDEL4_1480 0224: set_car $bordel400 health_to 1000 0002: jump ЈЈBORDEL4_357
Да машины то пожарные могут рэндомные для каждого раза во всех городах ездить, а вот сами пожарные и медики должны как раз меняться в зависимости от города, тогда все круто будет.
PEDS.IDE
274, laemt1, laemt1, MEDIC, STAT_MEDIC - LA medic 275, lvemt1, lvemt1, MEDIC, STAT_MEDIC - LV Medic 276, sfemt1, sfemt1, MEDIC, STAT_MEDIC - SF Medic 277, lafd1, lafd1, FIREMAN, STAT_FIREMAN - LA Fireman 278, lvfd1, lvfd1, FIREMAN, STAT_FIREMAN - LV Fireman 279, sffd1, sffd1, FIREMAN, STAT_FIREMAN - SF Fireman
хороший скрипт,
только там нет разделения по городам, т.е. во всех городах приезжают одни и те же медики пожарные с надписью LAFD. А было бы хорошо, чтобы была проверка на нахождения игрока в определенном городе и уже в зависимости от этого загрузка моделей отдельно для каждого города. Для разнообразия хорошо бы использовать 2 пожарные машины, чтобы они спаунились рэндомно - FIRELA и FIRETRUK
типа того получается:
:Start gosub @TIME_WATCH gosub @TRAFFIC_MOD jump @Start :TIME_WATCH thread 'Thread1' return :TRAFFIC_MOD thread 'Thread2' return
Слушай, Seemann, а зачем это jump @Start? Не получится, что он вернется и потоки по второму разу запустит поверх уже запущенных?
хм, понятно. Мне почему то казалось, что gosub не дружит с cleo. А в конце тела каждого цикла должна стоять return?
Ну вот предположим, есть 2 вот этих потока (или там про бензин - сам бензин и заправки), то как их паралеллить, чтобы они одновременно были запускались. Может есть готовые примеры как это в других скриптах сделано... ?
@Seemann
А как быть с двумя потоками? Если их сделать двумя отдельными CLEO файлами они не будут линковаться между собой и использовать одни и те же переменные, тем более локальные...
Второй, кажется интересный и полезный, потестирую! А куда towtruck отвозит машину?
Можно добавить включение/отключение фар, тем более, что делать это отдельным модом нерационально, поскольку большая часть будет повторяться, плюс нужно учитывать состояние двигателя.
Фары у меня отдельно, а вот проверка состояния двигателя есть..
Скачал все возможные моды выключения двигателя и почти у каждого нашел какие-то неудобные баги... и решил собрать свой, в котором все будет прекрасно.
http://westcoast-4-life.msk.ru/engine.cs
- Клавиша включения/выключения двигателя "I"
- Теперь машина не останавливается резко после выключения двигателя, а катится по энерции и управляема (спасибо M@rsik)
- У мотоциклов и лодок нормально выключаются двигатели (в некоторых модах звук и выхлоп пропадали, а лодка или мотик продолжали двигаться)
- Если у машины горели фары до выключения двигателя (даже днем) или сейчас ночь, после включения двигателя они включаются. Если день, то включается только двигатель.
тогда так.
2@ == 72 // COPS SEEN YOU then if and Actor.Driving($PLAYER_ACTOR) not Actor.DrivingPoliceVehicle($PLAYER_ACTOR) 84C8: not actor $PLAYER_ACTOR driving_flying_vehicle 84A7: not actor $PLAYER_ACTOR driving_boat then 03C0: 0@ = actor $PLAYER_ACTOR car