/*********************************** * * * - Coded by: ZeeX * * - Version: 0.2.3 * * - Last update: 18/09/2009 * * * ***********************************/ #if defined _zcmd_included #endinput #endif #define _zcmd_included #define MAX_COMM_FUNC_NAME (32) #define zcmd(%1,%2,%3) \ forward zcmd_%1(%2, %3); \ public zcmd_%1(%2, %3) #if !defined isnull #define isnull(%1) \ ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1])))) #endif #if !defined ZCMD_NO_CALLBACK static gHasOPCT = false; #if defined FILTERSCRIPT public OnFilterScriptInit() { if (funcidx("ZCMD_OnPlayerCommandText") != -1) { gHasOPCT = true; } return CallLocalFunction("ZCMD_OnFilterScriptInit", ""); } #define OnFilterScriptInit ZCMD_OnFilterScriptInit forward ZCMD_OnFilterScriptInit(); #else public OnGameModeInit() { if (funcidx("ZCMD_OnPlayerCommandText") != -1) { gHasOPCT = true; } return CallLocalFunction("ZCMD_OnGameModeInit", ""); } #define OnGameModeInit ZCMD_OnGameModeInit forward ZCMD_OnGameModeInit(); #endif public OnPlayerCommandText(playerid, cmdtext[]) { if (gHasOPCT && CallLocalFunction("ZCMD_OnPlayerCommandText", "is", playerid, cmdtext)) { return 1; } #else ZCMD_ProcessCommand(playerid, cmdtext[]) { #endif new pos, funcname[MAX_COMM_FUNC_NAME]; while (cmdtext[pos] && cmdtext[pos] != ' ') cmdtext[pos++] |= 0x20; 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 #define OnPlayerCommandText ZCMD_OnPlayerCommandText forward ZCMD_OnPlayerCommandText(playerid, cmdtext[]); #endif