Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 12
  1. #1
    Аватар для Killer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.04.2017
    Сообщений
    133
    Репутация:
    0 ±

    Как реализовать?

    Я не знаю как лучше реализовать, но ищу другой способ, так-как этот способ мне не подходит.

    Есть диалог обычный, внутри диалога должна быть информация, например:

    1. Количество дней: Нет
    2. Количество часов: Нет
    3. Количество месяцев: Нет

    Когда игрок изменяет количество дней, у его соответственно меняются дни, уже пишется сколько.

    Я сделал иным способом через strmid, но, это наверное глупо? Лучше как-то задействовать PVAR или что-то ещё, накиньте пожалуйста идею для реализации, так-как strmid мне не подходит. Сделать можно, но проверку по тексту делать не удобно.

  2. #2
    Аватар для Long-
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.11.2016
    Сообщений
    131
    Репутация:
    23 ±
    Эмм, strmid и PVAR это вообще разные функции и делаю совершенно разные действия.
    Покажи основу диалога, и вообще как реализовал

  3. #3
    Аватар для Seregamil
    Проверенный

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    551
    Репутация:
    274 ±
    Оговорку написал в команде.
    ID диалогов поменяете под свои.

     Code

    PHP код:
    #define DIALOG_DAYS 1

    new pDaysMAX_PLAYERS ] ;
    new 
    pMonthsMAX_PLAYERS ] ;
    new 
    pHoursMAX_PLAYERS ] ;

    public 
    OnPlayerConnect(playerid) {
        
    pDaysplayerid ] = ;
        
    pMonthsplayerid ] = ;
        
    pHoursplayerid ] = ;
        return 
    1;
    }

    public 
    OnPlayerCommandText(playeridcmdtext[]) {
        if (
    strcmp("/cmd"cmdtexttrue4) == 0) {
        
            static const 
    fmt_str[] = "Количество дней: %s\nКоличество часов: %s\nКоличество месяцев: %s";
            new 
    strsizeof(fmt_str) + ( ( - 11) * ) ] ;

            new 
    days11 ] ;
            
    //Я понятия не имею, что вы будете ставить вместо даты, поэтому поставил максимальную длину целочисленного значения
            
    if( pDaysplayerid ] == )
                
    formatdayssizeof days"Нет" ) ;
            else
                
    formatdayssizeof days"%i"pDaysplayerid ] ) ;
                
              new 
    hours11 ] ;
            if( 
    pHoursplayerid ] == )
                
    formathourssizeof hours"Нет" ) ;
            else
                
    formathourssizeof hours"%i"pHoursplayerid ] ) ;
                
              new 
    months11 ] ;
            if( 
    pMonthsplayerid ] == )
                
    formatmonthssizeof months"Нет" ) ;
            else
                
    formatmonthssizeof months"%i"pMonthsplayerid ] ) ;


            
    formatstrsizeof strfmt_strdayshoursmonths );
            
    ShowPlayerDialogplayeridDIALOG_DAYSDIALOG_STYLE_LIST"Choose"str"Edit""Cancel" );
            return 
    1;
        }
        return 
    0;
    }

    public 
    OnDialogResponse(playeriddialogidresponselistiteminputtext[]) {
        switch( 
    dialogid ) {
            case 
    DIALOG_DAYS: {
                if( !
    response )
                    return 
    true ;
                new 
    str28 ] ;
                switch( 
    listitem ) {
                    case 
    0: {
                        
    formatstrsizeof str"Value 'days' = %i"pDaysplayerid ] );
                        
    ShowPlayerDialogplayeridDIALOG_DAYS 1DIALOG_STYLE_INPUT"Edit"str"Ok""Cancel" );
                    }
                    case 
    1: {
                        
    formatstrsizeof str"Value 'hours' = %i"pHoursplayerid ] );
                        
    ShowPlayerDialogplayeridDIALOG_DAYS 2DIALOG_STYLE_INPUT"Edit"str"Ok""Cancel" );
                    }
                    case 
    2: {
                        
    formatstrsizeof str"Value 'months' = %i"pMonthsplayerid ] );
                        
    ShowPlayerDialogplayeridDIALOG_DAYS 3DIALOG_STYLE_INPUT"Edit"str"Ok""Cancel" );
                    }
                }
                return 
    true ;
            }
            case 
    DIALOG_DAYS 1: {
                if( !
    response )
                    return 
    OnPlayerCommandTextplayerid"/cmd" );

                
    pDaysplayerid ] = strvalinputtext ) ;
                return 
    OnPlayerCommandTextplayerid"/cmd" );
            }
            case 
    DIALOG_DAYS 2: {
                if( !
    response )
                    return 
    OnPlayerCommandTextplayerid"/cmd" );

                
    pHoursplayerid ] = strvalinputtext ) ;
                return 
    OnPlayerCommandTextplayerid"/cmd" );
            }
            case 
    DIALOG_DAYS 3: {
                if( !
    response )
                    return 
    OnPlayerCommandTextplayerid"/cmd" );

                
    pMonthsplayerid ] = strvalinputtext ) ;
                return 
    OnPlayerCommandTextplayerid"/cmd" );
            }
        }
        return 
    1;



     images





  4. Пользователь сказал cпасибо:
    Killer (23.05.2017)
  5. #4
    Аватар для Killer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.04.2017
    Сообщений
    133
    Репутация:
    0 ±
    А если например значение текстовое?

  6. #5
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    %i - цифры
    %s - символы

    и по массивам смотри если это тексты то добавлять ещё нужно

    PHP код:
    new pDaysMAX_PLAYERS ] ;
    new 
    pMonthsMAX_PLAYERS ] ;
    new 
    pHoursMAX_PLAYERS ] ;

    const 
    MAX_LEN_TEXT 50// максимальная длинна текста
    new pTextMAX_PLAYERS ][ MAX_LEN_TEXT ] ; 
    Последний раз редактировалось vovandolg; 22.05.2017 в 14:13.
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  7. #6
    Аватар для Fallen A.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Адрес
    Минск, БССР
    Сообщений
    236
    Репутация:
    19 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    %i - цифры
    %s - символы

    и по массивам смотри если это тексты то добавлять ещё нужно

    PHP код:
    new pDaysMAX_PLAYERS ] ;
    new 
    pMonthsMAX_PLAYERS ] ;
    new 
    pHoursMAX_PLAYERS ] ;

    const 
    MAX_LEN_TEXT 50// максимальная длинна текста
    new pTextMAX_PLAYERS ][ MAX_LEN_TEXT ] ; 
    %i и %u для id вроде, не? я бы использовал %d

  8. #7
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Fallen A. Посмотреть сообщение
    %i и %u для id вроде, не? я бы использовал %d
    В format нет спецификатора %u. Вот тут можно все спецификаторы и их описание посмотреть.
    "%i" то же самое, что и "%d" - вывод целого десятичного числа
    Последний раз редактировалось DeimoS; 22.05.2017 в 17:30.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  9. #8
    Аватар для Fallen A.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Адрес
    Минск, БССР
    Сообщений
    236
    Репутация:
    19 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    В format нет спецификатора %u. Вот тут можно все спецификаторы и их описание посмотреть.
    "%i" то же самое, что и "%d" - вывод целого десятичного числа
    О, пардон. Со sscanf малость перепутал.

  10. #9
    Аватар для Seregamil
    Проверенный

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    551
    Репутация:
    274 ±
    Цитата Сообщение от Killer Посмотреть сообщение
    А если например значение текстовое?
    Так там проще. Там просто делаете через тернарный оператор без каких-либо проверок.

  11. #10
    Аватар для Killer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.04.2017
    Сообщений
    133
    Репутация:
    0 ±
    Спасибо за варианты реализации. Чем плох strmid? (проверка через strmid и.т.д)

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

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

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

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

Ваши права

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