For some reason every time I run my script the mouse sticks to the top right corner. I have no loop in my script that would do this, so I was wondering what was wrong... Is this a SRL bug?
For some reason every time I run my script the mouse sticks to the top right corner. I have no loop in my script that would do this, so I was wondering what was wrong... Is this a SRL bug?
Please post your script.
FORMERLY BORN2CODE | Play Internet Games
http://img147.imageshack.us/img147/2084/sigg.png
Plz post script + r u selecting window?
IM BACK!!!!!!!!!!!!!!!!!
RH.scar include :
SCAR Code:{
RRRRRR HH HH bb
RR RR uu uu nn nnn eee HH HH oooo bb oooo
RRRRRR uu uu nnn nn ee e HHHHHHH oo oo bbbbbb oo oo
RR RR uu uu nn nn eeeee HH HH oo oo bb bb oo oo
RR RR uuuu u nn nn eeeee HH HH oooo bbbbbb oooo
Version 0.6
}
//-----------------------------------------------------
//Anti-Ban mouse clicker from PH.scar
procedure ClickMouseSafe(X, Y: Integer; Left: Boolean);
begin
HoldMouse(X, Y, Left);
Wait(31 + Random(50));
ReleaseMouse(X, Y, Left);
end;
//-----------------------------------------------------
//Anti-Ban mouse mover
procedure MoveMouseSafe(X, Y: Integer);
var mouseX: Integer;
var mouseY: Integer;
var mouseDone: Boolean;
begin
mouseDone := False;
GetMousePos(mouseX, mouseY);
repeat
wait(1+Random(2));
if(X = mouseX)and(Y = mouseY) then
begin
mouseDone := True;
end else
begin
if(mouseX > X)and(mouseY > Y) then
begin
mouseX := mouseX-Random(3);
mouseY := mouseY-Random(3);
end else
begin
if(mouseX < X)and(mouseY < Y) then
begin
mouseX := mouseX+Random(3);
mouseY := mouseY+Random(3);
end else
begin
if(mouseX < X) then
begin
mouseX := mouseX+Random(3);
end;
if(mouseX > X) then
begin
mouseX := mouseX-Random(3);
end;
if(mouseY < Y) then
begin
mouseY := mouseY+Random(3);
end;
if(mouseY > Y) then
begin
mouseY := mouseY-Random(3);
end;
end;
end;
MoveMouse(mouseX, mouseY);
end;
until(mouseDone);
end;
//-----------------------------------------------------
//Anti-Ban mouse clicker from PH.scar - modified by hobojoe
procedure ClickMouseSafe2(X, Y: Integer; Left: Boolean);
begin
MoveMouseSafe(X, Y);
HoldMouse(X, Y, Left);
Wait(31 + Random(50));
ReleaseMouse(X, Y, Left);
end;
//-----------------------------------------------------
//String to Character converter
function StrToChar(S: String): Char;
begin
If(Length(S) = 1)then
begin
Result:= StrGet(S,1);
end;
end;
//------------------------------------
//Anti-Ban text typer with randoms
procedure TypeTextHuman(Text: String);
var
I: Integer;
S: String;
Time, RanTime: Integer;
begin
Time := 40;
RanTime := 20;
Wait(50+random(50))
begin
I:= 0;
repeat
I:= I + 1;
S:= Copy(Text,I,1)
//writeln(S);
SendKeysSilent(S);
//KeyDownSilent(GetKeyCode(StrToChar(S)));
//Wait(Time+Random(RanTime));
//KeyUpSilent(GetKeyCode(StrToChar(S)));
Wait(Time+Random(RanTime));
until(I = Length(Text))
end;
end;
//------------------------------------------------------------------------
//Works just like FindColor
procedure FindColorNew(var x, y: Integer; color, xs, ys, xe, ye: Integer);
var i: Integer;
var j: Integer;
begin
x := 0;
y := 0;
for i:= xs to xe do
begin
for j:= ys to ye do
begin
if(GetColor(i, j) = color)then
begin
if(x = 0)and(y = 0)then
begin
x := i;
y := j;
exit;
end;
end;
end;
end;
end;
//------------------------------------------------------------------------
//Works just like FindColor, but finds the last pixel
procedure FindColorNew2(var x, y: Integer; color, xs, ys, xe, ye: Integer);
var i: Integer;
var j: Integer;
begin
x := 0;
y := 0;
for i:= xs to xe do
begin
for j:= ys to ye do
begin
if(GetColor(i, j) = color)then
begin
if(x = 0)and(y = 0)then
begin
x := i;
y := j;
//exit;
end;
end;
end;
end;
end;
//-----------------------------------------------------------------------------------------
//Finds a color on the screen that produces a certain RS text
procedure FindColorRsText(var x, y: Integer; text: string; color, xs, ys, xe, ye: Integer);
var i: Integer;
var j: Integer;
var SkipRandomColor: Boolean;
begin
for i:= xs to xe do
begin
for j:= ys to ye do
begin
if(GetColor(i, j) = color)then
begin
MoveMouseSafe(i, j);
if(SkipRandomColor = True)then
begin
wait(100+Random(200));
end;
if(StartsWith(text, rs_GetUpText()))then
begin
x := i;
y := j;
exit;
end else
begin
SkipRandomColor := RBool;
end;
end;
end;
end;
end;
//-----------------------------------
//Clicks a color on the screen, uses FindColor
procedure ClickColor(color: Integer);
var clickX: Integer;
var clickY: Integer;
var clientW: Integer;
var clientH: Integer;
var mouseX: Integer;
var mouseY: Integer;
begin
GetMousePos(mouseX, mouseY);
GetClientDimensions(clientW, clientH);
FindColor(clickX, clickY, color, 0, 0, clientW, clientH);
ClickMouseSafe2(clickX, clickY, True);
wait(200+Random(100));
MoveMouseSafe(Random(clientW), Random(clientH));
wait(200+Random(100));
MoveMouseSafe(mouseX, mouseY);
end;
//-----------------------------------
//Clicks a color on the screen, uses FindColorNew2
procedure ClickColor2(color: Integer);
var clickX: Integer;
var clickY: Integer;
var clientW: Integer;
var clientH: Integer;
var mouseX: Integer;
var mouseY: Integer;
begin
GetMousePos(mouseX, mouseY);
GetClientDimensions(clientW, clientH);
FindColorNew2(clickX, clickY, color, 0, 0, clientW, clientH);
ClickMouseSafe2(clickX, clickY, True);
wait(200+Random(100));
MoveMouseSafe(Random(clientW), Random(clientH));
wait(200+Random(100));
MoveMouseSafe(mouseX, mouseY);
end;
SCAR Code://Auto-Miner - version 4
//by hobojoe
program RHminer;
{.include RH.scar}
{.include srl/srl.scar}
{.include SRL/SRL/skill/mining.scar}
{.include srl/srl/misc/users.scar}
var
logg2, doMine: Boolean;
brokepick, pick, oredtm: Integer; //DTMs
MineX, MineY: Integer; //Mining loactions
const
//other colours
road1 = 6588051;
door1 = 0;
//ore colours
copper = 3692667;
iron = 2635095;
coal = 1977388;
//what to mine
mineThis = coal;
//user info
RSUser = 'my username';
RSPass = 'my password';
RSMiningLevel = '58';
RSMaxHit = '10';
RSBestWeapon = 'rune scimmy';
procedure mainLoop; forward;
{function door1: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 1528170, MSX1, MSY1, MSX2, MSY2, 46);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 11.42) and (H <= 11.98) and (S >= 59.07) and (S <= 77.99) and (L >= 15.86) and (L <= 34.53) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 4.02) and (X <= 16.52) and (Y >= 4.02) and (Y <= 16.45) and (Z >= 0.80) and (Z <= 3.99) then
begin
Result := arC[i];
Writeln('door1 = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;}
function ladder1: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 2966608, MSX1, MSY1, MSX2, MSY2, 36);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 10.63) and (H <= 11.31) and (S >= 26.99) and (S <= 28.12) and (L >= 16.84) and (L <= 31.98) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 2.82) and (X <= 10.01) and (Y >= 2.92) and (Y <= 10.26) and (Z >= 1.69) and (Z <= 5.61) then
begin
Result := arC[i];
Writeln('Ladder1 = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
//-----------------------------------
//Finds the color of the ladder located in the dungeon with the giants
function LadderColorGiants: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MMCX, MMCY, arP, 1059672, MMX1, MMY1, MMX2, MMY2, 38);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 3.44) and (H <= 10.79) and (S >= 54.27) and (S <= 100.02) and (L >= 13.31) and (L <= 27.47) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 2.54) and (X <= 8.72) and (Y >= 1.55) and (Y <= 7.82) and (Z >= 0.15) and (Z <= 2.43) then
begin
Result := arC[i];
Writeln('LadderColor = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
//----------------------------------------
//logs in to RuneScape
procedure LoginUser(ruser, rpass: String);
var PX, PY, clickheretoplay: Integer;
var click: Boolean;
begin
ClickMouseSafe2(380, 179, True);
Wait(100 + Random(100));
clickheretoplay := BitmapFromString(3, 41, 'beNq7UX13ETME/X' +
'40G4L+PFkCRc9WoSO4IEwNXBdC+4OpEPT7bjcU3W6GIG1VyaGCfhy' +
'1gqCfJ5wh6NdpHwj6eTYEgn5fiIGgX5ezEehaMQq6UY2CAOcHroc=' +
'');
click:=false;
Wait(2000 + Random(1000));
writeln('logging in as user : '+ruser);
TypeTextHuman(ruser+chr(13));
Wait(100 + Random(100));
TypeTextHuman(rpass+chr(13));
Wait(100 + Random(100));
repeat
wait(10+random(100));
if findbitmap(clickheretoplay,PX,PY) then
begin
ClickMouseSafe2(PX, PY, true);
click:=true;
end;
until click=true;
logg2 := True;
end;
procedure CheckConnection();
var PX, PY, clickheretoplay: Integer;
begin
clickheretoplay := BitmapFromString(3, 41, 'beNq7UX13ETME/X' +
'40G4L+PFkCRc9WoSO4IEwNXBdC+4OpEPT7bjcU3W6GIG1VyaGCfhy' +
'1gqCfJ5wh6NdpHwj6eTYEgn5fiIGgX5ezEehaMQq6UY2CAOcHroc=' +
'');
if findbitmap(clickheretoplay, PX, PY) then
begin
ClickMouseSafe2(PX, PY, true);
wait(2000+Random(1000));
makecompass('N');
end;
end;
procedure CheckFull();forward;
procedure RandomText();
begin
case (Random(30)) of
1: begin
TypeTextHuman('Mining is fun...'+chr(13));
end;
2: begin
TypeTextHuman('I will be dropping some ores!'+chr(13));
end;
end;
end;
procedure GetLastNameSimple(var Chatter: String);
var
textP: TPoint;
begin
textP := TextCoords(8);
Chatter := LowerCase(Trim(GetTextAtEx(textP.x - 2, textP.y - 2, 0, SmallChars, False, False, 0, 1,
0, 60, False, tr_allChars)))
end;
procedure MamaFlame(objectText: String);
begin
case (Random(8)) of
0: begin
TypeTextHuman('ur moms a '+objectText+chr(13));
end;
1: begin
TypeTextHuman('Your moms a '+objectText+chr(13));
end;
2: begin
TypeTextHuman('u wish i was a'+objectText+chr(13));
end;
3: begin
TypeTextHuman('You wish I was a'+objectText+chr(13));
end;
4: begin
TypeTextHuman(objectText+'s are gay'+chr(13));
end;
5: begin
TypeTextHuman(objectText+'s are annoying'+chr(13));
end;
6: begin
TypeTextHuman(objectText+'s are wimps'+chr(13));
end;
7: begin
TypeTextHuman('I know Im a '+objectText+chr(13));
end;
8: begin
TypeTextHuman(objectText+'s have been smoking something'+chr(13));
end;
end;
end;
procedure PostRandomLOL();
begin
case (Random(2)) of
0: begin
TypeTextHuman('lol');
end;
1: begin
TypeTextHuman('lmao');
end;
2: begin
TypeTextHuman('rotflol');
end;
end;
end;
procedure PostChanceLOL();
begin
case (Random(1)) of
0: begin
end;
1: begin
PostRandomLOL();
end;
end;
end;
procedure PostRandomMiningLevel();
begin
case (Random(2)) of
0: begin
TypeTextHuman(RSMiningLevel+' '+chr(13));
end;
1: begin
TypeTextHuman('mining level : '+RSMiningLevel+chr(13));
end;
2: begin
TypeTextHuman('My mining level is '+RSMiningLevel+chr(13));
end;
end;
end;
procedure PostMaxHit();
begin
TypeTextHuman(RSMaxHit+chr(13));
wait(200+random(100));
TypeTextHuman('with '+RSBestWeapon+chr(13));
end;
procedure CheckText();
var whoSaidIt: String;
begin
GetLastNameSimple(whoSaidIt);
if(not(whoSaidIt = RSUser))then
begin
if(InChat('noob')) then
begin
MamaFlame('noob');
wait(500+random(250));
PostChanceLOL();
TypeTextHuman(chr(13));
end;
if(InChat('froob')) then
begin
MamaFlame('froob');
wait(500+random(250));
PostChanceLOL();
TypeTextHuman(chr(13));
end;
if(InChat('mining level')) then
begin
PostRandomMiningLevel();
end;
if(InChat('u bot')) then
begin
MamaFlame('bot');
wait(500+random(250));
PostChanceLOL();
TypeTextHuman(chr(13));
end;
if(InChat('r bot')) then
begin
MamaFlame('bot');
wait(500+random(250));
PostChanceLOL();
TypeTextHuman(chr(13));
end;
if(InChat('max hit')) then
begin
PostMaxHit();
wait(500+random(250));
PostChanceLOL();
TypeTextHuman(chr(13));
end;
end;
end;
procedure AntiBan2();
begin
case (Random(30)) of
27: begin
Gametab(1 + Random(12));
Wait(3220 + Random(2415));
Gametab(4);
end;
12: begin
makecompass('E');
end;
13: begin
makecompass('W');
end;
14: begin
makecompass('E');
makecompass('N');
makecompass('W');
makecompass('S');
end;
15: begin
RandomText();
end;
end;
end;
procedure FindMiningSpot();
var ClickX, ClickY: Integer;
begin
if findsymbol(ClickX, ClickY, 'mining spot') then
begin
ClickMouseSafe2(ClickX, ClickY-5-random(5), true);
end;
end;
procedure ClimbUpLadder();
var clickX: Integer;
var clickY: Integer;
var clientW: Integer;
var clientH: Integer;
var mouseX: Integer;
var mouseY: Integer;
begin
GetMousePos(mouseX, mouseY);
GetClientDimensions(clientW, clientH);
FindColorRsText(clickX, clickY, 'Climb-up', ladder1, 0, 0, 514, 337);
MoveMouseSafe(clickX, clickY);
wait(1000+Random(1000));
if(StartsWith('Climb-up', rs_GetUpText()))then
begin
ClickMouseSafe2(clickX, clickY, True);
end;
end;
procedure OpenDoor1();
var clickX: Integer;
var clickY: Integer;
var clientW: Integer;
var clientH: Integer;
var mouseX: Integer;
var mouseY: Integer;
begin
GetMousePos(mouseX, mouseY);
GetClientDimensions(clientW, clientH);
FindColorRsText(clickX, clickY, 'Open', door1, 0, 0, 514, 337);
MoveMouseSafe(clickX, clickY);
wait(1000+Random(1000));
if(StartsWith('Open', rs_GetUpText()))then
begin
ClickMouseSafe2(clickX, clickY, True);
end;
end;
procedure FindMultiCombat(var isMultiCombat: Boolean);
begin
if(GetColor(482, 318) = 4902655)then
begin
isMultiCombat := True;
end else
begin
isMultiCombat := False;
end;
end;
procedure FindWalk2();
var isOutside: Boolean;
var ClickX, ClickY: Integer;
begin
FindMultiCombat(isOutside);
if(isOutside = True)then
begin
makecompass('N');
OpenDoor1();
wait(5000+Random(500))
ClickMouseSafe2(692, 59, True);
wait(12000+Random(1200));
wait(12000+Random(1200));
findsymbol(ClickX, ClickY, 'water');
ClickMouseSafe2(ClickX, ClickY-5-random(5), true);
wait(12000+Random(1200));
ClickMouseSafe2(692, 59, True);
wait(12000+Random(1200));
wait(12000+Random(1200));
ClickMouseSafe2(692, 59, True);
wait(12000+Random(1200));
wait(12000+Random(1200));
PostRandomLOL();
TypeTextHuman(chr(13));
ClickColor2(FindVarrockRoadColor);
end else
begin
CheckConnection();
FindWalk2();
end;
end;
procedure FindWalk1();
var ClickX, ClickY: Integer;
begin
makecompass('S');
findsymbol(ClickX, ClickY, 'mining spot');
ClickMouseSafe2(ClickX, ClickY, true);
wait(2000+Random(1000));
CheckConnection();
wait(2000+Random(1000));
CheckConnection();
ClickColor(2105598); //Red Dot
wait(15000+Random(1500));
CheckConnection();
ClickColor(195836); //Yellow Dot
wait(12000+Random(1200));
CheckConnection();
makecompass('E');
ClickColor2(LadderColorGiants); //Ladder
wait(12000+Random(1200));
wait(12000+Random(1200));
CheckConnection();
ClimbUpLadder();
FindWalk2();
end;
procedure CheckMouseZero();
var mouseX: Integer;
var mouseY: Integer;
var clientW: Integer;
var clientH: Integer;
begin
GetMousePos(mouseX, mouseY);
GetClientDimensions(clientW, clientH);
if(mouseX = 0)and(mouseY = 0)then
begin
MoveMouseSafe(Random(clientW), Random(clientH));
wait(200+Random(100));
FindMiningSpot();
end;
end;
procedure FindMiningRandoms();
begin
if (FindGas(MineX, MineY) = True) then
begin
doMine := False;
end else
begin
doMine := True;
end;
if (FindPickHeadColor = True) then FindPick;
end;
procedure AntiRandoms();
begin
findnormalrandoms;
FindMiningRandoms();
if findfight=true then
begin
runaway('E',true,1,5000+random(1000));
end;
end;
procedure AntiBan();
begin
CheckMouseZero();
CheckFull();
AntiRandoms();
AntiBan2();
CheckText();
CheckConnection();
makecompass('S');
end;
procedure dropOres();
var i, ran: Integer;
begin
gametab(4);
for i := 5 to 28 do
begin
DropItem(i);
wait(100+random(10))
end;
ran:= Random(3);
case ran of
0:TypeTextHuman('I just dropped some ore, come get it'+chr(13));
1:TypeTextHuman('dropping ore here'+chr(13));
2:TypeTextHuman('dropped ore'+chr(13));
end;
end;
procedure CheckFull();
begin
if invfull then
dropOres();
end;
procedure WaitForMining();
var mark: Integer;
begin
marktime(mark);
repeat
AntiBan();
wait(100);
until (FindBlackChatMessage('to mine some') or (TimeFromMark(mark) >= 20000+random(2000)));
end;
procedure MineRock();
var clickX: Integer;
var clickY: Integer;
var clientW: Integer;
var clientH: Integer;
var mouseX: Integer;
var mouseY: Integer;
begin
if(doMine = True)then
begin
GetMousePos(mouseX, mouseY);
GetClientDimensions(clientW, clientH);
FindColorRsText(clickX, clickY, 'Mine', mineThis, 0, 0, 514, 337);
mineX := clickX;
mineY := clickY;
MoveMouseSafe(clickX, clickY);
wait(1000+Random(1000));
if(StartsWith('Mine', rs_GetUpText()))then
begin
ClickMouseSafe2(clickX, clickY, True);
WaitForMining();
end;
end;
end;
procedure checkLogin();
begin
if(GetColor(380, 82) = 10859198)then
begin
logg2 := False;
end else
begin
logg2 := True;
end;
end;
procedure mainLoop();
begin
repeat
if(logg2) then
begin
AntiBan();
MineRock();
end else
begin
LoginUser(RSUser, RSPass);
end;
until(False);
end;
procedure loaddtms;
begin
oredtm := DTMFromString('78DA63CC636260D065644006F7EACC19FE036' +
'990E87F20602C01AA5142550391859140BA02A8C698809A78A01A' +
'53026AE2806AB408A8C904AAB1C2AF06009ACB0A4D');
brokepick := DTMFromString('78DA630C60646078C680020C95D8187480C24' +
'0C4F01F08188381ACC70C6880118904D23140D64B026AE280AC57' +
'04D4440059AF09A8F103B2DE1150E30664FD25A0C607C87A41408' +
'D2B90F504BF1A00E7310FBE');
pick := DTMFromString('78DA635464646078C980022CD4D8197480C24' +
'0C4F01F08181580ACA70C6880118904D2EA40D62B026A7481AC8F' +
'04D4C801595F08A81103398E11BF1A2920EB3301732481ACD704D' +
'4480059CFF1AB0100450F0D2A');
end;
procedure SetupPlayer1();
begin
howmanyplayers := 1;
numberofplayers(howmanyplayers);
players[0].name := RSUser;
players[0].pass := RSPass;
players[0].nick := 'use';
players[0].active := true;
doMine := True;
Mousespeed:= 20;
end;
procedure setup;
begin
setupsrl;
SetupMining;
loaddtms;
checkLogin();
SetupPlayer1();
end;
begin
setup();
FindWalk1();
//ClimbUpLadder();
//mainLoop();
end.
The script is outdated. Get SRL svn #28 and a new script.
umm, I made the typetexthuman function and the loginuser function. They work perfectly fine, the issue I am having is with the mouse sticking to the top of the screen.I know PH.scar doesn't work, thats why I made my own include to run alongside srl. Oh and hear are some updates to my script :
SCAR Code://Auto-Miner - version 4
//by hobojoe
program RHminer;
{.include RH.scar}
{.include srl/srl.scar}
{.include SRL/SRL/skill/mining.scar}
{.include srl/srl/misc/users.scar}
var
logg2, doMine: Boolean;
brokepick, pick, oredtm: Integer; //DTMs
MineX, MineY: Integer; //Mining loactions
const
//ore colours
copper = 3692667;
iron = 2635095;
coal = 2175025;
//what to mine
mineThis = coal;
//user info
RSUser = 'username';
RSPass = 'password';
RSMiningLevel = '58';
RSMaxHit = '10';
RSBestWeapon = 'rune scimmy';
procedure mainLoop; forward;
function road1: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MMCX, MMCY, arP, 6127241, MMX1, MMY1, MMX2, MMY2, 21);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 9.24) and (H <= 15.14) and (S >= 19.01) and (S <= 19.48) and (L >= 41.16) and (L <= 49.04) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 15.76) and (X <= 24.14) and (Y >= 16.37) and (Y <= 26.11) and (Z >= 10.90) and (Z <= 16.09) then
begin
Result := arC[i];
Writeln('road1 = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function door1: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 1528170, MSX1, MSY1, MSX2, MSY2, 46);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 11.42) and (H <= 11.98) and (S >= 59.07) and (S <= 77.99) and (L >= 15.86) and (L <= 34.53) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 4.02) and (X <= 16.52) and (Y >= 4.02) and (Y <= 16.45) and (Z >= 0.80) and (Z <= 3.99) then
begin
Result := arC[i];
Writeln('door1 = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function ladder1: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 2966608, MSX1, MSY1, MSX2, MSY2, 36);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 10.63) and (H <= 11.31) and (S >= 26.99) and (S <= 28.12) and (L >= 16.84) and (L <= 31.98) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 2.82) and (X <= 10.01) and (Y >= 2.92) and (Y <= 10.26) and (Z >= 1.69) and (Z <= 5.61) then
begin
Result := arC[i];
Writeln('Ladder1 = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
//-----------------------------------
//Finds the color of the ladder located in the dungeon with the giants
function LadderColorGiants: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MMCX, MMCY, arP, 1059672, MMX1, MMY1, MMX2, MMY2, 38);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 3.44) and (H <= 10.79) and (S >= 54.27) and (S <= 100.02) and (L >= 13.31) and (L <= 27.47) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 2.54) and (X <= 8.72) and (Y >= 1.55) and (Y <= 7.82) and (Z >= 0.15) and (Z <= 2.43) then
begin
Result := arC[i];
Writeln('LadderColor = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
//----------------------------------------
//logs in to RuneScape
procedure LoginUser(ruser, rpass: String);
var PX, PY, clickheretoplay: Integer;
var click: Boolean;
begin
ClickMouseSafe2(380, 179, True);
Wait(100 + Random(100));
clickheretoplay := BitmapFromString(3, 41, 'beNq7UX13ETME/X' +
'40G4L+PFkCRc9WoSO4IEwNXBdC+4OpEPT7bjcU3W6GIG1VyaGCfhy' +
'1gqCfJ5wh6NdpHwj6eTYEgn5fiIGgX5ezEehaMQq6UY2CAOcHroc=' +
'');
click:=false;
Wait(2000 + Random(1000));
writeln('logging in as user : '+ruser);
TypeTextHuman(ruser+chr(13));
Wait(100 + Random(100));
TypeTextHuman(rpass+chr(13));
Wait(100 + Random(100));
repeat
wait(10+random(100));
if findbitmap(clickheretoplay,PX,PY) then
begin
ClickMouseSafe2(PX, PY, true);
click:=true;
end;
until click=true;
logg2 := True;
end;
procedure CheckConnection();
var PX, PY, clickheretoplay: Integer;
begin
clickheretoplay := BitmapFromString(3, 41, 'beNq7UX13ETME/X' +
'40G4L+PFkCRc9WoSO4IEwNXBdC+4OpEPT7bjcU3W6GIG1VyaGCfhy' +
'1gqCfJ5wh6NdpHwj6eTYEgn5fiIGgX5ezEehaMQq6UY2CAOcHroc=' +
'');
if findbitmap(clickheretoplay, PX, PY) then
begin
ClickMouseSafe2(PX, PY, true);
wait(2000+Random(1000));
makecompass('N');
end;
end;
procedure CheckFull();forward;
procedure RandomText();
begin
case (Random(30)) of
1: begin
TypeTextHuman('Mining is fun...'+chr(13));
end;
2: begin
TypeTextHuman('I will be dropping some ores!'+chr(13));
end;
end;
end;
procedure GetLastNameSimple(var Chatter: String);
var
textP: TPoint;
begin
textP := TextCoords(8);
Chatter := LowerCase(Trim(GetTextAtEx(textP.x - 2, textP.y - 2, 0, SmallChars, False, False, 0, 1,
0, 60, False, tr_allChars)))
end;
procedure MamaFlame(objectText: String);
begin
case (Random(8)) of
0: begin
TypeTextHuman('ur moms a '+objectText+chr(13));
end;
1: begin
TypeTextHuman('Your moms a '+objectText+chr(13));
end;
2: begin
TypeTextHuman('u wish i was a'+objectText+chr(13));
end;
3: begin
TypeTextHuman('You wish I was a'+objectText+chr(13));
end;
4: begin
TypeTextHuman(objectText+'s are gay'+chr(13));
end;
5: begin
TypeTextHuman(objectText+'s are annoying'+chr(13));
end;
6: begin
TypeTextHuman(objectText+'s are wimps'+chr(13));
end;
7: begin
TypeTextHuman('I know Im a '+objectText+chr(13));
end;
8: begin
TypeTextHuman(objectText+'s have been smoking something'+chr(13));
end;
end;
end;
procedure PostRandomLOL();
begin
case (Random(2)) of
0: begin
TypeTextHuman('lol');
end;
1: begin
TypeTextHuman('lmao');
end;
2: begin
TypeTextHuman('rotflol');
end;
end;
end;
procedure PostChanceLOL();
begin
case (Random(1)) of
0: begin
end;
1: begin
PostRandomLOL();
end;
end;
end;
procedure PostRandomMiningLevel();
begin
case (Random(2)) of
0: begin
TypeTextHuman(RSMiningLevel+' '+chr(13));
end;
1: begin
TypeTextHuman('mining level : '+RSMiningLevel+chr(13));
end;
2: begin
TypeTextHuman('My mining level is '+RSMiningLevel+chr(13));
end;
end;
end;
procedure PostMaxHit();
begin
TypeTextHuman(RSMaxHit+chr(13));
wait(200+random(100));
TypeTextHuman('with '+RSBestWeapon+chr(13));
end;
procedure CheckText();
var whoSaidIt: String;
begin
GetLastNameSimple(whoSaidIt);
if(not(whoSaidIt = RSUser))then
begin
if(InChat('noob')) then
begin
MamaFlame('noob');
wait(500+random(250));
PostChanceLOL();
TypeTextHuman(chr(13));
end;
if(InChat('froob')) then
begin
MamaFlame('froob');
wait(500+random(250));
PostChanceLOL();
TypeTextHuman(chr(13));
end;
if(InChat('mining level')) then
begin
PostRandomMiningLevel();
end;
if(InChat('u bot')) then
begin
MamaFlame('bot');
wait(500+random(250));
PostChanceLOL();
TypeTextHuman(chr(13));
end;
if(InChat('r bot')) then
begin
MamaFlame('bot');
wait(500+random(250));
PostChanceLOL();
TypeTextHuman(chr(13));
end;
if(InChat('max hit')) then
begin
PostMaxHit();
wait(500+random(250));
PostChanceLOL();
TypeTextHuman(chr(13));
end;
end;
end;
procedure AntiBan2();
begin
case (Random(30)) of
27: begin
Gametab(1 + Random(12));
Wait(3220 + Random(2415));
Gametab(4);
end;
12: begin
makecompass('E');
end;
13: begin
makecompass('W');
end;
14: begin
makecompass('E');
makecompass('N');
makecompass('W');
makecompass('S');
end;
15: begin
RandomText();
end;
end;
end;
procedure FindMiningSpot();
var ClickX, ClickY: Integer;
begin
if findsymbol(ClickX, ClickY, 'mining spot') then
begin
ClickMouseSafe2(ClickX, ClickY-5-random(5), true);
end;
end;
procedure ClimbUpLadder();
var clickX: Integer;
var clickY: Integer;
var clientW: Integer;
var clientH: Integer;
var mouseX: Integer;
var mouseY: Integer;
begin
GetMousePos(mouseX, mouseY);
GetClientDimensions(clientW, clientH);
FindColorRsText(clickX, clickY, 'Climb-up', ladder1, 0, 0, 514, 337);
MoveMouseSafe(clickX, clickY);
wait(1000+Random(1000));
if(StartsWith('Climb-up', rs_GetUpText()))then
begin
ClickMouseSafe2(clickX, clickY, True);
end;
end;
procedure WaitDoor1(clickX, clickY: Integer);
var mark: Integer;
begin
marktime(mark);
repeat
wait(1000+Random(500));
if(StartsWith('Open', rs_GetUpText()))then
begin
ClickMouseSafe2(clickX, clickY, True);
end;
until (FindBlackChatMessage('unlock the') or (TimeFromMark(mark) >= 20000+random(2000)));
end;
procedure OpenDoor1();
var clickX: Integer;
var clickY: Integer;
var clientW: Integer;
var clientH: Integer;
var mouseX: Integer;
var mouseY: Integer;
begin
clickX := 0;
clickY := 0;
GetMousePos(mouseX, mouseY);
GetClientDimensions(clientW, clientH);
FindColorRsText(clickX, clickY, 'Open', door1, 0, 0, 514, 337);
if(clickX = 0)and(clickY = 0)then
begin
OpenDoor1();
exit;
end;
MoveMouseSafe(clickX, clickY);
wait(1000+Random(1000));
WaitDoor1(clickX, clickY);
end;
procedure FindMultiCombat(var isMultiCombat: Boolean);
begin
if(GetColor(482, 318) = 4902655)then
begin
isMultiCombat := True;
end else
begin
isMultiCombat := False;
end;
end;
procedure FindWalk2();
var isOutside: Boolean;
var ClickX, ClickY: Integer;
begin
FindMultiCombat(isOutside);
if(isOutside = True)then
begin
makecompass('N');
OpenDoor1();
wait(5000+Random(500));
CheckConnection();
ClickMouseSafe2(692, 59, True);
wait(12000+Random(1200));
wait(12000+Random(1200));
findsymbol(ClickX, ClickY, 'water');
CheckConnection();
ClickMouseSafe2(ClickX, ClickY-5-random(5), true);
wait(12000+Random(1200));
CheckConnection();
ClickMouseSafe2(692, 59, True);
wait(12000+Random(1200));
wait(12000+Random(1200));
CheckConnection();
ClickMouseSafe2(668, 145, True);
wait(12000+Random(1200));
PostRandomLOL();
TypeTextHuman(chr(13));
CheckConnection();
makecompass('E');
ClickColor(195836); //Yellow Dot
wait(12000+Random(1200));
end else
begin
CheckConnection();
FindWalk2();
end;
end;
procedure FindWalk1();
var ClickX, ClickY: Integer;
begin
makecompass('S');
findsymbol(ClickX, ClickY, 'mining spot');
ClickMouseSafe2(ClickX, ClickY, true);
wait(2000+Random(1000));
CheckConnection();
wait(2000+Random(1000));
CheckConnection();
ClickColor(2105598); //Red Dot
wait(15000+Random(1500));
CheckConnection();
ClickColor(195836); //Yellow Dot
wait(12000+Random(1200));
CheckConnection();
makecompass('E');
ClickColor2(LadderColorGiants); //Ladder
wait(12000+Random(1200));
wait(12000+Random(1200));
CheckConnection();
ClimbUpLadder();
FindWalk2();
end;
procedure CheckMouseZero();
var mouseX: Integer;
var mouseY: Integer;
var clientW: Integer;
var clientH: Integer;
begin
GetMousePos(mouseX, mouseY);
GetClientDimensions(clientW, clientH);
if(mouseX = 0)and(mouseY = 0)then
begin
MoveMouseSafe(Random(clientW), Random(clientH));
wait(200+Random(100));
FindMiningSpot();
end;
end;
procedure FindMiningRandoms();
begin
if (FindGas(MineX, MineY) = True) then
begin
doMine := False;
end else
begin
doMine := True;
end;
if (FindPickHeadColor = True) then FindPick;
end;
procedure AntiRandoms();
begin
findnormalrandoms;
FindMiningRandoms();
if findfight=true then
begin
runaway('E',true,1,5000+random(1000));
end;
end;
procedure AntiBan();
begin
CheckMouseZero();
CheckFull();
AntiRandoms();
AntiBan2();
CheckText();
CheckConnection();
makecompass('S');
end;
procedure dropOres();
var i, ran: Integer;
begin
gametab(4);
for i := 5 to 28 do
begin
DropItem(i);
wait(100+random(10))
end;
ran:= Random(3);
case ran of
0:TypeTextHuman('I just dropped some ore, come get it'+chr(13));
1:TypeTextHuman('dropping ore here'+chr(13));
2:TypeTextHuman('dropped ore'+chr(13));
end;
end;
procedure CheckFull();
begin
if invfull then
dropOres();
end;
procedure WaitForMining();
var mark: Integer;
begin
marktime(mark);
repeat
AntiBan();
wait(100);
until (FindBlackChatMessage('to mine some') or (TimeFromMark(mark) >= 20000+random(2000)));
end;
procedure MineRock();
var clickX: Integer;
var clickY: Integer;
var clientW: Integer;
var clientH: Integer;
var mouseX: Integer;
var mouseY: Integer;
begin
if(doMine = True)then
begin
GetMousePos(mouseX, mouseY);
GetClientDimensions(clientW, clientH);
FindColorRsText(clickX, clickY, 'Mine', mineThis, 0, 0, 514, 337);
mineX := clickX;
mineY := clickY;
MoveMouseSafe(clickX, clickY);
wait(1000+Random(1000));
if(StartsWith('Mine', rs_GetUpText()))then
begin
ClickMouseSafe2(clickX, clickY, True);
WaitForMining();
end;
end;
end;
procedure checkLogin();
begin
if(GetColor(380, 82) = 10859198)then
begin
logg2 := False;
end else
begin
logg2 := True;
end;
end;
procedure mainLoop();
begin
repeat
if(logg2) then
begin
AntiBan();
MineRock();
end else
begin
LoginUser(RSUser, RSPass);
end;
until(False);
end;
procedure loaddtms;
begin
oredtm := DTMFromString('78DA63CC636260D065644006F7EACC19FE036' +
'990E87F20602C01AA5142550391859140BA02A8C698809A78A01A' +
'53026AE2806AB408A8C904AAB1C2AF06009ACB0A4D');
brokepick := DTMFromString('78DA630C60646078C680020C95D8187480C24' +
'0C4F01F08188381ACC70C6880118904D23140D64B026AE280AC57' +
'04D4440059AF09A8F103B2DE1150E30664FD25A0C607C87A41408' +
'D2B90F504BF1A00E7310FBE');
pick := DTMFromString('78DA635464646078C980022CD4D8197480C24' +
'0C4F01F08181580ACA70C6880118904D2EA40D62B026A7481AC8F' +
'04D4C801595F08A81103398E11BF1A2920EB3301732481ACD704D' +
'4480059CFF1AB0100450F0D2A');
end;
procedure SetupPlayer1();
begin
howmanyplayers := 1;
numberofplayers(howmanyplayers);
players[0].name := RSUser;
players[0].pass := RSPass;
players[0].nick := 'use';
players[0].active := true;
doMine := True;
Mousespeed:= 20;
end;
procedure setup;
begin
setupsrl;
SetupMining;
loaddtms;
checkLogin();
SetupPlayer1();
end;
begin
setup();
//FindWalk2();
mainLoop();
end.
Did you dragged the cross into RS? do you use ActivateClient?
At the beginning of your main loop.
Sometimes that randomly happens to me, but usually when i restart the script, it fixes itself.
There are currently 1 users browsing this thread. (0 members and 1 guests)