Команда

dark_1

Новичок
Автор темы
6
3
Привет, хочу узнать, как сделать команду, чтобы можно было не только писать за игроков, но и выполнять действия с помощью различных команд, например, если ввести команду /ptext 228 /cuff 227 на копе, то он наденет наручники на чела...
 
  • Нравится
Реакции: Vintik

repugnantbytheway

Известный
138
39
Pawn.CMD:
CMD:fcmd(playerid, params[])
{
    // использование команд, которые зарегистрированы в моде (стандартные sa:mp не работают).
    // пример использования команды: /fcmd 12 /pay 1 100 (аргументы поддерживаются).
    new id,
        cmd[128];
    if(sscanf(params, "is[128]", id, cmd)) return SendClientMessage(playerid, -1, !" Use: /fcmd [id] [cmd]")
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, !" Error: Player is not connected to server")

    if(cmd[0] != 47) return true // проверка на первый символ '/'.
    return CallLocalFunction("OnPlayerCommandText", "ds", id, cmd)
}

Правда использование команды нерационально, ибо используется функция CallLocalFunction, которая не умеет обращаться сразу к нужному паблику, а перебирает все, пока не найдёт нужную. Но это уж на твоё усмотрение. КП: Pawn.CMD.
 
  • Нравится
Реакции: Vintik

Vintik

Через тернии к звёздам
Проверенный
1,526
1,011
Pawn.CMD:
CMD:fcmd(playerid, params[])
{
    // использование команд, которые зарегистрированы в моде (стандартные sa:mp не работают).
    // пример использования команды: /fcmd 12 /pay 1 100 (аргументы поддерживаются).
    new id,
        cmd[128];
    if(sscanf(params, "is[128]", id, cmd)) return SendClientMessage(playerid, -1, !" Use: /fcmd [id] [cmd]")
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, !" Error: Player is not connected to server")

    if(cmd[0] != 47) return true // проверка на первый символ '/'.
    return CallLocalFunction("OnPlayerCommandText", "ds", id, cmd)
}

Правда использование команды нерационально, ибо используется функция CallLocalFunction, которая не умеет обращаться сразу к нужному паблику, а перебирает все, пока не найдёт нужную. Но это уж на твоё усмотрение. КП: Pawn.CMD.
Интересно, никогда не видел вызов функции с заранее неизвестным именем

Спасибо за ответ, очень полезно!