TsterT
2012-01-05 07:41:54
How Long have You Played Runescape?
1 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
I'm fairly familiar with Java. Java and C# are basically the same thing, so I guess I could say C# as well. I worked with Visual Basics, as well as a little of C++.
Are you a member of any other communities?
Powerbot
Tell us about yourself…
Please show us one (or multiple) of your scripts.
Thanks for reading :).
1 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
I'm fairly familiar with Java. Java and C# are basically the same thing, so I guess I could say C# as well. I worked with Visual Basics, as well as a little of C++.
Are you a member of any other communities?
Powerbot
Tell us about yourself…
From: TsterT
My name is Mark, 15 years old. I've taken an interest in programming at an early age of 10 or so. Picking up Java at around 13, and just recently, Simba, due to my also recent interest in Runescape.
Since my discovery of Simba, I absolutely HAD to try making a script. Since then, I create scripts, as well as other programs (not specifically in Simba), as a hobby, and planning on doing so throughout the rest of my life.
Please show us one (or multiple) of your scripts.
program boneSnatcher;
{$DEFINE SMART} //{$i SRL/SRL/misc/smart.scar
{$i SRL/SRL.scar}
{$i SRL/SRL/skill/prayer.scar}
{$i SRL/SRL/misc/stats.simba}
{-----------Don't Touch-----------}
Const
version = '0.2a';
scriptName = 'Bone Snatcher';
{---------------------------------}
Const
Members = False;
boneColor = 14015199; //Color of bones to pickup
boneColor1 = 10330276; //Backup color of bones to pickup
asheColor = 5994092; //Color of ashes to pickup
asheColor1 = 5796457; //Backup color of ashes to pickup
//SRL Stats, view at [url]http://stats.villavu.com/[/url] PLEASE USE
SRLStats_Username = '';
SRLStats_Password = '';
procedure declarePlayers;
begin
HowManyPlayers := 1; //Amount of players you would like to run
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
With Players[0] do
begin
Name :=''; //ID
Pass :=''; //Password
Strings[0] := '' //Name to pick up
Booleans[0] := False; //Picking ashes
Integers[0] := 3; //Color Tolerance
Active := True;
end;
end;
{-----------------------------------------------------------}
{----------------Don't touch anything below!----------------}
{-----------------------------------------------------------}
Var
buryCount, pickCount, antiBanCount : Integer;
xpGained : Extended;
bones : String;
ashes : Boolean;
MyVars: array [0..20] of integer;
procedure AntiBan;
begin
if not LoggedIn then Exit;
Status('Antiban');
case Random(99) of
0: Begin
wait(500+random(3000));
Inc(antiBanCount);
end;
1: Begin
GameTab(tab_Stats)
HoverSkill('random', False)
GameTab(28)
Inc(antiBanCount);
end;
2: Begin
GameTab(tab_Stats)
HoverSkill('Prayer', False)
GameTab(28)
Inc(antiBanCount);
end;
3: Begin
RandomMovement;
Inc(antiBanCount);
end;
end;
end;
procedure report;
begin
MyVars[0] := Round(MyVars[0]*0.6666);
stats_IncVariable('Bones Burried', MyVars[0]);
stats_IncVariable('Bones Collected', MyVars[1]);
stats_IncVariable('Total EXP Gained', MyVars[2]);
if not(players[CurrentPlayer].Booleans[0]) then
begin
Writeln('/----------Bone Snatcher By TsterT----------\');
Writeln('|Bones Picked: ' +IntToStr(pickCount));
Writeln('|Bones Burried: ' +IntToStr(buryCount));
Writeln('|EXP Gained: ' +FloatToStr(xpGained));
Writeln('|AntiBans Performed: ' +IntToStr(antiBanCount));
Writeln('|Time Ran: ' +MsToTime(GetTimeRunning, Time_Abbrev));
Writeln('\-------------------v0.1--------------------/');
end else
Writeln('/----------Bone Snatcher By TsterT----------\');
Writeln('|Ashes Picked: ' +IntToStr(pickCount));
Writeln('|Ashes Sprayed: ' +IntToStr(buryCount));
Writeln('|EXP Gained: ' +FloatToStr(xpGained));
Writeln('|AntiBans Performed: ' +IntToStr(antiBanCount));
Writeln('|Time Ran: ' +MsToTime(GetTimeRunning, Time_Abbrev));
Writeln('\-------------------v0.1--------------------/');
Stats_Commit;
end;
Function pickUp: Boolean;
Var
x, y : Integer;
pickName : String;
Begin
pickName := players[CurrentPlayer].Strings[0];
ashes := players[CurrentPlayer].Booleans[0];
if not LoggedIn then Exit;
if not(ashes) then
begin
Status('Searching for bones');
if FindColorSpiralTolerance(x, y, boneColor, MSX1, MSY1, MSX2, MSY2, players[CurrentPlayer].Integers[0]) then
Status('Picking bones');
MMouse(x, y, 3, 3);
Wait(700 + Random(100));
if(isUpText('ake')) then
begin
Mouse(x, y, 3, 3, false);
if OptionsExist([pickName], True) then
begin
ChooseOption(pickName);
Result := True;
Inc(pickCount);
report;
end;
end else
Result := False;
end;
if (ashes = true) then
begin
Status('Searching for ashes');
if FindColorSpiralTolerance(x, y, asheColor, MSX1, MSY1, MSX2, MSY2, players[CurrentPlayer].Integers[0]) then
Status('Picking ashes');
MMouse(x, y, 3, 3);
Wait(700 + random(100));
if(isUpText('ake')) then
begin
Mouse(x, y, 3, 3, false);
if OptionsExist([pickName], True) then
begin
ChooseOption(pickName);
Result := True;
Inc(pickCount);
report;
end;
end else
Result := False;
end;
if not(Result) then
if ashes then
begin
Status('Searching ashes with backup color');
if FindColorSpiralTolerance(x, y, asheColor, MSX1, MSY1, MSX2, MSY2, players[CurrentPlayer].Integers[0]) then
Status('Picking ashes');
MMouse(x, y, 3, 3);
Wait(700 + random(100));
if(isUpText('ake')) then
begin
Mouse(x, y, 3, 3, false);
if OptionsExist([pickName], True) then
begin
ChooseOption(pickName);
Result := True;
Inc(pickCount);
report;
end;
end;
end else
if FindColorSpiralTolerance(x, y, boneColor1, MSX1, MSY1, MSX2, MSY2, players[CurrentPlayer].Integers[0]) then
Status('Searching bones with backup color');
MMouse(x, y, 3, 3);
Wait(700 + Random(100));
if(isUpText('ake')) then
begin
Mouse(x, y, 3, 3, false);
if OptionsExist([pickName], True) then
begin
ChooseOption(bones);
Result := True;
Inc(pickCount);
report;
end;
end;
wait(1000 + Random(100));
End;
procedure Bury;
var
Slots: TIntegerArray;
i: integer;
begin
ashes := players[CurrentPlayer].Booleans[0];
if not LoggedIn then Exit;
GameTab(Tab_inv);
antiBan;
Slots := [1, 2, 3, 4, 8, 7, 6, 5, 9, 10, 11, 12, 16, 15, 14, 13, 17, 18, 19,
20, 24, 23, 22, 21, 25, 26, 27, 28];
for i := 0 to 27 do
begin
if not ExistsItem(Slots[i]) then Continue;
Status('Burying Bones');
MouseItem(Slots[i], True);
Inc(buryCount);
if not(ashes) then
begin
xpGained := xpGained + 4.5;
end else
xpGained := xpGained + 12.5;
Wait(450 + random(80));
FindNormalRandoms;
report;
end;
end;
procedure startUp;
begin
MouseSpeed := 16+random(3)
SetupSRLStats(381, SRLStats_Username, SRLStats_Password);
if not LoggedIn then
declarePlayers;
Disguise(ScriptName+' v'+Version);
Loginplayer;
if LoggedIn then
setAngle(true);
end;
begin
SetUpSrl;
startUp;
ClearDebug;
ActivateClient;
setAngle(true);
Wait(1000 + Random(500));
repeat
if InvFull then
begin
bury;
end else
antiBan;
pickUp;
until(false);
end.
program BlueDragon; //Not done yet
{$i SRL/SRL/misc/smart.scar}
{$i SRL/SRL.scar}
{$i SPS/SPS.simba}
Const
version = 'v0.1';
scriptName = 'Blue Dragon Collector ';
Const
dHide = 15035717; //Color of Dragon Hide
dScale = 7417122; //Color of Dragon Scale
dInv = 4721418; //Color of Dragon Hide and Scale in inventory
shortColor = 13231081; //Color for wall
shortColor1 = 2713221; //Color for tunnel
caveColor = 5397343; //Color for cave entrance
procedure DeclarePlayers;
begin
HowManyPlayers :=1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
With Players[0] do
begin
Name := ''
Pass := ''
Active := True;
Arrays[0] := [False, False, False];
//Bring food, eat food if full inventory, tele to town when no food
Arrays[1] := [True, False];
//Pick Dragon Hides, pick Dragon Scales
Integers[0] := 5; //Amount of food to bring (Script will not work well if inventory is full of food)
Booleans[0] := False; //Tele when 15% hp
end;
end;
Var
dPickCount, sPickCount, loadCount, antiBanCount, foodAmount : Integer;
eatFood, eatFull, teleFood, pickDHide, pickDScale, teleHP : Boolean;
falToShortP, shortToCaveP, falToBankP : TPointArray;
Reason : String;
procedure AntiBan;
begin
case random(99) of
1: Begin GameTab(tab_Stats) HoverSkill('random', false); Inc(antiBanCount); end;
2: Begin ExamineInv Inc(antiBanCount); end;
3: Begin BoredHuman; Inc(antiBanCount); end;
4: Begin PickUpMouse; Inc(antiBanCount); end;
5: Begin RandomMovement; Inc(antiBanCount); end;
6: Begin RandomAngle(true); Inc(antiBanCount); end;
end;
end;
procedure report;
begin
end;
procedure falToDrag;
Var
x, y : Integer;
begin
MakeCompass('n');
Status('Walking to shortcut');
falToShortP := [Point(3598, 3176), Point(3593, 3227)];
if SPS_WalkPath(falToShortP) then
begin
Writeln('Attempting to use shortcut');
if FindColorSpiralTolerance(x, y, shortColor, MSX1, MSY1, MSX2, MSY2, 2) then
begin
MMouse(x, y, 3, 3);
if(isUpText('rumbling')) then
begin
Mouse(x, y, 3, 3, True);
wait(500 + random(700));
Status('Walking to cave');
shortToCaveP := [Point(3564, 3229), Point(3541, 3180), Point(3509, 3160), Point(3487, 3145), Point(3446, 3110), Point(3425, 3084), Point(3410, 3069), Point(3395, 3076), Point(3377, 3069)];
if SPS_WalkPath(shortToCaveP) then
begin
if FindColorSpiralTolerance(x, y, caveColor, MSX1, MSY1, MSX2, MSY2, 2) then
begin
MMouse(x, y, 3, 3);
if(isUpText('adder')) then
begin
Mouse(x, y, 3, 3, True);
wait(500 + random(700));
Status('Searching for Blue Dragon shortcut');
end;
end;
end;
end;
end;
end;
end;
procedure checkSupplies;
begin
end;
procedure wBank;
begin
if not(BankScreen) then
begin
OpenBank('fwb', False, False);
wait(300 + random(100));
end;
if(BankScreen) then
begin
Withdraw(0, 0, 1); //Law Runes
Withdraw(1, 0, 1); //Water Runes
Withdraw(2, 0, 3); //Air Runes
if players[CurrentPlayer].Booleans[0] then
begin
Withdraw(3, 0, players[CurrentPlayer].Integers[0]);
end;
CloseBank;
Writeln('Withdrawing Done');
checkSupplies;
end;
end;
procedure dBank;
Var
x, y, hideDTM, scaleDTM : Integer;
begin
Status('Banking');
hideDTM := DTMFromString('mlwAAAHicY2dgYMhjYmDIBOJEIE4D4lIgrgXiMiDOZ2RgqALiQiBOBeIkRohYNRBz8XgBdTNhxUYMuAEjHgwFAB2JBtM=');
scaleDTM := DTMFromString('mggAAAHicY2NgYDjAxMCwH4i3Q+mjQHwEiOsYGRhagbgBiMuBuBLK5uENBupiQsGsbOoMcgzYASMODAEAV6gIVA==');
OpenBank('fwb', False, False);
wait(300 + random(100));
if(BankScreen) then
Status('Banking');
repeat
if FindDTM(hideDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
MMouse(x, y, 0, 0);
if (IsUpText('ragon')) then
Mouse(x, y, 0, 0, false);
ChooseOption('ll');
wait(100 + random(100));
until not(FindDTM(hideDTM, x, y, MIX1, MIY1, MIX2, MIY2));
repeat
if FindDTM(scaleDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
MMouse(x, y, 3, 3);
if (IsUpText('ragon')) then
Mouse(x, y, 0, 0, false);
ChooseOption('ll');
wait(100 + random(100));
until not(FindDTM(scaleDTM, x, y, MIX1, MIY1, MIX2, MIY2));
Inc(loadCount);
Writeln('Finsished Depositing');
wBank;
end;
procedure falToBank;
begin
MakeCompass('n');
Status('Walking to Bank');
falToBankP := [Point(3682, 3133), Point(3637, 3152), Point(3618, 3171), Point(3622, 3179)];
if SPS_WalkPath(falToBankP) then
dBank;
end;
procedure tele;
Var
teleDTM, x, y : Integer;
begin
Status('Teleporting');
Writeln('Returning to town due to ' + Reason);
teleDTM := DTMFromString('mbQAAAHicY2VgYPjCzMDwEIhPA7EwC1AAiFOZGBgqgDgGiKOAuAyIHeVjGWR4VRh0+PWB2ADMlmPABIxYMBgAADtYByw=');
GameTab(tab_Magic);
Writeln('Searchin for shit');
if FindDTM(teleDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
Writeln('Found that shit');
MMouse(x, y, 3, 3);
if(isUpText('alador')) then
begin
Mouse(x, y, 0, 0, True);
wait(300 + random(200));
falToBank;
end;
FreeDTM(teleDTM);
end;
procedure eat;
Var
Slots: TIntegerArray;
i: integer;
begin
if not LoggedIn then Exit;
if not(foodAmount = 0) then
begin
Status('Eating');
GameTab(tab_Inv);
antiBan;
Slots := [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 24, 23, 22, 21, 25, 26, 27, 28];
for i := 4 to 27 do
if ExistsItem(Slots[i]) then
begin
MMouseItem(Slots[i]);
if(IsUpText('Eat')) then
begin
MouseItem(Slots[i], True);
Writeln('Food ate');
foodAmount := foodAmount -1;
end;
end;
end else
Writeln('Out of food');
if (eatFull) then
begin
Reason := 'out of food';
tele;
end;
end;
procedure pick;
Var
x, y : Integer;
begin
if not(InvFull) then
begin
if pickDHide then
begin
if FindColorSpiralTolerance(x, y, dHide, MSX1, MSY1, MSX2, MSY2, 2) then
begin
MMouse(x, y, 3, 3);
if(isUpText('ake')) then
begin
Mouse(x, y, 0, 0, False);
if OptionsExist(['ide'], True) then
begin
ChooseOption('ide');
Inc(dPickCount);
end;
end;
end;
end;
if pickDScale then
begin
if FindColorSpiralTolerance(x, y, dScale, MSX1, MSY1, MSX2, MSY2, 2) then
begin
MMouse(x, y, 3, 3);
if(isUpText('ake')) then
begin
Mouse(x, y, 0, 0, False);
if OptionsExist(['cale'], True) then
begin
ChooseOption('cale');
Inc(sPickCount);
end;
end;
end;
end;
end else
if not(eatFull) then
begin
Reason := 'Inventory is full';
tele;
end else
Reason := 'Inventory is full';
eat;
end;
Function HpCheck: boolean;
begin
Status('Checking HP');
if (HPPercent < 15) and (teleHP) then
Reason := 'Emergency Teleport. Low HP';
tele;
if (HPPercent < 50) and (eatFood) then
Reason := 'Food below 50%';
eat;
end;
procedure SetUpPlayer;
begin
if not(LoggedIn) then
begin
DeclarePlayers;
ActivateClient;
LoginPlayer;
end;
if LoggedIn then
begin
setAngle(true);
SPS_Setup(RUNESCAPE_SURFACE, ['8_8', '8_7', '9_7']);
SPS_Continue := True;
eatFood := players[CurrentPlayer].Arrays[0][0]; //Eat Food
eatFull := players[CurrentPlayer].Arrays[0][1]; //Eat food when full inv
teleFood := players[CurrentPlayer].Arrays[0][2]; //Tele when no food
pickDHide := players[CurrentPlayer].Arrays[1][1]; //Pick Dragon Hide
pickDScale := players[CurrentPlayer].Arrays[1][1]; //Pick Dragon Scales
teleHP := players[CurrentPlayer].Booleans[0]; //Tele when 15% hp
if (eatFood) then
foodAmount := players[CurrentPlayer].Integers[0]; //Amount of food to bring
end;
Writeln('Finished setting up');
end;
procedure settingDisplay;
begin
Writeln(scriptName + version + ' by TsterT');
if (eatFood) then
Writeln(players[CurrentPlayer].Name + ' is eating food');
if (eatFull) then
Writeln(players[CurrentPlayer].Name + ' is eating food when full inventory.');
if (teleFood) then
Writeln(players[CurrentPlayer].Name + ' is teleporting when out of food.');
if (teleHP) then
Writeln(players[CurrentPlayer].Name + ' is teleporting when low health.');
if (pickDHide) then
Writeln(players[CurrentPlayer].Name + ' is picking Blue Dragon Hides.');
if (pickDScale) then
Writeln(players[CurrentPlayer].Name + ' is picking Blue Dragon Scales.');
end;
begin
SetUpSRL;
SetUpPlayer;
settingDisplay;
repeat
falToDrag;
wait(300 + random(200));
until(false);
end.Thanks for reading :).