Вопросы по CLEO-скриптингу

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
Я тебе дал исправленный, не работает?
 

АндрейЧотак

Известный
80
10
Если это на адванс, то при работе нет там такой анимки вообще.
Ты ошибся. Опкод работает, ищи подходящую.

UPD: При копании используется не sword_4 , а bat_4


Хм странно,смотрел на одном pawno портале,там нашёл sword_4 про bat_4 не чего не было сказано.
 

fiendshadow

3LFhocV726q7pKWWky2vv3W38Dm9sGJV86
Проверенный
455
121
н
Это скрипт на автоматический tid. Уже 5 день жду пока кто то сделает, сделали а он не работает, помогите пожалуйста почему команду /zaebal вводил и нихуя он не работает
Код:
{$CLEO}
0000:
//^ начало всех скриптов                 
thread "warp"
//^ метка которая будет применяться при декомпеляции скрипта
if not 0@ = SAMP.Base()      // подключаем SF
then 0a93:
end
repeat                          //даем прогрузиться ГТА, при использование сф лучше использовать
wait 600                        //задержка для проверки загруженности
until SAMP.Available()          //выход если гта загружена
0B34: samp register_client_command "zaebal" to_label @cmd //регистрируем команду, в данном случае включения
 
while true                  //цикл в котором код скрипта
wait 0                      //wait 0 что не закрашило/зависло
if                          //начало условия
30@ == 1                    //само условие: скрипт активирован? почему 1 активация чуть позже
then                        //да-акивирован, идем дальше, если не активирован то пропускает эту часть ниже и цикл идет снова
0AC8: 3@ = allocate_memory_size 128    //выделяем память под переменную, в ней будет содержаться текст
0AC8: 5@ = allocate_memory_size 64      // аналогично, тому что выше
0B75: samp get_chat_string 99 text_to 3@ prefix_to 5@ color_to 4@ prefix_color_to 0@    //получаем тест(3@), цвет(4@), префикс(5@) и т.д. у 99 строки
if                                                                //начало условия
0C18: 2@ = strstr string1 3@ string2 "Загружено"                //если в тексте строки есть слово "Загружено"-пишем учитывая регист
then                                                            //тогда
Actor.StorePos($PLAYER_ACTOR, 4@ 5@ 6@)                          // получаем координаты актера(тебя)
if                                                              //условие
0AE2: 0@ = random_vehicle_near_point 4@ 5@ 6@ in_radius 250.0 find_next 0 pass_wrecked 1  //ищем рандомный кар в радиусе 250 от твоих координат, в 0@  записывается хэнгл кара
then  //если нашли
repeat      //цикл
wait 0        //чтоб не крашнуло
if or //2е условие, оно выполняется если из нескольких условий 1 = правде     
car.Model(0@) == 584 //получаем модель найденого кара и сразу сравниваем с нужной нам моделью, модель прицепа с бензом 584
car.Model(0@) == 450 // 450 прицеп с углев и деревом вроде
then          //если выполнилось 1 из условий
0B2C: samp 2@ = get_vehicle_id_by_car_handle 0@ // то, получаем ид кара из хэнгла
wait 100                                      //ждем 0.1 секунду
0AD3: string 4@ format "/tid %d" 2@ //создаем текст где будет использоваться наш ид
0B79: samp set_chat_input_enabled 1 //открываем чат
0B76: samp set_chat_input_text 4@  //пишем туда наш текст
0AB1: call @keyPress 2 key 13 time 10 //вызываем функция эмуляции нажатия клавиши Ентре на 10 мс
0AF8: samp add_message_to_chat "Загрузили прицеп с идом: %d" /*можешь писать любой текст*/ color 0x007bff /*любой цвет что хочешь можншь сделать*/ 2@ //2@- указатель на ид машины || относительно этого опкода он пишет в чат текст который будешь видеть только ты, он не особо нужен написал чтоб знал
end                                            //завершаем
until 8AE2: not 0@ = random_vehicle_near_point 4@ 5@ 6@ in_radius 250.0 find_next 0 pass_wrecked 1 //выходим из цикла если нету каров больше
end
end                                                                                              //завершаем
0ac9: 3@                                                                                          //удаляем выделеную память
0ac9: 5@                                                                                          //аналогично тому что выше
end
end
 
:cmd        //метка
0b12: 30@ = 30@ xor 1 // изменяем 30@ отновистельно 1, т.е. будет равно или 1 или 0, по условию 1 у нас активация, можно там заменит на 0 и тогда будет автовключение
samp.CmdRet() //завершаем команду чтобы вернуться к основному коду скрипта
 
:keyPress //отсюда начинается функция эмуляции нажатия клавиши, обьяснять не буду, если дальше понадобилться тупо копируй
if 0AA2: 2@ = load_library "User32.dll"
then
if 0AA4: 2@ = get_proc_address "keybd_event" library 2@
then
0AA5: call 2@ num_params 4 pop 0 0 0 0 0@
wait 1@
0AA5: call 2@ num_params 4 pop 0 0 0x02 0 0@
end
end
0AB2: ret 0
5s9FYsx.jpg
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460

Ну почти угадал.
Ты хочешь сказать, что разработчик мода будет вот так выкладывать код?
Это кодеры, которые написали свой кусок, как видят они.
Крч, не пудри мне мозги, я скинул тебе название анимки, используй её.
 

АндрейЧотак

Известный
80
10
Ну почти угадал.
Ты хочешь сказать, что разработчик мода будет вот так выкладывать код?
Это кодеры, которые написали свой кусок, как видят они.
Крч, не пудри мне мозги, я скинул тебе название анимки, используй её.

Ну не знаю,похожи,я сначало начал искать на вики портале сампа но там без описание,потом решил найти код на pawno и взять от туда.
 

Избранный

Новичок
198
30
как записать в переменную число которое выпало в рулетке?
красным посредине экрана то что написано
C8Ja1Hn.jpg
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
0xBAAF40 - Center, Center, White, Black Outline+Small+Fades Out, ?
0xBAAE40 - Center, Center, Orange, Black Outline+Small, ?
0xBAADC0 - Center, Center, White, Black Outline+That cool like 16th century font, ?

Какой из них - не знаю, читай каждый.
 
  • Нравится
Реакции: Избранный

Избранный

Новичок
198
30
0xBAAF40 - Center, Center, White, Black Outline+Small+Fades Out, ?
0xBAAE40 - Center, Center, Orange, Black Outline+Small, ?
0xBAADC0 - Center, Center, White, Black Outline+That cool like 16th century font, ?

Какой из них - не знаю, читай каждый.

через этот читать? 0A8D: $result = read_memory 1@ size 4 virtual_protect 0
и еще надо читать именно в том момент когда оно на экране, или оно сохраняется в памяти и через секунды 3 можно прочесть?
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
через этот читать? 0A8D: $result = read_memory 1@ size 4 virtual_protect 0
и еще надо читать именно в том момент когда оно на экране, или оно сохраняется в памяти и через секунды 3 можно прочесть?

Сохраняется в памяти, пока не покажется текст такого же типа.
Читать опкодом 0a8d.
Код:
0A8D: 0@ = read_memory 0x1233210ABCD size 4 virtual_protect 0
 
  • Нравится
Реакции: Избранный

Избранный

Новичок
198
30
вроде все правильно сделал, но числа какие-то ебанутые выводятся. может надо через scan_string делать как-то?
y7FBmdP.jpg
Код:
:n_54
wait 0
if
0AB0:  key_pressed 101
jf @n_54
0A8D: 0@ = read_memory 0xBAAF40 size 4 virtual_protect 0                     
0AF8: samp add_message_to_chat "выпало %d" color 16776960 0@
wait 100
0A8D: 0@ = read_memory 0xBAAE40 size 4 virtual_protect 0
0AF8: samp add_message_to_chat "выпало %d" color 16776960 0@
wait 100
0A8D: 0@ = read_memory 0xBAADC0 size 4 virtual_protect 0
0AF8: samp add_message_to_chat "выпало %d" color 16776960 0@
jump @n_54
 

hnnssy

Известный
Друг
2,684
2,749
вроде все правильно сделал, но числа какие-то ебанутые выводятся. может надо через scan_string делать как-то?
y7FBmdP.jpg
Код:
:n_54
wait 0
if
0AB0:  key_pressed 101
jf @n_54
0A8D: 0@ = read_memory 0xBAAF40 size 4 virtual_protect 0                 
0AF8: samp add_message_to_chat "выпало %d" color 16776960 0@
wait 100
0A8D: 0@ = read_memory 0xBAAE40 size 4 virtual_protect 0
0AF8: samp add_message_to_chat "выпало %d" color 16776960 0@
wait 100
0A8D: 0@ = read_memory 0xBAADC0 size 4 virtual_protect 0
0AF8: samp add_message_to_chat "выпало %d" color 16776960 0@
jump @n_54
Попробуй считывать 2 байта, а не 4.
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
вроде все правильно сделал, но числа какие-то ебанутые выводятся. может надо через scan_string делать как-то?
Код:
:n_54
wait 0
if
0AB0:  key_pressed 101
jf @n_54
0A8D: 0@ = read_memory 0xBAAF40 size 4 virtual_protect 0                   
0AF8: samp add_message_to_chat "выпало %d" color 16776960 0@
wait 100
0A8D: 0@ = read_memory 0xBAAE40 size 4 virtual_protect 0
0AF8: samp add_message_to_chat "выпало %d" color 16776960 0@
wait 100
0A8D: 0@ = read_memory 0xBAADC0 size 4 virtual_protect 0
0AF8: samp add_message_to_chat "выпало %d" color 16776960 0@
jump @n_54

На выходе строка, %s.
Можешь сделать скан строки.
 

Избранный

Новичок
198
30
незнаю, в чат просто нули пишет, может разберетесь
Код:
0AB0:  key_pressed 53
jf @n_54
0A8D: 0@ = read_memory 0xBAAF40 size 4 virtual_protect 0
0AD4: 3@ = scan_string 0@ format "%d" 1@                           
0AF8: samp add_message_to_chat "выпало %d" color 16776960 1@
wait 100
0A8D: 0@ = read_memory 0xBAAE40 size 4 virtual_protect 0
0AD4: 3@ = scan_string 0@ format "%d" 1@ 
0AF8: samp add_message_to_chat "выпало %d" color 16776960 1@
jump @n_54