Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- GetPlayerRank(client,String:player[])
- {
- if(IsValidPlayer(client))
- {
- new mode,neededclient;
- decl String:query[128], String:playername[128], String:clientname[128];
- if(StrEqual(player,"",false))
- {
- GetClientName(client,clientname,sizeof(clientname));
- ReplaceString(clientname, sizeof(clientname), "'", "", false);
- strcopy(playername, sizeof(playername), clientname);
- neededclient = client;
- mode = 0;
- }
- else
- {
- strcopy(playername, sizeof(playername), player);
- for(new x=1;x<=MaxClients;x++)
- {
- GetClientName(x,clientname,sizeof(clientname));
- ReplaceString(clientname, sizeof(clientname), "'", "", false);
- if(StrContains(clientname,playername,false))
- neededclient = x;
- }
- mode = 1;
- }
- new Handle:datapack = CreateDataPack();
- WritePackCell(datapack, mode);
- WritePackCell(datapack, neededclient);
- WritePackString(datapack, playername);
- WritePackCell(datapack, 1);
- Format(query,sizeof(query),"SELECT COUNT(*) FROM thc_rpg WHERE level > %d",GetLevel(neededclient));
- SQL_TQuery(hSQL, GetPlayerRankCallback, query, datapack, DBPrio_Low);
- SetPackPosition(datapack, 3);
- WritePackCell(datapack, 2);
- Format(query, sizeof(query), "SELECT COUNT(*) FROM thc_rpg WHERE level = %d AND xp > %d",GetLevel(neededclient),GetXP(neededclient));
- SQL_TQuery(hSQL, GetPlayerRankCallback, query, datapack, DBPrio_Low);
- SetPackPosition(datapack, 3);
- WritePackCell(datapack, 3);
- Format(query, sizeof(query), "SELECT COUNT(*) FROM thc_rpg WHERE level = %d AND xp = %d AND credits > %d",GetLevel(neededclient),GetXP(neededclient),GetCredits(neededclient));
- SQL_TQuery(hSQL, GetPlayerRankCallback, query, datapack, DBPrio_Low);
- return 1;
- }
- else
- return -1;
- }
- public GetPlayerRankCallback(Handle:owner, Handle:hndl, const String:error[], any:datapack)
- {
- if (owner == INVALID_HANDLE)
- {
- LogMgr_Print(g_moduleCore, LogType_Error, "GetPlayerRank", "Connection to SQL database has failed, Reason: %s", error);
- reconnectcounter++;
- ConnectSQL();
- return -1;
- }
- new mode, neededclient, stage;
- decl String:playername[128];
- ResetPack(datapack);
- mode = ReadPackCell(datapack);
- neededclient = ReadPackCell(datapack);
- ReadPackString(datapack, playername, sizeof(playername));
- stage = ReadPackCell(datapack);
- if (hndl == INVALID_HANDLE)
- LogMgr_Print(g_moduleCore, LogType_Error, "GetPlayerRank", "Rank of player %s is not calculateable, Reason: %s", playername, error);
- else
- {
- SQL_Rewind(hndl);
- new bool:fetch=SQL_FetchRow(hndl);
- if(!fetch)
- {
- LogMgr_Print(g_moduleCore, LogType_Error, "GetPlayerRank", "Rank of player %s is not calculateable, Reason: Not data fetched", playername);
- return 0;
- }
- else
- {
- PlayerRanks[neededclient]+=SQL_FetchInt(hndl,0);
- if(stage==3)
- {
- if(mode==0)
- TransMgr_PrintTextAll(true, false, MsgFormat_Plugin, MsgType_Chat, INVALID_MODULE, false, "Your Player rank", PlayerRanks[neededclient],GetLevel(neededclient),GetXP(neededclient),GetCredits(neededclient));
- else
- TransMgr_PrintTextAll(true, false, MsgFormat_Plugin, MsgType_Chat, INVALID_MODULE, false, "Other Players rank", playername,PlayerRanks[neededclient],GetLevel(neededclient),GetXP(neededclient),GetCredits(neededclient));
- LogMgr_Print(g_moduleCore, LogType_Debug, "GetPlayerRank", "Player %s is ranked at %d", playername, PlayerRanks[neededclient]);
- }
- }
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement