диалоги и с чем их едят pawno

Диалоги и с чем их едят pawno

Пользователь singmen задал вопрос «Ошибка» (0)

Пользователь singmen задал вопрос «LOL» (0)

Пользователь singmen задал вопрос «LOL» (0)

Пользователь singmen задал вопрос «TTERGSDGSDFGF» (0)

диалоги и с чем их едят pawno. Смотреть фото диалоги и с чем их едят pawno. Смотреть картинку диалоги и с чем их едят pawno. Картинка про диалоги и с чем их едят pawno. Фото диалоги и с чем их едят pawno диалоги и с чем их едят pawno. Смотреть фото диалоги и с чем их едят pawno. Смотреть картинку диалоги и с чем их едят pawno. Картинка про диалоги и с чем их едят pawno. Фото диалоги и с чем их едят pawno диалоги и с чем их едят pawno. Смотреть фото диалоги и с чем их едят pawno. Смотреть картинку диалоги и с чем их едят pawno. Картинка про диалоги и с чем их едят pawno. Фото диалоги и с чем их едят pawno

диалоги и с чем их едят pawno. Смотреть фото диалоги и с чем их едят pawno. Смотреть картинку диалоги и с чем их едят pawno. Картинка про диалоги и с чем их едят pawno. Фото диалоги и с чем их едят pawno

Сегодня Я расскажу не много о диалоговых окнах. Их создание, принцип работы, дополнительные функции. И так, для начала нам требуется создать сам диалог, то есть показать его игроку. Все диалоги выглядят так:

А создается еще проще, чем выглядит. Приступим,

И теперь в паблике OnDialogResponse ставим проверку на диалог.

Поясняю, при вызове диалога id1, в чат игроку напишет сообщение «Вы вызвали диалог id1. Думаю понятно, идем дальше.

диалоги и с чем их едят pawno. Смотреть фото диалоги и с чем их едят pawno. Смотреть картинку диалоги и с чем их едят pawno. Картинка про диалоги и с чем их едят pawno. Фото диалоги и с чем их едят pawno

диалоги и с чем их едят pawno. Смотреть фото диалоги и с чем их едят pawno. Смотреть картинку диалоги и с чем их едят pawno. Картинка про диалоги и с чем их едят pawno. Фото диалоги и с чем их едят pawno

диалоги и с чем их едят pawno. Смотреть фото диалоги и с чем их едят pawno. Смотреть картинку диалоги и с чем их едят pawno. Картинка про диалоги и с чем их едят pawno. Фото диалоги и с чем их едят pawno

диалоги и с чем их едят pawno. Смотреть фото диалоги и с чем их едят pawno. Смотреть картинку диалоги и с чем их едят pawno. Картинка про диалоги и с чем их едят pawno. Фото диалоги и с чем их едят pawno

И так, разобрались со стилями. Идем дальше. Поговорим о заголовках. Он может содержать текст, текст переменной, цифры, символы. Находится в левой верхней части окна, имеет маленький шрифт. Идем дальше.

Создадим наш первый диалог. Код имеет вид:

С кнопками покончено. Приступим дальше!
Теперь сделаем диалог со стилем «списка». Создавать будем так:

Из написанного выше, мы уже помним что и куда вставлять. Так ведь?

Рассмотрим еще парочку примеров. Тут мы будем использовать DIALOG_STYLE_INPUT, создаем диалог:

После использования функции, это будет выглядеть так:
диалоги и с чем их едят pawno. Смотреть фото диалоги и с чем их едят pawno. Смотреть картинку диалоги и с чем их едят pawno. Картинка про диалоги и с чем их едят pawno. Фото диалоги и с чем их едят pawno

И последний пример, это ввод с шифрованием текста. диалоги и с чем их едят pawno. Смотреть фото диалоги и с чем их едят pawno. Смотреть картинку диалоги и с чем их едят pawno. Картинка про диалоги и с чем их едят pawno. Фото диалоги и с чем их едят pawno
Создаем диалог:

Выполнение функции будет выглядеть так:
диалоги и с чем их едят pawno. Смотреть фото диалоги и с чем их едят pawno. Смотреть картинку диалоги и с чем их едят pawno. Картинка про диалоги и с чем их едят pawno. Фото диалоги и с чем их едят pawno

А теперь не много об inputtext. Это массив, в который записывается вся информация, которую мы вводим. Не требует объявления.

Источник

Диалоги и с чем их едят pawno

Данная функция была добавлена в SA-MP 0.3a и не будет работать в более ранних версиях!

Описание:
Показывает диалоговое окно определенному игроку.
Параметры:

playerid
ID игрока, которому будет показан диалог.

Уникальный ID диалога.

Стиль диалогового окна.

Текст самого диалога.

Название первой (левой) кнопки диалога.

Название второй (правой) кнопки.

Возвращаемые значения:
Данная функция не возвращает какого-либо конкретного значения.

0
DIALOG_STYLE_MSGBOX
Обычный диалог с 2-мя кнопками

1
DIALOG_STYLE_INPUT
Диалог с полем для ввода

2
DIALOG_STYLE_LIST
Список из нескольких элементов

3
DIALOG_STYLE_PASSWORD
Позволяет игрокам вводить пароль не раскрывая его

Функция:
Вызывается диалоговое окно функцией ShowPlayerDialog, структура функции такая:

Упрощение:
Обычно, чтобы не запоминать цифры и не писать длинное название стилей диалогов, я заменяю их такими макросами:

#define LIST DIALOG_STYLE_LIST

#define PASSWORD DIALOG_STYLE_PASSWORD

#define MSGBOX DIALOG_STYLE_MSGBOX

#define INPUT DIALOG_STYLE_INPUT
Или можно использовать стиля диалогового окна

Для написания основного текста диалогового окна вы можете использовать нижеприведенную таблицу:

\n
Переход на новую строку

\v
Вертикальная табуляция

//пример для DIALOG_STYLE_MSGBOX
ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,»Уведомление»,»Вы вошли на сервер»,»Закрыть»,»»);

//пример для DIALOG_STYLE_INPUT
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,»Авторизация»,»Введите свой пароль:»,»Войти»,»Отмена»);

//пример для DIALOG_STYLE_LIST
ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,»Мой диалог»,»1. Строка\r\n2. Строка\r\n3. Строка»,»Опция 1″, «Опция 2»);

//пример для DIALOG_STYLE_PASSWORD
ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,»Авторизация»,»Введите ваш пароль ниже:»,»Готово»,»Отмена»);

Ответ на диалог:
Мы сделали диалоговое меню, состоящее из 9 пунктов. А нам надо сделать так, чтобы при нажатии на первый пункт, у нас появлялся другой диалог с другой информацией. Для этот мы будем использовать вот такой код:

case :
<
if(response)
<
if(listitem == 0) // Первый пункт
<
>
else if(listitem == 1) // Второй пункт
<
>
else if(listitem == 2) // Третий пункт
<
>
else if(listitem == 3) // Четвертый пункт
<
>
else if(listitem == 4) // Пятый пункт
<
>
else if(listitem == 5) // Шестой пункт
<
>
else if(listitem == 6) // Седьмой пункт
<
>
else if(listitem == 7) // Восьмой пункт
<
>
else if(listitem == 8) // Девятый пункт
<
>
>
>

Условные конструкции:
Вот примет одной конструкции

if(response) //Условие: если мы нажали первую кнопку
<
>
else //Условие: если мы нажали вторую кнопку
<
>

Пример диалога с использование условной конструкцией

Создадим команду с использование ZCMD (командный процессор)

CMD:test(playerid, params[])
<
ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,»Уведомление»,»Выберите кнопку»,»Первая»,»Вторая»);
>

if (strcmp(«/test», cmdtext, true, 10) == 0)
<
ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,»Уведомление»,»Выберите кнопку»,»Первая»,»Вторая»);
>

И в public OnDialogResponse мы добавим ответ на наш диалог

case 1:
<
if(response) //Условие: если мы нажали первую кнопку
<
SendClientMessage(playerid,0xFFFFFFAA,»Вы нажали первую кнопку»);
>
else //Условие: если мы нажали вторую кнопку
<
SendClientMessage(playerid,0xFFFFFFAA,»Вы нажали вторую кнопку»);
>
>

Креативизация:
Вы решили создать диалог, а он серы и скучный?
Мы можем раскрасить наш диалог в любые цвета формата RGB.
Пример:

Лучше использовать switch для перебора диалогов.

Что же такое этот оператор switch?
Оператор switch – это оператор выбора. Он удобен в первую очередь тем, что может заменить много условий if, которые проверяют значение одной переменной.
Пример построения с этим оператором:

switch(reason)
<
case 0: // Первый пункт
<
// Тут у Вас что то будет
>
case 1: // Второй пункт
<
// Тут у Вас что то будет
>
case 2: // Третий пункт
<
// Тут у Вас что то будет
>
>

! Стоить отметить, что в официальной документации к языку написано: ‘In pawn, switch is a structured “if”‘, а это значит, что конструкция switch — это набор структурированных if’ов, отсюда следует, что switch не может работать быстрее if. Но это не всегда так.

switch(var)
<
case 40,80,150,160,230,420: return 1;
>

if ( var == 40 || var == 80 || var == 150 || var == 160 || var == 230 || var == 420 ) return 1;
Следующая конструкция:

switch(var)
<
case 40..80,150..160,230..420: return 1;
>

if ( var >= 40 && var = 150 && var = 230 && var = 40 && var

Источник

диалоги и с чем их едят pawno. Смотреть фото диалоги и с чем их едят pawno. Смотреть картинку диалоги и с чем их едят pawno. Картинка про диалоги и с чем их едят pawno. Фото диалоги и с чем их едят pawno

Доброго времени суток, уважаемые пользователи!

Сегодня Я хотел бы Вам рассказать о такой возможности в pawn, как соединение диалогов.

Для того чтобы понимать, что происходит в данном уроке, Вам необходимо хотя-бы знать Азы программирования Pawn. Их много в других уроках, поэтому Я сразу начну.

1. Введение
Итак, мы хотим создать длинный диалог без краша компилятора в 256 символов. Если мы скомпилируем такой диалог, то Pawn компилятор просто крашнится. Чтобы этого не происходило, надо разделить диалог. Многие задавались вопросом: «Как разделить диалог?», «Как перенести диалог?». Ну чтож, для этого и нужен урок!)

Нам понадобится такая функция как:

С помощью данной функции Мы не сможем «разделить» диалог, но сможем собрать его из кусочков.
Использование данной функции:

2. Пример использования
Давайте представим ситуацию, где нам нужно будет указать в диалоге сразу несколько длинных строчек:

Нам нужно будет записать вот такой текст:

Отлично! Теперь давайте «собирать» наш диалог.

При попытке компилирования, мы получим краш.

3. Как исправить

Итак, приступим. Для начала нам понадобится переменная, с помощью которой, Мы будем соединять диалог.
К примеру

Да, неплохо, нам нужна переменная с 512 размером, потому что мы совмещаем немалый текст, но не стоит переборщать, нужно соблюдать правило: «Сохраняйте размеры меньше».

Итак, приступим к соединению нашего диалога:

Таким образом Мы сможем вместить Весь текст:

Ух! Теперь то наш мод спокойно скомпилируется. Кстати, данную функцию можно использовать для построения таких команд, как /find или /members.

4. Другой вариант.
Итак, не менее интересной функцией является

Давайте поработаем и с ней!
Текст:

Итак, давайте разберём код по-подробнее:

Также можно сделать диалог по несколько строк(предложил gmosergey ):

На этом всё! Всем спасибо!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *