Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 9 из 9
  1. #1
    Аватар для I'm Cobra
    Пользователь

    Статус
    Оффлайн
    Регистрация
    29.10.2013
    Сообщений
    151
    Репутация:
    17 ±

    Динамические диалоги.

    Здравствуйте, ув. пользователи Pro-Pawn! Сегодня я столкнулся с такой проблемой, нужно было сделать динамический диалог. А я никогда не работал с ними. В просторах интернета видел только инклуды. Помогите пожалйуста. Дайте ссылку на какой-нибудь урок, или если не составит труда, распишите все.

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

    Статус
    Оффлайн
    Регистрация
    25.11.2013
    Сообщений
    73
    Репутация:
    43 ±
    Диалоги, которые Вы формируете сами какой-либо функцией/циклом.
    Например, кусок кода:
    PHP код:
    foreach(new iPlayer)
        {
            if(
    IsPlayerNPC(i) || player_is_logged{i} == 0) continue;
            if(
    PlayerInfo[playerid][pMember] == PlayerInfo[i][pMember])
            {
                
    MEMBERS++;
                
    f(str"{FFFFFF}%d.{1E90FF} %s[%d] {FFFFFF}(%s[%d])\n"MEMBERSName(i), iFracRank[PlayerInfo[i][pMember]][PlayerInfo[i][pRank]], PlayerInfo[i][pRank]);
                
    strcat(sctring,str);
                
    f(string"{FFFFFF}Членов организации онлайн: {1E90FF}%i"MEMBERS);
                
    SPD(playeridD_EMPTYMSGBOXstringsctring"ENTER""");
              }
        }
        if(
    strlen(str) < 1SCM(playeridCOLOR_WHITE"[SERVER]: Нет членов организации онлайн."); 
    Показывает, сколько членов организации онлайн на момент ввода команды.
    Получается, заведомо неизвестно, сколько строк будет в диалоге и будут ли они там вообще. Вот и вся суть динамического диалога. (моё мнение)
    Hidden (Kenny Hellwood)

    Темы:
    [Мануал] Система двигателя [for new.pwn] - click.
    [Мануал] Запись нескольких значений в один столбец через запятую [mysql r7] - click.
    [Мануал] Табличка на прицепы - click.
    [Info] Выражения и операторы PAWN - click.

  3. #3
    Аватар для I'm Cobra
    Пользователь

    Статус
    Оффлайн
    Регистрация
    29.10.2013
    Сообщений
    151
    Репутация:
    17 ±
    Цитата Сообщение от Hidden Посмотреть сообщение
    Диалоги, которые Вы формируете сами какой-либо функцией/циклом.
    Например, кусок кода:
    PHP код:
    foreach(new iPlayer)
        {
            if(
    IsPlayerNPC(i) || player_is_logged{i} == 0) continue;
            if(
    PlayerInfo[playerid][pMember] == PlayerInfo[i][pMember])
            {
                
    MEMBERS++;
                
    f(str"{FFFFFF}%d.{1E90FF} %s[%d] {FFFFFF}(%s[%d])\n"MEMBERSName(i), iFracRank[PlayerInfo[i][pMember]][PlayerInfo[i][pRank]], PlayerInfo[i][pRank]);
                
    strcat(sctring,str);
                
    f(string"{FFFFFF}Членов организации онлайн: {1E90FF}%i"MEMBERS);
                
    SPD(playeridD_EMPTYMSGBOXstringsctring"ENTER""");
              }
        }
        if(
    strlen(str) < 1SCM(playeridCOLOR_WHITE"[SERVER]: Нет членов организации онлайн."); 
    Показывает, сколько членов организации онлайн на момент ввода команды.
    Получается, заведомо неизвестно, сколько строк будет в диалоге и будут ли они там вообще. Вот и вся суть динамического диалога. (моё мнение)
    Например, при вводе команды /test у игрока выскакивает диалог со стилем INPUT и он вводит текст. Потом при вводе команда /showtest диалог со стилем LIST и в этом диалоге все что было введено в /test.

  4. #4
    Аватар для Hidden
    Пользователь

    Статус
    Оффлайн
    Регистрация
    25.11.2013
    Сообщений
    73
    Репутация:
    43 ±
    Цитата Сообщение от I'm Cobra Посмотреть сообщение
    Например, при вводе команды /test у игрока выскакивает диалог со стилем INPUT и он вводит текст. Потом при вводе команда /showtest диалог со стилем LIST и в этом диалоге все что было введено в /test.
    Быстро схватываете.
    Hidden (Kenny Hellwood)

    Темы:
    [Мануал] Система двигателя [for new.pwn] - click.
    [Мануал] Запись нескольких значений в один столбец через запятую [mysql r7] - click.
    [Мануал] Табличка на прицепы - click.
    [Info] Выражения и операторы PAWN - click.

  5. #5
    Аватар для I'm Cobra
    Пользователь

    Статус
    Оффлайн
    Регистрация
    29.10.2013
    Сообщений
    151
    Репутация:
    17 ±
    Цитата Сообщение от Hidden Посмотреть сообщение
    Быстро схватываете.
    Вообще-то, это была просьба показать примерный код, или объяснить как это сделать :)

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

    Статус
    Оффлайн
    Регистрация
    25.11.2013
    Сообщений
    73
    Репутация:
    43 ±
    Ну вот пример:
    PHP код:
    new some_text[20];
    public 
    OnDialogResponse(playeriddialogidresponselistiteminputtext[])
    {
        if(
    dialogid == 0)
        {
            if(!
    response) return true;
            if(!
    strlen(inputtext)) return ShowPlayerDialog(playerid0DIALOG_STYLE_INPUT"Test""Введите какой-нибудь текст:""Далее""Отмена");
            
    strmid(some_textinputtext0strlen(inputtext), 21);
        }
        return 
    true;
    }

    public 
    OnPlayerCommandText(playeridcmdtext[])
    {
        if(
    strcmp("/test"cmdtexttrue10) == 0)
        {
            
    ShowPlayerDialog(playerid0DIALOG_STYLE_INPUT"Test""Введите какой-нибудь текст:""Далее""Отмена");
            return 
    1;
        }
        else if(
    strcmp("/showtest"cmdtexttrue10) == 0)
        {
            if(!
    strlen(some_text)) return SendClientMessage(playerid, -1"В переменной ничего не записано!");
            new 
    string[20];
            
    format(stringsizeof(string), "%s"some_text);
            
    ShowPlayerDialog(playerid1DIALOG_STYLE_LIST"Test"string"Выбрать""Отмена");
            return 
    1;
        }
        return 
    0;

    Hidden (Kenny Hellwood)

    Темы:
    [Мануал] Система двигателя [for new.pwn] - click.
    [Мануал] Запись нескольких значений в один столбец через запятую [mysql r7] - click.
    [Мануал] Табличка на прицепы - click.
    [Info] Выражения и операторы PAWN - click.

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

    Статус
    Оффлайн
    Регистрация
    27.11.2013
    Адрес
    Нижневартовск
    Сообщений
    256
    Репутация:
    63 ±
    PHP код:
    new string[20];
            
    format(stringsizeof(string), "%s"some_text); 
    Извращенец какой-то.

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

    Статус
    Оффлайн
    Регистрация
    25.11.2013
    Сообщений
    73
    Репутация:
    43 ±
    Цитата Сообщение от Mazzilla Посмотреть сообщение
    PHP код:
    new string[20];
            
    format(stringsizeof(string), "%s"some_text); 
    Извращенец какой-то.
    Да, затупил :D
    Hidden (Kenny Hellwood)

    Темы:
    [Мануал] Система двигателя [for new.pwn] - click.
    [Мануал] Запись нескольких значений в один столбец через запятую [mysql r7] - click.
    [Мануал] Табличка на прицепы - click.
    [Info] Выражения и операторы PAWN - click.

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Погоня за количествами строк объявляется открытой.
    PHP код:
    if (== strcmp("/showtest"cmdtexttrue9)) {
        return (
    == strlen(some_text))
            ? 
    SendClientMessage(playerid, -1"В переменной ничего не записано!")
            : 
    ShowPlayerDialog(playerid1DIALOG_STYLE_LIST"Test"string"Выбрать""Отмена");


 

 

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

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

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

Ваши права

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