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

nSTYLE

Известный
13
0
Внимательно прочитать тутор и включить мозги.
1) Нужно вызвать диалог по команде, а именно: чтоб опкод 0b3b: задействовался после ввода команды.
2) логично, что убрать опкод 0af8: , после выбора кнопки.
А вообще, не еби себе мозги и нам, если бы ты хотя бы немного практиковался со скриптами по проще, то у тебя бы не возникало таких дебильных вопросов.
Ты хочешь, чтоб велосипед ехал, но не имеешь колес и цепки.
У меня получилась такая байда что когда ввожу /com и выбираю пункт, то он срабатывает только при повторном вводе /com
CLEO:
{$CLEO}

const
    DIALOG_STYLE_LIST = 2
end

0000:

repeat
    wait 0
until SAMP.Available() // Îæèäàåì èíèöèàëèçàöèè ñòðóêòóð SAMP'à

0B34: samp register_client_command "com" to_label @com

repeat
wait 0
until false

:com
0AC8: 0@ = allocate_memory_size 64 // Âûäåëÿåì ïàìÿòü ïîä ñïèñîê ýëåìåíòîâ(êîë-âî òåêñòà äîëæíî áûòü íå áîëüøå 64 ñèìâîëîâ(ïðîáåëû è ïåðåõîäû íà íîâóþ ñòðîêó òîæå ðàâíû 1 ñèìâîëó))
0ad3: format_stirng 0@ = "Первый пункт%cВторой пункт%cТретий пункт" 0xA 0xA // Ñîçäàåì ñïèñîê, 0xA - îçíà÷àåò ïåðåõîä íà íîâóþ ñòðîêó, à %c óêàçûâàåòñÿ â ñàìîé ñòðîêå
0B3B: samp show_dialog id 17 caption "Локальный диалог" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
0AC9: free_allocated_memory 0@ // Îñâîáîæäàåì ïàìÿòü, áîëüøå íå íóæíà.
     
while true
    wait 0
    if 
        0B3C: samp is_dialog_responded id 17 button 1@ list_item 3@ input_text 0
    then  

           

            if 3@ == 0
            then 
            0AF9: samp say_msg "/команда"
           
                 
            end

            if 3@ == 1 // Áûë âûáðàí âòîðîé ïóíêò
            then 0AF9: samp say_msg "/команда"
            end

            if 3@ == 2 // Áûë âûáðàí òðåòèé ïóíêò
            then 0AF9: samp say_msg "/команда"
            end

           
    end
    SAMP.CmdRet()
end
 

BlackKnigga

Известный
BH Team
922
445
У меня получилась такая байда что когда ввожу /com и выбираю пункт, то он срабатывает только при повторном вводе /com
CLEO:
{$CLEO}

const
    DIALOG_STYLE_LIST = 2
end

0000:

repeat
    wait 0
until SAMP.Available() // Îæèäàåì èíèöèàëèçàöèè ñòðóêòóð SAMP'à

0B34: samp register_client_command "com" to_label @com

repeat
wait 0
until false

:com
0AC8: 0@ = allocate_memory_size 64 // Âûäåëÿåì ïàìÿòü ïîä ñïèñîê ýëåìåíòîâ(êîë-âî òåêñòà äîëæíî áûòü íå áîëüøå 64 ñèìâîëîâ(ïðîáåëû è ïåðåõîäû íà íîâóþ ñòðîêó òîæå ðàâíû 1 ñèìâîëó))
0ad3: format_stirng 0@ = "Первый пункт%cВторой пункт%cТретий пункт" 0xA 0xA // Ñîçäàåì ñïèñîê, 0xA - îçíà÷àåò ïåðåõîä íà íîâóþ ñòðîêó, à %c óêàçûâàåòñÿ â ñàìîé ñòðîêå
0B3B: samp show_dialog id 17 caption "Локальный диалог" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
0AC9: free_allocated_memory 0@ // Îñâîáîæäàåì ïàìÿòü, áîëüøå íå íóæíà.
   
while true
    wait 0
    if
        0B3C: samp is_dialog_responded id 17 button 1@ list_item 3@ input_text 0
    then

         

            if 3@ == 0
            then
            0AF9: samp say_msg "/команда"
         
               
            end

            if 3@ == 1 // Áûë âûáðàí âòîðîé ïóíêò
            then 0AF9: samp say_msg "/команда"
            end

            if 3@ == 2 // Áûë âûáðàí òðåòèé ïóíêò
            then 0AF9: samp say_msg "/команда"
            end

         
    end
    SAMP.CmdRet()
end
Так у тебя cmdret срабатывает, убери его и вставь после каждого 0af9.
 

RedBoxWhite

Известный
337
27
У меня есть скрипт, который действует таким образом: если видит в чате сообщений "Привет, Вася! (Victor_Krutoy)" и тогда он выводит в чат сообщение "Victor_Krutoy поздоровался с Васей."
Можно ли сделать так, чтобы если писал не Victor_Krutoy, а например Victor_Petux, то скрипт бы не срабатывал?
 

RedBoxWhite

Известный
337
27
Ну у тебя так и есть, если сканит на ту строчку
Возможно не так понял.
Вот код:
CLEO:
0B75: get_chat_string 99 text_to 2@ prefix_to 0 color_to 0 prefix_color_to 0
if 0C18: 0 = strstr string1 2@ string2 "Привет"
then
0AA5: call 0x8220AD num_params 4 pop 4 params 11@ 12@ "Привет, %s (%s)" 2@
0AD3: 2@ = format "%s приветствует %s" 11@ 12@
То есть оно любого игрока впишет, но надо чтобы игрока которого мне надо игнорировало (пример: Victor_Petux )
 
Последнее редактирование: