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

paj1c

Новичок
1
0
hi blast hack , i need help
I am currently making an object finder for a packet on one server model (19054,19055,19056,19057,19058) I am trying to make an RGB cube when it locates my pickup (GIFTBOX) which can be seen here
thanks
 

D3.Pheonix

🎹
Модератор
2,867
1,644
Как поменять свой лвл в табе? Если да, киньте опкод, пж
Там всё немного сложнее. Можешь разобрать старый скрипт пикселя, там есть эта функция, но работает только с нопом на RPC_UPDATESCORESPINGSIPS, соответственно, все остальные данные в ТАБе перестанут обновляться
 

Вложения

  • ScoreBoardFakerByiTz_XG4M3R.CS
    37.5 KB · Просмотры: 4
  • Нравится
Реакции: morvenall

Spectrata

Новичок
27
0
Как передавать хуки из одного потока в другой?

Например...
CLEO:
{$CLEO}

0000:

:main
repeat
    wait 0 ms
until samp.Available()

0C6A: 25@ = create_custom_thread_at_label @test2 {вот здесь я к примеру создал еще один поток test2 и хочу чтобы в созданный поток(test2) передавались меняющиеся данные из потока test1}

:test1
wait 0 ms
{Здесь у нас что-то хукается, то есть переменки принимают новые значения}
jump @test1


:test2
wait 0 ms
???
jump @test2
 

Spectrata

Новичок
27
0
Ок. Еще такой вопрос.
Код:
:hooks // 107 RPC
0BE3: raknet setup_incoming_rpc_hook @hooks_pos_biz
0BDE: pause_thread @hooks

Sry, что задаю много вопросов, так как не могу выловить ошибку - не понимаю что и как происходит.

@hooks_pos_biz это поток? а @hooks это тоже поток?
P.S Я не использовал опкоды create thread для создания @hooks
Чем отличаются метки от потоков или потоки создаются определенными опкодами?
 

New_J3rs3y1337

Известный
148
102
Ок. Еще такой вопрос.
Код:
:hooks // 107 RPC
0BE3: raknet setup_incoming_rpc_hook @hooks_pos_biz
0BDE: pause_thread @hooks

Sry, что задаю много вопросов, так как не могу выловить ошибку - не понимаю что и как происходит.

@hooks_pos_biz это поток? а @hooks это тоже поток?
P.S Я не использовал опкоды create thread для создания @hooks
Чем отличаются метки от потоков или потоки создаются определенными опкодами?
Поток, начинающийся в @hooks_pos_biz работает паралельно остальному потоку, если простыми словами. За тем мы и ставим основной поток скрипта на паузу, работает только созданный ранее @hooks_pos_biz.

@hooks это метка, принадлежащая основному потоку, в котором мы опкодом 0BE3 регистрируем уже другой поток, что будет начинаться с метки @hooks_pos_biz, а после всего этого приостанавливаем основной поток, что бы он не перешёл на метку @hooks_pos_biz, которая ему не принадлежит (иначе будет краш).

У каждого потока есть свои метки, по которым он постоянно перемещается (или просто стоит на паузе). Нельзя просто так перейти с метки одного потока на метку другого, опять же, будет краш.
 
Последнее редактирование:
  • Нравится
Реакции: Spectrata

Spectrata

Новичок
27
0
Тогда еще пару вопросов.

В чем отличие данных опкодов?

004F: create_thread @MS_BIKE_MISSIONS

0C6A: 1@ = create_custom_thread_at_label 0@

0A92: create_custom_thread "ShowTextBox.s"

0C6B: 1@ = create_custom_thread_at_pointer 0@
 

FakeSince

Активный
243
56
Как декриптнуть скрипт? Есть ли какие-либо бесплатные декрипторы которыми получится открыть код файла?
 

Вложения

  • timer_capture.cs
    11.1 KB · Просмотры: 6

New_J3rs3y1337

Известный
148
102
Тогда еще пару вопросов.

В чем отличие данных опкодов?

004F: create_thread @MS_BIKE_MISSIONS

0C6A: 1@ = create_custom_thread_at_label 0@

0A92: create_custom_thread "ShowTextBox.s"

0C6B: 1@ = create_custom_thread_at_pointer 0@
[004F: create_thread @MS_BIKE_MISSIONS] - начинает новый поток,
[0C6A: 1@ = create_custom_thread_at_label 0@] - начинает по сути отдельный клео скрипт, но в этом же файле,
[0C6B: 1@ = create_custom_thread_at_pointer 0@] - то-же что и 0C6A, только используется указатель на код CLEO-скрипта в памяти,
[0A92: create_custom_thread "ShowTextBox.s"] - то-же что и 0C6A/0C6B, только в скобках указывается путь к другому скрипту.
 
  • Нравится
Реакции: Spectrata

hnnssy

Известный
Друг
2,684
2,762
Тогда еще пару вопросов.

В чем отличие данных опкодов?

004F: create_thread @MS_BIKE_MISSIONS

0C6A: 1@ = create_custom_thread_at_label 0@

0A92: create_custom_thread "ShowTextBox.s"

0C6B: 1@ = create_custom_thread_at_pointer 0@
[004F: create_thread @MS_BIKE_MISSIONS] - начинает новый поток,
[0C6A: 1@ = create_custom_thread_at_label 0@] - начинает по сути отдельный клео скрипт, но в этом же файле,
[0C6B: 1@ = create_custom_thread_at_pointer 0@] - то-же что и 0C6A, только используется указатель на код CLEO-скрипта в памяти,
[0A92: create_custom_thread "ShowTextBox.s"] - то-же что и 0C6A/0C6B, только в скобках указывается путь к другому скрипту.
не совсем так
создаёт поток с метки
создает поток с метки, получая указатель на него
запускает скрипт по имени
запускает поток по указателю на участок в памяти и получает указатель на новый поток
а ваще вот - https://wiki.blast.hk/gta-sa/opcodes/0c6a
 
  • Нравится
Реакции: New_J3rs3y1337 и Spectrata

Spectrata

Новичок
27
0
Код:
{$CLEO}

0000:

:check_samp
repeat
    wait 0 ms
until samp.Available()

:next
0B34: samp register_client_command "Data_Dialog" to_label @main
0BDE: pause_thread 0

:main
0AF9: samp say_msg "/route"
0B4E: samp 0@ = get_current_dialog_id
IF 
    0@ == 3360 
THEN
    0050: gosub @Write_Data_To_Ini 
END    
0B43: samp cmd_ret

:Write_Data_To_Ini
0AC8: 1@ = allocate_memory_size 50
0A9A: 2@ = openfile "cleo\List_Of_Items.INI" mode "wt"
for 3@ = 0 to 14 step 1
    0B5B: samp get_listbox_item 3@ text_to 1@
    0AD9: write_formatted_text "%s %c" in_file 2@ 1@ 0xA
end
0A9B: closefile 2@ 
0AC9: free_allocated_memory 1@
0051: return

Как правильно парсить весь текст диалога?

Вот что на серваке в диалоге рисуется.

sa-mp-020.png



А вот что мне в файл List_Of_Items.INI пишет :

Магазин «AF ammunation #3»
Магазин «AF ammunation #1»
Тренировочный центр «AF Firearms»
Мастерская «PAY N SPRAY #5»
Закусочная «Burger Shot #5»
Магазин DS #3
Ресторан «Pastageddon»
Аптека «Angel Pine»
Частный клуб «Club LV»
Закусочная «Cluckin' Bell #6»
Магазин «Whetstone 24 / 7»
Магазин «Highway 24 / 7»
Частный клуб «China Sauna Club»
Частный клуб «Chabanais»
Мастерская «PAY N SPRAY #9»

Кто-то понимает в чём проблема?
 

hnnssy

Известный
Друг
2,684
2,762
Код:
{$CLEO}

0000:

:check_samp
repeat
    wait 0 ms
until samp.Available()

:next
0B34: samp register_client_command "Data_Dialog" to_label @main
0BDE: pause_thread 0

:main
0AF9: samp say_msg "/route"
0B4E: samp 0@ = get_current_dialog_id
IF
    0@ == 3360
THEN
    0050: gosub @Write_Data_To_Ini
END   
0B43: samp cmd_ret

:Write_Data_To_Ini
0AC8: 1@ = allocate_memory_size 50
0A9A: 2@ = openfile "cleo\List_Of_Items.INI" mode "wt"
for 3@ = 0 to 14 step 1
    0B5B: samp get_listbox_item 3@ text_to 1@
    0AD9: write_formatted_text "%s %c" in_file 2@ 1@ 0xA
end
0A9B: closefile 2@
0AC9: free_allocated_memory 1@
0051: return

Как правильно парсить весь текст диалога?

Вот что на серваке в диалоге рисуется.

Посмотреть вложение 130784


А вот что мне в файл List_Of_Items.INI пишет :

Магазин «AF ammunation #3»
Магазин «AF ammunation #1»
Тренировочный центр «AF Firearms»
Мастерская «PAY N SPRAY #5»
Закусочная «Burger Shot #5»
Магазин DS #3
Ресторан «Pastageddon»
Аптека «Angel Pine»
Частный клуб «Club LV»
Закусочная «Cluckin' Bell #6»
Магазин «Whetstone 24 / 7»
Магазин «Highway 24 / 7»
Частный клуб «China Sauna Club»
Частный клуб «Chabanais»
Мастерская «PAY N SPRAY #9»

Кто-то понимает в чём проблема?
через 0BD7: samp get_dialog_text 0@ попробуй получить текст и запиши его в txt, может так получится
память только выдели