By the way, after reflection is updated, check Reflection's gametab.scar since its probably much better. There are a lot of great function's in reflection such as:
SCAR Code:
{*******************************************************************************
function IsQuestCompleted(s: string): Boolean;
By: lordsaturn
Description: Returns true if the first quest containing the given string is completed.
*******************************************************************************}
function IsQuestCompleted(s: string): Boolean;
begin
Result := GetQuest(s).Completed;
end;
SCAR Code:
{*******************************************************************************
function GetMySkill(Skill: Integer; Level: Boolean): Integer;
By: Nava2
Description: Dependant on Level, will return the Top level if true, or the xp
if false. Will return the skill number Skill.
*******************************************************************************}
function GetMySkill(Skill: Integer; Level: Boolean) : Integer;
begin
if (not InRange(Skill, 0, 23)) or not R_LoggedIn then
begin
SRL_Warn('GetMySkill', 'Wrongly inputted integer in skill, or not logged in.', Warn_AllVersions);
Result := -1;
Exit;
end;
if Level then
Result := SmartGetFieldArrayInt(0, MaxLevels, Skill)
else
Result := SmartGetFieldArrayInt(0, Experiences, Skill);
end;
Note: For GetMySkill, it doesn't have to switch gametabs, since reflection reads the client 
Good Luck