Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Урок Учимся работать со sscanf2.

Jam999

Нуль
Регистрация
16 Янв 2019
Сообщения
4
Лучшие ответы
0
Репутация
1
Всем привет. Сегодня я расскажу, как работать со sscanf2 (в командах)
Для чего он нужен?
- Что бы проверять на верность введенную команду.
Вы наверное замечали, что в командах таких как /kick /msg /a и т.п есть указания, которые нужно указать (/kick [id], /msg [text], /a [text])
Как же сделать такую проверку?

Создадим команду (любую), в моем случае будет команда /test

PHP:
CMD:test(playerid, params[])
{
    return true;
}
в скобках указан params[], это будет использовано в sscanf.

сделаем проверку например на id игрока и текст (мы будем выводить текст игроку с другим ID).

PHP:
CMD:test(playerid, params[])
{
    if(sscanf(params, "ds[128]", params[0], params[1])) return SendClientMessage(playerid, -1, "Используйте: /test [id] [text]");
    return true;
}
Сейчас попытаюсь объяснить, кто и за что отвечает.

в "" мы используем параметры
d - цифровое значение ([id])
s[128] - текстовое и цифровое значение ([text])

if(sscanf - запускаем паблик
if(sscanf(params - проверяем параметры
"ds[128]" - [id] [text]
в params[0] записываем id игрока (т.е d)
в params[1] записываем текст введенный (т.е s[128])

если параметры не соблюдены, то выдаем текст, что команда введена неверно.

если все совпало, то выведем текст игроку.
PHP:
CMD:test(playerid, params[])
{
    if(sscanf(params, "ds[128]", params[0], params[1])) return SendClientMessage(playerid, -1, "Используйте: /test [id] [text]");
    new string[128];
    format(string, sizeof(string), "%s", params[1]);
    SendClientMessage(params[0], -1, string); 
    return true;
}
new string[128] - создаем переменную
format(string, sizeof(string) - форматируем текст
"%s" - текстовое значение, после него ставится параметр (в params[1] у нас записан текст)
После форматирования, отправляем сообщение указанному игроку (params[0] - указанный id), (-1 - Это цвет), (string - переменная, в который записан текст)

Надеюсь вам было понятно, это был мой первый урок :D
 
Сверху Снизу