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

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
При проверке фаила,берёт номер 1 предложения(Оно может быть не верным) не читает что дальше и записывает номер 1.
Код:
repeat
0AD7: read_string_from_file 1@ to 2@ size 1024
if 0AD4: 0@ = scan_string 2@ format "%d - {4BB85A}подлежит обработке{ffffff}" 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" // запись
http://prntscr.com/92e91x
Почему бы тебе не убрать назойливые HEX-цвета({XXXXXX}) из строки? Скрин не понятен вообще, это исходный читаемый файл или сам написал? Если и прикреплять файл, то целиком.
 

kraft1k

Вынь х*й из головы и все получится © hnnssy
Друг
1,479
1,163
Почему бы тебе не убрать назойливые HEX-цвета({XXXXXX}) из строки? Скрин не понятен вообще, это исходный читаемый файл или сам написал? Если и прикреплять файл, то целиком.
[SHOWTOGROUPS=8]https://www.dropbox.com/s/p9kg7k55zw1m0iv/botnarko.zip?dl=1
Вот пример окна делки нарко https://www.youtube.com/watch?v=-4BciCWAQKg[/SHOWTOGROUPS]
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
** Скрытый контент не может быть процитирован. **
В идеале было бы без костылей с файлами, а сразу работа со строками.

Для тебя будет идеально такое:
CLEO:
repeat
    0AD7: read_string_from_file 1@ to 2@ size 1024
    if 0C18: 0 = strstr string1 2@ string2 "подлежит"
    then
        //0AD4: 0@ = scan_string 2@ format "%d - {4BB85A}подлежит обработке{ffffff}" 3@
        0AD4: 0@ = scan_string 2@ format "%d" 3@
   
        break
    end
until 0AD6: end_of_file 1@ reached

CLEO:
{$CLEO}
{$INCLUDE SF}

const
    MAX_DIALOG_CONTENT = 4096
end

0001: wait 0 ms
0662: "by legend2360"
0662: "BlastHack - cheating is art"

while not SAMP.Available()
    wait 400
end

/*
Ex.:
    {ffffff}Введите номер куста со склада, который
    подлежит обработке
   
    315 - {4BB85A}пoдлeжит oбрaбoткe{ffffff}
    316 - ужe обрaбoтaн
    317 - ужe обрaбoтaн
    318 - ужe обрaбoтaн
    319 - ужe обрaбoтaн

*/

0AC6: 0@ = label @dialog_test offset
0B3B: samp show_dialog id 1000 caption "_" text 0@ button_1 "Close" button_2 "" style DIALOG_STYLE_MSGBOX

while true
    wait 0
    if and
        key 123
        SAMP.IsDialogActive(-1)
    then
        alloc 0@ MAX_DIALOG_CONTENT
        0C11: memset destination 0@ value 0 size MAX_DIALOG_CONTENT
        0BD7: samp get_dialog_text 0@
       
        call @split_text_by_newline 2 text 0@ function @_myfunction_split_callback
       
        free 0@
   
        while key 123
            wait 0
        end
    end
end

:dialog_test
hex
    "{ffffff}Введите номер куста со склада, который подлежит обработке\n"
    "\n"
    "315 - {4BB85A}пoдлeжит oбрaбoткe{ffffff}\n"
    "316 - ужe обрaбoтaн\n"
    "317 - ужe обрaбoтaн\n"
    "318 - ужe обрaбoтaн\n"
    "319 - ужe обрaбoтaн\0"
end

:_myfunction_split_callback
// 0@ - string
if 0C18: 0 = strstr string1 0@ string2 "пoдлeжит"
then
    0C1A: 1@ = atoi 0@

    0B79: samp set_chat_input_enabled true
   
    alloc 2@ 8
    0C1C: 2@ = itoa 1@ radix 10
    0B76: samp set_chat_input_text 2@
    free 2@
end
ret 0

:split_text_by_newline
// call @split_text_by_newline 2 text 0@ function 1@
if or 
    0@ == 0
    1@ == 0
then ret 0
end

0C17: 2@ = strlen 0@
if 2@ < 1
then ret 0
end

0A8E: 3@ = 2@ + 1

// allocate new buffer, because strtok replace delim to \0
0AC8: 4@ = allocate_memory_size 3@
0C0D: struct 4@ offset 3@ size 1 = 0x0
0C24: strncpy destination 4@ source 0@ size 2@

0AC7: 5@ = var 30@ offset
30@ = 0xA

0C16: 6@ = strtok string1 4@ string2 5@
while 6@ <> 0
    call 1@ 1 string 6@
    0C16: 6@ = strtok string1 0 string2 5@
end

0AC9: free_allocated_memory 4@
ret 0
 
  • Нравится
Реакции: kraft1k

Gabriel__

Известный
Проверенный
411
182
Как телепортироваться к игроку если он вне зоны стрима (в собейте есть такая комманда) ? Я думаю что телепорт происходит через маркеры на карте игрока.
 

VLnet

Новичок
16
0
Как отправить сообщение в чат, но чтоб видил не только я, грубо говоря програмно открыть окно чата, вписать текст и отправить
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
Хер пойми какой номер записывает. http://prntscr.com/92omv7
А мой способ,записывает число 1 строки.
http://prntscr.com/92ow2a http://prntscr.com/92ow73
CLEO:
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
 

kraft1k

Вынь х*й из головы и все получится © hnnssy
Друг
1,479
1,163
CLEO:
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
[SHOWTOGROUPS=8]
Читает только последнюю строку. http://prntscr.com/92ti8j http://prntscr.com/92tic8
, это наврено из-за 0C18: 0 = strstr string1 2@ string2 "подлежит" , 0 = последняя строка файла?
[/SHOWTOGROUPS]
 
Последнее редактирование: