Текстовый параметр в командах

Description: Уроки по скриптингу
Moderator: SJplayer

Aleksandr M
Topic author, Модератор
Модератор
Avatar
Aleksandr M
Topic author, Модератор
Модератор
Posts: 55
Joined: 4 Jun 2013
With us: 11 years 6 months

#1by Aleksandr » 23 Oct 2013, 20:33

Текстовый параметр в командах
Автор OKStyle

Многие хотели знать: как добавить причину к кику, бану или любому другому действию, но все существующие варианты построены на использовании "левых" плагинов и инклюдов. Я покажу новый способ, являющийся автономным.

Code: Select all

if(strcmp(cmd"/ban"true4) == 0)
{
    new 
tmp[128]; // создали новую переменную для хранения параметров
    
tmp strtok(cmdtextidx); // засунули в неё параметры до следующего пробела
    
if(strlen(tmp) < 1) return SendClientMessage(playerid0xFF0000FF"Синтаксис: /ban  [playerid][reason]"); // если нет аргументов
    
new targetid strval(tmp); // взяли ID игрока из параметров
    
new pos strfind(cmdtext" "true4); // ищем пробел после ID
    
if(pos == -1) return SendClientMessage(playerid0xFF0000FF"Синтаксис: /ban  [playerid][text]"); // если больше аргументов нет
    
format(tmpsizeof(tmp), "Администратор %s забанил игрока %s. Причина: %s"PlayerInfo[playerid][pName], PlayerInfo[targetid][pName], cmdtext[pos 1]); // форматируем с причиной, полученной из параметров после следующего пробела (важно: причина может быть с пробелами, т.е. в несколько слов).
    
SendClientMessage(targetid0xFF0000FFtmp);
    
Ban(playerid);
    return 
1;


Return to “Уроки”

Who is online (over the past 5 minutes)

Users browsing this forum: 1 guest