Jam999
Нуль
- Регистрация
- 16 Янв 2019
- Сообщения
- 4
- Лучшие ответы
- 0
- Репутация
- 1
Всем привет. Сегодня я расскажу, как работать со sscanf2 (в командах)
Для чего он нужен?
- Что бы проверять на верность введенную команду.
Вы наверное замечали, что в командах таких как /kick /msg /a и т.п есть указания, которые нужно указать (/kick [id], /msg [text], /a [text])
Как же сделать такую проверку?
Создадим команду (любую), в моем случае будет команда /test
в скобках указан params[], это будет использовано в sscanf.
сделаем проверку например на id игрока и текст (мы будем выводить текст игроку с другим ID).
Сейчас попытаюсь объяснить, кто и за что отвечает.
в "" мы используем параметры
d - цифровое значение ([id])
s[128] - текстовое и цифровое значение ([text])
if(sscanf - запускаем паблик
if(sscanf(params - проверяем параметры
"ds[128]" - [id] [text]
в params[0] записываем id игрока (т.е d)
в params[1] записываем текст введенный (т.е s[128])
если параметры не соблюдены, то выдаем текст, что команда введена неверно.
если все совпало, то выведем текст игроку.
new string[128] - создаем переменную
format(string, sizeof(string) - форматируем текст
"%s" - текстовое значение, после него ставится параметр (в params[1] у нас записан текст)
После форматирования, отправляем сообщение указанному игроку (params[0] - указанный id), (-1 - Это цвет), (string - переменная, в который записан текст)
Надеюсь вам было понятно, это был мой первый урок
Для чего он нужен?
- Что бы проверять на верность введенную команду.
Вы наверное замечали, что в командах таких как /kick /msg /a и т.п есть указания, которые нужно указать (/kick [id], /msg [text], /a [text])
Как же сделать такую проверку?
Создадим команду (любую), в моем случае будет команда /test
PHP:
CMD:test(playerid, params[])
{
return true;
}
сделаем проверку например на 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;
}
format(string, sizeof(string) - форматируем текст
"%s" - текстовое значение, после него ставится параметр (в params[1] у нас записан текст)
После форматирования, отправляем сообщение указанному игроку (params[0] - указанный id), (-1 - Это цвет), (string - переменная, в который записан текст)
Надеюсь вам было понятно, это был мой первый урок