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

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,468
сделал так, но почему-то выдает мне
"Ник: Petr_Ivanov[15] | Телефон: 0".

CLEO:
while true
wait 0
0B75: samp get_chat_string 98 text_to 0@ prefix_to 1@ color_to 2@ prefix_color_to 3@
    if 0C18: 4@ = strstr string1 0@ string2 "| Отправил"
    then
    0AA5: call 0x8220AD num_params 5 pop 5 params 5@v 10@v 7@ "| Отправил %s[%d] (тел. %d)" 4@
    0A9A: 8@ = openfile "cleo\numbers.txt" mode "a"
    msg "{00ffff}%s{ffff00} (%d){f8f8ff} добавлен в список" 0xf8f8ff 7@ 5@
    0AD3: 9@ = format "Ник: %s | Телефон: %d%c" 7@ 5@ 0xA
    0AD8: write_string_to_file 8@ from 9@
    end
end
CLEO:
// http://cpp.sh/5motb

while true
wait 0
    0B75: samp get_chat_string 98 text_to 0@ prefix_to 1@ color_to 2@ prefix_color_to 3@
    if 0C18: 4@ = strstr string1 0@ string2 "| Отправил"
    then
        0AA7: call 0x8220AD num_params 4 pop 4 params 5@v 7@ "| Отправил %s (тел. %d)" 4@ scanned_params_to 30@
        if 30@ == 2
        then
            // Получаем ид из ника и удаляем его сразу же
            0C2C: 30@ = strrchr 7@ char 0x5B // [
            if 30@ <> 0
            then
                0A8C: write_memory 30@ size 1 value 0x0 virtual_protect 0
                30@++
                0C1A: 31@ = atoi 30@
                // ID хранится в 31@, строка с ником теперь без [<ID>]
            end
        
            0A9A: 8@ = openfile "cleo\numbers.txt" mode "a"
            msg "{00ffff}%s{ffff00} (%d){f8f8ff} добавлен в список" 0xf8f8ff 7@ 5@
            0AD3: 9@ = format "Ник: %s | Телефон: %d%c" 7@ 5@ 0xA
            0AD8: write_string_to_file 8@ from 9@
        end
    end
end
"| Отправил %s[%d] (тел. %d)" не подходит, т.к. в формат %s включает символы [ и ], и ник так же может их содержать. В луа есть поддержка регулярных выражений, поэтому там будем легче с подобными операциями(учитывая то, что есть некие базовые знания по regexp).
 
  • Нравится
Реакции: Clopster

FrediSaal

Известный
37
0
Вот еще вопрос, а почему при входе я вожу команду /mgun у меня не работает команда, а раньше работала.
{$CLEO .cs}
0000: NOP

:Cvet
0001: wait 0 ms
0AFA: is_samp_available
004D: jump_if_false @Cvet
0AF8: samp add_message_to_chat "{FF0000} CLEO - MGUN:{FFFF00} текст......... {00FFF7}by FrediSaal"
0A93: end_custom_thread
chatmsg "Введите /mgun [ид вашего оружия] [Кол-во патронов]." 0xFF0000
repeat
wait 0
until SAMP.Available()
0B34: samp register_client_command "mgun" to_label @M_GUN

repeat
wait 0
if 0@ == true
then
SAMP.IsCommandTyped(1@)
if 0AD4: 4@ = scan_string 1@ format "%d %d" 5@ 6@
then
if and
5@ > 0
5@ < 46
then
Model.Available(5@)
038B: load_requested_models
wait 500
01B2: give_actor $Player_Actor weapon 5@ ammo 6@
0@ = false
else
chatmsg "ID оружия от 1 - 46." 0xFF0000
0@ = false
end
else
chatmsg "Введи /mgun [ИД вышего гана] [кол-во патронов]." 0xFF0000
0@ = false
end
end

until false

:M_GUN
0@ = true
SAMP.CmdRet()

Хочу уточнить, что когда не было цветного кода, все было нормально, а когда вставил ..... mgun не стал работать, а цветной код работал.
:Cvet
0001: wait 0 ms
0AFA: is_samp_available
004D: jump_if_false @Cvet
0AF8: samp add_message_to_chat "{FF0000} CLEO - MGUN:{FFFF00} текст......... {00FFF7}by FrediSaal"
0A93: end_custom_thread
chatmsg "Введите /mgun [ид вашего оружия] [Кол-во патронов]." 0xFF0000
 

RedBoxWhite

Известный
337
27
Как сделать в чекере порядок по лвлу админа, ибо у меня идёт по иду? В чекере записан лвл админа, в игре показывает его лвл, всё окей. Но, как сделать порядок, чтобы писало примерно так:
[6] Nick_Admina[ID: 321]
[6] Nick_Admina2[ID: 444]
[5] Nick_Admina3[ID: 111]
И т.д
Вот у меня такой код:
CLEO:
while true
wait 0
    if 9@ == true
    then
    0AB4: 7@ = var 12
    0AB4: 10@ = var 13
    0AD3: 24@ = format "Admins online [%d]:" 20@
    0B6F: render font 21@ draw_text 24@ pos 7@ 10@ color -1
    20@ = 0
    005A: 10@ += 23@
        for 4@ = 0 to 999
            if 0B23: samp is_player_connected 4@
            then
            0B36: samp 5@ = get_player_nickname 4@
                for 2@ = 1 to 40
                0C1F: 6@ = string_array 3@ element 2@ size 24
                0AA5: call 0x8220AD num_params 4 pop 4 params 13@v 12@ "%s [%d]" 6@
                 
                    if 0C21: stricmp string1 12@ string2 5@
                    then
                        20@ += 1
                        0B20: samp 8@ = actor_handle_by_samp_player_id 4@
                        0B65: samp 11@ = player 4@ score
                        if 11@ == 0
                        then
                            005A: 10@ += 23@
                            0AD3: 22@ = format "[%d] %s [ID: %d]" 13@ 5@ 4@
                            0B6F: render font 21@ draw_text 22@ pos 7@ 10@ color 0xBEBEBEAA
                        end
                       
                        if 11@ >= 1
                        then
                            005A: 10@ += 23@
                            0AD3: 22@ = format "[%d] %s [ID: %d]" 13@ 5@ 4@
                            0B6F: render font 21@ draw_text 22@ pos 7@ 10@ color 0xff15a2ff
                        end
                    end
                end
            end
        end
    end
end
 

Zoxan_Twist

Новичок
126
29
Не раз видел что когда открываешь чужой CLEO скрипт, Sanny Builder показывает белый экран и больше ничего не происходит. Через какую программу они скривают код? Как она называется?
 

я воскрес

Активный
245
36
Не раз видел что когда открываешь чужой CLEO скрипт, Sanny Builder показывает белый экран и больше ничего не происходит. Через какую программу они скривают код? Как она называется?
в sanny builder. Активируем параметр IGNORE_UNKNOWN и SKIP_SCM_HEADER (Параметр CONSTANT_INDEXES активирован автоматически, его не отключать) - обход типо , а так почти все крипторы так делают
 

FrediSaal

Известный
37
0
Ребята , а как сделать менюшку для скрипта? Там к примеру в начале Я пишу кто разроботчик цетным, а делее пишу менюшку, где там будут написаны команды.
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,468
Как сделать в чекере порядок по лвлу админа, ибо у меня идёт по иду? В чекере записан лвл админа, в игре показывает его лвл, всё окей. Но, как сделать порядок, чтобы писало примерно так:
[6] Nick_Admina[ID: 321]
[6] Nick_Admina2[ID: 444]
[5] Nick_Admina3[ID: 111]
И т.д
Вот у меня такой код:
Сделать сортировку по лвлу. Создаем новый массив, пихаем туда по убыванию лвл, выводим.
 
  • Нравится
Реакции: RedBoxWhite

FrediSaal

Известный
37
0
СРОЧНО ВОТ НУЖНА ПОМОЩЬ, ПОЧЕМУ НЕ ТПХАЕТ, при вводе команды /mtp 1,2,3,4,5,6,7,8,10,11. Должно тпхать, но не телепортирует.
Код:
{$CLEO}
{$INCLUDE SF}

0AC6: 0@ = label @Buffer offset
0B34: samp register_client_command "MHELP" to_label @CMD
0BDE: pause_thread 0

0B34: samp register_client_command "mtp" to_label @M_TP1 

{$CLEO}
{$INCLUDE SF}

0AC6: 0@ = label @Buffer offset
0B34: samp register_client_command "MHELP" to_label @CMD
0BDE: pause_thread 0

0B34: samp register_client_command "mtp" to_label @M_TP1 

:CMD
0B3B: samp show_dialog id 420 caption "CLEO - TELEPORT (Äëÿ <M>) by FrediSaal" text 0@ button_1 "Закрыть" button_2 "" style 0 {DIALOG_STYLE_MSGBOX}0
0B43: samp cmd_ret


:Buffer
HEX
"{FFFFFF}" A
"{FFFFFF}" A
"{FFFFFF}" A
"{FFFFFF}" A
"{FFFFFF}/mtp [{00ff00}1{FFFFFF}] — Мэрия" A
"{FFFFFF}/mtp [{00ff00}2{FFFFFF}] — Карьер" A
"{FFFFFF}/mtp [{00ff00}3{FFFFFF}] — КХ" A
"{FFFFFF}/mtp [{00ff00}4{FFFFFF}] — ДБ - 1" A
"{FFFFFF}/mtp [{00ff00}5{FFFFFF}] — ТП к Сборам" A
"{FFFFFF}/mtp [{00ff00}6{FFFFFF}] — ТП к Арена - Смерти" A
"{FFFFFF}/mtp [{00ff00}7{FFFFFF}] — ТП к DmZona(Возле дома баллас)" A
"{FFFFFF}/mtp [{00ff00}8{FFFFFF}] — ТП к центральное аммо" A
"{FFFFFF}/mtp [{00ff00}9{FFFFFF}] — ТП к КФС VW" A
"{FFFFFF}/mtp [{00ff00}10{FFFFFF}] — ТП к КПП" A
"{FFFFFF}/mtp [{00ff00}11{FFFFFF}] — ТП к Батле (Локация)" A
"{FFFFFF}/mtp [{00ff00}12{FFFFFF}] — ТП к К.А.С.С (Локация)" A
"{FFFFFF}/mtp [{00ff00}13{FFFFFF}] — ТП к СтарКитс (Локация)" A
"{FFFFFF}" A
"{FFFFFF}" A
"{FFFFFF}" A
"{FFFFFF}" 00
END

:M_TP1
0B35: samp 5@ = get_last_command_params 
00D6: if 
0AD4: 5@ = scan_string 5@ format "%d" 6@  
00D6: if 
0039:   6@ == 1 
004D: jump_if_false @M_TP2 
00A1: put_actor $PLAYER_ACTOR at 1529.601 -1691.199 13.3828 
04BB: select_interior 0 
0860: link_actor $PLAYER_ACTOR to_interior 0 
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000  
0B43: samp cmd_ret 

:M_TP2
00D6: if 
0039:   6@ == 2 
004D: jump_if_false @M_TP3
00A1: put_actor $PLAYER_ACTOR at -1415.919 -299.2614 14.1484 
04BB: select_interior 0 
0860: link_actor $PLAYER_ACTOR to_interior 0 
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000  
0B43: samp cmd_ret 

:M_TP3
00D6: if 
0039:   6@ == 3 
004D: jump_if_false @M_TP4
00A1: put_actor $PLAYER_ACTOR at 1699.2 1435.1 10.7023 
04BB: select_interior 0 
0860: link_actor $PLAYER_ACTOR to_interior 0 
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000  
0B43: samp cmd_ret 

:M_TP4
00D6: if 
0039:   6@ == 4 
004D: jump_if_false @M_TP5
00A1: put_actor $PLAYER_ACTOR at -34.9047 73.1719 3.1172  0 
04BB: select_interior 0 
0860: link_actor $PLAYER_ACTOR to_interior 0 
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000  
0B43: samp cmd_ret 

:M_TP5
00D6: if 
0039:   6@ == 5 
004D: jump_if_false @M_TP6 
00A1: put_actor $PLAYER_ACTOR at -2070.719 -114.4683 35.3307 
04BB: select_interior 0 
0860: link_actor $PLAYER_ACTOR to_interior 0 
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000  
0B43: samp cmd_ret 

:M_TP6
00D6: if 
0039:   6@ == 6 
004D: jump_if_false @M_TP7
00A1: put_actor $PLAYER_ACTOR at -2182.189 -2400.578 30.625 
04BB: select_interior 0 
0860: link_actor $PLAYER_ACTOR to_interior 0 
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000  
0B43: samp cmd_ret 

:M_TP7
00D6: if 
0039:   6@ == 7 
004D: jump_if_false @M_TP8
00A1: put_actor $PLAYER_ACTOR at -2310.136 -1653.352 483.695 
04BB: select_interior 0 
0860: link_actor $PLAYER_ACTOR to_interior 0 
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000  
0B43: samp cmd_ret 

:M_TP8
00D6: if 
0039:   6@ == 8 
004D: jump_if_false @M_TP9
00A1: put_actor $PLAYER_ACTOR at -1985.887 1128.901 53.1951 
04BB: select_interior 0 
0860: link_actor $PLAYER_ACTOR to_interior 0 
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000  
0B43: samp cmd_ret 

:M_TP9
00D6: if 
0039:   6@ == 9 
004D: jump_if_false @M_TP10 
00A1: put_actor $PLAYER_ACTOR at 2189.493 1621.152 1045.606 
04BB: select_interior 2 
0860: link_actor $PLAYER_ACTOR to_interior 2 
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000  
0B43: samp cmd_ret 

:M_TP10
00D6: if 
0039:   6@ == 10 
004D: jump_if_false @M_TP11
00A1: put_actor $PLAYER_ACTOR at 2127.461 2375.477 10.8203 
04BB: select_interior 0 
0860: link_actor $PLAYER_ACTOR to_interior 0 
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000  
0B43: samp cmd_ret 

:M_TP11
00D6: if 
0039:   6@ == 11 
004D: jump_if_false @M_TP12
00A1: put_actor $PLAYER_ACTOR at -1175.457 -992.69 129.2188 
04BB: select_interior 0 
0860: link_actor $PLAYER_ACTOR to_interior 0 
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000  
0B43: samp cmd_ret 

:M_TP12
00D6: if 
0039:   6@ == 12 
004D: jump_if_false @M_TP13
00A1: put_actor $PLAYER_ACTOR at -1975.728 216.8129 27.3637 
04BB: select_interior 0 
0860: link_actor $PLAYER_ACTOR to_interior 0 
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000  
0B43: samp cmd_ret 

:M_TP13
00D6: if 
0039:   6@ == 13 
004D: jump_if_false @M_TP14
00A1: put_actor $PLAYER_ACTOR at 1232.748 -1260.802 13.8679 
04BB: select_interior 0 
0860: link_actor $PLAYER_ACTOR to_interior 0 
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000  
0B43: samp cmd_ret 

:M_TP14
0B43: samp cmd_ret
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,983
Ясное дело ты поставил скрипт на паузу а после этого ставишь опкод
 

BlackKnigga

Известный
BH Team
922
446
СРОЧНО ВОТ НУЖНА ПОМОЩЬ, ПОЧЕМУ НЕ ТПХАЕТ, при вводе команды /mtp 1,2,3,4,5,6,7,8,10,11. Должно тпхать, но не телепортирует.
Код:
{$CLEO}
{$INCLUDE SF}

0AC6: 0@ = label @Buffer offset
0B34: samp register_client_command "MHELP" to_label @CMD
0BDE: pause_thread 0

0B34: samp register_client_command "mtp" to_label @M_TP1

:CMD
0B3B: samp show_dialog id 420 caption "CLEO - TELEPORT (Äëÿ <M>) by FrediSaal" text 0@ button_1 "Çàêðûòü" button_2 "" style 0 {DIALOG_STYLE_MSGBOX}0
0B43: samp cmd_ret


:Buffer
HEX
"{FFFFFF}" A
"{FFFFFF}" A
"{FFFFFF}" A
"{FFFFFF}" A
"{FFFFFF}/mtp [{00ff00}1{FFFFFF}] — Ìýðèÿ" A
"{FFFFFF}/mtp [{00ff00}2{FFFFFF}] — Êàðüåð" A
"{FFFFFF}/mtp [{00ff00}3{FFFFFF}] — ÊÕ" A
"{FFFFFF}/mtp [{00ff00}4{FFFFFF}] — ÄÁ - 1" A
"{FFFFFF}/mtp [{00ff00}5{FFFFFF}] — ÒÏ ê Ñáîðàì" A
"{FFFFFF}/mtp [{00ff00}6{FFFFFF}] — ÒÏ ê Àðåíå - Ñìåðòè" A
"{FFFFFF}/mtp [{00ff00}7{FFFFFF}] — ÒÏ ê DmZona(Âîçëå äîìà áàëëàñ)" A
"{FFFFFF}/mtp [{00ff00}8{FFFFFF}] — ÒÏ ê öåíòðàëüíîìó àììî" A
"{FFFFFF}/mtp [{00ff00}9{FFFFFF}] — ÒÏ ê ÊÔÑ VW" A
"{FFFFFF}/mtp [{00ff00}10{FFFFFF}] — ÒÏ ê ÊÏÏ" A
"{FFFFFF}/mtp [{00ff00}11{FFFFFF}] — ÒÏ ê Áàòëå (Ëîêàöèÿ)" A
"{FFFFFF}/mtp [{00ff00}12{FFFFFF}] — ÒÏ ê Ê.À.Ñ.Ñ (Ëîêàöèÿ)" A
"{FFFFFF}/mtp [{00ff00}13{FFFFFF}] — ÒÏ ê ÑòàðÊèòñ (Ëîêàöèÿ)" A
"{FFFFFF}" A
"{FFFFFF}" A
"{FFFFFF}" A
"{FFFFFF}" 00
END

:M_TP1
0B35: samp 5@ = get_last_command_params
00D6: if
0AD4: 5@ = scan_string 5@ format "%d" 6@ 
00D6: if
0039:   6@ == 1
004D: jump_if_false @M_TP2
00A1: put_actor $PLAYER_ACTOR at 1529.601 -1691.199 13.3828
04BB: select_interior 0
0860: link_actor $PLAYER_ACTOR to_interior 0
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000 
0B43: samp cmd_ret

:M_TP2
00D6: if
0039:   6@ == 2
004D: jump_if_false @M_TP3
00A1: put_actor $PLAYER_ACTOR at -1415.919 -299.2614 14.1484
04BB: select_interior 0
0860: link_actor $PLAYER_ACTOR to_interior 0
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000 
0B43: samp cmd_ret

:M_TP3
00D6: if
0039:   6@ == 3
004D: jump_if_false @M_TP4
00A1: put_actor $PLAYER_ACTOR at 1699.2 1435.1 10.7023
04BB: select_interior 0
0860: link_actor $PLAYER_ACTOR to_interior 0
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000 
0B43: samp cmd_ret

:M_TP4
00D6: if
0039:   6@ == 4
004D: jump_if_false @M_TP5
00A1: put_actor $PLAYER_ACTOR at -34.9047 73.1719 3.1172  0
04BB: select_interior 0
0860: link_actor $PLAYER_ACTOR to_interior 0
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000 
0B43: samp cmd_ret

:M_TP5
00D6: if
0039:   6@ == 5
004D: jump_if_false @M_TP6
00A1: put_actor $PLAYER_ACTOR at -2070.719 -114.4683 35.3307
04BB: select_interior 0
0860: link_actor $PLAYER_ACTOR to_interior 0
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000 
0B43: samp cmd_ret

:M_TP6
00D6: if
0039:   6@ == 6
004D: jump_if_false @M_TP7
00A1: put_actor $PLAYER_ACTOR at -2182.189 -2400.578 30.625
04BB: select_interior 0
0860: link_actor $PLAYER_ACTOR to_interior 0
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000 
0B43: samp cmd_ret

:M_TP7
00D6: if
0039:   6@ == 7
004D: jump_if_false @M_TP8
00A1: put_actor $PLAYER_ACTOR at -2310.136 -1653.352 483.695
04BB: select_interior 0
0860: link_actor $PLAYER_ACTOR to_interior 0
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000 
0B43: samp cmd_ret

:M_TP8
00D6: if
0039:   6@ == 8
004D: jump_if_false @M_TP9
00A1: put_actor $PLAYER_ACTOR at -1985.887 1128.901 53.1951
04BB: select_interior 0
0860: link_actor $PLAYER_ACTOR to_interior 0
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000 
0B43: samp cmd_ret

:M_TP9
00D6: if
0039:   6@ == 9
004D: jump_if_false @M_TP10
00A1: put_actor $PLAYER_ACTOR at 2189.493 1621.152 1045.606
04BB: select_interior 2
0860: link_actor $PLAYER_ACTOR to_interior 2
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000 
0B43: samp cmd_ret

:M_TP10
00D6: if
0039:   6@ == 10
004D: jump_if_false @M_TP11
00A1: put_actor $PLAYER_ACTOR at 2127.461 2375.477 10.8203
04BB: select_interior 0
0860: link_actor $PLAYER_ACTOR to_interior 0
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000 
0B43: samp cmd_ret

:M_TP11
00D6: if
0039:   6@ == 11
004D: jump_if_false @M_TP12
00A1: put_actor $PLAYER_ACTOR at -1175.457 -992.69 129.2188
04BB: select_interior 0
0860: link_actor $PLAYER_ACTOR to_interior 0
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000 
0B43: samp cmd_ret

:M_TP12
00D6: if
0039:   6@ == 12
004D: jump_if_false @M_TP13
00A1: put_actor $PLAYER_ACTOR at -1975.728 216.8129 27.3637
04BB: select_interior 0
0860: link_actor $PLAYER_ACTOR to_interior 0
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000 
0B43: samp cmd_ret

:M_TP13
00D6: if
0039:   6@ == 13
004D: jump_if_false @M_TP14
00A1: put_actor $PLAYER_ACTOR at 1232.748 -1260.802 13.8679
04BB: select_interior 0
0860: link_actor $PLAYER_ACTOR to_interior 0
0AD1: show_formatted_text_highpriority "~g~Teleport" time 1000 
0B43: samp cmd_ret

:M_TP14
0B43: samp cmd_ret
Команда "mtp" не зарегистрирована. Скрипт приостанавливается перед ее регистрацией.
 

FrediSaal

Известный
37
0
Вот так?
Код:
0AC6: 0@ = label @SAM_TP
0B34: samp register_client_command "mtp" to_label @M_TP1 
0BDE: pause_thread 0