Yeah, the code I gave you puts the scores in order. It doesn't display them. That's because I didn't know how to get the names. (edit: this was fixed)
To display the scores:
if INIKey>0 then
entries=INIKey
Text(1).Caption=Scoreboard
Execute "dim myarray("+cstr(entries)+")"
Execute "dim myarray2("+cstr(entries)+")"
Do
scorearray=split(Action.ReadINI("ScoreBoard.ini",1,entries),":")
Myarray(entries)=converttonumber(scorearray(1))
entries=entries-1
Loop While entries>0
entries=INIKey
Do
highest=0
for counter=0 to Inikey
if myarray(highest)<myarray(counter) then
highest=counter
end if
next
myarray2(entries)=myarray(highest)
Text(1).Caption=Text(1).Caption+Action.ReadINI("ScoreBoard.ini",1,highest)+vblf
myarray(highest)=-1
entries=entries-1
Loop while entries>0
end if
A solution to the problem I mentioned would be to change the whole system to use the Index as the player identifier, the key then being the score and the value being the display name. I wouldn't recommend that though.
Also note that the "next" command was misplaced. It is now fixed and checked. It works perfectly if you just need to display the scores. now I need to find a way to display the names too...
EDIT: Finally the code can display both scores and names.
If two players have the same score, the one who got it first is the first to display.
Thanks for helping to make this tutorial even better