/* bCMD - New Command Processor Creator: BlueX Version: 1.5 Last Update: 30/07/2012 */ #if defined _bcmd_include #endinput #endif #define _bcmd_include #include #define bCMD[%1]-(%2)\ forward bcmd_%1(%2);\ public bcmd_%1(%2) #define bcmd:%1(%2) \ bCMD[%1]-(%2) #if !defined isnull #define isnull(%1) \ ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1])))) #endif forward OnPlayerCallCommand(playerid,cmdtext[],sucess); forward bKey(playerid,_key[],cmdtext[]); const C_MAX_FUNC_NAME = 32; public bKey(playerid,_key[],cmdtext[]){ if(!strfind(cmdtext,_key,true)) OnPlayerCommandText(playerid,cmdtext); return 0; } public OnPlayerCommandText(playerid,cmdtext[]){ new _callback[32],_cmd[32],key[2],_params[255]; strmid(key,cmdtext,0,1); for(new a; cmdtext[++a] > ' ';) _cmd[a-1] = tolower(cmdtext[a]); format(_callback,sizeof(_callback),"bcmd_%s",_cmd); if(funcidx(_callback) == -1) strins(_cmd,key,0,sizeof(_cmd)),CallLocalFunction("OnPlayerCallCommand","dsd",playerid,_cmd,0); else { strins(_cmd,key,0,sizeof(_cmd)),strmid(_params,cmdtext,0,255),strdel(_params,0,strfind(_params," ",false)+1); CallLocalFunction(_callback,"dsd",playerid,_params[0] == cmdtext[0] ? ("\1") : (_params),!strcmp(_params,"help",false) || !strcmp(_params,"ajuda",false)); CallLocalFunction("OnPlayerCallCommand","dsd",playerid,_cmd,1); } return 1; } #if defined _ALS_OnPlayerCommandText #undef OnPlayerCommandText #else #define _ALS_OnPlayerCommandText #endif #define OnPlayerCommandText bcmd_OnPlayerCommandText forward bcmd_OnPlayerCommandText(playerid, cmdtext[]);