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

borya

Новичок
1
0
Поменять кнопку активации на F5
Код:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP
thread "SPRINGFIELD"
wait 5000
call @SPRINGFIELD_634 0
31@ = 0

:SPRINGFIELD_39
wait 0
if and
key_down 18
key_down 114
else_jump @SPRINGFIELD_190
0B12: 31@ = 31@ XOR 1
if
  31@ == 1
else_jump @SPRINGFIELD_134
call @SPRINGFIELD_255 0
printf "" 1337
wait 200
goto @SPRINGFIELD_190

:SPRINGFIELD_134
if
  31@ == 0
else_jump @SPRINGFIELD_190
call @SPRINGFIELD_415 0
printf "" 1337
wait 200

:SPRINGFIELD_190
if
  31@ == 1
else_jump @SPRINGFIELD_248
if
key_down 119
else_jump @SPRINGFIELD_248
call @SPRINGFIELD_415 0
wait 1000
call @SPRINGFIELD_255 0

:SPRINGFIELD_248
goto @SPRINGFIELD_39

:SPRINGFIELD_255
0AA2: 30@ = load_library "samp.dll" // IF and SET
0A8E: 1@ = 30@ + 457971 // int
0A8C: write_memory 1@ size 6 value -1869574000 virtual_protect 1
0A8E: 2@ = 30@ + 458004 // int
0A8C: write_memory 2@ size 6 value -1869574000 virtual_protect 1
0A8E: 3@ = 30@ + 458280 // int
0A8C: write_memory 3@ size 2 value 37008 virtual_protect 1
0A8E: 4@ = 30@ + 462648 // int
0A8C: write_memory 4@ size 2 value 37008 virtual_protect 1
0A8E: 5@ = 30@ + 462372 // int
0A8C: write_memory 5@ size 6 value -1869574000 virtual_protect 1
0AA3: free_library 30@
ret 0

:SPRINGFIELD_415
0AA2: 30@ = load_library "samp.dll" // IF and SET
0A8E: 1@ = 30@ + 457971 // int
0A8C: write_memory 1@ size 4 value 24216591 virtual_protect 1
0A8E: 2@ = 1@ + 4 // int
0A8C: write_memory 2@ size 2 value 0 virtual_protect 1
0A8E: 3@ = 30@ + 458004 // int
0A8C: write_memory 3@ size 4 value 22053903 virtual_protect 1
0A8E: 4@ = 3@ + 4 // int
0A8C: write_memory 4@ size 2 value 0 virtual_protect 1
0A8E: 5@ = 30@ + 458280 // int
0A8C: write_memory 5@ size 2 value 16500 virtual_protect 1
0A8E: 6@ = 30@ + 462648 // int
0A8C: write_memory 6@ size 2 value 24948 virtual_protect 1
0A8E: 7@ = 30@ + 462372 // int
0A8C: write_memory 7@ size 4 value 24218127 virtual_protect 1
0A8E: 8@ = 7@ + 4 // int
0A8C: write_memory 8@ size 2 value 0 virtual_protect 1
0AA3: free_library 30@
ret 0

:SPRINGFIELD_634
0AA2: 0@ = load_library "samp.dll" // IF and SET
0085: 1@ = 0@ // (int)
1@ += 2203876
0A8D: 3@ = read_memory 1@ size 4 virtual_protect 1
0085: 2@ = 0@ // (int)
2@ += 409616 
ret 0
 

astap_

Известный
Всефорумный модератор
626
597
Ребята, как сравнить TextDraw с нужным мне текстом? Вот строки в чате можно сравнивать при помощи опкодов 0c14, 0c18, а мне надо именно TextDraw, help me pls!
получаешь строку текстдрава и так же сравниваешь
CLEO:
0C5A: samp textdraw 0@ get_string_to 1@
Поменять кнопку активации на F5
Код:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP
thread "SPRINGFIELD"
wait 5000
call @SPRINGFIELD_634 0
31@ = 0

:SPRINGFIELD_39
wait 0
if and
key_down 18
key_down 114
else_jump @SPRINGFIELD_190
0B12: 31@ = 31@ XOR 1
if
  31@ == 1
else_jump @SPRINGFIELD_134
call @SPRINGFIELD_255 0
printf "" 1337
wait 200
goto @SPRINGFIELD_190

:SPRINGFIELD_134
if
  31@ == 0
else_jump @SPRINGFIELD_190
call @SPRINGFIELD_415 0
printf "" 1337
wait 200

:SPRINGFIELD_190
if
  31@ == 1
else_jump @SPRINGFIELD_248
if
key_down 119
else_jump @SPRINGFIELD_248
call @SPRINGFIELD_415 0
wait 1000
call @SPRINGFIELD_255 0

:SPRINGFIELD_248
goto @SPRINGFIELD_39

:SPRINGFIELD_255
0AA2: 30@ = load_library "samp.dll" // IF and SET
0A8E: 1@ = 30@ + 457971 // int
0A8C: write_memory 1@ size 6 value -1869574000 virtual_protect 1
0A8E: 2@ = 30@ + 458004 // int
0A8C: write_memory 2@ size 6 value -1869574000 virtual_protect 1
0A8E: 3@ = 30@ + 458280 // int
0A8C: write_memory 3@ size 2 value 37008 virtual_protect 1
0A8E: 4@ = 30@ + 462648 // int
0A8C: write_memory 4@ size 2 value 37008 virtual_protect 1
0A8E: 5@ = 30@ + 462372 // int
0A8C: write_memory 5@ size 6 value -1869574000 virtual_protect 1
0AA3: free_library 30@
ret 0

:SPRINGFIELD_415
0AA2: 30@ = load_library "samp.dll" // IF and SET
0A8E: 1@ = 30@ + 457971 // int
0A8C: write_memory 1@ size 4 value 24216591 virtual_protect 1
0A8E: 2@ = 1@ + 4 // int
0A8C: write_memory 2@ size 2 value 0 virtual_protect 1
0A8E: 3@ = 30@ + 458004 // int
0A8C: write_memory 3@ size 4 value 22053903 virtual_protect 1
0A8E: 4@ = 3@ + 4 // int
0A8C: write_memory 4@ size 2 value 0 virtual_protect 1
0A8E: 5@ = 30@ + 458280 // int
0A8C: write_memory 5@ size 2 value 16500 virtual_protect 1
0A8E: 6@ = 30@ + 462648 // int
0A8C: write_memory 6@ size 2 value 24948 virtual_protect 1
0A8E: 7@ = 30@ + 462372 // int
0A8C: write_memory 7@ size 4 value 24218127 virtual_protect 1
0A8E: 8@ = 7@ + 4 // int
0A8C: write_memory 8@ size 2 value 0 virtual_protect 1
0AA3: free_library 30@
ret 0

:SPRINGFIELD_634
0AA2: 0@ = load_library "samp.dll" // IF and SET
0085: 1@ = 0@ // (int)
1@ += 2203876
0A8D: 3@ = read_memory 1@ size 4 virtual_protect 1
0085: 2@ = 0@ // (int)
2@ += 409616
ret 0
это не стол заказов
 
  • Нравится
Реакции: 1fs1

astap_

Известный
Всефорумный модератор
626
597
В чем ошибка? Помогите исправить код пожалуйста. По идее я хотел, чтобы при вводе команды циклом for перебрать все существующие текстдравы и сравнить с тектом Advance, но что-то не так.
CLEO:
{$CLEO .cs}
0000:
repeat
wait 0
until samp.Available()
0B34: samp register_client_command "testkkk" to_label @cmd_mycmd

repeat
wait 0
    if 0@ == 1
    then
        for 1@ = 0 to 2048
        0C5A: samp textdraw 1@ get_string_to 2@
            if 0C18: 2@ = strstr string1 3@ string2 "Advance"
            then
            chatmsg "TextDraw - Advance îáíàðóæåí." 0xFFFFFF
            else
            chatmsg "TextDraw - Advance íå îáìàðóæåí." 0xFFFFFF
            end
        end
        0@ = 0
    end
until false

:cmd_mycmd
0@ = 1
samp.CmdRet()
1. не выделил память для строки
2. неправильно записал параметры для 0c18. Изучай: https://blast.hk/wiki/opcodes:0c18
p.s: лого адванса имеет ид 0
 
  • Нравится
Реакции: .Domen. и 1fs1

astap_

Известный
Всефорумный модератор
626
597
Исправил и всё заработало, но как сравнить не текст, а обычные цифры. У меня на сервере текстдрав с датой и временем. Вот такого формата 21-11-2013 22:00:03 это как пример. Вот мне надо сравнить, если будет 2013 22:00:03 , то продолжиться какое нибудь действие.
https://blast.hk/wiki/opcodes:0c14
 
  • Нравится
Реакции: 1fs1

Weeazy

Новичок
11
0
Код:
{$CLEO .cs} поч крашит
0000:
repeat
wait 0
until samp.Available()
0B34: samp register_client_command "cmd" to_label @cmd


repeat
wait 0
if 20@ == 1
then
0ac8: alloc 12@ size 564
0ad3: format_stirng 12@ = "%s%cCapture 1%cCapture 2%cMafiawar 1%cMafiawar 2%cMafiawar 3" 12@  0xA 0xA 0xA 0xA 0xA 0xA
0B3B: samp show_dialog id 223 caption "Flooder" text 12@ button_1 "Âûáðàòü" button_2 "Çàêðûòü" style 2
0ac9: free 12@
20@ = 0
end
if and
0B3C: samp is_dialog_responded id 223 button 11@ list_item 3@ input_text 0
11@ == 1
then
10@ = 1
wait 300
if 3@ == 1
then             wait 1
                say "/capture 1"
                wait 1
                say "/capture 1"
                wait 1
                say "/capture 1"
                wait 1
                say "/capture 1"
end
if 3@ == 2
then             wait 1
                say "/capture 2"
                wait 1
                say "/capture 2"
                wait 1
                say "/capture 2"
                wait 1
                say "/capture 2"
end
if 3@ == 3
then                 wait 1
                say "/mafiawar 3"
                wait 1
                say "/mafiawar 3"
                wait 1
                say "/mafiawar 3"
                wait 1
                say "/mafiawar 3"
end
if 3@ == 4
then                 wait 1
                say "/mafiawar 2"
                wait 1
                say "/mafiawar 2"
                wait 1
                say "/mafiawar 2"
                wait 1
                say "/mafiawar 2 "
end
if 3@ == 5
then                 wait 1
                say " /mafiawar 1"
                wait 1
                say " /mafiawar 1"
                wait 1
                say " /mafiawar 1"
                wait 1
                say " /mafiawar 1"
end
wait 1000
10@ = 0
end
until false

:cmd
20@ = 1
samp.CmdRet()

поч крашит
 
Последнее редактирование:

D[a]Ni

Участник
63
3
0ad3: format_stirng 12@ = "%s%cCapture 1%cCapture 2%cMafiawar 1%cMafiawar 2%cMafiawar 3" 12@ 0xA 0xA 0xA 0xA 0xA 0xA
у тебя после опкода 7 значений, а в строке только 6 %s %c просто убери одну 0xA

Код:
{$CLEO .cs} поч крашит
0000:
repeat
wait 0
until samp.Available()
0B34: samp register_client_command "cmd" to_label @cmd


repeat
wait 0
if 20@ == 1
then
0ac8: alloc 12@ size 564
0ad3: format_stirng 12@ = "%s%cCapture 1%cCapture 2%cMafiawar 1%cMafiawar 2%cMafiawar 3" 12@  0xA 0xA 0xA 0xA 0xA 0xA
0B3B: samp show_dialog id 223 caption "Flooder" text 12@ button_1 "Âûáðàòü" button_2 "Çàêðûòü" style 2
0ac9: free 12@
20@ = 0
end
if and
0B3C: samp is_dialog_responded id 223 button 11@ list_item 3@ input_text 0
11@ == 1
then
10@ = 1
wait 300
if 3@ == 1
then             wait 1
                say "/capture 1"
                wait 1
                say "/capture 1"
                wait 1
                say "/capture 1"
                wait 1
                say "/capture 1"
end
if 3@ == 2
then             wait 1
                say "/capture 2"
                wait 1
                say "/capture 2"
                wait 1
                say "/capture 2"
                wait 1
                say "/capture 2"
end
if 3@ == 3
then                 wait 1
                say "/mafiawar 3"
                wait 1
                say "/mafiawar 3"
                wait 1
                say "/mafiawar 3"
                wait 1
                say "/mafiawar 3"
end
if 3@ == 4
then                 wait 1
                say "/mafiawar 2"
                wait 1
                say "/mafiawar 2"
                wait 1
                say "/mafiawar 2"
                wait 1
                say "/mafiawar 2 "
end
if 3@ == 5
then                 wait 1
                say " /mafiawar 1"
                wait 1
                say " /mafiawar 1"
                wait 1
                say " /mafiawar 1"
                wait 1
                say " /mafiawar 1"
end
wait 1000
10@ = 0
end
until false

:cmd
20@ = 1
samp.CmdRet()

поч крашит
 

D[a]Ni

Участник
63
3
крч просто поставить вот эту строку за место своей
0ad3: format_stirng 12@ = "%s%cCapture 1%cCapture 2%cMafiawar 1%cMafiawar 2%cMafiawar 3" 12@ 0xA 0xA 0xA 0xA 0xA

У тебя типо после "%s%cCapture 1%cCapture 2%cMafiawar 1%cMafiawar 2%cMafiawar 3" стоит 7 значений, а в самой строке только 6 этих знаков процента
 

Weeazy

Новичок
11
0
крч просто поставить вот эту строку за место своей
0ad3: format_stirng 12@ = "%s%cCapture 1%cCapture 2%cMafiawar 1%cMafiawar 2%cMafiawar 3" 12@ 0xA 0xA 0xA 0xA 0xA

У тебя типо после "%s%cCapture 1%cCapture 2%cMafiawar 1%cMafiawar 2%cMafiawar 3" стоит 7 значений, а в самой строке только 6 этих знаков процента
все равно крашит

а все спс тебе
 

D[a]Ni

Участник
63
3
Как изменить цвет лого?
Тупо значение после color меняешь
upload_2019-3-9_11-52-47.png
N
 
  • Нравится
Реакции: FilthyFrank

FilthyFrank

Участник
52
5

Вложения

  • Screenshot_4.png
    Screenshot_4.png
    7.1 KB · Просмотры: 198

D[a]Ni

Участник
63
3
Как из переменной string в которой число 56 перенести в переменную int