You are not logged in.
@Seemann, спасибо, работает
если опкоды, использующиеся в скрипте, будут идентичны для са и вс
@Seemann, какие изменения, если не секрет, будут в новом SB?
@Seemann
Наверно это от разрешения монитора зависит...
Можно сделать вариант без спидометра, а значение бензина выводить статус-полоской, собственно я сначала так и сделал, но потом меня уломали на совмещение со спидометром.
@Alexander
Гениально... я б до такого нивжись не додумался, спасибо.
Пора садиться за обновление
вопрос. по какому адресу хранится громкость радио в игре? На gtamodding нашел 0xBA6798 , но изменяя значение по этомуадресу громкость не меняется, а менятся только ползунок в меню...
Centrino Duo
хм.. странно... тогда просьба:
поставь пожалуйсто плагин scmlog.cleo и после того как игра вылетит, скинь мне файл scmlog.log
у кого еще вылетает?
извеняюсь за свою память...
Для работы нужен Клео версии 950 и выше
и скачай архив, там файл speed2.txd , его надо положить в папку models\txd
@Seemann
для меня это не новостьт . В переменных 9@ - 15@ хранятся машины. Использовал для "памяти", что-то типо запоминания у какой машины скока бензина осталось. Аналогично с 18@ и иже с ними, только там хранятся числа значение бензина
Первые два компилить обязательно. Строку
LG_57 A3C
можно добавить в ЛЮБОЙ файл .fxt (этакие Клео-gxt файлы). Прочитай инструкцию к плагину gxthook и всё поймёшь.
Скрипты для вайса и трёшки - в папку \data
Клео на них не работает. И переключение сделано для того, что бы люди могли писать скрипты не только для СА(не всем он нравится). К тому же кнопка установки Клео пропадает, когда редактор переключаешь с СА на другие GTA
Бензо-спидометро-мод. Написан с нуля(кроме кусков относящихся к спидометру, которые скопи-пастил).
Как ясно из названия - добавляет бензин и спидометр.
{$CLEO} var 2@ :Integer 3@ :Integer 4@ :Integer 5@ :Integer 6@ :Integer 7@ :Integer 9@ :Array 7 of Integer 16@ :Integer 17@ :Integer 18@ :Array 7 of Integer 19@ :Integer 20@ :Integer 21@ :Integer 22@ :Integer 23@ :Integer 24@ :Integer 25@ :Integer 26@ :Integer 32@ :Integer 33@ :Integer 30@ :Integer end // var const playerCar = 9@ BenzoBak = 4@ rashod = 6@ gear = 30@ GasolineCost = 17@ WantedMultyple = 26@ end // const 03A4: name_thread 'GASOLINE' 0A92: create_custom_thread "A3C.s" 18@ = random(4, 98) 19@ = random(4, 98) 20@ = random(4, 98) 21@ = random(4, 98) 22@ = random(4, 98) 23@ = random(4, 98) 24@ = random(4, 98) :benzin while true wait 0 if Player.Defined($PLAYER_CHAR) then if and Actor.Driving($PLAYER_ACTOR) not Actor.DrivingBoat($PLAYER_ACTOR) not Actor.DrivingFlyingVehicle($PLAYER_ACTOR) not Actor.DrivingVehicleType($PLAYER_ACTOR,#BMX) not Actor.DrivingVehicleType($PLAYER_ACTOR,#BIKE) not Actor.DrivingVehicleType($PLAYER_ACTOR,#MTBIKE) not $ONMISSION == 1 jf @benzin 03F0: enable_text_draw 1 0390: load_txd_dictionary "SPEED2" 038F: load_texture "1" as 1 // Load dictionary with 0390 first 038F: load_texture "2" as 2 // Load dictionary with 0390 first 038F: load_texture "3" as 3 // Load dictionary with 0390 first 038F: load_texture "4" as 4 // Load dictionary with 0390 first 038F: load_texture "5" as 5 // Load dictionary with 0390 first 038F: load_texture "r" as 6 // Load dictionary with 0390 first 038F: load_texture "sp" as 7 // Load dictionary with 0390 first 038F: load_texture "spnight" as 8 // Load dictionary with 0390 first 038F: load_texture "spar" as 9 // Load dictionary with 0390 first 038F: load_texture "sparnight" as 10 // Load dictionary with 0390 first 038F: load_texture "1n" as 11 // Load dictionary with 0390 first 038F: load_texture "2n" as 12 // Load dictionary with 0390 first 038F: load_texture "3n" as 13 // Load dictionary with 0390 first 038F: load_texture "4n" as 14 // Load dictionary with 0390 first 038F: load_texture "5n" as 15 // Load dictionary with 0390 first 038F: load_texture "rn" as 16 // Load dictionary with 0390 first 038F: load_texture "gasar" as 17 // Load dictionary with 0390 first 038F: load_texture "gasover" as 18 // Load dictionary with 0390 first 01BD: 5@ = current_time_in_ms 3@ = -1 :benzo1 if 856E: not car playerCar[16@] defined jf @benzo2 goto @benzin22_52 :benzo2 if 80DB: not actor $PLAYER_ACTOR in_car playerCar[16@] jf @benzin2_5 if not 16@ == 6 jf @benzo3 16@ += 1 goto @benzo1 :benzo3 16@ = 25@ 0209: 18@[16@] = random_int_in_ranges 4 98 25@ += 1 if not 25@ == 6 0AA0: gosub_if_false @benzo4 wait 0 goto @benzin22_52 :benzo4 25@ = 0 0AA1: return_if_false :benzin22_52 Actor.Car(playerCar[16@],$PLAYER_ACTOR) :benzin2_5 4@ = 18@[16@] 09C4: set_car playerCar[16@] gas_tank_explosion_enabled 1 :benzin1_5 32@ = 0 :benzin2 wait 0 if not Car.Wrecked(playerCar[16@]) jf @benzin45 if and 00DB: actor $PLAYER_ACTOR in_car playerCar[16@] not $ONMISSION == 1 jf @benzin4 0AB1: call_scm_func @speedometer 3 4@ 5@ 3@ 5@ 3@ gosub @zapravko if not 0 >= 4@ jf @benzin5 0ABE: vehicle playerCar[16@] engine_on 0AA0: gosub_if_false @engine_on 0AB8: get_vehicle playerCar[16@] current_gear_to gear if not gear == 5 0AA0: gosub_if_false @gear5 if not gear == 4 0AA0: gosub_if_false @gear4 if not gear == 3 0AA0: gosub_if_false @gear3 if not gear == 2 0AA0: gosub_if_false @gear2 if not gear == 1 0AA0: gosub_if_false @gear1 if not gear == 0 //rear 0AA0: gosub_if_false @gear0 if 81C1: not car playerCar[16@] stopped 0AA0: gosub_if_false @carstopped if 32@ >= rashod jf @benzin2 4@ -= 1 goto @benzin1_5 :engine_on 09C4: set_car playerCar[16@] gas_tank_explosion_enabled 1 0ABF: set_vehicle playerCar[16@] engine_state_to 1 0AA1: return_if_false :gear0 // rashod = 10800 // rear 0AA1: return_if_false // :gear1 rashod = 6000 0AA1: return_if_false :gear2 rashod = 7000 0AA1: return_if_false :gear3 rashod = 8500 0AA1: return_if_false :gear4 rashod = 9600 0AA1: return_if_false :gear5 rashod = 108000 0AA1: return_if_false :carstopped rashod = 125000 0AA1: return_if_false :benzin4 18@[16@] = 4@ goto @benzin :benzin45 0391: release_txd_dictionary goto @benzin :benzin5 02D4: car playerCar[16@] turn_off_engine 09C4: set_car playerCar[16@] gas_tank_explosion_enabled 0 18@[16@] = 4@ :benzin6 //wait 0 if not Actor.Driving($PLAYER_ACTOR) jf @benzin2 0391: release_txd_dictionary end end //while :speedometer var 12@ :Integer end // var//8@ = 7 9@ = 9 3@ = 6 4@ = 1 5@ = 2 6@ = 3 7@ = 4 8@ = 5 008F: 0@ = integer 0@ to_float 0@ /= 2.0 0@ += 155.0 03C0: 10@ = actor $PLAYER_ACTOR car 03E3: set_texture_to_be_drawn_antialiased 1 038D: draw_texture 7 position 550.0 360.0 size 180.0 160.0 RGBA 255 255 255 255 03E3: set_texture_to_be_drawn_antialiased 1 074B: draw_texture 17 position 550.0 356.0 scale 90.0 80.0 angle 0@ color_RGBA 255 255 255 255 if or 0@ > 167.5 2@ == 1 jf @speedometer4 0@ > 155.0 jf @speedometer4 03E3: set_texture_to_be_drawn_antialiased 1 038D: draw_texture 18 position 558.0 391.0 size 11.25 10.0 RGBA 255 255 255 60 :speedometer5 01BD: 12@ = current_time_in_ms 0062: 12@ -= 1@ // (int) 12@ >= 1750 jf @speedometer3 2@ *= -1 01BD: 1@ = current_time_in_ms goto @speedometer3 :speedometer4 03E3: set_texture_to_be_drawn_antialiased 1 038D: draw_texture 18 position 558.0 391.0 size 11.25 10.0 RGBA 190 0 0 255 0@ > 155.0 jf @speedometer3 goto @speedometer5 :speedometer3 02E3: 17@ = car 10@ speed 17@ *= 3.7 17@ += 40.0 0AB8: get_vehicle 10@ current_gear_to 11@ 03E3: set_texture_to_be_drawn_antialiased 1 038D: draw_texture 3@(11@,6i) position 542.0 392.0 size 39.375 35.0 RGBA 255 255 255 255 //038D: draw_texture 1@(11@,6i) position 540.0 391.0 size 67.5 60.0 RGBA 255 255 255 255 03E3: set_texture_to_be_drawn_antialiased 1 not 17@ > 320.0 jf @speedometer6 074B: draw_texture 9@ position 550.0 360.0 scale 225.0 200.0 angle 17@ color_RGBA 255 255 255 255 //1,125 0AB2: ret 2 1@ 2@ :speedometer6 0208: 17@ = random_float_in_ranges 310.0 330.0 074B: draw_texture 9@ position 550.0 360.0 scale 225.0 200.0 angle 17@ color_RGBA 255 255 255 255 //1,125 0AB2: ret 2 1@ 2@ :zapravko if and 81AB: not car playerCar[16@] sphere 0 in_rectangle_cornerA 2123.3806 928.5721 cornerB 2106.8508 911.447 stopped 81AB: not car playerCar[16@] sphere 0 in_rectangle_cornerA 2156.116 2755.251 cornerB 2139.3486 2740.3503 stopped 81AB: not car playerCar[16@] sphere 0 in_rectangle_cornerA 2194.8752 2484.6067 cornerB 2210.6038 2466.6272 stopped 81AB: not car playerCar[16@] sphere 0 in_rectangle_cornerA 1587.3915 2205.6235 cornerB 1604.3937 2191.3142 stopped 81AB: not car playerCar[16@] sphere 0 in_rectangle_cornerA -1690.4707 409.2204 cornerB -1661.2582 417.7699 stopped 81AB: not car playerCar[16@] sphere 0 in_rectangle_cornerA -2406.9104 965.6361 cornerB -2415.9421 986.1729 stopped 81AB: not car playerCar[16@] sphere 0 in_rectangle_cornerA -1322.9725 2686.8352 cornerB -1335.1208 2666.2117 stopped jf @zapravko2 if and 81AB: not car playerCar[16@] sphere 0 in_rectangle_cornerA -2240.0842 -2567.7544 cornerB -2245.656 -2554.0215 stopped 81AB: not car playerCar[16@] sphere 0 in_rectangle_cornerA -1616.8291 -2719.7837 cornerB -1595.7903 -2707.2815 stopped 81AB: not car playerCar[16@] sphere 0 in_rectangle_cornerA -100.651 -1178.0348 cornerB -81.0769 -1162.0487 stopped 81AB: not car playerCar[16@] sphere 0 in_rectangle_cornerA 652.7013 -575.2865 cornerB 658.194 -555.3245 stopped 81AB: not car playerCar[16@] sphere 0 in_rectangle_cornerA 1937.6512 -1784.6312 cornerB 1945.447 -1762.0051 stopped 81AB: not car playerCar[16@] sphere 0 in_rectangle_cornerA -1482.6179 1871.4877 cornerB -1458.9929 1854.3845 stopped jf @zapravko2 return :zapravko2 if and 33@ >= 500 not 4@ >= 100 0AA1: return_if_false 0AB1: call_scm_func @speedometer 3 4@ 5@ 3@ 5@ 3@ if not Actor.InZone($PLAYER_ACTOR,'VE') then if and not Actor.InZone($PLAYER_ACTOR,'BONE') not Actor.InZone($PLAYER_ACTOR,'FLINTC') not Actor.InZone($PLAYER_ACTOR,'RED') then GasolineCost = 1000 WantedMultyple = Player.WantedLevel($PLAYER_CHAR) WantedMultyple += 1 GasolineCost *= WantedMultyple else GasolineCost = 900 WantedMultyple = Player.WantedLevel($PLAYER_CHAR) WantedMultyple += 1 GasolineCost *= WantedMultyple goto @add_gasoline end else GasolineCost = 1200 WantedMultyple = Player.WantedLevel($PLAYER_CHAR) WantedMultyple += 1 GasolineCost *= WantedMultyple goto @add_gasoline end :add_gasoline GasolineCost -= 1 if 010A: player $PLAYER_CHAR money > GasolineCost jf @nomoneys GasolineCost += 1 GasolineCost *= -1 4@ += 1 Player.Money($PLAYER_CHAR) += GasolineCost 32@ = 0 33@ = 0 goto @zapravko :nomoneys if 88FE: not text_box_displayed 0AA1: return_if_false 03E5: show_text_box 'NOMONEY' return
Файл A3C.s
{$CLEO .s} 0000: :A3C wait 0 0@ = 0 04CE: 1@ = create_icon_marker_without_sphere 55 at -1673.3113 415.5818 6.8497 // san fierro east bassein 04CE: 2@ = create_icon_marker_without_sphere 55 at -2407.5476 974.9628 44.9663 // chinatown 04CE: 3@ = create_icon_marker_without_sphere 55 at -1329.8654 2665.9988 49.6674 //el q1 04CE: 4@ = create_icon_marker_without_sphere 55 at 603.6575 1703.6644 7.1044 //bone c1 04CE: 5@ = create_icon_marker_without_sphere 55 at 2114.6245 920.1982 10.8203 //lv 1 icon 04CE: 6@ = create_icon_marker_without_sphere 55 at 2148.3494 2747.8782 10.8203 // lv 2 icon 04CE: 7@ = create_icon_marker_without_sphere 55 at 2202.2673 2473.8806 10.8203 //lv 3 icon 04CE: 8@ = create_icon_marker_without_sphere 55 at 1596.6096 2198.6833 10.8203 //lv 4 ic 04CE: 9@ = create_icon_marker_without_sphere 55 at -2243.6313 -2559.158 31.9219 // san fierro east bassein 04CE: 10@ = create_icon_marker_without_sphere 55 at -1606.2698 -2714.0828 48.5335 // chinatown 04CE: 11@ = create_icon_marker_without_sphere 55 at -90.1793 -1169.6742 2.3974 //el q1 04CE: 12@ = create_icon_marker_without_sphere 55 at 655.2332 -565.256 16.3359 //bone c1 04CE: 13@ = create_icon_marker_without_sphere 55 at 1943.4669 -1773.2439 13.3906 //lv 1 icon 04CE: 14@ = create_icon_marker_without_sphere 55 at -1469.8339 1864.4039 32.6328 //lv 1 icon :A3C_save wait 0 0A8D: 0@ = read_memory 0xBA68A7 size 1 virtual_protect 1 if not 0@ == 0 jf @A3C_save 0164: disable_marker 1@ 0164: disable_marker 2@ 0164: disable_marker 3@ 0164: disable_marker 4@ 0164: disable_marker 5@ 0164: disable_marker 6@ 0164: disable_marker 7@ 0164: disable_marker 8@ 0164: disable_marker 9@ 0164: disable_marker 10@ 0164: disable_marker 11@ 0164: disable_marker 12@ 0164: disable_marker 13@ //0A93: end_custom_thread :A3C_save_done wait 0 if or 09FA: is_menu_closed 03D9: save_done jf @A3C_save_done goto @A3C
В любой файл .fxt, по желанию, добавить:
LG_57 A3C
Жду конструктивной критики=)
Хочу поставить КЛЕО на Вайс, как мне это сделать? Только прошу подробно напишите.
CLEO - для СА
Off-top.
1) Все реально, просто никто этим не будет заниматься.
2) Для этого есть файл handling.cfg
3) Предупреждая встречное возражение: да, в самп-е этот файл менять нельзя. значит, так надо. см. п. 1)
бесконечный цикл прям какой-то:D
2Seemann
Может стоит запретить размещение скриптов, которые используются для читерства в samp?
@Seemann
Может можно сделать его на основе 02D4? Он же (02D4) выключает не только двигатель.
Маленький вопрос по 0ABF
Нельзя ли его чуть переделать? Так как если двигатель отключить, то сразу же пропадает звук двигателя, акселерация не работает, скорость постепенно понижается, но когда опускается до какого-то значения, то машина продолжает катиться до тех, пока не отпустишь клавишу газа, или не врежешься. При этом создается впечатление, что машина становится резче в поворотах.
Так же если выключить двиг опкодом 02D4, а потом включить 0ABF, то двигатель то заработает, но машина всё равно будет стоять на месте пока не сделаешь выход-вход...
Как задать "если актер НЕ в машине"??
"прибавить" восьмёрку - 8449:
Моё мнение обывателя - менять не стоит, так как сейчас всё замечательно работает.
Глобальные переменные использовать ненужно.
{$CLEO .cs} 0000: while true wait 50 if Player.Defined($PLAYER_CHAR) then if and Actor.Driving($PLAYER_ACTOR) 0AB0: key_pressed 90 then 03C0: 0@ = actor $PLAYER_ACTOR car 02E3: 1@ = car 0@ speed 1@ *= 1.3 1@ += 1.0 Car.SetSpeedInstantly(0@, 1@) Car.RemoveReferences(0@) wait 50 end end end
Чтобы не путаться с переменными можно использовать константы
const Player_Car = 0@ end
Player_Car при компиляции будет заменяться на 0@
Noob
Поставь скорость поменьше.
Car.SetSpeedInstantly(0@, 20.0)
Как можно прверить существование определенной иконки на радаре? по аналогии с красным крестиком-меткой.
Взъерошенный
Ты всё правильно сказал - для одиночных условий не надо ни and ни or.
Как известно в потоках можно использовать всего 32 переменных, а в миссиях 1024. Внимание вопрос: Что будет если я клео-поток использую как клео-мисию?
P.S. Время пошло
2Взъерошенный
Есть такие опкоды
08A4: set_car 90@ extra_parts_angle_to 46@ 098D: get_car 46@ extra_parts_angle $7936
Какое значение возвращает 098D если деталь опущена или поднята - незнаю. Вероятно 0 и 1 соответственно.
VcSaJen
не очищает припаркованные автомобили?
Очищать то может и очищает, да вертолёт опять сгенерируется . Отключи генерацию, потом очисть територию, а перед завершением скрипта опять включи генерацию.
VcSaJen
Для быстрого написания заголовка можно использовать макросы. И быстро, и понятно, и не раздражает
Например
Cleo=Cleo Script ={$CLEO} =0000: = =|