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

kraft1k

Вынь х*й из головы и все получится © hnnssy
Друг
1,479
1,163
Покажи весь свой код.
[SHOWTOGROUPS=8,6]
Читает только последнюю строку. http://prntscr.com/92ti8j http://prntscr.com/92tic8
Код:
{$CLEO .cs}
0000: NOP                             

0662: printstring "kraft1k"  0x33FFCC

repeat
wait 0
until SAMP.Available()
0B34: samp register_client_command "drugsbot" to_label @Dialog

While True
wait 0
if 10@ == 1
then
say "/makedrugs"
wait 600
if
SAMP.IsDialogActive(3684)
then
alloc 0@ 1024
alloc 2@ 1024
alloc 3@ 1024
  memset 0@ 0x0 1024
  0BD7: samp get_dialog_text 0@
  0A9A: 1@ = openfile "CLEO\dialogtext.txt" mode "wt"
  0AD8: write_string_to_file 1@ from 0@
  0A9B: closefile 1@
if
SAMP.IsDialogActive(3684)
then
0A9A: 1@ = openfile "CLEO\dialogtext.txt" mode "rt"
repeat
    0AD7: read_string_from_file 1@ to 2@ size 1024
    if and
        0C18: 0 = strstr string1 2@ string2 "подлежит"
        0AD4: 0@ = scan_string 2@ format "%d" 3@
    then
        break
    end
until 0AD6: end_of_file 1@ reached
0AF1: write_int 3@ to_ini_file "CLEO\number.ini" section "data" key "Number" // запись
if
SAMP.IsDialogActive(3684)
then
0AC8: 4@ = allocate_memory_size 210
0AF4: 4@ = read_string_from_ini_file "CLEO\number.ini" section "data" key "Number"
SAMP.SetDialogInputBoxText(4@)
SAMP.CloseDialog(3684)
0AC9: free_allocated_memory 4@
0A9B: closefile 1@
wait 200
end
end
end
end
end

:Dialog
0B12: 10@ = 10@ XOR 1
if 10@ == 1
then
0acd: "[Kraft1k]DRUGS BOT ~r~ON" 1500
else
0acd: "[Kraft1k]DRUGS BOT ~r~OFF" 1500
end
SAMP.Cmdret()
[/SHOWTOGROUPS]
 

Vovich

HOT
Проверенный
717
197
Думал изи, хер там. Как мне получить из ника отдельно имя, и отдельно фамилию?
CLEO:
{$CLEO .cs}
0000:
repeat
wait 150
until 0afa:
0B34: samp register_client_command "formats" to_label @cmd
alloc 1@ 128
alloc 3@ 128
while true
wait 0
if 22@ == 1
then
0B36: samp 2@ = get_player_nickname 5@
wait 400
0AA5: call 0x8220AD num_params 4 pop 4 params 1@ 3@ "%s_%s" 2@
wait 400
chatmsg "Original: %s" color -1 2@
chatmsg "Copy: %s è %s" color -1 3@ 1@
22@ = 0
end
end

:cmd
0B35: samp 0@ = get_last_command_params
0AD4: 13@ = scan_string 0@ format "%d" 5@
22@ = 1
SAMP.CmdRet()
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
0AA5: call 0x8220AD num_params 4 pop 4 params 1@3@"%[A-Za-z]_%[A-Za-z]"2@
 
  • Нравится
Реакции: Vovich

luckyFOX

Ушёл.
328
477
А вот например я занёс в переменную последнее сообщение чата и хочу проверить, есть ли там слово "Привет!", именно это слово. Как можно это сделать?
 

hnnssy

Известный
Друг
2,684
2,750
А вот например я занёс в переменную последнее сообщение чата и хочу проверить, есть ли там слово "Привет!", именно это слово. Как можно это сделать?
Открыть клео-вики и искать нужный опкод.
 
  • Нравится
Реакции: Vovich

Art4D

Новичок
87
13
А вот например я занёс в переменную последнее сообщение чата и хочу проверить, есть ли там слово "Привет!", именно это слово. Как можно это сделать?
CLEO:
alloc 10@ 0x80
:Label
0B75: samp get_chat_string 99 text_to 10@ prefix_to 6@ color_to 7@ prefix_color_to 8@
if 0C18: 31@ = strstr string1 10@ string2 "Привет!"
jf @Label
Будет искать в последней строке "Привет!"(именно с воскл. знаком)
 

Art4D

Новичок
87
13
Пацаны, кто знает че за хрень, у меня функция получения имени пользователя не работает на windows 8, на винде 7 работает проверял с двух компов.
CLEO:
0AB1: call_scm_func @GetUserNameA 0 | User_Name 0@
0AC8: 1@ = allocate_memory_size 260
0AD3: 1@ = format "%s" 0@
0AF5: write_string 1@ to_ini_file "CLEO\MyName.INI" section "Main" key "User_Name"
0AC9: free_allocated_memory 1@
0A93: end_custom_thread

:GetUserNameA
0AA2: 25@ = load_library "Advapi32.DLL"
0AA4: 26@ = get_proc_address "GetUserNameA" library 25@
alloc 27@ 260
alloc 28@ 260
0AA5: call_function 26@ num_params 2 pop 0 lpBuffer 27@ lpnSize 28@
0AA3: free_library 25@
0AB2: ret 1 28@

UPD. Разобрался, на восьмой винде было 4.1 клео из-за него не работало
 
Последнее редактирование:

Vovich

HOT
Проверенный
717
197
Можно ли как-то узнать версию клео через клео-скрипт?
ну фактически то да, в файле CLEO.asi имеется информация о версии этого файла (это и есть версия клео).
Нужно правда функу писать, мне лень, посмотри мб у Таира в SCM есть это.
 

san0

Известный
Друг
411
267
ну фактически то да, в файле CLEO.asi имеется информация о версии этого файла (это и есть версия клео).
Нужно правда функу писать, мне лень, посмотри мб у Таира в SCM есть это.
А можно чекать размер
0A9C: 0@ = file $hFILE size
 
  • Нравится
Реакции: hnnssy