Дата публикации: 01.01.2019 Добавил: ADM Категория: Плагины
455
0

Pawn.CMD - это новый командный процессор, который работает через плагин. Плагин совместим с любой версией SA-MP, несмотря на работу с памятью.

Natives:
native PC_RegAlias(const cmd[], const alias[], ...);
native PC_SetFlags(const cmd[], flags);
native PC_GetFlags(const cmd[]);
native PC_EmulateCommand(playerid, const cmdtext[]);
native PC_RenameCommand(const cmd[], const newname[]);
native PC_CommandExists(const cmd[]);   
native PC_DeleteCommand(const cmd[]);

native CmdArray:PC_GetCommandArray();
native CmdArray:PC_GetAliasArray(const cmd[]);
native PC_GetArraySize(CmdArray:arr);
native PC_FreeArray(&CmdArray:arr);
native PC_GetCommandName(CmdArray:arr, index, dest[], size = sizeof dest);
Callbacks:
forward PC_OnInit(); 
forward OnPlayerCommandReceived(playerid, cmd[], params[], flags); 
forward OnPlayerCommandPerformed(playerid, cmd[], params[], result, flags);  

Пример команды:
#include 

cmd:help(playerid, params[]) // к тому же возможно использовать CMD и COMMAND
{
    // код
    return 1;
}
Регистрация альтернативных названий (псевдонимов):
#include 

cmd:help(playerid, params[])
{
    // код
    return 1;
}
alias:help("commands", "cmds", "menu"); // нечувствительно к регистру
Использование флагов:
#include 

enum(<<=1)
{
    CMD_ADMIN = 1,
    CMD_MODER,
    CMD_USER
};

flags:ban(CMD_ADMIN);
cmd:ban(playerid, params[])
{
    // code here
    return 1;
}

public OnPlayerCommandReceived(playerid, cmd[], params[], flags)
{
    if ((flags & CMD_ADMIN) && !pAdmin[playerid])
        return 0;

    return 1;
}