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

AWRage

Активный
642
141
где присвоение? я чет слепой, опкод 0B12 присваевает переменной 5@ значение, допустим 0B12: 5@ = 2 XOR 1 будет записывать в 5@ число либо 2, либо 1 методом рандома, а в 5@ у тебя нет значенияи ты пытаешься присвоить либо 1, либо nil.
0 это тоже значение.
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
Диалоги, ид которых равен 1, не возвращают никаких данных при совершении каких-то действий. Используй другой.
 

RedBoxWhite

Известный
337
27
Почему фпс падает?
CLEO:
0B6D: render 21@ = create_font "Comic Sans MS" height 8 flags 5

0AC8: 3@ = allocate_memory_size 800
0AC8: 1@ = allocate_memory_size 20
0C11: memset destination 3@ value 0x0 size 800
0C11: memset destination 1@ value 0x0 size 20

if 0A9A: 0@ = openfile "cleo\admins\adm.txt" mode "r"
then
    for 2@ = 0 to 39
        if 0AD7: read_string_from_file 0@ to 1@ size 20
        then
            0C20: string_array 3@ element 2@ size 20 = 1@
            0C11: memset destination 1@ value 0 size 20
        end
    end
end
0A9B: closefile 0@
0AC9: free_allocated_memory 1@

alloc 22@ 30

0B34: samp register_client_command "1" to_label @CMD

while true
wait 0
if 0039:   9@ == false
then
7@ = 470
0B6F: render font 21@ draw_text "Admin's online:" pos 20 7@ color -1
    for 4@ = 0 to 999
        if 0B23: samp is_player_connected 4@
        then
        0B36: samp 5@ = get_player_nickname 4@
            for 2@ = 0 to 39
            0C1F: 6@ = string_array 3@ element 2@ size 20
                if 0C2C: 8@ = strrchr 6@ char 0xA
                then
                    0C11: memset destination 8@ value 0x0 size 1
                end
               
                if 0C21: stricmp string1 6@ string2 5@
                then
                    7@ += 15
                    0AD3: 22@ = format "%s [ID: %d]" 5@ 4@
                    0B6F: render font 21@ draw_text 22@ pos 20 7@ color -1
                end
            end
        end
    end
end
end

:CMD
0B12: 9@ = 9@ XOR 1
0B43: samp cmd_ret
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
Потому что это клео.
Цикл очень большой. Дели на несколько частей и между ними ставь задержку.
И почему нельзя делать все операции с элементами массива перед самой записью?
 

Dark_Knight

Me, me and me.
Друг
4,064
2,078
Если он поставит задержку, то скрин будет некоректно работать.
 

hnnssy

Известный
Друг
2,684
2,749
Почему фпс падает?
CLEO:
0B6D: render 21@ = create_font "Comic Sans MS" height 8 flags 5

0AC8: 3@ = allocate_memory_size 800
0AC8: 1@ = allocate_memory_size 20
0C11: memset destination 3@ value 0x0 size 800
0C11: memset destination 1@ value 0x0 size 20

if 0A9A: 0@ = openfile "cleo\admins\adm.txt" mode "r"
then
    for 2@ = 0 to 39
        if 0AD7: read_string_from_file 0@ to 1@ size 20
        then
            0C20: string_array 3@ element 2@ size 20 = 1@
            0C11: memset destination 1@ value 0 size 20
        end
    end
end
0A9B: closefile 0@
0AC9: free_allocated_memory 1@

alloc 22@ 30

0B34: samp register_client_command "1" to_label @CMD

while true
wait 0
if 0039:   9@ == false
then
7@ = 470
0B6F: render font 21@ draw_text "Admin's online:" pos 20 7@ color -1
    for 4@ = 0 to 999
        if 0B23: samp is_player_connected 4@
        then
        0B36: samp 5@ = get_player_nickname 4@
            for 2@ = 0 to 39
            0C1F: 6@ = string_array 3@ element 2@ size 20
                if 0C2C: 8@ = strrchr 6@ char 0xA
                then
                    0C11: memset destination 8@ value 0x0 size 1
                end
              
                if 0C21: stricmp string1 6@ string2 5@
                then
                    7@ += 15
                    0AD3: 22@ = format "%s [ID: %d]" 5@ 4@
                    0B6F: render font 21@ draw_text 22@ pos 20 7@ color -1
                end
            end
        end
    end
end
end

:CMD
0B12: 9@ = 9@ XOR 1
0B43: samp cmd_ret
удаляй символ переноса при записи имён в массив
 

MISTER_GONWIK

Всефорумный гонщик
Всефорумный модератор
1,260
1,740
Всё равно падает фпс.
клео движок не вытягивает 39к итераций, забудь вообще о цикле в цикле
чтобы фпс не падал, нужно прочитать весь файл, собрать из всех ников одну огромную строку с символом разделителем (к примеру пробел + важно чтоб строка начиналась и кончалась с пробелом)
а потом в цикле перебирать игроков и через опкод strstr() искать в огромной строке отформатированный ник в виде (пробел + ник + пробел -> " RedBoxWhite ")
 

hnnssy

Известный
Друг
2,684
2,749
клео движок не вытягивает 39к итераций, забудь вообще о цикле в цикле
чтобы фпс не падал, нужно прочитать весь файл, собрать из всех ников одну огромную строку с символом разделителем (к примеру пробел + важно чтоб строка начиналась и кончалась с пробелом)
а потом в цикле перебирать игроков и через опкод strstr() искать в огромной строке отформатированный ник в виде (пробел + ник + пробел -> " RedBoxWhite ")
у меня в чекере вытягивает чёт, так там 4 массива с никами
 

Durules

Новичок
6
0
Как сделать клео анимацию, чтобы ее видели другие игроки ? Возможно уже такой вопрос был, но мотать 260 страниц не очень хочется