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

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,463
Наверно таким себе никто ещё голову не забивал, я тут попытался сделать scm функцию проверки на подключение к интернету
Но подлагивает при проверке, ставил в цикл сразу без scm, тоже лаги
Надеюсь я ошибся и можно это исправить
Код:
:SCM_InternetCheckConnectionA  // call @SCM_InternetCheckConnectionA 3 0@ 1 0 1@   // 0@ - ссылка // 1@ = code
0AA2: 25@ = load_library "Wininet.dll"
0AA4: 26@ = get_proc_address "InternetCheckConnectionA" library 25@
0AA7: call_function 26@ num_params 3 pop FALSE | dword_0 2@ | dword_1 1@ | URL 0@ | _errorCode 27@ |
0AA3: free_library 25@
0AB2: RET 1 | _errorCode 27@ |
Это возможно исправить только вызывая в отдельном потоке. В клео это будет костылями.
 

romanblinov2013

RB_PRO
Проверенный
212
196
Добрый вечер. У меня возник небольшой вопросик... Как мне выгрузить объект 3864 из игры? Чтобы для меня его просто не было.
Заранее спасибо за ответ. Ваш Роман.

P.S.
0249
0108
Пробовал
 

LUCHARE

Известный
Друг
545
688
Добрый вечер. У меня возник небольшой вопросик... Как мне выгрузить объект 3864 из игры? Чтобы для меня его просто не было.
Заранее спасибо за ответ. Ваш Роман.

P.S.
0249
0108
Пробовал
Сканировать объекты в зоне стрима и удалять при совпадении модели
 

hnnssy

Известный
Друг
2,684
2,753
Добрый вечер. У меня возник небольшой вопросик... Как мне выгрузить объект 3864 из игры? Чтобы для меня его просто не было.
Заранее спасибо за ответ. Ваш Роман.

P.S.
0249
0108
Пробовал
ставить хук на createobject и возвращать false, если модель совпадает с 3864
на луа легче реализовать будет
 

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Помогите почему не работает хук ? проблема в том что при отключении хук не отключается...
CLEO:
{$CLEO}
0000:
while not Samp.Available()
    wait 0
end
0BE3: raknet setup_incoming_rpc_hook @HOOK
0B34: samp register_client_command "test" to_label @Xor
0BDE: pause_thread 0

:HOOK
if 0@ == 1
    then
    0BE5: raknet 3@ = get_hook_param 1
    if 3@ == 61
        then
        0BE5: raknet 3@ = get_hook_param 0
        0BE7: raknet 11@ = bit_stream_read 3@ type 2
        0BE7: raknet 12@ = bit_stream_read 3@ type 0
        0BE7: raknet 13@ = bit_stream_read 3@ type 0
        call @SCM 2 13@ 1 14@
        0BE8: raknet bit_stream 3@ read_array 14@ size 13@
        0BE7: raknet 13@ = bit_stream_read 3@ type 0
        call @SCM 2 13@ 1 15@
        0BE8: raknet bit_stream 3@ read_array 15@ size 13@
        0BE7: raknet 13@ = bit_stream_read 3@ type 0
        call @SCM 2 13@ 1 16@
        0B2E: 19@ = read_samp_memory offset 52144 size 2
        0B2D: write_samp_memory offset 52144 value 50064 size 2      
end
0AC9: free_allocated_memory 6@

end
0BE0: raknet hook_ret 1

:SCM
005A: 0@ += 1@
0AC8: 2@ = allocate_memory_size 0@
0C11: memset destination 2@ value 0 size 0@
0AB2: ret 1 2@

:Xor
0B12: 0@ = 0@ XOR 1
if 0@ == 1
    then
    0af8: "Вкл" -1
else
    0af8: "Выкл" -1
    0B2D: write_samp_memory offset 52144 value 19@ size 2
end
Samp.CmdRet()
 
Последнее редактирование:

D3.Pheonix

🎹
Модератор
2,823
1,604
CLEO:
// код
00D6: if and
0C29: 10@ = stristr string1 2@ string2 "ASD"
0C29: 10@ = stristr string1 2@ string2 25@
004D: jump_if_false
// код
Если этот скан опкод использовать без условия, то как он будет работать, если допустим не найдет искомый текст в строке, или если найдет
 

Romelo

dev.
Проверенный
540
624
Помогите почему не работает хук ? проблема в том что при отключении хук не отключается...
CLEO:
{$CLEO}
0000:
while not Samp.Available()
    wait 0
end
0BE3: raknet setup_incoming_rpc_hook @HOOK
0B34: samp register_client_command "test" to_label @Xor
0BDE: pause_thread 0

:HOOK
if 0@ == 1
    then
    0BE5: raknet 3@ = get_hook_param 1
    if 3@ == 61
        then
        0BE5: raknet 3@ = get_hook_param 0
        0BE7: raknet 11@ = bit_stream_read 3@ type 2
        0BE7: raknet 12@ = bit_stream_read 3@ type 0
        0BE7: raknet 13@ = bit_stream_read 3@ type 0
        call @SCM 2 13@ 1 14@
        0BE8: raknet bit_stream 3@ read_array 14@ size 13@
        0BE7: raknet 13@ = bit_stream_read 3@ type 0
        call @SCM 2 13@ 1 15@
        0BE8: raknet bit_stream 3@ read_array 15@ size 13@
        0BE7: raknet 13@ = bit_stream_read 3@ type 0
        call @SCM 2 13@ 1 16@
        0B2E: 19@ = read_samp_memory offset 52144 size 2
        0B2D: write_samp_memory offset 52144 value 50064 size 2      
end
0AC9: free_allocated_memory 6@

end
0BE0: raknet hook_ret 1

:SCM
005A: 0@ += 1@
0AC8: 2@ = allocate_memory_size 0@
0C11: memset destination 2@ value 0 size 0@
0AB2: ret 1 2@

:Xor
0B12: 0@ = 0@ XOR 1
if 0@ == 1
    then
    0af8: "Вкл" -1
else
    0af8: "Выкл" -1
    0B2D: write_samp_memory offset 52144 value 19@ size 2
end
Samp.CmdRet()
Не используй нопы, тупая трата переменных (Хотя я сам раньше так делал)

Запоминай айди диалога, и ставь запрет на его показ
CLEO:
0BE0: raknet hook_ret 0
 

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Не используй нопы, тупая трата переменных (Хотя я сам раньше так делал)

Запоминай айди диалога, и ставь запрет на его показ
CLEO:
0BE0: raknet hook_ret 0
Не работает =(
CLEO:
{$CLEO}
0000:
while not Samp.Available()
    wait 0
end
0BE3: raknet setup_incoming_rpc_hook @HOOK
0B34: samp register_client_command "test" to_label @Xor
0B34: samp register_client_command "test1" to_label @Main
0BDE: pause_thread 0

:HOOK
if 0@ == 1
    then
    0BE5: raknet 3@ = get_hook_param 1
    if and
    3@ == 61
    0B4C: samp is_dialog_active 800
        then
        0BE5: raknet 3@ = get_hook_param 0
        0BE7: raknet 11@ = bit_stream_read 3@ type 2
        0BE7: raknet 12@ = bit_stream_read 3@ type 0
        0BE7: raknet 13@ = bit_stream_read 3@ type 0
        call @SCM 2 13@ 1 14@ 
        0BE8: raknet bit_stream 3@ read_array 14@ size 13@
        0BE7: raknet 13@ = bit_stream_read 3@ type 0
        call @SCM 2 13@ 1 15@ 
        0BE8: raknet bit_stream 3@ read_array 15@ size 13@
        0BE7: raknet 13@ = bit_stream_read 3@ type 0      
end
0AC9: free_allocated_memory 6@

end
0BE0: raknet hook_ret 1

:SCM
005A: 0@ += 1@
0AC8: 2@ = allocate_memory_size 0@
0C11: memset destination 2@ value 0 size 0@
0AB2: ret 1 2@

:Xor
0B12: 0@ = 0@ XOR 1
if 0@ == 1
    then
    0af8: "Âêë" -1
else
    0af8: "Âûêë" -1
end 
Samp.CmdRet()

:Main
alloc 30@ 128
0B5B: samp get_listbox_item 0 text_to 30@
0af8: "%s" -1 30@
0B5B: samp get_listbox_item 1 text_to 30@
0af8: "%s" -1 30@
0B4E: samp 29@ = get_current_dialog_id
0BC9: samp send_dialog_response dialog 29@ button 1 listitem 0 input 0
free 30@
Samp.CmdRet()
 

BlackKnigga

Известный
BH Team
922
445
CLEO:
// код
00D6: if and
0C29: 10@ = stristr string1 2@ string2 "ASD"
0C29: 10@ = stristr string1 2@ string2 25@
004D: jump_if_false
// код
Если этот скан опкод использовать без условия, то как он будет работать, если допустим не найдет искомый текст в строке, или если найдет
Если найдёт то в 10@ запишется указатель на первое вхождение, если нет то ноль. Смотри бх вики
 
1,417
1,030
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:
repeat
wait 0
until 0AFA:

0B34: samp register_client_command "test" to_label @Xor
0B34: samp register_client_command "test1" to_label @Main

0BE3: raknet setup_incoming_rpc_hook @IN_RPC
0BDE: pause_thread 0

:IN_RPC
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
IF AND
30@ == 1
0@ == RPC_SCRSHOWDIALOG
THEN
    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM
    0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_SHORT // dialog id
    IF 2@ == 800
    THEN
        0BE7: raknet 3@ = bit_stream_read 1@ type BS_TYPE_BYTE  // style
        0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_BYTE 
        0AB1: call @allocate_memory 2 size 4@ reserve 1 ret_to 5@ // title
        0BE8: raknet bit_stream 1@ read_array 5@ size 4@
        0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_BYTE  
        0AB1: call @allocate_memory 2 size 4@ reserve 1 ret_to 6@ // button1
        0BE8: raknet bit_stream 1@ read_array 6@ size 4@   
        0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_BYTE
        0AB1: call @allocate_memory 2 size 4@ reserve 1 ret_to 7@ // button1
        0BE8: raknet bit_stream 1@ read_array 7@ size 4@  
        0AB1: call @allocate_memory 2 size 4096 reserve 1 ret_to 8@ // text
        0BF4: raknet bit_stream 1@ decode_string 8@ size 4096
       
        0AC9: free_allocated_memory 5@
        0AC9: free_allocated_memory 6@
        0AC9: free_allocated_memory 7@
        0AC9: free_allocated_memory 8@
    END
END
0BE0: raknet hook_ret true

:allocate_memory // call @allocate_memory 2 size 0@ reserve 1@ ret_to 2@
005A: 0@ += 1@
0AC8: 2@ = allocate_memory_size 0@
0C11: memset destination 2@ value 0 size 0@
0AB2: ret 1 2@

:cmd
0B12: 30@ = 30@ XOR 1
if 30@ == 1
    then
    0af8: "Âêë" -1
else
    0af8: "Âûêë" -1
end
0B43: samp cmd_ret

:Main
alloc 30@ 128
0B5B: samp get_listbox_item 0 text_to 30@
0af8: "%s" -1 30@
0B5B: samp get_listbox_item 1 text_to 30@
0af8: "%s" -1 30@
0B4E: samp 29@ = get_current_dialog_id
0BC9: samp send_dialog_response dialog 29@ button 1 listitem 0 input 0
free 30@
0B43: samp cmd_ret
 
  • Нравится
Реакции: LaRossa

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:
repeat
wait 0
until 0AFA:

0B34: samp register_client_command "test" to_label @Xor
0B34: samp register_client_command "test1" to_label @Main

0BE3: raknet setup_incoming_rpc_hook @IN_RPC
0BDE: pause_thread 0

:IN_RPC
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
IF AND
30@ == 1
0@ == RPC_SCRSHOWDIALOG
THEN
    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM
    0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_SHORT // dialog id
    IF 2@ == 800
    THEN
        0BE7: raknet 3@ = bit_stream_read 1@ type BS_TYPE_BYTE  // style
        0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_BYTE
        0AB1: call @allocate_memory 2 size 4@ reserve 1 ret_to 5@ // title
        0BE8: raknet bit_stream 1@ read_array 5@ size 4@
        0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_BYTE 
        0AB1: call @allocate_memory 2 size 4@ reserve 1 ret_to 6@ // button1
        0BE8: raknet bit_stream 1@ read_array 6@ size 4@  
        0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_BYTE
        0AB1: call @allocate_memory 2 size 4@ reserve 1 ret_to 7@ // button1
        0BE8: raknet bit_stream 1@ read_array 7@ size 4@ 
        0AB1: call @allocate_memory 2 size 4096 reserve 1 ret_to 8@ // text
        0BF4: raknet bit_stream 1@ decode_string 8@ size 4096
      
        0AC9: free_allocated_memory 5@
        0AC9: free_allocated_memory 6@
        0AC9: free_allocated_memory 7@
        0AC9: free_allocated_memory 8@
    END
END
0BE0: raknet hook_ret true

:allocate_memory // call @allocate_memory 2 size 0@ reserve 1@ ret_to 2@
005A: 0@ += 1@
0AC8: 2@ = allocate_memory_size 0@
0C11: memset destination 2@ value 0 size 0@
0AB2: ret 1 2@

:cmd
0B12: 30@ = 30@ XOR 1
if 30@ == 1
    then
    0af8: "Âêë" -1
else
    0af8: "Âûêë" -1
end
0B43: samp cmd_ret

:Main
alloc 30@ 128
0B5B: samp get_listbox_item 0 text_to 30@
0af8: "%s" -1 30@
0B5B: samp get_listbox_item 1 text_to 30@
0af8: "%s" -1 30@
0B4E: samp 29@ = get_current_dialog_id
0BC9: samp send_dialog_response dialog 29@ button 1 listitem 0 input 0
free 30@
0B43: samp cmd_ret
Диалог открывается и его видно.
 
1,417
1,030
Диалог открывается и его видно.
тебе просто надо сделать так, чтобы диалог с определенным идом не открывался? Если да, то
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:
repeat
wait 0
until 0AFA:

0B34: samp register_client_command "test" to_label @Xor
0B34: samp register_client_command "test1" to_label @Main

0BE3: raknet setup_incoming_rpc_hook @IN_RPC
0BDE: pause_thread 0

:IN_RPC
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
IF AND
30@ == 1
0@ == RPC_SCRSHOWDIALOG
THEN
    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM
    0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_SHORT // dialog id
    IF 2@ == 800
    THEN
       0BE0: false
    END
END
0BE0: raknet hook_ret true


:cmd
0B12: 30@ = 30@ XOR 1
if 30@ == 1
    then
    0af8: "Âêë" -1
else
    0af8: "Âûêë" -1
end
0B43: samp cmd_ret

:Main
alloc 30@ 128
0B5B: samp get_listbox_item 0 text_to 30@
0af8: "%s" -1 30@
0B5B: samp get_listbox_item 1 text_to 30@
0af8: "%s" -1 30@
0B4E: samp 29@ = get_current_dialog_id
0BC9: samp send_dialog_response dialog 29@ button 1 listitem 0 input 0
free 30@
0B43: samp cmd_ret
 

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
тебе просто надо сделать так, чтобы диалог с определенным идом не открывался? Если да, то
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:
repeat
wait 0
until 0AFA:

0B34: samp register_client_command "test" to_label @Xor
0B34: samp register_client_command "test1" to_label @Main

0BE3: raknet setup_incoming_rpc_hook @IN_RPC
0BDE: pause_thread 0

:IN_RPC
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
IF AND
30@ == 1
0@ == RPC_SCRSHOWDIALOG
THEN
    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM
    0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_SHORT // dialog id
    IF 2@ == 800
    THEN
       0BE0: false
    END
END
0BE0: raknet hook_ret true


:cmd
0B12: 30@ = 30@ XOR 1
if 30@ == 1
    then
    0af8: "Âêë" -1
else
    0af8: "Âûêë" -1
end
0B43: samp cmd_ret

:Main
alloc 30@ 128
0B5B: samp get_listbox_item 0 text_to 30@
0af8: "%s" -1 30@
0B5B: samp get_listbox_item 1 text_to 30@
0af8: "%s" -1 30@
0B4E: samp 29@ = get_current_dialog_id
0BC9: samp send_dialog_response dialog 29@ button 1 listitem 0 input 0
free 30@
0B43: samp cmd_ret
Не совсем. Мне надо что бы он визуально не открылся. Ну блин что бы я не видел диалог а cloe могло с ним работать...