ZiPoNz

Guide for strtok & strrest.

Feb 25th, 2012
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.02 KB | None | 0 0
  1. //ZiPoNz guide for strrest & strtok.
  2.  
  3. #include <a_samp>
  4.  
  5. public OnPlayerCommandText(playerid, cmdtext[])
  6. {
  7.     new cmd[128], idx;
  8.     cmd = strtok(cmdtext, idx);
  9.    
  10.     if(!strcmp(cmd, "/hello", true))
  11.     {
  12.         cmd = strtok(cmdtext, idx);
  13.         if(!strlen(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "Please write the PlayerID that you want to say Hello!");
  14.         if(!IsPlayerConnected(strval(cmd))) return SendClientMessage(playerid, 0xFFFFFF00, "The player isn't connected.");
  15.        
  16.         SendClientMessage(strval(cmd), 0xFFFFFF00, "Someone said you Hello!");
  17.         return true;
  18.     }
  19.     if(!strcmp(cmd, "/kick", true))
  20.     {
  21.         new reason[256], message[256], Name[24];
  22.         cmd = strtok(cmdtext, idx);
  23.         if(!strlen(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "Please write the PlayerID that you want to kick!");
  24.         if(!IsPlayerConnected(strval(cmd))) return SendClientMessage(playerid, 0xFFFFFF00, "The player isn't connected.");
  25.         reason = strrest(cmdtext, idx);
  26.         if(!strlen(reason)) return SendClientMessage(playerid, 0xFFFFFF00, "Please write the reason.");
  27.  
  28.         GetPlayerName(strval(cmd), Name, 24);
  29.         format(message, 256, "The player %s[%d] kicked from the server, reason: %s.", Name, strval(cmd));
  30.         SendClientMessageToAll(0xFFFFFF00, message);
  31.         Kick(strval(cmd));
  32.         return true;
  33.     }
  34.     return false;
  35. }
  36.  
  37. strtok(const string[], &index)
  38. {
  39.     new length = strlen(string);
  40.     while ((index < length) && (string[index] <= ' ')) index++;
  41.     new offset = index, result[20];
  42.     while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  43.     {
  44.         result[index - offset] = string[index];
  45.         index++;
  46.     }
  47.     result[index - offset] = EOS;
  48.     return result;
  49. }
  50.  
  51. stock strrest(const string[], &index)
  52. {
  53.     new length = strlen(string);
  54.     while ((index < length) && (string[index] <= ' '))
  55.     {
  56.         index++;
  57.     }
  58.     new offset = index;
  59.     new result[128];
  60.     while ((index < length) && ((index - offset) < (sizeof(result) - 1)))
  61.     {
  62.         result[index - offset] = string[index];
  63.         index++;
  64.     }
  65.     result[index - offset] = EOS;
  66.     return result;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment