BlueX

[PAWN]: bCMD (1.7)

Aug 22nd, 2012
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 1.72 KB | None | 0 0
  1. /*
  2.     bCMD - New Command Processor
  3.         Creator: BlueX
  4.         Version: 1.5
  5.         Last Update: 30/07/2012
  6. */
  7. #if defined _bcmd_include
  8.     #endinput    
  9. #endif
  10. #define _bcmd_include
  11. #include <a_samp>
  12.  
  13. #define bCMD[%1]-(%2)\
  14.     forward bcmd_%1(%2);\
  15.     public bcmd_%1(%2)
  16.    
  17. #define bcmd:%1(%2) \
  18.     bCMD[%1]-(%2)
  19.  
  20. #if !defined isnull
  21.     #define isnull(%1) \
  22.                 ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
  23. #endif
  24.  
  25. forward OnPlayerCallCommand(playerid,cmdtext[],sucess);
  26. forward bKey(playerid,_key[],cmdtext[]);
  27. const
  28.     C_COMMAND_LEN = 32,
  29.     C_KEY_LEN = 2,
  30.     C_PARAMS_LEN = 255;
  31.  
  32. public bKey(playerid,_key[],cmdtext[]){
  33.     if(!strfind(cmdtext,_key,true))
  34.         OnPlayerCommandText(playerid,cmdtext);
  35.     return 0;
  36. }  
  37.  
  38. public OnPlayerCommandText(playerid,cmdtext[]){
  39.     new _callback[C_COMMAND_LEN],_cmd[C_COMMAND_LEN],key[C_KEY_LEN],_params[C_PARAMS_LEN];
  40.     strmid(key,cmdtext,0,1);
  41.     for(new a; cmdtext[++a] > ' ';)
  42.         _cmd[a-1] = tolower(cmdtext[a]);
  43.     format(_callback,sizeof(_callback),"bcmd_%s",_cmd);
  44.     if(funcidx(_callback) == -1)
  45.         strins(_cmd,key,0,sizeof(_cmd)),CallLocalFunction("OnPlayerCallCommand","dsd",playerid,_cmd,0);
  46.     else {
  47.         strins(_cmd,key,0,sizeof(_cmd)),strmid(_params,cmdtext,0,255),strdel(_params,0,strfind(_params," ",false)+1);
  48.         CallLocalFunction(_callback,"dds",playerid,!strcmp(_params,"help",false) || !strcmp(_params,"ajuda",false),_params[0] == cmdtext[0] ? ("\1") : (_params));
  49.         CallLocalFunction("OnPlayerCallCommand","dsd",playerid,_cmd,1);
  50.     }
  51.     return 1;
  52. }
  53.  
  54. #if defined _ALS_OnPlayerCommandText
  55.     #undef OnPlayerCommandText
  56. #else
  57.     #define _ALS_OnPlayerCommandText
  58. #endif
  59. #define OnPlayerCommandText bcmd_OnPlayerCommandText
  60. forward bcmd_OnPlayerCommandText(playerid, cmdtext[]);
Advertisement
Add Comment
Please, Sign In to add comment