# [Simple] Which player has most kills. Sorting Integer

Discussion in 'World Editor Help' started by RandomUser1, Jul 5, 2016.

1. ### RandomUser1New Member

Ratings:
+0 / 0 / -0
Just as the tittle states. It may be simple for some by i do not know how to find this especially when you have 8 players.

The map at the start caculates how many players are in-game and places the total number in "Players" (Integer)

Then i have "PlayerKills" (Integer) How do i find out who has the most kills? I dont need 2nd place or 3rd just who has the most of all players.

Varible List (Both Integer's)
PlayerKills [array] =
Players =

I know i can create individual Trigger pages for each player and checking if the kills are higher then the other but this would be a very ineffecient way and i assume there has to be a better way GUI or Jass

Last edited: Jul 5, 2016
2. ### jonasMember

Ratings:
+40 / 4 / -0
Add a variable for player with max kills. Loop through the players and if a player has more kills than the current max, make that player the one with max.

3. ### RandomUser1New Member

Ratings:
+0 / 0 / -0
Thank you!! I think i got it. I will leave this incase anyone else needs help with the same issue.
Code:
```Untitled Trigger
Events
Player - Player 1 (Red) skips a cinematic sequence
Conditions
Actions
Set NumberOfPlayers = 5
Set PlayerScores[(Player number of Player 1 (Red))] = (Random integer number between 1 and 100)
Set PlayerScores[(Player number of Player 2 (Blue))] = (Random integer number between 1 and 100)
Set PlayerScores[(Player number of Player 3 (Teal))] = (Random integer number between 1 and 100)
Set PlayerScores[(Player number of Player 4 (Purple))] = (Random integer number between 1 and 100)
Set PlayerScores[(Player number of Player 5 (Yellow))] = (Random integer number between 1 and 100)
For each (Integer A) from 1 to NumberOfPlayers, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
PlayerScores[(Integer A)] Greater than Max
Then - Actions
Set Max = PlayerScores[(Integer A)]
Set WinnerPlayer = (Integer A)
Else - Actions
Game - Display to (All players) the text: (The player with the highest points is  + (Player  + (String(WinnerPlayer))))
Game - Display to (All players) the text: (String(PlayerScores[(Player number of Player 1 (Red))]))
Game - Display to (All players) the text: (String(PlayerScores[(Player number of Player 2 (Blue))]))
Game - Display to (All players) the text: (String(PlayerScores[(Player number of Player 3 (Teal))]))
Game - Display to (All players) the text: (String(PlayerScores[(Player number of Player 4 (Purple))]))
Game - Display to (All players) the text: (String(PlayerScores[(Player number of Player 5 (Yellow))]))
Set Max = 0```

Last edited: Jul 5, 2016
4. ### RandomUser1New Member

Ratings:
+0 / 0 / -0
Weird. I tried to turn it into jass. It is about 80% accurate?
JASS:
``````    local integer i
set udg_NumberOfPlayers = 5
set udg_PlayerScores[GetConvertedPlayerId(Player(0))] = GetRandomInt(1, 100)
set udg_PlayerScores[GetConvertedPlayerId(Player(1))] = GetRandomInt(1, 100)
set udg_PlayerScores[GetConvertedPlayerId(Player(2))] = GetRandomInt(1, 100)
set udg_PlayerScores[GetConvertedPlayerId(Player(3))] = GetRandomInt(1, 100)
set udg_PlayerScores[GetConvertedPlayerId(Player(4))] = GetRandomInt(1, 100)
set i = 0
loop
exitwhen i >= udg_NumberOfPlayers
if udg_Max < udg_PlayerScores[i] then
set udg_Max = udg_PlayerScores[i]
set udg_WinnerPlayer = i
endif
set i = i + 1
endloop
call DisplayTextToForce( GetPlayersAll(), ( "The player with the highest points is " + ( "Player " + I2S(udg_WinnerPlayer) ) ) )
call DisplayTextToForce( GetPlayersAll(), I2S(udg_PlayerScores[GetConvertedPlayerId(Player(0))]) )
call DisplayTextToForce( GetPlayersAll(), I2S(udg_PlayerScores[GetConvertedPlayerId(Player(1))]) )
call DisplayTextToForce( GetPlayersAll(), I2S(udg_PlayerScores[GetConvertedPlayerId(Player(2))]) )
call DisplayTextToForce( GetPlayersAll(), I2S(udg_PlayerScores[GetConvertedPlayerId(Player(3))]) )
call DisplayTextToForce( GetPlayersAll(), I2S(udg_PlayerScores[GetConvertedPlayerId(Player(4))]) )
set udg_Max = 0``````

Last edited: Jul 5, 2016
5. ### tom_mai78101The Helper Connoisseur / Ex-MineCraft HostStaff Member

Ratings:
+946 / 4 / -1
At this point, how would you deem it to be correct?

Also, you know you can do 2 more loops? It will look nicer.

6. ### RandomUser1New Member

Ratings:
+0 / 0 / -0
EDIT: After several hours of attempting to fix it. I managed to get it to work. Thank you to all that helped

Last edited: Jul 5, 2016
7. ### tom_mai78101The Helper Connoisseur / Ex-MineCraft HostStaff Member

Ratings:
+946 / 4 / -1