#102 Re: Вопросы по скриптингу » Один вопрос » 02-08-2008 13:29

если опкоды, использующиеся в скрипте, будут идентичны для са и вс

#103 Re: Sanny Builder и CLEO » Вопросы и предложения по Sanny Builder » 01-08-2008 18:51

@Seemann, какие изменения, если не секрет, будут в новом SB?

#104 Re: Модификации » Бензомод » 01-08-2008 18:49

@Seemann
Наверно это от разрешения монитора зависит...
Можно сделать вариант без спидометра, а значение бензина выводить статус-полоской, собственно я сначала так и сделал, но потом меня уломали на совмещение со спидометром.
@Alexander
Гениально... я б до такого нивжись не додумался, спасибо.

Пора садиться за обновление smile

#105 Re: Вопросы по скриптингу » Один вопрос » 01-08-2008 18:41

вопрос. по какому адресу хранится громкость радио в игре? На gtamodding нашел 0xBA6798 , но изменяя значение по этомуадресу громкость не меняется, а менятся только ползунок в меню...

#106 Re: Модификации » Бензомод » 01-08-2008 11:39

Centrino Duo
хм.. странно... тогда просьба:
поставь пожалуйсто плагин scmlog.cleo и после того как игра вылетит, скинь мне файл scmlog.log
у кого еще вылетает?

#107 Re: Модификации » Бензомод » 01-08-2008 11:25

извеняюсь за свою память...
Для работы нужен Клео версии 950 и выше
и скачай архив, там файл speed2.txd , его надо положить в папку models\txd

#108 Re: Модификации » Бензомод » 01-08-2008 10:51

@Seemann
для меня это не новостьт smile . В переменных 9@ - 15@ хранятся машины. Использовал для "памяти", что-то типо запоминания у какой машины скока бензина осталось. Аналогично с 18@ и иже с ними, только там хранятся числа значение бензина

#109 Re: Модификации » Бензомод » 01-08-2008 08:08

Первые два компилить обязательно. Строку

LG_57 A3C

можно добавить в ЛЮБОЙ файл .fxt (этакие Клео-gxt файлы). Прочитай инструкцию к плагину gxthook и всё поймёшь.

#110 Re: Вопросы по скриптингу » Один вопрос » 01-08-2008 08:05

Скрипты для вайса и трёшки - в папку \data
Клео на них не работает. И переключение сделано для того, что бы люди могли писать скрипты не только для СА(не всем он нравится). К тому же кнопка установки Клео пропадает, когда редактор переключаешь с СА на другие GTA

#111 Модификации » Бензомод » 01-08-2008 07:33

flashTrash
Replies: 19

Бензо-спидометро-мод. Написан с нуля(кроме кусков относящихся к спидометру, которые скопи-пастил).
Как ясно из названия - добавляет бензин и спидометр.

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

Жду конструктивной критики=)

#112 Re: Вопросы по скриптингу » Один вопрос » 31-07-2008 18:30

Хочу поставить КЛЕО на Вайс, как мне это сделать? Только прошу подробно напишите.

CLEO - для СА

#113 Re: Модификации » Скрипты для Cleo актуальные в SA Multiplayer (samp 0.2.2) » 30-07-2008 17:20

Off-top.

1) Все реально, просто никто этим не будет заниматься.
2) Для этого есть файл handling.cfg
3) Предупреждая встречное возражение: да, в самп-е этот файл менять нельзя. значит, так надо. см. п. 1)

бесконечный цикл прям какой-то:D

2Seemann
Может стоит запретить размещение скриптов, которые используются для читерства в samp?

#114 Re: Sanny Builder и CLEO » FAQ по CLEO 3 » 24-07-2008 08:22

@Seemann
Может можно сделать его на основе 02D4? Он же (02D4) выключает не только двигатель.

#115 Re: Sanny Builder и CLEO » FAQ по CLEO 3 » 23-07-2008 11:53

Маленький вопрос по 0ABF
Нельзя ли его чуть переделать? Так как если двигатель отключить, то сразу же пропадает звук двигателя, акселерация не работает, скорость постепенно понижается, но когда опускается до какого-то значения, то машина продолжает катиться до тех, пока не отпустишь клавишу газа, или не врежешься. При этом создается впечатление, что машина становится резче в поворотах.
Так же если выключить двиг опкодом 02D4, а потом включить 0ABF, то двигатель то заработает, но машина всё равно будет стоять на месте пока не сделаешь выход-вход...

#116 Re: Вопросы по скриптингу » cleo-скрипт. Что не так? » 20-07-2008 19:00

Как задать "если актер НЕ в машине"??

"прибавить" восьмёрку - 8449:

#117 Re: О сайте и форумах » Меняем форум на IPB? » 18-07-2008 09:20

Моё мнение обывателя - менять не стоит, так как сейчас всё замечательно работает.

#118 Re: Вопросы по скриптингу » Ускорение » 17-07-2008 17:44

Глобальные переменные использовать ненужно.

{$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@

#119 Re: Вопросы по скриптингу » Ускорение » 17-07-2008 15:34

Noob
Поставь скорость поменьше.

Car.SetSpeedInstantly(0@, 20.0)

#120 Re: Вопросы по скриптингу » Один вопрос » 15-07-2008 13:10

Как можно прверить существование определенной иконки на радаре? по аналогии с красным крестиком-меткой.

#121 Re: Вопросы по скриптингу » начало скриптинга » 13-07-2008 09:04

Взъерошенный
Ты всё правильно сказал - для одиночных условий не надо ни and ни or.

#122 Re: Вопросы по скриптингу » Один вопрос » 11-07-2008 12:12

Как известно в потоках можно использовать всего 32 переменных, а в миссиях 1024. Внимание вопрос: Что будет если я клео-поток использую как клео-мисию?

P.S. Время пошло grin

#123 Re: Вопросы по скриптингу » Вопросы по опкодам » 11-07-2008 12:05

2Взъерошенный
Есть такие опкоды

08A4: set_car 90@ extra_parts_angle_to 46@ 
098D: get_car 46@ extra_parts_angle $7936

Какое значение возвращает 098D если деталь опущена или поднята - незнаю. Вероятно 0 и 1 соответственно.

#124 Re: Вопросы по скриптингу » Один вопрос » 09-07-2008 10:46

VcSaJen

не очищает припаркованные автомобили?

Очищать то может и очищает, да вертолёт опять сгенерируется smile . Отключи генерацию, потом очисть територию, а перед завершением скрипта опять включи генерацию.

#125 Re: Sanny Builder и CLEO » Вопросы и предложения по Sanny Builder » 09-07-2008 09:12

VcSaJen
Для быстрого написания заголовка можно использовать макросы. И быстро, и понятно, и не раздражает smile
Например

Cleo=Cleo Script
={$CLEO}
=0000:
=
=|

Board footer

Powered by FluxBB