[Ajuda] Ajuda ZCMD
#2

Desculpa por nгo ter respondido ontem, eu acabei dormindo aqui no pc...

Inc ZCMD modificada:
pawn Код:
/**********************************
 *                                *
 *   @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*/

forward __OnPlayerCommandText__(playerid, cmdtext[]);
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]);
}
Exemplo de cуdigo no GM:
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (!!!strcmp(cmdtext, "/oi"))
    {
        SendClientMessage(playerid, -1, "teste");
        return 1;
    }
    return __OnPlayerCommandText__(playerid, cmdtext);
}
CMD:xau(playerid)
{
    SendClientMessage(playerid, -1, "teste 2");
    return 1;
}
A include do ZCMD, te recomendo salvar com outro nome, pra nгo perder o conteъdo da include original.
Os comandos no GM, tu pode fazer normalmente, sу que os comandos que tu for fazer com STRCMP, tu tem de retornar algum valor...

Exemplo
pawn Код:
if (strcmp(cmdtext, "/comando") == 0) //Exemplo de comando normal
{
    return 1;
}
De nada... Abraзos.
Reply


Messages In This Thread
Ajuda ZCMD - by Liipiinhow - 08.09.2013, 12:24
Re: Ajuda ZCMD - by WLSF - 08.09.2013, 13:13
Re: Ajuda ZCMD - by Liipiinhow - 08.09.2013, 13:47
Re: Ajuda ZCMD - by WLSF - 08.09.2013, 13:50
Re: Ajuda ZCMD - by Liipiinhow - 08.09.2013, 13:52
Re: Ajuda ZCMD - by WLSF - 08.09.2013, 13:55
Re: Ajuda ZCMD - by Liipiinhow - 08.09.2013, 14:00
Re: Ajuda ZCMD - by WLSF - 08.09.2013, 14:02
Re: Ajuda ZCMD - by Liipiinhow - 08.09.2013, 14:04
Re: Ajuda ZCMD - by Liipiinhow - 08.09.2013, 14:06

Forum Jump:


Users browsing this thread: 3 Guest(s)