rj
2013-02-01 22:43:22
7 Year(s)
Are you affilated in anyway with Jagex LTD?
No.
Were you Referred to SRL?
What is your general programming knowledge?
Pascal,GML,Ti-basic(lol),a little bit of java not much
Are you a member of any other communities?
I am no longer a active member or any of the communities listed in my last application
Tell us about yourself…
From: rjj95
This is going to be pretty close to my last "tell us about youself" :)
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's 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 were 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(picked up vesta's,statuis, and other items and baked).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.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, TPA's (with uptext) making my own basic includes, using some SRL include, adding anti-bans, painting on S.M.A.R.T, using uptext and choose option.
Please show us one (or multiple) of your scripts.
Here is a Runescape copper Miner+Banker. It earns around 35k-40k GP per hour, it is good for making a bot army and training your bots mining here until 60.
I currently have to fix a couple bugs with it, but it is better then the powerminer.
{
============================================================================
****************************************************************************
**************************RJJ95 COPPER FARMER 1.0***************************
****************************************************************************
============================================================================
}
{
If BankScreen Then
Deposit(1, 28, True);
}
program RSPowerMine;
{$DEFINE SMART}
{$i srl/srl.simba}
{$i sps/sps.simba}
{$I SRL/SRL/misc/SmartGraphics.simba}
const
{
Area around the Player
}
PSX1 = 239;
PSY1 = 197;
PSX2 = 275;
PSY2 = 240;
{
Area the bot searches for Rock
}
MIBX1 = 118;
MIBY1 = 123;
MIBX2 = 444;
MIBY2 = 346;
{
Box Colors
}
COLINV = 65280;
COLPLAY = 65280;
COLSEARCH = 255;
var
StartTime, XPPerHour, OresPerHour, Seconds, XPGained, OresMined: Integer;
Status, OresToMine: string;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
CurrentPlayer := 0;
NumberOfPlayers(HowManyPlayers);
with Players[0] do
begin
Name := '';
Pass := '';
Pin := '';
Member := False;
Active := True;
end;
end;
procedure PrintSmart;
begin
SMART_DrawText(10, 76 - 50, StatChars, '===============================', 14530669);
SMART_DrawText(10, 95 - 50, StatChars, 'Status: ' + Status, 14530669);
SMART_DrawText(10, 114 - 50, StatChars, 'Time Running: ' + TimeRunning, 14530669);
SMART_DrawText(10, 133 - 50, StatChars, 'Ores mined: ' + ToStr(OresMined), 14530669);
SMART_DrawText(10, 152 - 50, StatChars, 'Ores Per Hour: ' + ToStr(OresPerhour), 14530669);
SMART_DrawText(10, 171 - 50, StatChars, 'Experience Gained: ' + ToStr(XpGained), 14530669);
SMART_DrawText(10, 190 - 50, StatChars, 'Experience Per hour: ' + ToStr(XpPerHour), 14530669);
SMART_DrawText(10, 208 - 50, StatChars, 'Money Per Hour: ' + ToStr(OresPerhour*41), 14530669);
SMART_DrawText(10, 228 - 50, StatChars, '==============================', 14530669);
end;
procedure DrawNew;
var
PixelBox, NotFull: Tbox;
begin
SMART_ClearCanvas;
PixelBox := IntToBox(PSX1, PSY1 - 50, PSX2, PSY2 - 50);
//NotFull := IntToBox(552, 212, 731, 461);
//SearchBox := IntToBox(MIBX1, MIBY1-50, MIBX2, MIBY2-50);
SMART_DrawBoxEx(False, False, NotFull, COLINV);
SMART_DrawBoxEx(False, False, PixelBox, COLPLAY);
// SMART_DrawBoxEx(False, False, SearchBox, COLSEARCH);
PrintSmart;
end;
procedure WriteProgress;
begin
Seconds := (1 + ((Getsystemtime - StartTime) / 1000));
XpPerHour := (3600 * XPGained) / (Seconds);
OresPerHour := (3600 * OresMined) / Seconds;
ClearDebug;
Writeln('*****************************');
Writeln('Status:' + Status + '');
writeln('Mining XP: ' + IntToStr(XPGained));
writeLn('Mining XP/H: ' + IntToStr(XpPerHour));
writeLn('Ores Mined: ' + IntToStr(OresMined));
writeLn('Ores Per Hour: ' + IntToStr(OresPerHour));
Writeln('*****************************');
DrawNew;
end;
procedure AntiBan;
begin
case random(30000) of
1..10: MakeCompass(255 - Random(30));
20..30: MakeCompass(255 + Random(30));
40..90: Wait(RandomRange(1000, 4000));
100..170: Wait(RandomRange(2000, 17000));
171..250: RandomRClick;
251..350: Wait(RandomRange(1000, 80000));
351..500: BoredHuman;
501..600: ExamineInv;
701..850: HoverOnlineFriend;
851..950: HoverMovingObject;
end;
end;
procedure WaitHumanKey;
begin
case random(500) of
1..380: Wait(RandomRange(25, 90));
381..484: Wait(RandomRange(100, 250));
485..500: Wait(RandomRange(100, 500));
end;
end;
procedure WaitHumanClick;
begin
case random(600) of
1..450: Wait(RandomRange(50, 250));
451..570: Wait(RandomRange(150, 450));
571..590: Wait(RandomRange(150, 550));
591..600: Wait(RandomRange(400, 1100));
end;
end;
procedure ToMine;
var
ToMineVar: TPointArray;
begin
MakeCompass(360 - Random(15));
Status := ('Walking to mine via SPS');
WriteProgress;
ToMineVar:=[Point(3846,3174),Point(3846,3163),Point(3844,3155),Point(3838,3151),
Point(3828,3152),Point(3822,3162),Point(3818,3172),Point(3818,3181),
Point(3820,3190),Point(3821,3198),Point(3822,3206),Point(3823,3216),
Point(3823,3226),Point(3823,3236),Point(3823,3246),Point(3824,3256),
Point(3822,3267),Point(3821,3278),Point(3818,3287),Point(3819,3295),
Point(3821,3302),Point(3821,3314),Point(3821,3326),Point(3821,3340),
Point(3822,3356),Point(3821,3366),Point(3819,3374),Point(3817,3384),
Point(3814,3398),Point(3814,3412),Point(3812,3424),Point(3813,3436),
Point(3816,3447),Point(3818,3460),Point(3815,3471),Point(3811,3487),
Point(3801,3496),Point(3789,3502),Point(3778,3506),Point(3765,3513),
Point(3754,3518),Point(3741,3521),Point(3728,3522),Point(3717,3525),
Point(3704,3533),Point(3696,3546),Point(3696,3556),Point(3692,3574),
Point(3688,3585),Point(3688,3593),Point(3687,3603),Point(3686,3613),
Point(3683,3624),Point(3684,3634),Point(3677,3642),Point(3669,3653)];
if SPS_WalkPath(ToMineVar) then
Wait(RandomRange(800, 1000));
Exit;
end;
Procedure StoreOre;
var
NotFull:Tbox;
begin
PrintSmart;
NotFull := IntToBox(552, 212, 731, 461);
SMART_DrawBoxEx(False, False, NotFull, COLINV);
If BankScreen Then
begin
Deposit(2, 28, True);
Wait(RandomRange(800, 2000));
ToMine;
end;
Wait(RandomRange(800, 2000));
StoreOre;
end;
function ClickBank: Boolean;
var
tmpCTS, i, L, Counter: Integer;
ObjTPA: TPointArray;
ObjATPA: T2DPointArray;
X, Y, DMCount, Moves: Integer;
begin
Moves := 0;
DMCount := 0;
tmpCTS := GetToleranceSpeed;
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(0.14, 0.11); // .06 .90 3029853 6
FindColorsTolerance(ObjTPA, 4613246, MSX1, MSY1, MSX2, MSY2, 3);
SplitTPAWrap(ObjTPA, 10, ObjATPA);
SortATPASize(ObjATPA, True);
SetColorToleranceSpeed(tmpCTS);
SetToleranceSpeed2Modifiers(0.02, 0.02);
DMCount := RandomRange(3, 5);
L := High(ObjATPA) MarkTime(Counter);
for i := 0 to L do
begin
MiddleTPAEx(ObjATPA[i], X, Y);
repeat
begin
MakeCompass(180 - Random(25));
Moves := Moves + 1;
Status := ('Looking for Bank');
WriteProgress;
Wait(RandomRange(100, 200));
MMouse(RandomRange(X - 5, X + 5), RandomRange(y - 5, y + 5), 0, 0);
if (IsUpTextMultiCustom(['Bank', 'Use Bank', 'booth', 'k booth', 'Use Bank booth'])) then
begin
Status := ('Opening bank');
WriteProgress;
WaitHumanClick;
clickmouse2(mouse_Left);
Wait(RandomRange(1000, 3000));
StoreOre;
ToMine;
Exit;
end;
end;
until (Moves > DMCount) if (TimeFromMark(Counter) > 3000) then
begin
Status := ('Could not find the bank, Retrying');
WriteProgress;
MakeCompass(180 - Random(15));
Wait(RandomRange(2000, 5000));
ClickBank;
Break;
end;
end;
Result := False;
end;
procedure WalkBank;
var
ToBankVar: TPointArray;
begin
MakeCompass(360 - Random(10));
//ClickNorth(SRL_ANGLE_HIGH);
Status := ('Walking to bank via SPS');
WriteProgress;
SPS_Setup(RUNESCAPE_SURFACE,['9_9','9_8','9_7']);
ToBankVar:=[Point(3693,3661),Point(3697,3661),Point(3700,3659),
Point(3697,3653),Point(3695,3648),Point(3694,3642),Point(3692,3634),
Point(3695,3629),Point(3692,3624),Point(3693,3621),Point(3693,3615),
Point(3691,3610),Point(3691,3603),Point(3691,3597),Point(3693,3590),
Point(3695,3585),Point(3695,3576),Point(3693,3571),Point(3695,3566),
Point(3696,3561),Point(3696,3554),Point(3698,3549),Point(3700,3542),
Point(3700,3535),Point(3702,3527),Point(3700,3520),Point(3701,3515),
Point(3701,3506),Point(3703,3500),Point(3706,3494),Point(3717,3490),
Point(3712,3489),Point(3713,3484),Point(3717,3479),Point(3722,3475),
Point(3726,3470),Point(3730,3466),Point(3732,3462),Point(3738,3458),
Point(3743,3451),Point(3749,3451),Point(3756,3448),Point(3763,3446),
Point(3770,3445),Point(3777,3441),Point(3781,3436),Point(3784,3431),
Point(3792,3427),Point(3801,3427),Point(3809,3427),Point(3811,3420),
Point(3813,3411),Point(3814,3403),Point(3816,3396),Point(3816,3388),
Point(3814,3381),Point(3816,3376),Point(3818,3371),Point(3819,3366),
Point(3820,3360),Point(3822,3354),Point(3822,3347),Point(3821,3340),
Point(3821,3333),Point(3821,3326),Point(3821,3320),Point(3821,3312),
Point(3821,3303),Point(3818,3295),Point(3818,3288),Point(3820,3283),
Point(3823,3280),Point(3824,3273),Point(3824,3268),Point(3824,3261),
Point(3823,3255),Point(3824,3250),Point(3825,3244),Point(3825,3236),
Point(3823,3229),Point(3824,3224),Point(3824,3215),Point(3824,3207),
Point(3822,3198),Point(3821,3191),Point(3821,3184),Point(3823,3176),
Point(3823,3168),Point(3823,3159),Point(3827,3157),Point(3833,3159),
Point(3838,3158),Point(3843,3160),Point(3846,3165),Point(3845,3169),
Point(3845,3175),Point(3844,3180),Point(3847,3183)];
if SPS_WalkPath(ToBankVar) then
Wait(RandomRange(1400, 2500));
end;
function Mining: Boolean;
var
PBox: TBox;
begin
PBox := IntToBox(PSX1, PSY1 - 50, PSX2, PSY2 - 50);
Result := (AveragePixelShift(PBox, 250, 350) > 200);
end;
function ClickRock: Boolean;
var
tmpCTS, i, L, Counter: Integer;
ObjTPA: TPointArray;
ObjATPA: T2DPointArray;
X, Y, DMCount, Moves: Integer;
begin
Moves := 0;
DMCount := 0;
tmpCTS := GetToleranceSpeed;
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(0.01, 3.19); // .06 .90 3029853 6
FindColorsTolerance(ObjTPA, 4490217, MIBX1, MIBY1-50, MIBX2, MIBY2-50, 6);
SplitTPAWrap(ObjTPA, 10, ObjATPA);
SortATPASize(ObjATPA, True);
SetColorToleranceSpeed(tmpCTS);
SetToleranceSpeed2Modifiers(0.02, 0.02);
DMCount := RandomRange(3, 5);
L := High(ObjATPA) MarkTime(Counter);
for i := 0 to L do
begin
MiddleTPAEx(ObjATPA[i], X, Y);
repeat
begin
Moves := Moves + 1;
Status := ('Looking for Copper rock');
WriteProgress;
Wait(RandomRange(100, 200));
MMouse(RandomRange(X - 2, X + 2), RandomRange(y - 2, y + 2), 0, 0);
//if (IsUpTextMultiCustom(['Mine I', 'ine Ir', 'ine Iron'])) then
if (IsUpTextMultiCustom(['Mine C', 'ine Co', 'ine Copp', 'Copper', 'ore rocks'])) then
begin
Status := ('Mining Copper');
WriteProgress;
WaitHumanClick;
clickmouse2(mouse_Left);
Wait(RandomRange(800, 1100));
while (Mining) do
Status := ('Detected mining animation');
Wait(RandomRange(100, 200));
WriteProgress;
AntiBan;
IncEx(XPGained, 17);
IncEx(OresMined, 1);
Exit;
end;
end;
until (Moves > DMCount) if (TimeFromMark(Counter) > 5000) then
begin
Status := ('Could not find any rocks, waiting 10 seconds');
WriteProgress;
MakeCompass(180 - Random(15));
Wait(RandomRange(7000, 12000));
Break;
end;
end;
Result := False;
end;
procedure CheckItems;
begin
if invfull then
begin
WalkBank;
ClickBank;
end;
if not invfull then
begin
ClickRock;
end;
end;
procedure Draw;
var
PixelBox{, NotFull}: Tbox;
begin
PixelBox := IntToBox(PSX1, PSY1 - 50, PSX2, PSY2 - 50);
//NotFull := IntToBox(552, 212, 731, 461);
//SMART_DrawBoxEx(False, False, NotFull, COLINV);
SMART_DrawBoxEx(False, False, PixelBox, COLPLAY);
CheckItems;
end;
procedure Setup;
begin
{$IFDEF SIMBAMAJOR980}
SMART_SERVER := 100;
SMART_MEMBERS := TRUE;
SMART_SIGNED := TRUE;
SMART_SUPERDETAIL := FALSE;
SRL_SIXHOURFIX := TRUE;
{$ELSE}
SRL_SIXHOURFIX := TRUE;
SMART_FIXSPEED := TRUE;
{$ENDIF}
SetupSRL;
ClearDebug;
DeclarePlayers;
if not LoggedIn then
begin
LoginPlayer;
Wait(1583 + Random(3293));
end;
ExitSquealOfFortune;
MakeCompass(180 - Random(25));
ToggleXPBar(True);
SmartSetRefresh(90);
end;
Procedure DrawPixelBox;
var
PixelBox:Tbox;
begin
SMART_ClearCanvas;
SMART_DrawText(PSX1-180, PSY1 - 80, StatChars, 'This is were the bot will search for mining animation, edit at top of the script to change', 14530669);
SMART_DrawText(PSX1-100, PSY1 - 70, StatChars, 'If you find any bugs please report them on the thread', 14530669);
PixelBox := IntToBox(PSX1, PSY1 - 50, PSX2, PSY2 - 50);
SMART_DrawBoxEx(False, False, PixelBox, COLSEARCH);
wait(1400);
end;
Procedure DrawSearchBox;
var
SearchBox:Tbox;
Begin
SMART_ClearCanvas;
SMART_DrawText(MIBX1-50, MIBY1 - 90, StatChars, 'This is were the bot will search for ore, edit in script to change', 14530669);
SMART_DrawText(MIBX1-50, MIBY1 - 70, StatChars, 'If you find any bugs please report them on the thread', 14530669);
SearchBox := IntToBox(MIBX1, MIBY1-50, MIBX2, MIBY2-50);
SMART_DrawBoxEx(False, False, SearchBox, COLSEARCH);
wait(1500);
end;
begin
Setup;
DrawSearchBox;
DrawPixelBox;
ActivateClient;
CheckItems;
Draw;
StartTime := GetSystemTime;
repeat
Draw;
until false;
Logout;
SMART_ClearMS;
TerminateScript;
end.
Output:
or
*****************************
Status:Mining Iron
Mining XP: 910
Mining XP/H: 25593
Ores Mined: 26
Ores Per Hour: 731
Goal:[69]|43 Left to Mine| [38%]
*****************************
You need project06 include to use this, it can be found via my signature.
Program CLICKTREE;
{$I SRL/SRL.Simba}
{$I SRL/SRL/Misc/Debug.Simba}
{$I P06Include/P06Include.Simba}
const
PX1 = 229;
PY1 = 116;
PX2 = 270;
PY2 = 196;
var
LogsCut:Integer;
Status:String;
//function P06_InvFull: Boolean;
Procedure WriteDebug;
begin
ClearDebug;
begin
Writeln('**********************');
Writeln('Project2006 Powercutter 1.0');
Writeln('Status:' + Status + '');
Writeln('Logs cut:' + IntToStr(LogsCut) + '');
Writeln('XP gained:' + IntToStr(LogsCut*38) + '');
Writeln('**********************');
end;
end;
Procedure DropLogs;
begin
P06_DropAll;
end;
function Woodcutting: Boolean;
var
PBox: TBox;
begin
PBox := IntToBox(PX1, PY1, PX2, PY2);
Result := (AveragePixelShift(PBox, 250, 350) > 400);
//Writeln(IntToStr(AveragePixelShift(PBox, 500, 650)));
end;
Function ClickTree: Boolean;
Var
tmpCTS,i, L,Counter: Integer;
ObjTPA: TPointArray;
ObjATPA: T2DPointArray;
X,Y,DMCount,Moves: Integer;
Begin
Moves:=0;
DMCount:=0;
tmpCTS := GetToleranceSpeed;
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(0.06, 0.20);
FindColorsTolerance(ObjTPA, 3166038, MSX1, MSY1, MSX2, MSY2, 5);
SplitTPAWrap(ObjTPA, 10, ObjATPA);
SortATPASize(ObjATPA,True);
SetColorToleranceSpeed(tmpCTS);
SetToleranceSpeed2Modifiers(0.02, 0.02);
DMCount:=RandomRange(3,5);
L := High(ObjATPA)
MarkTime(Counter);
For i := 0 To L Do
Begin
MiddleTPAEx(ObjATPA[i], X, Y);
Repeat Begin
Status := ('Looking for tree');
WriteDebug;
Moves:=Moves+1;
mmouse(x, y, 1, 1);
Wait(RandomRange(140, 200));
If (P06_IsUpTextMultiCustom(['Willow','illow', 'llow'])) Then
Begin
Status := ('Cutting tree');
WriteDebug;
clickmouse2(mouse_Left);
Wait(700);
while (IsMoving) do
wait(100);
Exit;
End;
End; Until (Moves > DMCount)
If (TimeFromMark(Counter) > 5000) Then
Begin
Break;
End;
End;
Result:=False;
End;
Procedure Cut;
Begin
If (P06_InvFull) Then
begin
Status := ('Dropping logs');
WriteDebug;
DropLogs;
IncEx(LogsCut, 28);
End;
if not Woodcutting Then
Begin
ClickTree;
End;
End;
begin
SetupP06Include;
MouseSpeed := 15;
repeat
Cut;
until false
end.