Advertisement
Guest User

KCMD

a guest
Jun 8th, 2011
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 1.16 KB | None | 0 0
  1. #if defined _kcmd_included
  2.     #endinput
  3. #endif
  4.  
  5. #if !defined _samp_included
  6.     #error "Fatal: a_samp needed - before kcmd"
  7. #endif
  8.  
  9. public OnPlayerCommandText(playerid, cmdtext[])
  10. {
  11.     new leng = strlen(cmdtext), spacepos = leng + 1, pos;
  12.     while (pos < leng)
  13.     {
  14.         if (cmdtext[pos] == ' ')
  15.         {
  16.             spacepos = pos;
  17.             pos = leng+1;
  18.         }
  19.         pos++;
  20.     }
  21.     new cmdname[128], params[128];
  22.     if (spacepos != leng + 1)
  23.     {
  24.         strcat(cmdname, "kcmd_");
  25.         new dest[64];
  26.         strmid(dest, cmdtext[1], 0, spacepos-1);
  27.         strcat(cmdname, dest);
  28.         strcat(params, cmdtext[spacepos+1]);
  29.     }
  30.     else
  31.     {
  32.         strcat(cmdname, "kcmd_");
  33.         strcat(cmdname, cmdtext[1]);
  34.         params[0] = 1;
  35.         params[1] = 0;
  36.     }
  37.     if (funcidx(cmdname) != -1)
  38.     {
  39.         return CallLocalFunction(cmdname, "is", playerid, params);
  40.     }
  41.     CallLocalFunction("hook_OnPlayerCommandText", "is", playerid, cmdtext);
  42.     return 0;
  43. }
  44.  
  45. forward hook_OnPlayerCommandText(playerid, cmdtext[]);
  46. #define OnPlayerCommandText hook_OnPlayerCommandText
  47. #define KCMD:%1(%2) forward kcmd_%1(%2); public kcmd_%1(%2)
  48. #if !defined isnull
  49.     #define isnull(%1) ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
  50. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement