Страница 1 из 11
Форум » PAWNO » Уроки PAWNO » Урок по созданию диалоговых окон
Урок по созданию диалоговых окон
У вас  Дата: Воскресенье, 28.11.2010, 18:06 | Сообщение # 1

David


Проверенные





         Пол:Мужчина
         Сообщений: 107
         Репутация: 16
         Статус: Offline

Диалоговые окна можно создавать только в SAMP версии 0.3 и выше.

Сначала рассмотрим функцию ShowPlayerDialog и её параметры:

Code
ShowPlayerDialog(playerid, dialogid, style, caption[], info[], button1[], button2[])

playerid - ID игрока которому будет показан данный диалог.
dialogid - ID диалога, чтобы в дальнейшем мы могли с ним работать.
style - Стиль диалога.
caption[] - Заголовок вверху окна диалога.
info[] - Текст в окне диалога. Используйте \n чтобы начать писать с новой строки и \t для сведения в таблицу.
button1[] - Текст кнопки №1.
button2[] - Текст кнопки №2.

Стили диалоговых окон:
0 - DIALOG_STYLE_MSGBOX - обычный диалог с 2мя кнопками
1 - DIALOG_STYLE_INPUT - диалог с полем для ввода
2 - DIALOG_STYLE_LIST - список из нескольких элементов

Теперь рассмотрим сам паблик OnDialogResponse и его параметры:

Code
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

playerid - ID игрока
dialogid - ID диалога
response - Проверка, нажал ли игрок на первую кнопку или на вторую
listitem - Функция для стиля DIALOG_STYLE_LIST, это будет выбор опции находящего в списке
inputtext[] - Это то, что игрок ввел в поле ввода

При создании диалогового окна, вам может понадобиться это:
\b - Забой
\f - Перевод страницы
\n - Новая строка
\r - Возврат каретки
\t - Табуляция
\v - Вертикальная табуляция
\' - Одиночная кавычка
\" - Двойные кавычки
\? - Вопросительный знак

Пример кода, с использованием стиля DIALOG_STYLE_MSGBOX:

Code
if(strcmp(cmdtext, "/test", true) == 0)
{
  // При вводе команды /test , появится диалоговое окно, ID которого 0
  ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Диалоговое окно MSGBOX", "Нажмите на одну из кнопок ниже", "Кнопка 1", "Кнопка 2");
   return 1;
}

Code
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
  if(dialogid == 0)
  {
   if(response)
   {
    // Что произойдет при нажатии на кнопку 1
    SendClientMessage(playerid, 0xFFFFFFAA, "Вы нажали на кнопку 1");
    return 1;
   }
   else
   {
       // Что произойдет при нажатии на кнопку 2
    SendClientMessage(playerid, 0xFFFFFFAA, "Вы нажали на кнопку 2");
       return 1;
   }
  }
  return 1;
}

Пример кода, с использованием стиля DIALOG_STYLE_INPUT:

Code
if(strcmp(cmdtext, "/test", true) == 0)
{
  // При вводе команды /test , появится диалоговое окно, ID которого 1
  ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Диалоговое окно INPUT", "Введите текст", "Кнопка 1", "Кнопка 2");
  return 1;
}

Code
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
  if(dialogid == 1)
  {
      if(response)
      {
          // Что произойдет при нажатии на кнопку 1 (В чате появится текст, который вы ввели в поле ввода)
          SendClientMessage(playerid, 0xFFFFFFAA, inputtext);
          return 1;
   }
   else
   {
       // Что произойдет при нажатии на кнопку 2 (Диалоговое окно просто закроется)
       return 1;
   }
  }
  return 1;
}

Пример кода, с использованием DIALOG_STYLE_LIST:

Code
if(strcmp(cmdtext, "/test", true) == 0)
{
     // При вводе команды /test , появится диалоговое окно, ID которого 2
  ShowPlayerDialog(playerid, 2, DIALOG_STYLE_LIST, "Диалоговое окно LIST", "1000$\n2000$\n3000$", "Кнопка 1", "Кнопка 2");
  return 1;
}

Code
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
  if(dialogid == 2)
  {
      if(response)
      {
          if(listitem == 0)
          {
              // Что произойдет при выборе 1000$ (Игроку даст 1000$)
              GivePlayerMoney(playerid, 1000);
    }
    if(listitem == 1)
    {
        // Что произойдет при выборе 2000$ (Игроку даст 2000$)
        GivePlayerMoney(playerid, 2000);
    }
    if(listitem == 2)
    {
        // Что произойдет при выборе 3000$ (Игроку даст 3000$)
        GivePlayerMoney(playerid, 3000);
    }
   }
  }
  return 1;
}

Урок окончен.

 
Форум » PAWNO » Уроки PAWNO » Урок по созданию диалоговых окон
Страница 1 из 11
Поиск:



GTA-MODS.NET.RU © 2011. Создать сайт бесплатно Анализ web сайта