Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define ORDER_ASC 0
- #define ORDER_DES 1
- new Float:t_Data[MAX_PLAYERS];
- new bool:t_IsDataEntered = false;
- new t_id[MAX_PLAYERS];
- new t_Data_Sorted_Manner = -1;
- /*
- native t_FeedInfo(playerid,Float:info);
- native t_GetRank(playerid,order);
- native t_GetPlayer(rank,order);
- */
- stock t_FeedInfo(playerid,Float:info)
- {
- t_Data[playerid] = info;
- t_id[playerid] = playerid;
- t_IsDataEntered = true;
- return 1;
- }
- stock SortData(order)
- {
- if(order == ORDER_ASC)
- {
- for(new i=0;i<MAX_PLAYERS;++i)
- {
- if(!IsPlayerConnected(i)) continue;
- for(new j=i;j<MAX_PLAYERS;++j)
- {
- if(!IsPlayerConnected(j)) continue;
- if(t_Data[j]<t_Data[i])
- {
- new Float:temp = t_Data[i];
- t_Data[i] = t_Data[j];
- t_Data[j] = temp;
- new temp1 = t_id[i];
- t_id[i] = t_id[j];
- t_id[j] = temp1;
- }
- }
- }
- return 1;
- }
- else
- {
- for(new i=0;i<MAX_PLAYERS;++i)
- {
- if(!IsPlayerConnected(i)) continue;
- for(new j=i;j<MAX_PLAYERS;++j)
- {
- if(!IsPlayerConnected(j)) continue;
- if(t_Data[j]>t_Data[i])
- {
- new Float:temp = t_Data[i];
- t_Data[i] = t_Data[j];
- t_Data[j] = temp;
- new temp1 = t_id[i];
- t_id[i] = t_id[j];
- t_id[j] = temp1;
- }
- }
- }
- return 1;
- }
- }
- stock t_GetRank(playerid,order)
- {
- if(t_IsDataEntered == false)
- {
- printf("TOP_PLAYER [ERROR] : Data is not entered\nAborting process.");
- return -1;
- }
- if(playerid==INVALID_PLAYER_ID || (!IsPlayerConnected(playerid)))
- {
- printf("TOP_PLAYER [ERROR] : Invalid ID || Player not connected\nAborting process.");
- return -1;
- }
- if(order>1 || order < 0)
- {
- printf("TOP_PLAYER [ERROR] : Wrong Order (only 0,1 allowed)\nAborting process.");
- return -1;
- }
- else if(order == ORDER_ASC)//Ascending order 1,2,3,4,5
- {
- if(t_Data_Sorted_Manner != ORDER_ASC)
- {
- SortData(ORDER_ASC);
- t_Data_Sorted_Manner = ORDER_ASC;
- }
- new r;
- for(new i=0;i<MAX_PLAYERS;++i)
- {
- if(!IsPlayerConnected(i)) continue;
- if(t_id[i] == playerid)
- {
- r = i+1;
- break;
- }
- }
- return r;
- }
- else if(order == ORDER_DES)//Descending order 5,4,3,2,1
- {
- if(t_Data_Sorted_Manner != ORDER_DES)
- {
- SortData(ORDER_DES);
- t_Data_Sorted_Manner = ORDER_DES;
- }
- new r;
- for(new i=0;i<MAX_PLAYERS;++i)
- {
- if(!IsPlayerConnected(i)) continue;
- if(t_id[i] == playerid)
- {
- r = i+1;
- break;
- }
- }
- return r;
- }
- return 0;
- }
- stock t_GetPlayer(rank,order)
- {
- if(t_IsDataEntered == false)
- {
- printf("TOP_PLAYER [ERROR] : Data is not entered\nAborting process.");
- return -1;
- }
- if(rank<1)
- {
- printf("TOP_PLAYER [ERROR] : Rank can not be less than 1.\nAborting process.");
- return -1;
- }
- if(order>1 || order < 0)
- {
- printf("TOP_PLAYER [ERROR] : Wrong Order (only 0,1 allowed)\nAborting process.");
- return -1;
- }
- else if(order == ORDER_ASC)//Ascending order 1,2,3,4,5
- {
- if(t_Data_Sorted_Manner != ORDER_ASC)
- {
- SortData(ORDER_ASC);
- t_Data_Sorted_Manner = ORDER_ASC;
- }
- return t_id[rank-1];
- }
- else if(order == ORDER_DES)//Descending order 5,4,3,2,1
- {
- if(t_Data_Sorted_Manner != ORDER_DES)
- {
- SortData(ORDER_DES);
- t_Data_Sorted_Manner = ORDER_DES;
- }
- return t_id[rank-1];
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement