[Plugin] Pawn.CMD - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
[Plugin] Pawn.CMD
urShadow Дата: Вторник, 05.07.2016, 13:08 | Сообщение # 1
Новичок
Сообщений: 10
Статус: Offline
Pawn.CMD 3.1.1


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



Natives:
Код

native PC_Init(bool:is_gamemode); // internal

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(); // calls after Pawn.CMD initialization
forward OnPlayerCommandReceived(playerid, cmd[], params[], flags); // calls before a command
forward OnPlayerCommandPerformed(playerid, cmd[], params[], result, flags); // calls after a command


Установка:
Распакуйте "pawncmd.zip" в папку вашего сервера. Отредактируйте"server.cfg":

- Windows
Код
plugins pawncmd

- Linux
Код
plugins pawncmd.so


Пример команды:
Код
#include <Pawn.CMD>

cmd:help(playerid, params[]) // к тому же возможно использовать CMD и COMMAND
{
    // код
    return 1;
}


Регистрация альтернативных названий (псевдонимов):
Код

#include <Pawn.CMD>

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


Использование флагов:
Код

#include <Pawn.CMD>

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;
}


Полный пример:
Код

#include <Pawn.CMD>

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

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

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

    return 1;
}

public OnPlayerCommandPerformed(playerid, cmd[], params[], result, flags)
{
    if(result == -1)
    {
        SendClientMessage(playerid, 0xFFFFFFFF, "SERVER: Unknown command.");
        return 0;
    }

    return 1;
}


Если вы хотите использовать Pawn.CMD в filterscript, вставьте этот define перед include:
Код
#define FILTERSCRIPT


Changelog:
1.0:
- Первый релиз.
2.0:
- Теперь плагин полностью совместим с синтаксисом zcmd.
2.1:
- Были исправлены баги.
3.0:
- Добавлен макрос "callcmd" для вызова команды. Пример: callcmd::ban(playerid, "42");
- Добавлены нативы: PC_SetFlags, PC_GetFlags, PC_EmulateCommand, PC_RenameCommand, PC_DeleteCommand.
- Добавлен макрос "isnull" для проверки параметров команды.
- Удалена запись в консоль о регистрации команды.
- "cmdtext" был разделен на "cmd" и "params".
- Потеряна совместимость с синтаксисом zcmd.
3.1:
- Добавлены нативы: PC_CommandExists, PC_GetCommandArray, PC_GetAliasArray, PC_GetArraySize, PC_FreeArray, PC_GetCommandName.
- Добавлен макрос "PC_HasFlag".
- Добавлен паблик "PC_OnInit".
- Изменен натив "PC_GetFlags".
- Совместимость с YSI.
3.1.1:
- Исправлена ошибка в функции "PC_RenameCommand".

Download binaries:
https://github.com/urShadow/Pawn.CMD/releases

Source code:
https://github.com/urShadow/Pawn.CMD

Source code of the benchmark:
https://gist.github.com/urShadow/14da06af69232657e017088cf2f23cbe
Прикрепления: 8584178.png (26.0 Kb)


github.com/urShadow

Сообщение отредактировал urShadow - Вторник, 05.07.2016, 13:26
FryGames[CM] Дата: Вторник, 05.07.2016, 13:13 | Сообщение # 2
Боец
Сообщений: 130
Статус: Offline
Уже было
urShadow Дата: Вторник, 05.07.2016, 13:22 | Сообщение # 3
Новичок
Сообщений: 10
Статус: Offline
Цитата FryGames[CM
Уже было

В отличие от других, эта тема создана автором плагина, и в ней всегда последняя версия.


github.com/urShadow

Сообщение отредактировал urShadow - Вторник, 05.07.2016, 13:24
SeX-PrO-AdReNaLiN Дата: Вторник, 05.07.2016, 13:59 | Сообщение # 4
Авторитет
Сообщений: 1310
Статус: Offline
Цитата urShadow ()
эта тема создана автором плагина


не фейк ли ты?


user N over 99999
urShadow Дата: Вторник, 05.07.2016, 14:39 | Сообщение # 5
Новичок
Сообщений: 10
Статус: Offline
Цитата SeX-PrO-AdReNaLiN ()
не фейк ли ты?

Это имеет значение?


github.com/urShadow
FryGames[CM] Дата: Вторник, 05.07.2016, 15:37 | Сообщение # 6
Боец
Сообщений: 130
Статус: Offline
Цитата urShadow ()
и в ней всегда последняя версия.

В той теме ссылка на github. Там всегда новая версия
urShadow Дата: Вторник, 05.07.2016, 16:37 | Сообщение # 7
Новичок
Сообщений: 10
Статус: Offline
Цитата FryGames[CM] ()
В той теме ссылка на github. Там всегда новая версия

Кончай посты набивать, в той теме описание и список изменений не обновляются.


github.com/urShadow
Capone[228] Дата: Среда, 06.07.2016, 18:06 | Сообщение # 8
Боец
Сообщений: 119
Статус: Offline
Спасибо взял
Плисс Дата: Вторник, 19.07.2016, 20:36 | Сообщение # 9
Боец
Сообщений: 70
Статус: Offline
Кросс
  • Страница 1 из 1
  • 1
Поиск: