Sirenia
2012-06-25 11:03:52
How Long have You Played Runescape?
6 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
No
What is your general programming knowledge?
I think I know a quite bit of pascal(script?) as of today. School tried to teach us some html and we made our own page. I know the super very basics of java but other than that, nothing to speak of.
Are you a member of any other communities?
Today is this the only botting community im active in, im a member of Powerbot but arent posting or reading posts over there. I bought the ProDung script from Epicbot so I think I can say I am a member in that community but I aint posting there either.
Tell us about yourself…
Please show us one (or multiple) of your scripts.
6 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
No
What is your general programming knowledge?
I think I know a quite bit of pascal(script?) as of today. School tried to teach us some html and we made our own page. I know the super very basics of java but other than that, nothing to speak of.
Are you a member of any other communities?
Today is this the only botting community im active in, im a member of Powerbot but arent posting or reading posts over there. I bought the ProDung script from Epicbot so I think I can say I am a member in that community but I aint posting there either.
Tell us about yourself…
From: Sirenia
Okey this is my second shot and I cant really say much have changed with me. Im just a month away from my 17th birthday and finished my first year in college for a couple weeks ago, still listen to the same kind of music and doing the same stuff during the days. Only thing that have changed is that my mother got a new house at the swedish westcoast and we bought a small sized sailingboat wich me and my little brother is learning how to use ;) We had a quick sailing course during summer last year so we have some knowledge about it.
The intro of myself was kinda short because it feels like im repeating myself and if you wish you could read my old app - http://villavu.com/forum/showthread.php?t=82172
Okey now on to the script~!
Last time I think I gathered alot of No'es because of 2 reasons:
1 I didnt use any TPA's
2 It was similar to RyGuys AstralCrafter
So how do I want to avoid this happening again?
Ive been reading through tutorials about TPA's and struggled my way through learning and supplied the script with TPA functions!
And this time I got the idea of my script from my little brother raging on all the blue dragon bots so he complete hes slayer task, I havent looked on any other script to get the idea on how write a script for handling combat so the functions you see in the script is more or less written from scratch!
The scipt ive made is a Baby BlueDragon killer! It doesnt make high profit or a large amount of combat exp but I heard you can kill the baby dragons instead of the adult ones so I think this was a good idea for completing that slayer task.
It also picks up the bones if you want to make a small profit!
I made the script for my own use so it wont bring any food to the dragons but will eat when banking bones. It will however bring food down to the dragons if I choose to make this public.
To use the script you will need TeleTabs to Falador visible in your bank and 70agility since it is using the shortcut to the dragons. I wouldnt attempt to use this on a very low lvled account. The threat from the adult dragons is almost non-existant because of all the other bots (up to 3-4) battling about dragon kills. Start infront of the western Falador bank with the tabs visible and you should be ready for a go!
Heres a small proggy
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*Sirenia's Baby BlueDragon killer!
*Time: 1 Hours, 43 Minutes and 40 Seconds
*We have done 9 Runs!
*We have gathered 245 Bones!
*We have eaten 6 Lobsters!
*We have profited 247450 Coins!
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Please show us one (or multiple) of your scripts.
program BabyBlueDragKiller;
{$DEFINE SMART}
{$i SRL/SRL.simba}
{$i sps/sps.simba}
{$i SRL/SRL/misc/paintsmart.simba}
{$i SRL/SRL/skill/fighting.simba}
Const
EatAt = 400;
TotalHP = 960;
BonesCost = 1010;
PickUpBones = True;
var
x, y, key, tablet, wall, lobster, TeleNumber,
BonesGathered, TimeBegan, LobstersEaten: integer;
aFound: extended;
ToDragonsShort, ToBankPath, ToWall, ToCavePath: TPointArray;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Pin := '';
Players[0].Active:= True;
end;
procedure LoadStuff;
begin
ToDragonsShort := [Point(365, 329), Point(365, 329), Point(368, 345), Point(360, 357), Point(365, 371), Point(368, 384), Point(371, 397), Point(375, 411), Point(380, 422), Point(380, 434), Point(385, 439), Point(387, 450)];
ToBankPath := [Point(3701, 3155), Point(3680, 3193), Point(3626, 3179)];
ToWall := [Point(3597, 3179), Point(3598, 3198), Point(3596, 3218), Point(3582, 3234)];
ToCavePath := [Point(3573, 3218), Point(3565, 3200), Point(3557, 3179), Point(3536, 3162), Point(3514, 3143), Point(3492, 3128), Point(3470, 3125), Point(3448, 3124), Point(3432, 3117), Point(3416, 3108), Point(3398, 3094), Point(3387, 3086), Point(3381, 3069)];
Key := BitmapFromString(24, 20, 'meJwzcfAwwYYMrZ2xcpkYGITimy' +
'FINGuiROUyqeatUq3bsBqCB8HN4XGIECuYBeQCEcQcYwc3NMVWLl5' +
'AhN8cPo9kiCEQhFUxHkOQ/YWMyPAR2ebgcoZIRr9o9mTR3GnAgCLP' +
'GSJpPUC9YvkzgIaAjMqaiCdAsDpDMLJaJKULOYTRwhlhlB1OjwhGV' +
'AondwClFBQM0BCRHuH3ThcML4eYj6kRnnLgjgEqk6hagWwCj20In2' +
'eqYGgpsjMgKRyeyNHMwXQJt3UQPL2hOQMt48DNwZU80JxBavIQK5w' +
'DDBAuM2+IOXi0QzyIJ5XiClWsCNMZwKSF5ili0jyaOcDIEi9bLFY0' +
'F81VRJoDDAqgCcB0DtEoXr4EiND8iN8cuC9A2ssWi5fMh7CBTgJyQ' +
'WkpupZD2wa7B+0QsQ/yRcEshFEl84F6eZ2igGxQRi6cw++TiSe0gS' +
'kQEl8AVC9b7Q==');
Tablet := BitmapFromString(9, 11, 'meJw7oSh7Ai8KDAzBhWbNbENGaFJ' +
'4dJEnhccuXBrJk8KKAFTIbkw=');
Wall := DTMFromString('mggAAAHicY2NgYHjNxMDwnglCvwViIWYGhr9A2pyRgcESiK2B2ASInwHVvgDiZw+OMzy9d4zh/s2DDG+enmFYsXgiw7JFExi4gXLYMCMODAEA21IVrg==');
Lobster := DTMFromString('mlwAAAHicY2dgYBBmhGBJIJYAYj4gZoeyM4HyVUBcBMQ5QFwKxIVAXAbECwLEgSQTVszPgBsw4sFQAAAAAATZ');
end;
procedure FreeStuff;
begin
FreeBitmap(Key);
FreeBitmap(Tablet);
FreeDTM(Wall);
FreeDTM(Lobster);
end;
procedure AntiBan;
begin
case Random(150)of
0: HoverSkill('Attack', false);
1: PickUpMouse;
2: RandomMovement;
3: RandomRClick;
4: ExamineInv;
6: HoverSkill('Defense', false);
end;
end;
function CurrentHp: integer;
var
S: string;
begin
Result := GetMMLevels('health', S);
end;
procedure Eat;
var
x, y, Tried: integer;
begin
if CurrentHP < EatAt then
begin
FindDTM(Lobster, X, Y, MSX1, MSY1, MSX2, MSY2);
Mouse(X, Y, 7, 7, false);
WaitOption('10', 1500);
Wait(1000 + random(200));
repeat
FindDTM(Lobster, X, Y, MIX1, MIY1, MIX2, MIY2);
Mouse(X, Y, 7, 7, false);
WaitOption('at', 1500);
Wait(1000 + random(200));
Inc(Tried);
Inc(lobstersEaten);
until (CurrentHP = TotalHP) or (Tried > 10)
if FindDTM(Lobster, X, Y, MIX1, MIY1, MIX2, MIY2)then
begin
Mouse(X, Y, 7, 7, false);
WaitOption('ll', 1500);
Wait(500 + random(200));
end;
end;
end;
procedure ClimbWall;
var
Tried: integer;
begin
repeat
if FindDTMRotated(Wall, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
MMouse(x, y, 5, 5);
Inc(Tried);
if WaitUptext('limb', 500) then
ClickMouse2(true);
end;
until((DidRedClick) or (Tried > 5));
Wait(1500 + random(200));
end;
function ClimbDown: Boolean;
var
CTS, i: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.17, 0.05);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 5065801, msx1, msy1, msx2, msy2, 25);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 50, 100);
for i := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 10, 10);
If WaitUpTextMulti(['own', 'eps'], 1000) then
begin
Result := True;
ClickMouse2(true);
Wait(500 + random(50));
While IsMoving do Wait(100);
Break;
end;
end;
end;
function DragonFinder: Boolean;
var
CTS, i: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.11, 0.52);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 7231303, msx1, msy1, msx2, msy2, 18);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 50, 50 );
SMART_DrawDotsMulti(False, ATPA);
for i := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 7, 7);
If WaitUpTextMulti(['aby', 'ragon'], 1000) then
begin
Result := True;
ClickMouse2(true);
Wait(500 + random(50));
SMART_ClearCanvasArea(IntToBox(MSX1, MSY1, MSX2, MSY2));
While IsMoving do Wait(100);
Break;
end else
Exit;
end;
Wait(2000 + random(200));
While InFight do Wait(100);
end;
function FindBones: boolean;
var
I, CTS: Integer;
myPoint: TPoint;
Points: TPointArray;
aPoints: T2DPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.33, 2.60);
FindColorsSpiralTolerance(MSCX, MSCY, Points, 11913193, msx1, msy1, msx2, msy2, 18);
ColorToleranceSpeed(CTS);
aPoints := TPAtoATPAEx(Points, 20, 20);
SetLength(Points, 0);
for I := 0 to High(aPoints) do
begin
if Length(aPoints[i]) < 50 then
Continue;
myPoint := MiddleTPA(aPoints[i]);
MMouse(myPoint.X, myPoint.Y, 7, 7);
if WaitUpTextMulti(['ones', 'aby'], 1000) then
begin
Result := True;
ClickMouse2(true);
Inc(BonesGathered);
Wait(500 + random(50));
While IsMoving do Wait(100);
Wait(750 + random(200));
Break;
end;
if WaitUpTextMulti(['usty', 'key'], 1000) then
begin
Result := True;
ClickMouse2(false);
WaitOptionMulti(['abydragon', 'bones'], 1000);
Inc(BonesGathered);
Wait(500 + random(50));
While IsMoving do Wait(100);
Wait(750 + random(200));
Break;
end;
end;
end;
procedure PickBones;
begin
if InvFull then
Exit;
if PickUpBones = False then
Exit;
repeat
FindBones;
if not FindBones then
Exit;
until(InvFull);
end;
procedure Pipe;
var
Waited: integer;
begin
repeat
Wait(100 + random(10));
Inc(Waited);
until((PercentBlackMM > 30) or (Waited > 50));
MouseBox(284, 22, 301, 35, Mouse_Left);
Wait(750 + random(500));
While IsMoving do Wait(100);
Wait(500 + random(200));
if FindBlackChatMessage('used') then
begin
Wait(6500 + random(200));
MouseBox(288, 150, 295, 169, Mouse_Left);
end;
Wait(7000 + random(200));
end;
procedure ToCave;
begin
SPS_Setup(runescape_surface, ['8_7','8_8']);
SPS_WalkPath(ToWall);
While IsMoving do Wait(100);
ClimbWall;
SPS_WalkPath(ToCavePath);
While IsMoving do Wait(100);
ClimbDown;
end;
procedure FightDragons;
begin
begin
SPS_Setup(runescape_other,['taverly_dungeon']);
ToDragonsShort := [Point(365, 329), Point(365, 329), Point(368, 345), Point(360, 357), Point(365, 371), Point(368, 384), Point(371, 397), Point(375, 411), Point(380, 422), Point(380, 434), Point(385, 439), Point(387, 450)];
SPS_WalkPath(ToDragonsShort);
end;
repeat
DragonFinder;
AntiBan;
PickBones;
AntiBan;
FindNormalRandoms;
until(InvFull) or (CurrentHp < 150);
end;
procedure ToBank;
var
Waited: integer;
begin
SPS_Setup(runescape_surface, ['9_7']);
if FindBitmapToleranceIn(tablet, x, y, mix1, miy1, mix2, miy2, 45)then
begin
Mouse(x, y, 7, 7, true);
Inc(TeleNumber);
end;
repeat
Wait(100 + random(200));
Inc(Waited);
until(FindSymbol(x, y, 'shield') or (Waited > 50));
SPS_WalkPath(ToBankPath);
Wait(2000 + random(200));
end;
procedure HandleBank;
begin
OpenBankFast('fwb');
if BankScreen then
begin
DepositAll;
Wait(500 + random(200));
if FindBitmapToleranceIn(tablet, x, y, msx1, msy1, msx2, msy2, 45)then
begin
Mouse(x, y, 7, 7, true);
end else
begin
WriteLn('Out of Teles, exiting...');
TerminateScript;
end;
Eat;
CloseBank;
if CurrentHp < 150 then
begin
WriteLn('Low hp, exiting...');
TerminateScript;
end;
end;
end;
procedure Proggy;
var
TimeRan, Profit: integer;
begin
TimeRan := (1+((GetSystemTime - TimeBegan) / 1000));
Profit := (BonesGathered * BonesCost);
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn('*Sirenia''s Baby BlueDragon killer!');
WriteLn('*Time: ' + TimeRunning);
WriteLn('*We have done ' + IntToStr(TeleNumber) + ' Runs!');
Writeln('*We have gathered ' +IntToStr(BonesGathered) + ' Bones!');
WriteLn('*We have eaten ' +IntToStr(LobstersEaten) + ' Lobsters!');
WriteLn('*We have profited ' +IntToStr(Profit) + ' Coins!');
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;
procedure MainLoop;
begin
HandleBank;
Proggy;
ToCave;
Pipe;
FightDragons;
Tobank;
end;
begin
Smart_Server := 86;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetUpSRL;
ActivateClient;
DeclarePlayers;
LoginPlayer;
LoadStuff;
AddOnTerminate('FreeStuff');
ClickNorth(0);
repeat
mainloop;
until(False);
end.