SA-MP Forums Archive
[Include] DRCMD - Fast and easy command process! - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Filterscripts (https://sampforum.blast.hk/forumdisplay.php?fid=17)
+---- Forum: Includes (https://sampforum.blast.hk/forumdisplay.php?fid=83)
+---- Thread: [Include] DRCMD - Fast and easy command process! (/showthread.php?tid=313772)

Pages: 1 2


DRCMD - Fast and easy command process! - Drake1994 - 27.01.2012

DRCMD 1.3
Description
Well i think everyone is know the command process. Their destination is that more faster and the simplest easiest way to deal for the scriers/players the commands.
Because this include don't use any comparative analysis but call the function local thereby is it fast. The usage is very simple, and you can easy slits the params!

Usage
Firstly look for an easier example:
Код:
DRCMD:teszt(playerid, params[])
{
	SendClientMessage(playerid, 0xFFFFFF, "Ez egy teszt szцveges ьzenet!");
	return 1;
}
Then a "more complicated" givemoney code:
Код:
DRCMD:givemoney(playerid, params[])
{
	new money, player;
	if(sscanf(params, "dd", player, money)) return SendClientMessage(playerid, 0xFFFFFF, "USAGE: /givemoney [playerid] [money]");
	else if(money <= 0) return SendClientMessage(playerid, 0xFFFFFF, "ERROR: The money ammount is incorrect!");
	else if(!IsPlayerConnected(player)) return SendClientMessage(playerid, 0xFFFFFF, "The player isn't online!");
	else
	{
		format(string, sizeof(string), "You successfully gove %d$ to the following player: %dID", money, player);
		SendClientMessage(playerid, 0xFFFFFF, string);
		format(string, sizeof(string), "You get %d$!", money);
		SendClientMessage(player, 0xFFFFFF, string);
	}
	return 1;
}
Reference
If you want to make a shortcut to your command. Then you can do the following things:
Код:
DRCMD:gm(playerid, params[])
{
	return drcmd_givemoney(playerid, params[]);
}
Synonym
If you want to replace your currently command process (for example ZCMD), then there is an opportunity to do this. Just take out the ZCMD and you put isntead the DRCMD. Because the DRCMD is contain the ZCMD's macro.
Synonyms:
Код:
DRCMD:command(playerid, params[]) 
DRCMD_command(playerid, params[]) 
drcmd(command, playerid, params[]) 
CMD:command(playerid, params[]) 
COMMAND:command(playerid, params[])
Notice
If you want to get the parameters lenght, don't use the strlen function, instead use the isnull function which is included/implemented in the include
Код:
if(isnull(params))
Speed against ZCMD

Код:
#include <a_samp>

#define DRCMD:%1(%2,%3) \
		forward drcmd_%1(%2,%3); \
		public drcmd_%1(%2,%3)

#define DRCMD_%1(%2,%3) \
		DRCMD:%1(%2,%3)

#define drcmd(%1,%2,%3) \
		DRCMD:%1(%2,%3)
		
#define CMD:%1(%2,%3) \
		DRCMD:%1(%2,%3)

#define COMMAND:%1(%2,%3) \
		DRCMD:%1(%2,%3)

/*public OnFilterScriptInit()
{
	new
		returned;
	returned = OnPlayerCommandText(0, "/tesztparancs"); // Itt hнvod meg a parancs feldolgozуt
	printf("returned: %d", returned);
	return 1;
}*/

main() { }

public OnGameModeInit()
{
    #define MAX_TEST (990000)

	for(new d; d < 10; ++d) print(" ");
    new dcmdtest = GetTickCount();
    for(new a; a < MAX_TEST; ++a)
        OnPlayerDraCommandText(0, "/drcmd teszt");
    printf("# DRCMD in %d",GetTickCount() - dcmdtest);

    new zcmdtest = GetTickCount();
    for(new a; a < MAX_TEST; ++a)
        OnPlayerCommandText(0, "/drcmd teszt");
    printf("# ZCMD in %d",GetTickCount() - zcmdtest);
    return true;
}
forward OnPlayerDraCommandText(playerid, cmdtext[]);
public OnPlayerDraCommandText(playerid, cmdtext[])
{
	new
		function[32],
		szokozmeddig = -1;
	while(++szokozmeddig < strlen(cmdtext)) if((cmdtext[szokozmeddig] == ' ')) break;
 	strmid(function, cmdtext, 1, szokozmeddig);
	format(function, sizeof(function), "drcmd_%s", function);
	while(cmdtext[szokozmeddig] == ' ') szokozmeddig++;
	if(funcidx(function) != -1)
 	{
		if(szokozmeddig == strlen(cmdtext))
		{
			return CallLocalFunction(function, "is", playerid, "\1");
		}
		return CallLocalFunction(function, "is", playerid, cmdtext[szokozmeddig]);
	}
	return 0;
}

static
	bool:zcmd_g_HasOPCS = false,
	bool:zcmd_g_HasOPCE = false;

#define MAX_FUNC_NAME (32)

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (zcmd_g_HasOPCS && !CallLocalFunction("OnPlayerCommandReceived", "is", playerid, cmdtext))
    {
        return 1;
    }
    new
        pos,
        funcname[MAX_FUNC_NAME];
    while (cmdtext[++pos] > ' ')
	{
		funcname[pos-1] = tolower(cmdtext[pos]);
	}
	format(funcname, sizeof(funcname), "cmd_%s", funcname);
    while (cmdtext[pos] == ' ') pos++;
	if (!cmdtext[pos])
	{
		if (zcmd_g_HasOPCE)
		{
			return CallLocalFunction("OnPlayerCommandPerformed", "isi", playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, "\1"));
		}
		return CallLocalFunction(funcname, "is", playerid, "\1");
	}
	if (zcmd_g_HasOPCE)
	{
		return CallLocalFunction("OnPlayerCommandPerformed", "isi", playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, cmdtext[pos]));
	}
	return CallLocalFunction(funcname, "is", playerid, cmdtext[pos]);
}
Download

1.3:


Re: DRCMD - Fast and easy command process! - Lorenc_ - 27.01.2012

[strike]Can you please post some bench marks[/strike]? BTW, you forgot to hook that callback.

EDIT:

Isn't the smaller it is the slower it is? How many iterations did you test with?


Re: DRCMD - Fast and easy command process! - Drake1994 - 27.01.2012

What do you mean under bench marks? (Sorry i'm a little bad in english language )


Re: DRCMD - Fast and easy command process! - Lorenc_ - 27.01.2012

Quote:
Originally Posted by Drake1994
Посмотреть сообщение
What do you mean under bench marks? (Sorry i'm a little bad in english language )
Bench mark meaning showing its speed. Care to show us the code you bench marked with?


Re: DRCMD - Fast and easy command process! - Drake1994 - 27.01.2012

Sorry, i posted it under Speed against ZCMD (img and script included)


Re: DRCMD - Fast and easy command process! - Drake1994 - 27.01.2012

Well, I'm not able to to this test, because my computer is very old and bad. And it takes a few time (maybe 30minutes or 1 hour) to compile the script. But I implemented my command processor to the test script. And I'd appreciate that somebody compile it.

http://pastebin.com/rydU09RQ
(I don't know that work, because i can't compile it.)


Re: DRCMD - Fast and easy command process! - Drake1994 - 09.03.2012

Updated!

If you use my DRCMD include (which has a low percent), please redownload the newest version above the Download section.


Re: DRCMD - Fast and easy command process! - System64 - 09.03.2012

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (zcmd_g_HasOPCS && !CallLocalFunction("OnPlayerCommandReceived", "is", playerid, cmdtext))
    {
        return 1;
    }
    new
        pos,
        funcname[MAX_FUNC_NAME];
    while (cmdtext[++pos] > ' ')
    {
        funcname[pos-1] = tolower(cmdtext[pos]);
    }
    format(funcname, sizeof(funcname), "cmd_%s", funcname);
    while (cmdtext[pos] == ' ') pos++;
    if (!cmdtext[pos])
    {
        if (zcmd_g_HasOPCE)
        {
            return CallLocalFunction("OnPlayerCommandPerformed", "isi", playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, "\1"));
        }
        return CallLocalFunction(funcname, "is", playerid, "\1");
    }
    if (zcmd_g_HasOPCE)
    {
        return CallLocalFunction("OnPlayerCommandPerformed", "isi", playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, cmdtext[pos]));
    }
    return CallLocalFunction(funcname, "is", playerid, cmdtext[pos]);
}
if (zcmd_g_HasOPCS && !CallLocalFunction("OnPlayerCommandReceived", "is", playerid, cmdtext))

u mad bro? I think you just copied ZCMD include and change it to DRCMD that's shit man!!!

Also next time use more commands not one (See ******es post)


Re: DRCMD - Fast and easy command process! - Drake1994 - 09.03.2012

Код:
#if defined _drcmd_included
        #endinput
#endif
#define _drcmd_included
 
#define DRCMD:%1(%2,%3) \
                forward drcmd_%1(%2,%3); \
                public drcmd_%1(%2,%3)
 
#define DRCMD_%1(%2,%3) \
                DRCMD:%1(%2,%3)
 
#define drcmd(%1,%2,%3) \
                DRCMD:%1(%2,%3)
               
#define CMD:%1(%2,%3) \
                DRCMD:%1(%2,%3)
 
#define COMMAND:%1(%2,%3) \
                DRCMD:%1(%2,%3)
 
#if !defined isnull
        #define isnull(%1) \
                                ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
#endif
 
#if defined FILTERSCRIPT
public
        OnFilterScriptInit()
#else
public
        OnGameModeInit()
#endif
{
        #if defined FILTERSCRIPT
                if(funcidx("OnFilterScriptInit") != -1)
                    return CallLocalFunction("OnFilterScriptInit", "");
        #else
            if(funcidx("OnGameModeInit") != -1)
                return CallLocalFunction("OnGameModeInit", "");
        #endif
        return 1;
}
#if defined FILTERSCRIPT
        #if defined _ALS_OnFilterScriptInit
            #undef OnFilterScriptInit
        #else
            #define _ALS_OnFilterScriptInit
        #endif
        #define OnFilterScriptInit drcmd_OnFilterScriptInit
        forward drcmd_OnFilterScriptInit();
#else
        #if defined _ALS_OnGameModeInit
            #undef OnGameModeInit
        #else
            #define _ALS_OnGameModeInit
        #endif
        #define OnGameModeInit drcmd_OnGameModeInit
        forward drcmd_OnGameModeInit();
#endif
 
 
public OnPlayerCommandText(playerid, cmdtext[])
{
        new
                function[32],
                szokozmeddig = -1;
        while(++szokozmeddig < strlen(cmdtext)) if((cmdtext[szokozmeddig] == ' ')) break;
        strmid(function, cmdtext, 1, szokozmeddig);
        format(function, sizeof(function), "drcmd_%s", function);
        while(cmdtext[szokozmeddig] == ' ') szokozmeddig++;
        if(funcidx(function) != -1)
        {
                if(szokozmeddig == strlen(cmdtext))
                {
                        return CallLocalFunction(function, "is", playerid, "\1");
                }
                return CallLocalFunction(function, "is", playerid, cmdtext[szokozmeddig]);
        }
        return 0;
}
 
#if defined _ALS_OnPlayerCommandText
    #undef OnPlayerCommandText
#else
    #define _ALS_OnPlayerCommandText
#endif
#define OnPlayerCommandText drcmd_OnPlayerCommandText
forward drcmd_OnPlayerCommandText(playerid, cmdtext[]);
This is mine code. And i don't copied anything from zcmd -.-


Respuesta: DRCMD - Fast and easy command process! - Kurama - 10.03.2012

ZCMD Edited...


Re: DRCMD - Fast and easy command process! - Drake1994 - 10.03.2012

All my works is created by me^^. And it's very interesting. I published it on Hungarian Forum, and nobody said that is ZCMD Edit. I don't know you guys what you think it is ZCMD edit. Then you need to buy a new glasses. And beleive what you want, in Hungarian Forums if anybody edit a script, he/she will get banned ^^


Re: DRCMD - Fast and easy command process! - Reklez - 10.03.2012

Quote:
Originally Posted by Drake1994
Посмотреть сообщение
All my works is created by me^^. And it's very interesting. I published it on Hungarian Forum, and nobody said that is ZCMD Edit. I don't know you guys what you think it is ZCMD edit. Then you need to buy a new glasses.
i saw something like a word "zcmd" in your code that means you copy it i will not say anything like

"Nice job 10/10"

or something like "Cool gonna use it"

this is really really , post your own creation not a copy creation

so i can only say

and here you will get banned too because you are not telling the truth. Go get a life kid. we saw our 2 eyes i have glasses and i see it ZCMD!, get a life i'm just telling the truth


Re: DRCMD - Fast and easy command process! - Ballu Miaa - 10.03.2012

ZCMD Edited because he didnt even benchmarked it.

@Drake - Its okay brother. Sometimes shit happens in life. I really think this is just a ZCMD edit! Nothing else


Re: DRCMD - Fast and easy command process! - Drake1994 - 10.03.2012

Man, where you found a fucked ZCMD in my fucked code?

Код:
#if defined _drcmd_included
        #endinput
#endif
#define _drcmd_included
 
#define DRCMD:%1(%2,%3) \
                forward drcmd_%1(%2,%3); \
                public drcmd_%1(%2,%3)
 
#define DRCMD_%1(%2,%3) \
                DRCMD:%1(%2,%3)
 
#define drcmd(%1,%2,%3) \
                DRCMD:%1(%2,%3)
               
#define CMD:%1(%2,%3) \
                DRCMD:%1(%2,%3)
 
#define COMMAND:%1(%2,%3) \
                DRCMD:%1(%2,%3)
 
#if !defined isnull
        #define isnull(%1) \
                                ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
#endif
 
#if defined FILTERSCRIPT
public
        OnFilterScriptInit()
#else
public
        OnGameModeInit()
#endif
{
        #if defined FILTERSCRIPT
                if(funcidx("OnFilterScriptInit") != -1)
                    return CallLocalFunction("OnFilterScriptInit", "");
        #else
            if(funcidx("OnGameModeInit") != -1)
                return CallLocalFunction("OnGameModeInit", "");
        #endif
        return 1;
}
#if defined FILTERSCRIPT
        #if defined _ALS_OnFilterScriptInit
            #undef OnFilterScriptInit
        #else
            #define _ALS_OnFilterScriptInit
        #endif
        #define OnFilterScriptInit drcmd_OnFilterScriptInit
        forward drcmd_OnFilterScriptInit();
#else
        #if defined _ALS_OnGameModeInit
            #undef OnGameModeInit
        #else
            #define _ALS_OnGameModeInit
        #endif
        #define OnGameModeInit drcmd_OnGameModeInit
        forward drcmd_OnGameModeInit();
#endif
 
 
public OnPlayerCommandText(playerid, cmdtext[])
{
        new
                function[32],
                szokozmeddig = -1;
        while(++szokozmeddig < strlen(cmdtext)) if((cmdtext[szokozmeddig] == ' ')) break;
        strmid(function, cmdtext, 1, szokozmeddig);
        format(function, sizeof(function), "drcmd_%s", function);
        while(cmdtext[szokozmeddig] == ' ') szokozmeddig++;
        if(funcidx(function) != -1)
        {
                if(szokozmeddig == strlen(cmdtext))
                {
                        return CallLocalFunction(function, "is", playerid, "\1");
                }
                return CallLocalFunction(function, "is", playerid, cmdtext[szokozmeddig]);
        }
        return 0;
}
 
#if defined _ALS_OnPlayerCommandText
    #undef OnPlayerCommandText
#else
    #define _ALS_OnPlayerCommandText
#endif
#define OnPlayerCommandText drcmd_OnPlayerCommandText
forward drcmd_OnPlayerCommandText(playerid, cmdtext[]);
Look at this. This have 2 macro of ZCMD (because of compatibility), but if you a fucked idiot then you can understand it -.-. And think about that, then ****** why don't said that ZCMD edit? Because he can understand the code, and see what is the true. And if you didn't beleive to me, then it's your problem. And if you want, you can ask somebody from our hungarian forums, that i created, and i don't edited.


Re: DRCMD - Fast and easy command process! - System64 - 10.03.2012

okay, than explain for what use is this in your script
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (zcmd_g_HasOPCS && !CallLocalFunction("OnPlayerCommandReceived", "is", playerid, cmdtext))
    {
        return 1;
    }
    new
        pos,
        funcname[MAX_FUNC_NAME];
    while (cmdtext[++pos] > ' ')
    {
        funcname[pos-1] = tolower(cmdtext[pos]);
    }
    format(funcname, sizeof(funcname), "cmd_%s", funcname);
    while (cmdtext[pos] == ' ') pos++;
    if (!cmdtext[pos])
    {
        if (zcmd_g_HasOPCE)
        {
            return CallLocalFunction("OnPlayerCommandPerformed", "isi", playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, "\1"));
        }
        return CallLocalFunction(funcname, "is", playerid, "\1");
    }
    if (zcmd_g_HasOPCE)
    {
        return CallLocalFunction("OnPlayerCommandPerformed", "isi", playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, cmdtext[pos]));
    }
    return CallLocalFunction(funcname, "is", playerid, cmdtext[pos]);
}



Re: DRCMD - Fast and easy command process! - Drake1994 - 10.03.2012

That's.....a..... speed...... test..... script.....


Re: DRCMD - Fast and easy command process! - Danee - 10.03.2012

So, i'm from HUNGARIAN FORUM, and THIS IS NOT ZCMD EDIT!


Re: DRCMD - Fast and easy command process! - Chaster - 10.03.2012

DRCMD:
Код:
    #if defined _drcmd_included
            #endinput
    #endif
    #define _drcmd_included
     
    #define DRCMD:%1(%2,%3) \
                    forward drcmd_%1(%2,%3); \
                    public drcmd_%1(%2,%3)
     
    #define DRCMD_%1(%2,%3) \
                    DRCMD:%1(%2,%3)
     
    #define drcmd(%1,%2,%3) \
                    DRCMD:%1(%2,%3)
                   
    #define CMD:%1(%2,%3) \
                    DRCMD:%1(%2,%3)
     
    #define COMMAND:%1(%2,%3) \
                    DRCMD:%1(%2,%3)
     
    #if !defined isnull
            #define isnull(%1) \
                                    ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
    #endif
     
    #if defined FILTERSCRIPT
    public
            OnFilterScriptInit()
    #else
    public
            OnGameModeInit()
    #endif
    {
            #if defined FILTERSCRIPT
                    if(funcidx("OnFilterScriptInit") != -1)
                        return CallLocalFunction("OnFilterScriptInit", "");
            #else
                if(funcidx("OnGameModeInit") != -1)
                    return CallLocalFunction("OnGameModeInit", "");
            #endif
            return 1;
    }
    #if defined FILTERSCRIPT
            #if defined _ALS_OnFilterScriptInit
                #undef OnFilterScriptInit
            #else
                #define _ALS_OnFilterScriptInit
            #endif
            #define OnFilterScriptInit drcmd_OnFilterScriptInit
            forward drcmd_OnFilterScriptInit();
    #else
            #if defined _ALS_OnGameModeInit
                #undef OnGameModeInit
            #else
                #define _ALS_OnGameModeInit
            #endif
            #define OnGameModeInit drcmd_OnGameModeInit
            forward drcmd_OnGameModeInit();
    #endif
     
     
    public OnPlayerCommandText(playerid, cmdtext[])
    {
            new
                    function[32],
                    szokozmeddig = -1;
            while(++szokozmeddig < strlen(cmdtext)) if((cmdtext[szokozmeddig] == ' ')) break;
            strmid(function, cmdtext, 1, szokozmeddig);
            format(function, sizeof(function), "drcmd_%s", function);
            while(cmdtext[szokozmeddig] == ' ') szokozmeddig++;
            if(funcidx(function) != -1)
            {
                    if(szokozmeddig == strlen(cmdtext))
                    {
                            return CallLocalFunction(function, "is", playerid, "\1");
                    }
                    return CallLocalFunction(function, "is", playerid, cmdtext[szokozmeddig]);
            }
            return 0;
    }
     
    #if defined _ALS_OnPlayerCommandText
        #undef OnPlayerCommandText
    #else
        #define _ALS_OnPlayerCommandText
    #endif
    #define OnPlayerCommandText drcmd_OnPlayerCommandText
    forward drcmd_OnPlayerCommandText(playerid, cmdtext[]);
ZCMD:
Код:
    /**********************************
    *                                *
    *   @Author:      ZeeX           *
    *   @Version:     0.3.1          *
    *   @Released:    31/10/2009     *
    *                                *
    **********************************/
     
    #if defined _zcmd_included
            #endinput
    #endif 
    #define _zcmd_included
     
    #define MAX_FUNC_NAME (32)
     
    #define COMMAND:%1(%2)          \
                            forward cmd_%1(%2); \
                            public cmd_%1(%2)              
                           
    #define CMD:%1(%2) \
                            COMMAND:%1(%2)
     
    #define command(%1,%2,%3) \
                            COMMAND:%1(%2, %3)     
         
    #define cmd(%1,%2,%3) \
                            COMMAND:%1(%2, %3)
     
    #if !defined isnull
            #define isnull(%1) \
                                    ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
    #endif
     
     
    forward OnPlayerCommandReceived(playerid, cmdtext[]);
    forward OnPlayerCommandPerformed(playerid, cmdtext[], success);
     
     
    static
            bool:zcmd_g_HasOPCS = false,
            bool:zcmd_g_HasOPCE = false;
     
    #if defined FILTERSCRIPT
     
    public OnFilterScriptInit()
    {
            zcmd_g_HasOPCS = funcidx("OnPlayerCommandReceived") != -1;
            zcmd_g_HasOPCE = funcidx("OnPlayerCommandPerformed") != -1;
        return CallLocalFunction("zcmd_OnFilterScriptInit", "");
    }
     
    #if defined _ALS_OnFilterScriptInit
        #undef OnFilterScriptInit
    #else
        #define _ALS_OnFilterScriptInit
    #endif
    #define OnFilterScriptInit zcmd_OnFilterScriptInit
    forward zcmd_OnFilterScriptInit();
     
    #else /*not a filterscript*/
     
    public OnGameModeInit()
    {
            zcmd_g_HasOPCS = funcidx("OnPlayerCommandReceived") != -1;
            zcmd_g_HasOPCE = funcidx("OnPlayerCommandPerformed") != -1;
            if (funcidx("zcmd_OnGameModeInit") != -1)
            {
                    return CallLocalFunction("zcmd_OnGameModeInit", "");
            }       
            return 1;
    }
     
    #if defined _ALS_OnGameModeInit
        #undef OnGameModeInit
    #else
        #define _ALS_OnGameModeInit
    #endif
    #define OnGameModeInit zcmd_OnGameModeInit
    forward zcmd_OnGameModeInit();
     
    #endif /*if defined FILTERSCRIPT*/
     
    public OnPlayerCommandText(playerid, cmdtext[])
    {
        if (zcmd_g_HasOPCS && !CallLocalFunction("OnPlayerCommandReceived", "is", playerid, cmdtext))
        {
            return 1;
        }
        new
            pos,
            funcname[MAX_FUNC_NAME];
        while (cmdtext[++pos] > ' ')
            {
                    funcname[pos-1] = tolower(cmdtext[pos]);
            }
            format(funcname, sizeof(funcname), "cmd_%s", funcname);
        while (cmdtext[pos] == ' ') pos++;
            if (!cmdtext[pos])
            {
                    if (zcmd_g_HasOPCE)
                    {
                            return CallLocalFunction("OnPlayerCommandPerformed", "isi", playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, "\1"));
                    }
                    return CallLocalFunction(funcname, "is", playerid, "\1");       
            }
            if (zcmd_g_HasOPCE)
            {
                    return CallLocalFunction("OnPlayerCommandPerformed", "isi", playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, cmdtext[pos]));
            }
            return CallLocalFunction(funcname, "is", playerid, cmdtext[pos]);
    }
     
    #if defined _ALS_OnPlayerCommandText
        #undef OnPlayerCommandText
    #else
        #define _ALS_OnPlayerCommandText
    #endif
    #define OnPlayerCommandText zcmd_OnPlayerCommandText
    forward zcmd_OnPlayerCommandText(playerid, cmdtext[]);
This is not ZCMD edit -.-.-


Re: DRCMD - Fast and easy command process! - System64 - 10.03.2012

ok it's not zcmd edit!
now give benchmarks with more commands, ****** has given you link


Re: DRCMD - Fast and easy command process! - Drake1994 - 10.03.2012

I think you didn't read the full topic clearly. As i said i can test whit it, because it thakes a lot of time to do that test, because my computer is old and slow.