Доступ к архиву

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

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

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

sscanf и стандартные команды

Статус
В этой теме нельзя размещать новые ответы.

XemyL

Компетентный
Видел на форумах кучи уроков по связке командных процессоров + sscanf, но не видел ни одного урока по использованию sscanf со стандартными командами, поэтому решил написать, но если было - извиняйте.
Лично я не вижу смысла в командных процессорах, ведь даже в самом не оптимизированном моде, с большим количеством команд и онлайна, все ваши команды будут выполняться мгновенно, не считая больших и тяжёлых команд, которые на любом командном процессоре будут выполняться точно так же. А вот sscanf действительно удобная вещь.
​

Для работы нам понадобиться:
1) Любой мод, можно чистый.
2) Подключённый .
3) Прямые руки.

Первое, что мы должны сделать - отделить команду от параметров. Для этого в начало OnPlayerCommandText вставим это:
PHP:
new cmd[128], params[128];
sscanf(cmdtext, "s[128]s[128]", cmd, params);
Теперь в массиве params у нас будут все параметры. Если у вас команда по типу /print [Текст], то можете использовать params напрямую в команде. Например:

PHP:
if(!strcmp(cmd, "/print"))
{
    printf("%s", params); 
    return 1;
}
Для команды по типу /print [Число], нужно преобразовать params в число. Например:

PHP:
if(!strcmp(cmd, "/print"))
{
    printf("%d", strval(params)); 
    return 1;
}
Для более сложных команд, с 2-мя или более параметрами, /sms [Число (ID)][Текст], нужно разделить params в команде. Например:

PHP:
if(!strcmp(cmd, "/sms"))
{
    new SMSText[128], SendID;
    sscanf(params, "ds[128]", SendID, SMSText);
    format(SMSText, sizeof(SMSText), "Вам отправили SMS - %s", SMSText);
    SendClientMessage(SendID, -1, SMSText);
    return 1;
}
На этом всё. Более подробнее с плагином вы можете ознакомиться в официальной теме, ссылка была в начале темы (не реклама).

Автор урока: XemyL
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу