PDA

View Full Version : [Utility] Get Stats from highscores



SlipperyPickle
10-17-2015, 06:00 PM
I needed to get the stats of the player before the script started. So I ended up with this little snippet. Could be useful for someone in the future, that's why I'm posting this. It'll retrieve the current experience and the current level.

program highScores;
{$DEFINE SMART}
{$i srl-6/srl.simba}

const
HIGHSCORES_ATTACK = 1;
HIGHSCORES_DEFENCE = 2;
HIGHSCORES_STRENGTH = 3;
HIGHSCORES_CONSTITUTION = 4;
HIGHSCORES_RANGED = 5;
HIGHSCORES_PRAYER = 6;
HIGHSCORES_MAGIC = 7;
HIGHSCORES_COOKING = 8;
HIGHSCORES_WOODCUTTING = 9;
HIGHSCORES_FLETCHING = 10;
HIGHSCORES_FISHING = 11;
HIGHSCORES_FIREMAKING = 12;
HIGHSCORES_CRAFTING = 13;
HIGHSCORES_SMITHING = 14;
HIGHSCORES_MINING = 15;
HIGHSCORES_HERBLORER = 16;
HIGHSCORES_AGILITY = 17;
HIGHSCORES_THIEVING = 18;
HIGHSCORES_SLAYER = 19;
HIGHSCORES_FARMING = 20;
HIGHSCORES_RUNECRAFTING = 21;
HIGHSCORES_HUNTER = 22;
HIGHSCORES_CONSTRUCTION = 23;
HIGHSCORES_SUMMONING = 24;
HIGHSCORES_DUNGEONEERING = 25;
HIGHSCORES_DIVINATION = 26;

function getLevelHighScores(userName: string; skill: Integer): integer;
var
highScores, skillCode, newString: string;
xpString: TStringArray;

begin
highScores := getPage('http://services.runescape.com/m=hiscore/compare?user1=' + userName);
skillCode := 'table=' + IntToStr(skill) + '&page=1">';
xpString := multiBetween(highScores, skillCode, '</a>');
result := strToIntDef(ExtractFromStr(xpString[2], numbers), - 1);
end;

function getExpHighScores(userName: string; skill: Integer): integer;
var
highScores, skillCode, newString: string;
xpString: TStringArray;

begin
highScores := getPage('http://services.runescape.com/m=hiscore/compare?user1=' + userName);
skillCode := 'table=' + IntToStr(skill) + '&amp;page=1">';
xpString := multiBetween(highScores, skillCode, '</a>');
result := strToIntDef(ExtractFromStr(xpString[1], numbers), - 1);
end;


begin
WriteLn(IntToStr(getLevelHighScores('Zezima', HIGHSCORES_DIVINATION)));
WriteLn(IntToStr(getExpHighScores('Zezima', HIGHSCORES_DIVINATION)));
end.

joc213
11-07-2015, 06:40 PM
looks good going to try it out now

kiwikiwi
11-07-2015, 06:42 PM
Thanks for the release mate :) +REP

Thomas
12-19-2015, 12:09 PM
Try this:
MultiBetween(GetPage('http://hiscore.runescape.com/index_lite.ws?player=' + username), ',', ',');