SA-MP Forums

Go Back   SA-MP Forums > SA-MP Scripting and Plugins > Plugin Development

Reply
 
Thread Tools Display Modes
Old 01/06/2016, 07:45 PM   #1
YourShadow
Big Clucker
 
YourShadow's Avatar
 
Join Date: Apr 2016
Posts: 111
Reputation: 174
Thumbs up Pawn.CMD - the fastest and most functional command processor

Pawn.CMD 3.1.4


Description:
Pawn.CMD - a new command processor that works through a plugin.
This plugin is compatible with any version of SA:MP despite memory hacking.


Natives:
PHP Code:
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:arrindexdest[], size sizeof dest); 
Callbacks:
PHP Code:
forward PC_OnInit(); // calls after Pawn.CMD initialization
forward OnPlayerCommandReceived(playeridcmd[], params[], flags); // calls before a command 
forward OnPlayerCommandPerformed(playeridcmd[], params[], resultflags); // calls after a command 
How to install:
Extract archive in your server's folder. Edit "server.cfg":

- Windows
Code:
plugins pawncmd.dll
- Linux
Code:
plugins pawncmd.so
Example command:
PHP Code:
#include <Pawn.CMD>

cmd:help(playeridparams[]) // also possible to use CMD and COMMAND
{
    
// code here
    
return 1;

Registering aliases:
You can register aliases for a command. For example:
PHP Code:
#include <Pawn.CMD>

cmd:help(playeridparams[])
{
    
// code here
    
return 1;
}
alias:help("commands""cmds""menu"); // case insensitive 
Using flags:
You can set flags for a command. For example:
PHP Code:
#include <Pawn.CMD>

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

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

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

    return 
1;

Full example:
PHP Code:
#include <Pawn.CMD>

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

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

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

    return 
1;
}

public 
OnPlayerCommandPerformed(playeridcmd[], params[], resultflags)
{
    if(
result == -1)
    {
        
SendClientMessage(playerid0xFFFFFFFF"SERVER: Unknown command.");
        return 
0;
    }

    return 
1;

If you want to use Pawn.CMD in a filterscript, put this define before including:
PHP Code:
#define FILTERSCRIPT 
Changelog:
1.0:
- First release.
2.0:
- Now plugin is fully compatible with zcmd command style.
2.1:
- Were fixed bugs.
3.0:
- Added macros "callcmd" to call a command. Example: callcmd::ban(playerid, "42");
- Added natives: PC_SetFlags, PC_GetFlags, PC_EmulateCommand, PC_RenameCommand, PC_DeleteCommand.
- Added macros "isnull" to check command's params.
- Removed call "logprintf" on command's registration.
- "cmdtext" was splitted into "cmd" and "params".
- Pawn.CMD is not compatible with zcmd style anymore.
3.1:
- Added natives: PC_CommandExists, PC_GetCommandArray, PC_GetAliasArray, PC_GetArraySize, PC_FreeArray, PC_GetCommandName.
- Added macros "PC_HasFlag".
- Added public "PC_OnInit".
- Changed native "PC_GetFlags".
- Compatibility with YSI.
3.1.1:
- Fixed bug in native "PC_RenameCommand".
3.1.2:
- Fixed bug in scripts queue.
3.1.3:
- Fixed error "File or function is not found"
3.1.4:
- Added support for OPCT

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/14d...17088cf2f23cbe

Last edited by YourShadow; 09/09/2017 at 03:05 PM. Reason: updating
YourShadow is online now   Reply With Quote
Old 01/06/2016, 08:06 PM   #2
povargek
Big Clucker
 
Join Date: Oct 2012
Posts: 78
Reputation: 16
Default Re: Pawn.CMD - the fastest and most functional command processor

consecrated, +rep
__________________
Sorry for my bad English
povargek is offline   Reply With Quote
Old 01/06/2016, 08:09 PM   #3
vannesenn
Gangsta
 
vannesenn's Avatar
 
Join Date: Feb 2011
Posts: 669
Reputation: 15
Default Re: Pawn.CMD - the fastest and most functional command processor

Lol, bro, it's not micro, it's mini. 12 ms for ... comands? 100?
vannesenn is offline   Reply With Quote
Old 01/06/2016, 08:11 PM   #4
iKevin
Gangsta
 
iKevin's Avatar
 
Join Date: Nov 2015
Location: In my throne
Posts: 597
Reputation: 71
Default Re: Pawn.CMD - the fastest and most functional command processor

Cool.
iKevin is offline   Reply With Quote
Old 01/06/2016, 08:14 PM   #5
SickAttack
Godfather
 
Join Date: Dec 2013
Posts: 5,167
Reputation: 751
Default Re: Pawn.CMD - the fastest and most functional command processor

Any benchmark with ZCMD?
SickAttack is offline   Reply With Quote
Old 01/06/2016, 08:24 PM   #6
YourShadow
Big Clucker
 
YourShadow's Avatar
 
Join Date: Apr 2016
Posts: 111
Reputation: 174
Default Re: Pawn.CMD - the fastest and most functional command processor

Quote:
Originally Posted by SickAttack View Post
Any benchmark with ZCMD?
Obvious that Pawn.CMD faster than zcmd, because it works through memory hack.
YourShadow is online now   Reply With Quote
Old 01/06/2016, 08:28 PM   #7
vannesenn
Gangsta
 
vannesenn's Avatar
 
Join Date: Feb 2011
Posts: 669
Reputation: 15
Default Re: Pawn.CMD - the fastest and most functional command processor

Micro(μ) is x10 on -6, mili(m) is x10 on -3. That is from SI
vannesenn is offline   Reply With Quote
Old 01/06/2016, 09:11 PM   #8
Crystallize
High-roller
 
Join Date: Aug 2013
Posts: 1,554
Reputation: 293
Default Re: Pawn.CMD - the fastest and most functional command processor

how much faster than zcmd?
Crystallize is offline   Reply With Quote
Old 01/06/2016, 09:31 PM   #9
vannesenn
Gangsta
 
vannesenn's Avatar
 
Join Date: Feb 2011
Posts: 669
Reputation: 15
Default Re: Pawn.CMD - the fastest and most functional command processor

This looks like a troll. Look at guy's name, lol. Frist post was this topic, really? No way.
vannesenn is offline   Reply With Quote
Old 01/06/2016, 09:32 PM   #10
zSuYaNw
Godfather
 
zSuYaNw's Avatar
 
Join Date: Apr 2010
Location: Santa Catarina
Posts: 6,850
Reputation: 660
Default Re: Pawn.CMD - the fastest and most functional command processor

hoho Niice woork!
__________________
Vamo TI
(Blog relacionado a programação e informatica em geral)


Grupo do Fórum SA-MP no WhatsApp PM*
zSuYaNw is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Include] [I-ZCMD]Improved ZCMD - Fastest Command Processor Yashas Includes 99 23/07/2017 05:23 PM
[Tutorial] PAWN Pre-Processor (Updated 22/04/13) Misiur Tutorials 6 10/07/2016 03:33 PM
[Include] y_commands - Most flexible and fastest command processor, now on the YSI wiki corne Includes 19 03/12/2015 02:41 AM
[Tutorial] PAWN Pre-Processor - Pre-processor alternatives - Part 5/7 Misiur Tutorials 0 14/04/2015 10:13 PM


All times are GMT. The time now is 09:24 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.