SRL Archive - Archive

rjj95 - SRL Member Application


rj

2012-12-31 17:59:01

How Long have You Played Runescape?
6 Year(s)


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?



What is your general programming knowledge?
Pascal,GML


Are you a member of any other communities?
Soulsplit,Runescape,Moparisthebest,Formly RSbuddy and Powerbot and RiD


Tell us about yourself…
From: rjj95
My life story:
I am 17 and I am interested in general programming. The first time I ever messed with anything was in the 7th grade me and a couple friend were messing around with batch files and we got on youtube. Then I moved on to wanting to make my own RSPS server and I messed around with sources most I ever did was add Armour that worked like dharok and added my own custom models.I did not put Java for general programming knowledge above because I can only edit programs and do not fully understand it. After I took a break from RSPS's I got into botting for Runescape, the first bot I ever tried to use was SCAR in like 2008 on a noob account. I could not get any scripts to work because I was getting them off of freddy1990.com, and no disrespect to that website but the forums are almost dead. Then I found powerbot and thought it was so amazing how I could minimize the bot and play and how it knew were the coal was etc etc. I did not script much on powerbot but maybe a modified miner to fit my purposes, and a modified green dragon killer to kill revs.Sometime after that I quit RS and started playing some RSPS's and theiving was extremly slow on one of them so I learned about 'simba'.A couple members of the community helped me build up a basic script but I gave up. At this time I was honestly ignorant about simba, I thought all it could do was click a color on the screen and that it was complete garbage and could get messed up easily. (This was of course before I knew about TPA's Bitmaps,DTM's blah blah blah ok)After that my friend introduced me RSbuddy, and that was the first time I ever botted on my main, I used IdungPro(I used my friends RSbuddy account for it)I never trusted any other script due to somewhat high ban rates. Then of course there was the bot nuke and shortly after January 2012 I quit Runescape. I started playing soulsplit, I played it legit, until one day I collected like 6000 charms. On soulsplit you have to use each charm on a obilisk and it's a pain in the ass. So I started back up simba and modified the stealer to use charms of the obelisk. Then around October I started to really learn about Simba. I'm not going to go into details about like a 2-3 month learning period. Pretty much I went from learning how to pick colors on the screen, to clicking colors in certain areas, adding extremely basic fail-safes, to finally knowing how to add procedures, then to learning DTM's Bitmaps, Basic TPA and other stuff.



Please show us one (or multiple) of your scripts.
First of all if you want to run the fisher you have to add the soulsplit Include I made.
http://villavu.com/forum/showthread.php?t=94575

These are a few scripts I made for Soulsplit, I make them because a-lot of people come here looking for RSPS bots and I believe i can for fill their needs.
I need to update a lot of these so they they use the Soulsplit include
Fisher:

[simba]program FastFisher;
{$i srl/srl.simba}
{$include SoulSplit/SoulInclude.simba}

var
Harpoon: Integer;
DropManta, DropShark, DropRocktail: Integer;
RocktailsFished,SharkFished,MantaFished:Integer;
Status:string;
procedure DropRocktails;
var
X, Y: Integer;
begin
ClearDebug;
status := ('Dropping Rocktails');
Writeln('************************')
Writeln('-----Fast Fisher 1.0-----')
Writeln('Status: ' + Status + '.');
Writeln('Rocktails Fished:' + IntToStr(RocktailsFished) + '')
Writeln('Mantas Fished:' + IntToStr(MantaFished) + '')
Writeln('Sharks Fished:' + IntToStr(SharkFished) + '')
Writeln('************************')
if FindDTM(Raw_RockTail, x, y, SS_IX, SS_IY, SS_IX2, SS_IY2) then
begin
if FindDTM(Raw_RockTail, x, y, 566, 231, 605, 484) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropRocktail, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(RocktailsFished, 1);
end;
end;
if FindDTM(Raw_RockTail, x, y, 604, 230, 651, 484) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropRocktail, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(RocktailsFished, 1);
end;
end;
if FindDTM(Raw_RockTail, x, y, 649, 234, 694, 484) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropRocktail, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(RocktailsFished, 1);
end;
end;
if FindDTM(Raw_RockTail, x, y, 694, 237, 736, 486) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropRocktail, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(RocktailsFished, 1);
end;
end;
repeat
DropRocktails;
until (FindDTM(Raw_Rocktail, x, y, SS_IX, SS_IY, SS_IX2, SS_IY2) = false)
end;
end;

procedure DropSharks;
var
X, Y: Integer;
begin
ClearDebug;
status := ('Dropping Sharks');
Writeln('************************')
Writeln('-----Fast Fisher 1.0-----')
Writeln('Status: ' + Status + '.');
Writeln('Rocktails Fished:' + IntToStr(RocktailsFished) + '')
Writeln('Mantas Fished:' + IntToStr(MantaFished) + '')
Writeln('Sharks Fished:' + IntToStr(SharkFished) + '')
Writeln('************************')
if FindDTM(Raw_Shark, x, y, SS_IX, SS_IY, SS_IX2, SS_IY2) then
begin
if FindDTM(Raw_Shark, x, y, 566, 231, 605, 484) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropShark, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(SharkFished, 1);
end;
end;
if FindDTM(Raw_Shark, x, y, 600, 229, 652, 487) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropShark, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(SharkFished, 1);
end;
end;
if FindDTM(Raw_Shark, x, y, 643, 230, 697, 489) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropShark, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(SharkFished, 1);
end;
end;
if FindDTM(Raw_Shark, x, y, 686, 229, 737, 488) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropShark, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(SharkFished, 1);
end;
end;
repeat
DropSharks;
until (FindDTM(Raw_Shark, x, y, SS_IX, SS_IY, SS_IX2, SS_IY2) = false)
DropRocktails;
end;
end;

procedure DropMantaRays;
var
X, Y: Integer;
begin
ClearDebug;
status := ('Dropping Mantas');
Writeln('************************')
Writeln('-----Fast Fisher 1.0-----')
Writeln('Status: ' + Status + '.');
Writeln('Rocktails Fished:' + IntToStr(RocktailsFished) + '')
Writeln('Mantas Fished:' + IntToStr(MantaFished) + '')
Writeln('Sharks Fished:' + IntToStr(SharkFished) + '')
Writeln('************************')
if FindDTM(Raw_Manta, x, y, SS_IX, SS_IY, SS_IX2, SS_IY2) then
begin
if FindDTM(Raw_Manta, x, y, 566, 231, 605, 484) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropManta, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(MantaFished, 1);
end;
end;
if FindDTM(Raw_Manta, x, y, 602, 231, 651, 486) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropManta, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(MantaFished, 1);
end;
end;
if FindDTM(Raw_Manta, x, y, 644, 231, 690, 489) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropManta, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(MantaFished, 1);
end;
end;
if FindDTM(Raw_Manta, x, y, 688, 231, 728, 483) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropManta, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(MantaFished, 1);
end;
end;
repeat
DropMantaRays;
until (FindDTM(Raw_Manta, x, y, SS_IX, SS_IY, SS_IX2, SS_IY2) = false) DropSharks;
end;
end;

procedure FindFishTPA;
var
tmpCTS, l, r, X, Y: Integer;
FishSpotTPA: TPointArray;
begin
ClearDebug;
status := ('Fishing');
Writeln('************************')
Writeln('-----Fast Fisher 1.0-----')
Writeln('Status: ' + Status + '.');
Writeln('Rocktails Fished:' + IntToStr(RocktailsFished) + '')
Writeln('Mantas Fished:' + IntToStr(MantaFished) + '')
Writeln('Sharks Fished:' + IntToStr(SharkFished) + '')
Writeln('************************')
tmpCTS := GetToleranceSpeed;
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(1.42, 2.49);
if FindColorsTolerance(FishSpotTPA, 12495263, SS_PX, SS_PY, SS_PX2, SS_PY2, 3) then
begin
SetColorToleranceSpeed(tmpCTS);
SetToleranceSpeed2Modifiers(0.02, 0.02);
L := High(FishSpotTPA) wait(randomrange(60, 100));
mmouse((FishSpotTPA[r].x), (FishSpotTPA[r].y), 2, 2);
wait(randomrange(200, 250));
clickmouse2(mouse_Right);
wait(randomrange(200, 300));
if FindBitmapToleranceIn(Harpoon, X, Y, SS_MSX1, SS_MSY1, SS_MSX2, SS_MSY2, 175) then
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Left);
wait(randomrange(6000, 8500));
end;
end;

procedure CheckManta;
var
X, Y: Integer;
begin
if FindDTM(Raw_Manta, x, y, 690, 448, 737, 486) then
begin
DropMantaRays;
end;
FindFishTPA;
end;

procedure CheckShark;
var
X, Y: Integer;
begin
if FindDTM(Raw_Shark, x, y, 690, 448, 737, 486) then
begin
DropMantaRays;
end;
CheckManta;
end;

procedure CheckRocktail;
var
X, Y: Integer;
begin
if FindDTM(Raw_RockTail, x, y, 690, 448, 737, 486) then
begin
DropMantaRays;
end;
CheckShark;
end;

begin
DropManta := BitmapFromString(73, 11, 'meJzNlcENwyAMRT1I7z10iY7YC7' + 'tkgqyVREFC7v/fDhWlKvLBmGD8MHbKsppZWdZDbvfHDHm+tkPsHFW' + 'fdBBIOdGqMomuoYH+Y7QZh/4VWtUhj9KY2BnNv0y/BK80n7Jn6eQS' + 'rYXhp54iskcBMBfXIGQ2SjTfGDhJ0HwYcjXRE7Tk2uHR1jg/RfMx9' + 'wQ5jsbtkbPm0SR1P9pl1r6LBoUTtRePM4iWVFbULuBLtudoso2Avb' + 'mCCu1/kPY+2kbpjb/0RHILe5MHyQCkLt2yMi7z/objsgM34XLG');
Harpoon := BitmapFromString(82, 6, 'meJzVlMERgCAMBC3Evw/rpRcqoC1' + '0QG/CJSJx+JjJIx7nkMVgiGnd9pohJmRf9OpSJD9yyRnZ6CW0BzZT' + 'pHfJI9tAVzDLR+306nXpCfxq6Q4pmgaD6Azl55MpHjRDPRPFrBrU2' + 'EJTd0TzmzanIfxm3aGmyZxIbe4yTo2hNWdgvP4d9WdSL7W+77T0qk' + '+hpj8S32tPfQBV4BWo');
DropShark := BitmapFromString(73, 8, 'meJy1VEEOgDAI20N29+AnfKIX/+I' + 'L/JaakBBsoZqoCwfWbNDCWB/G/qlN835aaw38n0ynWNbNTYMC51zu' + 'eF5DzOB8teXIECEFma3TiNuoosIrAqzLEObGx6qKxRXTcVggDBIe+' + 'kKaKDs8WiMjHphoeqxYvMsk30uDGgoOoFfPjm46+P9Jg8ERHKAatz' + '+PDqWl9et3ATPI+JO81YM0PM6OCMtTLNLFRqfdT2cQ8PRiGpn/Acd' + 'Tv+LDMdk/AN/L76s=');
DropRocktail := BitmapFromString(74, 7, 'meJy9VLENwzAM8yHZO/SJntjFv+S' + 'CvNUGMEowFCUHCFJDg0TbBClD7uvWf7E8niO6Awsc8Xp/9mitIdkX' + 'b42Q81kpuD0crzAOtVDCJRvJ8Iw5WhsI6wFuy0gLzikh62QlQE7mh' + 'btsC7v81lN3tl1FbnVedyf9tK1mMda4pbXI/93JENViuCF3u1uOv4' + 'fMY8Rrd/ZXEZynaUp7csbRW0vYaEkfBLcXYy6cgts8oy1ECv4F+Xj' + 'TTw==');
MouseSpeed := 15;
SetupSoulInclude;
CheckRocktail;
repeat
MouseSpeed := 15;
SetScriptProp(SP_WriteTimeStamp, [True]);
CheckRockTail;
until False FreeBitmap(DropManta);
FreeBitmap(DropShark);
FreeBitmap(DropRocktail);
FreeBitmap(Harpoon);
end.

Soulsplit Autofighter:
program autofight;
{$i srl/srl.simba}

const
SPEED_MOUSE = 45;
TIME = 2;
MONSTER_KILL = ('ghost');
BREAKING = ('Yes');
BREAK_MESSAGE1 = ('i luv SRL');
BREAK_MESSAGE2 = ('i luv SRL');
BREAK_MESSAGE3 = ('i luv SRL');
BREAK_MESSAGE4 = ('i luv SRL');
MIN_BREAK_TIME = 4;
MAX_BREAK_TIME = 9;
BREAK_RATE = 2;
HPBARX = 213;
HPBARY = 90;
HPBARX2 = 335;
HPBARY2 = 201;

var
HpBar, Kills, T, Outcome, Bitch, Resulte, QTab, InvTab, Bminute: Integer;
status, BreakMessage: string;

procedure Breakin;
var
X, Y: Integer;
begin
if breaking = ('Yes') then
begin
case Random(4) of
0: BreakMessage := BREAK_MESSAGE1;
1: BreakMessage := BREAK_MESSAGE2;
2: BreakMessage := BREAK_MESSAGE3;
3: BreakMessage := BREAK_MESSAGE4;
end;
Outcome := Random(BREAK_RATE);
Bitch := (MAX_BREAK_TIME * 60000) - (MIN_BREAK_TIME * 60000);
Resulte := Random(Bitch) Bminute := MIN_BREAK_TIME + Resulte if Outcome = 1 then
begin
QTab := DTMFromString('mbQAAAHicY2VgYEhnYmDIBuI8IE4G4jQgPgMUvwTEp4H4AhAfA+KGyd8YUqv+MXz/ehiOuYDi6JgRCwYDAJvSEkI=');
InvTab := DTMFromString('mbQAAAHicY2VgYOhiYmCYDMQTgLgNiFuA+CxQ/AQQXwLiy0B8HIhleFgZkoyFGdxUBMDYTIGTgQsojo4ZsWAwAADC7gkn');
ClearDebug;
T := GetTimeRunning div 1000 + 1;
Status := ('Taking a ' + Tostr((Resulte) / 1000) + ' second break.');
Writeln('----------RJJ95 MUILTI-FIGHTER----------') Writeln('Status:' + status + MONSTER_KILL + '.');
Writeln('Kills:' + Tostr(kills));
Writeln('Time running: ' + IntToStr(Round(t / 60)));
Writeln('----------------------------------------') TypeSend('' + BreakMessage);
Wait(1100 + Random(500));
if FindDTM(QTab, x, y, 536, 194, 755, 225) then
begin
mmouse(x, y, 1, 1);
Wait(650 + Random(50));
ClickMouse(x, y, mouse_Left);
Wait(500 + Random(350));
if FindColorTolerance(X, Y, 16777215, 566, 270, 650, 281, 15) then
begin
mmouse(x, y, 1, 1);
Wait(350 + Random(50));
ClickMouse(x, y, mouse_Left);
Wait(500 + Random(350));
if FindDTM(InvTab, x, y, 536, 194, 755, 225) then
begin
mmouse(x, y, 1, 1);
Wait(350 + Random(50));
ClickMouse(x, y, mouse_Left);
wait(MIN_BREAK_TIME + Resulte) Freedtm(QTab);
Freedtm(InvTab);
end;
end;
end;
end;
end;
end;

procedure CheckCombat;
var
X, Y: Integer;
begin
HpBar := DTMFromString('mLgAAAHicY2JgYLBjZGAIAuIOIO4E4pZjQLEdDAzsDBDMCMUMDABvpgP4');
ClearDebug;
T := GetTimeRunning div 1000 + 1;
status := ('Waiting to get out of combat.');
Writeln('----------RJJ95 MUILTI-FIGHTER----------') Writeln('Status:' + status + MONSTER_KILL + '.');
Writeln('Kills:' + Tostr(kills));
Writeln('Time running: ' + IntToStr(Round(t / 60)));
Writeln('----------------------------------------') Wait(200 + Random(150));
begin
repeat
until (FindDTM(HpBar, x, y, HPBARX, HPBARY, HPBARX2, HPBARY2) = false);
Freedtm(HpBar);
end;
IncEx(Kills, 1);
Breakin;
end;

procedure ClickMonster;
var
DTM, X, Y: Integer;
begin
case (Lowercase(MONSTER_KILL)) of
'ghost': DTM := DTMFromString('mLgAAAHicY2JgYLgKxDeAuB6Im4F43twlDDNnLmFgAbJBmBGKGRgAuZgGcQ==');
'bat': DTM := DTMFromString('mLgAAAHicY2JgYEhhZGDIAOJlQPZSIC7ITGcozc1hYAGyQZgRihkYAIVaBLQ=');
'druid': DTM := DTMFromString('mLgAAAHicY2JgYChiZGAoAOIdQPZWIJ6R5s6wd/MMBhYgG4QZoZiBAQCdPQWr');
'werewolf': DTM := DTMFromString('mLgAAAHicY2JgYFjEyMCwDIhNgdgIiA3UxBh83WwY2IFyIMwIxQwMAF3WAwE=');
'dwarf': DTM := DTMFromString('mLgAAAHicY2JgYIhihOBgEBuIm6uqGFq0FBlYgWwQZoRiBgYAaUADuA==');
'elf': DTM := DTMFromString('mLgAAAHicY2JgYPBhZGDwB+IlQPZCIPbOi2TwLY5lYAeyQZgRihkYAHSlBCQ=');
end;
if FindDTM(DTM, x, y, 4, 6, 512, 333) then
begin
ClearDebug;
status := ('Attacking ');
Writeln('----------RJJ95 MUILTI-FIGHTER----------') Writeln('Status:' + status + MONSTER_KILL + '.');
Writeln('Kills:' + Tostr(kills));
Writeln('Time running: ' + IntToStr(Round(t / 60)));
Writeln('----------------------------------------') MouseSpeed := 45;
mmouse(x, y, 1, 1);
Wait(20 + Random(50));
ClickMouse(X, Y, Mouse_Left);
Wait(1800 + Random(500));
CheckCombat;
end;
FreeDTM(DTM);
end;

begin
T := GetTimeRunning div 1000 + 1;
repeat
ClearDebug;
ClickMonster;
until False;
end.

Rs2006 Warrior killer:

program autofight;
{$i srl/srl.simba}

const
SPEED_MOUSE = 45;
TIME = 4;
MONSTER_KILL = ('al');
BREAKING = ('Yes');
MIN_BREAK_TIME = 1;
MAX_BREAK_TIME = 2;
BREAK_RATE = 15;
HPBARX = 217;
HPBARY = 88;
HPBARX2 = 293;
HPBARY2 = 131;

var
HpBar, Kills, Outcome, Logback: Integer;
status, MinTime, MaxTime: string;

procedure Breakin;
var
X, Y: Integer;
begin
if breaking = ('Yes') then
begin
Outcome := Random(BREAK_RATE);
if Outcome = 1 then
begin
if FindColorTolerance(X, Y, 11427170, 549, 15, 737, 154, 5) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(150, 250));
ClickMouse(X, Y, mouse_Left) wait(randomrange(1800, 3000));
end;
end;
end;
end;

procedure CheckCombat;
var
X, Y: Integer;
begin
HpBar := DTMFromString('mLgAAAHicY2JgYHgBxG+AuBGKGf5DMCsDBDNCMQMDAJhkBOM=');
ClearDebug;
status := ('Waiting to get out of combat.');
Writeln('----------RJJ95 MUILTI-FIGHTER----------') Writeln('Status:' + status + MONSTER_KILL + '.');
Writeln('Kills:' + Tostr(kills));
Writeln('----------------------------------------') Wait(200 + Random(150));
begin
repeat
until (FindDTM(HpBar, x, y, HPBARX, HPBARY, HPBARX2, HPBARY2) = false);
Freedtm(HpBar);
IncEx(Kills, 1);
end;
Breakin;
end;

procedure ClickMonster;
var
tmpCTS, l, r: Integer;
MonTPA: TPointArray;
begin
MouseSpeed := 45;
tmpCTS := GetToleranceSpeed;
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(0.13, 5.92);
if FindColorsTolerance(MonTPA, 4588615, 1, 5, 510, 337, 4) then
begin
ClearDebug;
status := ('Clicking Monster.');
SetColorToleranceSpeed(tmpCTS);
SetToleranceSpeed2Modifiers(0.02, 0.02);
L := High(MonTPA) wait(randomrange(60, 100));
mmouse(MonTPA[r].x, MonTPA[r].y, 2, 2);
wait(randomrange(100, 150));
clickmouse2(mouse_left);
status := ('Waiting.');
wait(randomrange(StrToInt(MinTime), (StrToInt(MaxTime))));
CheckCombat;
end;
end;

procedure Relog;
var
X, Y: Integer;
begin
MouseSpeed := 25;
if FindBitmapToleranceIn(Logback, X, Y, 250, 218, 510, 260, 165) then
begin
if FindColorTolerance(X, Y, 16777215, 393, 273, 533, 309, 20) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(150, 250));
ClickMouse(X, Y, mouse_Left) wait(randomrange(1000, 1400));
if FindColorTolerance(X, Y, 16777215, 226, 300, 374, 319, 20) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(150, 250));
ClickMouse(X, Y, mouse_Left) wait(randomrange(3500, 5000));
end;
end;
end;
ClickMonster;
end;

procedure EnterTimes;
begin
if (InputQuery('Enter Min time between clicks', 'Enter Min wait time', MinTime)) then
if (InputQuery('Enter Max time between clicks', 'Enter Max wait time', MaxTime)) then
Relog;
end;

begin
Logback := BitmapFromString(65, 15, 'meJydVstOxDAM7FchBEIrtJdlBR' + 'x2uXDh//9iCR06nXjstBBZVeM4zoztPK7n0+f7q8r1fKKkSpe34zO' + '+lagl5OXwdHx8ONzftW+T1oWk0ys9BAi/Pi5jqBhSg+l2a0I/6AKY' + 'CldXCkCrFMjCEcIzJaWAIYIkl3Hwg8/f7jQ5BQ8yuzQYJIKef1rGg' + 'hTa+Ga1VMFpAOikBRaxVZwIuOpZSxzVKcqFnsP/PygEFl1+l/iAAs' + 'FoOlIKwSZNxB8ozMJaCkpnEcEvXWAIOWKcVU/AQUl2+UJz0yHNAlr' + 'UGItuLxiFtHqRAtcDZ5fN2UNCocCP4vFCGo/up6B7BLkIx4tT3jiR' + 'xGAnhcFO0crJIfWhUzpaFVWFVxXr1PZnQS+OfJfZFLYuBQa7ohDA0' + 'NKz4Ie8agim2s6dfSjURbAXws51yo4/pRBWWS2XtoKUpvEPBivrev' + 'q0HLaud1dJImpLBIHGOlfPBL2y03INEo59pICXwnjunhfX5uou4V5' + 'InwF6K4XLl/jHFMaPgTRKgbguqiD9eVYx9aHwfqjecrxP22uzyR4K' + 'utA3vM3GoQ==');
EnterTimes;
repeat
SetScriptProp(SP_WriteTimeStamp, [True]);
ClearDebug;
Relog;
until False;
FreeBitmap(Logback);
end.

Soulsplit Cooker:

program Cook;
{$i srl/srl.simba}

const
rawfishcol = 6322271;
cookrange = 9014742;
cookfish = 12868;
minimap = 2216175;
bank = 1857394;
bankx = 220;
banky = 28;
bankxtwo = 328;
bankytwo = 201;
rangex = 310;
rangey = 4;
rangex2 = 489;
rangey2 = 145;

var
cookall, usebank, cookicon: Integer;

procedure backpack;
var
X, Y: Integer;
begin
repeat
Wait(500)
until (FindColorTolerance(X, Y, 4578368, 357, 299, 385, 320, 5) = true)
end;

procedure bankfish;
var
X, Y: Integer;
begin
Writeln('Looking for bank . . .') if FindColorTolerance(X, Y, bank, bankx, banky, bankxtwo, bankytwo, 5) then
begin
MouseSpeed := 15;
mmouse(x, y, 1, 1);
Writeln('Found bank.') Wait(250 + Random(150));
ClickMouse(x, y, mouse_Right);
Wait(900 + Random(250));
FindBitmapToleranceIn(usebank, X, Y, 31, 93, 455, 304, 165) MouseSpeed := 40;
mmouse(x, y, 1, 1);
WriteLn('Opened Bank!');
Wait(500 + Random(120));
ClickMouse(X, Y, mouse_Left);
backpack;
end;
end;

procedure walkbank;
var
X, Y: Integer;
begin
if FindColorTolerance(X, Y, minimap, 555, 85, 630, 122, 5) then
begin
MouseSpeed := 15;
mmouse(x, y, 1, 1);
Wait(600 + Random(150));
ClickMouse(x, y, mouse_Left);
Wait(6500 + Random(1500));
bankfish;
end;
end;

procedure checkcook;
var
X, Y: Integer;
begin
if FindColorTolerance(X, Y, rawfishcol, 566, 217, 715, 454, 5) then
begin
Wait(600 + Random(150));
repeat
until (FindColorTolerance(X, Y, rawfishcol, 566, 217, 715, 454, 5) = false);
end;
walkbank;
end;

procedure choosefish;
var
X, Y: Integer;
begin
if FindColorTolerance(X, Y, cookfish, 207, 379, 300, 452, 5) then
begin
MouseSpeed := 17;
mmouse(x, y, 1, 1);
Wait(600 + Random(150));
ClickMouse(x, y, mouse_Right);
Wait(800 + Random(150));
FindBitmapToleranceIn(cookall, X, Y, 194, 351, 311, 478, 155) mmouse(x, y, 1, 1);
Wait(600 + Random(150));
ClickMouse(x, y, mouse_Left);
checkcook;
end;
Wait(600 + Random(150));
choosefish;
end;

procedure cookfisha;
var
X, Y: Integer;
begin
if FindColorTolerance(X, Y, cookrange, rangex, rangey, rangex2, rangey2, 5) then
begin
if FindColorTolerance(X, Y, rawfishcol, 558, 218, 718, 455, 5) then
begin
MouseSpeed := 17;
mmouse(x, y, 1, 1);
Wait(600 + Random(150));
ClickMouse(x, y, mouse_Left);
Wait(600 + Random(150));
if FindColorTolerance(X, Y, cookrange, rangex, rangey, rangex2, rangey2, 5) then
begin
mmouse(x, y, 1, 1);
Wait(600 + Random(150));
ClickMouse(x, y, mouse_Left);
choosefish;
end;
end;
end;
end;

procedure closecook;
var
X, Y: Integer;
begin
if FindColorTolerance(X, Y, 8421504, 423, 29, 491, 45, 15) then
begin
Wait(800 + Random(150));
Writeln('Closing bank . . .') MouseSpeed := 20;
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Left);
Wait(700 + Random(150));
cookfisha;
end;
end;

procedure withdrawfish;
var
X, Y: Integer;
begin
if FindColorTolerance(X, Y, rawfishcol, 14, 25, 500, 326, 5) then
begin
MouseSpeed := 15;
mmouse(x, y, 1, 1);
Wait(350 + Random(150));
ClickMouse(x, y, mouse_Right);
MouseSpeed := 10;
Wait(750 + Random(150));
mmouse(x, y + 65, 1, 1);
ClickMouse(x, y, mouse_Left);
closecook;
end;
end;

begin
cookall := BitmapFromString(21, 15, 'meJyTUdeWGVA0dccxICJSGaZKiC' + 'ADAwNBvUA1mCYQ1A5XAFGDZgLx2vFzcQUC3NfICE07mgtxOR5uC6Z' + '2rHqJdDye6KOK3wlqx5WE8GsHImRfYw0BNEFcoURnBAAo+e/w');
usebank := BitmapFromString(38, 13, 'meJyTUdeWoTuauuMYEOHiko3+/2' + 'dARpg2MjAwYOVSaCMEoFlKaxvR2IPQRggXjtBCBk+ko8UjBBC0Ec5' + 'GBmjiuCwlOx7xeBDNdirGI6Zf0IIaOcSIsVEGKQ8iG4JmAv7QJinl' + '4HI2fr/gSlHEpBy00ENzNlZBglJEKqAPAgANRYUm');
cookicon := BitmapFromString(9, 11, 'meJw7cICaQPDfP2HrFAiSjV4DJOH' + 'iTH/+MDIwICNeJWseRT+gOBBBFAMRUASIIFJANQx372JKLQADoCxW' + 'KYiNaFIQLXB3LkACRHoNAJkkmKw=');
repeat
withdrawfish;
until False;
FreeBitmap(cookall);
FreeBitmap(usebank);
FreeBitmap(cookicon);
end.

Soulsplit Fletcher:

program Molestor;
{$i srl/srl.simba}

const
fletchlogcolor = 10201131;
storebowcolor = 5330965;
bank = 1857394;
bankx = 210;
banky = 124;
bankxtwo = 278;
bankytwo = 164;
antibanrate = 50;
minbreaktime = 4;
maxbreaktime = 9;

var
usebank, withall, outcome, resulte, bitch: Integer;

procedure antibanme;
begin
outcome := Random(antibanrate);
bitch := (maxbreaktime * 60000) - (minbreaktime * 60000);
resulte := Random(bitch) if outcome = 1 then
begin
Writeln('Doing random antiban wait!') TypeSend('This is boring lol');
wait(minbreaktime + resulte)
end;
end;

procedure storeall;
var
X, Y: Integer;
begin
Writeln('Looking for bow . . .') if FindColorTolerance(X, Y, storebowcolor, 557, 213, 722, 247, 19) then
begin
MouseSpeed := 15;
mmouse(x, y, 1, 1);
Writeln('Found bow to store.') Wait(550 + Random(150));
ClickMouse(x, y, mouse_Right);
Wait(550 + Random(150));
FindBitmapToleranceIn(withall, X, Y, 554, 210, 730, 322, 145) mmouse(x, y, 1, 1);
Writeln('Storing bows . . .') Wait(550 + Random(150));
ClickMouse(X, Y, mouse_Left) Wait(850 + Random(150));
ClearDebug;
antibanme;
end;
end;

procedure bankit;
var
X, Y: Integer;
begin
Writeln('FLooking for bank . . .') if FindColorTolerance(X, Y, bank, bankx, banky, bankxtwo, bankytwo, 17) then
begin
MouseSpeed := 15;
mmouse(x, y, 1, 1);
Writeln('Found bank.') Wait(250 + Random(150));
ClickMouse(x, y, mouse_Right);
Wait(900 + Random(250));
FindBitmapToleranceIn(usebank, X, Y, 31, 93, 455, 304, 165) MouseSpeed := 40;
mmouse(x, y, 1, 1);
WriteLn('Opened Bank!');
Wait(500 + Random(120));
ClickMouse(X, Y, mouse_Left);
Wait(1500 + Random(250));
storeall;
end;
end;

procedure fletchinglogs;
var
X, Y: Integer;
begin
if FindColorTolerance(X, Y, fletchlogcolor, 558, 215, 728, 455, 15) then
begin
Wait(500 + Random(150));
fletchinglogs;
end;
bankit;
end;

procedure fletchit;
var
X, Y: Integer;
begin
Writeln('Finding knife . . .') if FindColorTolerance(X, Y, 7434874, 683, 420, 727, 457, 15) then
begin
Writeln('Found knife.') MouseSpeed := 15;
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Left);
Writeln('Finding log . . .') Wait(850 + Random(150));
FindColorTolerance(X, Y, fletchlogcolor, 557, 214, 719, 458, 15) mmouse(x, y, 1, 1);
Writeln('Using knife on log . . . ') Wait(250 + Random(150));
ClickMouse(x, y, mouse_Left);
Writeln('Waiting for fletch interface . . . ') Wait(1400 + Random(150));
Writeln('Found fletching interface') FindColorTolerance(X, Y, 10799322, 242, 380, 253, 387, 15) mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Right);
Wait(550 + Random(150));
mmouse(x, y + 65, 1, 1);
Wait(550 + Random(150));
ClickMouse(x, y, mouse_Left);
fletchinglogs;
end;
end;

procedure closefletch;
var
X, Y: Integer;
begin
if FindColorTolerance(X, Y, 8421504, 423, 29, 491, 45, 15) then
begin
Writeln('Closing bank . . .') MouseSpeed := 20;
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Left);
Wait(700 + Random(150));
fletchit;
end;
end;

procedure withd;
var
X, Y: Integer;
begin
if FindColorTolerance(X, Y, storebowcolor, 560, 213, 720, 457, 6) then
begin
if FindColorTolerance(X, Y, 3358280, 18, 25, 499, 325, 6) then
begin
Writeln('LogMolestor detected bows in your inventory and is banking them!') bankit;
end;
Writeln('LogMolestor detected your bank open and bows in your inventory!') storeall;
end;
if FindColorTolerance(X, Y, fletchlogcolor, 560, 213, 720, 457, 6) then
begin
if FindColorTolerance(X, Y, 3358280, 18, 25, 499, 325, 6) then
begin
Writeln('LogMolestor detected logs in your inventory and your bank open!') closefletch;
end;
Writeln('LogMolestor detected logs in your inventory and is starting to fletch!') fletchit
end;
if FindColorTolerance(X, Y, fletchlogcolor, 16, 25, 502, 327, 6) then
begin
Writeln('Withdrawing logs . . .') MouseSpeed := 18;
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Right);
Wait(250 + Random(150));
mmouse(x, y + 72, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Left);
Wait(950 + Random(150));
closefletch;
end;
end;

begin
usebank := BitmapFromString(38, 13, 'meJyTUdeWoTuauuMYEOHiko3+/2' + 'dARpg2MjAwYOVSaCMEoFlKaxvR2IPQRggXjtBCBk+ko8UjBBC0Ec5' + 'GBmjiuCwlOx7xeBDNdirGI6Zf0IIaOcSIsVEGKQ8iG4JmAv7QJinl' + '4HI2fr/gSlHEpBy00ENzNlZBglJEKqAPAgANRYUm');
withall := BitmapFromString(33, 14, 'meJyTUdeWGV5o6o5jEIQpiMlGRg' + '4T/gMRfhG4dgYGBjRz4OJobEwDkcUxReB6kY0i1Qq4s+FcrFbgN5a' + 'gFWgI0wo0RKoVQHFMBtaAgkcHGVYA2RATaBRQREb3qBX4rYBHE1Yu' + 'LjYe7XhU0gIBAMyXctQ=');
repeat
withd;
until False;
FreeBitmap(usebank);
FreeBitmap(withall);
end.

Soulsplit PotionMaker:

program PotionMaker;
{$i srl/srl.simba}

var
BankTry, CleanHerb, PotionUse, BankSoulSplit, WithDrawClean: Integer;
PotionComplete, StoreAll, WithDrawPotion, UseBank, PotsMade: Integer;
HowManyMake, Status: string;

procedure WithDrawPotions;
var
X, Y: Integer;
begin
if FindDTM(PotionUse, x, y, 17, 28, 499, 325) then
begin
ClearDebug;
status := ('Withdrawing potion');
Writeln('********************************') Writeln('RJJ95 Potion Maker Version 2.6') Writeln('Status:' + status + '');
Writeln('Potions Made:' + IntToStr(PotsMade) + '');
WriteLn('Goal:' + '[' + HowManyMake + ']' + '|' + IntToStr(StrToInt(HowManyMake) - PotsMade) + ' Left to make| [' + IntToStr(Round(PotsMade * 1.0 / StrToInt(HowManyMake) * 100)) + '%]');
Writeln('********************************') mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Right);
Wait(550 + Random(150));
if FindBitmapToleranceIn(WithDrawPotion, X, Y, 13, 27, 498, 325, 145) then
begin
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Left);
Wait(1400 + Random(350));
end;
end;
end;

procedure CheckLowerDoseMistakeToAvoidMistakeToGetBetterXpPerHourForALotOfXpbecauseofareallysmallglitchedthatpissedmeoffsoihavetomakeawholenewprocedurethatislongashellandnonormalhumanbeingcanreaditbutsinceitsacomputeritdoesnotmatterhowlongitis;
var
X, Y: Integer;
begin
if FindColorTolerance(X, Y, 9416136, 549, 207, 724, 356, 1) then
begin
ClearDebug;
status := ('Recovering from mistake');
Writeln('********************************') Writeln('RJJ95 Potion Maker Version 2.6') Writeln('Status:' + status + '');
Writeln('Potions Made:' + IntToStr(PotsMade) + '');
WriteLn('Goal:' + '[' + HowManyMake + ']' + '|' + IntToStr(StrToInt(HowManyMake) - PotsMade) + ' Left to make| [' + IntToStr(Round(PotsMade * 1.0 / StrToInt(HowManyMake) * 100)) + '%]');
Writeln('********************************') mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Left);
Wait(250 + Random(150));
CheckLowerDoseMistakeToAvoidMistakeToGetBetterXpPerHourForALotOfXpbecauseofareallysmallglitchedthatpissedmeoffsoihavetomakeawholenewprocedurethatislongashellandnonormalhumanbeingcanreaditbutsinceitsacomputeritdoesnotmatterhowlongitis;
end;
WithDrawPotions;
end;

procedure StorePotions;
var
X, Y: Integer;
begin
ClearDebug;
status := ('Storing finished potions');
Writeln('********************************') Writeln('RJJ95 Potion Maker Version 2.6') Writeln('Status:' + status + '');
Writeln('Potions Made:' + IntToStr(PotsMade) + '');
WriteLn('Goal:' + '[' + HowManyMake + ']' + '|' + IntToStr(StrToInt(HowManyMake) - PotsMade) + ' Left to make| [' + IntToStr(Round(PotsMade * 1.0 / StrToInt(HowManyMake) * 100)) + '%]');
Writeln('********************************') if FindDTM(PotionComplete, x, y, 552, 207, 731, 460) then
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Right);
Wait(550 + Random(150));
if FindBitmapToleranceIn(StoreAll, X, Y, 493, 155, 754, 497, 155) then
begin
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Left);
Wait(650 + Random(150));
CheckLowerDoseMistakeToAvoidMistakeToGetBetterXpPerHourForALotOfXpbecauseofareallysmallglitchedthatpissedmeoffsoihavetomakeawholenewprocedurethatislongashellandnonormalhumanbeingcanreaditbutsinceitsacomputeritdoesnotmatterhowlongitis;
end;
end;

procedure WithDrawHerbs;
var
X, Y: Integer;
begin
if FindDTM(CleanHerb, x, y, 15, 24, 500, 324) then
begin
ClearDebug;
status := ('Withdrawing clean herbs');
Writeln('********************************') Writeln('RJJ95 Potion Maker Version 2.6') Writeln('Status:' + status + '');
Writeln('Potions Made:' + IntToStr(PotsMade) + '');
WriteLn('Goal:' + '[' + HowManyMake + ']' + '|' + IntToStr(StrToInt(HowManyMake) - PotsMade) + ' Left to make| [' + IntToStr(Round(PotsMade * 1.0 / StrToInt(HowManyMake) * 100)) + '%]');
Writeln('********************************') mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Right);
Wait(550 + Random(150));
if FindBitmapToleranceIn(WithDrawClean, X, Y, 106, 10, 482, 366, 145) then
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Left);
Wait(550 + Random(150));
StorePotions;
end;
end;

procedure BankPotions;
var
tmpCTS, l, r, X, Y: Integer;
BankTPA: TPointArray;
begin
tmpCTS := GetToleranceSpeed;
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(0.15, 0.31);
if FindColorsTolerance(BankTPA, 5517118, 224, 172, 292, 255, 3) then
begin
ClearDebug;
status := ('Banking');
Writeln('********************************') Writeln('RJJ95 Potion Maker Version 2.6') Writeln('Status:' + status + '');
Writeln('Potions Made:' + IntToStr(PotsMade) + '');
WriteLn('Goal:' + '[' + HowManyMake + ']' + '|' + IntToStr(StrToInt(HowManyMake) - PotsMade) + ' Left to make| [' + IntToStr(Round(PotsMade * 1.0 / StrToInt(HowManyMake) * 100)) + '%]');
Writeln('********************************') SetColorToleranceSpeed(tmpCTS);
SetToleranceSpeed2Modifiers(0.02, 0.02);
L := High(BankTPA) wait(randomrange(60, 100));
mmouse((BankTPA[r].x), (BankTPA[r].y) - 35, 2, 2);
wait(randomrange(200, 350));
clickmouse2(mouse_Right);
wait(randomrange(400, 550));
if FindBitmapToleranceIn(UseBank, X, Y, 7, 11, 583, 442, 145) then
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Left);
Wait(500 + Random(150));
repeat
if BankTry >= 7 then
begin
BankPotions;
end;
IncEx(BankTry, 1);
wait(randomrange(500, 750));
until (FindBitmapToleranceIn(BankSoulSplit, X, Y, 181, 27, 359, 52, 145) = true) BankTry := 0;
WithDrawHerbs;
end;
end;

procedure MakePotions;
var
X, Y: Integer;
begin
if FindDTM(PotionUse, x, y, 562, 210, 723, 458) then
begin
ClearDebug;
status := ('Making Potions');
Writeln('********************************') Writeln('RJJ95 Potion Maker Version 2.6') Writeln('Status:' + status + '');
Writeln('Potions Made:' + IntToStr(PotsMade) + '');
WriteLn('Goal:' + '[' + HowManyMake + ']' + '|' + IntToStr(StrToInt(HowManyMake) - PotsMade) + ' Left to make| [' + IntToStr(Round(PotsMade * 1.0 / StrToInt(HowManyMake) * 100)) + '%]');
Writeln('********************************') if FindDTM(CleanHerb, x, y, 561, 210, 594, 454) then
begin
ClearDebug;
status := ('Making Potions');
Writeln('********************************') Writeln('RJJ95 Potion Maker Version 2.6') Writeln('Status:' + status + '');
Writeln('Potions Made:' + IntToStr(PotsMade) + '');
WriteLn('Goal:' + '[' + HowManyMake + ']' + '|' + IntToStr(StrToInt(HowManyMake) - PotsMade) + ' Left to make| [' + IntToStr(Round(PotsMade * 1.0 / StrToInt(HowManyMake) * 100)) + '%]');
Writeln('********************************') mmouse(x, y, 1, 1);
Wait(130 + Random(100));
ClickMouse(x, y, mouse_Left);
Wait(390 + Random(100));
if FindDTM(PotionUse, x, y, 562, 210, 594, 454) then
begin
mmouse(x, y, 1, 1);
Wait(130 + Random(100));
ClickMouse(x, y, mouse_Left);
IncEx(PotsMade, 1);
Wait(390 + Random(100));
end;
if FindDTM(CleanHerb, x, y, 605, 213, 636, 459) then
begin
ClearDebug;
status := ('Making Potions');
Writeln('********************************') Writeln('RJJ95 Potion Maker Version 2.6') Writeln('Status:' + status + '');
Writeln('Potions Made:' + IntToStr(PotsMade) + '');
WriteLn('Goal:' + '[' + HowManyMake + ']' + '|' + IntToStr(StrToInt(HowManyMake) - PotsMade) + ' Left to make| [' + IntToStr(Round(PotsMade * 1.0 / StrToInt(HowManyMake) * 100)) + '%]');
Writeln('********************************') mmouse(x, y, 1, 1);
Wait(130 + Random(100));
ClickMouse(x, y, mouse_Left);
Wait(390 + Random(100));
if FindDTM(PotionUse, x, y, 605, 213, 636, 459) then
begin
mmouse(x, y, 1, 1);
Wait(130 + Random(100));
ClickMouse(x, y, mouse_Left);
IncEx(PotsMade, 1);
Wait(390 + Random(100));
end;
if FindDTM(CleanHerb, x, y, 645, 211, 678, 456) then
begin
ClearDebug;
status := ('Making Potions');
Writeln('********************************') Writeln('RJJ95 Potion Maker Version 2.6') Writeln('Status:' + status + '');
Writeln('Potions Made:' + IntToStr(PotsMade) + '');
WriteLn('Goal:' + '[' + HowManyMake + ']' + '|' + IntToStr(StrToInt(HowManyMake) - PotsMade) + ' Left to make| [' + IntToStr(Round(PotsMade * 1.0 / StrToInt(HowManyMake) * 100)) + '%]');
Writeln('********************************') mmouse(x, y, 1, 1);
Wait(130 + Random(100));
ClickMouse(x, y, mouse_Left);
Wait(390 + Random(100));
if FindDTM(PotionUse, x, y, 645, 211, 678, 456) then
begin
mmouse(x, y, 1, 1);
Wait(130 + Random(100));
ClickMouse(x, y, mouse_Left);
IncEx(PotsMade, 1);
Wait(390 + Random(100));
end;
if FindDTM(CleanHerb, x, y, 690, 211, 728, 459) then
begin
ClearDebug;
status := ('Making Potions');
Writeln('********************************') Writeln('RJJ95 Potion Maker Version 2.6') Writeln('Status:' + status + '');
Writeln('Potions Made:' + IntToStr(PotsMade) + '');
WriteLn('Goal:' + '[' + HowManyMake + ']' + '|' + IntToStr(StrToInt(HowManyMake) - PotsMade) + ' Left to make| [' + IntToStr(Round(PotsMade * 1.0 / StrToInt(HowManyMake) * 100)) + '%]');
Writeln('********************************') mmouse(x, y, 1, 1);
Wait(130 + Random(100));
ClickMouse(x, y, mouse_Left);
Wait(390 + Random(100));
if FindDTM(PotionUse, x, y, 690, 211, 728, 459) then
begin
mmouse(x, y, 1, 1);
Wait(130 + Random(100));
ClickMouse(x, y, mouse_Left);
IncEx(PotsMade, 1);
Wait(390 + Random(100));
end;
end;
end;
end;
end;
MakePotions;
end;
BankPotions;
end;

procedure CloseBankHerb;
var
X, Y: Integer;
begin
ClearDebug;
status := ('Closing bank');
Writeln('********************************') Writeln('RJJ95 Potion Maker Version 2.6') Writeln('Status:' + status + '');
Writeln('Potions Made:' + IntToStr(PotsMade) + '');
WriteLn('Goal:' + '[' + HowManyMake + ']' + '|' + IntToStr(StrToInt(HowManyMake) - PotsMade) + ' Left to make| [' + IntToStr(Round(PotsMade * 1.0 / StrToInt(HowManyMake) * 100)) + '%]');
Writeln('********************************') if FindColorTolerance(X, Y, 8421504, 427, 32, 500, 51, 15) then
begin
Wait(200 + Random(150));
MouseSpeed := 15;
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Left);
Wait(700 + Random(150));
MakePotions;
end;
end;

procedure AskOptions;
begin
if (InputQuery('How many potions do you want to make?', 'Amount:', HowManyMake)) then
IncEx(PotsMade, 1);
Wait(750);
CloseBankHerb;
end;

begin
CleanHerb := DTMFromString('mlwAAAHicY2dgYJjJxMAwlwlCTwXiSUA8DYjnAHEQIwNDABD7ArEPI4QfBsQhQCwarM4g5K8KpkUjNMFYIlWfQTRWm4ETaC4uzIgHQwEAd2MK2w==');
PotionUse := DTMFromString('mlwAAAHicY2dgYMhmYmAoBOJcIM4A4lQgzgLiPCCOZGRgCAPiECiOAOIYII4GYh//ywyq6pMZjC3OMLh7XwbzQdjI7BgDJ9BcXJgRD4YCAFxlDqo=');
PotionComplete := DTMFromString('mggAAAHicY2NgYHBiYmBwA2JnILYHYlsgdgHil0C5d0D8HojfMkD4z4B44vadDIVLloPp2Xv2MswC4pp1Gxg4gHLYMCMODAEA0WcTFQ==');
BankSoulSplit := BitmapFromString(172, 17, 'meJztmFFSwzAMRHMT7kD7C9MvB' + 'm7IbSEznnqWlbSWnCbtAB1/OIktS6snx83p9f0UtOeXN2z46Hz5mG' + 'vCPi2h27QD2qW/qcORsevA78XAvw6tPX1+UVvtt85c4NaaFjaKPZp' + '+88AFCRoAnF4FDBW+OwOrtWVZmkvL9dcvJ9ZFU5RHN/uagTkf8k72' + 'PObFJwZWI1UG1nj7XNIhIn9XBpqfJLirf1VeslMCQDBQ3Y40petl7' + '1QLcI4BzDUxoKPeGwPBwBZTEe2Z3W8LA7bM3QH5xLmLTjBA9d6Uwd' + 'p/BAbw0i2l6L47oJcbBk6Hjej8QHkUu3HkJJV5BgMyiJ7YWUPRcDo' + 'dAKg6mpM0WJRGH5DRYZgyHQ6VEqY1s9Ni4O59DIrSbUGKNgrrTKZC' + 'LQaRQbQ27OPPdTK5DwxDFkuQ224qkwzQ+VAo4Jqy7wJiMgqBKsJVA' + 'ye6jg2x13Vd7bvrkgLD/vBd4D4dumc7JQaEvD07kakoUjfXtFZ+Vx' + 'TpcN0TgW9k4Hx973QMfjEDuBcJU9Wooz0kwiDDgK59QqWUd3IgsxO' + 'WFOg7yaMxYI9wkanemsLRu6Cktj4gIZM6WHSSSNYG8b4rfjTGqiFY' + 'Im0pdrSmdagy0PexfupGBXq/PV1+/tCIOwD/Cbpzo7XQJexjI2u2N' + 'HS8dkwUGt6n1VExGoN5ITXsXNc3G7vwhHTol7ZDrbmBwka6uS8pO0' + 'B8DegfBER2zua7uruuaBkGjtEB9//jdSjZT04U48nbLQC41iYAyDA' + 'wJ2Beh4iBA3TIYHDb2PHp8HtgNfBq+EkA9mCAdLAMHKnDzRlIjncx' + 'yAeuYy9JsRMDVR3wGPBoOnwD+YiGAg==');
UseBank := BitmapFromString(95, 10, 'meJztlkEOxCAIRT1I97OY83qXnq' + 'DXaichIQzw0ULqqoYFotXvE0z7fvT92D5fsv7fTdt5NmnFdSoTKls' + 'TjdaahMPd4qGoVfTzOukJ6VtYAKeofzEcuc4LpwKHumz8oRu0e7FR' + 's0NovtWMajN42dDQUMAMHPZlU3HEB705cdxyQISH9HIC5DFvZY5KG' + 'wUqyFKVsTapXM0yjsi4G8UCZvzJsvqZzRBVa/GFIt+FgHxUU0UIQz' + 'ib+LeR51Ua4nJboDl+c56D4yZDnCHooVaa3aKIy2ro5za6FefuBTx' + 'PZUQ=');
WithDrawClean := BitmapFromString(175, 8, 'meJzNl8ENwjAMRTtI7xxYoiNyyS' + '6doGsBUiTL8vd3nWAKyIfEJLHr/5xC24+2H8uyrLd7twYe5mcr412' + 'FJof38/sU47IctsfzbbJdBuL/Rs4X2HT+scSsvHmhr4GBZZ6EoaqY' + 'f2KfwyC6m9KZvkM8jNOcjKKYxYGTTd29bqwSGPq0Gy4zfu0065N7c' + 'TwaK+80fgODHqzkZkA8NEsuY7jeyGROCFreJVmfUAuDfpWgWMzfv2' + 'I8nJ45lAPG0uuHniIDAyspSskkRj/rbrPSvawwAZyWwxDfGIFw7nX' + 't7jV+XaihWBg380RVMEyMMzi5nPwEBhQoI8Tp+QhMQEg+1igMYm7l' + '5ZEvg8Edazi/AYNUQw9Y6eQz1GtDNw9KPxdr4mbQ4VwSWLVb4u9bf' + 'PmjoKi4YVJnVQiD7g7seuzWjf9+y8PA9qJw07HibJG0bi/tWint');
StoreAll := BitmapFromString(175, 8, 'meJztVkESwyAI9CHee+gn+sRe8p' + 'e8IN9qnXHqEBZWYhJPzXAgCIiwWbOsW0ppWbci+fEsIvWbpG6h9pV' + '2pUt5vT9F0v7xNqrOt55lQLCqk3W2nkR8yoN69WnNbIo3hauk5Zfb' + 'qSVSRuTgY87TBKs6WWc3XE4/7+cuY5EEpoEBX/9guCph3EGBQeGhW' + 'kwCHzZ6+ZscBYPiVfmKOrd4RmXnq3wK3e2Gq1ID9Yrx4IeM4V3ceH' + 'GYfxfI+eiJYGj5h5lB/S2Yp0Nn7kM67K1GRkBieZ3dWHUoNVkChvy' + '7KbB47+JGi6l3Od8EQzB55FzYKP5FeD6mjgqJIsxA/M0MwVgT4QNN' + '64776LyQ/KeBgTAtbzv2PA6G4PdIgBQBbRwMJkEdAoNH9cNgUCQ2H' + 'wwRZjDbbjIGZwZy0jiTcEsQDCn8zyDd5NIXjmOGvA==');
WithDrawPotion := BitmapFromString(180, 7, 'meJy1VsENwzAI9CD599ElOmI/2a' + 'UTdK3WSiQL3R0Y23LFA1+AEDifejyex2Xn51utlNJ8xj2ELRMzbVC' + 'cO2cf7PX+VdvR27TdLdluGVksGNeER9VvNIBJluvXcGYLgLA43hEE' + 'B6B3lLnyXV1uSHpYBJ7eRy8lGTyaNVTcS6+fL0GZ2JZuuVGRrm4wW' + '1oWbE1Wa0WgZqBR3nKhpTlueAS446XvzVniMGp+S1CN35vvBIKhE6' + 'kbXLDLDW/CvFlv44x7dx8ipZRxA3wc4obUioAbo34sWXZxwY2GIsl' + 'cj6IyUj5a5MaEn2GXpM1WbqxwIHk3A93IcyOfC+3FfIu54Wn+bm5I' + '33J1BzfauIKdjupD8m4mK3e50c21oKeNdhQxN+zXyeGf6l+BF9ndk' + 'ScOQFGpzOu6IfUW7hpwJpBouJ4xN2RBwDkynyvbYDzzyX/tNMNq');
AskOptions;
repeat
CloseBankHerb;
until (StrToInt(HowManyMake)) <= PotsMade;
Freedtm(CleanHerb);
Freedtm(PotionUse);
Freedtm(PotionComplete);
FreeBitmap(WithDrawClean);
FreeBitmap(BankSoulSplit);
FreeBitmap(UseBank);
FreeBitmap(StoreAll);
FreeBitmap(WithDrawPotion);
end.
Soulsplit Potions drinker(Very usefull if you have like 10k 4's and you need 3's)

program PotDrinker;
{$i srl/srl.simba}

const
POT_DRINK = 14079704;

var
SuperStr, Withall, BankTry, BankSoulSplit, UseBank, PotsDrank: Integer;
DrinkWait, Status, HowManyDrink: string;

procedure StorePots;
var
X, Y: Integer;
begin
if FindColorTolerance(X, Y, 4578368, 352, 297, 386, 320, 10) then
begin
ClearDebug;
status := ('Storing Potions');
Writeln('********************************') Writeln('RJJ95 Potion Drinker Version 2.2') Writeln('Status:' + status + '');
Writeln('Potions Drank:' + IntToStr(PotsDrank) + '');
WriteLn('Goal:' + '[' + HowManyDrink + ']' + '|' + IntToStr(StrToInt(HowManyDrink) - PotsDrank) + ' Left to drink| [' + IntToStr(Round(PotsDrank * 1.0 / StrToInt(HowManyDrink) * 100)) + '%]');
Writeln('********************************') mmouse(x, y, 1, 1);
wait(randomrange(150, 250));
ClickMouse(X, Y, mouse_Left) wait(randomrange(800, 1200));
end;
end;

procedure FindTheBank;
var
tmpCTS, l, r, X, Y: Integer;
BankTPA: TPointArray;
begin
tmpCTS := GetToleranceSpeed;
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(0.20, 0.13);
if FindColorsTolerance(BankTPA, 5385788, 203, 100, 314, 258, 3) then
begin
ClearDebug;
status := ('Banking');
Writeln('********************************') Writeln('RJJ95 Potion Drinker Version 2.2') Writeln('Status:' + status + '');
Writeln('Potions Drank:' + IntToStr(PotsDrank) + '');
WriteLn('Goal:' + '[' + HowManyDrink + ']' + '|' + IntToStr(StrToInt(HowManyDrink) - PotsDrank) + ' Left to drink| [' + IntToStr(Round(PotsDrank * 1.0 / StrToInt(HowManyDrink) * 100)) + '%]');
Writeln('********************************') SetColorToleranceSpeed(tmpCTS);
SetToleranceSpeed2Modifiers(0.02, 0.02);
L := High(BankTPA) wait(randomrange(60, 100));
mmouse((BankTPA[r].x), (BankTPA[r].y) - 35, 2, 2);
wait(randomrange(200, 350));
clickmouse2(mouse_Right);
wait(randomrange(400, 550));
if FindBitmapToleranceIn(UseBank, X, Y, 8, 8, 681, 429, 145) then
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Left);
Wait(500 + Random(150));
repeat
if BankTry >= 7 then
begin
FindTheBank;
end;
IncEx(BankTry, 1);
wait(randomrange(500, 750));
until (FindBitmapToleranceIn(BankSoulSplit, X, Y, 181, 27, 359, 52, 145) = true) BankTry := 0;
StorePots;
end;
end;

procedure DrinkPots;
var
X, Y: Integer;
begin
if FindDTM(SuperStr, x, y, 566, 215, 726, 454) then
begin
ClearDebug;
status := ('Drinking potions');
Writeln('********************************') Writeln('RJJ95 Potion Drinker Version 2.2') Writeln('Status:' + status + '');
Writeln('Potions Drank:' + IntToStr(PotsDrank) + '');
WriteLn('Goal:' + '[' + HowManyDrink + ']' + '|' + IntToStr(StrToInt(HowManyDrink) - PotsDrank) + ' Left to drink| [' + IntToStr(Round(PotsDrank * 1.0 / StrToInt(HowManyDrink) * 100)) + '%]');
Writeln('********************************') mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Left);
IncEx(PotsDrank, 1);
Wait((StrToInt(DrinkWait) + 1) + Random(250));
DrinkPots;
end;
FindTheBank;
end;

procedure CloseBankHerb;
var
X, Y: Integer;
begin
if FindColorTolerance(X, Y, 8421504, 427, 32, 500, 51, 15) then
begin
ClearDebug;
status := ('Closing bank');
Writeln('********************************') Writeln('RJJ95 Potion Drinker Version 2.2') Writeln('Status:' + status + '');
Writeln('Potions Drank:' + IntToStr(PotsDrank) + '');
WriteLn('Goal:' + '[' + HowManyDrink + ']' + '|' + IntToStr(StrToInt(HowManyDrink) - PotsDrank) + ' Left to drink| [' + IntToStr(Round(PotsDrank * 1.0 / StrToInt(HowManyDrink) * 100)) + '%]');
Writeln('********************************') Wait(800 + Random(150));
MouseSpeed := 20;
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Left);
Wait(700 + Random(150));
DrinkPots;
end;
end;

procedure WithDrawPots;
var
X, Y: Integer;
begin
MouseSpeed := 15;
if FindDTM(SuperStr, x, y, 22, 25, 508, 328) then
begin
ClearDebug;
status := ('Withdrawing Potions');
Writeln('********************************') Writeln('RJJ95 Potion Drinker Version 2.2') Writeln('Status:' + status + '');
Writeln('Potions Drank:' + IntToStr(PotsDrank) + '');
WriteLn('Goal:' + '[' + HowManyDrink + ']' + '|' + IntToStr(StrToInt(HowManyDrink) - PotsDrank) + ' Left to drink| [' + IntToStr(Round(PotsDrank * 1.0 / StrToInt(HowManyDrink) * 100)) + '%]');
Writeln('********************************') mmouse(x, y, 1, 1);
wait(randomrange(150, 200));
ClickMouse(X, Y, mouse_Right);
wait(randomrange(300, 350));
if FindBitmapToleranceIn(WithAll, X, Y, 22, 25, 508, 328, 125) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(150, 200));
ClickMouse(X, Y, mouse_Left);
wait(randomrange(400, 600));
CloseBankHerb;
end;
end;
end;

procedure AskOptions;
begin
if (InputQuery('Enter Time between Pot Drinking', 'Enter time[In Miliseconds]:', DrinkWait)) then
if (InputQuery('How many potions do you want to drink?', 'Amount:', HowManyDrink)) then
IncEx(PotsDrank, 1);
Wait(750);
WithDrawPots;
end;

begin
SuperStr := DTMFromString('mlwAAAHicY2dgYDjNxMBwFohPAvExKPsUlN3NyMBQA8W1QFwPxA1QbG1/iUFFo48hNeMqQ0TUFQY1rZkMxubHGOITrzBwAM3FhRnxYCgAADBXElo=');
WithAll := BitmapFromString(148, 4, 'meJy1k8ENgDAIRTuIdw8u4Yhe3M' + 'UJXEsbSX7Ih0KrseFQaKGUB/txllKmedmPU6Q8CxZRZV+N2u6qEO2' + 'OCBQ5cIes21WFVLnv7uvSLrEdR+6jcTT7bn8mdJky0f/SKtltDfVH' + 'ANStttBM2Vl1iB3hS9mN7ltP66q6EWw+o76tFnrNzh0cW20X66/sv' + 'jBKezudu352/b6UXismfQGXe9i5e4zeT+yQYVDz0fkKevtFt6TsUl' + '87U62Y1Amyblf9Mn0=');
BankSoulSplit := BitmapFromString(172, 17, 'meJztmFFSwzAMRHMT7kD7C9MvB' + 'm7IbSEznnqWlbSWnCbtAB1/OIktS6snx83p9f0UtOeXN2z46Hz5mG' + 'vCPi2h27QD2qW/qcORsevA78XAvw6tPX1+UVvtt85c4NaaFjaKPZp' + '+88AFCRoAnF4FDBW+OwOrtWVZmkvL9dcvJ9ZFU5RHN/uagTkf8k72' + 'PObFJwZWI1UG1nj7XNIhIn9XBpqfJLirf1VeslMCQDBQ3Y40petl7' + '1QLcI4BzDUxoKPeGwPBwBZTEe2Z3W8LA7bM3QH5xLmLTjBA9d6Uwd' + 'p/BAbw0i2l6L47oJcbBk6Hjej8QHkUu3HkJJV5BgMyiJ7YWUPRcDo' + 'dAKg6mpM0WJRGH5DRYZgyHQ6VEqY1s9Ni4O59DIrSbUGKNgrrTKZC' + 'LQaRQbQ27OPPdTK5DwxDFkuQ224qkwzQ+VAo4Jqy7wJiMgqBKsJVA' + 'ye6jg2x13Vd7bvrkgLD/vBd4D4dumc7JQaEvD07kakoUjfXtFZ+Vx' + 'TpcN0TgW9k4Hx973QMfjEDuBcJU9Wooz0kwiDDgK59QqWUd3IgsxO' + 'WFOg7yaMxYI9wkanemsLRu6Cktj4gIZM6WHSSSNYG8b4rfjTGqiFY' + 'Im0pdrSmdagy0PexfupGBXq/PV1+/tCIOwD/Cbpzo7XQJexjI2u2N' + 'HS8dkwUGt6n1VExGoN5ITXsXNc3G7vwhHTol7ZDrbmBwka6uS8pO0' + 'B8DegfBER2zua7uruuaBkGjtEB9//jdSjZT04U48nbLQC41iYAyDA' + 'wJ2Beh4iBA3TIYHDb2PHp8HtgNfBq+EkA9mCAdLAMHKnDzRlIjncx' + 'yAeuYy9JsRMDVR3wGPBoOnwD+YiGAg==');
UseBank := BitmapFromString(95, 10, 'meJztlkEOxCAIRT1I97OY83qXnq' + 'DXaichIQzw0ULqqoYFotXvE0z7fvT92D5fsv7fTdt5NmnFdSoTKls' + 'TjdaahMPd4qGoVfTzOukJ6VtYAKeofzEcuc4LpwKHumz8oRu0e7FR' + 's0NovtWMajN42dDQUMAMHPZlU3HEB705cdxyQISH9HIC5DFvZY5KG' + 'wUqyFKVsTapXM0yjsi4G8UCZvzJsvqZzRBVa/GFIt+FgHxUU0UIQz' + 'ib+LeR51Ua4nJboDl+c56D4yZDnCHooVaa3aKIy2ro5za6FefuBTx' + 'PZUQ=');
AskOptions;
repeat
WithDrawPots;
until (StrToInt(HowManyDrink)) <= PotsDrank;
Freedtm(SuperStr);
FreeBitmap(WithAll);
FreeBitmap(BankSoulSplit);
FreeBitmap(UseBank);
FindTheBank;
end.

Soulsplit Herblore cleaner:

program AutoClean;
{$i srl/srl.simba}

var
GrimyWeed, WithAll, BankSoulSplit, HerbsCleaned, Banktry: Integer;
HerbWait, HowManyClean, Status, MouseSpeedHerb: string;

procedure StoreHerbs;
var
X, Y: Integer;
begin
ClearDebug;
status := ('Storing Herbs.');
Writeln('RJJ95 HerbCleaner Version 1.0');
Writeln('Status: ' + Status + '.');
Writeln('Herbs Cleaned:' + IntToStr(HerbsCleaned) + ' |' + IntToStr(StrToInt(HowManyClean) - HerbsCleaned) + ' Left|');
Writeln('Herblore XP Earned:' + Tostr(HerbsCleaned * 931));
if FindColorTolerance(X, Y, 4578368, 352, 297, 386, 320, 10) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(150, 250));
ClickMouse(X, Y, mouse_Left) wait(randomrange(800, 1200));
end;
end;

procedure FindTheBank;
var
tmpCTS, l, r, X, Y: Integer;
BankTPA: TPointArray;
begin
ClearDebug;
status := ('Banking clean Herbs.');
Writeln('RJJ95 HerbCleaner Version 1.0');
Writeln('Status: ' + Status + '.');
Writeln('Herbs Cleaned:' + IntToStr(HerbsCleaned) + ' |' + IntToStr(StrToInt(HowManyClean) - HerbsCleaned) + ' Left|');
Writeln('Herblore XP Earned:' + Tostr(HerbsCleaned * 931));
MouseSpeed := 15;
tmpCTS := GetToleranceSpeed;
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(0.11, 0.21);
if FindColorsTolerance(BankTPA, 5188666, 226, 172, 301, 307, 4) then
begin
SetColorToleranceSpeed(tmpCTS);
SetToleranceSpeed2Modifiers(0.02, 0.02);
L := High(BankTPA) wait(randomrange(60, 100));
mmouse((BankTPA[r].x), (BankTPA[r].y) - 35, 2, 2);
wait(randomrange(200, 350));
clickmouse2(mouse_left);
repeat
if BankTry >= 7 then
begin
FindTheBank;
end;
IncEx(BankTry, 1);
wait(randomrange(500, 750));
until (FindBitmapToleranceIn(BankSoulSplit, X, Y, 181, 27, 359, 52, 145) = true) BankTry := 0;
StoreHerbs;
end;
end;

procedure CleanHerbs;
var
X, Y: Integer;
begin
ClearDebug;
status := ('Cleaning Herbs.');
Writeln('RJJ95 HerbCleaner Version 1.0');
Writeln('Status: ' + Status + '.');
Writeln('Herbs Cleaned:' + IntToStr(HerbsCleaned) + ' |' + IntToStr(StrToInt(HowManyClean) - HerbsCleaned) + ' Left|');
Writeln('Herblore XP Earned:' + Tostr(HerbsCleaned * 931));
SetScriptProp(SP_WriteTimeStamp, [True]);
if (StrToInt(HowManyClean)) <= HerbsCleaned then
begin
TerminateScript;
end;
if FindDTM(GrimyWeed, x, y, 566, 215, 726, 454) then
begin
ClearDebug;
Writeln('RJJ95 HerbCleaner Version 1.0');
Writeln('Status: ' + Status + '.');
Writeln('Herbs Cleaned:' + IntToStr(HerbsCleaned) + ' |' + IntToStr(StrToInt(HowManyClean) - HerbsCleaned) + ' Left|');
Writeln('Herblore XP Earned:' + Tostr(HerbsCleaned * 931));
if FindDTM(GrimyWeed, x, y, 563, 212, 602, 460) then
begin
ClearDebug;
Writeln('RJJ95 HerbCleaner Version 1.0');
Writeln('Status: ' + Status + '.');
Writeln('Herbs Cleaned:' + IntToStr(HerbsCleaned) + ' |' + IntToStr(StrToInt(HowManyClean) - HerbsCleaned) + ' Left|');
Writeln('Herblore XP Earned:' + Tostr(HerbsCleaned * 931));
mmouse(x, y, 1, 1);
Wait((StrToInt(HerbWait) + 1) + Random(50));
ClickMouse(x, y, mouse_Left);
IncEx(HerbsCleaned, 1);
Wait((StrToInt(HerbWait) + 1) + Random(50));
end;
if FindDTM(GrimyWeed, x, y, 607, 212, 644, 460) then
begin
ClearDebug;
Writeln('RJJ95 HerbCleaner Version 1.0');
Writeln('Status: ' + Status + '.');
Writeln('Herbs Cleaned:' + IntToStr(HerbsCleaned) + ' |' + IntToStr(StrToInt(HowManyClean) - HerbsCleaned) + ' Left|');
Writeln('Herblore XP Earned:' + Tostr(HerbsCleaned * 931));
mmouse(x, y, 1, 1);
Wait((StrToInt(HerbWait) + 1) + Random(50));
ClickMouse(x, y, mouse_Left);
IncEx(HerbsCleaned, 1);
Wait((StrToInt(HerbWait) + 1) + Random(50));
end;
if FindDTM(GrimyWeed, x, y, 652, 212, 685, 460) then
begin
ClearDebug;
Writeln('RJJ95 HerbCleaner Version 1.0');
Writeln('Status: ' + Status + '.');
Writeln('Herbs Cleaned:' + IntToStr(HerbsCleaned) + ' |' + IntToStr(StrToInt(HowManyClean) - HerbsCleaned) + ' Left|');
Writeln('Herblore XP Earned:' + Tostr(HerbsCleaned * 931));
mmouse(x, y, 1, 1);
Wait((StrToInt(HerbWait) + 1) + Random(50));
ClickMouse(x, y, mouse_Left);
IncEx(HerbsCleaned, 1);
Wait((StrToInt(HerbWait) + 1) + Random(50));
end;
if FindDTM(GrimyWeed, x, y, 691, 212, 730, 460) then
begin
ClearDebug;
Writeln('RJJ95 HerbCleaner Version 1.0');
Writeln('Status: ' + Status + '.');
Writeln('Herbs Cleaned:' + IntToStr(HerbsCleaned) + ' |' + IntToStr(StrToInt(HowManyClean) - HerbsCleaned) + ' Left|');
Writeln('Herblore XP Earned:' + Tostr(HerbsCleaned * 931));
mmouse(x, y, 1, 1);
Wait((StrToInt(HerbWait) + 1) + Random(50));
ClickMouse(x, y, mouse_Left);
IncEx(HerbsCleaned, 1);
Wait((StrToInt(HerbWait) + 1) + Random(50));
end;
repeat
CleanHerbs;
until (FindDTM(GrimyWeed, x, y, 566, 215, 726, 454) = false) FindTheBank;
end;
end;

procedure CloseBankHerb;
var
X, Y: Integer;
begin
ClearDebug;
status := ('Closing bank.');
Writeln('RJJ95 HerbCleaner Version 1.0');
Writeln('Status: ' + Status + '.');
Writeln('Herbs Cleaned:' + IntToStr(HerbsCleaned) + ' |' + IntToStr(StrToInt(HowManyClean) - HerbsCleaned) + ' Left|');
Writeln('Herblore XP Earned:' + Tostr(HerbsCleaned * 931));
if FindColorTolerance(X, Y, 8421504, 427, 32, 500, 51, 15) then
begin
Wait(800 + Random(150));
MouseSpeed := 20;
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Left);
Wait(700 + Random(150));
CleanHerbs;
end;
end;

procedure WithDrawHerbs;
var
X, Y: Integer;
begin
ClearDebug;
MouseSpeed := StrToInt(MouseSpeedHerb);
Writeln('RJJ95 HerbCleaner Version 1.0');
Writeln('Status: ' + Status + '.');
Writeln('Herbs Cleaned:' + IntToStr(HerbsCleaned) + ' |' + IntToStr(StrToInt(HowManyClean) - HerbsCleaned) + ' Left|');
Writeln('Herblore XP Earned:' + Tostr(HerbsCleaned * 931));
if FindDTM(GrimyWeed, x, y, 22, 25, 497, 326) then
status := ('Withdrawing Herbs.');
begin
mmouse(x, y, 1, 1);
wait(randomrange(150, 200));
ClickMouse(X, Y, mouse_Right);
wait(randomrange(300, 350));
if FindBitmapToleranceIn(WithAll, X, Y, 22, 25, 508, 328, 125) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(150, 200));
ClickMouse(X, Y, mouse_Left);
wait(randomrange(400, 600));
CloseBankHerb;
end;
end;
end;

procedure AskOptions;
begin
if (InputQuery('Enter Time between Herb clean', 'Enter time[In Miliseconds]:', HerbWait)) then
if (InputQuery('How many herbs would you like to clean', 'Enter Amount:', HowManyClean)) then
if (InputQuery('Mouse Speed:', 'Enter Speed:', MouseSpeedHerb)) then
Wait(750);
WithDrawHerbs;
end;

begin
GrimyWeed := DTMFromString('mbQAAAHicY2VgYHgNxF+A+B0QvwTix0BcCcRlQFwIxaVALBKkxhDjKc8gEq7BIBKjxWCgJsjAARRHx4xYMBgAABpPCfY=');
WithAll := BitmapFromString(131, 5, 'meJy9ld0NgzAMhDMI731giY7Yl+' + 'zCBKzVRj0VnXzOEZS2UoT8i4M/4tRtr9teSqkfYbmtkKGyBSrkZmR' + '7qh6L09NaKvO6P55twd6eUNkFLwLUe6SkuZxlSg/m+nizh9BebXto' + 'JjPiSKA5BaHqVRDmw41XhUEQ3MN0G70NhHgFFOyDDdETEc6OMvozi' + 'DR4HkSvgQrCx5/KV0GkMg+3X4DoDZxJEOZv929LMfn4ERBm4Ggztd' + 'vhKgkD7VsgeqNgEsTyvnRSe1rX1PLxBijUF/n9ktM=');
BankSoulSplit := BitmapFromString(172, 17, 'meJztmFFSwzAMRHMT7kD7C9MvB' + 'm7IbSEznnqWlbSWnCbtAB1/OIktS6snx83p9f0UtOeXN2z46Hz5mG' + 'vCPi2h27QD2qW/qcORsevA78XAvw6tPX1+UVvtt85c4NaaFjaKPZp' + '+88AFCRoAnF4FDBW+OwOrtWVZmkvL9dcvJ9ZFU5RHN/uagTkf8k72' + 'PObFJwZWI1UG1nj7XNIhIn9XBpqfJLirf1VeslMCQDBQ3Y40petl7' + '1QLcI4BzDUxoKPeGwPBwBZTEe2Z3W8LA7bM3QH5xLmLTjBA9d6Uwd' + 'p/BAbw0i2l6L47oJcbBk6Hjej8QHkUu3HkJJV5BgMyiJ7YWUPRcDo' + 'dAKg6mpM0WJRGH5DRYZgyHQ6VEqY1s9Ni4O59DIrSbUGKNgrrTKZC' + 'LQaRQbQ27OPPdTK5DwxDFkuQ224qkwzQ+VAo4Jqy7wJiMgqBKsJVA' + 'ye6jg2x13Vd7bvrkgLD/vBd4D4dumc7JQaEvD07kakoUjfXtFZ+Vx' + 'TpcN0TgW9k4Hx973QMfjEDuBcJU9Wooz0kwiDDgK59QqWUd3IgsxO' + 'WFOg7yaMxYI9wkanemsLRu6Cktj4gIZM6WHSSSNYG8b4rfjTGqiFY' + 'Im0pdrSmdagy0PexfupGBXq/PV1+/tCIOwD/Cbpzo7XQJexjI2u2N' + 'HS8dkwUGt6n1VExGoN5ITXsXNc3G7vwhHTol7ZDrbmBwka6uS8pO0' + 'B8DegfBER2zua7uruuaBkGjtEB9//jdSjZT04U48nbLQC41iYAyDA' + 'wJ2Beh4iBA3TIYHDb2PHp8HtgNfBq+EkA9mCAdLAMHKnDzRlIjncx' + 'yAeuYy9JsRMDVR3wGPBoOnwD+YiGAg==');
AskOptions;
repeat
SetScriptProp(SP_WriteTimeStamp, [True]);
WithDrawHerbs;
until (StrToInt(HowManyClean)) <= HerbsCleaned;
Freedtm(GrimyWeed);
FreeBitmap(WithAll);
FreeBitmap(BankSoulSplit);
FindTheBank;
end.

2006 Granite miner:

program Powermine;
{$i srl/srl.simba}

var
IronOre, DropOre, oremined, logback, HpBar: Integer;
status, MinTime, MaxTime: string;

procedure DropIt;
var
X, Y: Integer;
begin
if FindColorTolerance(X, Y, 5600408, 566, 213, 729, 461, 18) then
begin
ClearDebug;
status := ('Dropping ores.');
WriteLn('**********************************') WriteLn('RJJ95 GRANITE MINER 1.0') Writeln('Status: ' + status) Writeln('Ores mined:' + IntToStr(Round(oremined))) Writeln('XP gained:' + IntToStr(Round(oremined * 1050))) WriteLn('**********************************') mmouse(x, y, 1, 1);
wait(randomrange(150, 200));
ClickMouse(X, Y, mouse_Right);
wait(randomrange(200, 250));
if FindBitmapToleranceIn(DropOre, X, Y, 553, 230, 728, 481, 165) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(150, 200));
ClickMouse(X, Y, mouse_Left);
IncEx(oremined, 1);
wait(randomrange(150, 200));
repeat
DropIt;
until (FindColorTolerance(X, Y, 5600408, 694, 429, 731, 457, 18) = false);
end;
end;
end;

procedure FindRock;
var
tmpCTS, l, r, X, Y: Integer;
GraniteTPA: TPointArray;
begin
MouseSpeed := 17;
if FindColorTolerance(X, Y, 5600408, 694, 429, 731, 457, 18) then
begin
DropIt;
end;
begin
MouseSpeed := 17;
tmpCTS := GetToleranceSpeed;
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(0.03, 0.64);
if FindColorsTolerance(GraniteTPA, 5076887, 164, 60, 381, 255, 8) then
begin
ClearDebug;
status := ('Clicking rock.');
WriteLn('**********************************') WriteLn('RJJ95 GRANITE MINER 1.0') Writeln('Status: ' + status) Writeln('Ores mined:' + IntToStr(Round(oremined))) Writeln('XP gained:' + IntToStr(Round(oremined * 1050))) WriteLn('**********************************') SetColorToleranceSpeed(tmpCTS);
SetToleranceSpeed2Modifiers(0.02, 0.02);
L := High(GraniteTPA) wait(randomrange(60, 100));
mmouse(GraniteTPA[r].x, GraniteTPA[r].y, 2, 2);
wait(randomrange(100, 150));
clickmouse2(mouse_left);
status := ('Waiting.');
ClearDebug;
WriteLn('**********************************') WriteLn('RJJ95 GRANITE MINER 1.0') Writeln('Status: ' + status) Writeln('Ores mined:' + IntToStr(Round(oremined))) Writeln('XP gained:' + IntToStr(Round(oremined * 1050))) WriteLn('**********************************') wait(randomrange(StrToInt(MinTime), (StrToInt(MaxTime))));
end;
end;
end;

procedure FindGolem;
var
X, Y: Integer;
begin
if FindDTM(HpBar, x, y, 200, 103, 331, 189) then
begin
if FindColorTolerance(X, Y, 13353162, 575, 99, 722, 162, 12) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(150, 200));
ClickMouse(X, Y, mouse_Left);
wait(randomrange(12500, 15000));
if FindColorTolerance(X, Y, 13353162, 627, 467, 662, 500, 12) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(150, 200));
ClickMouse(X, Y, mouse_Left);
if FindColorTolerance(X, Y, 13353162, 588, 365, 708, 387, 12) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(150, 200));
ClickMouse(X, Y, mouse_Left);
wait(randomrange(2500, 3000));
if FindBitmapToleranceIn(Logback, X, Y, 250, 218, 510, 260, 165) then
begin
if FindColorTolerance(X, Y, 16777215, 393, 273, 533, 309, 20) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(150, 250));
ClickMouse(X, Y, mouse_Left) wait(randomrange(1000, 1400));
if FindColorTolerance(X, Y, 16777215, 226, 300, 374, 319, 20) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(150, 250));
ClickMouse(X, Y, mouse_Left) wait(randomrange(3500, 5000));
if FindColorTolerance(X, Y, 16777215, 647, 81, 650, 89, 4) then
mmouse(x + 12, y + 30, 1, 1);
wait(randomrange(150, 250));
ClickMouse(X, Y, mouse_Left) wait(randomrange(3500, 5000));
end;
end;
end;
end;
end;
end;
end;
FindRock;
end;

procedure EnterTimes;
begin
if (InputQuery('Enter Min time between clicks', 'Enter Min wait time', MinTime)) then
if (InputQuery('Enter Max time between clicks', 'Enter Max wait time', MaxTime)) then
FindGolem;
end;

begin
IronOre := DTMFromString('mQwAAAHicY2ZgYPBkYmDwAWJ/IH4M5N8B4ldAbKsqw+CoLsOgLibAwA/kwzAjEgYCAOWSBRY=');
DropOre := BitmapFromString(36, 14, 'meJxzD4l1JwI5TPgPRAxgABFBZl' + 'MXwe2i3Kj/SAC/XRAGEKFJESMItwgSJrisQ/YX3EY0Y+GhisxFsw5' + 'uFxobTxgiczGjEs1fyBqpZRfWhESGXXATSLILU/Y/KsCTmNGCBZdd' + 'xIQhHOBJsViVYdXFgAoww5DWaLjahSvAhzQCAFj7KrY=');
Logback := BitmapFromString(65, 15, 'meJydVstOxDAM7FchBEIrtJdlBR' + 'x2uXDh//9iCR06nXjstBBZVeM4zoztPK7n0+f7q8r1fKKkSpe34zO' + '+lagl5OXwdHx8ONzftW+T1oWk0ys9BAi/Pi5jqBhSg+l2a0I/6AKY' + 'CldXCkCrFMjCEcIzJaWAIYIkl3Hwg8/f7jQ5BQ8yuzQYJIKef1rGg' + 'hTa+Ga1VMFpAOikBRaxVZwIuOpZSxzVKcqFnsP/PygEFl1+l/iAAs' + 'FoOlIKwSZNxB8ozMJaCkpnEcEvXWAIOWKcVU/AQUl2+UJz0yHNAlr' + 'UGItuLxiFtHqRAtcDZ5fN2UNCocCP4vFCGo/up6B7BLkIx4tT3jiR' + 'xGAnhcFO0crJIfWhUzpaFVWFVxXr1PZnQS+OfJfZFLYuBQa7ohDA0' + 'NKz4Ie8agim2s6dfSjURbAXws51yo4/pRBWWS2XtoKUpvEPBivrev' + 'q0HLaud1dJImpLBIHGOlfPBL2y03INEo59pICXwnjunhfX5uou4V5' + 'InwF6K4XLl/jHFMaPgTRKgbguqiD9eVYx9aHwfqjecrxP22uzyR4K' + 'utA3vM3GoQ==');
HpBar := DTMFromString('mLgAAAHicY2JgYHgOxO+AeC4Qzwdihv8QzMMAwYxQzMAAAKCiBSw=');
EnterTimes;
repeat
SetScriptProp(SP_WriteTimeStamp, [True]);
FindGolem;
until false Freedtm(IronOre);
Freedtm(HpBar);
FreeBitmap(DropOre);
FreeBitmap(Logback);
end.

Soulsplit Miner(Detects Smoke random)

program Powermine;
{$i srl/srl.simba}

const
SMOKE_1 = 11;
SMOKE_2 = 4;
SMOKE_3 = 5;
BREAKING = ('Yes');
BREAK_MESSAGE1 = ('');
BREAK_MESSAGE2 = ('');
BREAK_MESSAGE3 = ('');
BREAK_MESSAGE4 = ('');
BREAK_MESSAGE5 = ('');
BREAK_MESSAGE6 = ('');
BREAK_MESSAGE7 = ('');
BREAK_MESSAGE8 = ('');
BREAK_MESSAGE9 = ('');
BREAK_MESSAGE10 = ('');
BREAK_MESSAGE11 = ('');
BREAK_MESSAGE12 = ('');
BREAK_MESSAGE13 = ('');
BREAK_MESSAGE14 = ('');
BREAK_MESSAGE15 = ('');
BREAK_RATE = 7;

var
IronOre, DropOre, outcome, bitch, resulte, Bminute, smokes2, oremined: Integer;
BreakMessage, status, MinTime, MaxTime: string;

procedure DropIt;
var
X, Y: Integer;
begin
if FindDTM(IronOre, x, y, 553, 230, 728, 481) then
begin
ClearDebug;
status := ('Dropping ores.');
WriteLn('**********************************') WriteLn('RJJ95 IRON MINER 1.12') Writeln('Status: ' + status) Writeln('Ores mined:' + IntToStr(Round(oremined))) Writeln('XP gained:' + IntToStr(Round(oremined * 1050))) Writeln('Smoked rocks:' + IntToStr(Round(smokes2))) WriteLn('**********************************') mmouse(x, y, 1, 1);
wait(randomrange(150, 200));
ClickMouse(X, Y, mouse_Right);
wait(randomrange(200, 250));
if FindBitmapToleranceIn(DropOre, X, Y, 553, 230, 728, 481, 165) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(150, 200));
ClickMouse(X, Y, mouse_Left);
IncEx(oremined, 1);
wait(randomrange(150, 200));
repeat
DropIt;
until (FindDTM(IronOre, x, y, 685, 444, 738, 489) = false);
end;
end;
end;

procedure AntiSmoke;
begin
IncEx(smokes2, 1);
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(0.18, 0.45);
begin
case Random(15) of
0: BreakMessage := BREAK_MESSAGE1;
1: BreakMessage := BREAK_MESSAGE2;
2: BreakMessage := BREAK_MESSAGE3;
3: BreakMessage := BREAK_MESSAGE4;
4: BreakMessage := BREAK_MESSAGE5;
5: BreakMessage := BREAK_MESSAGE6;
6: BreakMessage := BREAK_MESSAGE7;
7: BreakMessage := BREAK_MESSAGE8;
8: BreakMessage := BREAK_MESSAGE9;
9: BreakMessage := BREAK_MESSAGE10;
10: BreakMessage := BREAK_MESSAGE11;
11: BreakMessage := BREAK_MESSAGE12;
12: BreakMessage := BREAK_MESSAGE13;
13: BreakMessage := BREAK_MESSAGE14;
14: BreakMessage := BREAK_MESSAGE15;
end;
Outcome := Random(BREAK_RATE);
Resulte := Random(Bitch) Bminute := Resulte if Outcome = 1 then
TypeSend('' + BreakMessage);
Wait(20 + Random(500));
wait(randomrange(75000, 82000));
end;
end;

procedure FindRock;
var
tmpCTS, l, r, X, Y: Integer;
IronTPA: TPointArray;
SmokeTPA: TPointArray;
SmokeTPA2: TPointArray;
SmokeTPA3: TPointArray;
begin
MouseSpeed := 17;
if FindDTM(IronOre, x, y, 685, 444, 738, 489) then
begin
DropIt;
end;
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(0.14, 0.24);
if FindColorsTolerance(SmokeTPA, 6716560, 11, 27, 522, 360, SMOKE_1) then
begin
Writeln('found SMOKE_1, if there is no smoke then lower the tolerance') AntiSmoke;
end;
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(0.10, 0.56);
if FindColorsTolerance(SmokeTPA2, 5531257, 11, 27, 522, 360, SMOKE_2) then
begin
Writeln('found SMOKE_2, if there is no smoke then lower the tolerance') AntiSmoke;
end;
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(0.11, 0.50);
if FindColorsTolerance(SmokeTPA3, 5794428, 11, 27, 522, 360, SMOKE_3) then
begin
Writeln('found SMOKE_3, if there is no smoke then lower the tolerance') AntiSmoke;
end;
begin
MouseSpeed := 17;
tmpCTS := GetToleranceSpeed;
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(0.18, 0.45);
if FindColorsTolerance(IronTPA, 2569557, 11, 27, 522, 360, 3) then
begin
ClearDebug;
status := ('Clicking rock.');
WriteLn('**********************************') WriteLn('RJJ95 IRON MINER 1.12') Writeln('Status: ' + status) Writeln('Ores mined:' + IntToStr(Round(oremined))) Writeln('XP gained:' + IntToStr(Round(oremined * 1050))) Writeln('Smoked rocks:' + IntToStr(Round(smokes2))) WriteLn('**********************************') SetColorToleranceSpeed(tmpCTS);
SetToleranceSpeed2Modifiers(0.02, 0.02);
L := High(IronTPA) wait(randomrange(60, 100));
mmouse(IronTPA[r].x, IronTPA[r].y, 2, 2);
wait(randomrange(100, 150));
clickmouse2(mouse_left);
status := ('Waiting.');
ClearDebug;
WriteLn('**********************************') WriteLn('RJJ95 IRON MINER 1.12') Writeln('Status: ' + status) Writeln('Ores mined:' + IntToStr(Round(oremined))) Writeln('XP gained:' + IntToStr(Round(oremined * 1050))) Writeln('Smoked rocks:' + IntToStr(Round(smokes2))) WriteLn('**********************************') wait(randomrange(StrToInt(MinTime), (StrToInt(MaxTime))));
end;
end;
end;

procedure EnterTimes;
begin
if (InputQuery('Enter Min time between clicks', 'Enter Min wait time', MinTime)) then
if (InputQuery('Enter Max time between clicks', 'Enter Max wait time', MaxTime)) then
FindRock;
end;

begin
IronOre := DTMFromString('mWAAAAHicY2FgYMhjYmDIB+IyJgj7MVDsBRC/BOJbQOyuI8/gb6DC4K2nxKAkwsvAAxRDxoxoGAQAzzEHow==');
DropOre := BitmapFromString(41, 6, 'meJybuuPYVBiSUdeGoKnYBPGIIyO' + 'HCf+BiIGBAZkLQWhq4EYxgAHcfAgX2RZc4kRaDTcfzkWzF9kKItnE' + 'WI1sPqbVaKFKdasxFVDXasyYJclqtOSElgYwxXFZjRazmMoAOjL7xg==');
EnterTimes;
repeat
SetScriptProp(SP_WriteTimeStamp, [True]);
FindRock;
until false Freedtm(IronOre);
FreeBitmap(DropOre);
end.

Soulspliter Runecrafter(May have to be updated)

program Runecraft;
{$i srl/srl.simba}

const
Mousespeed1 = 18;

var
runeess, storeall, armslot, magebook, lawstaff, vtele, withall, operate: Integer;
draynor, lawalter: integer;

procedure storeal;
var
X, Y: Integer;
begin
if FindDTM(storeall, x, y, 345, 301, 395, 346) then
begin
MouseSpeed := Mousespeed1;
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(X, Y, mouse_Left);
Wait(500 + Random(900));
end;
end;

procedure banke;
var
X, Y: Integer;
begin
if FindColorTolerance(X, Y, 9407371, 55, 21, 416, 229, 3) then
begin
MouseSpeed := Mousespeed1;
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(X, Y, mouse_Left);
Wait(900 + Random(900));
storeal;
end;
end;

procedure teletobank;
var
X, Y: Integer;
begin
if FindDTM(magebook, x, y, 730, 186, 764, 228) then
begin
MouseSpeed := Mousespeed1;
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(X, Y, mouse_Left);
Wait(550 + Random(150));
if FindDTM(vtele, x, y, 566, 296, 588, 320) then
begin
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(X, Y, mouse_Left);
Wait(1250 + Random(350));
if FindBitmapToleranceIn(draynor, X, Y, 235, 400, 297, 476, 145) then
begin
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(X, Y, mouse_Left);
Wait(3800 + Random(1000));
banke;
end;
end;
end;
end;

procedure runecraftl;
var
X, Y: Integer;
begin
if FindDTM(lawalter, x, y, 315, 114, 511, 297) then
begin
MouseSpeed := Mousespeed1;
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(X, Y, mouse_Left);
Wait(550 + Random(150));
teletobank;
end;
end;

procedure teletolaw;
var
X, Y: Integer;
begin
if FindDTM(lawstaff, x, y, 565, 293, 623, 359) then
begin
MouseSpeed := Mousespeed1;
mmouse(x, y, 1, 1);
Wait(350 + Random(150));
ClickMouse(X, Y, mouse_Right);
Wait(50 + Random(150));
if FindBitmapToleranceIn(operate, X, Y, 561, 240, 734, 435, 145) then
begin
Wait(300 + Random(50));
mmouse(x, y, 1, 1);
Wait(300 + Random(50));
ClickMouse(X, Y, mouse_Left);
Wait(3800 + Random(1000));
runecraftl;
end;
end;
end;

procedure hiticon;
var
X, Y: Integer;
begin
if FindDTM(armslot, x, y, 669, 194, 688, 223) then
begin
MouseSpeed := Mousespeed1;
mmouse(x, y, 1, 1);
Wait(590 + Random(150));
ClickMouse(X, Y, mouse_Left);
Wait(590 + Random(150));
teletolaw;
end;
end;

procedure closeb;
var
X, Y: Integer;
begin
if FindColorTolerance(X, Y, 8421504, 423, 60, 491, 68, 15) then
begin
Wait(800 + Random(150));
Writeln('Closing bank . . .') MouseSpeed := 20;
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Left);
Wait(700 + Random(150));
hiticon;
end;
end;

procedure withdrawess;
var
X, Y: Integer;
begin
if FindDTM(runeess, x, y, 14, 24, 500, 327) then
begin
MouseSpeed := Mousespeed1;
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(X, Y, mouse_Right);
Wait(250 + Random(150));
if FindBitmapToleranceIn(withall, X, Y, 14, 24, 500, 327, 145) then
begin
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(X, Y, mouse_Left);
Wait(550 + Random(150));
closeb;
end;
end;
end;

begin
runeess := DTMFromString('mggAAAHicY2NgYFjPyMCwHIg3AvEuIF4NxFuB+AVQ7h0QfwPiD0D8CYg/A3FOaiqDr7sbg5erK0NxdhaYDg8MZGAFymHDjDgwBAAAggsP7A==');
withall := BitmapFromString(28, 15, 'meJyTUdeWGSJo6o5jQITJRkYOE/' + '4jIyLNZGBgQGNjmskABsQYS5KZaOxBayZyIMDFkdWQaiaagXjcT4a' + 'ZBMOEDL9T10ysYUgtM9GCFDOocbGRER41DEgAf14YVAgA6z434Q==');
armslot := DTMFromString('mbQAAAHicY2VgYFjNxMCwHIhXAvE6IN4IxMeB4meB+BIQX4GykzNzGJasXcOQWVrB4GBlwSAtLcnAChRHx4xYMBgAAMgIDRs=');
operate := BitmapFromString(34, 16, 'meJyTUdeWGfHIYcJ/ICJe/dQdx4' + 'CIPFsYGBhIsoV49YPfFrRwwypIjC0QccxYg/sFAtBEcFmE1Ra4IBC' + 'gWYQZYsgiuMKTGL8gK8BlCxzB/UiGXwjawoAESA0xrArwxz6eeMGM' + 'a1whBkGYzmZABZgWMWAAIjWOIoIIAEMQYY8=');
draynor := BitmapFromString(37, 19, 'meJyFlEFuwzAMBPv/R+jQ+ND2G0' + 'GCoO4xBzfoIU+p7I03Y4pyDMGQKJojLikPl9twuX1+/3loOSx2z+n' + 'g3a+fex2eV/vTMt43zuNih5GgFEEQz6OlcL2RxnzDw8gM5U+I2z9h' + 'elpTiE5lfEzGWZx9RJuycIrspAhtkyJuR8PeUcUizp7EUTfjXuZiO' + '2UkLlTzZRW6aofjrUuXKRTLu4fzL4ubVjmte8gidJd9anwatWxBVi' + 'bowFBhq2xxNbKGPQM6FTbcHeMsCyUtGe79eK1vaqJlr9NSHB2IK9t' + 'chKvLcpr8lXGpUOGe9ub6sKwNwycU0U2l9Ns+SfuHbTPX7jRZNMUp' + 'a3bEBa5x+9eECvhHx1Ceq3ZuG20FbVMoK04R0rvA+O2W38a1uac/B' + '+LkPDfMIqyhD20XI0cqL0dbx5CamvOJwJyRK1p6shapCAN67+M8BX' + 'HatnQTKjtXrawXkEdta9F7/wN6smWr');
storeall := DTMFromString('mbQAAAHicY2VgYNjIyMCwBYi3AvFaIF4JxBOZGBi6gXgqFPcCsawwJ0O0kQhDpbcMg4UCF0OAtgADOmAHYkYsGAwAw/kJCw==');
magebook := DTMFromString('mbQAAAHicY2VgYHjHxMDwBog/AfEzKPsCUPwkEJ8C4otAfBWIe3J0GMKtFMB0e7ASg5YABwMrUBwdM2LBYAAA9EoNDA==');
lawstaff := DTMFromString('mQwAAAHicY2ZgYAhgYmBwB+IoIPZmZGAIBGIHIO7vLwTiWQxNTekMrEB1MMyIhIEAAATQBp4=');
vtele := DTMFromString('mbQAAAHicY2VgYHBkYmCwBWI3ILYBYmcgNmZkYNAHYiMgtgRiCyBOsK5m2HDgCYOzvRtDWtBGBhleFQY2oH50zIgFgwEAKSoIaA==');
lawalter := DTMFromString('mQwAAAHicY2ZgYHBmZGDwBWJ3IJ4P5C8E4uVAHBsWwlCQlQnGrEA+DDMiYSAAAAXqBmQ=');
repeat
withdrawess;
until False;
Freedtm(runeess);
Freedtm(storeall);
Freedtm(armslot);
Freedtm(magebook);
Freedtm(lawstaff);
Freedtm(vtele);
Freedtm(lawalter);
FreeBitmap(withall);
FreeBitmap(operate);
FreeBitmap(draynor);
end.

Soulsplit MaplePower cutter:

program Woodcutter;
{$i srl/srl.simba}

const
treecol = 10328;
logcol = 3237515;
bowcol = 7502223;
antibanrate = 90;
minbreaktime = 4;
maxbreaktime = 9;
dropspeed = 25;
fletchingspeed = 20;
treex = 127;
treey = 76;
treex2 = 443;
treey2 = 276;
xpperlog = 600;
xpperlogfletch = 348;

var
dropmage, resulte, bitch, outcome, timer, logscut, LogIn, Logins, OffPrivate: Integer;
status, TreeWait, HowManyCut: string;

procedure myantiban;
var
X, Y: Integer;
begin
SetScriptProp(SP_WriteTimeStamp, [True]);
ClearDebug;
status := ('Anti ban.');
Writeln('RJJ95 TreeCutter Version 2.0') Writeln('Status: ' + Status + '.');
Writeln('Cash Earned:' + Tostr(logscut * 1500));
Writeln('Logs cut:' + IntToStr(logscut) + ' |' + IntToStr(StrToInt(HowManyCut) - LogsCut) + ' Left|');
Writeln('Logins:' + Tostr(LogIns));
Writeln('Woodcutting XP Earned:' + Tostr(logscut * xpperlog));
Writeln('Fletching XP Earned:' + Tostr(logscut * xpperlogfletch));
outcome := Random(antibanrate);
bitch := (maxbreaktime * 60000) - (minbreaktime * 60000);
resulte := Random(bitch) if outcome = 1 then
begin
TypeSend('brb afk');
Wait(1100 + Random(500));
FindColorTolerance(X, Y, 16677477, 595, 172, 621, 195, 15) mmouse(x, y, 1, 1);
Wait(1450 + Random(50));
ClickMouse(x, y, mouse_Left);
FindColorTolerance(X, Y, 3424328, 563, 247, 639, 257, 15) mmouse(x, y, 1, 1);
Wait(350 + Random(50));
ClickMouse(x, y, mouse_Left);
FindColorTolerance(X, Y, 2448796, 628, 173, 656, 197, 15) mmouse(x, y, 1, 1);
Wait(350 + Random(50));
ClickMouse(x, y, mouse_Left);
wait(minbreaktime + resulte)
end;
end;

procedure dropit;
var
X, Y: Integer;
begin
MouseSpeed := 25;
SetScriptProp(SP_WriteTimeStamp, [True]);
if (StrToInt(HowManyCut)) <= logscut then
begin
TerminateScript;
end;
ClearDebug;
status := ('Dropping Bows');
Writeln('RJJ95 TreeCutter Version 2.0') Writeln('Status: ' + Status + '.');
Writeln('Cash Earned:' + Tostr(logscut * 1500));
Writeln('Logs cut:' + IntToStr(logscut) + ' |' + IntToStr(StrToInt(HowManyCut) - LogsCut) + ' Left|');
Writeln('Logins:' + Tostr(LogIns));
Writeln('Woodcutting XP Earned:' + Tostr(logscut * xpperlog));
Writeln('Fletching XP Earned:' + Tostr(logscut * xpperlogfletch));
MouseSpeed := dropspeed;
if FindColorTolerance(X, Y, bowcol, 562, 210, 721, 454, 15) then
begin
if FindColorTolerance(X, Y, bowcol, 558, 249, 595, 463, 15) then
begin
mmouse(x, y, 1, 1);
Wait(60 + Random(50));
ClickMouse(x, y, mouse_Right);
Wait(60 + Random(50));
MouseSpeed := 25;
FindBitmapToleranceIn(dropmage, X, Y, 562, 210, 721, 454, 145) mmouse(x, y, 1, 1);
Wait(60 + Random(50));
ClickMouse(x, y, mouse_Left);
IncEx(logscut, 1);
Wait(60 + Random(50));
end;
MouseSpeed := 25;
if FindColorTolerance(X, Y, bowcol, 604, 213, 636, 460, 15) then
begin
mmouse(x, y, 1, 1);
Wait(60 + Random(50));
ClickMouse(x, y, mouse_Right);
Wait(60 + Random(50));
FindBitmapToleranceIn(dropmage, X, Y, 562, 210, 721, 454, 145) mmouse(x, y, 1, 1);
Wait(60 + Random(50));
ClickMouse(x, y, mouse_Left);
IncEx(logscut, 1);
Wait(60 + Random(50));
end;
if FindColorTolerance(X, Y, bowcol, 641, 213, 678, 460, 15) then
begin
MouseSpeed := 25;
mmouse(x, y, 1, 1);
Wait(60 + Random(50));
ClickMouse(x, y, mouse_Right);
Wait(60 + Random(50));
FindBitmapToleranceIn(dropmage, X, Y, 562, 210, 721, 454, 145) mmouse(x, y, 1, 1);
Wait(60 + Random(50));
ClickMouse(x, y, mouse_Left);
IncEx(logscut, 1);
Wait(60 + Random(50));
end;
if FindColorTolerance(X, Y, bowcol, 687, 213, 717, 421, 15) then
begin
MouseSpeed := 25;
mmouse(x, y, 1, 1);
Wait(60 + Random(50));
ClickMouse(x, y, mouse_Right);
Wait(60 + Random(50));
FindBitmapToleranceIn(dropmage, X, Y, 562, 210, 721, 454, 145) mmouse(x, y, 1, 1);
Wait(60 + Random(50));
ClickMouse(x, y, mouse_Left);
IncEx(logscut, 1);
Wait(60 + Random(50));
end;
end;
end;

procedure fletchinglogs;
var
X, Y: Integer;
begin
SetScriptProp(SP_WriteTimeStamp, [True]);
if (StrToInt(HowManyCut)) <= logscut then
begin
TerminateScript;
end;
ClearDebug;
status := ('Waiting');
Writeln('RJJ95 TreeCutter Version 2.0') Writeln('Status: ' + Status + '.');
Writeln('Cash Earned:' + Tostr(logscut * 1500));
Writeln('Logs cut:' + IntToStr(logscut) + ' |' + IntToStr(StrToInt(HowManyCut) - LogsCut) + ' Left|');
Writeln('Logins:' + Tostr(LogIns));
Writeln('Woodcutting XP Earned:' + Tostr(logscut * xpperlog));
Writeln('Fletching XP Earned:' + Tostr(logscut * xpperlogfletch));
if FindColorTolerance(X, Y, logcol, 558, 215, 728, 455, 5) then
begin
MouseSpeed := 25;
Wait(500 + Random(150));
fletchinglogs;
end;
dropit;
end;

procedure fletchit;
var
X, Y: Integer;
begin
SetScriptProp(SP_WriteTimeStamp, [True]);
if (StrToInt(HowManyCut)) <= logscut then
begin
TerminateScript;
end;
ClearDebug;
status := ('Fletching logs');
Writeln('RJJ95 TreeCutter Version 2.0') Writeln('Status: ' + Status + '.');
Writeln('Cash Earned:' + Tostr(logscut * 1500));
Writeln('Logs cut:' + IntToStr(logscut) + ' |' + IntToStr(StrToInt(HowManyCut) - LogsCut) + ' Left|');
Writeln('Logins:' + Tostr(LogIns));
Writeln('Woodcutting XP Earned:' + Tostr(logscut * xpperlog));
Writeln('Fletching XP Earned:' + Tostr(logscut * xpperlogfletch));
MouseSpeed := fletchingspeed;
if FindColorTolerance(X, Y, 7566204, 683, 420, 727, 457, 15) then
begin
MouseSpeed := 25;
mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Left);
Wait(850 + Random(150));
FindColorTolerance(X, Y, logcol, 557, 214, 719, 458, 15) mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Left);
Wait(1400 + Random(150));
FindColorTolerance(X, Y, 10799322, 242, 380, 253, 387, 15) mmouse(x, y, 1, 1);
Wait(250 + Random(150));
ClickMouse(x, y, mouse_Right);
Wait(550 + Random(150));
mmouse(x, y + 65, 1, 1);
Wait(550 + Random(150));
ClickMouse(x, y, mouse_Left);
fletchinglogs;
end;
end;

procedure checklogs;
var
X, Y: Integer;
begin
SetScriptProp(SP_WriteTimeStamp, [True]);
if (StrToInt(HowManyCut)) <= logscut then
begin
TerminateScript;
end;
ClearDebug;
status := ('Waiting for Inventory to fill');
Writeln('RJJ95 TreeCutter Version 2.0') Writeln('Status: ' + Status + '.');
Writeln('Cash Earned:' + Tostr(logscut * 1500));
Writeln('Logs cut:' + IntToStr(logscut) + ' |' + IntToStr(StrToInt(HowManyCut) - LogsCut) + ' Left|');
Writeln('Logins:' + Tostr(LogIns));
Writeln('Woodcutting XP Earned:' + Tostr(logscut * xpperlog));
Writeln('Fletching XP Earned:' + Tostr(logscut * xpperlogfletch));
Wait((StrToInt(TreeWait) * 100) + Random(100));
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
Wait((StrToInt(TreeWait) * 100) + Random(100));
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
Wait((StrToInt(TreeWait) * 100) + Random(100));
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
Wait((StrToInt(TreeWait) * 100) + Random(100));
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
Wait((StrToInt(TreeWait) * 100) + Random(100));
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, treecol, treex, treey, treex2, treey2, 10) then
begin
MouseSpeed := 25;
mmouse(x, y, 1, 1);
Wait(350 + Random(150));
ClickMouse(X, Y, mouse_Left) checklogs;
end;
end;

procedure clicktree;
var
X, Y: Integer;
begin
SetScriptProp(SP_WriteTimeStamp, [True]);
if (StrToInt(HowManyCut)) <= logscut then
begin
TerminateScript;
end;
ClearDebug;
status := ('Clicking tree');
Writeln('RJJ95 TreeCutter Version 2.0') Writeln('Status: ' + Status + '.');
Writeln('Cash Earned:' + Tostr(logscut * 1500));
Writeln('Logs cut:' + IntToStr(logscut) + ' |' + IntToStr(StrToInt(HowManyCut) - LogsCut) + ' Left|');
Writeln('Logins:' + Tostr(LogIns));
Writeln('Woodcutting XP Earned:' + Tostr(logscut * xpperlog));
Writeln('Fletching XP Earned:' + Tostr(logscut * xpperlogfletch));
if FindColorTolerance(X, Y, treecol, treex, treey, treex2, treey2, 10) then
begin
MouseSpeed := 25;
mmouse(x, y, 1, 1);
Wait(350 + Random(150));
ClickMouse(X, Y, mouse_Left) checklogs;
end;
end;

procedure check;
var
X, Y: Integer;
begin
MouseSpeed := 25;
SetScriptProp(SP_WriteTimeStamp, [True]);
timer := GetTimeRunning div 1000 + 1;
ClearDebug;
status := ('Clicking tree');
Writeln('RJJ95 TreeCutter Version 2.0') Writeln('Status: ' + Status + '.');
Writeln('Cash Earned:' + Tostr(logscut * 1500));
Writeln('Logs cut:' + IntToStr(logscut) + ' |' + IntToStr(StrToInt(HowManyCut) - LogsCut) + ' Left|');
Writeln('Logins:' + Tostr(LogIns));
Writeln('Woodcutting XP Earned:' + Tostr(logscut * xpperlog));
Writeln('Fletching XP Earned:' + Tostr(logscut * xpperlogfletch));
if FindColorTolerance(X, Y, bowcol, 558, 215, 728, 455, 15) then
begin
dropit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
clicktree;
end;

procedure CheckLogin;
var
X, Y: Integer;
begin
SetScriptProp(SP_WriteTimeStamp, [True]);
ClearDebug;
status := ('Logging in...');
Writeln('RJJ95 TreeCutter Version 2.0') Writeln('Status: ' + Status + '.');
Writeln('Cash Earned:' + Tostr(logscut * 1500));
Writeln('Logs cut:' + IntToStr(logscut) + ' |' + IntToStr(StrToInt(HowManyCut) - LogsCut) + ' Left|');
Writeln('Logins:' + Tostr(LogIns));
Writeln('Woodcutting XP Earned:' + Tostr(logscut * xpperlog));
Writeln('Fletching XP Earned:' + Tostr(logscut * xpperlogfletch));
MouseSpeed := 25;
if FindBitmapToleranceIn(LogIn, X, Y, 331, 333, 406, 359, 145) then
begin
MouseSpeed := 25;
mmouse(x, y, 1, 1);
Wait(200 + Random(150));
ClickMouse(x, y, mouse_Left);
IncEx(LogIns, 1);
Wait(6500 + Random(2000));
if FindColorTolerance(X, Y, 65280, 202, 472, 263, 500, 10) then
begin
MouseSpeed := 25;
mmouse(x, y, 1, 1);
Wait(200 + Random(150));
ClickMouse(x, y, mouse_Right);
Wait(1100 + Random(650));
if FindBitmapToleranceIn(OffPrivate, X, Y, 164, 417, 263, 499, 165) then
begin
ClearDebug;
status := ('Turning Private Off.');
Writeln('RJJ95 TreeCutter Version 2.0') Writeln('Status: ' + Status + '.');
Writeln('Cash Earned:' + Tostr(logscut * 1500));
Writeln('Logs cut:' + IntToStr(logscut) + ' |' + IntToStr(StrToInt(HowManyCut) - LogsCut) + ' Left|');
Writeln('Logs fletched/cut:' + Tostr(logscut));
Writeln('Logins:' + Tostr(LogIns));
Writeln('Woodcutting XP Earned:' + Tostr(logscut * xpperlog));
Writeln('Fletching XP Earned:' + Tostr(logscut * xpperlogfletch));
mmouse(X, Y, 1, 1);
Wait(300 + Random(350));
ClickMouse(x, y, mouse_Left);
Wait(800 + Random(600));
check;
end;
end;
end;
check;
end;

procedure AskDetails;
begin
if (InputQuery('Enter Time between Tree Clicks', 'Enter time[In Seconds]:', TreeWait)) then
if (InputQuery('How many Logs to you want to cut?', 'Enter Number:', HowManyCut)) then
CheckLogin;
end;

begin
dropmage := BitmapFromString(39, 16, 'meJyTUdeWoQA5TPgPRPhFqI4gVj' + 'AwMOARoZGlcK/BufSxFA0RY+nUHcfgiBhxzMDEZGC6CtNkBjBANh+' + 'XOK44hahEFoGz4eKYlhLJJikh4Qp22lmK6VN6WopVJXKCgTgMTRBZ' + 'nCrBC0EMSAAzIWG1EVkjHhEGVEBMPqJpNh/JlmKNr6GLAI4/seM=');
LogIn := BitmapFromString(46, 15, 'meJzNk6EKAkEYhPcpTFoEi8Visp' + 'ptNh/i3kQwWGwWg1zQoEEEFU1isojgG/gS/jAwLHf/vx7uCbd8yM3' + 'sP8MeeybPd1INRtdX1XDO/aMTq8jw4PIAMj9cHynLArVFmvv7O0CE' + '0sd5y/IzW2otZqz53vYGEKH0ffnFewmQqm/F6eMATLEKdNMzQITS8' + 'iktPxDnTamRzvIE4FNaPqXlB+LhSHtxAPApLZ/S8gPxcKQ13wH4lJ' + 'ZP6fv4AL7GrSrQnG2Ayy11S6TEMz6e6eeDlP6MGgH8IxB1S41YtZl' + 'UPs7nxnRVCjhJTEN9kv6Mf2si5SQxbbVxFP6tRVZ9AGVL+0I=');
OffPrivate := BitmapFromString(57, 5, 'meJyTUdeeuuMYEDEwMMioa2MiuCw' + 'QQNjI4nApuAiaLlxsrKYxwABWlcgIv1PxWIqpEtkvWJUhS2HqxWoX' + 'VktJcipWlZhOxRVH+E0j6COqOJVgyBNpGtZUgcepuFImkU7FbyCaO' + 'C6VAD6bLE8=');
AskDetails;
SetScriptProp(SP_WriteTimeStamp, [True]);
repeat
SetScriptProp(SP_WriteTimeStamp, [True]);
CheckLogin;
until (StrToInt(HowManyCut)) <= logscut;
FreeBitmap(dropmage);
FreeBitmap(LogIn);
FreeBitmap(OffPrivate);
end.

rj

2012-12-31 18:00:01

Soulsplit MapleBanker(did not have enough room)

program MapleCutter;
{$i srl/srl.simba}

const
LOGCOL = 3237515;
TREECOL = 10328;
MINIMAPTREE = 47897;
XPPERLOG = 600;
TREEX = 120;
TREEY = 81;
TREEX2 = 382;
TREEY2 = 226;
TREEWAIT = 20;

var
BankIcon, Runs: Integer;
Status: string;

procedure ClickMiniMap;
var
X, Y: Integer;
begin
if FindColorTolerance(X, Y, MINIMAPTREE, 586, 31, 658, 76, 5) then
begin
ClearDebug;
status := ('Walking to Maples');
Writeln('***************************************') Writeln('RJJ95 Maple Cutter and bank Version 1.1') Writeln('Status: ' + Status + '.');
Writeln('Runs:' + Tostr(Runs));
Writeln('Logs banked:' + Tostr(Runs * 28));
Writeln('Woodcutting XP Earned:' + Tostr(Runs * 28 * XPPERLOG));
Writeln('***************************************') mmouse(x, y - 15, 1, 1);
wait(randomrange(150, 250));
ClickMouse(X, Y, mouse_Left) wait(randomrange(12000, 14000));
end;
end;

procedure StoreLogs;
var
X, Y: Integer;
begin
if FindColorTolerance(X, Y, 4578368, 352, 297, 386, 320, 10) then
begin
ClearDebug;
status := ('Banking');
Writeln('***************************************') Writeln('RJJ95 Maple Cutter and bank Version 1.1') Writeln('Status: ' + Status + '.');
Writeln('Runs:' + Tostr(Runs));
Writeln('Logs banked:' + Tostr(Runs * 28));
Writeln('Woodcutting XP Earned:' + Tostr(Runs * 28 * XPPERLOG));
Writeln('***************************************') mmouse(x, y, 1, 1);
wait(randomrange(150, 250));
ClickMouse(X, Y, mouse_Left) wait(randomrange(1100, 1400));
ClickMiniMap;
end;
end;

procedure FindTheBank;
var
tmpCTS, l, r: Integer;
BankTPA: TPointArray;
begin
ClearDebug;
status := ('Banking');
Writeln('***************************************') Writeln('RJJ95 Maple Cutter and bank Version 1.1') Writeln('Status: ' + Status + '.');
Writeln('Runs:' + Tostr(Runs));
Writeln('Logs banked:' + Tostr(Runs * 28));
Writeln('Woodcutting XP Earned:' + Tostr(Runs * 28 * XPPERLOG));
Writeln('***************************************') MouseSpeed := 15;
tmpCTS := GetToleranceSpeed;
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(0.11, 0.21);
if FindColorsTolerance(BankTPA, 5188666, 1, 1, 516, 337, 4) then
begin
SetColorToleranceSpeed(tmpCTS);
SetToleranceSpeed2Modifiers(0.02, 0.02);
L := High(BankTPA) wait(randomrange(60, 100));
mmouse((BankTPA[r].x), (BankTPA[r].y) + 40, 2, 2);
wait(randomrange(100, 150));
clickmouse2(mouse_left);
wait(randomrange(2000, 2500));
StoreLogs;
end;
end;

procedure BankLogs;
var
X, Y: Integer;
begin
if FindDTM(BankIcon, x, y, 544, 58, 673, 155) then
begin
ClearDebug;
IncEx(Runs, 1);
status := ('Walking to Bank');
Writeln('***************************************') Writeln('RJJ95 Maple Cutter and bank Version 1.1') Writeln('Status: ' + Status + '.');
Writeln('Runs:' + Tostr(Runs));
Writeln('Logs banked:' + Tostr(Runs * 28));
Writeln('Woodcutting XP Earned:' + Tostr(Runs * 28 * XPPERLOG));
Writeln('***************************************') mmouse(x - 10, y - 10, 1, 1);
wait(randomrange(350, 500));
ClickMouse(X, Y, mouse_Left) wait(randomrange(12000, 14000));
FindTheBank;
end;
end;

procedure checklogs;
var
X, Y: Integer;
begin
ClearDebug;
status := ('Waiting for inventory to fill');
Writeln('***************************************') Writeln('RJJ95 Maple Cutter and bank Version 1.1') Writeln('Status: ' + Status + '.');
Writeln('Runs:' + Tostr(Runs));
Writeln('Logs banked:' + Tostr(Runs * 28));
Writeln('Woodcutting XP Earned:' + Tostr(Runs * 28 * XPPERLOG));
Writeln('***************************************') Wait((TREEWAIT * 500) + Random(100));
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
BankLogs;
end;
if FindColorTolerance(X, Y, treecol, treex, treey, treex2, treey2, 10) then
begin
ClearDebug;
status := ('Click Tree');
Writeln('***************************************') Writeln('RJJ95 Maple Cutter and bank Version 1.1') Writeln('Status: ' + Status + '.');
Writeln('Runs:' + Tostr(Runs));
Writeln('Logs banked:' + Tostr(Runs * 28));
Writeln('Woodcutting XP Earned:' + Tostr(Runs * 28 * XPPERLOG));
Writeln('***************************************') MouseSpeed := 15;
mmouse(x, y, 1, 1);
Wait(350 + Random(150));
ClickMouse(X, Y, mouse_Left) checklogs;
end;
end;

procedure ClickTree;
var
X, Y: Integer;
begin
if FindColorTolerance(X, Y, TREECOL, TREEX, TREEY, TREEX2, TREEY2, 10) then
begin
ClearDebug;
status := ('Clicking Tree');
Writeln('***************************************') Writeln('RJJ95 Maple Cutter and bank Version 1.1') Writeln('Status: ' + Status + '.');
Writeln('Runs:' + Tostr(Runs));
Writeln('Logs banked:' + Tostr(Runs * 28));
Writeln('Woodcutting XP Earned:' + Tostr(Runs * 28 * XPPERLOG));
Writeln('***************************************') MouseSpeed := 15;
mmouse(x, y, 1, 1);
Wait(350 + Random(150));
ClickMouse(X, Y, mouse_Left) checklogs;
end;
end;

begin
BankIcon := DTMFromString('mQwAAAHicY2ZgYMhgYmDIBuJkIK4D8quBuB6I319QZEjz42U4cOAAAz+QD8OMSBgIADi2B8k=');
SetScriptProp(SP_WriteTimeStamp, [True]);
repeat
ClickTree;
until (IsKeyDown(114));
Freedtm(BankIcon);
end.

Sin

2012-12-31 18:17:59

I like how you're pioneering the include for Soul Split, and also understand all the flak you get for posting your opinion. However you need a script which works for Runescape, and not a private server.
Im 50/50 about this, so I won't vote. Best of luck.

Le Jingle

2012-12-31 18:32:01

I enjoy your enthusiasm and effort put forth towards wanting to learn. I think there is more you can learn, well at least to "par" off standards to more advanced pascal script standards/methods/techniques/etc.

The scripts themselves don't mean anything to me as I don't follow private servers. So the scripts themselves I wouldn't count towards your application. I'm sure you've read in some application tutorials, that even if you are an expert in another language/are a genius at something else/etc. you should still post a basic runescape script to be in a sense "validated in the script aspect when applying." I'd also suggest, if you make an include for another game/application/etc. to use less static coordinates (ex. findcolortolerance(x, y, 234234, 234234, 234234, 234234…) and some constant variables. Or at least name the method you are creating static coordinates for, something relative to what the method does (example of the SRL include = loggedin, gametab(), etc.)

Since the application itself doesn't include a RS script, I'll have to vote no this time around, but very much hope that you don't let this affect your relationship towards the entirety of SRL :) It's a great place to learn!

Gucci

2012-12-31 19:11:18

I like what your doing with soulsplit here and your active in the community but you need a runescape script that can show some extensive use of the SRL include. I'm going to have to vote no

NKN

2012-12-31 19:44:48

Voting no.
This doesn't meet requirements.

Justin

2012-12-31 19:47:47

Going to vote no, scripts use very basic procedures (FindBitmapToleranceIn, FindColorTolerance)

You also have some infinite loops in there with no failsafes.

Try using the SRL include more :)

Best of luck!

riwu

2012-12-31 19:54:40


procedure DropRocktails;
var
X, Y: Integer;
begin
ClearDebug;
status := ('Dropping Rocktails');
Writeln('************************')
Writeln('-----Fast Fisher 1.0-----')
Writeln('Status: ' + Status + '.');
Writeln('Rocktails Fished:' + IntToStr(RocktailsFished) + '')
Writeln('Mantas Fished:' + IntToStr(MantaFished) + '')
Writeln('Sharks Fished:' + IntToStr(SharkFished) + '')
Writeln('************************')
if FindDTM(Raw_RockTail, x, y, SS_IX, SS_IY, SS_IX2, SS_IY2) then
begin
if FindDTM(Raw_RockTail, x, y, 566, 231, 605, 484) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropRocktail, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(RocktailsFished, 1);
end;
end;
if FindDTM(Raw_RockTail, x, y, 604, 230, 651, 484) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropRocktail, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(RocktailsFished, 1);
end;
end;
if FindDTM(Raw_RockTail, x, y, 649, 234, 694, 484) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropRocktail, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(RocktailsFished, 1);
end;
end;
if FindDTM(Raw_RockTail, x, y, 694, 237, 736, 486) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropRocktail, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(RocktailsFished, 1);
end;
end;
repeat
DropRocktails;
until (FindDTM(Raw_Rocktail, x, y, SS_IX, SS_IY, SS_IX2, SS_IY2) = false)
end;
end;
Why don't you loop this since only the search bound changes?
Also you called the procedure within the procedure, and has a potential infinite loop at the end.



tmpCTS := GetToleranceSpeed;
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(1.42, 2.49);
if FindColorsTolerance(FishSpotTPA, 12495263, SS_PX, SS_PY, SS_PX2, SS_PY2, 3) then
begin
SetColorToleranceSpeed(tmpCTS);
SetToleranceSpeed2Modifiers(0.02, 0.02);
L := High(FishSpotTPA) wait(randomrange(60, 100));
mmouse((FishSpotTPA[r].x), (FishSpotTPA[r].y), 2, 2);
wait(randomrange(200, 250));
clickmouse2(mouse_Right);
wait(randomrange(200, 300));
if FindBitmapToleranceIn(Harpoon, X, Y, SS_MSX1, SS_MSY1, SS_MSX2, SS_MSY2, 175) then
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Left);
wait(randomrange(6000, 8500));
end;
So you are not going to change back the CTS if it doesn't find the color? ;)



if breaking = ('Yes') then
You should just use a Boolean..



mmouse(MonTPA[r].x, MonTPA[r].y, 2, 2);
I've seen this in another app as well…why did you do this? What do you think the value of r is?



if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
Wait((StrToInt(TreeWait) * 100) + Random(100));
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
Wait((StrToInt(TreeWait) * 100) + Random(100));
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
Wait((StrToInt(TreeWait) * 100) + Random(100));
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
Again, you can loop this.


Like others, i'd like to see a script for the official RS which can demonstrate your knowledge of the include.
I'll hold my vote until you improve on the scripts (loop those repeated codes especially).

rj

2012-12-31 19:58:02

From: riwu

procedure DropRocktails;
var
X, Y: Integer;
begin
ClearDebug;
status := ('Dropping Rocktails');
Writeln('************************')
Writeln('-----Fast Fisher 1.0-----')
Writeln('Status: ' + Status + '.');
Writeln('Rocktails Fished:' + IntToStr(RocktailsFished) + '')
Writeln('Mantas Fished:' + IntToStr(MantaFished) + '')
Writeln('Sharks Fished:' + IntToStr(SharkFished) + '')
Writeln('************************')
if FindDTM(Raw_RockTail, x, y, SS_IX, SS_IY, SS_IX2, SS_IY2) then
begin
if FindDTM(Raw_RockTail, x, y, 566, 231, 605, 484) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropRocktail, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(RocktailsFished, 1);
end;
end;
if FindDTM(Raw_RockTail, x, y, 604, 230, 651, 484) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropRocktail, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(RocktailsFished, 1);
end;
end;
if FindDTM(Raw_RockTail, x, y, 649, 234, 694, 484) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropRocktail, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(RocktailsFished, 1);
end;
end;
if FindDTM(Raw_RockTail, x, y, 694, 237, 736, 486) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropRocktail, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(RocktailsFished, 1);
end;
end;
repeat
DropRocktails;
until (FindDTM(Raw_Rocktail, x, y, SS_IX, SS_IY, SS_IX2, SS_IY2) = false)
end;
end;
Why don't you loop this since only the search bound changes?
Also you called the procedure within the procedure, and has a potential infinite loop at the end.



tmpCTS := GetToleranceSpeed;
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(1.42, 2.49);
if FindColorsTolerance(FishSpotTPA, 12495263, SS_PX, SS_PY, SS_PX2, SS_PY2, 3) then
begin
SetColorToleranceSpeed(tmpCTS);
SetToleranceSpeed2Modifiers(0.02, 0.02);
L := High(FishSpotTPA) wait(randomrange(60, 100));
mmouse((FishSpotTPA[r].x), (FishSpotTPA[r].y), 2, 2);
wait(randomrange(200, 250));
clickmouse2(mouse_Right);
wait(randomrange(200, 300));
if FindBitmapToleranceIn(Harpoon, X, Y, SS_MSX1, SS_MSY1, SS_MSX2, SS_MSY2, 175) then
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Left);
wait(randomrange(6000, 8500));
end;
So you are not going to change back the CTS if it doesn't find the color? ;)



if breaking = ('Yes') then
You should just use a Boolean..



mmouse(MonTPA[r].x, MonTPA[r].y, 2, 2);
I've seen this in another app as well…why did you do this? What do you think the value of r is?



if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
Wait((StrToInt(TreeWait) * 100) + Random(100));
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
Wait((StrToInt(TreeWait) * 100) + Random(100));
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
Wait((StrToInt(TreeWait) * 100) + Random(100));
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
if FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) then
begin
fletchit;
end;
Again, you can loop this.


Like others, i'd like to see a script for the official RS which can demonstrate your knowledge of the include.
I'll hold my vote until you improve on the scripts (loop those repeated codes especially).

the last one constantly checks for bows. So if the user puts 20 seconds between each tree click and it clicks the tree and 2 seconds later the inventory is full it won't wait 18 seconds to start fletching.

I could re-write it but im working on ss include to shorten these scripts and make them more reliable

riwu

2012-12-31 20:01:29

From: rjj95
the last one constantly checks for bows. So if the user puts 20 seconds between each tree click and it clicks the tree and 2 seconds later the inventory is full it won't wait 18 seconds to start fletching.

I could re-write it but im working on ss include to shorten these scripts and make them more reliable

Why can't a loop accomplish the same thing?

Olly

2012-12-31 20:09:42

Like most have said this doesn't meet the requirements, also quality > quantity.

rj

2012-12-31 20:10:13

From: riwu
Why can't a loop accomplish the same thing?


It can, I just havn't updated this script in a while. I usually don't update my scripts unless they are broken and there is a 10x better way to do it.


But if you really want to see it:

procedure checklogs;
var
X, Y: Integer;
begin
if LogLook >= 250 then
begin
TerminateScript;
end;
repeat
Wait(500 + Random(200));
checklogs;
IncEx(LogLook, 1);
until (FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) = false)
LogLook := 0;
end;

If the inventory does not fill up within around 2-3 minutes the script will turn off. I could make it log-out it you wanted to see that but cba to write atm if not needed.

Justin

2012-12-31 20:11:52

From: rjj95
It can, I just havn't updated this script in a while. I usually don't update my scripts unless they are broken and there is a 10x better way to do it.


But if you really want to see it:

procedure checklogs;
var
X, Y: Integer;
begin
if LogLook >= 250 then
begin
TerminateScript;
end;
repeat
Wait(500 + Random(200));
checklogs;
IncEx(LogLook, 1);
until (FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) = false)
LogLook := 0;
end;

If the inventory does not fill up within around 2-3 minutes the script will turn off. I could make it log-out it you wanted to see that but cba to write atm if not needed.


Even then you didn't add a failsafe.

Sin

2012-12-31 20:14:35

E*
NVM, it's an infinite loop. It'll never get to IncEx()

rj

2012-12-31 20:16:57

From: Shay
E*
NVM, it's an infinite loop. It'll never get to IncEx()


Woops lol

procedure checklogs;
var
X, Y: Integer;
begin
if LogLook >= 250 then
begin
TerminateScript; // or logout or the next procedure
end;
repeat
Wait(500 + Random(200));
IncEx(LogLook, 1);
checklogs;
until (FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) = false)
// next procedure here
LogLook := 0;
end;

riwu

2012-12-31 20:19:15

From: rjj95
It can, I just havn't updated this script in a while. I usually don't update my scripts unless they are broken and there is a 10x better way to do it.


But if you really want to see it:

procedure checklogs;
var
X, Y: Integer;
begin
if LogLook >= 250 then
begin
TerminateScript;
end;
repeat
Wait(500 + Random(200));
checklogs;
IncEx(LogLook, 1);
until (FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) = false)
LogLook := 0;
end;

If the inventory does not fill up within around 2-3 minutes the script will turn off. I could make it log-out it you wanted to see that but cba to write atm if not needed.

Uhm, can you comment on the loop? Doesn't look like what the original code does, also why would the script turn off after 2-3min of trapping inside the loop? And what's the point of increaing LogLook if it's going to set to 0 immediately after the loop?

Also, you should only post high quality scripts in your app. If a script is outdated, it's going to do more harm than good to post it ;)

I'd like to see your attempt on looping the FindDTM(Raw_RockTail, …) loop as well since there's a change of search bound there and hence it would require array knowledge to loop it.


EDIT: oh i see now…again you called the procedure within the procedure…that's very dangerous + confusing. Please use proper loops for that purpose.

rj

2012-12-31 20:23:34

From: riwu
Uhm, can you comment on the loop? Doesn't look like what the original code does, also why would the script turn off after 2-3min of trapping inside the loop? And what's the point of increaing LogLook if it's going to set to 0 immediately after the loop?

Also, you should only post high quality scripts in your app. If a script is outdated, it's going to do more harm than good to post it ;)

I'd like to see your attempt on looping the FindDTM(Raw_RockTail, …) loop as well since there's a change of search bound there and hence it would require array knowledge to loop it.


procedure checklogs;
var
X, Y: Integer; // declares vars
begin
if LogLook >= 250 then // checks if the variable log look is 250 or more andif it s the script stops
begin
TerminateScript; // or logout or the next procedure
end;
repeat
Wait(500 + Random(200)); // waits half a second plus a little more
IncEx(LogLook, 1); // adds one to the loglook variable
checklogs; // repeats checklogs until the code below is false
until (FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) = false)// this looks for the log color in the last inventory slot
// next procedure is put were because the log is not in the last slot and is read to fletch
LogLook := 0; // set back to 0 otherwise it would stay the same and the script would turn off when its not supposed to
end;


Also you might find this entertaining:
program Game;
{$i srl/srl.simba}

const
RANDOM_PICK = 1000;
NUMBER_OF_GUESS = 10;

var
Number, Tries: Integer;
Guess: string;

procedure LostGame;
begin
Writeln('Sorry, you lost, you guessed ' + IntToStr(Tries) + ' times, you finished with a total score of ' + IntToStr(RANDOM_PICK / 50) + ' points')
end;

procedure DisplayResults;
begin
if (StrToInt(Guess)) > Number then
begin
IncEx(Tries, 1);
ClearDebug;
Writeln('Your number ' + (Guess) + ' is higher than the correct number. ');
Writeln('You have ' + IntToStr(NUMBER_OF_GUESS - Tries) + ' tries Left.')
Wait(700);
end;
if (StrToInt(Guess)) < Number then
begin
IncEx(Tries, 1);
ClearDebug;
Writeln('Your number ' + (Guess) + ' is lower than the correct number. ');
Writeln('You have ' + IntToStr(NUMBER_OF_GUESS - Tries) + ' tries Left.')
Wait(700);
IncEx(Tries, 1);
end;
if (StrToInt(Guess)) = Number then
begin
ClearDebug;
Writeln('Winner! you finished with a total score of ' + IntToStr((RANDOM_PICK * 10) - (Tries * 5)) + ' points!');
TerminateScript;
end;
if Tries >= NUMBER_OF_GUESS then
begin
LostGame;
end;
end;

procedure AskGuess;
begin
if (InputQuery('Guess number between 0 and ' + IntToStr(RANDOM_PICK), 'Number[Between 0 and ' + IntToStr(RANDOM_PICK) + ']', Guess)) then
begin
DisplayResults;
end;
end;

procedure PickNumber;
begin
Number := Random(RANDOM_PICK);
AskGuess;
end;

begin
PickNumber;
repeat
Askguess;
until Tries >= NUMBER_OF_GUESS;
end.

My personal highscore:
Winner! you finished with a total score of 4970 points!

riwu

2012-12-31 21:23:15

From: rjj95
procedure checklogs;
var
X, Y: Integer; // declares vars
begin
if LogLook >= 250 then // checks if the variable log look is 250 or more andif it s the script stops
begin
TerminateScript; // or logout or the next procedure
end;
repeat
Wait(500 + Random(200)); // waits half a second plus a little more
IncEx(LogLook, 1); // adds one to the loglook variable
checklogs; // repeats checklogs until the code below is false
until (FindColorTolerance(X, Y, logcol, 647, 434, 678, 456, 10) = false)// this looks for the log color in the last inventory slot
// next procedure is put were because the log is not in the last slot and is read to fletch
LogLook := 0; // set back to 0 otherwise it would stay the same and the script would turn off when its not supposed to
end;

Like i've mentioned multiple times, a recursion (similar to 'Inception') is dangerous because even when FindColorTolerance() returns true, it may have to re-execute/exit the procedure several times due to earlier repeated calls.
Also i'm still waiting for the loop on FindDTM().


From: rjj95

Also you might find this entertaining:

Kind of weird that you show me this when i was the one that posted on your 2 help threads on it :rolleyes:
http://villavu.com/forum/showthread.php?t=94085
http://villavu.com/forum/showthread.php?t=94086

rj

2012-12-31 21:31:04

From: riwu
Like i've mentioned multiple times, a recursion (similar to 'Inception') is dangerous because even when FindColorTolerance() returns true, it may have to re-execute/exit the procedure several times due to earlier repeated calls.
Also i'm still waiting for the loop on FindDTM().



Kind of weird that you show me this when i was the one that posted on your 2 help threads on it :rolleyes:
http://villavu.com/forum/showthread.php?t=94085
http://villavu.com/forum/showthread.php?t=94086


What do you mean on the loop with FindDTM same thing as color but with a DTM

riwu

2012-12-31 21:47:42

From: rjj95
What do you mean on the loop with FindDTM same thing as color but with a DTM

This:

if FindDTM(Raw_Shark, x, y, 566, 231, 605, 484) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropShark, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(SharkFished, 1);
end;
end;
if FindDTM(Raw_Shark, x, y, 600, 229, 652, 487) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropShark, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(SharkFished, 1);
end;
end;
if FindDTM(Raw_Shark, x, y, 643, 230, 697, 489) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropShark, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(SharkFished, 1);
end;
end;
if FindDTM(Raw_Shark, x, y, 686, 229, 737, 488) then
begin
mmouse(x, y, 1, 1);
wait(randomrange(100, 200));
clickmouse2(mouse_Right);
wait(randomrange(150, 250));
if FindBitmapToleranceIn(DropShark, X, Y, SS_IX, SS_IY, SS_IX2, SS_IY2, 165) then
begin
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(SharkFished, 1);
end;
end;
repeat
DropSharks;
until (FindDTM(Raw_Shark, x, y, SS_IX, SS_IY, SS_IX2, SS_IY2) = false)
DropRocktails;
end;
The search bounds are different, so you will need to loop with an array.

masterBB

2012-12-31 22:03:22

I will vote at a later moment. I just want to add that in my opinion you guys can vote yes for soulsplit scripts if you think they are complicated enough.

DannyRS

2012-12-31 22:16:37

From: masterBB
I will vote at a later moment. I just want to add that in my opinion you guys can vote yes for soulsplit scripts if you think they are complicated enough.


I also feel i want to vote at a later date, and that a private server script should be considered atleast in place of a official RS one,

I really like the fact you seem to be the only one keeping the private server scripts alive, and show such dedication to it,

But like alot of others have mentioned above, there is a little lack of failsafes and advanced use of Includes, i know some includes cannot be used because its for a private server, but theres still plenty that can ;) or you could modify them, outside of applying for members here, if you want your scripts to be as popular as possible then failsafes that allow for as close to perfection as possible is what you should aim for :)

Keep up the good work even if you dont get in tho ! Dont let it put you off just because your names light green and not yellow ;)

Sin

2012-12-31 23:01:33

I voted yes, since my only concern was the Soulsplit =/= Runescape thing.

Wardancer

2012-12-31 23:35:55

I personally will withhold my vote on this application, but I'd like to point fellow members to the help section of the forum. I have a hard time with rjj95's work ethic which I could summarize as ask first and try to find the solution by yourself later. I don't mind helping him in his numerous threads, but I would think that would disqualify him as member material.

EDIT: I still believe that I have to stress how I love the enthusiasm of rjj95. He wrote quite a few scripts in a short time. My concerns are about his work ethic and the quality of his work. I am certain that, in due time, he'd make a great addition to the SRL community.

Daniel

2013-01-01 00:06:10

Unfortunately, I am going to have to vote no. :(

rjj95, try writing a reliable Runescape script, then compare that to these scripts you have provided for us here. You will find that it will be far more complex, and will exactly be what we are looking for.

Noob King

2013-01-01 02:55:09

I voted no. You seem to have a lot of enthusiasm, but is seems to be spread out. Like Ollybest said, Quality > Quantity.

slushpuppy

2013-01-06 06:48:42

You know the basics, but those scripts are quantity rather than quality. Sorry mate I will not be voting but you need to show us more advanced scripts.

[XoL]

2013-01-06 14:45:47

People have talked enough about your scripts I trust you will read those tips and use them next time.

I want to talk about behavior; honestly it has improved dramatically over the past few weeks and I think you are making strides towards being a reputable member of this community but sometimes voicing your opinion just shouldn't be done especially if you know 99% of the community will disagree with you. I am talking about the cleaning supplies thread, and the amount of "flame" you received by random members there-after. That could of easily been avoided, also the fact of the matter you made a thread about red rep afterwards, it was bound to happen but people react on negative FAR more than they react on positive.

Imagine going to a store and buying an apple and it was a good apple; you may say wow that was a good apple but I highly doubt you would go back to the store and tell them their apple was delicious. On the other hand if you found a worm in your apple you would be next in line to sue or give negative feedback to the store.

Hope you see where I am coming from, and again I think you are making massive leaps in attitude and behavior please keep it up :)

I'll vote yes

BraK

2013-01-17 10:50:04

Closed you can apply again in 2 weeks.