Помогите решить проблему с командой!

Статус
В этой теме нельзя размещать новые ответы.

NIngaro

Известный
Автор темы
48
2
Объясните пожалуйста почему сей гениальный код не работает!
CLEO:
{$CLEO}
{$INCLUDE SF}
const
    DIALOG_STYLE_INPUT = 1
end
0000: NOP
wait 2000
0B34: samp register_client_command "aad" to_label @command
while true
    wait 0
end
:command
0B3B: samp show_dialog id 16 caption "Втрой диалог" text "А ниже поле для ввода" button_1 "Уря!" button_2 "Закрыть" style DIALOG_STYLE_INPUT
while true
    wait 0
    0AC8: 2@ = allocate_memory_size 128
    if
        0B3C:  samp is_dialog_responded id 16 button 1@ list_item 0 input_text 2@
    then
        0AF8: samp add_message_to_chat "Была нажата кнопка %d" color -1 params 1@
        if
            1@ == 1
        then
            0AF8: samp add_message_to_chat "А именно: Уря!" color -1
            0AF8: samp add_message_to_chat "Введеный текст: %s" color -1 params 2@
        else
            0AF8: samp add_message_to_chat "А именно : Закрыть" color -1
        end
    end
    0AC9: free_allocated_memory 2@
end
0B43: samp cmd_ret
 
Последнее редактирование:

BlackKnigga

Известный
BH Team
922
446
Объясните пожалуйста почему сей гениальный код не работает!
Lua:
{$CLEO}
{$INCLUDE SF}
const
    DIALOG_STYLE_INPUT = 1
end
0000: NOP
wait 2000
0B34: samp register_client_command "aad" to_label @command
while true
    wait 0
end
:command
0B3B: samp show_dialog id 16 caption "Втрой диалог" text "А ниже поле для ввода" button_1 "Уря!" button_2 "Закрыть" style DIALOG_STYLE_INPUT
while true
    wait 0
    0AC8: 2@ = allocate_memory_size 128
    if
        0B3C:  samp is_dialog_responded id 16 button 1@ list_item 0 input_text 2@
    then
        0AF8: samp add_message_to_chat "Была нажата кнопка %d" color -1 params 1@
        if
            1@ == 1
        then
            0AF8: samp add_message_to_chat "А именно: Уря!" color -1
            0AF8: samp add_message_to_chat "Введеный текст: %s" color -1 params 2@
        else
            0AF8: samp add_message_to_chat "А именно : Закрыть" color -1
        end
    end
    0AC9: free_allocated_memory 2@
end
0B43: samp cmd_ret
Потому что он ни разу не гениальный. Использовать циклы в теле команды - плохая идея. Тем более бесконечные.
 

hnnssy

Известный
Друг
2,684
2,762
CLEO:
{$CLEO}
{$INCLUDE SF}
const
    DIALOG_STYLE_INPUT = 1
end
0000: NOP
wait 2000
0B34: samp register_client_command "aad" to_label @command

0ac8: 2@ 128
0c11: 2@ 0x0 128

while true               
wait 0
if 0B3C:  samp is_dialog_responded id 16 button 1@ list_item 0 input_text 2@
then
    0AF8: samp add_message_to_chat "Была нажата кнопка %d" color -1 params 1@
    if 1@ == 1
    then
        0AF8: samp add_message_to_chat "А именно: Уря!" color -1
        0AF8: samp add_message_to_chat "Введеный текст: %s" color -1 params 2@
    else
        0AF8: samp add_message_to_chat "А именно : Закрыть" color -1
    end
    0c11: 2@ 0x0 128
end  
end

:command
0B3B: samp show_dialog id 16 caption "Втрой диалог" text "А ниже поле для ввода" button_1 "Уря!" button_2 "Закрыть" style DIALOG_STYLE_INPUT
0B43: samp cmd_ret
 

NIngaro

Известный
Автор темы
48
2
Потому что он ни разу не гениальный. Использовать циклы в теле команды - плохая идея. Тем более бесконечные.
А что делать если нужно после выполнения команды повторить одно и тоже действие несколько раз?
 

BlackKnigga

Известный
BH Team
922
446
А что делать если нужно после выполнения команды повторить одно и тоже действие несколько раз?
Например так:
CLEO:
{$CLEO}
0000: NOP
wait 2000
0B34: samp register_client_command "cmd" to_label @cmd
1@ = 0

while true            
    wait 0
    if 1@ == 1 then
        // действие по вводу команды
        1@ = 0
    end
end

:cmd
1@ = 1
0B43: samp cmd_ret
 

NIngaro

Известный
Автор темы
48
2
Например так:
CLEO:
{$CLEO}
0000: NOP
wait 2000
0B34: samp register_client_command "cmd" to_label @cmd
1@ = 0

while true           
    wait 0
    if 1@ == 1 then
        // действие по вводу команды
        1@ = 0
    end
end

:cmd
1@ = 1
0B43: samp cmd_ret
Но тут после ввода команды действие произойдет один раз и потом надо будет заново вводить команд

Например так:
CLEO:
{$CLEO}
0000: NOP
wait 2000
0B34: samp register_client_command "cmd" to_label @cmd
1@ = 0

while true          
    wait 0
    if 1@ == 1 then
        // действие по вводу команды
        1@ = 0
    end
end

:cmd
1@ = 1
0B43: samp cmd_ret

CLEO:
{$CLEO}
{$INCLUDE SF}
const
    DIALOG_STYLE_INPUT = 1
end
0000: NOP
wait 2000
0B34: samp register_client_command "aad" to_label @command
0ac8: 2@ 128
0c11: 2@ 0x0 128
0B3C:  samp is_dialog_responded id 312 button 0 list_item 0 input_text 2@
repeat
wait 250
0AF8: samp add_message_to_chat "/ad %s" color -1 params 2@
0B4E: samp 1@ = get_current_dialog_id
until 1@ == 413
0c11: 2@ 0x0 128
:command
0B3B: samp show_dialog id 312 caption "Ïîäà÷à îáúÿâëåíèé" text "Ââåäèòå îáúÿâëåíèå" button_1 "Îòïðàâèòü" button_2 "Çàêðûòü" style DIALOG_STYLE_INPUT
0B43: samp cmd_ret
Вот как такое сделать?
 

BlackKnigga

Известный
BH Team
922
446
Но тут после ввода команды действие произойдет один раз и потом надо будет заново вводить команд



CLEO:
{$CLEO}
{$INCLUDE SF}
const
    DIALOG_STYLE_INPUT = 1
end
0000: NOP
wait 2000
0B34: samp register_client_command "aad" to_label @command
0ac8: 2@ 128
0c11: 2@ 0x0 128
0B3C:  samp is_dialog_responded id 312 button 0 list_item 0 input_text 2@
repeat
wait 250
0AF8: samp add_message_to_chat "/ad %s" color -1 params 2@
0B4E: samp 1@ = get_current_dialog_id
until 1@ == 413
0c11: 2@ 0x0 128
:command
0B3B: samp show_dialog id 312 caption "Ïîäà÷à îáúÿâëåíèé" text "Ââåäèòå îáúÿâëåíèå" button_1 "Îòïðàâèòü" button_2 "Çàêðûòü" style DIALOG_STYLE_INPUT
0B43: samp cmd_ret
Вот как такое сделать?
Что это?
 

NIngaro

Известный
Автор темы
48
2
После ввода команды появляться диалог ты туда вводишь некую фразу, она соединится с командой /ad и флудит до тех пор пока не вылетает некий серверный диалог
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,982
Но тут после ввода команды действие произойдет один раз и потом надо будет заново вводить команд
CLEO:
{$CLEO}
0C63: register_console_command "CMD" to_label @cmdLabel

WHILE TRUE
0001: 0
    IF 0039:   0@ == TRUE
    THEN /* Тут твой код который будет выполняться пока в переменной значение TRUE. Если введешь команду снова код отключится. */
    END
END

:cmdLabel
0B12: 0@ = 0@ XOR 1
0B43: samp cmd_ret
 

NIngaro

Известный
Автор темы
48
2
CLEO:
{$CLEO}
0C63: register_console_command "CMD" to_label @cmdLabel

WHILE TRUE
0001: 0
    IF 0039:   0@ == TRUE
    THEN /* Тут твой код который будет выполняться пока в переменной значение TRUE. Если введешь команду снова код отключится. */
    END
END

:cmdLabel
0B12: 0@ = 0@ XOR 1
0B43: samp cmd_ret
Это все замечательно только где вывести диалог?
 

NIngaro

Известный
Автор темы
48
2
в лабеле команды
CLEO:
{$CLEO .cs}
0C63: register_console_command "CMD" to_label @cmdLabel

WHILE TRUE
0001: 0
    IF 0039:   0@ == TRUE
    THEN
    0B3C:  samp is_dialog_responded id 316 button 0 list_item 0 input_text 2@
    0AF9: samp say_msg "%d" params 2@
    END
END

:cmdLabel
0B3B: samp show_dialog id 316 caption "Втрой диалог" text "А ниже поле для ввода" button_1 "Уря!" button_2 "Закрыть" style 1
0B12: 0@ = 0@ XOR 1
0B43: samp cmd_ret
Таким образом? Просто если так писать он не открывает диалог
 
Статус
В этой теме нельзя размещать новые ответы.