Shuttleu
2009-05-13 02:06:51
{*******************************************************************************
function GetSkillFlashing: TStringArray;
By: Shuttleu
Description: Returns a Array of skills that are flashing
*******************************************************************************}
function GetSkillFlashing: TStringArray;
var
SkillPoint : TPoint;
SkillOffPut : TPointArray;
SkillName : TStringArray;
OriginalColor, SkillColor : TIntegerArray;
i, p, xx, yy : Integer;
begin
if GameTab(2) then
begin
SetArrayLength(SkillPoint, 24);
SkillName:=['attack', 'hitpoints', 'mining', 'strength', 'agility',
'smithing', 'defence', 'herblore', 'fishing', 'range',
'thieving', 'cooking', 'prayer', 'crafting', 'firemaking',
'magic', 'fletching', 'woodcutting', 'runecrafting', 'slayer',
'farming', 'construction', 'hunting', 'summoning'];
SetArrayLength(OriginalColor, 24);
OriginalColor:= [11053479, 143297, 7829622, 5669024, 3692653, 3357758,
8882557, 25088, 12568251, 607086, 2827562, 202813,
10666673, 603476, 3239099, 10619427, 949280, 949280,
937437, 11447468, 16732742, 2768209,3748925, 15261406];
SetArrayLength(SkillOffPut, 24);
SkillOffPut:= [Point(10, 10), Point(10, 10), Point(10, 10), Point(10, 10), Point(10, 10), Point(10, 10),
Point(10, 10), Point(10, 10), Point(10, 10), Point(10, 10), Point(10, 10), Point(10, 10),
Point(10, 10), Point(10, 10), Point(10, 10), Point(10, 9), Point(10, 8), Point(10, 10),
Point(10, 10), Point(10, 10), Point(10, 10), Point(10, 10), Point(9, 10), Point(10, 10)];
for p:=0 to 23 do
begin
if (p = 21) then
begin
MMouse(721, 440, 5, 5);
GetMousePos(xx, yy);
HoldMouse(xx, yy, True);
Wait(500+Random(500));
ReleaseMouse(xx, yy, True);
end;
SkillPoint:= SkillToCoords(True, SkillName[p]);
SetArrayLength(SkillColor, 31);
for i:=0 to 30 do
SkillColor[i]:= GetColor(SkillPoint.x - SkillOffPut[p].x, SkillPoint.y - SkillOffPut[p].y);
for i:=0 to 30 do
begin
if (not(OriginalColor[p] = SkillColor[i])) then
begin
SetArrayLength(Result, GetArrayLength(Result)+1);
Result[GetArrayLength(Result)-1]:= SkillName[p];
end;
end;
end;
end;
end;
{*******************************************************************************
function IsSkillFlashing(skill: string): boolean;
By: Shuttleu
Description: Returns true if the input skill is flashing
*******************************************************************************}
function IsSkillFlashing(skill: string): boolean;
var
SkillOffPut, SkillPoint : TPoint;
OriginalColor, i, xx, yy : Integer;
SkillColor : TIntegerArray;
Scroll : Boolean;
begin
if GameTab(2) then
begin
case skill of
'attack', 'hitpoints','hp',
'mining', 'strength', 'agility',
'smithing', 'defence', 'herblore',
'fishing', 'range','ranged',
'thieving', 'cooking', 'prayer',
'crafting', 'firemaking', 'woodcutting',
'runecrafting', 'slayer', 'farming',
'construction', 'summoning': SkillOffPut:= Point(10, 10);
'magic': SkillOffPut:= Point(10, 9);
'fletching': SkillOffPut := Point(10, 8);
'hunting', 'hunter': SkillOffPut := Point(9, 10);
else begin
Writeln('Incorrect Skill');
exit;
end;
end;
case skill of
'attack': OriginalColor := 11053479;
'hitpoints','hp': OriginalColor := 143297;
'mining': OriginalColor := 7829622;
'strength': OriginalColor := 5669024;
'agility': OriginalColor := 3692653;
'smithing': OriginalColor := 3357758;
'defence': OriginalColor := 8882557;
'herblore': OriginalColor := 25088;
'fishing': OriginalColor := 12568251;
'range','ranged': OriginalColor := 607086;
'thieving': OriginalColor := 2827562;
'cooking': OriginalColor := 202813;
'prayer': OriginalColor := 10666673;
'crafting': OriginalColor := 603476;
'firemaking': OriginalColor := 3239099;
'magic': OriginalColor := 10619427;
'fletching': OriginalColor := 949280;
'woodcutting': OriginalColor := 949280;
'runecrafting': OriginalColor := 937437;
'slayer': OriginalColor := 11447468;
'farming': OriginalColor := 16732742;
'construction': OriginalColor := 2768209;
'hunting', 'hunter': OriginalColor := 3748925;
'summoning': OriginalColor := 15261406;
end;
case skill of
'construction', 'hunting', 'hunter', 'summoning': Scroll:= True;
else
Scroll:= False;
end;
if Scroll then
begin
MMouse(721, 440, 5, 5);
GetMousePos(xx, yy);
HoldMouse(xx, yy, True);
Wait(500+Random(500));
ReleaseMouse(xx, yy, True);
end;
SkillPoint:= SkillToCoords(True, skill);
SetArrayLength(SkillColor, 31);
for i:=0 to 30 do
SkillColor[i]:= GetColor(SkillPoint.x - SkillOffPut.x, SkillPoint.y - SkillOffPut.y);
for i:=0 to 30 do
begin
if (not(OriginalColor = SkillColor[i])) then
begin
Result:= True;
exit;
end;
end;
end;
end;i havent tested them yet but they should work in theory~shut