/*********************************** * * * - Coded by: ZeeX * * - Version: 0.2.6 * * - Last update: 26/10/2009 * * * ***********************************/ #if defined _zcmd_included #endinput #endif #define _zcmd_included #define MAX_COMM_FUNC_NAME (32) #define ZCMD:%1(%2) \ forward zcmd_%1(%2); \ public zcmd_%1(%2) // old macros #define zcmd(%1,%2,%3) \ ZCMD:%1(%2, %3) #if !defined isnull #define isnull(%1) \ ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1])))) #endif #if !defined ZCMD_NO_CALLBACK static ZCMD_g_HasOPCT = false; #if defined FILTERSCRIPT public OnFilterScriptInit() { if (funcidx("ZCMD_OnPlayerCommandText") != -1) { ZCMD_g_HasOPCT = true; } 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() { if (funcidx("ZCMD_OnPlayerCommandText") != -1) { ZCMD_g_HasOPCT = true; } 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_HasOPCT && CallLocalFunction("ZCMD_OnPlayerCommandText", "is", playerid, cmdtext)) { return 1; } #else // do not use callback ZCMD_ProcessCommand(playerid, cmdtext[]) { #endif //if !defined ZCMD_NO_CALLBACK new pos, funcname[MAX_COMM_FUNC_NAME]; while (cmdtext[++pos] > ' ') cmdtext[pos] = tolower(cmdtext[pos]); if (!cmdtext[pos]) { format(funcname, sizeof(funcname), "zcmd_%s", cmdtext[1]); } else { format(funcname, sizeof(funcname), "zcmd_%.*s", pos-1, cmdtext[1]); while (cmdtext[++pos] == ' ') {} if (cmdtext[pos]) { return CallLocalFunction(funcname, "is", playerid, cmdtext[pos]); } } return CallLocalFunction(funcname, "is", playerid, "\1"); } #if !defined ZCMD_NO_CALLBACK #if defined _ALS_OnPlayerCommandText #undef OnPlayerCommandText #else #define _ALS_OnPlayerCommandText #endif #define OnPlayerCommandText ZCMD_OnPlayerCommandText forward ZCMD_OnPlayerCommandText(playerid, cmdtext[]); #endif