SRL Archive - RS3 Outdated / Broken Scripts

IsSkillflashing(skill:string); request


ZaSz

2009-05-12 08:49:44

Great for antiban. Checks if skill is flashing (for when you level up) and clicks waits a random amount of time as if your looking at what you can now do, then exits.

Nadeem

2009-05-12 19:40:25

Hmmm, Not bad :P
Can be done!

NCDS

2009-05-12 19:48:15

if no one else does it, I will.

Sir R. M8gic1an

2009-05-12 19:53:05

eeehhhh? Public Svn Suggestions perhaps? :p

usefulness? checking for lvl ups i guess?

~RM

Nadeem

2009-05-12 21:18:34

NCDS I've already started it, unless you REALLY wanna do it :P

Shuttleu

2009-05-12 21:21:39

i shall do it now

~shut

Zlakata

2009-05-12 23:23:20

As Zasz said, its great for anti-ban. Imagine playing 10 hours, leveling in the 1st hour, and leaving the skill flashing for the rest 9 hours lol. Good Suggestion.

DeSnob

2009-05-12 23:37:05

It's also great for counting level ups for proggies. :)

Home

2009-05-12 23:45:59

I agree with you guys.. i think it is pretty odd if you just don't click the dam flashy image, from what i think this should be added in SRL, Well that's my opininion ( Of course when some of you guys do it :D ) I'm too lazy (:

~Home

Dynamite

2009-05-12 23:47:53

From: DeSnob
It's also great for counting level ups for proggies. :)


thats a good idea actually :D, Count how many times it flashys :D :p

T~M

Shuttleu

2009-05-13 00:27:55

function IsSkillFlashing(skill: string): boolean;
var
SkillOffPut, SkillPoint : TPoint;
OriginalColor, i : Integer;
SkillColor : TIntegerArray;
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': SkillOffPut:= Point(10, 10);
'magic': SkillOffPut:= Point(10, 9);
'fletching': SkillOffPut := Point(10, 8);
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;
end;
SkillPoint:= SkillToCoords(True, skill);
SetArrayLength(SkillColor, 31);
for i:=0 to 30 do
begin
SkillColor[i]:= GetColor(SkillPoint.x - SkillOffPut.x, SkillPoint.y - SkillOffPut.y);
Wait(100);
end;
for i:=0 to 30 do
begin
if (not(OriginalColor = SkillColor[i])) then
begin
Result:= True;
exit;
end;
end;
end;
end;
:)
in theory it should work

~shut

Zlakata

2009-05-13 00:55:19

/gasp You need that many strings for the Skills? O.O

Shuttleu

2009-05-13 01:03:02

ok i added the last 3 skills
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;
;)

~shut

Nadeem

2009-05-13 03:29:25

Mine looks better! :P I'm going to finish it soon, just got home a half an hour ago :P Currently it takes roughly <150ms to check for any movement i ALL skills, it should take <13ms just for one skill flashing check. It does NOT check the colors, it simply copies the inv screen to a canvas and fast checks if different. :) It uses my special AbtractMotion function, which is in a seperate thread released a few days ago. BTW, Your scrolling should be failsafed, what if it is already scrolled down to those skills? RS will think its fishy if you keep trying to scroll down each time to check ;)

EDIT:

[FINISHED FUNCTION: ] (Read this thread on how to use: http://www.villavu.com/forum/showthread.php?t=45292)

function SkillFlashing(Skill: Variant; All, Click: Boolean): Boolean;
var
I, J: Integer;
Coord, X, Y, A, B, XH, YH, F: TIntegerArray;
CTP: array [0..2] of array [0..6] of TBox;
C: TPoint;
begin
Result := False;
case Skill of
'att', 0 : Coord := [0, 0];
'str', 1 : Coord := [0, 1];
'def', 2 : Coord := [0, 2];
'ran', 3 : Coord := [0, 3];
'pra', 4 : Coord := [0, 4];
'mag', 5 : Coord := [0, 5];
'run', 6 : Coord := [0, 6];
'con', 7 : Coord := [0, 6];
'hit', 8 : Coord := [1, 0];
'agi', 9 : Coord := [1, 1];
'her', 10 : Coord := [1, 2];
'thi', 11 : Coord := [1, 3];
'cra', 12 : Coord := [1, 4];
'fle', 13 : Coord := [1, 5];
'sla', 14 : Coord := [1, 6];
'hun', 15 : Coord := [1, 6];
'min', 16 : Coord := [2, 0];
'smi', 17 : Coord := [2, 1];
'fis', 18 : Coord := [2, 2];
'coo', 19 : Coord := [2, 3];
'fir', 20 : Coord := [2, 4];
'woo', 21 : Coord := [2, 5];
'far', 22 : Coord := [2, 6];
'sum', 23 : Coord := [2, 6];
end;
X := [MIX1, MIX2, MIX2, MIX1];
Y := [MIY1, MIY1, MIY2, MIY2];
if(not(AbstractMotion(X[0],Y[0],X[1],Y[1],X[2],Y[2],X[3],Y[3],False)))then
Exit;
XH := [553, 609, 663, 573, 629, 683];
YH := [229, 260, 293, 323, 356, 388, 420, 249, 280, 313, 343, 376, 408, 440];
for J := 0 to 2 do
for I := 0 to 6 do
CTP[J][I] := IntToBox(XH[J], YH[I], XH[3+J], YH[7+I]);
if All then
begin
for J := 0 to 2 do
begin
for I := 0 to 6 do
begin
X := [CTP[J][I].x1, CTP[J][I].x2, CTP[J][I].x2, CTP[J][I].x1];
Y := [CTP[J][I].y1, CTP[J][I].y1, CTP[J][I].y2, CTP[J][I].y2];
if AbstractMotion(X[0],Y[0],X[1],Y[1],X[2],Y[2],X[3],Y[3],False) then
begin
F := [X[0], Y[0]];
Result := not Result;
Break;
end;
end;
end;
end else
begin
case Skill of
'con', 'hun', 'sum', 7, 15, 23 : SkillToCoords(True, 'construction');
end;
with C do
begin
x := Coord[0];
y := Coord[1];
A := [CTP[x][y].x1, CTP[x][y].x2, CTP[x][y].x2, CTP[x][y].x1];
B := [CTP[x][y].y1, CTP[x][y].y1, CTP[x][y].y2, CTP[x][y].y2];
end;
if AbstractMotion(A[0], B[0], A[1], B[1], A[2], B[2], A[3], B[3], False)then
begin
F := [A[0], B[0]];
Result := not Result;
end;
end;
if Result and Click then
begin
MMouse(F[0], F[1], 20, 20, True);
Wait(RandomRange(500, 2000));
CloseWindow;
end;
end;

Da 0wner

2009-05-13 04:35:45

LOL noob Nadeem. Using your AbstractMotion thing.

Nadeem

2009-05-13 04:40:32

gtfo! my abstract motion is sikkk!

Da 0wner

2009-05-13 04:50:51

Nah. Stuff could be added to it ;).

Why are you always offline on MSN :(.
Go online.

Nadeem

2009-05-13 04:53:07

Well ofcourse stuff can be added to anything :)

I'll be on at night, not on my laptop right now :/ this comp dun't even have msn :( I'm just lucky I have SCAR on my usb flash drive :D