Создание многоуровневой команды SF

Тема в разделе "CLEO", создана пользователем Владислав, 6 июл 2014.

  1. Владислав

    Владислав Member Основатель

    Регистрация:
    29 май 2014
    Сообщения:
    109
    Симпатии:
    0
    Даже не знаю, как ещё назвать.
    Пример могу показать так:
    /flood - осн. команда
    /flood sleep 5 - подкоманда /flood, sleep
    /flood text hello - подкоманда /flood, text

    Естественно, необходим SAMPFUNCS.
    Снова же буду основываться на вышеописанной команде:
    Код:
    {$CLEO}
    wait 0
    if 8AF7: get_samp_base_to 33@
    then 0A93: end_custom_thread
    end
    repeat
        wait 400
    until 0AFA: is_samp_structures_available
    0B34: samp register_client_command "flood" to_label @cmd
    while true
        wait 0
        if 29@ == true
        then
            0AF9: say "%s" 3@
            wait 2@
        end
    end
    :cmd
    0B35: samp 0@ = get_last_command_params // Получаем параметры команды /flood
    if 0C18: 1@ = strstr string1 0@ string2 "sleep" // Если найден текст sleep
    then
        0C16: 1@ = strtok string1 0@ string2 "sleep" // Вырезаем текст из строки
        if 0AD4: 1@ = scan_string 1@ format "%d" 2@ // Ищем аргументы
        then 0AF8: chat "Sleep time: %d ms." 0xFFFF00 2@ // Если нашли, выводим
        else 0AF8: chat "Ex.: /flood sleep 5" 0xFF0000 // Иначе...
        end
        // OR
        // atoi 1@ 1@
        SAMP.CmdRet() // Возвращаемся.
    end
    if 0C18: 1@ = strstr string1 0@ string2 "text" // Если найден текст text
    then
        0C18: 3@ = strstr string1 0@ string2 "text"
        3@ += 5 // "text "
        0AF8: chat "Text flood: %s" 0xFFFF00 3@
        SAMP.CmdRet() // Возвращаемся.
    end
    if 29@ == false
    then 29@ = true
    else 29@ = false
    end
    0AF8: chat "Main cmd, status: %d" 0xFFFF00 29@
    SAMP.CmdRet()
     
    #1

Поделиться этой страницей