Taric
2015-04-08 15:18:26
How Long have You Played Runescape?
10 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
An old college roomate. He remains unregistered.
What is your general programming knowledge?
A minor amount of C++ and Java
Visual Basic is love, Visual Basic is life.
Are you a member of any other communities?
Yes and no…
I have accounts with Runemate/Dreambot, but I don't do much with them.
Tell us about yourself…
Please show us one (or multiple) of your scripts.
Separated scripts for easier viewing.
E2: @Hoods, I forgot to mention you whenever I updated the standards… SO HERE. Have a mention.
10 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
An old college roomate. He remains unregistered.
What is your general programming knowledge?
A minor amount of C++ and Java
Visual Basic is love, Visual Basic is life.
Are you a member of any other communities?
Yes and no…
I have accounts with Runemate/Dreambot, but I don't do much with them.
Tell us about yourself…
From: Taric
For those of you who haven't seen my wonderful posts…
I am a very narcissistic, flamboyant, perverted, loveable, and sexy individual.
Like Sjoe, I am 100% homo for the league of legends character Taric.
As of now, I am a semi-proud member of the United States Navy Reserve. I'll be starting active duty as a Nuclear Operator in November.
I am a fan of anything gaming. My life long dream is to publish a game that redefines the current gaming genre. (Like every other indie game developer)
I post edgy forum content every once in a while…![]()
Please show us one (or multiple) of your scripts.
program TaricLumbridgeSmelter;
//The script that gave me the confidence to make this application!
{$DEFINE SMART}
{$I srl-6/srl.simba}
{$I sps/lib/sps-rs3.simba}
{$I srl-6/lib/misc/srlplayerform.simba}
//Press the Run button to get started.
//Only edit the code below if you are feeling brave.
var
pathWalk: TPointArray;
a, i, beforeBreakTime, breakTime, itemType, xpPerBar, xp, bankPre, objectTotal, statsObjects: Integer;
firstRun: Boolean;
barType, objectType: String;
timer, statsTimer, switchTimer: TTimeMarker;
{-----grats' stats!-----}
{
=====
Stats
=====
}
Const
stats_Path = AppPath+'Stats\';
stats_File = 'Info.txt';
type
TStats_Vars = record
Name: string;
Value: integer;
end;
var
stats_Timer : integer;
stats_ID,stats_Pass,
stats_ScriptID : string;
stats_Vars : Array of TStats_Vars;
procedure stats_Setup(_ScriptID : String);
var
id,pass : String;
begin
if (not directoryExists(stats_Path)) then
begin
forceDirectories(stats_Path);
writeINI('General', 'Stats_ID', '', stats_Path+stats_File);
writeINI('General', 'Stats_Pass', '', stats_Path+stats_File);
end;
id := readINI('General', 'Stats_ID', stats_Path+stats_File);
pass := readINI('General', 'Stats_Pass', stats_Path+stats_File);
if id = '' then
begin
case MessageBox('No Stats ID found, would you like to register?','Stats',1) of
1: openWebPage('http://stats.grats.pw/reg.php');
end;
end;
stats_ID := id;
stats_Pass := pass;
stats_ScriptID := _ScriptID;
stats_Timer := getSystemTime();
end
procedure stats_InitVariable(VarName: String; InitValue: Integer);
var
len: Integer;
begin
len := Length(stats_Vars);
SetArrayLength(stats_Vars, len + 1);
stats_Vars[len].Name := LowerCase(VarName);
stats_Vars[len].Value := InitValue;
end;
procedure stats_SetVariable(VarName: string; NewValue: Integer);
var
i, h: Integer;
begin
h := High(stats_Vars);
VarName := LowerCase(VarName);
if (h >= 0) then
for i := h downto 0 do
if (VarName = stats_Vars[i].Name) then
begin
stats_Vars[i].Value := NewValue;
Exit;
end;
stats_InitVariable(VarName, NewValue);
end;
procedure stats_IncVariable(VarName: string; Value: integer);
var
i, h: Integer;
begin
h := High(stats_Vars);
VarName := LowerCase(VarName);
if (h >= 0) then
for i := h downto 0 do
if (VarName = stats_Vars[i].Name) then
begin
stats_Vars[i].Value := stats_Vars[i].Value + Value;
Exit;
end;
stats_InitVariable(VarName, Value);
end;
function stats_Commit(): Boolean;
var
S : String;
Client,i,Worked,
ExtraTime : integer;
begin
ExtraTime := getSystemTime() - stats_Timer;
Worked := ExtraTime div 60000;
if Worked < 5 then Exit;
ExtraTime := ExtraTime - (Worked*60000);
stats_Timer := GetSystemTime - ExtraTime;
Client := InitializeHTTPClient(False);
ClearPostData(Client);
if (stats_ID = '') then
begin
stats_ID := '5';
stats_Pass := 'anon1337';
end;
AddPostVariable(Client, 'user_id', STATS_ID);
AddPostVariable(Client, 'password', STATS_PASS);
AddPostVariable(Client, 'script_id', STATS_SCRIPTID);
AddPostVariable(Client, 'timeamount', toStr(Worked));
if (Length(stats_Vars) > 0) then
for i := high(stats_Vars) downto 0 do
with stats_Vars[i] do
begin
if (Value <= 0) then
Continue;
AddPostVariable(Client, Name, toStr(Min(Value, 30000))); //Capped at 30000
end;
// Get & translate the return code
S := PostHTTPPageEx(Client, 'http://stats.grats.pw/POST.php');
FreeHTTPClient(Client);
case StrToIntDef(ExtractFromStr(S, Numbers), -1) of
42 : Result := True;
// 666 : writeln('Stats: User ID/Password not setup.'); // Disabled because of the default name ID & pass given above
9001: writeln('Stats: Invalid user ID/Password.');
1337: writeln('Stats: Invalid Script ID.');
255,
496 : writeln('Stats: Committing too fast; shame on you!');
else
writeln('Stats: No POST return');
end;
if Result then
begin
if (Length(stats_Vars) > 0) then
for i := high(stats_Vars) downto 0 do
with stats_Vars[i] do
begin
if (Value <= 0) then
Continue;
Value := 0; //Clear for next commit
end;
end;
end;
{-----grats' stats-----}
{-----evilcitrus's fabText()-----}
//Makes that sexyyy text you see on your smart screen.
function stupidSort(tpa: TPointArray): T2DPointArray;
var
i, j, a, b: integer;
temp: TPointArray;
hit: boolean;
begin
a := tpa.getBounds.x1;
b := tpa.getBounds.x2+1;
tpa.sortByXValue(true);
setLength(result, (b-a));
for j := a to b do
begin
hit := false;
for i := 0 to high(tpa) do
begin
if j = tpa[i].x then
begin
result[j-a].append(tpa[i]);
hit := true;
end
else if hit then break;
end;
end;
end;
function spread(num: extended; length: integer; leftToRight: boolean): TExtendedArray;
var
step, deg: extended;
i: integer;
begin
if length < 1 then exit();
deg := 50; //Here is where you adjust the shift amount. 50 = full rainbow
if length = 2 then result := [num-deg, num+deg];
if length = 3 then result := [num-deg, num, num+deg];
if length < 4 then exit();
step := (deg/((length-((length mod 2)+2))/2));
for i := 0 to (length-1) do
begin
if leftToRight then
result.append((num-deg)+(i*step))
else
result.append((num+deg)-(i*step));
end;
end;
function hueHueHUE(color: TColor; length: integer; leftToRight, randomCol: boolean): TColorArray;
var
h, s, l: extended;
i: integer;
aH: TExtendedArray;
begin
colorToHSL(color, h, s, l);
if randomCol then h := random(100);
aH := spread(h, length, leftToRight);
setLength(result, (high(aH)+1));
for i := 0 to high(aH) do
result[i] := hslToColor(aH[i], s, l);
end;
procedure TMufasaBitmap.fabText(txt: string; pnt: TPoint; font: string; color: TColor; leftToRight, shadow, random: boolean);
var
i: integer;
tpa, tpaShadow: TPointArray;
atpa: T2DPointArray;
rainbow: TColorArray;
begin
tpa := tpaFromText(txt, font);
offsetTPA(tpa, pnt);
if shadow then
begin
tpaShadow := copyTPA(tpa);
offsetTPA(tpaShadow, point(1, 1));
self.drawTPA(tpaShadow, __SHADOW_COLOR);
end;
atpa := stupidSort(tpa);
rainbow := hueHueHUE(color, length(atpa), leftToRight, random);
for i := 0 to high(atpa) do
self.drawTPA(atpa[i], rainbow[i]);
end;
{-----End of evilcitrus's fabText()-----}
procedure initPlayerForm();
begin
with playerForm do
begin
name := 'Taric''s Lumbridge Jewelry Smelter';
scriptHelpThread := '';
editBoxLabels := ['Minutes before breaking', 'Minutes to break for', 'When to Switch Players', 'Preferred World', 'Bank Pin'];
editBoxDefaults := ['0', '0', '0', '-1', '0000'];
comboBoxLabels := ['Bank Preset', 'Bar/Gem Type', 'Object to Smelt'];
comboBoxDefaults := ['1', 'Gold', 'Bracelet'];
comboBoxHints := ['', 'What are we going to be making with the Smelter?'];
setLength(comboBoxItems, length(comboBoxLabels));
comboBoxItems[0] := ['1', '2'];
comboBoxItems[1] := ['Gold', 'Sapphire', 'Emerald', 'Ruby', 'Diamond', 'Dragonstone', 'Onyx', 'Hydrix'];
comboBoxItems[2] := ['Ring', 'Necklace', 'Bracelet', 'Amulet'];
end;
end;
procedure declarePlayers();
begin
players.setup(playerForm.players);
currentPlayer := 0;
for i := 0 to high(players) do
with players[i] do
begin
integers[0] := strToInt(playerForm.players[i].settings[0]);
integers[1] := strToInt(playerForm.players[i].settings[1]);
integers[2] := strToInt(playerForm.players[i].settings[2]);
integers[3] := strToInt(playerForm.players[i].settings[3]);
integers[4] := strToInt(playerForm.players[i].settings[4]);
strings[0] := playerForm.players[i].settings[5];
strings[1] := playerForm.players[i].settings[6];
strings[2] := playerForm.players[i].settings[7];
end;
end;
//Ignore this mess. Nested cases. Need I say more?
procedure debugSPFSettings();
begin
for i := 0 to high(players) do
begin
beforeBreakTime := players[i].integers[0];
breakTime := players[i].integers[1];
players[i].world := players[i].integers[3];
bankPre := strToInt(players[i].strings[0]);
barType := players[i].strings[1];
objectType := players[i].strings[2];
case barType of
'Gold':
begin
case objectType of
'Ring':
begin;
itemType := 1;
xpPerBar := 15;
end;
'Necklace':
begin;
itemType := 2;
xpPerBar := 20;
end;
'Bracelet':
begin
itemType := 3;
xpPerBar := 25;
end;
'Amulet':
begin
itemType := 4;
xpPerBar := 30;
end;
end;
end;
'Sapphire':
begin
case objectType of
'Ring':
begin
xpPerBar := 40;
itemType := 5;
end;
'Necklace':
begin
xpPerBar := 55;
itemType := 6;
end;
'Bracelet':
begin
xpPerBar := 60;
itemType := 7;
end;
'Amulet':
begin
xpPerBar := 65;
itemType := 8;
end;
end;
end;
'Emerald':
begin
case objectType of
'Ring':
begin
xpPerBar := 55;
itemType := 9;
end;
'Necklace':
begin
xpPerBar := 60;
itemType := 10;
end;
'Bracelet':
begin
xpPerBar := 65;
itemType := 11;
end;
'Amulet':
begin
xpPerBar := 70;
itemType := 12;
end;
end;
end;
'Ruby':
begin
case objectType of
'Ring':
begin
xpPerBar := 70;
itemType := 13;
end;
'Necklace':
begin
xpPerBar := 75;
itemType := 14;
end;
'Bracelet':
begin
xpPerBar := 80;
itemType := 15;
end;
'Amulet':
begin
xpPerBar := 85;
itemType := 16;
end;
end;
end;
'Diamond':
begin
case objectType of
'Ring':
begin
xpPerBar := 85;
itemType := 17;
end;
'Necklace':
begin
xpPerBar := 90;
itemType := 18;
end;
'Bracelet':
begin
xpPerBar := 95;
itemType := 19;
end;
'Amulet':
begin
xpPerBar := 100;
itemType := 20;
end;
end;
end;
'Dragonstone':
begin
case objectType of
'Ring':
begin
xpPerBar := 100;
itemType := 21;
end;
'Necklace':
begin
xpPerBar := 105;
itemType := 22;
end;
'Bracelet':
begin
xpPerBar := 110;
itemType := 23;
end;
'Amulet':
begin
xpPerBar := 150;
itemType := 24;
end;
end;
end;
'Onyx':
begin
case objectType of
'Ring':
begin
xpPerBar := 115;
itemType := 25;
end;
'Necklace':
begin
xpPerBar := 120;
itemType := 26;
end;
'Bracelet':
begin
xpPerBar := 125;
itemType := 27;
end;
'Amulet':
begin
xpPerBar := 165;
itemType := 28;
end;
end;
end;
'Hydrix':
begin
case objectType of
'Ring':
begin
xpPerBar := 130;
itemType := 29;
end;
'Necklace':
begin
xpPerBar := 135;
itemType := 30;
end;
'Bracelet':
begin
xpPerBar := 140;
itemType := 31;
end;
'Amulet':
begin
xpPerBar := 180;
itemType := 32;
end;
end;
end;
end;
end;
end;
procedure miniBreak();
begin
writeLn('Taking a mini-break.');
mouseOffClient(OFF_CLIENT_RANDOM);
wait(randomRange(44000,120000));
end
procedure antiBan();
begin
if not isLoggedin() then exit;
case random(100) of
0..3:BoredHuman(True);
4..6:miniBreak();
7..23:hoverSkill(SKILL_CRAFTING);
end;
end;
//Walks to the specified location.
procedure walkToPlace(place: String);
begin
if not isLoggedin() then exit;
case place of
'toFurnace':pathWalk := [Point(110, 74), Point(162, 86)]; //Walk to Furnace
'toBank':pathWalk := [Point(162, 86), Point(110, 74)]; //Walk to Bank
'toLoadstone':pathWalk := [Point(190, 226), Point(150, 138), Point(110, 74)]; //Walk from Loadstone.
end;
SPS.walkPath(pathWalk);
minimap.waitPlayerMoving();
wait(randomRange(600,800));
end;
procedure failSafeWalk(toFurnace: Boolean);
begin
if not isLoggedin() then exit;
Inc(a);
lodestoneScreen.teleportTo(LOCATION_LUMBRIDGE);
wait(randomRange(16000,18000));
walkToPlace('toLoadstone');
wait(randomRange(2400,3600));
if toFurnace = true then
begin
walkToPlace('toFurnace');
wait(randomRange(1400,1600));
end;
end;
//Clicks zeh furnace.
{-----This totally wan't ripped from The Mayor's tutorial...-----}
procedure clickFurnace();
var
x, y, i: integer;
TPA: TPointArray;
ATPA: T2DPointArray;
begin
if not isLoggedin() then exit;
findColorsSpiralTolerance(x, y, TPA, 1122240, mainScreen.getBounds(), 9, colorSetting(2, 0.11, 0.75));
if (Length(TPA) < 1) then exit;
ATPA := TPA.toATPA(30, 5);
ATPA.sortFromSize(30, True);
for i := 0 to high(ATPA) do
begin
mouse(middleTPA(ATPA[i]), MOUSE_MOVE);
if isMouseOverText(['melt'], 500) then
begin
fastClick(MOUSE_LEFT);
break;
end;
end;
repeat
wait(100);
until minimap.isFlagPresent = false;
wait(randomRange(1400,1600));
end;
//Does all of the furnace shtuff! The integer imported decides what item is made.
procedure useFurnace(itemToSmelt: Integer);
begin
if not isLoggedin() then exit;
if a > 4 then
begin
writeLn('An error has occured while using the furnace... SORRY.');
TerminateScript;
end;
clickFurnace();
if not productionScreen.isOpen() then
begin
clickFurnace();
if not productionScreen.isOpen() then
begin
failSafeWalk(True);
useFurnace(itemType);
exit;
end;
end;
if firstRun then productionScreen.selectBox(itemToSmelt);
firstRun := false;
wait(randomRange(600,800));
productionScreen.clickStart(true);
wait(randomRange(600,800));
//Because reasons.
case random(20) of
0..1:mouseOffClient(OFF_CLIENT_RANDOM);
2..8:SleepAndMoveMouse(randomRange(1200,3600));
9..19:smallRandomMouse;
end;
if itemType > 4 then
tabBackpack.waitSlotPixelChange(14,27000)
else
tabBackpack.waitSlotPixelChange(28,54000);
end;
//Finds and clicks the bank. It selects the preset specified by the user.
procedure useBank(tehPreset: Integer);
begin
if not isLoggedin() then exit;
if a > 4 then
begin
writeLn('An error has occured while banking... SORRY.');
TerminateScript;
end;
bankScreen.open(BANK_CHEST_LUMBRIDGE);
repeat
wait(100);
until minimap.isFlagPresent = false;
wait(randomRange(1400,1600));
if not bankScreen.isOpen() then
begin
bankScreen.open(BANK_CHEST_LUMBRIDGE);
repeat
wait(100);
until minimap.isFlagPresent = false;
wait(randomRange(1400,1600));
if not bankScreen.isOpen() then
begin
failSafeWalk(False);
useBank(bankPre);
exit;
end;
end;
if pinScreen.isOpen() then pinScreen.enter(intToStr(players[i].integers[3]));
case tehPreset of
1:bankScreen.clickButton(BANK_BUTTON_PRESET_1);
2:bankScreen.clickButton(BANK_BUTTON_PRESET_2);
end;
end;
procedure processGratsStats();
begin
if itemType > 4 then
statsObjects := statsObjects + 14
else
statsObjects := statsObjects + 28;
stats_IncVariable('39', statsObjects);
stats_IncVariable('77', (statsObjects * xpPerBar));
stats_IncVariable('129', (statsObjects));
if statsTimer.getTime() > 301000 then
begin
stats_commit();
statsObjects := 0;
end;
end;
{-----Inspired by Ashaman's proggiesssssss-----}
procedure proggy();
begin
processGratsStats();
if itemType > 4 then
objectTotal := objectTotal + 14
else
objectTotal := objectTotal + 28;
clearDebug();
writeLn('============================================================');
writeLn('| ~Taric''s Lumbridge Jewelry Smelter~ |');
writeLn('============================================================');
writeLn(PadR('| Time Running: ' + timeRunning, 59),'|');
writeLn(PadR('| Total ' + barType + ' ' + objectType + '''s ' + 'Crafted: ' + intToStr(objectTotal), 59),'|');
writeLn(PadR('| ' + barType + ' ' + objectType + '''s ' + 'p/h: ' + intToStr(round((objectTotal * 60) / (getTimeRunning() / 60000))), 59),'|');
writeLn(PadR('| Total XP: ' + intToStr(objectTotal * xpPerBar), 59),'|');
writeLn(PadR('| XP p/h: ' + intToStr(round(((objectTotal * xpPerBar) * 60) / (getTimeRunning() / 60000))), 59),'|');
writeLn('============================================================');
smartImage.clear;
smartImage.fabText('Total Bars: ' + intToStr(objectTotal), point(mainscreen.x1+1, mainscreen.y1), loginchars, TColor($ff00c4), true, false, true);
smartImage.fabText('Total XP: ' + intToStr(objectTotal * xpPerBar), point(mainscreen.x1+1, mainscreen.y1+15), loginchars, TColor($ff00c4), true, false, true);
end;
procedure breakingTime();
begin
if BeforeBreakTime > 0 then
begin
if timer.getTime() > ((BeforeBreakTime + randomRange(-5,5)) * 60000) then
begin
writeLn('Taking a break for: ', breakTime, ' minutes.');
switchTimer.pause;
wait(randomRange(((breakTime - 3) * 60000), ((breakTime + 3) * 60000)));
switchTimer.start;
timer.reset;
timer.start;
end;
end;
end;
procedure playerSwitch();
begin
if BeforeBreakTime < players[i].integers[2] then exit;
if switchTimer.getTime() > (players[i].integers[2] * 60000) then
begin
players.next(false);
timer.reset;
end;
end;
//This is where nothing happens. Nothing at all.
procedure mainLoop();
begin
repeat
players[currentPlayer].login();
a := 0;
useBank(bankPre);
wait(randomRange(600,800));
if not tabBackpack.isItemInSlot(1) then TerminateScript;
walkToPlace('toFurnace');
wait(randomRange(600,800));
a := 0;
useFurnace(itemType);
wait(randomRange(600,800));
proggy();
antiBan();
walkToPlace('toBank');
wait(randomRange(600,800));
breakingTime();
until false;
end;
procedure programForeplay();
begin
clearDebug();
disableSRLDebug := true;
smartShowConsole := false; //Because no one likes that black box :p
SmartEnableDrawing := True;
initPlayerForm();
runPlayerForm();
if (not playerForm.isScriptReady) then exit;
declarePlayers();
debugSPFSettings();
stats_Setup('22');
SPS.setup('TARIC_LUMBY', RUNESCAPE_OTHER);
setupSRL();
if players[currentPlayer].login() = false then TerminateScript();
SmartImage.clear;
Timer.start;
statsTimer.start;
conversationBox.continue(True, True); //For those of you who bot on role playing worlds.
exitTreasure();
minimap.clickCompass();
firstRun := true;
end;
begin
programForeplay();
mainLoop();
end.
program SummertimeSadness;
//The antiban that redefined everything.
{$DEFINE SMART}
{$I SRL-6/SRL.simba}
procedure summerTimeAntiBan();
var
summertime, sadness: Integer;
begin
summertime := 99;
sadness := 1234;
repeat
typeSend('Kiss me hard before you go');
wait(randomRange(1200,1600));
typeSend('Summertime sadness');
wait(randomRange(1200,1600));
typeSend('I just wanted you to know');
wait(randomRange(1200,1600));
typeSend('That, baby, you''re the best');
wait(randomRange(1200,1600));
typeSend('I got my red dress on tonight');
wait(randomRange(1200,1600));
typeSend('Dancing in the dark in the pale moonlight');
wait(randomRange(1200,1600));
typeSend('Done my hair up real big beauty queen style');
wait(randomRange(1200,1600));
typeSend('High heels off, I''m feeling alive');
wait(randomRange(1200,1600));
typeSend('Oh, my God, I feel it in the air');
wait(randomRange(1200,1600));
typeSend('Telephone wires above are sizzling like a snare');
wait(randomRange(1200,1600));
typeSend('Honey, I''m on fire, I feel it everywhere');
wait(randomRange(1200,1600));
typeSend('Nothing scares me anymore');
wait(randomRange(1200,1600));
typeSend('1,2,3,4');
wait(randomRange(1200,1600));
typeSend('Kiss me hard before you go');
wait(randomRange(1200,1600));
typeSend('Summertime sadness');
wait(randomRange(1200,1600));
typeSend('I just wanted you to know');
wait(randomRange(1200,1600));
typeSend('That, baby, you''re the best');
wait(randomRange(1200,1600));
typeSend('I got that summertime, summertime sadness');
wait(randomRange(1200,1600));
typeSend('S-s-summertime, summertime sadness');
wait(randomRange(1200,1600));
typeSend('Got that summertime, summertime sadness');
wait(randomRange(1200,1600));
typeSend('Oh, oh, oh, oh, oh');
wait(randomRange(1200,1600));
typeSend('I''m feelin'' electric tonight');
wait(randomRange(1200,1600));
typeSend('Cruising down the coast goin'' ''bout 99');
wait(randomRange(1200,1600));
typeSend('Got my bad baby by my heavenly side');
wait(randomRange(1200,1600));
typeSend('I know if I go, I''ll die happy tonight');
wait(randomRange(1200,1600));
typeSend('Oh, my God, I feel it in the air');
wait(randomRange(1200,1600));
typeSend('Telephone wires above are sizzling like a snare');
wait(randomRange(1200,1600));
typeSend('Honey, I''m on fire, I feel it everywhere');
wait(randomRange(1200,1600));
typeSend('Nothing scares me anymore');
wait(randomRange(1200,1600));
typeSend('1, 2, 3, 4');
wait(randomRange(1200,1600));
typeSend('Kiss me hard before you go');
wait(randomRange(1200,1600));
typeSend('Summertime sadness');
wait(randomRange(1200,1600));
typeSend('I just wanted you to know');
wait(randomRange(1200,1600));
typeSend('That, baby, you''re the best');
wait(randomRange(1200,1600));
typeSend('I got that summertime, summertime sadness');
wait(randomRange(1200,1600));
typeSend('S-s-summertime, summertime sadness');
wait(randomRange(1200,1600));
typeSend('Got that summertime, summertime sadness');
wait(randomRange(1200,1600));
typeSend('Oh, oh, oh, oh, oh');
wait(randomRange(1200,1600));
typeSend('Think I''ll miss you forever');
wait(randomRange(1200,1600));
typeSend('Like the stars miss the sun in the morning sky');
wait(randomRange(1200,1600));
typeSend('Later''s better than never');
wait(randomRange(1200,1600));
typeSend('Even if you''re gone I''m gonna drive (drive, drive)');
wait(randomRange(1200,1600));
typeSend('I got that summertime, summertime sadness');
wait(randomRange(1200,1600));
typeSend('S-s-summertime, summertime sadness');
wait(randomRange(1200,1600));
typeSend('Got that summertime, summertime sadness');
wait(randomRange(1200,1600));
typeSend('Oh, oh, oh, oh, oh');
wait(randomRange(1200,1600));
typeSend('Kiss me hard before you go');
wait(randomRange(1200,1600));
typeSend('Summertime sadness');
wait(randomRange(1200,1600));
typeSend('I just wanted you to know');
wait(randomRange(1200,1600));
typeSend('That, baby, you''re the best');
wait(randomRange(1200,1600));
typeSend('I got that summertime, summertime sadness');
wait(randomRange(1200,1600));
typeSend('S-s-summertime, summertime sadness');
wait(randomRange(1200,1600));
typeSend('Got that summertime, summertime sadness');
wait(randomRange(1200,1600));
typeSend('Oh, oh, oh, oh, oh');
wait(randomRange(1200,1600));
until summertime = sadness;
end;
begin
setupSRL();
summerTimeAntiBan();
end.
program TaricCosher;
//The simple script that won the hearts of millions.
{$Define SMART}
{$I SRL-6/SRL.simba}
//********FILL OUT THESE VARIABLES********
const
coshTime = 180; //How many minutes do you want this to run?
//Max time is 6 hours ~ 360 minutes.
browserAgent =''; //Goto http://whatsmyuseragent.com/
//Copy the portion of stuff that matches
//what browser you use.
//EX: Chrome/42.4.2424.242
//What is the purpose of this? It makes your
//SMART client look more like your browser.
//********STOP FILLING OUT THE VARIABLES********
var
XP, XPH, startingExperience: extended;
coshBox, lootBox: Tbox;
timer: TTimeMarker;
//Solidone40's MiniBreaker procedures
Procedure MiniBreaker;
Begin
Case Random (4) Of
0:
begin
writeLn('Starting AntiBan');
Wait(40000 + random(7400));
end;
1:
begin
writeLn('Starting AntiBan');
Wait(25500 + random(8550));
end;
2:
begin
writeLn('Starting AntiBan');
Wait(60040 + random(6759));
end;
3:
begin
writeLn('Starting AntiBan');
Wait(20400 + random(2549));
end;
end;
end;
//Solidone40's Antiban procedures
Procedure Antiban;
Begin
Case Random(60) Of
2:
begin
writeLn('Starting AntiBan');
randomGameTab(False);
end;
4:
begin
writeLn('Starting AntiBan');
Wait(2500 + random(4500));
end;
6:
begin
writeLn('Starting AntiBan');
PickUpMouse;
end;
7:
begin
writeLn('Starting AntiBan');
mouseMovingObject;
end;
8:
begin
writeLn('Starting AntiBan');
hoverSkill(SKILL_THIEVING);
end;
9:
begin
writeLn('Starting AntiBan');
MiniBreaker();
end;
end;
end;
//Ashaman's progressReport procedure.
procedure progressReport();
begin
ClearDebug;
XP := (ChatBox.getXPBar - Round(StartingExperience));
XPH := Round(XP * (3600.0 / (GetTimeRunning / 1000.0)));
writeln('|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|');
writeln('| Taric''s Outrageous Cosher! |');
writeln('|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|');
writeln(PadR('| Exp Earned: ' + GroupDigits(XP,','), 40) + padR('Exp/Hour: ' + GroupDigits(XPH,','), 20) + '|');
writeln(PadR('| Running for: ' + timeRunning, 60) + '|');
writeln('|___________________________________________________________|');
writeln('|___________________________________________________________|');
end;
procedure lureDummy();
var
count: integer;
begin
count = 0;
repeat
mouseBox(coshBox, MOUSE_RIGHT);
chooseOption.select(['ure']);
inc(count);
if(count > 6) then TerminateScript();
until conversationBox.isOpen(2000);
repeat
conversationBox.continue(true, true)
until not conversationBox.isOpen();
end;
procedure lootDummy();
var
counter: Integer;
begin
counter := 0;
mouseSpeed := randomRange(28,32);
repeat
mouseBox(lootBox, MOUSE_RIGHT);
chooseOption.select(['oot']);
mouseSpeed := mouseSpeed - randomRange(1,3);
inc(counter);
until counter >= randomRange(3,5);
mouseSpeed := 20;
end;
procedure knockDummy();
begin
mouseBox(coshBox, MOUSE_RIGHT);
chooseOption.select(['nock']);
end;
begin
clearDebug();
disableSRLDebug := true;
smartUserAgent := browserAgent;
smartShowConsole := false; //Because no one likes that black box :p
SmartEnableDrawing := True;
setupSRL();
SmartImage.clear();
lootBox := intToBox(265, 110, 317, 153); //Change these values if the boxes aren't working.
coshBox := intToBox(265, 81, 310, 120); //Same.
SmartImage.drawBox(coshBox);
SmartImage.drawBox(lootBox);
startingExperience := chatBox.getXPBar;
timer.start()
repeat
lureDummy();
wait(randomRange(401,602));
knockDummy();
wait(randomRange(401,602));
lootDummy();
wait(randomRange(401,602));
progressReport();
Antiban();
MiniBreaker();
until timer.getTime() > ((coshTime + randomRange(1,10)) * 60000);
end.Separated scripts for easier viewing.
E2: @Hoods, I forgot to mention you whenever I updated the standards… SO HERE. Have a mention.