SRL Archive - Archive

sirlaughsalot - SRL Member Application Form


sirlaughsalot

2008-08-15 19:11:00

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

What is the meaning to life?


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


Programming Knowledge
None

Other Communitys
Sythe

How Long have You Played Runescape
4 Years

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

I came to this community a leecher i would say, 2 years ago? I used SCAR 2.03 and SB100's powercutter/miner/whatever (i think i still have it on my moms laptop) I didnt want to be a leecher but i never bothered to learn and it was just over my head. Now i came back out of boredom and have been entertained to the fullest, the community here is great and i enjoy every second of it :D I started learning from WhoCares' tuts which helped me a lot just to get baisic functions, Waddo has been my biggest helper and i have annoyed him thoroughly i am sure. I applied a few weeks ago and was denied :( but i became a better scripter because of it and because of ya'lls critiquing (if thats how its spelled) and advise, i would like to thank Dan's The Man in particular, although he voted no his comments did me a world of good and i am hoping to impress him this time around :)

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


program SirlaughsalotsBirdBuyer;
{.include SRL/SRL/misc/SMART.scar}
{.include SRL/SRL.Scar}


{Setup}
Const
SmartWorld='World22';//Just replace the numbers with the world you want but do not space, should be 'world99' not 'world 99'
Signed=True;//True=Unsigned False=Signed
LoadsBeforeLogout=10;{Will do a Random Range of Loadsbeforelogout+LoadsBeforeLogout-5 to LoadsBeforeLogout-LoadsBeforeLogout+5
If you want to change go to line 136}
BreakTime=15; //In minutes
RandomBreak=5;//In minutes, makes a range of + or - BreakTime
Joke=true;//just a fun thing, when it does the proggy it also does a joke =D
GoToSleep=True;//sleep every once in a while determined by RunTimeBeforeSleep
RunTimeBeforeSleep=180;//In Minutes
TimeToSleep=60;//In Minutes
Pin='0000';//if it has a pin fill this out :)
SrlStatsID='';//Fill out ;)
SrlStatsPass='';//dont leech wewt!

Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
Players[0].Integers[0] := 100;//Loads before this player is inactive
end;
{End Setup}

Var
x, y, counter, H, M, S, BH, BM, BS, SH, SM, SS, TSH, TSM, TSS, counter2, i, RawBirdMeat, Loads, BirdsBanked, Marky : Integer;
GPUsed, EnterAmount, CurrentLoads, TotalBreakTime, GPToCarry, LoadBeforeLogout, playersused : Integer;
TimeBreaking, TimeGettingBirds, Sleeps, SleepyTime, TotalTimeSleeping, GPRemaining, GPRemaining2 : Integer;
NeedGP : Boolean;

Label
BeginOfMainLoop;
Label
GoToBreak;

{*******************************************************************************
By : Sirlaughsalot,kinda, got it from a tut but since the new smart i updated myself
Description : Sets up S.M.A.R.T.
*******************************************************************************}
procedure SetupSmart;
begin
SmartSetup(SmartWorld, False, Signed, False);
ClearDebug;
WriteLn('Setting up Smart! Chill out man!');
Wait(10000 + random(5000));
SetTargetDC(SmartGetDC);
while not(SmartActive) do Wait(100);
end;

{*******************************************************************************
By : Sirlaughsalot
Description : Does signature and sets some variables
*******************************************************************************}
Procedure Intro;
begin
ClearDebug;
Writeln('SSSSSSSS IIIIIII RRRRRRR L AA U U GGGGGGG H H SSSSSSSS AA L OOOOO TTTTTTT """ SSSSSSSS');
Wait(300);
Writeln('SS III RR R L AAAA U U GG H H SS AAAA L OO OO T "" SS');
Wait(300);
Writeln('SSSSSSSS III RR RR L AA AA U U G GGGG HHHHH SSSSSSSS AA AA L OO OO T " SSSSSSSS');
Wait(300);
Writeln(' SSS III RR R L AAAAAAAA U U G GG H H SSS AAAAAAAA L OO OO T SSS');
Wait(300);
Writeln('SSSSSSSS IIIIIII RR R LLLLL AA AA UUUUU GGGGGGG H H SSSSSSSS AA AA LLLLL OOOOO T SSSSSSSS');
Wait(500);
ClearDebug;
Writeln('BBBBBBBB IIIIIII RRRRRRR DDDDD');
Wait(300);
Writeln('BB BBB III RR R D DD');
wait(300);
Writeln('BB BB III RR R D DD');
Wait(300);
Writeln('BBBBBBBB III RR RR D DD');
Wait(300);
Writeln('BB BB III RR R D DD');
Wait(300);
Writeln('BB BBB III RR R D DD');
Wait(300);
Writeln('BBBBBBBB IIIIIII RR R DDDD');
Wait(500);
ClearDebug;
Writeln('BBBBBBBB U U Y Y EEEEE RRRRRRR');
Wait(300);
Writeln('BB BBB U U Y Y E RR R');
Wait(300);
Writeln('BB BB U U Y Y E RR R');
Wait(300);
Writeln('BBBBBBBB U U YY EEE RR RR');
Wait(300);
Writeln('BB BB U U YY E RR R');
Wait(300);
Writeln('BB BBB U U YY E RR R');
Wait(300);
Writeln('BBBBBBBB UUUUU YY EEEEE RR R');
Wait(500);
ClearDebug;
NeedGP:=True;
LoadBeforeLogout:=RandomRange(LoadsBeforeLogout+LoadsBeforeLogout-5,LoadsBeforeLogout+LoadsBeforeLogout+5);
SRLID:=SRLStatsID;
SRLPassword:=SRLStatsPass;
if (SRLID='') or (SRLPassword='') then
begin
WriteLn('Input SRLID/Pass, please dont leech :)');
TerminateScript;
end;
end;

{*******************************************************************************
By : Sirlaughsalot
Description : Handles Randoms...
*******************************************************************************}
Procedure Randoms;
begin
if not loggedin then exit;
FindNormalRandoms;
if FindFight then
RunAway('E',True,1,15000+random(15000));
end;

{*******************************************************************************
By : Sirlaughsalot
Description : Tells jokes with the progress report
*******************************************************************************}
Procedure Jokes;
begin
if Joke=True then
case random (11) of
0:Writeln('The sooner you fall behind the more time youll have to catch up.');
1:Writeln('There are 3 kinds of people: those who can count & those who cant. ');
2:Writeln('Time is the best teacher; unfortunately it kills all of its students. ');
3:Writeln('Time is what keeps everything from happening at once.');
4:Writeln('99 percent of lawyers give the rest a bad name. ');
5:Writeln('A diplomat is someone who can tell you to go to hell in such a way that you will look forward to the trip. ');
6:Writeln('A flashlight is a case for holding dead batteries. ');
7:Writeln('Never go to bed angry, stay awake and plot your revenge.');
8:Writeln('Always remember youre unique, just like everyone else.');
9:Writeln('Artificial Intelligence usually beats real stupidity. ');
10:Writeln('Assassins do it from behind.');
end;
end;

{*******************************************************************************
By : Sirlaughsalot, with ACA v2
Description : Gets the mini map pool color
*******************************************************************************}
function MiniMapPoolColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.23, 1.35);
if not (FindColorsTolerance(arP, 11380375, MSX1, MSY1, MSX2, MSY2, 5)) 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 >= 28.36) and (X <= 40.34) and (Y >= 31.45) and (Y <= 43.19) and (Z >= 37.92) and (Z <= 49.40) then
begin
Result := arC[i];
Writeln('Mini Map Pool Color = ' + 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;

{*******************************************************************************
By : Sirlaughsalot, Useing ACA v2
Description : Finds the pool edge color
*******************************************************************************}
function PoolColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.23, 1.35);
if not (FindColorsTolerance(arP, 11380375, MSX1, MSY1, MSX2, MSY2, 5)) 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 >= 28.36) and (X <= 40.34) and (Y >= 31.45) and (Y <= 43.19) and (Z >= 37.92) and (Z <= 49.40) then
begin
Result := arC[i];
Writeln('Pool Edge Color = ' + 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;

{*******************************************************************************
By : SirLaughsalot, with thanks to Waddo for his help with DTM's
Description : Loads a DTM and Bitmap
*******************************************************************************}
Procedure LoadStuff;
begin
RawBirdMeat:=DTMFromString('78DA635CCDC0C0C0C3C8800C16373732E8008' +
'540A2FF8180711D90C18CAA06220B2381F47620C145841A41026A' +
'D6020911026A1601097EFC6A00678D0A4B');
EnterAmount := BitmapFromString(88, 10, 'beNq1VkFOAzEM7P8fk' +
'Qt7of8AIZYHtKiHPoUUFzOd8XhbJCprlXW8SWZsT7rb6e/8sT+vy3' +
'ye3p/RLn5w0ivZ59syzc3O9XGWxmQZoM6w4+uTfoWRGKznjGdiV9Q' +
'6juAG4KM2V6bVGghgw6FWTtSTKNSZYOkAN9lfl//gwdXSPTxMjH0x' +
'lKXV8+DSgX7igYhyuFzjuNeehO+eGoeXizkSnH+Th2QjgkkxiIcmO' +
'LGgs6wf/Uq3oN1pNsEiLh33KAhCmfcIc7tEa6O84FKouqoGegbKVD' +
'qr3WdTjPJUk5mSB4dirp+dRcm9h2EtJ8dDXivJRtZGmSw9drk7KtU' +
'mD804Ng0qiAc6j8nIb7spHLpZonKu6rEWoqQ8IMxNLIj9UR5QT6hD' +
'9X7UFTCYuG14yDHOJuQ/85BjLG/HFcWgnKouuXxRPZP8UkmoxEU8/' +
'RUpv3J9IRI3frp70PmFq+Gk8vr6Be1sacQ=');
end;

{*******************************************************************************
By : Sirlaughsalot
Description : Writes the progress report
*******************************************************************************}
Procedure ProgressReport;
begin
ClearDebug;
Writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
Writeln(Padr('||Script By Sirlaughsalot',75)+'||');
Writeln(Padr('||'+Players[CurrentPlayer].Name+' is the current player',75)+'||')
Writeln(Padr('||Birds Banked '+IntToStr(BirdsBanked),75)+'||');
Writeln(Padr('||'+IntToStr(Loads)+' Loads Done',75)+'||');
Writeln(Padr('||'+IntToStr(GPUsed)+' Gp used',75)+'||');
Writeln(Padr('||Ran For '+TimeRunning,75)+'||');
ConvertTime(TotalBreakTime,BH,BM,BS);
Writeln(Padr('||Took Breaks Totalling To '+IntToStr(BH)+' Hours '+IntToStr(BM)+' Minutes and '+IntToStr(BS)+' Seconds',75)+'||');
ConvertTime(TotalTimeSleeping,TSH,TSM,TSS);
Writeln(Padr('||Slept '+IntToStr(Sleeps)+' Times for a total of '+IntToStr(TSH)+' Hours '+IntToStr(TSM)+' Minutes and '+IntToStr(TSS)+' Seconds',75)+'||');
TimeGettingBirds:=GetTimeRunning-(TotalBreakTime+SleepyTime);
ConvertTime(TimeGettingBirds,H,M,S);
Writeln(Padr('||Collected Birds '+IntToStr(H)+' Hours '+IntToStr(M)+' Minutes and '+IntToStr(S)+' Seconds',75)+'||');
Writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
Writeln('');
Writeln('~~~~~~~~~~~~~~~~~~~~~~~~');
Writeln('~Post this or be EATEN!~');
Writeln('~~~~~~~~~~~~~~~~~~~~~~~~');
SRLRandomsReport;
end;

{*******************************************************************************
By : Sirlaughsalot
Description : Walks Into Oo'glog bank using symbol clicking =/
*******************************************************************************}
Procedure WalktoBank;
begin
if not loggedin then exit;
Status('Walking to the bank');
Counter:=0;
repeat
Counter:=Counter+1;
SymbolAccuracy:=0.2;
if FindSymbol(x,y,'Bank') then
begin
Randoms;
Mouse(x,y,2,2,true);
Randoms;
end;
until (flag) or (counter>=100);
if (counter>100) then
begin
LogOut;
Status('Could not find the bank symbol')
Players[CurrentPlayer].Active:=False;
exit;
end;
end;

{*******************************************************************************
By : Sirlaughsalot
Description : Logs in player and sets the player up
*******************************************************************************}
Procedure Login;
begin
Status('Logging in...');
Writeln('Thanks for choosing SirLaughsALots Bird Buyer, you will be making exorbinant amounts of money shortly');
if not loggedin then
begin
ClearDebug;
ProgressReport;
LoginPlayer;
end;
if LoggedIn then
begin
SetAngle(true);
SetChat('off',1);
SetChat('off',2);
SetChat('on',3);
SetChat('on',4);
SetChat('on',5);
SetRun(true);
MakeCompass ('n');
end;
end;

{*******************************************************************************
By : SirLaughsALot
Description : Opens Oo'glog Bank With TPA's
*******************************************************************************}
Procedure OpenAccount;
var
BankerTPA : Array of TPoint;
SplitBanker : T2DPointArray;
K : Integer;
Label
Open;
begin
if not loggedin then exit;
Open:
Flag;
Status('Opening bank account')
Counter:=0;
Counter2:=0;
repeat
Counter:=Counter+1;
FindColorsSpiralTolerance(x,y,BankerTPA,8237752,MSx1,MSy1,MSx2,MSy2,2);
begin
SplitBanker:=SplitTPA(BankerTPA,1);
for K:=0 to High(SplitBanker) do
if MiddleTPAEX(SplitBanker[K],x,y) then
begin
if BankScreen then Break;
MMouse(x,y,5,5);
FTWait(1);
GetUpText;
If isuptext('Bank booth') then
begin
mouse(x,y,5,5,false);
Wait(300+random(300));
ChooseOption('uickly');
Flag;
Wait(700+random(500));
end;
end;
end;
until (BankScreen) or (PinScreen) or (Counter>=20);
if Counter>=20 then
begin
Status('Could not find the Bank Booth, Logging out...');
Logout;
Wait(1000+RandomRange(1000*randomRange(1,10),10000*RandomRange(1,10)));
Login;
GameTab(4);
WalkToBank;
Counter2:=Counter2+1;
if Counter2>3 then
begin
Logout;
Status('Could not find the banker');
Players[CurrentPlayer].Active:=False;
exit;
end;
goto Open;
end;
if PinScreen then
InPin(Pin);
end;

{*******************************************************************************
By : SirLaughsALot
Description : Withdraw's GP from the first Bank Slot, if it doesnt withdraw the
right amount, deposits and re-withdraws
*******************************************************************************}
Procedure WithdrawGps;
begin
if not loggedin then exit;
GPToCarry:=LoadBeforeLogout*17*27+17;
if NeedGP and BankScreen then
begin
Status('Withdrawing Gp');
Counter:=0;
if not(CoinAmount('inv')=GPToCarry) then
repeat
Counter:=Counter+1;
FixBank;
DepositAll;
Withdraw(1,1,GPToCarry);
Wait(1500+random(500));
until (Counter>=10) or (CoinAmount('inv')=GPToCarry);
if Counter>10 then
begin
Writeln('Something is seriously wrong...');
Writeln('Couldnt get GP') ;
CloseBank;
Logout;
Players[CurrentPlayer].Active:=False;
exit;
end;
if CoinAmount('inv')=GpToCarry then
NeedGP:=False;
end;
if not BankScreen then
OpenAccount;
end;

{*******************************************************************************
By : SirLaughsALot
Description : Walks To the Oo'glog food store useing symbol clicking
*******************************************************************************}
Procedure WalktoStore;
begin
if not loggedin then exit;
Status('Trying to walk to the store');
Counter:=0;
if not RadialWalk(195836,0,45,65,1,1) then
repeat
Writeln('Couldnt find store useing radialwalk trying symbol')
Counter:=Counter+1;
if findsymbol(x,y,'food store') then
begin
mouse (x,y,2,2,true);
FTWait(1);
end;
until (flag) or (Counter>=10);
if counter>=10 then
begin
CloseBank;
Writeln('Couldnt find the store symbol')
Logout;
ProgressReport;
Players[CurrentPlayer].Active:=False;
exit;
end;
end;

{*******************************************************************************
By : SirLaughsAlot
Description : Trades With Chargurr to buy the birds
*******************************************************************************}
Procedure TradeWithDaOgre;
var
ChargurrTPA : Array of TPoint;
SplitChargurr : T2DPointArray;
K : Integer;
begin
if not loggedin then exit;
Counter:=0;
repeat
FindColorsSpiralTolerance(x,y,ChargurrTPA,15132905,MSx1,MSy1,MSx2,MSy2,5);
begin
SplitChargurr:=SplitTPA(ChargurrTPA,1);
for K:=0 to High(SplitChargurr) do
if MiddleTPAEX(SplitChargurr[K],x,y) then
begin
if ShopScreen then Break;
MMouse(x,y,5,5);
FTWait(2);
GetUpText;
if isuptext('hargurr') then
begin
Mouse(x,y,4,0,False);
FTWait(2);
ChooseOption('rade');
FTwait(2);
end;
end;
end;
until (ShopScreen) or (Counter>=50);
if Counter>=50 then
repeat
begin
Counter:=Counter+1;
MakeCompass('E');
Randoms;
SetAngle(False);
FindColorsSpiralTolerance(x,y,ChargurrTPA,15132905,MSx1,MSy1,MSx2,MSy2, 10);
begin
SplitChargurr:=SplitTPA(ChargurrTPA,2);
for K:=0 to High(SplitChargurr) do
if MiddleTPAEX(SplitChargurr[K],x,y) then
begin
if ShopScreen then Break;
mmouse(x,y,5,5);
Wait(600+random(300));
end;
end;
if IsUpText('hargurr') then
begin
if ShopScreen then Break;
Mouse(x,y,4,0,False);
Wait(500+random(700));
ChooseOption('rade')
MakeCompass('N');
Wait (700+random(400));
end;
end;
until (ShopScreen) or (Counter>=100);
if Counter>=100 then
begin
Logout;
ProgressReport;
Writeln('Couldnt Find Chargurr')
Players[CurrentPlayer].Active:=False;
exit;
end;
end;

{*******************************************************************************
By : SirLaughsAlot
Description : Buys the Raw Bird Meat
*******************************************************************************}

Procedure BuyBirds;
Var
GP2Use : Integer;
begin
if not loggedin then exit;
GP2Use:=28+random(72);
if ShopScreen then
begin
Status('Buying Birds');
Counter:=0;
repeat
Counter:=Counter+1;
if FindDTM(RawBirdMeat,x,y,MSx1,MSy1,MSx2,MSy2) then
begin
repeat
Counter:=Counter+1;
mouse(x,y,5,5,false);
ChooseOption('X');
Wait (1000+random(400));
until (FindBitmapIn(EnterAmount,x,y,MCx1,MCy1,MCx2,MCy2)) or (Counter>=5)
if FindBitmapIn(EnterAmount,x,y,MCx1,MCy1,MCx2,MCy2) then
begin
typesend(IntToStr(GP2use));
Wait(700+random(400));
Status('Bought the birds');
end;
end;
until (invfull) or (counter>=5);
if Counter>=5 then
begin
CloseWindow;
Writeln('Couldnt find raw bird meat')
Logout;
ProgressReport;
Players[CurrentPlayer].Active:=False;
exit;
end;
end;
end;

{*******************************************************************************
By : SirLaughsAlot
Description : Takes a break, are these names simple enough for you?
*******************************************************************************}

Procedure TakeABreak;
begin
if not loggedin then exit;
TimeBreaking:=RandomRange(BreakTime*60000+RandomBreak*60000,BreakTime*60000-RandomBreak*60000);
Status ('Taking a break');
CloseBank;
Logout;
ConvertTime(TimeBreaking,H,M,S);
Writeln('Breaking '+IntToStr(H)+' Hours '+IntToStr(M)+' Minutes '+IntToStr(S)+' Seconds');
Wait(TimeBreaking);
Login;
TotalBreakTime:=TimeBreaking+TotalBreakTime;
ConvertTime(TotalBreakTime,H,M,S);
Status('Done with break');
WalkToBank;
OpenAccount;
CurrentLoads:=0;
NeedGP:=True;
LoadBeforeLogout:=RandomRange(LoadsBeforeLogout+LoadsBeforeLogout-5,LoadsBeforeLogout+LoadsBeforeLogout+5);
end;


{*******************************************************************************
By : SirLaughsAlot
Description : Banks the raw bird meat and increases variables, seriously are they simple enough?
*******************************************************************************}

Procedure BankBird;
begin
if not loggedin then exit;
Counter:=0;
Loads:=Loads+1;
ReportVars[1] := Loads;
BirdsBanked:=BirdsBanked+CountItems(RawBirdMeat,'dtm',[0]);
ReportVars[0] := BirdsBanked;
GPUsed:=(GPRemaining2-GPRemaining)+GPUsed;
ReportVars[2] := GPUsed;
repeat
Counter:=Counter+1;
Status('Banking Birds');
if FindDTM(RawBirdMeat,x,y,MIx1,MIy1,MIx2,MIy2) then
begin
mouse(x,y,5,5,False);
ChooseOption('All');
Wait(500+random(400));
end;
until not (FindDTM(RawBirdMeat,x,y,MIx1,MIy1,MIx2,MIy2)) or (Counter>=10);
if counter>=10 then
begin
CloseBank;
Writeln('Couldnt deposit raw bird meat')
Logout;
ProgressReport;
Players[CurrentPlayer].Active:=False;
exit;
end;
end;

{*******************************************************************************
By : SirLaughsAlot
Description : Walks to and gets into the infinite run pool, doesnt work 100% yet,
but you should at least get into the pool
*******************************************************************************}
Procedure WalkToPool;
begin
if not loggedin then exit;
Status('Trying to walk to the store');
Counter:=0;
SymbolAccuracy:=0.2;
If FindSymbol(x,y,'Food Store') then
begin
mouse(x,y,2,2,true);
FTWait(1);
Flag;
end;
if not RadialWalk(MiniMapPoolColor,336,354,40,1,-1) then
begin
Writeln('Couldnt find pool color');
WalkToBank;
exit;
end;
repeat
Counter:=Counter+1;
if FindColorSpiralTolerance(x,y,PoolColor,MSx1,MSy1,MSx2,MSy2,20) then
begin
mmouse(x,y,5,5);
GetUpText;
if isuptext('ocks') then
begin
mouse(x,y,5,5,false);
FTWait(3);
ChooseOption('limb-over');
Flag;
Wait(1500+random(700));
end;
end;
until (FindBlackChatMessage('ou jump into the limpid')) or (counter>=10);
if counter>=30 then
begin
writeln('Couldnt find the pool');
WalkToStore;
WalkToBank;
exit;
end;
if FindBlackChatMessage('ou jump into the limpid') then
begin
Counter:=0;
repeat
begin
Counter:=Counter+1;
mmouse(301,182,5,5);
GetMousePos(x,y);
GetUpText;
if isuptext('ocks') then
begin
mouse(x,y,5,5,false);
FTWait(3);
ChooseOption('limb-over');
FTwait(3);
end;
if not isuptext('ocks') then
begin
mmouse(243,235,5,5);
GetMousePos(x,y);
GetUpText;
if isuptext('ocks') then
begin
mouse(x,y,5,5,false);
FTWait(3);
ChooseOption('limb-over');
FTWait(3);
end;
end;
end;
until (FindBlackChatMessage('ou feel energised')) or (Counter>=10);
end;
if FindBlackChatMessage('ou feel energised') then
begin
WalkToStore;
WalkToBank;
exit;
end;
if Counter>=10 then
begin
Logout;
Writeln('Couldnt get out of the energy pool')
ProgressReport;
Players[CurrentPlayer].Active:=False;
exit;
end;
end;

{*******************************************************************************
By : SirLaughsAlot
Description : No, i am not giving away things, this frees the DTM and Bitmap
*******************************************************************************}
Procedure FreeStuff;
begin
FreeDTM(RawBirdMeat);
FreeBitmap(EnterAmount);
end;

begin
Counter:=0;
i:=0;
SetUpSRL;
SetupSMART;
ScriptID :='882';
DeclarePlayers;
Intro;
ActivateClient;
MarkTime(marky);
BeginOfMainLoop:
if not LoggedIn then
begin
Login;
OpenAccount;
end;
Disguise('Running');
CurrentLoads:=CurrentLoads+1;
i:=i+1;
LoadStuff;
WithdrawGps;
Randoms;
WalkToStore;
Randoms;
TradeWithDaOgre;
Randoms;
GPRemaining2:=CoinAmount('inv');
BuyBirds;
GPRemaining:=CoinAmount('inv');
WalktoBank;
Randoms;
OpenAccount;
BankBird;
ProgressReport;
FreeStuff;
jokes;
if not loggedin then
begin
NextPlayer(Players[CurrentPlayer].Active);
PlayersUsed:=PlayersUsed+1;
end;
if i>=Players[CurrentPlayer].integers[0] then
begin
PlayersUsed:=PlayersUsed+1;
CloseBank;
Logout;
Players[CurrentPlayer].Active:=False;
NextPlayer(Players[CurrentPlayer].Active);
end;
if PlayersUsed=HowManyPlayers then
begin
Status('Ran out of players');
ProgressReport;
Status('About to terminate script opening web page');
OpenWebPage('http://www.villavu.com/forum/showthread.php?t=28457');
TerminateScript;
end;
if (TimeFromMark(Marky)>=RunTimeBeforeSleep*60000+RandomRange(-500000,500000)) and (GoToSleep=True) then
begin
SleepyTime:=(TimeToSleep*60000)+RandomRange(1000000,2000000);
ConvertTime(SleepyTime,SH,SM,SS);
TotalTimeSleeping:=SleepyTime+TotalTimeSleeping;
Writeln('Sleeping '+IntToStr(SH)+' Hours '+IntToStr(SM)+' Minutes and '+IntToStr(SS)+' Seconds');
Status('Sleeping');
Disguise('Sleeping');
Wait(SleepyTime);
Login;
OpenAccount;
MarkTime(Marky);
Sleeps:=Sleeps+1;
goto BeginOfMainLoop;
end;
if CurrentLoads>=LoadBeforeLogout then
begin
Status('Taking a break');
Writeln('Taking a break');
if CoinAmount('inv')=0 then
goto GoToBreak;
end;
goto BeginOfMainLoop;
GoToBreak:
TakeABreak;
goto BeginOfMainLoop;
end.

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

Scaper

2008-08-15 19:17:47

did'nt you apply with this last time and got denied??

what changes have you made etc

*haven't voted yet*@

sirlaughsalot

2008-08-15 19:37:36

Yes, I added TPA's, Multiplayer, i dont use as many autocolor functions, failsafes are better, and changed the main way i walked to the store.

Edit: I can post the other if you would like to compare.

Naike

2008-08-15 19:43:46

I would like to see the other… great way to see what you learned since last time :)

sirlaughsalot

2008-08-15 20:06:46


{Sirlaughsalot's Bird Buyer Version 0.5.5 Non-SMART}
{Thanks to Waddo,Iroki, and Drizzt for helping my stupid ass}
{Setup are lines 42-64}
{Put GP in the 1st slot of the Bank}

{New Things]
[Autocolor]
[Accurate Progress Report]
[Added Jokes]
[More Randomization In Break Times and Loads]
[Sets Chats to Public/Private off Clan/Trade/Assist on]
[Withdraws GP to your amount of loads]
[Withdraws GP without fail}

{Old Things]
[Uses DTM's for the BirdMeat, Waddo found out what I was doing wrong...]
[Will Log Out every once in a while for AntiBan, Determined by you, Drizzt helped me with this]
[Dont have to edit anything to use S.M.A.R.T]
[Has a cool Introduction procedure =D]
[Has STANDARDS!!! Amazing huh?]
[Now has progress Report, no reason not to post it!]
[Will open the thread webpage automatically]
[Logs out/back in if it cannot find the bank properly]
[Will pick a random number of birds to buy
[Finds Chargurr well, not as good as it could be]
[Withdraws your gp each time so you dont die with a load of cash]
[AntiRandoms}

{Upcoming Updates]
[Walking to Infinite run pool]
[Calculate how much you earn}



program SirlaughsalotsBirdBuyer;
{.include SRL/SRL.Scar}



{Setup}
Const
LoadsBeforeLogout=10;{Will do a Random Range of Loadsbeforelogout+LoadsBeforeLogout-5 to LoadsBeforeLogout-LoadsBeforeLogout+5
If you want to change go to line 660}
BreakTime=3; //In minutes
RandomBreak=2;//In minutes, makes a range of + or - BreakTime
TimesToRun=1500;
Joke=true;//just a fun thing, when it does the proggy it also does a joke =D
Pin='0000';//if it has a pin fill this out :)
SrlStatsID='';//Fill out ;)
SrlStatsPass='';

Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
end;
{End Setup}

Var
x, y, counter, counter2, i, RawBirdMeat, Loads, BirdsBanked, GPUsed, EnterAmount, CurrentLoads, GPToCarry, LoadBeforeLogout, TimeBreaking : Integer;
NeedGP : Boolean;

Label
BeginOfMainLoop;
Label
GoToBreak;

Procedure Intro;
Begin
ClearDebug;
Writeln('SSSSSSSS IIIIIII RRRRRRR L AA U U GGGGGGG H H SSSSSSSS AA L OOOOO TTTTTTT """ SSSSSSSS')
Wait(300)
Writeln('SS III RR R L AAAA U U GG H H SS AAAA L OO OO T "" SS')
Wait(300)
Writeln('SSSSSSSS III RR RR L AA AA U U G GGGG HHHHH SSSSSSSS AA AA L OO OO T " SSSSSSSS')
Wait(300)
Writeln(' SSS III RR R L AAAAAAAA U U G GG H H SSS AAAAAAAA L OO OO T SSS')
Wait(300)
Writeln('SSSSSSSS IIIIIII RR R LLLLL AA AA UUUUU GGGGGGG H H SSSSSSSS AA AA LLLLL OOOOO T SSSSSSSS')
Wait(500)
ClearDebug;
Writeln('BBBBBBBB IIIIIII RRRRRRR DDDDD')
Wait(300)
Writeln('BB BBB III RR R D DD')
wait(300)
Writeln('BB BB III RR R D DD')
Wait(300)
Writeln('BBBBBBBB III RR RR D DD')
Wait(300)
Writeln('BB BB III RR R D DD')
Wait(300)
Writeln('BB BBB III RR R D DD')
Wait(300)
Writeln('BBBBBBBB IIIIIII RR R DDDD')
Wait(500)
ClearDebug;
Writeln('BBBBBBBB U U Y Y EEEEE RRRRRRR')
Wait(300)
Writeln('BB BBB U U Y Y E RR R')
Wait(300)
Writeln('BB BB U U Y Y E RR R')
Wait(300)
Writeln('BBBBBBBB U U YY EEE RR RR')
Wait(300)
Writeln('BB BB U U YY E RR R')
Wait(300)
Writeln('BB BBB U U YY E RR R')
Wait(300)
Writeln('BBBBBBBB UUUUU YY EEEEE RR R')
Wait(500)
ClearDebug;
NeedGP:=True;
LoadBeforeLogout:=RandomRange(LoadsBeforeLogout+LoadsBeforeLogout-5,LoadsBeforeLogout+LoadsBeforeLogout+5);
SRLID:=SRLStatsID;
SRLPassword:=SRLStatsPass;
If (SRLID='') or (SRLPassword='') then
begin
WriteLn('Input SRLID/Pass')
TerminateScript;
end;
end;

Procedure Randoms;
begin
FindNormalRandoms;
If FindFight Then RunAway('E',True,1,15000+random(1500))
end;

Procedure Jokes;
Begin
If Joke=True then
begin
case random (10) of
0:Writeln('The sooner you fall behind the more time youll have to catch up.');

1:Writeln('There are 3 kinds of people: those who can count & those who cant. ');

2:Writeln('Time is the best teacher; unfortunately it kills all of its students. ');

3:Writeln('Time is what keeps everything from happening at once.');

4:Writeln('99 percent of lawyers give the rest a bad name. ');

5:Writeln('A diplomat is someone who can tell you to go to hell in such a way that you will look forward to the trip. ');

6:Writeln('A flashlight is a case for holding dead batteries. ');

7:Writeln('All men are idiots, and I married their King. ');

8:Writeln('Always remember youre unique, just like everyone else.');

9:Writeln('Artificial Intelligence usually beats real stupidity. ');

10:Writeln('Assassins do it from behind.');
end;
end;
end;


{*********************************
******Made by me with ACA v2*****]
*Thanks to Neilsie95 and Sumilion*
******Finds Chargurr's color******
**********************************}

function Chargurr: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.00, 0.60);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 14869990, MSX1, MSY1, MSX2, MSY2, 1);
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 >= 72.90) and (X <= 75.87) and (Y >= 76.79) and (Y <= 79.93) and (Z >= 81.47) and (Z <= 84.83) 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;

function MiniMapPoolColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.23, 1.35);

if not (FindColorsTolerance(arP, 11380375, MSX1, MSY1, MSX2, MSY2, 5)) 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 >= 28.36) and (X <= 40.34) and (Y >= 31.45) and (Y <= 43.19) and (Z >= 37.92) and (Z <= 49.40) 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;


{*********************************
******Made by me with ACA v2*****]
*Thanks to Neilsie95 and Sumilion*
*****Finds the Run Pool color*****
**********************************}
function PoolColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.23, 1.35);

if not (FindColorsTolerance(arP, 11380375, MSX1, MSY1, MSX2, MSY2, 5)) 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 >= 28.36) and (X <= 40.34) and (Y >= 31.45) and (Y <= 43.19) and (Z >= 37.92) and (Z <= 49.40) 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;

{*********************************
******Made by me with ACA v2*****]
*Thanks to Neilsie95 and Sumilion*
******Finds the Banker color******
**********************************}
function BankerColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.00, 0.10);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 10000269, MSX1, MSY1, MSX2, MSY2, 2);
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 >= 26.07) and (X <= 29.42) and (Y >= 28.30) and (Y <= 31.88) and (Z >= 32.08) and (Z <= 36.06) 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;


{*********************************
************Made by me************
Thanks to Waddo for help with DTMs
******Loads DTMs and Bitmaps******
**********************************}
Procedure LoadStuff;
begin
RawBirdMeat:=DTMFromString('78DA635CCDC0C0C0C3C8800C16373732E8008' +
'540A2FF8180711D90C18CAA06220B2381F47620C145841A41026A' +
'D6020911026A1601097EFC6A00678D0A4B');
EnterAmount := BitmapFromString(88, 10, 'beNq1VkFOAzEM7P8fk' +
'Qt7of8AIZYHtKiHPoUUFzOd8XhbJCprlXW8SWZsT7rb6e/8sT+vy3' +
'ye3p/RLn5w0ivZ59syzc3O9XGWxmQZoM6w4+uTfoWRGKznjGdiV9Q' +
'6juAG4KM2V6bVGghgw6FWTtSTKNSZYOkAN9lfl//gwdXSPTxMjH0x' +
'lKXV8+DSgX7igYhyuFzjuNeehO+eGoeXizkSnH+Th2QjgkkxiIcmO' +
'LGgs6wf/Uq3oN1pNsEiLh33KAhCmfcIc7tEa6O84FKouqoGegbKVD' +
'qr3WdTjPJUk5mSB4dirp+dRcm9h2EtJ8dDXivJRtZGmSw9drk7KtU' +
'mD804Ng0qiAc6j8nIb7spHLpZonKu6rEWoqQ8IMxNLIj9UR5QT6hD' +
'9X7UFTCYuG14yDHOJuQ/85BjLG/HFcWgnKouuXxRPZP8UkmoxEU8/' +
'RUpv3J9IRI3frp70PmFq+Gk8vr6Be1sacQ=');
end;

{*********************************
************Made by me************
******Prints and sends proggy*****
**********************************}
Procedure ProgressReport;
begin
ClearDebug;
Writeln('~~~~~~~~~~~~~~~~~~~~~~~~')
Writeln('||Script By Sirlaughsalot')
Writeln('||Birds Banked '+IntToStr(BirdsBanked))
Writeln('||'+IntToStr(Loads)+' Loads Done')
Writeln('||'+IntToStr(GPUsed)+' Gp used')
Writeln('|| Ran For '+TimeRunning)
Writeln('~~~~~~~~~~~~~~~~~~~~~~~~')
Writeln('')
Writeln('~~~~~~~~~~~~~~~~~~~~~~~~')
Writeln('~Post this or be EATEN!~')
Writeln('~~~~~~~~~~~~~~~~~~~~~~~~')
SRLRandomsReport;
end;

{*********************************
************Made by me************
******Walks to oo'glog bank*******
**********************************}
Procedure WalktoBank;
begin
Status('Walking to the bank')
Counter:=0
Repeat
Counter:=Counter+1
SymbolAccuracy:=0.2;
begin
If FindSymbol(x,y,'Bank') then
begin
Randoms;
mouse (x,y,2,2,true);
Randoms;
end;
end;
until (flag) or (counter>=100)
if (counter>100) then
begin
LogOut;
Status('Could not find the bank')
ProgressReport;
Status('About to terminate script opening web page')
OpenWebPage('http://www.villavu.com/forum/showthread.php?t=28457')
exit;
end;
end;

procedure Login;
begin
Status('Logging in...')
if not loggedin then
begin
ClearDebug;
LoginPlayer;
end;
Writeln('Thanks for choosing SirLaughsALots Bird Buyer, you will be making exorbinant amounts of money shortly')
If LoggedIn then
begin
SetAngle(true)
SetChat('off',1)
SetChat('off',2)
SetChat('on',3)
SetChat('on',4)
SetChat('on',5)
SetRun(true);
MakeCompass ('n');
end;
end;

{*********************************
************Made by me************
********Opens oo'glog bank********
**********************************}
Procedure OpenAccount;
begin
Status('Opening bank account')
Counter:=0
Counter2:=0
repeat
Counter2:=Counter2+1
repeat
Counter:=Counter+1
if not (findObj(x,y,'Ogress banker',BankerColor,15)) then
begin
Randoms;
mmouse(x,y,5,5);
getuptext;
end;
if isuptext ('Talk-to Ogress banker') then
begin
GetMousePos(x,y);
FindObj(x,y,'Ogress banker',BankerColor,15);
Mouse(x,y,0,0,False);
FTWait(2)
ChooseOption('Bank')
FTWait(2)
Status('Bank account open')
end;
until (BankScreen) or (PinScreen) or (Counter>=10);
if Counter>=10 then
begin
Status('Could not find the Banker, Logging out...')
Logout;
Login;
end;
until (BankScreen)or (PinScreen) or (counter2>=3)
If PinScreen then
InPin(Pin)
end;

{*********************************
************Made by me************
***********Withdraws GP***********
**********************************}
Procedure WithdrawGps;
begin
GPToCarry:=LoadBeforeLogout*17*27+17
If NeedGP and BankScreen then
begin
Status('Withdrawing Gp')
Counter:=0
begin;
If not(CoinAmount('inv')=GPToCarry) then
repeat
begin
Counter:=Counter+1
FixBank;
DepositAll;
Withdraw (1,1,GPToCarry);
Wait(1500+random(500));
end;
until (Counter>=10) or (CoinAmount('inv')=GPToCarry);
If Counter>10 then
begin
writeln('Something is seriously wrong...')
Writeln('Couldnt get GP')
Writeln('Terminating script')
OpenWebPage('http://www.villavu.com/forum/showthread.php?t=28457');
Logout;
TerminateScript;
end;
if CoinAmount('inv')=GpToCarry then
NeedGP:=False;
end;
end;
If not BankScreen then
OpenAccount;
end;

{*********************************
************Made by me************
******Walks To The Food Store*****
**********************************}
Procedure WalktoStore;
begin
Status('Trying to walk to the store')
Counter:=0
Repeat
Counter:=Counter+1
SymbolAccuracy:=0.7;
If FindSymbol(x,y,'Food Store') then
begin
mouse (x,y,2,2,true);
FTWait(1)
end;
until (flag) or (Counter>=10)
end;

{**************************************
**************Made by me***************
Opens up the trade window with chargurr
***************************************}

Procedure TradeWithDaOgre;
begin
Counter:=0
Repeat
Counter:=Counter+1
if not(FindObjCustom(x,y,['hargurr'],[Chargurr],15)) then
begin
Randoms;
MMouse(x,y,5,5);
Getuptext;
end;
If IsUpText('Talk-to Chargurr') then
begin
Mouse(x,y,0,0,False);
FTWait(2)
ChooseOption('Trade')
FTwait(2)
end;
Until (ShopScreen) or (Counter>=50);
if Counter>=50 then
repeat
begin
Counter:=Counter+1
MakeCompass('E')
Randoms;
SetAngle(False)
if not(FindObjCustom(x,y,['hargurr'],[Chargurr],15)) then
begin
MMouse(x,y,5,5);
Getuptext;
end;
If IsUpText('Talk-to Chargurr') then
begin
Mouse(x,y,4,0,False);
Wait(500+random(700))
While ChooseOption('Trade') do
MakeCompass('N');
Wait (700+random(400))
end;
end;
Until (ShopScreen) or (Counter>=100);
If Counter>=100 then
begin
Logout;
Status('Could not find Chargurr')
ProgressReport;
Status('About to terminate script opening web page')
OpenWebPage('http://www.villavu.com/forum/showthread.php?t=28457')
Writeln('Stopped because SCAR couldnt find Chargurr')
Exit;
end;
end;

{*********************************
************Made by me************
*********Buys RawBirdMeat*********
**********************************}

Procedure BuyBirds;
begin
if ShopScreen then
begin
Status('Buying Birds')
Counter:=0
repeat
Counter:=Counter+1
if FindDTM(RawBirdMeat,x,y,MSx1,MSy1,MSx2,MSy2) then
begin
Repeat
mouse(x,y,5,5,false);
ChooseOption('X');
Wait (1000+random(400))
until FindBitmapIn(EnterAmount,x,y,MCx1,MCy1,MCx2,MCy2)
if FindBitmapIn(EnterAmount,x,y,MCx1,MCy1,MCx2,MCy2) then
begin
Case random(7) of
0: typesend('33');
1: typesend('44');
2: typesend('55');
3: typesend('66');
4: typesend('77');
5: typesend('88');
6: typesend('99');
end;
end;
Wait(700+random(400))
Status('Bought the birds')
end;
until (invfull) or (counter>=5);
end;
end;

{************************************************************
*************************Made by me**************************
******Takes A Break, you catchin on to these names yet?******
*************************************************************}

Procedure TakeABreak;
begin
TimeBreaking:=RandomRange(BreakTime*60000+RandomBreak*60000,BreakTime*60000-RandomBreak*60000)
Status ('Taking a break')
CloseBank;
Logout;
Writeln(IntToStr(TimeBreaking))
Wait(TimeBreaking)
Login;
Status('Done with break')
WalkToBank;
OpenAccount;
CurrentLoads:=0
NeedGP:=True;
LoadBeforeLogout:=RandomRange(LoadsBeforeLogout+LoadsBeforeLogout-5,LoadsBeforeLogout+LoadsBeforeLogout+5);
end;


{*********************************
************Made by me************
********Banks The Birds =)********
**********************************}

Procedure BankBird;
begin
Counter:=0
Repeat
Counter:=Counter+1
Status('Banking Birds')
If FindDTM(RawBirdMeat,x,y,MIx1,MIy1,MIx2,MIy2) then
begin
mouse(x,y,5,5,False);
ChooseOption('All');
Wait(500+random(400))
end;
until not (FindDTM(RawBirdMeat,x,y,MIx1,MIy1,MIx2,MIy2)) or (Counter>=10)
BirdsBanked:=BirdsBanked+28
ReportVars[0] := ReportVars[0] + 28;
Loads:=Loads+1
ReportVars[1] := ReportVars[1] + 1;
GPUsed:=GPUsed+476
ReportVars[2] := ReportVars[2] + 476;
end;


{****************************************
***************Made by me****************
*****Walks To the infinite Run pool******
*****************************************
*****************************************}

Procedure WalkToPool;
begin
Status('Trying to walk to the store')
Counter:=0
SymbolAccuracy:=0.2;
If FindSymbol(x,y,'Food Store') then
begin
mouse(x,y,2,2,true);
FTWait(1);
Flag;
end;
repeat
Counter:=Counter+1
RadialWalk( MiniMapPoolColor , 336, 354, 40, 1, -1);
until (Flag) or (counter>=10)
if counter>=10 then
begin
Writeln('Couldnt find pool color');
WalkToStore;
WalkToBank;
end;
Repeat
Counter:=Counter+1
If FindColorSpiralTolerance(x,y,PoolColor,MSx1,MSy1,MSx2,MSy2,20) then
begin
mmouse(x,y,5,5)
GetUpText;
if isuptext('ocks') then
begin
mouse(x,y,5,5,false)
FTWait(3)
ChooseOption('limb-over')
Flag;
Wait(1500+random(700))
end;
end;
until not (TabExists(4)) or (counter>=30)
if counter>=30 then
begin
writeln('Couldnt find the pool')
Counter:=0;
WalkToStore;
WalkToBank;
end;
If not TabExists(4) then
begin
Counter:=0
Repeat
If FindColorSpiralTolerance(x,y,PoolColor,MSx1,MSy1,MSx2,MSy2,20) then
begin
Counter:=Counter+1
mmouse(x,y,5,5)
GetMousePos(x,y);
GetUpText;
if isuptext('ocks') then
begin
mouse(x,y,5,5,false)
FTWait(3)
ChooseOption('limb-over')
FTwait(3)
end;
end;
until (TabExists(4)) or (Counter>=30)
end;
If Counter>=30 then
begin
Writeln('Couldnt get out of the pool')
exit;
end;
end;

Procedure FreeStuff;
begin
FreeDTM(RawBirdMeat);
FreeBitmap(EnterAmount);
end;

Begin
Counter:=0
i:=0
SetUpSRL;
ScriptID :='882';
DeclarePlayers;
Intro;
ActivateClient;
If not LoggedIn then
begin
Login;
OpenAccount;
end;
If LoggedIn then
begin
BeginOfMainLoop:
inc(CurrentLoads);
inc(i);
LoadStuff;
WithdrawGps;
Randoms;
WalkToStore;
Randoms;
TradeWithDaOgre;
Randoms;
BuyBirds;
WalktoBank;
Randoms;
OpenAccount;
BankBird;
ProgressReport;
FreeStuff;
jokes;
if FindBlackChatMessage('quickening effects') then
begin
WalkToPool;
WalkToStore;
WalkToBank;
end;
If CurrentLoads>=LoadBeforeLogout then
begin
Status('Taking a break')
Writeln('Taking a break')
if CoinAmount('inv')=0 then
goto GoToBreak;
end;
If i>=TimesToRun then
begin
OpenWebPage('http://www.villavu.com/forum/showthread.php?t=28457');
Logout;
exit;
end;
goto BeginOfMainLoop
GoToBreak:
TakeABreak;
GoTo BeginOfMainLoop
end;
end.

There…

In my opinion this new one is TONS better than the last one…

NiCbaZ

2008-08-15 20:51:10

Tis, yes.

skilld u

2008-08-15 20:54:10

yay!

P1nky

2008-08-15 20:59:33

yez zur just keep ur activity up :)

some come and go lol.. i dont wnna give any names :) *cough* GraveDigger Man*COUGH* lol

sirlaughsalot

2008-08-15 21:18:08

Joker, my activity would be lots higher but i was gone for a week for summer camp, then SRL was down, then i went to maryland for a week… I dont think that you were saying it is low but just saying why it is where it is…

boberman

2008-08-15 22:19:55

I'm voting yes, but you script is pretty ugly for me. There are a lot of worthless lines (Telling random jokes) Overall the task shouldn't be extremely hard, and yet the script looks to be longer then my autominer (which also has some worthless lines in it. What can I say, we all do it :D)

But anyways, add some whitespace, possibly make more functions/sub functions. I can't say what rules you should follow for whitespace, but generally unrelated comments should be separated.

You wrote it like this
  if not loggedin then exit;
FindNormalRandoms;
if FindFight then
RunAway('E',True,1,15000+random(15000));

I would do it like this
  if not loggedin then exit;

FindNormalRandoms;

if FindFight then
RunAway('E',True,1,15000+random(15000));

One other thing, Global variables are bad, very bad. and you have a LOT of them. Good programming always tries to minimize this as much as possible.

sirlaughsalot

2008-08-15 22:37:53

From: boberman
I'm voting yes, but you script is pretty ugly for me. There are a lot of worthless lines (Telling random jokes) Overall the task shouldn't be extremely hard, and yet the script looks to be longer then my autominer (which also has some worthless lines in it. What can I say, we all do it :D)

But anyways, add some whitespace, possibly make more functions/sub functions. I can say what rules you should follow for whitespace, but generally unrelated comments should be separated.

You wrote it like this
  if not loggedin then exit;
FindNormalRandoms;
if FindFight then
RunAway('E',True,1,15000+random(15000));

I would do it like this
  if not loggedin then exit;

FindNormalRandoms;

if FindFight then
RunAway('E',True,1,15000+random(15000));

One other thing, Global variables are bad, very bad. and you have a LOT of them. Good programming always tries to minimize this as much as possible.


Okay, i was wondering about the spaces between lines, and why are global vars so bad? use too much memory?

Gu3st...

2008-08-15 22:40:32

I'm almost saying yes without looking at the script, cus i've seen your other scripts and how you are!
Finally you apply! :)

Yep.

Scaper

2008-08-15 23:26:45

yes i see the changes you have made and think you deserve it this time :) hope you stick around when you/if you get members well done i like what i see

JAD

2008-08-15 23:42:00

Yes from me.

Keep laughing a lot! (hah, pun :p)

Daniel

2008-08-15 23:43:35

From: JAD
Yes from me.

Keep laughing a lot! (hah, pun :p)

Heh. You came back :p Good to see you around ;)

sirlaughsalot

2008-08-15 23:43:42

AHAHAHAHAHA! nice pun :p… sweet lots of yeses :D 6-0

drizzt

2008-08-16 00:34:54

i vote yes because the votes were funny
not really, only the last one, yes b/c your gf is hot

Waddo

2008-08-16 05:50:37

Yay you re-applied while I was away and I have a feeling your getting in this time. =p

This my first post since i got back…yes

boberman

2008-08-16 06:47:52

From: sirlaughsalot
Okay, i was wondering about the spaces between lines, and why are global vars so bad? use too much memory?


Global variables are bad because they break encapsulation, and can easily lead to hidden, unintended actions.

For example, say you made a function that uses the global variable blah to store information about your current location. You say "This function is pretty good, I think Ill use it elsewhere" so a you copy it, forgetting you put blah in there. Well, it doesn't work. So you have to go and add blah as a global variable to get it to work. Not so bad I know. But what could be even worse is what if you are already using blah in another function, and it is already global? So now your function WORKS…. Yikes, now blah is being modified by two functions and your really don't know who is in control.

Now imagine you work with a team of developers who, for some reason unknown, find global variables quite acceptable (They would all be without work) Steve writes a function that changes global variable bob, and bob thinks he owns bob and also write a function that modifies bob. Now your bob value becomes completely unreliable and you have a bug that is quite hard to find.

Trust me, in every programming class I have taken global variables are stressed to be bad. One class I took, the teacher told use we would get instant F's on any assignment that uses a global variable. We are much kinder here, and I can see where non-script-essential data could be stored in global variables. But it should be minimized.

sirlaughsalot

2008-08-16 08:15:48

0_0 wow long explination but that makes sense lol… but dont you have to have a global variable if you expect it to carry over for your proggy?

boberman

2008-08-16 09:20:37

From: sirlaughsalot
0_0 wow long explination but that makes sense lol… but dont you have to have a global variable if you expect it to carry over for your proggy?


oh wow, I just noticed you didn't have any parameters for your functions. No you don't have to. When you declare a function/procedure that needs a variable (90% of them) you do it like this

function blah(blah, blah2 : integer; blah3, blah4 : extended) : boolean;

Then you just use the blahs as if they where declared in the var section. This only passes a copy of the data, so if you add one to it it doesn't actually change the value of it in the function that called it. If you want to do that then the syntax is this

function yelp(var yikes : integer; notyikes :extended) : boolean;

notice the var. That basically means the actual variable is going in and not just a copy. This is considered destructive and should be done with caution.

sirlaughsalot

2008-08-16 23:23:28

Okay, I will remember that :D thanks… 11-0 :D wewt, lets get the votes in i want 100% lol… actually i just want in haha!

BobboHobbo

2008-08-16 23:54:31

O forgot to say, i voted Yes. Great script.

sirlaughsalot

2008-08-17 06:27:01

Why, thank you bobbo, i tried very hard to make this SRL-Member-Worthy :D

Lee Lok Hin

2008-08-17 07:01:31

I personally don't like it. It's still too simple IMO, too borderline, but looking on your activity, and, you seem to be a nice guy, so..

And i'd hate to spoil the 100%

YES

Waddo

2008-08-17 08:24:05

yes you do there is probably away around it but it would be harder

EvilChicken!

2008-08-17 08:33:03

Well, I wasn't really sure until I saw your usage of TPAs ect.
You also have failsafes, good.

I hope you enjoy being a SRL member, and produce alot of leetsauce scripts :)

sirlaughsalot

2008-08-17 10:35:05

^_^ i cant wait! so, how many more people until i get the rank? sure people can have their voices but last time 25 voted and i was done… and i have over half that so…

Wizzup?

2008-08-17 17:13:13

In! Welcome!
Just in time… ;)