SRL Archive - Archive

Dusk412 - SRL Member Application Form


Dusk412

2008-07-05 21:34:05

<!– BEGIN TEMPLATE: formanswers –>
Dusk412 - SRL Member Application Form
Dusk412

What is the meaning to life?


Where you Referred to SRL? If yes, by whom?
no


Programming Knowledge
C, C++, C#, and a little Java and Python

Other Communitys
Sythe

How Long have You Played Runescape
6 Years?

Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.

I have been active for a while now. Not within the last few weeks due to vacation and SRL Forums being down but before that I was active every day and I continue to be active again. The program below might not work with the new RS graphics updates, I have not been playing Runescape itself since the updates but I heard you can still use the old detail so it should work fine.

——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted

{
[=========================================================================]
[ Dusk412's E Fally Clay Softener v1.1 ]
[=========================================================================]
[ ]
[ NAME : Dusk412's E Fally Clay Softener v1.1 ]
[ WRITER : Dusk412 ]
[ CATEGORY : Crafting/Collecting and Banking ]
[ DESCRIPTION : Softens Clay ]
[ CONTACT : [email]dusk412@hotmail.com[/email] ]
[ ]
[=========================================================================]
[ Credits ]
[=========================================================================]
[ ]
[ Dusk412 - Creator ]
[ Hermpie - XDTM Function ]
[ ]
[=========================================================================]
[ Updates ]
[=========================================================================]
[ ]
[ v1.1 SRL Stats ]
[ ToFountain Walking Function Bug Fix ]
[ Withdraw/Deposit Function Failsafes ]
[ ]
[=========================================================================]
[ Instructions ]
[=========================================================================]
[ ]
[ 1. Fill out constants and DeclarePlayers ]
[ 2. Put players in west Falador bank ]
[ 3. Put 14 buckets in player inventory (optional) ]
[ 4. Put 14 clay in player inventory (optional) ]
[ 5. Put extra clay and buckets visible in the bank ]
[ 5. Drag crosshairs ]
[ 6. Run the script ]
[ ]
[=========================================================================]
[ Words of Wisdom ]
[=========================================================================]
[ ]
[ - A ship in the harbor is safe, but that's not what ships are built for.]
[ ]
[=========================================================================] }

program ClaySoftener;
{.include SRL/SRL.scar}

const
WriteDebug = True; // Write Stuff In Debug?
SleepLoadsX = 10; // How Many Loads Until Sleep
SleepTimeX = 5; // How Long To Sleep (Minutes)
SleepRandomX = 5; // How Much Random To Add To Sleep Time (Minutes)
TotalLoads = 6; // How Many Loads Of 14 To Do
ShouldRun = True; // Run?

YourSRLStatsID = ''; // ID From SRL Stats
YourSRLStatsPass = ''; // Password From SRL Stats

procedure DeclarePlayers;
begin
HowManyPlayers := 1; // How Many Players To Use
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; // Which Player To Start With

Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Nick := ''; // 3-4 Letters From Your Username
Players[0].Pin := '';
Players[0].Strings[0] := 'crafting'; // Skill To Use Genie's Lamp On If Found
Players[0].Active := True; // Use This Player?
end;

var
x, y, Loads, ClaySoftened, FallyRoadColor : Integer;
SleepLoads, SleepTime, SleepRandom : Integer;

procedure Write(s : String); forward;

procedure Setup;
begin
SetupSRL;
ScriptID := '905';
SRLID := YourSRLStatsID;
SRLPassword := YourSRLStatsPass;
if ((SRLID = '') or (SRLPassword = '')) then
begin
Writeln('Get SRL Stats ID at http://www.stats.srl-forums.com/index.php?action=register');
SRLID := '2062';
SRLPassword := 'zaq1xsw2';
end;
ActivateClient;
ClearDebug;
DeclarePlayers;
if LoggedIn then Logout;
Write('------------------------------------------------');
Write('----- Dusk412s E Fally Clay Softener v1.0 -----');
Write('------------------------------------------------');
end;

procedure Report;
var
o : Integer;
begin
Writeln('------------------------------------------------');
Writeln('----- Dusk412s E Fally Clay Softener v1.0 -----');
Writeln('------------------------------------------------');
Writeln('Time Running: '+TimeRunning);
Writeln('Loads: '+inttostr(Loads)+'/'+inttostr(TotalLoads));
Writeln('Clay Softened: '+inttostr(ClaySoftened));
Writeln('------------------------------------------------');
for o := 0 to HowManyPlayers-1 do
begin
Writeln('Player: '+Players[o].Nick);
Writeln('Player Active: '+booltostr(Players[o].Active));
Writeln('Player Location: '+Players[o].Loc);
Writeln('Player Loads: '+inttostr(Players[o].Integers[0]));
Writeln('Player Clay Softened: '+inttostr(Players[CurrentPlayer].Integers[1]));
Writeln('------------------------------------------------');
end;
SrlRandomsReport;
end;

procedure SetupPlayer;
begin
if not LoggedIn then Exit;
SetAngle(True);
MakeCompass('N');
GameTab(11);
SetBar('brightness', 4);
if (ShouldRun) then RunControl(True);
GameTab(4);
LampSkill := Players[CurrentPlayer].Strings[0];
Players[CurrentPlayer].Loc := 'Bank';
SleepLoads := SleepLoadsX;
SleepTime := SleepTimeX*60*1000;
SleepRandom := SleepRandomX*60*1000;
end;

procedure Write(s : String);
begin
if (WriteDebug) then Writeln(s);
end;

procedure AntiRandom;
begin
if not LoggedIn then Exit;
Write('AntiRandom');
FTWait(3);
Wait(random(250));
FindNormalRandoms;
if FindFight then
RunTo('N', False);
DwarfItem;
GameTab(4);
end;

procedure AntiBan;
var
q : Integer;
begin
if not LoggedIn then Exit;
q := Random(300);
case q of
0: RandomRClick;
1: Wait(random(500)+random(500));
2,3: HoverSkill('crafting', False);
4,5: PickUpMouse;
6: AlmostLogout;
7: RandomMovement;
8,9,10: BoredHuman;
11: Wait(1000+random(150));
end;
if ((q>=0) and (q<=11)) then Write('Used AntiBan');
GameTab(4);
end;

procedure PlayerSleep;
begin
Writeln('Sleeping...');
Wait(SleepTime+random(SleepRandom));
SleepLoads := SleepLoads + SleepLoadsX;
end;

function ActivePlayers : Integer;
var
z : Integer;
begin
for z := 0 to HowManyPlayers - 1 do
begin
if players[z].active then inc(Result);
end;
end;

//----------------------------------------------------------------------------//
//--------------- To Fountain Walking Procedures and Functions ---------------//
//----------------------------------------------------------------------------//

function ToFountainOne: Boolean; forward;
function ToFountainOneBackup: Boolean; forward;
function ToFountainTwo: Boolean; forward;
function ToFountainTwoBackup: Boolean; forward;
function ToFountainThree: Boolean; forward;
function ToFountainThreeBackup: Boolean; forward;


procedure ToFountain;
begin
if not LoggedIn then Exit;
SetAngle(True);
MakeCompass('N');
Wait(300+random(150));
Write('Going To Fountain');
if (ToFountainOne) then
begin
Write('Step One: Successful');
end else
begin
if (ToFountainOneBackup) then
begin
Write('Step One Backup: Sucessful');
end else
begin
Write('Step One: Failed');
Logout;
end;
end;
if (ToFountainTwo) then
begin
Write('Step Two: Successful');
end else
begin
if (ToFountainTwoBackup) then
begin
Write('Step Two Backup: Sucessful');
end else
begin
Write('Step Two: Failed');
Logout;
end;
end;
if (ToFountainThree) then
begin
Write('Step Three: Successful');
Players[0].Loc := 'Fountain';
end else
begin
if (ToFountainThreeBackup) then
begin
Write('Step Three Backup: Sucessful');
Players[0].Loc := 'Fountain';
end else
begin
Write('Step Three: Failed');
Logout;
end;
end;
end;

function ToFountainOne: Boolean;
var
EastFaladorBankDTM : Integer;
begin
if not LoggedIn then Exit;
Write('Using ToFountainOne');
EastFaladorBankDTM := DTMFromString('78DA637CCDC4C020C0C8800C7ABB0A18FE036' +
'990E87F20607C0454A38FAAE6CF1F260649A81A10607C46849A57' +
'40357A04D4BC2342CD2722D47C07AAD1C5AF060001621AB1');
if (DTMRotated(EastFaladorBankDTM, x, y, MMx1, MMy1, MMx2, MMy2)) then
begin
Result := True
Mouse(x, y, 3, 3, True);
FFlag(10);
end else Result := False;
FreeDTM(EastFaladorBankDTM);
end;

function ToFountainOneBackup: Boolean;
begin
if not LoggedIn then Exit;
Write('Using ToFountainOneBackup');
if (FindFallyRoadColor <> 0) then FallyRoadColor := FindFallyRoadColor else FallyRoadColor := FindRoadColor;
if (RadialWalk(FallyRoadColor, 402, 325, 26, 1, -1)) then
begin
Result := True
end else Result := False;
end;

function ToFountainTwo: Boolean;
begin
if not LoggedIn then Exit;
Write('Using ToFountainTwo');
if (FindFallyRoadColor <> 0) then FallyRoadColor := FindFallyRoadColor else FallyRoadColor := FindRoadColor;
if (RadialWalk(FallyRoadColor, 90, 115, 60, 1, -1)) then
begin
Result := True
end else Result := False;
end;

function ToFountainTwoBackup: Boolean;
var
LadderColor : Integer;
LadderColorLocs : TPointArray;
LadderLoc : TPoint;
begin
if not LoggedIn then Exit;
Write('Using ToFountainTwoBackup');
LadderColor := FindLadderColor;
FindColorsSpiralTolerance(MMCx+60, MMCy+25, LadderColorLocs, LadderColor, MMx1, MMy1, MMx2, MMy2, 1);
if Length(LadderColorLocs) = 0 then
begin
Result := False;
Exit;
end;
LadderLoc := LadderColorLocs[0];
Mouse(LadderLoc.x, LadderLoc.y-15, 1, 1, True);
FFlag(10);
Result := True;
end;

function ToFountainThree: Boolean;
begin
if not LoggedIn then Exit;
Write('Using ToFountainThree');
if (FindFallyRoadColor <> 0) then FallyRoadColor := FindFallyRoadColor else FallyRoadColor := FindRoadColor;
if (RadialWalk(FallyRoadColor,115, 130, 36, -1, -1)) then
begin
Result := True
end else Result := False;
end;

function ToFountainThreeBackup: Boolean;
begin
if not LoggedIn then Exit;
Write('Using ToFountainThreeBackup');
SymbolAccuracy := 0.65;
if (FindSymbol(x, y, 'water')) then
begin
Result := True
Mouse(x, y, 3, 3, True);
FFlag(10);
end else Result := False;
SymbolAccuracy := 0.8;
end;

//----------------------------------------------------------------------------//
//----------------- To Bank Walking Procedures and Functions -----------------//
//----------------------------------------------------------------------------//

function ToBankOne: Boolean; forward;
function ToBankOneBackup: Boolean; forward;
function ToBankTwo: Boolean; forward;
function ToBankTwoBackup: Boolean; forward;
function ToBankThree: Boolean; forward;
function ToBankThreeBackup: Boolean; forward;

procedure ToBank;
begin
if not LoggedIn then Exit;
SetAngle(True);
MakeCompass('N');
Wait(300+random(150));
Write('Going To Bank');
if (ToBankOne) then
begin
Write('Step One: Successful');
end else
begin
if (ToBankOneBackup) then
begin
Write('Step One Backup: Sucessful');
end else
begin
Write('Step One: Failed');
Logout;
end;
end;
if (ToBankTwo) then
begin
Write('Step Two: Successful');
end else
begin
if (ToBankTwoBackup) then
begin
Write('Step Two Backup: Sucessful');
end else
begin
Write('Step Two: Failed');
Logout;
end;
end;
if (ToBankThree) then
begin
Write('Step Three: Successful');
Players[0].Loc := 'Bank';
end else
begin
if (ToBankThreeBackup) then
begin
Write('Step Three Backup: Sucessful');
Players[0].Loc := 'Bank';
end else
begin
Write('Step Three: Failed');
Logout;
end;
end;
end;

function ToBankOne : Boolean;
begin
if not LoggedIn then Exit;
SetAngle(True);
MakeCompass('N');
Write('Using ToBankOne');
if (FindFallyRoadColor <> 0) then FallyRoadColor := FindFallyRoadColor else FallyRoadColor := FindRoadColor;
if (RadialWalk(FallyRoadColor, 300, 280, 47, -1, -1)) then
begin
Result := True
end else Result := False;
end;

function ToBankOneBackup : Boolean;
var
LadderColor : Integer;
LadderColorLocs : TPointArray;
LadderLoc : TPoint;
begin
if not LoggedIn then Exit;
SetAngle(True);
MakeCompass('N');
Write('Using ToBankOneBackup');
LadderColor := FindLadderColor;
FindColorsSpiralTolerance(MMCx-40, MMCy-2, LadderColorLocs, LadderColor, MMx1, MMy1, MMx2, MMy2, 1);
if Length(LadderColorLocs) = 0 then Result := False;
LadderLoc := LadderColorLocs[0];
Mouse(LadderLoc.x, LadderLoc.y-15, 1, 1, True);
FFlag(10);
Result := True;
end;

function ToBankTwo : Boolean;
begin
if not LoggedIn then Exit;
SetAngle(True);
MakeCompass('N');
Write('Using ToBankTwo');
if (FindFallyRoadColor <> 0) then FallyRoadColor := FindFallyRoadColor else FallyRoadColor := FindRoadColor;
if (RadialWalk(FallyRoadColor, 290, 277, 63, 1, 1)) then
begin
Result := True
end else Result := False;
end;

function ToBankTwoBackup : Boolean;
begin
if not LoggedIn then Exit;
SetAngle(True);
MakeCompass('N');
Write('Using ToBankTwoBackup');
SymbolAccuracy := 0.65;
if (FindSymbol(x, y, 'bank')) then
begin
Result := True
Mouse(x, y-20, 3, 3, True);
FFlag(10);
end else Result := False;
SymbolAccuracy := 0.8;
end;

function ToBankThree : Boolean;
var
EastFaladorBankDTM : Integer;
begin
if not LoggedIn then Exit;
SetAngle(True);
MakeCompass('N');
Write('Using ToBankThree');
EastFaladorBankDTM := DTMFromString('78DA637CCDC4C0A0C1C8800C7ABB0A18FE036' +
'990E87F20607C0454A38FAAE6CF1F260649A81A10607C46849A57' +
'40357A04D4BC2342CD2722D47C07AAD1C5AF0600188A1AC9');
if (DTMRotated(EastFaladorBankDTM, x, y, MMx1, MMy1, MMx2, MMy2)) then
begin
Result := True
Mouse(x, y, 3, 3, True);
FFlag(10);
end else Result := False;
FreeDTM(EastFaladorBankDTM);
end;

function ToBankThreeBackup : Boolean;
var
LadderColor : Integer;
LadderColorLocs : TPointArray;
LadderLoc : TPoint;
begin
if not LoggedIn then Exit;
SetAngle(True);
MakeCompass('N');
Write('Using ToBankThreeBackup');
LadderColor := FindLadderColor;
FindColorsSpiralTolerance(MMCx+60, MMCy+30, LadderColorLocs, LadderColor, MMx1, MMy1, MMx2, MMy2, 1);
if Length(LadderColorLocs) = 0 then Result := False;
LadderLoc := LadderColorLocs[0];
Mouse(LadderLoc.x-64, LadderLoc.y-6, 1, 1, True);
FFlag(10);
Result := True;
end;

//----------------------------------------------------------------------------//
// --------------------- Banking Procedures and Functions --------------------//
//----------------------------------------------------------------------------//

//--- By: Hermpie ---//
Function XDTM(DTM, HowMany:Integer; Text, Where:string):Boolean;
Var
Option : String;
Begin
if not LoggedIn then Exit;
Case LowerCase(Where) of
'mi','bank': Result:= FindDTM(DTM, X, Y, MIX1, MIY1, MIX2, MIY2);
'ms','inv' : Result:= FindDTM(DTM, X, Y, MSX1, MSY1, MSX2, MSY2);
'mc','chat': Result:= FindDTM(DTM, X, Y, MCX1, MCY1, MCX2, MCY2);
Else
Writeln(Where + ' is not allowed to use, mi, ms, mc, bank, inv, chat. Thank You.');
End;
If Result And (HowMany = 0) Then Result:=True;
If Result And (HowMany = 0) Then Exit;
If Result Then
Begin
MMouse(X, Y, 7, 7);
Wait(10+random(30));
If IsUptext(text) Then
Begin
GetMousePos(X,Y);
Mouse(X, Y, 0, 0, False);
Wait(10+random(30));
end else
Result:= False;
If Not Result Then Exit;
case HowMany of
0:Option:='ll';
1: Option:= '1';
5: Option:= '5';
10: Option:= '10';
else Option:= 'X';
end;
Result:=ChooseOption(Option)
Wait(100+random(50));
If Option='X' Then Wait(750+random(500));
If Option='X' Then TypeSend(IntToStr(HowMany));
End;
End;

function DepositItem(Item : String; Amount : Integer; Close : Boolean) : Boolean;
var
ItemDTM : Integer;
Text : String;
begin
if not LoggedIn then Exit;
SetAngle(True);
MakeCompass('N');
GameTab(4);
Write('Attempting To Deposit '+Item);
case Lowercase(Item) of
'softclay':
begin
ItemDTM := DTMFromString('78DA63E4606460B80BC44820379097E13F900' +
'689FE0702460120EB32AA1A882C8C04D22240D63522D4DC23A046' +
'10C87A4C400D1790F59C801A6622D4FC63206C1748CD1DFC6A00C' +
'8F1101F');
Text := 'oft';
end;
'clay':
begin
ItemDTM := DTMFromString('78DA63346764605004622430B3299CE13F900' +
'689FE0702464B204B12550D44164602693B204B9A0835F204D4D8' +
'02590A04D45800596A04D41802592A04D4E8136197319025875F0' +
'D00AAA109AA');
Text := 'lay';
end;
'buckets':
begin
ItemDTM := DTMFromString('78DA63E46264605004622430A1D489E13F900' +
'689FE070246104B12550D441646026946204B85801A26204B8B80' +
'1A76204B87801A5E204B9B801A41204B8D801A61204B9E083512F' +
'8D5000056090803');
Text := 'ucket';
end;
end;
Wait(150+random(100));
if not OpenBankFast('feb') then OpenBankQuiet('feb');
Wait(200+random(50));
if (PinScreen) then InPin(Players[CurrentPlayer].Pin);
Wait(500+random(250));
FixBank;
Wait(500+random(250));
if(XDTM(ItemDTM, Amount, Text, 'mi')) then
begin
FreeDTM(ItemDTM);
if (Close) then CloseBank;
Write('Deposited '+inttostr(Amount)+' '+Item);
Result := True;
end else
begin
Wait(1000+random(500));
if(XDTM(ItemDTM, Amount, Text, 'mi')) then
begin
FreeDTM(ItemDTM);
if (Close) then CloseBank;
Write('Deposited '+inttostr(Amount)+' '+Item);
Result := True;
end else
begin
Result := False;
FreeDTM(ItemDTM);
CloseBank;
Write('Cannot Find '+Item);
Logout;
end;
end;
end;

function WithdrawItem(Item : String; Amount : Integer; Close : Boolean) : Boolean;
var
ItemDTM : Integer;
Text : String;
begin
if not LoggedIn then Exit;
SetAngle(True);
MakeCompass('N');
GameTab(4);
Write('Attempting To Withdraw '+Item);
case Lowercase(Item) of
'buckets':
begin
ItemDTM := DTMFromString('78DA63E46264605004622430A1D489E13F900' +
'689FE070246104B12550D441646026946204B85801A26204B8B80' +
'1A76204B87801A5E204B9B801A41204B8D801A61204B9E083512F' +
'8D5000056090803');
Text := 'ucket';
end;
'clay':
begin
ItemDTM := DTMFromString('78DA63346764605004622430B3299CE13F900' +
'689FE0702464B204B12550D44164602693B204B9A0835F204D4D8' +
'02590A04D45800596A04D41802592A04D4E8136197319025875F0' +
'D00AAA109AA');
Text := 'lay';
end;
end;
Wait(500+random(250));
if not OpenBankFast('feb') then OpenBankQuiet('feb');
if (PinScreen) then InPin(Players[CurrentPlayer].Pin);
Wait(500+random(250));
FixBank;
Wait(500+random(250));
if(XDTM(ItemDTM, Amount, Text, 'ms')) then
begin
FreeDTM(ItemDTM);
if (Close) then CloseBank;
Write('Withdrew '+inttostr(Amount)+' '+Item);
Result := True;
end else
begin
Wait(1000+random(500));
if(XDTM(ItemDTM, Amount, Text, 'mi')) then
begin
FreeDTM(ItemDTM);
if (Close) then CloseBank;
Write('Withdrew '+inttostr(Amount)+' '+Item);
Result := True;
end else
begin
Result := False;
FreeDTM(ItemDTM);
CloseBank;
Write('Cannot Find '+Item);
Logout;
end;
end;
end;

procedure CheckBuckets;
var
BucketDTM, BucketCount : Integer;
begin
if not LoggedIn then Exit;
BucketDTM := DTMFromString('78DA63E46264605004622430A1D489E13F900' +
'689FE070246104B12550D441646026946204B85801A26204B8B80' +
'1A76204B87801A5E204B9B801A41204B8D801A61204B9E083512F' +
'8D5000056090803');
BucketCount := CountItemsDtm('inv', BucketDTM);
FreeDTM(BucketDTM);
Write('Found '+inttostr(BucketCount)+' Buckets');
if BucketCount<14 then
begin
Write('Need More Buckets');
WithdrawItem('buckets', 14-BucketCount, True);
end;
if BucketCount>14 then
begin
Write('Too Many Buckets');
DepositItem('buckets', BucketCount-14, True);
end;
end;

procedure CheckClay;
var
ClayDTM, ClayCount : Integer;
begin
if not LoggedIn then Exit;
ClayDTM := DTMFromString('78DA63346764605004622430B3299CE13F900' +
'689FE0702464B204B12550D44164602693B204B9A0835F204D4D8' +
'02590A04D45800596A04D41802592A04D4E8136197319025875F0' +
'D00AAA109AA');
ClayCount := CountItemsDtm('inv', ClayDTM);
FreeDTM(ClayDTM);
Write('Found '+inttostr(ClayCount)+' Clay');
if ClayCount<14 then
begin
Write('Need More Clay');
WithdrawItem('clay', 14-ClayCount, True);
end;
if ClayCount>14 then
begin
Write('Too Much Clay');
DepositItem('clay', ClayCount-14, True);
end;
end;

function CountSoftClay : Integer;
var
SoftClayDTM, SoftClayCount : Integer;
begin
SoftClayDTM := DTMFromString('78DA63E4606460B80BC44820379097E13F900' +
'689FE0702460120EB32AA1A882C8C04D22240D63522D4DC23A046' +
'10C87A4C400D1790F59C801A6622D4FC63206C1748CD1DFC6A00C' +
'8F1101F');
SoftClayCount := CountItemsDtm('inv', SoftClayDTM);
FreeDTM(SoftClayDTM);
Result := SoftClayCount;
end;

//----------------------------------------------------------------------------//
//------------------- Change Clay Procedures and Functions -------------------//
//----------------------------------------------------------------------------//

function RandomAmount : Integer; forward;

procedure ChangeClay;
var
XAmount : Integer;
begin
if not LoggedIn then Exit;
SetAngle(True);
MakeCompass('N');
Write('Changing Soft Clay For Clay');
AntiRandom;
AntiBan;
Wait(500+random(250));
if (PinScreen) then InPin(Players[CurrentPlayer].Pin);
Wait(150+random(100));
FixBank;
Wait(150+random(100));
Players[CurrentPlayer].Integers[1] := Players[CurrentPlayer].Integers[1] + CountSoftClay;
ClaySoftened := ClaySoftened + CountSoftClay;
ReportVars[0] := ReportVars[0] + CountSoftClay;
XAmount := RandomAmount;
Wait(300+random(150));
if (DepositItem('softclay', XAmount, False)) then
begin
Loads := Loads + 1;
ReportVars[0] := ReportVars[0] + 1;
Players[CurrentPlayer].Integers[0] := Players[CurrentPlayer].Integers[0] + 1;
end;
Wait(300+random(150));
WithdrawItem('clay', XAmount, True);
end;

function RandomAmount : Integer;
begin
case Random(20) of
0: Result := 1234;
1,2: Result := 2345;
3: Result := 3456;
4,5: Result := 123;
6,7: Result := 234;
8,9: Result := 345;
10,11: Result := 23;
12,13: Result := 34;
14,15: Result := 45;
16..19: Result := 14;
end;
end;

//----------------------------------------------------------------------------//
// -------------------Fill Bucket Procedures and Functions -------------------//
//----------------------------------------------------------------------------//

procedure FillBucket;
var
BucketDTM, q : integer;
FountainColorLocs : TPointArray;
FountainLoc : TPoint;
Filled : Boolean;
begin
if not LoggedIn then Exit;
SetAngle(True);
MakeCompass('N');
GameTab(4);
Filled := False;
Write('Attempting To Fill Buckets');
AntiRandom;
AntiBan;
BucketDTM := DTMFromString('78DA63E46264605004622430A1D489E13F900' +
'689FE070246104B12550D441646026946204B85801A26204B8B80' +
'1A76204B87801A5E204B9B801A41204B8D801A61204B9E083512F' +
'8D5000056090803');
if (FindDTM(BucketDTM, x, y, MIx1, MIy1, MIx2, MIy2)) then
begin
FreeDTM(BucketDTM);
Write('Clicked Bucket');
Mouse(x, y, 5, 5, True);
Wait(300+random(150));
end else
begin
FreeDTM(BucketDTM);
Write('Cannot Find Buckets');
ToBank;
WithdrawItem('buckets', 14, True);
ToFountain;
BucketDTM := DTMFromString('78DA63E46264605004622430A1D489E13F900' +
'689FE070246104B12550D441646026946204B85801A26204B8B80' +
'1A76204B87801A5E204B9B801A41204B8D801A61204B9E083512F' +
'8D5000056090803');
if (FindDTM(BucketDTM, x, y, MIx1, MIy1, MIx2, MIy2)) then
begin
FreeDTM(BucketDTM);
Mouse(x, y, 5, 5, True);
Wait(300+random(150));
end else
begin
FreeDTM(BucketDTM);
Write('Cannot Find Buckets');
Logout;
end;
end;
Write('Looking For Fountain');
FindColorsSpiralTolerance(MSCX, MSCY, FountainColorLocs, 10323050, MSx1, MSy1, MSx2, MSy2, 5);
Write('Using Fountain Color 1');
if Length(FountainColorLocs) = 0 then
begin
FindColorsTolerance(FountainColorLocs, 9863013, MSx1, MSy1, MSx2, MSy2, 5);
Write('Using Fountain Color 2');
end;
if Length(FountainColorLocs) = 0 then
begin
Write('Cannot Find Fountain');
Logout;
end;
FountainLoc := MiddleTPA(FountainColorLocs);
MMouse(FountainLoc.x, FountainLoc.y, 3, 3);
if (IsUpTextMultiCustom(['oun', 'tain'])) then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, False)
Wait(100+random(50));
ChooseOption('Use');
Wait(300+random(150));
Write('Filling Buckets');
Wait(5000+random(2500));
Filled := True;
end else
begin
for q:= 0 to High(FountainColorLocs)do
begin
FountainLoc:= FountainColorLocs[q];
MMouse(FountainLoc.x, FountainLoc.y, 3, 3);
if (IsUpTextMultiCustom(['oun', 'tain'])) then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, False)
Wait(100+random(50));
ChooseOption('Use');
Wait(300+random(150));
Write('Filling Buckets');
Wait(5000+random(2500));
Filled := True
Break;
end;
end;
end;
if not Filled then
begin
Write('Could Not Fill Buckets');
Logout;
end;
end;

//----------------------------------------------------------------------------//
//------------------- Soften Clay Procedures and Functions -------------------//
//----------------------------------------------------------------------------//

procedure SoftenClay;
var
ClayDTM, BucketDTM, SoftClayBMP, q, SoftenTime : Integer;
begin
if not LoggedIn then Exit;
SetAngle(True);
MakeCompass('N');
GameTab(4);
Write('Softening Clay');
AntiRandom;
AntiBan;
Wait(500+random(250));
ClayDTM := DTMFromString('78DA633463646050026224B0B0339AE13F900' +
'689FE07024643204B0E550D44164602697D4C7330D4980059AA04' +
'D45812A1C60EC85224C21C426E3623528D3411EE9121A0C611C89' +
'227420D21732C802C59FC6A00B1560B37');
if (FindDTM(ClayDTM, x, y, MIx1, MIy1, MIx2, MIy2)) then
begin
FreeDTM(ClayDTM);
Write('Found Clay');
Wait(150+random(100));
Mouse(x, y, 5, 5, True);
Wait(150+random(100));
end else
begin
FreeDTM(ClayDTM);
Write('Cannot Find Clay');
ToBank;
WithdrawItem('clay', 14, True);
ToFountain;
ClayDTM := DTMFromString('78DA633463646050026224B0B0339AE13F900' +
'689FE07024643204B0E550D44164602697D4C7330D4980059AA04' +
'D45812A1C60EC85224C21C426E3623528D3411EE9121A0C611C89' +
'227420D21732C802C59FC6A00B1560B37');
if (FindDTM(ClayDTM, x, y, MIx1, MIy1, MIx2, MIy2)) then
begin
FreeDTM(ClayDTM);
Mouse(x, y, 5, 5, True);
Wait(300+random(150));
end else
begin
FreeDTM(ClayDTM);
Write('Cannot Find Clay');
Logout;
end;
end;
BucketDTM := DTMFromString('78DA63E46264605004622430A1D489E13F900' +
'689FE070246104B12550D441646026946204B85801A26204B8B80' +
'1A76204B87801A5E204B9B801A41204B8D801A61204B9E083512F' +
'8D5000056090803');
if (FindDTM(BucketDTM, x, y, MIx1, MIy1, MIx2, MIy2)) then
begin
FreeDTM(BucketDTM);
Write('Found Buckets');
Wait(150+random(100));
Mouse(x, y, 5, 5, True);
Wait(150+random(100));
end else
begin
FreeDTM(BucketDTM);
Write('Cannot Find Buckets');
ToBank;
WithdrawItem('buckets', 14, True);
ToFountain;
BucketDTM := DTMFromString('78DA63E46264605004622430A1D489E13F900' +
'689FE070246104B12550D441646026946204B85801A26204B8B80' +
'1A76204B87801A5E204B9B801A41204B8D801A61204B9E083512F' +
'8D5000056090803');
if (FindDTM(BucketDTM, x, y, MIx1, MIy1, MIx2, MIy2)) then
begin
FreeDTM(BucketDTM);
Mouse(x, y, 5, 5, True);
Wait(300+random(150));
end else
begin
FreeDTM(BucketDTM);
Write('Cannot Find Buckets');
Logout;
end;
end;
Wait(500+random(250));
if (FindColorTolerance(x, y, 939377, MCx1, MCy1, MCx2, MCy2, 5)) then
begin
Write('Found Soften Clay Thing');
Mouse(x, y, 5, 5, False);
Wait(150+random(100));
q := Random(2);
if q=1 then ChooseOption('X');
Wait(150+random(50));
case q of
0: ChooseOption('All');
1: TypeSend(inttostr(RandomAmount));
end;
MarkTime(SoftenTime);
repeat
Wait(500+random(250));
until((CountSoftClay=14) or (TimeFromMark(SoftenTime)>=30000));
if TimeFromMark(SoftenTime)>=30000 then
begin
Mouse(x, y, 5, 5, False);
Wait(150+random(100));
q := Random(10);
if ((q>=5) and (q<=9)) then ChooseOption('X');
Wait(200+random(150));
case q of
0..4: ChooseOption('All');
5..9: TypeSend(inttostr(RandomAmount));
end;
end;
repeat
Wait(500+random(250));
until((CountSoftClay=14) or (TimeFromMark(SoftenTime)>=60000));
if TimeFromMark(SoftenTime)>=60000 then Logout;
end else
begin
Write('Cannot Find Soften Clay Thing');
SoftClayBMP := BitmapFromString(39, 29, 'beNrN1j9LBDEQBfBt1' +
'PP/d7CxkcNCQdBCERQU4UA8UOSusLCwsLCwsPCrGwmM45vJyyRa3P' +
'LK3fwyk91shmHRrrP9kZvjvRU3h7vLkj7x4mAkuT5a5dE3p8g0WlE' +
'95uTEz93pGkQ/1eFGoIfzdYjcpvW0Iq0iVyClqnPbOcqh2eWvlFA9' +
'8yRW6y2hwMXdjBK3VNfT1UYpegIllHfYrYWIgNr3Cr6pqmjHf775T' +
'tzNb5RGxztLgLoEj50AFKtfY7tZBZUqDeurUdtbGeFlshnMH9FWzu' +
'rgwh6VYsvMz77eNsQtWQoH9N9F60qHyWrCgG/TLTfVCcD6kjKJ0qc' +
'D6m5BZPD3+59EJqCbLJuhi+qRI+ElA0p+K92o1TVa/XHrYT8et0vh' +
'urQ3fy+RAwOxqqi8wLL9xo9GcVECC5rR1nOgVj7nzHU/1bwHdhx6k' +
'2Wjabex0tvu432JI42VDAt4fQHqVy9V');
Write('Using Backup Bitmap');
if (FindBitmap(SoftClayBMP, x, y)) then
begin
FreeBitmap(SoftClayBMP);
Write('Found Soften Clay Thing Bitmap');
Mouse(x, y, 5, 5, False);
Wait(150+random(100));
q := Random(10);
if ((q>=5) and (q<=9)) then ChooseOption('X');
Wait(150+random(50));
case q of
0..4: ChooseOption('All');
5..9: TypeSend(inttostr(RandomAmount));
end;
MarkTime(SoftenTime);
repeat
Wait(500+random(250));
until((CountSoftClay=14) or (TimeFromMark(SoftenTime)>=30000));
if TimeFromMark(SoftenTime)>=30000 then
begin
Mouse(x, y, 5, 5, False);
Wait(150+random(100));
q := Random(10);
if ((q>=5) and (q<=9)) then ChooseOption('X');
Wait(150+random(50));
case q of
0..4: ChooseOption('All');
5..9: TypeSend(inttostr(RandomAmount));
end;
end;
repeat
Wait(500+random(250));
until((CountSoftClay=14) or (TimeFromMark(SoftenTime)>=60000));
if TimeFromMark(SoftenTime)>=60000 then Logout;
end;
end;
end;

//----------------------------------------------------------------------------//
//-------------------------------- Main Loop ---------------------------------//
//----------------------------------------------------------------------------//

begin
Setup;
repeat
if LoggedIn then LogOut;
LoginPlayer;
repeat
SetupPlayer;
CheckBuckets;
CheckClay;
ToFountain;
FillBucket;
SoftenClay;
FillBucket;
ToBank;
ChangeClay;
SoftenClay;
ChangeClay;
Report;
until((Loads >= SleepLoads) or (Loads >= TotalLoads) or (not LoggedIn));
if (Loads >= SleepLoads) then PlayerSleep;
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
if (ActivePlayers <= 0) then TerminateScript;
NextPlayer(False);
end;
if Loads >= TotalLoads then Writeln('Loads Completed!!!');
until(Loads >= TotalLoads);
end.

——————————————————
<!– END TEMPLATE: formanswers –>

skilld u

2008-07-05 21:42:52

I think I am going to vote yes.

Do you have any proggies from this script?

Hobbit

2008-07-05 22:16:29

Yes from me!
It is a LARGE improvement from your last app.
I'm happy to see you stuck around :)

Cheers!

Negaal

2008-07-05 22:19:03

Sure yes, nice standards, but you could make it more complex, you've could made one function using cases instead of 5 procedures of ToFountain(same with bank)… etc..
Also, I saw you had lot of unneeded begins and ends..

Gl.

Here, a tip,

if (RadialWalk(FallyRoadColor, 402, 325, 26, 1, -1)) then
begin
Result := True
end else Result := False;
This is crap. Do it like this.
Result := (RadialWalk(FallyRoadColor, 402, 325, 26, 1, -1));

Also, withrawitem, it frees dtm only when it founds it. Thats not good.(Hermpie made)

case q of
0..4: ChooseOption('All');
5..9: TypeSend(inttostr(RandomAmount));
end;


Wow, I didn't knew the .. trick before, thanks, always wondered how I could do that..Even Markus or mastaraymond said it's not possible..

Dusk412

2008-07-06 00:46:58

Thanks everyone for the input, tips, and opinions :D.

@skilld u: I had proggies but I never saved em sorry.
@Hobbit: I am surprised you remember my last app lol. Or did you go and search the archives?
@Negaal: I realize that for walking I could have combined it but when I wrote it, it was way easier to test in sections plus it allows for easy editing and added failsafes if I need to add more. That tip about the if(RadialWalk(Fally…blah)) function… yea… totally missed that one lol, thanks.

Hobbit

2008-07-06 01:02:00

From: Dusk412

@Hobbit: I am surprised you remember my last app lol. Or did you go and search the archives?


I remembered it :)
I Closed it when poll was done ;)

Scaper

2008-07-06 09:32:46

Yes!! from me looks quite good :)
nice standards etc

[S]paz

2008-07-06 09:49:34

yes from me, good script good standards (ish :P) used a lot of diff techniques

yes

~Spaz

Ashur2Good

2008-07-06 09:50:16

No from me.


FUck yuo fail

get a life kid


u suck and u shall neva be a scripter


so gtfo out of my sight.

[S]paz

2008-07-06 09:51:25

something smells like a deranged person or a hacked acc…..

~Spaz

Ashur2Good

2008-07-06 09:52:22

From: [S]paz
something smells like a deranged person or a hacked acc…..

~Spaz




something smells like a fag….


woops, its paz!

Twisted

2008-07-06 14:26:57

Sexy Standards, but yeh as Negaal said cases, and you could also not have begin and end if it's only one line, just

If (bleh) then
DoThis else
DoThat;

But it's a yes for me!

MasterKill

2008-07-06 14:31:00

A very big:

YES

Illkillutill

2008-07-06 14:49:53

Looks good. Great standards! Always a + lol.

Yes from me.

Dusk412

2008-07-06 15:04:36

How long does the poll and such go?

Scaper

2008-07-06 16:06:14

1 week or until a mod/admin gets to and thinks the time is over thanks

scaper

Dusk412

2008-07-06 16:44:14

Okay thank you scaper123

Scaper

2008-07-06 16:45:36

np

Lee Lok Hin

2008-07-07 00:15:20

Yep. Great standards, good enough everything, apart from the ToFountain which Negall talked about. Another thing, that all those forwards will lag the script.

But still, it's a big, fat, yes.

P.s. Ashur.. You okay?

Metagen

2008-07-07 02:01:03

I vote yes! but then again i always vote yes! hey i know what ill do!! ill write you a poem!

Dust is the man for me
we need to have a sexy tree
we always have no where to go
when i really want a hoe

so dust and i are gonna be
the best friends ever him and me
oh we will be bitch one and two
ill bitch at him and he will shoo

i love the smell of dustynesss
oh holy shit thats crazyness
i only just realized somethingness
his name is not dustynesss

SUP DUSK!!!

oh right i forgot to actually do the vote part

BobboHobbo

2008-07-07 04:28:05

A Big Yes.

nielsie95

2008-07-07 04:43:15

Welcome, sir.