Доступ к готовым решениям

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

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

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

Plugin Pawn.CMD - самый быстрый и функциональный командный процессор

Zaur_Lumanov

Изучающий
Пользователь
Регистрация
11 Июл 2014
Сообщения
304
Лучшие ответы
0
Репутация
199
[3.0] Pawn.CMD - самый быстрый и функциональный командный процессор

Pawn.CMD 3.0​

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


Natives:
PHP:
native PC_Init(bool:is_gamemode);
native PC_RegAlias(const cmd[], const alias[], ...);
native PC_SetFlags(const cmd[], flags);
native PC_GetFlags(const cmd[], &flags);
native PC_EmulateCommand(playerid, const cmdtext[]);
native PC_RenameCommand(const name[], const newname[]);
native PC_DeleteCommand(const name[]);
Callbacks:
PHP:
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
Пример команды:
PHP:
#include <Pawn.CMD>

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

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

#define ADMIN_CMD   1
#define VIP_CMD     2
#define USER_CMD    4

flags:ban(ADMIN_CMD);
cmd:ban(playerid, params[])
{
	// код
	return 1;
}

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

	return 1;
}
Полный пример:
PHP:
#include <Pawn.CMD>

#define ADMIN_CMD   1
#define VIP_CMD     2
#define USER_CMD    4

flags:ban(ADMIN_CMD);
cmd:ban(playerid, params[])
{
	// код
	return 1;
}
alias:ban("block");

public OnPlayerCommandReceived(playerid, cmd[], params[], flags)
{
	if ((flags & ADMIN_CMD) && !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:
PHP:
#define FILTERSCRIPT
Pawn.CMD.inc должен быть подключен после остальных include!

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.

Download binaries:


Source code:


Source code of the benchmark:
 
Последнее редактирование:
Сверху Снизу