Advertisement
FoxHound

FoxRank

Mar 7th, 2011
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.00 KB | None | 0 0
  1.                      /**//**//**//**//**//**//**//**//**/
  2.                     /*+--------------------------------+*/
  3.                     /*|                                |*/
  4.                     /*|             FOXRANK            |*/
  5.                     /*|          FILTERSCRIPT          |*/
  6.                     /*|      bY PSPgamer/FoxHound      |*/
  7.                     /*|            2 0 0 9             |*/
  8.                     /*|                                |*/
  9.                     /*+--------------------------------+*/
  10.                     /*|        30 November 2009        |*/
  11.                     /*+--------------------------------+*/
  12.                      /**//**//**//**//**//**//**//**//**/
  13.  
  14. //------< INCLUDEs >------//
  15.     #include <a_samp>
  16. //------------------------//
  17.  
  18. //-------------------------------< DEFINEs >------------------------//
  19.     #define RankUpKills 15 //Rank up when player killed 15 player.
  20. //------------------------------------------------------------------//
  21.  
  22. /*--------------------< RANK UP EXAMPLE >-----------------//
  23.     15 Kills = Up to rank 2
  24.     15*2(30) Kills = Up to rank 3
  25.     15*3(45) Kills = Up to rank 4
  26. //--------------------------------------------------------*/
  27.  
  28. //-----------< NEWs >-----------//
  29.     new pKills[MAX_PLAYERS];
  30.     new pRank[MAX_PLAYERS];
  31.     new pFirstSpawn[MAX_PLAYERS];
  32. //------------------------------//
  33.  
  34. //-----------------------------< OnFilterScriptInit/-Exit >-----------------------------//
  35.     public OnFilterScriptInit()
  36.     {
  37.         print("+--------------------------------+");
  38.         print("|             FOXRANG            |");
  39.         print("|          FILTERSCRIPT          |");
  40.         print("|      bY PSPgamer/FoxHound      |");
  41.         print("|             LOADED             |");
  42.         print("+--------------------------------+");
  43.         return 1;
  44.     }
  45.  
  46.     public OnFilterScriptExit()
  47.     {
  48.         print("+--------------------------------+");
  49.         print("|             FOXRANG            |");
  50.         print("|            UNLOADED            |");
  51.         print("+--------------------------------+");
  52.         return 1;
  53.     }
  54. //--------------------------------------------------------------------------------------//
  55.  
  56. //-----------------------------< OnPlayerCommandText >-----------------------------//
  57.     public OnPlayerCommandText(playerid, cmdtext[])
  58.     {
  59.         new cmd[256];
  60.         new idx;
  61.         new tmp[256];
  62.         new giveplayer[MAX_PLAYER_NAME];
  63.         new sendername[MAX_PLAYER_NAME];
  64.         cmd = strtok(cmdtext, idx);
  65.         if(strcmp(cmd, "/rank", true) == 0)
  66.         {
  67.             if(IsPlayerConnected(playerid))
  68.             {
  69.                 new string[256];
  70.                 if(pRank[playerid] == 1) format(string,sizeof(string),"Rank 1 (n00b)");
  71.                 if(pRank[playerid] == 2) format(string,sizeof(string),"Rank 2 (Killer)");
  72.                 if(pRank[playerid] == 3) format(string,sizeof(string),"Rank 3 (Ultrakiller)");
  73.                 if(pRank[playerid] == 4) format(string,sizeof(string),"Rank 4 (Boss)");
  74.                 if(pRank[playerid] == 5) format(string,sizeof(string),"Rank 5 (Big Boss)");
  75.                 SendClientMessage(playerid,0xFFFFFFAA,string);
  76.                 return 1;
  77.             }
  78.         }
  79.         if(strcmp(cmd, "/setrank", true) == 0)
  80.         {
  81.             if(IsPlayerConnected(playerid))
  82.             {
  83.                 tmp = strtok(cmdtext, idx);
  84.                 if(!strlen(tmp))
  85.                 {
  86.                     SendClientMessage(playerid, 0xBFC0C2FF, "/setrank [playerid/partOfName] [rank (1-5)]");
  87.                     return 1;
  88.                 }
  89.                 new playa;
  90.                 new newrank;
  91.                 playa = ReturnUser(tmp);
  92.                 tmp = strtok(cmdtext, idx);
  93.                 newrank = strval(tmp);
  94.                 if(!IsNumeric(tmp))
  95.                 {
  96.                     SendClientMessage(playerid, 0xBFC0C2FF, "You can use only Numbers !");
  97.                     return 1;
  98.                 }
  99.                 if(newrank < 1 || newrank > 5)
  100.                 {
  101.                     SendClientMessage(playerid, 0xBFC0C2FF, "You can't use numbers under 1 and over 5 !");
  102.                     return 1;
  103.                 }
  104.                 if (IsPlayerAdmin(playerid))
  105.                 {
  106.                     if(IsPlayerConnected(playa))
  107.                     {
  108.                         if(playa != INVALID_PLAYER_ID)
  109.                         {
  110.                             new string[32];
  111.                             new string2[32];
  112.                             GetPlayerName(playa, giveplayer, sizeof(giveplayer));
  113.                             GetPlayerName(playerid, sendername, sizeof(sendername));
  114.                             pRank[playa] = newrank;
  115.                             format(string,sizeof(string),"%s is now Rank %d !",giveplayer,pRank[playa]);
  116.                             SendClientMessage(playerid,0xFFFFFFAA,string);
  117.                             format(string2,sizeof(string2),"Admin %s has make you Rank %d",sendername,pRank[playa]);
  118.                             SendClientMessage(playa,0xFFFFFFAA,string);
  119.                             return 1;
  120.                         }
  121.                     }
  122.                 }
  123.             }
  124.             return 1;
  125.         }
  126.         return 0;
  127.     }
  128. //---------------------------------------------------------------------------------//
  129.  
  130. //---------------------------------< OnPlayerSpawn >---------------------------------//
  131.     public OnPlayerSpawn(playerid)
  132.     {
  133.         if(pFirstSpawn[playerid] == 0)
  134.         {
  135.             pRank[playerid] = 1;
  136.         }
  137.         return 1;
  138.     }
  139. //-----------------------------------------------------------------------------------//
  140.  
  141. //---------------------------------< OnPlayerDeath >---------------------------------//
  142.     public OnPlayerDeath(playerid, killerid, reason)
  143.     {
  144.         pKills[killerid] += 1;
  145.         if(pKills[killerid] == RankUpKills)
  146.         {
  147.             pRank[playerid] = 2;
  148.             SendClientMessage(playerid,0xFFFFFFAA,"You are now Rank 2 (killer)!");
  149.             return 1;
  150.         }
  151.         else if(pKills[killerid] == RankUpKills*2)
  152.         {
  153.             pRank[playerid] = 3;
  154.             SendClientMessage(playerid,0xFFFFFFAA,"You are now Rank 3 (ultrakiller)!");
  155.             return 1;
  156.         }
  157.         else if(pKills[killerid] == RankUpKills*3)
  158.         {
  159.             pRank[playerid] = 4;
  160.             SendClientMessage(playerid,0xFFFFFFAA,"You are now Rank 4 (Boss)!");
  161.             return 1;
  162.         }
  163.         else if(pKills[killerid] == RankUpKills*4)
  164.         {
  165.             pRank[playerid] = 5;
  166.             SendClientMessage(playerid,0xFFFFFFAA,"You are now Rank 5 (Big Boss)!");
  167.             return 1;
  168.         }
  169.         return 1;
  170.     }
  171. //--------------------------------------------------------------------------------------//
  172.  
  173. //----------------------------------------------< strtok definiton >--------------------------------------------//
  174.     stock strtok(const string[], &index,seperator=' ')
  175.     {
  176.         new length = strlen(string);
  177.         new offset = index;
  178.         new result[256];
  179.         while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
  180.         {
  181.             result[index - offset] = string[index];
  182.             index++;
  183.         }
  184.  
  185.         result[index - offset] = EOS;
  186.         if ((index < length) && (string[index] == seperator))
  187.         {
  188.             index++;
  189.         }
  190.         return result;
  191.     }
  192. //---------------------------------------------------------------------------------------------------------------//
  193.  
  194. //---------------------------< IsNumeric definiton >-------------------------//
  195.     IsNumeric(const string[])
  196.     {
  197.         for (new i = 0, j = strlen(string); i < j; i++)
  198.         {
  199.             if (string[i] > '9' || string[i] < '0') return 0;
  200.         }
  201.         return 1;
  202.     }
  203. //---------------------------------------------------------------------------//
  204.  
  205. //-------------------------------------< ReturnUser definiton >-----------------------------------//
  206.     ReturnUser(text[], playerid = INVALID_PLAYER_ID)
  207.     {
  208.         new pos = 0;
  209.         while (text[pos] < 0x21)
  210.         {
  211.             if (text[pos] == 0) return INVALID_PLAYER_ID;
  212.             pos++;
  213.         }
  214.         new userid = INVALID_PLAYER_ID;
  215.         if (IsNumeric(text[pos]))
  216.         {
  217.             userid = strval(text[pos]);
  218.             if (userid >=0 && userid < MAX_PLAYERS)
  219.             {
  220.                 if(!IsPlayerConnected(userid))
  221.                 {
  222.                     userid = INVALID_PLAYER_ID;
  223.                 }
  224.                 else
  225.                 {
  226.                     return userid;
  227.                 }
  228.             }
  229.         }
  230.         new len = strlen(text[pos]);
  231.         new count = 0;
  232.         new name[MAX_PLAYER_NAME];
  233.         for (new i = 0; i < MAX_PLAYERS; i++)
  234.         {
  235.             if (IsPlayerConnected(i))
  236.             {
  237.                 GetPlayerName(i, name, sizeof (name));
  238.                 if (strcmp(name, text[pos], true, len) == 0)
  239.                 {
  240.                     if (len == strlen(name))
  241.                     {
  242.                         return i;
  243.                     }
  244.                     else
  245.                     {
  246.                         count++;
  247.                         userid = i;
  248.                     }
  249.                 }
  250.             }
  251.         }
  252.         if (count != 1)
  253.         {
  254.             if (playerid != INVALID_PLAYER_ID)
  255.             {
  256.                 if (count)
  257.                 {
  258.                     SendClientMessage(playerid, 0xFF0000AA, "Multiple users found, please narrow earch");
  259.                 }
  260.                 else
  261.                 {
  262.                     SendClientMessage(playerid, 0xFF0000AA, "No matching user found");
  263.                 }
  264.             }
  265.             userid = INVALID_PLAYER_ID;
  266.         }
  267.         return userid;
  268.     }
  269. //------------------------------------------------------------------------------------------------//
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement