Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 3 из 3
  1. #1
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±

    Клист [DC_CMD + sscanf]

    Важно: Данная команда работает с плагином sscanf.

    Использование: при вводе команды "/color" ( без указания параметров ) у игрока открывается диалог со списком и выбором цвета. Если вы помните цвет по памяти, то можете использовать команду так: "/color [ID цвета]".

    Установка:
    В начало мода, ко всем константам ( или макросам ):
    PHP код:
    const
        
    CLIST_DIALOG 1500,
        
    MAX_COLOR_NAME 16;

    enum
        e_CLIST_INFO
        
    {
            
    color_name[MAX_COLOR_NAME],
            
    color_hex_code
        
    };

    static const
        
    clist_data[][e_CLIST_INFO] =
        {
            { 
    "Стандартный"0xC2C2C2FF },
            { 
    "Зелёный"0x00FF00FF },
            { 
    "Светло-зелёный"0xBFFF00FF },
            { 
    "Ярко-зелёный"0x66FF00FF },
            { 
    "Бирюзовый"0x30D5C8FF },
            { 
    "Жёлто-зелёный"0xADFF2FFF },
            { 
    "Тёмно-зелёный"0x013220FF },
            { 
    "Серо-зелёный"0x5DA130FF },
            { 
    "Красный"0xFF0000FF },
            { 
    "Ярко-красный"0xFF2400FF },
            { 
    "Оранжевый"0xFFA500FF },
            { 
    "Коричневый"0x964B00FF },
            { 
    "Тёмно-красный"0xC41E3AFF },
            { 
    "Серо-красный"0xBB4488FF },
            { 
    "Жёлто-оранжевый"0xFF9900FF },
            { 
    "Малиновый"0xDC143CFF },
            { 
    "Розовый"0xFFC0CBFF },
            { 
    "Синий"0x0000FFFF },
            { 
    "Голубой"0x42AAFFFF },
            { 
    "Синяя сталь"0x1E90FFFF },
            { 
    "Сине-зелёный"0x008080FF },
            { 
    "Тёмно-синий"0x4169E1FF },
            { 
    "Фиолетовый"0x8B00FFFF },
            { 
    "Индиго"0xCD00CDFF },
            { 
    "Серо-синий"0xA2A0F6FF },
            { 
    "Жёлтый"0xFFFF00FF },
            { 
    "Кукурузный"0xFBEC5DFF },
            { 
    "Золотой"0xFFD700FF },
            { 
    "Старое золото"0xCFB53BFF },
            { 
    "Оливковый"0x808000FF },
            { 
    "Серый"0xBBBBBBFF },
            { 
    "Серебро"0xC0C0C0FF },
            { 
    "Чёрный"0x000000FF },
            { 
    "Белый"0xFFFFFFFF }
        }; 
    Добавляем команду, в любое удобное для вас место в моде:
    PHP код:
    CMD:color(playeridparams[])
    {
        static const
            
    fmt_item_msg[] = "%i. {%06x}%s\n";

        static
            
    clist_item_string
            
    [
                
    sizeof(fmt_item_msg)
                + (-
    2)
                + 
    3
                
    + (-4)
                + 
    6
                
    + (-2)
                + 
    MAX_COLOR_NAME
            
    ],
            
    clist_string[sizeof(clist_item_string) * sizeof(clist_data)];

        
    extract params -> new colorid; else
        {
            for(new 
    0sizeof(clist_data); i++)
            {
                
    format(
                    
    clist_item_stringsizeof(clist_item_string),
                    
    fmt_item_msg,
                    
    i+1,
                    
    clist_data[i][color_hex_code] >>> 8,
                    
    clist_data[i][color_name]
                );

                
    strcat(clist_stringclist_item_string);
            }
            
    ShowPlayerDialog(playeridCLIST_DIALOGDIALOG_STYLE_LIST"Выберите цвет из списка:"clist_string"Выбрать""Отмена");

        }
        else
        {
            if(!(
    <= colorid <= (sizeof(clist_data)-1)))
                return 
    SendClientMessage(playerid, -1"Такого цвета не существует, используйте команду без параметра, чтобы узнать ID цвета.");

            
    SetPlayerColor(playeridclist_data[colorid][color_hex_code]);
        }
        return 
    1;

    В паблик OnDialogResponse добавляем следующий код:
    PHP код:
    if(dialogid == CLIST_DIALOG)
        return
            
    response
            
    SetPlayerColor(playeridclist_data[listitem][color_hex_code])
            : 
    1
     Скриншот диалога


    Автор: Untonyst
    Доработка: Londlem
    Последний раз редактировалось L0ndl3m; 19.11.2015 в 19:58. Причина: upd by Londlem

  2. Пользователь сказал cпасибо:
    YECHEZ (06.12.2017)
  3. #2
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Код занесите в тэг:
    PHP код:
    php 
    и поработайте над табуляцией.

  4. #3
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Код занесите в тэг:
    PHP код:
    php 
    и поработайте над табуляцией.
    С табуляцией все хорошо, а вот в тег PHP занесу

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •