Simba Code:
(*
GetMMLevels
~~~~~~~~~~~
.. code-block:: pascal
Function GetMMLevels(LevelType : String;var ColorSign : String): integer;
Returns the level shown next to the minimap.
Colorsign returns the color of the text (Green,Yellow,Orange,Red).
Returns -1 if failed.
.. note::
by Raymond / Wizzup / Sabzi / NCDS
Example:
.. code-block:: pascal
Value := GetMMLevels( 'hp' ) ; // Will retrieve your Hit Points
Value := GetMMLevels( 'pray' ) ; // Will retrieve your Prayer Points
Value := GetMMLevels( 'run' ) ; // Will retrieve your Run energy
Value := GetMMLevels( 'summon' ) ; // Will retrieve your Summoning Points
*)
function GetMMLevels(LevelType: string; var ColorSign: string): Integer;
var
Colors : TIntegerArray;
Signs: TStringArray;
P: TPointArray;
I: Integer;
B: TBox;
begin;
Result := -1;
ColorSign := '';
case LowerCase(Leveltype) of
'health', 'hp', 'hitpoints', 'constitution': B := IntToBox(719,27,745,43);
'prayer', 'pray' : B := IntToBox(735,66,762,82);
'run','energy' : B := IntToBox(735,103,762,122);
'summon', 'summoning' : B := IntToBox(719,119,745,156);
else
begin;
srl_Warn('GetMMLevels', 'Invalid LevelType: ''' + LevelType + '', warn_AllVersions);
Exit;
end;
end;
Colors := [65280, 65535, 2070783, 255];
Signs := ['Green', 'Yellow', 'Orange', 'Red'];
for I := 0 to 3 do
begin
With B do
FindColorsTolerance(P, Colors[i], x1, y1, x2, y2, 30);
if Length(P) < 1 then
Continue;
Result := StrToIntDef(GetNumbers(GetTextAtExWrap(B.X1, B.Y1, B.X2, B.Y2, 0, 4, 4, Colors[i], 20, statChars)), -1);
if (Result > -1) then
begin
ColorSign := Signs[i];
Exit;
end;
end;
end;