Sir Ducksworthy
2012-03-08 17:20:23
How Long have You Played Runescape?
7 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
Pascal and Javascript
Are you a member of any other communities?
Nah
Tell us about yourself…
Please show us one (or multiple) of your scripts.
7 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
Pascal and Javascript
Are you a member of any other communities?
Nah
Tell us about yourself…
From: leetsxc
Hey, as you know my names Leetsxc
Ive been a member of this community for a while as you can see and fully support SRL and want to share some of my ideas with the SRL Members and start some projects. That is why Ive come to apply finally, Ive got my head wrapped around pretty much all of the coding, I think I'm more kind of creative tho or whatever then Mad genius coder/math head. I think coding skill's are only a small part of scripting really and technique/creativity sort of fills in the rest of the void for most and I know that certain creativity cant be shared with the forum as a whole as not everybody is trusted that's the main reason I'm applying, I need to be able to share with a body that is more up to the standards.
For example Anti-ban systems/scripts etc that Jagex will not get a hold of to analyze if developed :)
Please show us one (or multiple) of your scripts.
//--------------GRAND EXCHANGE CLAY SOFTENER MASTER v1.00------------------\\
program GrandExchangeClaySoftener;
{$DEFINE SMART}
{$i srl/srl.simba}
var
p,q,w,count,npc,banker,banker2,banker3,banker4,banker5,z,a,tries,loc,x, y, fountainicon,bankicon,herbicon,clay, softclay, Claysoftened, BreaksTaken, BreakTimer: Integer;
activated,found,slower,banking: boolean;
aFound: Extended;
const
Profit = 55; //Type the profit your making in the GE for a more accurate profit per hour proggie
HowMany = 10500; //Type how many clays you would like to soften number has to be equally divided by 28
SMART_HIGHDETAIL = false;
LaggyComputer = False; // true = you're using a laggy computer. (This WILL lower profit/hr) // false = you are using a fast computer.
UseBreaks = True; //Do you want to take breaks?
SwitchWorld = True; //Do you want to switch worlds after the break?
BreakIn = 290; //How many minutes until you take a break?
BreakInRandom = 10; //How many minutes should the "BreakIn" time be varied by?
BreakFor = 7; //How many minutes will you break for?
BreakForRandom = 7; //How many minutes should the "BreakFor" time be varied by?
Members = True; // True = Members World. False = Free World.
Version = '1.00';
NumbOfPlayers = 1; //How many players you are using.
StartPlayer = 0; //Player to start with. (0 = first character)
//The rest of your script goes here.
procedure DeclarePlayers;
var i:integer;
begin
NumberOfPlayers(NumbOfPlayers);
CurrentPlayer := StartPlayer;
for i := 0 to NumbOfPlayers-1 do
Players[i].BoxRewards := ['xp', 'oins', 'ostume', 'mote'];
// Make sure you set 'Booleans[0]' and 'Booleans[1]' accordingly!
with Players[0] do
begin
Name := ''; //Player username.
Pass := ''; //Player password.
Pin := ''; //Bank Pin. (Leave blank if you do not have a bank pin.)
Active := True;
end;
//To use multiple accounts, remove the {}'s from the below coding.
//Make sure you adjust "NumbOfPlayers", which is found in the constants! (aka - "Const")
{ with Players[1] do
begin
Name := ''; //Player username.
Pass := ''; //Player password.
Pin := ''; //Bank Pin. (Leave blank if you do not have a bank pin.)
Active := true;
end; }
{ with Players[2] do
begin
Name := ''; //Player username.
Pass := ''; //Player password.
Pin := ''; //Bank Pin. (Leave blank if you do not have a bank pin.)
Active := true;
end; }
end;
procedure AntiRandoms;
begin
FindNormalRandoms;
LampSkill := 'prayer' //This can be changed to any skill!
end;
////////////////////////////////////////////////////////////////////////////////
// No Editing is required below this point! //
////////////////////////////////////////////////////////////////////////////////
Procedure Antiban;
Begin
Case Random (350) of
0..18: Begin SleepAndMoveMouse(5000 + Random(750)); End;
19..24: Begin GameTab(tab_Inv) ExamineInv; GameTab(tab_Inv); SleepAndMoveMouse(2500 + Random(553)); End;
25..42: Begin RandomAngle(1); End;
43..48: Begin GameTab(Tab_Stats); Wait(3000 + Random(400)); GameTab(tab_Inv); SleepAndMoveMouse(2550 + Random(658)); End;
49..54: Begin GameTab(tab_Stats) HoverSkill('random', False); GameTab(tab_Inv); SleepAndMoveMouse(2200 + Random(545)); End;
55..60: Begin PickUpMouse; End;
61..66: Begin RandomMovement; End;
67..72: Begin BoredHuman; End;
73..78: Begin ExamineInv; End;
End;
End;
procedure InitDTMs;
begin
banker := DTMFromString('mrAAAAHic42BgYPBnYmBwAOJYIA4EYl8gDgdiLyAOBmJLoBpzILYHYh0gVobyjYFYH4j//5di8I3RZkhL8GB48fsHg0eUHMPv/5xgfO0WJwM/UA0+zEgAwwAADEUSAg==');
banker2 := DTMFromString('mlwAAAHicY2dgYHBgYmAwBGJfILYGYmcg9gDiWCB2AskDsRsQWwGxKRDbArEzEP/+z8kQHKnDkBnrBWYjY36gPC7MiAdDAQByiRAV');
banker3 := DTMFromString('mggAAAHicY2NgYPBmYmBwB2I/IA4CYlsgTgJiZ6CcNRBbALEDENtC8bcnEPzoAgQHx+gy5CR4M/AD5bBhRhwYAgDe2wy/');
banker4 := DTMFromString('mQwAAAHicY2ZgYIhlYmCoBmIHILYG8h2A2BGIH/1nYHj7n4lBNUqQgR/Ih2FGJAwEAAXOBm0=');
banker5 := DTMFromString('mQwAAAHicY2ZgYIhgYmAoA+IQIA4A8kOB2BOI/38UhmMBIB+GGZEwEAAARZIIVg==');
npc := DTMFromString('mlwAAAHicY2dgYPgDxT+BmIGRgeEbAwT/B+JAIPYDYn8oG0QHQcWm1IYwWBjLg3FlRTFDTU05GIPY/EB5XJgRD4YCAIrIEKI=');
herbicon := DTMFromString('mlwAAAHicY2dgYHBhY2CwBmInIHYGYk8gtgFidyD+C5T/DcRfgZiZkYHhD5BmANLfgZS4mzyEgwXzM+AG2HVAMBQAAFSeB38=');
fountainicon := DTMFromString('mwQAAAHic42RgYHjIBsE3ofRzIH4GxHeg9F0gjgOqCwPiWCBOYYDwI4E4GYgTgTgciPlsrwNJRryYn4EwwG8CBMMBANAtDLE=');
bankicon := DTMFromString('mwQAAAHic42RgYDjGxsBwFoj3s0HYIHwIiE8B8WkgPgDEngwI7ATEAUDsDMT+QOwCxL5A/O6SCpBkxIv5GQgD/CZAMBwAACO6C8k=');
clay := DTMFromString('mbQAAAHicY2VgYHBgYmBwBWILJgjbF4hfAMXvAvFzIH4DxI+BuKPIF0gyoWB+BkzAiAWDAQAyqAc4');
softclay := DTMFromString('mwQAAAHic42RgYDjABMH7gXgzEJ8F4lNAvB2IT0LpmYwMDH1AvBiI5wDxDCCeAMQLgXgeEE8C4nAHXqBpTHgxPwNhwEgEhgMA3tANEA==');
end;
procedure FreeDTMs;
begin
FreeDTM(clay);
FreeDTM(softclay);
FreeDTM(banker);
FreeDTM(banker2);
FreeDTM(banker3);
FreeDTM(banker4);
FreeDTM(banker5);
FreeDTM(herbicon);
FreeDTM(bankicon);
FreeDTM(fountainicon);
FreeDTM(npc);
end;
procedure Proggy;
begin
Writeln('//////////////////Grand Exchange Clay Softener\\\\\\\\\\\\\\\\\\');
Writeln('///////////////////////By Leetsxc\\\\\\\\\\\\\\\\\\\\\\\\');
Writeln('Run Time: ' + TimeRunning);
Writeln('Total Loads: ' + IntToStr(Claysoftened));
Writeln('Soft Clays made: ' + IntToStr(Claysoftened*28));
WriteLn('Total Profit made: ' + IntToStr(Claysoftened*28*55));
WriteLn('Breaks Taken: ' + IntToStr(BreaksTaken));
Writeln('//////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');
end;
procedure whichclayy;
begin
MouseItem(RandomRange(1, 28), 3);
getmousepos(x,y);
end;
procedure WithdrawClay;
begin
if not LoggedIn then Exit;
AntiRandoms;
if(activated=false)then
begin
mousespeed:=17;
if(findcolortolerance(x,y,4106994,194,27,322,41,10))then //wtf? this needs to be soft clay in the last inventory
begin
activated:=true;
banking:=true;
if(finddtm(clay,x,y,554,208,737,464))then banking:=false;
if(banking=true)then
begin
whichclayy;
sleep(200+random(300));
mouse(x,y,0,0,false);
sleep(200+random(300));
chooseoption('Deposit-All');
sleep(300+random(200));
mouse(405,110,8,8,false);
sleep(300+random(300));
chooseoption('Withdraw-All');
sleep(800+random(300)); //Not really sure if its worth putting a repeat 100ms finddtm until found or 800ms is up and if found wait + Random time
if(finddtm(clay,x,y,554,208,737,464))then
begin
q:=randomrange(1,6);
if(not(q=3))then //1 out of 6 times chance to not click x on bank to exit it
begin
mouse(489,34,4,4,true); //Click the X
end;
banking:=false;
end else
begin
activated:=false;
withdrawclay;
end;
end;
end;
end;
end;
procedure findherbicon;
begin
if(activated=false)then
begin
activated:=true;
count:=0;
tries:=0;
repeat
tries:=tries+1;
found:=false;
if(findDTMRotatedSE(herbicon,x,y,570,22,696,147,-Pi, Pi, Pi/30, aFound))then found:=true;
if(found=false)then
begin
mouse(608,59,8,8,true); //Failsafe incase the herb icon has shifted out of detection zone it will click in a random spot to the NW in the same direction as herb is usually found
sleep(1000);
sleep(random(500)); // it will sleep and repeat once so the herb icon is clicked because it will be made inside the detection zone, it optionally could logout and in instead so it is back in place
end else //It could logout after a random ammount of times or randomly after the click or before the click randomly choosing not to failsafe click n jus log to correct
begin //Less of a pattern that way
tries:=2;
mouse(x,y,15,15,true);
writeln('Found Herb icon!');
end;
sleep(100);
until(tries=2);
tries:=0;
if(found=true)then
begin
repeat
tries:=tries+1;
sleep(70+random(100)); //Random latency of findDTMS for a different response time everytime before the next click happens
if(findDTMRotatedSE(herbicon,x,y,607,65,647,105,-Pi, Pi, Pi/30, aFound))then
begin
tries:=60;
writeln('Arrived at destination!');
end;
until(tries=60);
end;
end;
end;
procedure findbankguy;
begin
if(activated=false)then
begin
activated:=true;
tries:=0;
repeat
tries:=tries+1;
found:=false;
if(findDTMRotatedSE(banker,x,y,535,3,711,167,-Pi, Pi, Pi/30, aFound))then
begin
found:=true;
end else
begin
if(findDTMRotatedSE(banker2,x,y,535,3,711,167,-Pi, Pi, Pi/30, aFound))then
begin
found:=true;
end else
begin
if(findDTMRotatedSE(banker3,x,y,535,3,711,167,-Pi, Pi, Pi/30, aFound))then
begin
found:=true;
end else
begin
if(findDTMRotatedSE(banker4,x,y,535,3,711,167,-Pi, Pi, Pi/30, aFound))then
begin
found:=true;
end else
begin
if(findDTMRotatedSE(banker5,x,y,535,3,711,167,-Pi, Pi, Pi/30, aFound))then found:=true;
end;
end;
end;
end;
if(found=true)then
begin
tries:=3;
writeln('Found banker! on minimap'); //The NPC DMT on the MINI MAP tryes between 5 possible differences created by Inteferance
mouse(x,y+2,3,1,true);
sleep(random(300));
mmouse(5,4,513,336);
sleep(3200);
//sleep(random(2000));
if(slower=true)then sleep(2000);
smartholdkey(40);
end;
until(tries=3);
if(found=true)then
begin
found:=false;
count:=0;
repeat //This procedure will be repeated up to 3 times checking if the bank is open each time before continueing to withdrawclay as a fail safe
tries:=0;
count:=count+1;
z:=0;
q:=0;
repeat
sleep(90+random(50)); //Random Latency of camera down time for detection before compass correction Ranging from 1.08s-1.68s
tries:=tries+1;
//////////Compass part\\\\\\\\\\\\
if(tries=15)then //Time to correct compass to north as both camera rotation angles have failed
begin
mouse(544,24,14,14,true);
sleep(100+random(200));
end;
if(tries=12)then //Time to correct compass to north as both camera rotation angles have failed
begin
smartreleasekey(40);
end;
if(not(tries=15))then
begin
if(not(tries<13))then //If tries isnt under 13 so if tries = 13+ and below 15 ^ on the 13th and 14th try it will toggle different camera directions
begin
//Camera rotation incase of failed banker finding attempt
if(q=0)then
begin
q:=1;
smartholdkey(37);
sleep(100+random(100));
smartreleasekey(37);
sleep(100+random(200));
end else //Q's been activated and failed because founds still false time to try rotation in other direction
begin
smartholdkey(39);
sleep(200+random(100));
smartreleasekey(39);
sleep(100+random(200));
end;
end;
end;
//////////END of Compass part\\\\\\\\\\\\
if(finddtmrotatedSE(npc,x,y,5,5,514,336,-Pi, Pi, Pi/30, aFound))then
begin
writeln('Found banker');
if(tries<12)then smartreleasekey(40);
tries:=15;
z:=1;
end;
until(tries=15);
//Z=1 acts as my boolean for choosing the option and then examination if bank is open
if(z=1)then
begin
mouse(x,y,2,2,false);
sleep(500+random(300));
chooseoption('Bank Banker');
tries:=0;
repeat
sleep(50+random(50)); //So incase dmt isnt detected the response of the next search for the banker isnt the same 1.25s-2.5s
tries:=tries+1;
if(findcolortolerance(x,y,4106994,194,27,322,41,10))then
begin
count:=3; //So if the bank if infact up it will end the loop by meeting the until
activated:=false;
sleep(random(300)); //So the response after dmt detection isnt always the same
withdrawclay;
tries:=25;
z:=0;
end;
until(tries=25);
end;
until(count=3);
end;
end;
end;
procedure fountainfinder;
begin
if(activated=false)then
begin
activated:=true;
if(findcolortolerance(x,y,4106994,194,27,322,41,10))then
begin
banking:=true;
end else
begin;
writeln('Fountain finder method activated!');
tries:=0;
if(not(finddtm(softclay,q,w,555, 203,731, 464)))then
begin
whichclayy; //This is for incase you started making soft clays and some error comes by or u need to restart u script after a random
mouse(x,y,5,5,true);
//The script doesnt click on a soft clay and try using it on a fountain
end else
begin
if(finddtm(clay,q,w,555, 203,731, 464))then mouse(q,w,5,5,true); //If their are soft clays the clays will be clicked by a DTM to avoid soft clays
end;
mmouse(5,4,513,336);
repeat
tries:=tries+1;
if(findcolortolerance(z,a,10981757,149,59,451,318,15))then
begin
tries:=60;
random(100); //Had to be quick but also randomish because i wanted to nail the fountain as soon as it hit the screen so it can work while running
mouse(z,a,5,5,true);
q:=1;
end;
sleep(50+random(50)); //3-6secs
until(tries=60);
tries:=0;
z:=0;
if(q=1)then
begin
repeat
tries:=tries+1;
sleep(300);
if(findcolortolerance(x,y,734793,248,411,264,423,15))then
begin
mmouse(261,430,20,25);
getmousepos(x,y);
sleep(100+random(100));
smartclickmouse(x,y,true);
writeln('Sucessfully Clicked clay on fountain.. clicking make soft clay button');
tries:=10;
antiban;
z:=1;
end;
until(tries=10);
end;
if(z=1)then
begin
repeat
tries:=tries+1;
sleep(400);
if(finddtm(softclay,x,y,688,429,725,461))then
begin
tries:=100;
writeln('Completed making the soft clay');
claysoftened:=claysoftened+1;
if(claysoftened*28 >= HowMany)then
begin
writeln('Finished making all of your clays!');
terminatescript;
end;
proggy;
q:=0;
if(findcolortolerance(x,y,2070783,741, 107,757, 119,10))then q:=1;
if(findcolortolerance(x,y,255,741, 107,757, 119,10))then q:=1;
if(q=1)then
begin
writeln('Resting... by fountain');
mmouse(723,108,6,6);
sleep(100+random(200));
getmousepos(x,y);
smartclickmouse(x,y,false);
sleep(300+random(200));
chooseoption('Rest');
sleep(6000+random(14000));
end;
banking:=true;
end;
until(tries=100);
end else
begin
activated:=false;
findherbicon;
end;
end;
end;
end;
procedure intelligence;
{var
region1x,region1y,region2x,region2y,region3x,region3y,region4x,region4y,region1x2,region1y2,region2x2,region2y2,region3x2,region3y2,region4x2,region4y2:integer; }
begin
//Their are 4 regions so far that are layers of distance around minimap player icon, these will be used to find dtms in to find out locations
activated:=false;
if not LoggedIn then
Exit;
AntiRandoms;
sleep(100);
if(not(findcolortolerance(x,y,1854233,714,110,730,117,15)))then
begin
if(not(findcolortolerance(x,y,6740459,724,110,743,110,15)))then
begin
writeln('Artifical intelligence detected Running energy has run out..');
slower:=true;
if(not(findcolortolerance(x,y,255,740,105,759,120,15)))then
begin
slower:=false;
writeln('Artifical intelligence detected Running energy has reached a adequate level of regeneration re-activating!');
mmouse(723,108,5,5);
sleep(100+random(200));
getmousepos(x,y);
smartclickmouse(x,y,true);
end;
end;
end;
if(finddtm(softclay,x,y,687,433,726,461))then
begin
//writeln('Artifical intelligence detected soft clay in last slot icon so now banking is true');
banking:=true;
end else
begin
banking:=false;
end;
if(findDTMRotatedSE(herbicon,x,y,607,65,647,105,-Pi, Pi, Pi/30, aFound))then
begin
if(banking=true)then
begin
writeln('Artifical intelligence detected You are close to the herb icon and need to go to the bank');
findbankguy;
intelligence;
end else
begin
writeln('Artifical intelligence detected You are close to the herb icon and need to go to the fountain');
tries:=0;
repeat
tries:=tries+1;
sleep(200);
if(finddtm(fountainicon,x,y,561,85,703,156))then
begin
writeln('Clicking fountain icon out of radius bounds');
tries:=3;
mmouse(x,y,5,5);
getmousepos(x,y);
sleep(200+random(100));
smartclickmouse(x,y,true)
end;
until(tries=3);
sleep(random(1000));
q:=random(4);
if(q=2)then
begin
smartholdkey(38);
sleep(500+random(1000));
smartreleasekey(38);
end;
fountainfinder;
intelligence;
end;
end;
//writeln('Determining location with Minimap DTM distance to player map icon recognition');
loc:=0;
if(findDTMRotatedSE(bankicon,x,y,617,75,637,95,-Pi, Pi, Pi/30, aFound))then loc:=1;
if(not(loc=1))then
begin
if(findDTMRotatedSE(bankicon,x,y,607,65,647,105,-Pi, Pi, Pi/30, aFound))then loc:=2;
end;
if(not(loc=2))then
begin
if(findDTMRotatedSE(bankicon,x,y,597,55,657,115,-Pi, Pi, Pi/30, aFound))then loc:=3;
end;
if(not(loc=3))then
begin
if(findDTMRotatedSE(bankicon,x,y,587,45,667,125,-Pi, Pi, Pi/30, aFound))then loc:=4;
end;
if(not(loc=0))then
begin
// writeln('Found the bank icon in mini map player icon radius zone ' + IntToStr(loc));
// writeln('Radius zone 1 is 10 coords around your white square, 2 is 20, 3 is 30 and 4 is 40');
if(banking=true)then
begin
//writeln('You are close to a bank and need to bank your softclays activating findbank method!');
findbankguy;
end;
if(banking=false)then findherbicon;
end;
if(loc=0)then
begin
//writeln('Bank icon was not found in any of the radius zones so we will now search for the fountain icon as you are most likely at the fountain due to an error after making soft clay');
if(findDTMRotatedSE(fountainicon,x,y,613,72,640,98,-Pi, Pi, Pi/30, aFound))then loc:=1;
if(not(loc=1))then
begin
if(findDTMRotatedSE(fountainicon,x,y,607,65,647,105,-Pi, Pi, Pi/30, aFound))then loc:=2;
end;
if(not(loc=2))then
begin
if(findDTMRotatedSE(fountainicon,x,y,597,55,657,115,-Pi, Pi, Pi/30, aFound))then loc:=3;
end;
if(not(loc=3))then
begin
if(findDTMRotatedSE(fountainicon,x,y,587,45,667,125,-Pi, Pi, Pi/30, aFound))then loc:=4;
end;
if(loc=0)then findherbicon;
if(not(loc=0))then
begin
// writeln('Fountain icon found in radius zone' + inttostr(loc));
// writeln('You were closest to the fountain artifical intelligence was correct');
if(banking=true)then
begin
// writeln('You are near the fountain and need to bank');
// writeln('activating findherbicon procedure! to walk close to bank icon!');
findherbicon;
end;
//writeln('Lets just do a check to see if you have any remainding clay left..');
if(finddtm(clay,z,a,555, 203,731, 464))then
begin
//writeln('O shit we havnt finished making soft clay yet and most likely had an error, lets call the fountain fider method..');
activated:=false;
q:=random(4);
if(q=2)then
begin
smartholdkey(38);
sleep(500+random(1000));
smartreleasekey(38);
end;
fountainfinder;
end;
end;
end;
end;
procedure TakeBreaks;
begin
if not LoggedIn then
Exit;
begin
if (GetSystemTime > BreakTimer) then
begin
WriteLn('Taking a break.');
Logout;
Wait(BreakFor * 60000 + Random(BreakForRandom * 60000));
WriteLn('Logging back in.');
Case (SwitchWorld) of
True: if LoginPlayerToLob then
ChangeWorld(RandomWorld(True, False));
False: LoginPlayer;
end;
Wait(2000);
BreaksTaken:=BreaksTaken+1;
BreakTimer := GetSystemTime + (BreakIn * 60000 + Random(BreakInRandom * 60000));
end;
end;
end;
begin
p:=0;
mousespeed:=17;
claysoftened:=0;
Smart_Server := 19;
Smart_Members := Members;
SetupSRL;
DeclarePlayers;
LoginPlayer;
Wait(2000);
GameTab(tab_Inv);
BreakTimer := GetSystemTime + (BreakIn * 60000 + Random(BreakInRandom * 60000));
InitDTMs
repeat
repeat
intelligence;
Proggy;
if (UseBreaks) then
TakeBreaks;
until (not Loggedin);
NextPlayer(Players[CurrentPlayer].Active);
Wait(2000);
until (false);
FreeDTMs;
end.