Advertisement
Guest User

Untitled

a guest
Aug 20th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.94 KB | None | 0 0
  1. GetPlayerRank(client,String:player[])
  2. {
  3.     if(IsValidPlayer(client))
  4.     {
  5.         new mode,neededclient;
  6.         decl String:query[128], String:playername[128], String:clientname[128];
  7.  
  8.         if(StrEqual(player,"",false))
  9.         {
  10.             GetClientName(client,clientname,sizeof(clientname));
  11.             ReplaceString(clientname, sizeof(clientname), "'", "", false);
  12.             strcopy(playername, sizeof(playername), clientname);
  13.             neededclient = client;
  14.             mode = 0;
  15.         }
  16.         else
  17.         {
  18.             strcopy(playername, sizeof(playername), player);
  19.             for(new x=1;x<=MaxClients;x++)
  20.             {
  21.                 GetClientName(x,clientname,sizeof(clientname));
  22.                 ReplaceString(clientname, sizeof(clientname), "'", "", false);
  23.                 if(StrContains(clientname,playername,false))
  24.                     neededclient = x;
  25.             }
  26.             mode = 1;
  27.         }
  28.  
  29.         new Handle:datapack = CreateDataPack();
  30.         WritePackCell(datapack, mode);
  31.         WritePackCell(datapack, neededclient);
  32.         WritePackString(datapack, playername);
  33.  
  34.         WritePackCell(datapack, 1);
  35.         Format(query,sizeof(query),"SELECT COUNT(*) FROM thc_rpg WHERE level > %d",GetLevel(neededclient));
  36.         SQL_TQuery(hSQL, GetPlayerRankCallback, query, datapack, DBPrio_Low);
  37.  
  38.         SetPackPosition(datapack, 3);
  39.         WritePackCell(datapack, 2);
  40.         Format(query, sizeof(query), "SELECT COUNT(*) FROM thc_rpg WHERE level = %d AND xp > %d",GetLevel(neededclient),GetXP(neededclient));
  41.         SQL_TQuery(hSQL, GetPlayerRankCallback, query, datapack, DBPrio_Low);
  42.  
  43.         SetPackPosition(datapack, 3);
  44.         WritePackCell(datapack, 3);
  45.         Format(query, sizeof(query), "SELECT COUNT(*) FROM thc_rpg WHERE level = %d AND xp = %d AND credits > %d",GetLevel(neededclient),GetXP(neededclient),GetCredits(neededclient));
  46.         SQL_TQuery(hSQL, GetPlayerRankCallback, query, datapack, DBPrio_Low);
  47.  
  48.         return 1;
  49.     }
  50.     else
  51.         return -1;
  52. }
  53.  
  54. public GetPlayerRankCallback(Handle:owner, Handle:hndl, const String:error[], any:datapack)
  55. {
  56.     if (owner == INVALID_HANDLE)
  57.     {
  58.         LogMgr_Print(g_moduleCore, LogType_Error, "GetPlayerRank", "Connection to SQL database has failed, Reason: %s", error);
  59.         reconnectcounter++;
  60.         ConnectSQL();
  61.         return -1;
  62.     }
  63.  
  64.     new mode, neededclient, stage;
  65.     decl String:playername[128];
  66.     ResetPack(datapack);
  67.     mode = ReadPackCell(datapack);
  68.     neededclient = ReadPackCell(datapack);
  69.     ReadPackString(datapack, playername, sizeof(playername));
  70.     stage = ReadPackCell(datapack);
  71.  
  72.     if (hndl == INVALID_HANDLE)
  73.         LogMgr_Print(g_moduleCore, LogType_Error, "GetPlayerRank", "Rank of player %s is not calculateable, Reason: %s", playername, error);
  74.     else
  75.     {
  76.         SQL_Rewind(hndl);
  77.         new bool:fetch=SQL_FetchRow(hndl);
  78.         if(!fetch)
  79.         {
  80.             LogMgr_Print(g_moduleCore, LogType_Error, "GetPlayerRank", "Rank of player %s is not calculateable, Reason: Not data fetched", playername);
  81.             return 0;
  82.         }
  83.         else
  84.         {
  85.             PlayerRanks[neededclient]+=SQL_FetchInt(hndl,0);
  86.             if(stage==3)
  87.             {
  88.                 if(mode==0)
  89.                     TransMgr_PrintTextAll(true, false, MsgFormat_Plugin, MsgType_Chat, INVALID_MODULE, false, "Your Player rank", PlayerRanks[neededclient],GetLevel(neededclient),GetXP(neededclient),GetCredits(neededclient));
  90.                 else
  91.                     TransMgr_PrintTextAll(true, false, MsgFormat_Plugin, MsgType_Chat, INVALID_MODULE, false, "Other Players rank", playername,PlayerRanks[neededclient],GetLevel(neededclient),GetXP(neededclient),GetCredits(neededclient));
  92.                 LogMgr_Print(g_moduleCore, LogType_Debug, "GetPlayerRank", "Player %s is ranked at %d", playername, PlayerRanks[neededclient]);
  93.             }
  94.         }
  95.     }
  96.  
  97.     return 1;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement