xtrapsp
2012-04-19 18:01:42
Last time some people didn't say why
How Long have You Played Runescape?
7 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
N/A
What is your general programming knowledge?
Pascal
C#
Java (A Little)
PHP
HTML
CSS
Are you a member of any other communities?
Ex-Moderator (Eric Clapton) at Runedream (Quit due to unfriendly community and corrupt staff)
TheBotNet (Ex-Respected Member - Xtrapsp)
Digitalpoint (Online services, second income)
Just Rejoined Sythe, Account is from 2008
Tell us about yourself…
I own various websites, I code for my stepdad. I work with films and at the moment am working for Michelle Wraight who is making her first Feature Film.
I work at KFC, Although I want to move up in the world (Obviously haha)
My interests are:*
Helping others. I make RS guides etc
Shooting films.
Writing films.
Studying a films cinematography and other aspects such as Mise én scene and sound
I own and designed:
http://bradsblog.co.uk/
http://cheapseo4u.co.uk/
http://rhinosolar.co.uk/
I recently (On the 18th of April) got an apprenticeship with computer programming. what really impressed them was my understand for pascal and various other languages so thank you Villavu :)
Please show us one (or multiple) of your scripts.
Snippet from Private Script (Learning about Timings):
MarkTime(T);
Repeat
FindNPCTPA;
BuyItem;
if(TimeFromMark(T) > 45000 + Random(1000)) then
begin
WriteLn(TimeFromMark(T));
LodeWalk2;
end;
Until(InvFull);Snippet from Private Script (Learning about TPA's):
function FindVulcanTPA: Boolean;
var
x, y, i, h : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
if not LoggedIn then Exit;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.03, 0.62);
FindColorsSpiralTolerance(x, y, TPA, 3037305, MSX1, MSY1, MSX2, MSY2, 12);
ATPA := SplitTPAEx(TPA, 10, 10);
DebugATPA(ATPA, 'aptatest');
if (Length(ATPA) = 0) then
begin
writeln('Could not find Vulcans colour');
Exit;
end;
SortATPAFromMidPoint(ATPA, Point(MSCX, MSCY));
h := High(ATPA);
for i := 0 to h do
begin
Writeln('Length: ' + IntToStr(Length(ATPA[i])));
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 4, 4);
if WaitUpText('Ign', 100) then
begin
Writeln('Found Vulcan!');
DebugATPA(ATPA, 'aptatest');
Mouse(x, y, 3, 3, False);
Result := True;
Wait(500 + Random(1000));
ChooseOption('Trad');
Wait(500 + Random(1000));
end else
Writeln('Couldn''t find the right uptext for Vulcan.');
wait (100 + Random(1000));
end;
SetColorSpeed2Modifiers(0.2, 0.2);//Don't forget to reset back to default.
ColorToleranceSpeed(1);
end; Now some Scripts:
This is my latest Revision of Xtra-IVY Not public Release (When I have time for it I will re-update and clean it up :) ) Need to add OBJDtm's for walking etc
program xtraivy;
{$DEFINE SMART}
{$i SRL\SRL.simba}
{$i SRL/SRL/skill/woodcutting.simba}
{$i sps/sps.simba}
{$i SRL/SRL/Misc/Debug.simba}
{===================================================================
Instructions:
1. Start by IVY (This script was written for CastleWars but it should work
elsewhere.
2. Make sure hatchet is equiped
3.Leave bot to work it's magic
4. Check every now and again as Simba hasn't done all Randoms!
XtraIVY
Release Date : 17/02/2012
Author : xtrapsp
Support: [url]http://villavu.com/forum/showthread.php?t=75528[/url]
Changelog:
06/03/2012 - Theres been a huge SRL Update so I'm learning source. Tweaking parts of code!
23/02/2012 - Changed around with the Nest Settings
20/02/2012 - Cleaned up script a bit + Setup script for addons
17/02/2012 - Chopping done.
18/02/2012 - Added Various antiban.
19/02/2012 - Added elements which aren't in use yet.
===================================================================}
Const
SRLStats_Username = '';
SRLStats_Password = '';
NumbOfPlayers= 1;
StartPlayer= 0;
Debug = True;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Nick := '';
Pin := '';
BoxRewards := ['amp'];
lampSkill := SKILL_WOODCUTTING;
Member := True;
Active := True;
end;
end;
function ClickNest: Boolean;
var
x, y, i, h : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
if not LoggedIn then Exit;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.15, 0.27);
FindColorsSpiralTolerance(x, y, TPA, 5727592, MSX1, MSY1, MSX2, MSY2, 21);
ATPA := SplitTPAEx(TPA, 5, 5);
writeln('TPA split into ' + tostr(length(ATPA)) + ' parts.');
if (Length(TPA) = 0) then
begin
writeln('The TPA was empty, no colours found.');
Exit;
end;
SortATPASize(ATPA, True);
h := High(ATPA);
//writeln('ATPA is ' +tostr(h));
for i := 0 to h do
begin
Writeln('Length: ' + IntToStr(Length(ATPA[i])));
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 4, 4);
if WaitUpText('est', 100) then
begin
Writeln('Found Nest!');
Mouse(x, y, 2, 2, True);
Result := True;
Wait(8000 + Random(16000));
end else
begin
Writeln('Couldn''t find the right uptext for a Nest.');
wait (100 + Random(1000));
Makecompass('N');
end;
end;
SetColorSpeed2Modifiers(0.2, 0.2);//Don't forget to reset back to default.
ColorToleranceSpeed(1);
end;
Procedure AFK;
begin
if not loggedIn then Exit;
Case Random (100) Of
1..15 : Wait(1000 + Random (3050));
16..24 : Wait (1340 + Random (1093));
25..45: Wait (1211 + Random (6000));
46..47: Wait (20000 + Random (10000)); // This looks like you've gone to get a drink
48..67: BoredHuman;
end;
end;
Procedure Birdsnest2;
var
x, y: Integer; //IsChatBoxTextAnyLine(Text: string; TextCol: Integer): Boolean;
begin
if IsChatBoxTextAnyLine('A bird', 255) Then
begin
FindObjEx(x, y, ['ake B', 'Bird', 'nest'], [2767422, 2961972, 3818051], 5, 50, 191, 149, 354, 252);
Mouse(x, y, 0, 0, True);
Wait(1500+Random(500))
end;
end;
procedure Invfull_bank;
var
myPath:TPointArray;
BankSymbol,x,y:integer;
begin
if not LoggedIn then exit else
FindNormalRandoms;
SetColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.02, 0.07);
if InvFull Then begin
Writeln('Inventory full. Attempting to walk to bank in Castle Wars');
SPS_Setup(RUNESCAPE_SURFACE,['3_10','4_10']);//SPS Areas
myPath :=[ Point(1503, 4368), Point(1564, 4365), Point(1606, 4366),
Point(1635, 4355), Point(1643, 4324), Point(1648, 4300),
Point(1645, 4286), Point(1628, 4279), Point(1605, 4280),
Point(1595, 4309), Point(1575, 4280), Point(1597, 4311)];//Path
SPS_WalkPath(myPath);
BankSymbol := DTMFromString('mggAAAHicY2NgYAhmYmCIAOIgIPYB4kAgjgRiRUYGBjkg'+
'lgJiBSBWB2JlIC4KEmY4cOAAw5bFrmCagYGR4fvbtwzYA'+
'DNYFjuGAAC7xwyd');
if FindDTM(BankSymbol,x, y,1, 1, 200, 200) then
begin
Writeln('looking for DTM Symbol');
Mouse(x,y,1,1,True);
While (IsMoving) do
begin
repeat
OpenBankChestEdge(SRL_BANK_CW);
Until(BankScreen); //there's no failsafe here, but it's fine standards wise
DepositAll;
end;
Writeln('Attempting to walk to back to IVY');
SPS_Setup(RUNESCAPE_SURFACE,['3_10','4_10','3_11']);//SPS Areas
myPath := [Point(1592, 4279), Point(1635, 4279), Point(1645, 4314),
Point(1647, 4351), Point(1594, 4385), Point(1543, 4410),
Point(1517, 4372), Point(1534, 4368), Point(1505, 4370),
Point(1519, 4369), Point(1522, 4372), Point(1514, 4375),
Point(1509, 4372), Point(1518, 4372), Point(1510, 4365),
Point(1528, 4373)];
SPS_WalkPath(myPath);
(* We revert back to the defaults here. *)
SetColorSpeed2Modifiers(0.2, 0.2);
SetColorToleranceSpeed(1);
end;
end;
end;
function ClickIVY: Boolean;
var
x, y, i, h : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
if not LoggedIn then Exit;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.02, 0.7);
FindColorsSpiralTolerance(x, y, TPA, 4619873, MSX1, MSY1, MSX2, MSY2, 11);
ATPA := SplitTPAEx(TPA, 10, 10);
DebugATPA(ATPA, 'aptatest');
if (Length(ATPA) = 0) then
begin
writeln('Could not find IVY colour');
Exit;
end;
SortATPAFromMidPoint(ATPA, Point(MSCX, MSCY));
h := High(ATPA);
for i := 0 to h do
begin
Writeln('Length: ' + IntToStr(Length(ATPA[i])));
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 4, 4);
if WaitUpText('vy', 100) then
begin
Writeln('Found Ivy!');
Mouse(x, y, 2, 2, True);
Result := True;
Wait(8000 + Random(16000));
AFK;
end else
Writeln('Couldn''t find the right uptext for IVY.');
wait (100 + Random(1000));
end;
SetColorSpeed2Modifiers(0.2, 0.2);//Don't forget to reset back to default.
ColorToleranceSpeed(1);
end;
procedure x_Stats_Commit;
var
Gained: Integer;
begin
stats_IncVariable('Woodcutting EXP', (Gained));
Stats_Commit;
Writeln('Updated SRL Stats')
end;
Procedure ProgressReport;
var
startEXP, newExp, Gained : Integer;
begin
startExp := Players[CurrentPlayer].Integers[0];
newExp := GetXPBarTotal;
Gained := newExp - startExp;
WriteLn('Exp gained: ' + ToStr(Gained));
x_Stats_Commit;
end;
Procedure Antiban_Upgrade;
var
I: Integer;
CurrentCompassDegree: Extended;
begin
I := Random(1000);
case (I) of
0..99 :
begin
GameTab(tab_Stats);
HoverSkill('ccWoodcutting', False);
GameTab(28);
end;
100..200 :
begin
SleepAndMoveMouse(7000 + Random(500));
MakeCompass(CurrentCompassDegree-18+Random(32));
end;
200..210 :
begin
GameTab(Tab_Stats);
MakeCompass(CurrentCompassDegree-2+Random(34));
Wait(3000 + Random(500));
GameTab(28);
end;
211..220 :
begin
BoredHuman;
MakeCompass('N');
end;
221..300 :
begin
GameTab(Tab_Stats);
Wait(100 + Random(1000));
end;
end;
end;
Procedure FindNest_old;
var
X, Y: Integer;
Begin
if not LoggedIn then
Exit;
FindNormalRandoms;
If FindObjCustom(x, y, ['Ne', 'st'], [3290938,3883332], 5) Then
begin
Mouse( x, y, 2, 2, True);
Writeln('Found a nest... Attempting to pickup');
MakeCompass(10 + random(50));
end;
End;
Procedure Mainloop;
begin
FindNormalRandoms;
setangle(1)
ClickIVY;
//ClickNest;
Case Random (77) Of
1..15 : Antiban_Upgrade;
end;
end;
begin
SMART_Server := 1;
SetupSRL;
DeclarePlayers;
LoginPlayer;
ToggleXPBar(True);
Players[CurrentPlayer].Integers[0] := GetXPBarTotal;
Writeln('Your using XtraIvy V 2.00');
Writeln('Please report any bugs on the thread');
Writeln('Thanks for using the most flawless IVY script on Simba :)');
MakeCompass('N');
Repeat
Mainloop;
until(Not LoggedIn);
End.This script was removed due to leechers making up false information etc and purposly trying to ruin my thread
program XtraTeleportAIO;
{$DEFINE SMART}
{$i SRL\SRL.simba}
//Instructions
//1. Have Runes In inventory ready
//2. Run Script
Const
SRLStats_Username = '';
SRLStats_Password = '';
NumbOfPlayers= 1;
StartPlayer= 0;
Debug = True;
Teleport= 'Camelot'; // Camelot, Varrock, Lumbridge, Falador
// Ardougne, Home, Watchtower, Trollheim
var
startXP:Integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Nick := '';
Pin := '';
BoxRewards := ['amp'];
lampSkill := SKILL_WOODCUTTING;
Member := True;
Active := True;
end;
with Players[1] do
begin
Name := '';
Pass := '';
Nick := '';
Pin := '';
BoxRewards := ['amp'];
lampSkill := SKILL_WOODCUTTING;
Member := True;
Active := True;
end;
with Players[2] do
begin
Name := '';
Pass := '';
Nick := '';
Pin := '';
BoxRewards := ['amp'];
lampSkill := SKILL_WOODCUTTING;
Member := True;
Active := True;
end;
end;
procedure Tele;
var
x,y, teleportDTM, Teleports:integer;
begin
case teleport of
'Camelot': teleportDTM := DTMFromString('mggAAAHicY2NgYJjLxMCwGIhnAvEUIJ4DxMuB2JWRgcEWil2A2A+I3YDYwyqcwcnKAI5b594AY1yAEQeGAAD+JQw3');
'Varrock': teleportDTM := DTMFromString('mWAAAAHicY2FgYOhkZWDoAeKJQNwPxIcYGRhOM0LoU0DsYRnOYMfryOBhFc7gJB/LgA4Y0TAIAAD6xAhq');
'Lumbridge': teleportDTM:= DTMFromString('mlwAAAHicY2dgYHBhZWDwBWJrILYAYlcoPxCIHzAyMFwF4mtA/BiIXwLxayC+C8QyvCoMTlYGDO72xmDa1d4IzAZhfIARD4YCAATZDMU=');
'Falador': teleportDTM:= DTMFromString('mggAAAHicY2NgYOhlZWDoguJ+KA0Su8cIwbeg+CEUr9//mEGHX58hP7wTjGV4VRic5GMZcAFGHBgCACnhDw4=');
'Ardougne': teleportDTM:= DTMFromString('mbQAAAHicY2VgYChiZWAoBuJSIC4H4gogFmRiYOADYk4g5mWC8NfvfwzGv3//hrOxAUYsGAwArKsO8g==');
'Home': teleportDTM:= DTMFromString('mAAEAAHic42FgYNBlZWDQAmJNINZhhfD1obQhEJtDxZWB2ACIvzMyMPwC4q9A/AWIP0JpkNhPIP4GxG8YIeqYmBgY9h35xCDBKs8Qbl/EkOTTwVAWN4Ph79+/YDEf3TQGJysDMHa3N2ZwtTdiIBUwkoiRAQDUrBo+');
'Watchtower': teleportDTM:= DTMFromString('mbQAAAHicY2VgYIhkZWCIAuJYII4H4kQgVmZiYNAEYlUg1mKC8H///s3gJB8LptfvfwymsQFGLBgMAIrbDp4=');
'Trollheim': teleportDTM:= DTMFromString('mwQAAAHic42RgYChlZWAoAuIKVgi7EogLgLgMiLOBuB6I7ZkYGKyh2BmIHYDYDohNmCByIHzp4VOGv3//grGDUjIY+2jWMzhZGTA4WOiCaWIAIxEYDgCAGhOY');
end;
Gametab(Tab_Magic);
Wait(randomrange(1000,1750));
begin
FindDTM(teleportDTM, x, y, MIX1, MIY1, MIX2, MIY2);
Mouse(x,y, 2, 2, true);
wait(randomrange(100,1000));
Gametab(Tab_Magic);
Writeln('Just Teleported to:' + Teleport);
Teleports := Teleports + 1;
end;
freeDTM(teleportDTM);
end;
Procedure AFK;
begin
if not loggedIn then Exit;
Case Random (100) Of
1..15 : Wait(1000 + Random (3050));
16..24 : Wait (1340 + Random (1093));
25..45: Wait (1211 + Random (6000));
46..47: Wait (20000 + Random (10000)); // This looks like you've gone to get a drink
end;
end;
procedure Report;
var
Teleports:Integer;
begin
Writeln('You have Teleported: ' + IntToStr(Teleports) + ' Times');
Writeln('This has been running for ' + TimeRunning);
Writeln('Experience gained: ' + inttostr( (GetXPBarTotal() - startXP)));
Exit;
end;
begin
SetupSRL;
DeclarePlayers;
LoginPlayer;
startXP:=GetXPBarTotal;
Writeln('Your using Xtra-Camelot Requested Script');
Repeat
FindNormalRandoms;
Tele;
AFK;
Report;
until(Not LoggedIn);
End.Latest project (Mostly for fun and experimenting):
Xtra-Nats. Making nature runes without needing summoning or to go into abyss :)
program XtraNats;
//{$DEFINE SMART}
{$i SRL/srl.simba}
{$i SPS/sps.simba}
{$i SRL/SRL/Misc/Debug.simba}
Const
//SRL Stats
SRLStats_Username = '';
SRLStats_Password = '';
//General setting
RSName = '';
RSPass = '';
RSPin = '';
RestAt = 20; // Not implemented yet
Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := RSName;
Pass := RSPass;
Pin := RSPin;
BoxRewards := ['XP','xp','lamp'];
LampSkill := Skill_Runecrafting;
Active := True;
end;
end;
Procedure Withdraw_ess;
var
FindBankNPC: Integer;
begin
OpenBankNPC;
If PinScreen then
begin
InPin(Players[CurrentPlayer].Pin);
end;
repeat
wait(randomrange(60,110));
until(BankScreen); //Stops previous procedure start if bankscreen is found
Mouse(655, 224, 3, 3, false);
ChooseOption('All');
Withdraw(9, 0, 999);
wait(randomrange(1200,2000));
CloseBank; //Closes panel for bank
if(BankScreen) then
begin
CloseBank;
end else
Writeln('failed to bank');
end;
Procedure Walktowoodengate;
var
Woodengatepath:TPointArray;
begin
SPS_Setup(RUNESCAPE_SURFACE,['8_12','8_11','7_12']);
Woodengatepath := [Point(3224, 4823), Point(3222, 4797), Point(3222, 4797),
Point(3248, 4799), Point(3263, 4806), Point(3283, 4818),
Point(3283, 4824),Point(3319, 4787), Point(3221, 4784),
Point(3172, 4809),Point(3175, 4838),Point(3176, 4862),
Point(3260, 4853), Point(3279, 4845),Point(3283, 4833),
Point(3285, 4829)];
end;
Function WalkToAltar: Boolean;
var
Altarpath:TPointArray;
begin
SPS_Setup(RUNESCAPE_SURFACE,['8_12','7_12','7_11','8_11']);
Altarpath := [Point(3346, 4834), Point(3318, 4865), Point(3237, 4865),
Point(3156, 4867), Point(3095, 4863), Point(3045, 4838),
Point(3010, 4808), Point(3000, 4788), Point(3003, 4717),
Point(3060, 4636), Point(3083, 4615), Point(3125, 4596),
Point(3189, 4586), Point(3221, 4582), Point(3292, 4561)];
end;
Function Nearbank: Boolean;
var
X, Y: Integer;
begin
if not LoggedIn then Exit;
if Findsymbol(x,y,'bank') then
begin
Mouse(x,y,5,5,Mouse_Left);
Writeln('Gone back to the bank');
end;
end;
function Findfence: Boolean;
var
x, y, i, h : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
if not LoggedIn then Exit;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.00, 0.00);
FindColorsSpiralTolerance(x, y, TPA, 1067375, MSX1, MSY1, MSX2, MSY2, 0);
ATPA := SplitTPAEx(TPA, 10, 10);
DebugATPA(ATPA, 'aptatest');
if (Length(ATPA) = 0) then
begin
writeln('Could not find the fence''s colour');
Exit;
end;
SortATPAFromMidPoint(ATPA, Point(MSCX, MSCY));
h := High(ATPA);
for i := 0 to h do
begin
Writeln('Length: ' + IntToStr(Length(ATPA[i])));
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 4, 4);
if WaitUpText('wood', 100) then
begin
Writeln('Found the fence!');
DebugATPA(ATPA, 'aptatest');
Mouse(x, y, 3, 3, False);
Result := True;
Wait(500 + Random(1000));
ChooseOption('Open');
Wait(500 + Random(1000));
end else
Writeln('Couldn''t find the right uptext for the fence!.');
wait (100 + Random(1000));
end;
SetColorSpeed2Modifiers(0.2, 0.2);//Don't forget to reset back to default.
ColorToleranceSpeed(1);
end;
Function Findmetalgate: Boolean; //Redo
var
x, y, i, h : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
if not LoggedIn then Exit;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.00, 0.05);
FindColorsSpiralTolerance(x, y, TPA, 6579305, MSX1, MSY1, MSX2, MSY2, 9);
ATPA := SplitTPAEx(TPA, 10, 10);
DebugATPA(ATPA, 'aptatest');
if (Length(ATPA) = 0) then
begin
writeln('Could not find the metal gate colour');
Exit;
end;
SortATPAFromMidPoint(ATPA, Point(MSCX, MSCY));
h := High(ATPA);
for i := 0 to h do
begin
Writeln('Length: ' + IntToStr(Length(ATPA[i])));
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 4, 4);
if WaitUpText('Meta', 100) then
begin
Writeln('Found Metalgate!');
DebugATPA(ATPA, 'aptatest');
Mouse(x, y, 3, 3, False);
Result := True;
Wait(500 + Random(1000));
ChooseOption('Ope');
Wait(500 + Random(1000));
end else
Writeln('Couldn''t find the right uptext for Metal Gate.');
wait (100 + Random(1000));
end;
SetColorSpeed2Modifiers(0.2, 0.2);//Don't forget to reset back to default.
ColorToleranceSpeed(1);
end;
Function Findbrokencart: Boolean; //redo
var
x, y, i, h : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
if not LoggedIn then Exit;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.03, 0.12);
FindColorsSpiralTolerance(x, y, TPA, 2834774, MSX1, MSY1, MSX2, MSY2, 7);
ATPA := SplitTPAEx(TPA, 40, 40);
DebugATPA(ATPA, 'aptatest');
if (Length(ATPA) = 0) then
begin
writeln('Could not find The Broken Cart''s colour');
Exit;
end;
SortATPAFromMidPoint(ATPA, Point(MSCX, MSCY));
h := High(ATPA);
for i := 0 to h do
begin
Writeln('Length: ' + IntToStr(Length(ATPA[i])));
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 4, 4);
if WaitUpText('Ign', 100) then
begin
Writeln('Found The broken cart!!');
DebugATPA(ATPA, 'aptatest');
Mouse(x, y, 3, 3, False);
Result := True;
Wait(500 + Random(1000));
ChooseOption('Climb');
Wait(500 + Random(1000));
end else
Writeln('Couldn''t find the right uptext for ClimbBrokenCart.');
wait (100 + Random(1000));
end;
SetColorSpeed2Modifiers(0.2, 0.2);//Don't forget to reset back to default.
ColorToleranceSpeed(1);
end;
function BypassObstacles: Boolean;
begin
if not NearBank then
Exit;
if not Findfence then
Exit;
if not FindMetalGate then
Exit;
if not FindBrokenCart then
Exit;
Result := WalkToAltar;
end;
Procedure Mainloop;
begin
Withdraw_ess;
Walktowoodengate;
BypassObstacles;
WalkToAltar;
end;
begin
SMART_Server := 22;
SetupSRL;
DeclarePlayers;
LoginPlayer;
Players[CurrentPlayer].Integers[0] := GetXPBarTotal;
Writeln('Your using XtraNats V 0.01');
Writeln('Please report important bugs on the thread');
repeat
MainLoop;
until(Not Loggedin);
End.Start of my Slayer Script Collection:
I decided the Slayer section was too empty… People have automatically assumed it should be AIO… but I felt maybe adding a few individuals would kick it off and maybe at the end I could make an AIO.
So heres the start!
(THIS ONE IS BUGGY HOWEVER THE PRINCIPLE IS HERE)
program CaveKiller;
{$DEFINE SMART}
{$i SRL\SRL.simba}
Const
SRLStats_Username = '';
SRLStats_Password = '';
NumbOfPlayers= 1;
StartPlayer= 0;
ColourTolerance = 3;
var
x, y : Integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Nick := '';
Pin := '';
BoxRewards := ['Xp', 'mote', 'ostume', 'ssence'];
Member := True;
Active := True;
end;
end;
function Cavecolour: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.35, 0.02);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 6185308, MSX1, MSY1, MSX2, MSY2, 21);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 2.25) and (X <= 27.44) and (Y >= 2.44) and (Y <= 29.49) and (Z >= 2.53) and (Z <= 32.27) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
Procedure WaitFight;
Var
Time, x, y, WaitFight_Shield, WaitFight_Damage : integer;
begin
WaitFight_Shield := DTMFromString('mrAAAAHic42BgYOAFYgEg5gdiHiBmB2I+IGaBijECMRMQs0LlQOJcUBqkl9XUCS8mBBgJYBgAAK0nBH8='); //Sets DTMs and Names
WaitFight_Damage := DTMFromString('mbQAAAHicY2VgYNBmhGAdINYDYn0glgZiBSBWBmI5IJYA4nQ2NoYEPj4wns3DA6a5gPrRMSMWDAYAIPEEVA==');
SetDTMName(WaitFight_Shield, 'WaitFight Shield DTM');
SetDTMName(WaitFight_Damage, 'WaitFight Damage DTM');
FFlag(0); //Incase you clicked a monster that isn't close by
MarkTime(Time); //marks the time
Repeat
Wait(50+Random(50));
if(FindDTM(WaitFight_Shield, x, y, MSCX - 60, MSCY - 70, MSCX + 60, MSCY + 70))then //if it finds the blue "shield" dtm it resets the time marker
MarkTime(Time);
if(FindDTM(WaitFight_Damage, x, y, MSCX - 60, MSCY - 70, MSCX + 60, MSCY + 70))then //if it finds the res "damage" dtm it resets the time marker
MarkTime(Time);
Until(TimeFromMark(Time) > 3500); //if it hasn't found either for 2000msec then it exits, (i don't play RS much, is there a very slow weapon that this wouldn't work for?)
FreeDTM(WaitFight_Shield);
FreeDTM(WaitFight_Damage);
end;
Function Walkback: Boolean;
var
SummonSymbol,x,y:integer;
begin
Writeln('looking for Summoning Symbol');
SummonSymbol := DTMFromString('mbQAAAHicY2VgYAgG4igo7QujGRkY3IHYBYi9gTgQiPMTnYEyjHC8YMECBmyAEQsGAwCxhwYa');
if FindDTM(SummonSymbol, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Writeln('Walking to Summoning Symbol');
Mouse(x,y,1,1,True);
end;
end;
Procedure Findcave;
var
X, Y, T, Attack: Integer;
begin
if not LoggedIn then
Exit;
FindNormalRandoms;
Writeln('Looking for CaveCrawler');
if FindObjEx(X, Y, ['attack', 'Cav','rawl'], [Cavecolour], 5, 50, MSX1, MSY1, MSX2, MSY2) then
Writeln('Found one! Killing it');
Mouse(x, y, 2, 2, true);
wait(1000+ Random (1000));
Writeln('let''s hope its dead :)');
end;
function FindCaveCrawler: Boolean;
var
x, y, i, h : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
if not LoggedIn then Exit;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.03, 0.62);
FindColorsSpiralTolerance(x, y, TPA, Cavecolour, MSX1, MSY1, MSX2, MSY2, 5);
ATPA := SplitTPAEx(TPA, 10, 10);
if (Length(ATPA) = 0) then
begin
writeln('Could not find a CaveCrawler... Really?');
Walkback;
end;
SortATPAFromMidPoint(ATPA, Point(MSCX, MSCY));
h := High(ATPA);
for i := 0 to h do
begin
Writeln('Length: ' + IntToStr(Length(ATPA[i])));
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 4, 4);
if WaitUpText('Cave', 100) then
begin
Writeln('Found a caveCrawler!!');
Mouse(x, y, 1, 3, False);
Wait(500 + Random(455));
ChooseOption('Attack');
end else
Writeln('Couldn''t find the right uptext for a cavecrawler.');
wait (100 + Random(1000));
end;
SetColorSpeed2Modifiers(0.2, 0.2);//Don't forget to reset back to default.
ColorToleranceSpeed(1);
end;
Procedure Poisoncheck;
var
x, y, i: Integer;
begin
Writeln('Checking for poison');
for i:=8 downto 1 do
If FindText(x, y, 'You have been', SmallChars, MCX1, MCY1, MCX2, MCY2) Then
begin
Writeln('Your Poisoned! Anti Poisoning now!');
if FindObjEx(x, y, ['Anti', 'pois'], [1951850, 1749598, 1279303, 1211971, 2018925, 1885801], 5, 50, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Clicking AntiPoison potion');
Mouse(x, y, 2, 2, True);
Wait(1500+Random(500))
Exit;
end;
end;
exit;
end;
begin
SMART_Server := 1;
SetupSRL;
DeclarePlayers;
LoginPlayer;
Writeln('Your using CaveKillerV0.0.1');
Writeln('Please report any bugs on the thread');
Writeln('*************************************');
Writeln('******It will be buggy!!!!!**********');
Writeln('*************************************');
repeat;
Findcave;
WaitFight;
Poisoncheck;
until(Not Loggedin);
End.And of course Xtra-Monk.
Now if any of you saw my previous App, You'd realise how TERRIBLE that was with xtra-monk. It's better now. However I need to edit the TPA's a bit more and I'm going to paint monks (Attempt to)
program xtramonk;
{$DEFINE SMART}
{$i SRL\SRL.simba}
{$i SRL/SRL/Misc/Debug.simba}
{include SPS/SPS.simba}
Const
SRLStats_Username = '';
SRLStats_Password = '';
BreakEvery = 120;
BreakFor = 5;
NumbOfPlayers= 1;
StartPlayer= 0;
Debug = True;
var
x, y, T: Integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Nick := '';
Pin := '';
BoxRewards := ['Xp', 'mote', 'ostume', 'ssence'];
Member := True;
Active := True;
end;
end;
procedure Retreat;
begin
RunAway('n', True, 1, 2000);
Logout();
end;
function FindMonkattackTPA: Boolean;
var
x, y, i, h : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
if not LoggedIn then Exit;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.11, 1.67);
FindColorsSpiralTolerance(x, y, TPA, 2505542, MSX1, MSY1, MSX2, MSY2, 6);
ATPA := SplitTPAEx(TPA, 10, 10);
if (Length(ATPA) = 0) then
begin
writeln('Could not find monks colour');
Exit;
end;
SortATPAFromMidPoint(ATPA, Point(MSCX, MSCY));
h := High(ATPA);
for i := 0 to h do
begin
Writeln('Length: ' + IntToStr(Length(ATPA[i])));
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 4, 4);
if WaitUpText('Mon', 100) then
begin
Writeln('Found monk!');
Mouse(x, y, 0, 2, False);
Result := True;
Wait(200 + Random(1000));
ChooseOption('Attack');
end else
MarkTime(T);
Writeln('Couldn''t find the right uptext for a monk.');
wait (100 + Random(1000));
end;
SetColorSpeed2Modifiers(0.2, 0.2);//Don't forget to reset back to default.
ColorToleranceSpeed(1);
end;
function FindMonkhealTPA: Boolean;
var
x, y, i, h, Next : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
Next := DTMFromString('mJgIAAHicvctNCoJQFAXg44tAh0FGmDQQGlWTKLKgCKWJRhRGma2h1eRObCO2ok6vhzTImnnh4/4crgVgWgcSunxoKqbSIYf6NCKXVrSmgLbk01zlQ+rRho4U0UFwp514zyeKKVK3VxZS8Ef8xZn26j9NbxjMWnjkecFddOGFDsZJQ2b3LIMmaj9ZS12yPaPo5kSHf23L/6pKq0h5PQES0yJI');
if not LoggedIn then Exit;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.11, 1.67);
FindColorsSpiralTolerance(x, y, TPA, 2505542, MSX1, MSY1, MSX2, MSY2, 6);
ATPA := SplitTPAEx(TPA, 10, 10);
DebugATPA(ATPA, 'debugtest');
if (Length(ATPA) = 0) then
begin
writeln('Could not find monks colour');
Exit;
end;
SortATPAFromMidPoint(ATPA, Point(MSCX, MSCY));
h := High(ATPA);
for i := 0 to h do
begin
Writeln('Length: ' + IntToStr(Length(ATPA[i])));
MiddleTPAEx(ATPA[i], x, y);
DebugATPA(ATPA, 'debugtest');
MMouse(x, y, 1, 2);
if WaitUpText('Mon', 100) then
begin
Writeln('Found monk!');
Mouse(x, y, 0, 2, False);
Result := True;
Wait(200 + Random(500));
ChooseOption('Talk');
Finddtm(Next,x , y, MSX1, MSX2, MSY1, MSY2);
Mouse(x, y, 0, 2,True);
wait(500+random(100));
PressKey(1);
wait(500+random(100));
Finddtm(Next,x , y, MSX1, MSX2, MSY1, MSY2);
Mouse(x, y, 0, 2,True);
end else
Writeln('Couldn''t find the right uptext for a monk.');
wait (100 + Random(1000));
end;
SetColorSpeed2Modifiers(0.2, 0.2);//Don't forget to reset back to default.
ColorToleranceSpeed(1);
end;
Procedure CheckFight;
Var
Time, x, y, WaitFight_Shield, WaitFight_Damage : integer;
begin
WaitFight_Shield := DTMFromString('mrAAAAHic42BgYOAFYgEg5gdiHiBmB2I+IGaBijECMRMQs0LlQOJcUBqkl9XUCS8mBBgJYBgAAK0nBH8='); //Sets DTMs and Names
WaitFight_Damage := DTMFromString('mbQAAAHicY2VgYNBmhGAdINYDYn0glgZiBSBWBmI5IJYA4nQ2NoYEPj4wns3DA6a5gPrRMSMWDAYAIPEEVA==');
SetDTMName(WaitFight_Shield, 'WaitFight Shield DTM');
SetDTMName(WaitFight_Damage, 'WaitFight Damage DTM');
FFlag(0); //Incase you clicked a monster that isn't close by
MarkTime(Time); //marks the time
Repeat
Wait(50+Random(50));
if(FindDTM(WaitFight_Shield, x, y, MSX1, MSY1, MSX2, MSY2))then //if it finds the blue "shield" dtm it resets the time marker
MarkTime(Time);
if(FindDTM(WaitFight_Damage, x, y, MSX1, MSY1, MSX2, MSY2))then //if it finds the red "damage" dtm it resets the time marker
MarkTime(Time);
Until(TimeFromMark(Time) > 2000); //if it hasn't found either for 2000msec then it exits, (i don't play RS much, is there a very slow weapon that this wouldn't work for?)
FreeDTM(WaitFight_Shield);
FreeDTM(WaitFight_Damage);
end;
procedure CheckHP;
begin
if not LoggedIn then
Exit;
FindNormalRandoms;
if (HPPercent > 50) and LoggedIn then
begin
exit;
end;
if (HPPercent < 50) and LoggedIn then
begin
FindMonkHealTPA;
end;
if (HPPercent < 25) and LoggedIn then
begin
Retreat;
end;
end;
Procedure Centerwalk;
var
Fountain: Integer;
begin
Fountain := DTMFromString('mWAAAAHicY2FgYOhiZWDoBOJ2IO4DYn5GBgYeIBZkhLAPnH/J0NDxmuHAgQMMCxYsYEAHjGgYBABCMwsP');
If FindDTM(Fountain, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Writeln('Walking to Fountain Symbol');
Mouse(x,y,5,5,True);
wait(500+Random(1000));
end;
end;
procedure FindMonkMM;
begin
if not LoggedIn then
Exit;
FindNormalRandoms;
if (HPPercent > 50) and LoggedIn then
begin
exit;
end;
if (HPPercent < 50) and LoggedIn then
begin
FindMonkHealTPA;
end;
if (HPPercent < 25) and LoggedIn then
begin
Retreat;
end;
end;
begin
Smart_Server := 80;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
DeclarePlayers;
LoginPlayer;
MarkTime(T);
Writeln('Your using XtraMonk V0.0.1');
Writeln('Please report any bugs on the thread');
Writeln('*************************************');
Writeln('******It will be buggy!!!!!**********');
Writeln('*************************************');
repeat;
FindmonkattackTPA;
Checkfight;
CenterWalk;
CheckHP;
until(Not Loggedin);
WriteLn(TimeFromMark(T));
End.Previous Application:
http://villavu.com/forum/showthread.php?t=76799