Blumblebee
2008-09-24 17:50:56
<!– BEGIN TEMPLATE: formanswers –>
blumblebee - SRL Member Application Form
blumblebee
What is the meaning to life?
You only got one, make the best it.
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
actionscript 2.0
Other Communitys
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 have been scripting for about 3 months now, and I will continue to do so for the months to come. I am a quick learner, and have put many hours into learning to/writing scripts. I hope this time my script is advanced enough for me to receive srl member status. Thank you for taking time to analyze my script, and I hope you find it acceptable,
-Blumblebee
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
——————————————————
<!– END TEMPLATE: formanswers –>
blumblebee - SRL Member Application Form
blumblebee
What is the meaning to life?
You only got one, make the best it.
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
actionscript 2.0
Other Communitys
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 have been scripting for about 3 months now, and I will continue to do so for the months to come. I am a quick learner, and have put many hours into learning to/writing scripts. I hope this time my script is advanced enough for me to receive srl member status. Thank you for taking time to analyze my script, and I hope you find it acceptable,
-Blumblebee
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
{/----------------------------------------------------------------------------\\
--------------------------------------------------------------------------------
+++++++ --- +++ +++ ---- ---- +++++++ --- ++++++ ------- ++++++ ------
+ + - + + - - - - + + - + - - + -
+ +++ - + + - - - + +++ - +++ ----- ++++ ----
+ + - + + - - + + - + - - + -
+++++++ ------ + + --- --- +++++++ ------ ++++++ ------ ++++++ ------
Presents
--------------------------------------------------------------------------------
{-------------------------Power Chopper/Bank Script-----------------------------}
//----------------------------------------------------------------------------\}
{
_
_______ _ _ |_| _ ___
| | | || |_ | |_ | | _
| | _ _ | || _| | _|_ _ __ __ | |_|| |__ __ ___ ___ __ _ _
| | | || || || || || | | | | |_|/ _|/ _| | | || _ || || _|| _|/ _|| |_|
|_|\_/|_||__|_||_||_||_| |_| |_| \__|\__| |___||_||_||__|| | | | \__||_|
----------------------------------------------------------| |--|_|------------
|/
-------------------------
Designed For Scar 3.15b
----------------------
Rev # 24
--------
Fill Out Declare players and Hit Play
------------------------------------
please Post Bugs/Progress Reports on Thread
-------------------------------------------
Currently Supports Banking In Draynor and PowerChopping Anywhere
----------------------------------------------------------------
More Places to Come, Like EdgeVille Yews
----------------------------------------
Remember To enter Everything Case Sensative so in other words Capitalize shit
----------------------------------------------------------------------------
--Set Ups For Where You Can Chop--
---------------------------------------------------
--Locations Are As Follows--
---------------------------------------------------
'DR' ---Will Chop Willows In Draynor and Bank Them
---------------------------------------------------
'PW' ---Will PowerChop Any Tree As Specified Below
---------------------------------------------------
'SR' ---Will Chop Maples Outside Seers Bank
---------------------------------------------------
'EG' ---Will Chop Yews In EdgeVille
---------------------------------------------------
Remember to Give a Tree Type If Your PowerChopping (In the Const named "tree")
------------------------------------------------------------------------------
}
program MultiTreeChopper;
{.include srl/srl/misc/smart.scar}
{.include srl/srl.scar}
{.include srl/srl/reflection/reflection.scar}
{.include srl/srl/skill/woodcutting.scar}
const
LoadsPerPlayer = 4; //Amounts of loads per player before switching.
World = 81;//World you want to smart to load
Where = 'PW';
Tree = 'willow';//For Powerchopping, valid arguments are normal, oak, or willow
UseReflection = True;//Use Reflection?
var
x, y, GainedLvl, LogDTM, RareTreeDTM, SBankerDTM, Chopped, BankDTM: Integer;
EdgeBankDTM, Done, AxeDTM, Completed, MyColor : Integer;
BankAngle: Extended;
MyColors: Array of Extended;
TreeName: Array of String;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Strings[2] := 'Fast';//Fast or DTM (dropping style, only needed if your powerchopping)
Players[0].Booleans[1] := True;//True = Wielded False = Not Wielded
Players[0].Active := True;
{Players[1].Name := '';
Players[1].Pass := '';
Players[1].Nick := '';
Players[1].Strings[1] := 'Willow';//Normal, Oak, or Willow
Players[1].Strings[2] := 'Fast';//Fast or DTM (dropping style)
Players[1].Booleans[0] := true;
Players[1].Active := True;
Players[2].Name := '';
Players[2].Pass := '';
Players[2].Nick := '';
Players[2].Strings[1] := '';//Normal, Oak, or Willow
Players[2].Strings[2] := '';//Fast or DTM (dropping style)
Players[2].Booleans[0] := True;//True = Wielded False = Not Wielded
Players[2].Active := True;}
end;
{------------------------------------------------------------------------------}
//-------Don't----Touch----Anything----Below----This----Point---Please--------\\
//----------------------Unless You Know What Your Doing------------------------\\
{------------------------------------------------------------------------------}
{---------------------------------}
//-----My Starting Signature-----\\
{---------------------------------}
procedure StartUp;
begin
ClearDebug;
wait(1000);
WriteLn(' _ _ _ _ _ ');
wait(225);
WriteLn('| | | | | | | | | | ');
wait(225);
WriteLn('| |___ | | _ _ _____ | |___ | | ___ | |___ ___ ___ ');
wait(225);
WriteLn('| | || || | || || | || || |_|| | || |_|| |_| ');
wait(225);
WriteLn('|_____||_||___||_|_|_||_____||_||___||_____||___||___| ');
wait(225);
WriteLn('');
wait(1500);
clearDebug;
WriteLn('Presents:');
WriteLn('--------');
WriteLn('Multi Tree Chopper [Reflection]');
WriteLn('------------------------------------');
WriteLn('Please Post Bugs/Proggies on Thread');
WriteLn('------------------------------------');
end;
{---------------------------------------------------}
//-----Required For Reflection Walking To Work-----\\
{---------------------------------------------------}
Function PathWalk(Path : TPointArray; Tol, R_FFlag : integer): Boolean;
var
Count : integer;
begin
Count := 0;
repeat
Result := WalkToTile(Path[Count], Tol, R_FFlag);
if not(Result) then
begin
Result:= WalkToTile(Path[Count], tol, R_FFlag);
WriteLn('Reflection Walk Failed');
Exit;
end;
Count := Count + 1;
until (not(Result)) or (Count > High(Path));
end;
{---------------------------}
//-----Progress Report-----\\
{---------------------------}
procedure PReport;
begin
ClearDebug;
WriteLn('|- Mult-Tree Chopper [Reflection] -|');
WriteLn('---------------------------------------------------');
writeln('|Script Ran For ' + TimeRunning);
WriteLn('|Chopped ' + IntToStr(Chopped) + ' Logs');
WriteLn('|Gained ' + IntToStr(GainedLvl) + ' Level(s)');;
WriteLn('|Ents Avoided ' + IntToStr(EntsAvoided));
WriteLn('|Completed ' + IntToStr(Completed) + ' Load(s)');
WriteLn('---------------------------------------------------');
WriteLn('');
end;
{-------------------------------------}
//-----Loads All DTM's In Script-----\\
{-------------------------------------}
procedure LoadDTMs;
begin
LogDTM := DTMFromString('78DA631465606010604001AE76120C92409A1' +
'1CA67940512ACA86A1CACC451D528020931543506DA82A86AD830D52' +
'44498A1AAE102129C04D4F0010969543505E9F6286A0042200603');
AxeDTM := DTMFromString('78DA6394646060E06440018EE1890CFF81342' +
'394CF280D24D818D00023AA1A2920C14F408D00906025A046084870E' +
'357030086DB06A1');
BankDTM := DTMFromString('78DA639CC0CCC060C3C80002CC0C10F0E6CD1' +
'B061DA0102394CFD801943181F060626FDF32302823F119DB11E6C0C' +
'4FEFC61C254E3805F0D00BC4D0C59');
SBankerDTM := DTMFromString('78DA63B46062607062644006D555950CCA401' +
'A26CAE807546382AA66F2947E54353E40353EA86A36AE5E80AA4613A' +
'8C61355CDB4491DA86AB4806A8C51D534B5D4A1A8010018580B80');
RareTreeDTM := DTMFromString('78DA632C61666060676440068CF5CC0C92201' +
'AC6AF02AA61425563A0C08AAA261FA88607CD1C464654359544A8C9C' +
'7B40B5D0D00B44703E5');
EdgeBankDTM := DTMFromString('78DA639CC7C4C0A0C90006CC108AC14A989D4' +
'117483342F98C4B806A8CA06CA8D89F3F4C0CFCC86A9622CCC1A9661' +
'9508D127E350099FA09E6');
end;
{-----------------------------}
//-----Terminates Script-----\\
{-----------------------------}
procedure ScriptTerminate;
begin
Disguise('Script Done');
PReport;
freedtm(Logdtm);
freedtm(AxeDTM);
freedtm(bankdtm);
freedtm(sbankerDTM);
freedtm(raretreedtm);
freedtm(edgebankDTM);
TerminateScript;
end;
{---------------------------------}
//-----Finds An Axe For Wcing-----\\
{---------------------------------}
function FindAnAxe: Boolean;
begin
wait(500 + random(200));
if (Players[CurrentPlayer].Booleans[1] = True) then
GameTab(5);
if FindDTM(AxeDTM, x, y, 532, 183, 751, 485) then
begin
Result := True;
FreeDTM(AxeDTM);
writeln('------------------------');
Writeln('Found Wielded Axe');
end;
if not (Result) then
begin
if (Players[CurrentPlayer].Booleans[1] = False) then
GameTab(4);
if FindDTM(AxeDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
result := True;
FreeDTM(AxeDTM);
writeln('------------------------');
Writeln('Found Axe In Inventory');
end;
end;
if not (Result) then
begin
Writeln('Could Not find Axe Terminating Script');
ScriptTerminate;
end;
end;
{----------------------------}
//-----Beginning Set Up-----\\
{----------------------------}
procedure SetUp1;
begin
SetupSRL;
SmartSetupEx(World, True, True, False);
SetTargetDC(SmartGetDC);
Disguise('Multi-Tree Chopper');
end;
{----------------------------------}
//-----Set Up for Each player-----\\
{----------------------------------}
procedure SetUp2;
begin
DeclarePlayers;
if not (LoggedIn) then
LogInPlayer;
if LoggedIn then
begin
LoadDTMs;
FindAnAxe;
SetRun(True);
SetAngle(True);
Wait(500 + Random(500));
MakeCompass('N');
Wait(400 + Random(655));
end;
end;
{--------------------------------}
//-----Finds Gained levels -----\\
{--------------------------------}
function FindGainedLevel: boolean;
begin
if not LoggedIn then Exit;
if ClickContinue(False,False) then
begin
if FindNPCChatText('lations', Nothing) then
begin
writeln('We gained a woodcutting level!');
GainedLvl:=GainedLvl+1;
ClickContinue(True,True);
Result := True;
Exit;
end;
end;
end;
{---------------------------------}
//-----My AntiBan Procedure-----\\
{---------------------------------}
Procedure AntiBan;
begin
if(not(LoggedIn))then
Exit;
case Random(45) of
0: begin
Status('AntiBan');
HoverSkill('Woodcutting', false);
wait(1200+Random(432));
GameTab(4);
end;
1: begin
Status('AntiBan');
HoverSkill('Firemaking',false);
wait(1000+Random(413));
GameTab(4);
end;
2: PickUpMouse;
3: begin
Status('AntiBan');
MakeCompass('N');
wait(100+random(5));
MakeCompass('S');
wait(100+random(5));
MakeCompass('N');
end;
5:begin
Status('AntiBan');
IdleTime(1000 + Random(750), 500, 0.5);
Wait(300 + random(700));
end;
8: BoredHuman;
9: begin
KeyDown(VK_Down);
Wait(1000 + random(500));
KeyUp(VK_Down);
Wait(50 + random(100));
KeyDown(VK_Up);
Wait(1000 + random(500));
KeyUp(VK_Up);
end;
10: MMouse(5 + random(250), 5 + random(250), 5, 5);
end;
end;
{------------------------------------------}
//-----Loads All DDTM's Used in Script-----\\
{------------------------------------------}
function LoadAllDDTM(WalkNumber: Integer): Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..2] of TDTMPointDef;
TempTDTM: TDTM;
begin
case WalkNumber of
1:begin
dtmMainPoint.x := 626;
dtmMainPoint.y := 88;
dtmMainPoint.AreaSize := 3;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 195836;
dtmMainPoint.Tolerance := 15;
dtmSubPoints[0].x := 618;
dtmSubPoints[0].y := 87;
dtmSubPoints[0].AreaSize := 2;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 195836;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 618;
dtmSubPoints[1].y := 79;
dtmSubPoints[1].AreaSize := 2;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 195836;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 617;
dtmSubPoints[2].y := 92;
dtmSubPoints[2].AreaSize := 2;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 195836;
dtmSubPoints[2].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
2:Begin
dtmMainPoint.x := 114;
dtmMainPoint.y := 128;
dtmMainPoint.AreaSize := 3;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 5397076;
dtmMainPoint.Tolerance := 10;
dtmSubPoints[0].x := 113;
dtmSubPoints[0].y := 124;
dtmSubPoints[0].AreaSize := 2;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 6581100;
dtmSubPoints[0].Tolerance := 10;
dtmSubPoints[1].x := 117;
dtmSubPoints[1].y := 128;
dtmSubPoints[1].AreaSize := 2;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 5397076;
dtmSubPoints[1].Tolerance := 10;
dtmSubPoints[2].x := 114;
dtmSubPoints[2].y := 132;
dtmSubPoints[2].AreaSize := 2;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 5397076;
dtmSubPoints[2].Tolerance := 10;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
3:begin
dtmMainPoint.x := 645;
dtmMainPoint.y := 152;
dtmMainPoint.AreaSize := 3;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 12499641;
dtmMainPoint.Tolerance := 50;
dtmSubPoints[0].x := 647;
dtmSubPoints[0].y := 147;
dtmSubPoints[0].AreaSize := 3;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 195836;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 644;
dtmSubPoints[1].y := 145;
dtmSubPoints[1].AreaSize := 3;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 195836;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 640;
dtmSubPoints[2].y := 146;
dtmSubPoints[2].AreaSize := 3;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 195836;
dtmSubPoints[2].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
4:begin
dtmMainPoint.x := 670;
dtmMainPoint.y := 41;
dtmMainPoint.AreaSize := 3;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 463674;
dtmMainPoint.Tolerance := 45;
dtmSubPoints[0].x := 676;
dtmSubPoints[0].y := 50;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 195836;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 677;
dtmSubPoints[1].y := 41;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 195836;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 678;
dtmSubPoints[2].y := 34;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 195836;
dtmSubPoints[2].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
end;
end;
{------------------------------------------------------------}
//-----Rotates Camera Around (Somewhat Like an AntiBan)-----\\
{------------------------------------------------------------}
procedure CameraRotate;
begin
if(not(LoggedIn))then
Exit;
case Random(40) of
0:Begin
MakeCompass('N');
Wait(100+random(5));
end;
1:Begin
MakeCompass('S');
Wait(100+random(5));
end;
2:Begin
MakeCompass('N');
wait(100+random(5));
end;
3:Begin
MakeCompass('E');
wait(100+random(5));
end;
4:Begin
MakeCompass('W');
wait(100+random(5));
end;
end;
end;
{--------------------------------------}
//-----Basic AntiRandom Procedure-----\\
{--------------------------------------}
procedure FindRandoms;
begin
if (not (LoggedIn)) then
Exit;
FindNormalRandoms;
if (FindFight) then
begin
RunAway('E', True, 1, 3000);
FFlag(0);
Wait(1000 + random(500));
if FindSymbol(x, y, 'fish') then
begin
mouse(x, y + 15, 6, 6, true);
end;
end;
end;
{----------------------------------------------}
//-----Walks Character to Draynor Willows-----\\
{----------------------------------------------}
function WalkToWillows: Boolean;
var
WalkDTM: integer;
begin
FindRandoms;
if UseReflection = True then
begin
WalkToTile(Point(3086, 3234), 2, 2);
Flag;
writeln('------------------------');
WriteLn('Walked To Willows Using Reflection');
Result := True;
If (Result) then
Exit;
end else
WalkDTM := LoadAllDDTM(2);
if FindDTM(WalkDTM, X, Y, MMx1,MMy1,MMx2,MMy2) then
begin
Mouse(X, Y, 8, 8, True);
writeln('------------------------');
WriteLn('Walked To Willows Using DDTM');
FFlag(0);
Result := True;
end else
if RadialWalk(FindWaterColor, 210, 260, 60, 4, 4) then
begin
writeln('------------------------------------');
Writeln(' Walked To Willows Using Radial Walk');
Result := True;
end else
begin
Result := False;
writeln('-----------------------------------------------');
Writeln('Both DDTM and Radial Walking Failed, Nextplayer');
if not (Result) then
begin
Players[CurrentPlayer].Active := False;
LogOut;
NextPlayer(Players[CurrentPlayer].Active);
If (PlayersActive) = 0 then
begin
ScriptTerminate;
end;
end;
end;
FreeDTM(WalkDTM);
end;
{-------------------------------------------}
//-----Walks Character to Seers Maples-----\\
{-------------------------------------------}
function WalkToMaples: Boolean;
begin
FindRandoms;
if UseReflection = True then
begin
WalkToTile(Point(2730, 3499), 2, 2);
Flag;
writeln('------------------------');
WriteLn('Walked To Maples Using Reflection');
Result := True;
If (Result) then
Exit;
end else
if RadialWalk(FindWaterColor, 270, 45, 60, 4, 4) then
begin
writeln('------------------------------------');
Writeln(' Walked To Maples Using Radial Walk');
Result := True;
end else
begin
if FindDTM(RareTreeDTM, X, Y, 936, 236, 809, 295) then
begin
Mouse(X, Y, 4, 4, True);
writeln('------------------------');
WriteLn('Walked To Maples Using DDTM');
FFlag(0);
Result := True;
end else
if FindSymbol(x, y, 'Tree') then
begin
mouse(x, y, 2, 2, true);
Writeln('Walk To Maples');
FFlag(2);
Writeln(' Walked To Maples Using Tree Symbol');
Result := True;
end else
begin
Result := False;
writeln('-----------------------------------------------');
Writeln('Both DDTM and Radial Walking Failed, Nextplayer');
if not (Result) then
begin
Players[CurrentPlayer].Active := False;
LogOut;
NextPlayer(Players[CurrentPlayer].Active);
If (PlayersActive) = 0 then
begin
ScriptTerminate;
end;
end;
end;
FreeDTM(RareTreeDTM);
end;
end;
{---------------------------------------------}
//-----Walks Character to EdgeVille Yews-----\\
{---------------------------------------------}
function WalkToYews: Boolean;
begin
if UseReflection = True then
begin
WalkToTile(Point(3087, 3476), 0, 0);
writeln('------------------------');
WriteLn('Walked To Yews Using Reflection');
Result := True;
If (Result) then
Exit;
end else
if FindDTM(RareTreeDTM, X, Y, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(X, Y + 5, 4, 4, True);
writeln('------------------------');
WriteLn('Walked To Yews Using DDTM');
FFlag(0);
Result := True;
If (Result) then
Exit;
end else
if FindSymbol(x, y, 'Tree') then
begin
mouse(x, y, 4, 4, true);
Writeln('Walk To Yews');
FFlag(0);
Writeln(' Walked To Yews Using Tree Symbol');
Result := True;
If (Result) then
Exit;
end else
if RadialWalk(FindDirtRoadColor, 343, 395, 50, 1, 1) then
begin
Mouse(x, y, 1, 1, true);
FFlag(0);
end;
begin
if FindSymbol(x, y, 'Tree') then
begin
mouse(x, y, 4, 4, true);
Writeln('Walk To Yews');
FFlag(0);
Writeln(' Walked To Yews Using Tree Symbol');
Result := True;
If (Result) then
Exit;
end else
begin
Result := False;
writeln('-----------------------------------------------');
Writeln('Both DDTM and Symbol Walking Failed, Nextplayer');
if not (Result) then
begin
LogOut;
Players[CurrentPlayer].Active := False;
NextPlayer(Players[CurrentPlayer].Active);
If (PlayersActive) = 0 then
begin
ScriptTerminate;
end;
end;
end;
end;
FreeDTM(RareTreeDTM);
end;
function FindLowerYew: Boolean; forward;
{---------------------------------------------------}
//-----Walks Character to Upper EdgeVille Yews-----\\
{---------------------------------------------------}
function FindUpperYew: Boolean;
begin
if FindDTM(RareTreeDTM, X, Y, 598, 64, 664, 27) then
begin
Mouse(X, Y , 4, 4, True);
writeln('------------------------');
WriteLn('Walked To Upper yew Using DDTM');
FFlag(0);
Result := True;
end else
if FindSymbol(x, y, 'Tree') then
begin
mouse(x, y, 3, 3, true);
Writeln('Walk To Maples');
FFlag(0);
Writeln(' Walked To Upper Yew Using Tree Symbol');
Result := True;
end else
begin
Result := False;
writeln('-----------------------------------------------');
Writeln('Both DDTM and Symbol Walking Failed, Nextplayer');
if not (Result) then
begin
FindLowerYew;
end;
end;
FreeDTM(RareTreeDTM);
end;
{---------------------------------------------------}
//-----Walks Character to Lower EdgeVille Yews-----\\
{---------------------------------------------------}
function FindLowerYew: Boolean;
begin
if FindDTM(RareTreeDTM, X, Y, 598, 64, 664, 27) then
begin
Mouse(X, Y , 4, 4, True);
writeln('------------------------');
WriteLn('Walked To Upper yew Using DDTM');
FFlag(0);
Result := True;
end else
if FindSymbol(x, y, 'Tree') then
begin
mouse(x, y, 3, 3, true);
Writeln('Walk To Maples');
FFlag(0);
Writeln(' Walked To Upper Yew Using Tree Symbol');
Result := True;
end else
begin
Result := False;
writeln('-----------------------------------------------');
Writeln('Both DDTM and Symbol Walking Failed, Nextplayer');
if not (Result) then
begin
FindUpperYew;
end;
end;
FreeDTM(RareTreeDTM);
end;
function ChangeYew: Boolean;
begin
If FindObjTPA(x, y, 1865575, 20, 2, 15, 25, 10, ['ew', 'Ye', 'Yew']) then
begin
Exit;
end else
If not FindObjTPA(x, y, 1865575, 20, 2, 15, 25, 10, ['ew', 'Ye', 'Yew']) then
begin
FindLowerYew;
Wait(1000+ Random(500));
end else
If not FindObjTPA(x, y, 1865575, 20, 2, 15, 25, 10, ['ew', 'Ye', 'Yew']) then
begin
FindUpperYew;
Wait(1000+Random(500));
end else
If not (result) then
begin
Nextplayer(false);
end;
end;
{-------------------------------------------}
//-----Walks Character To Draynor Bank-----\\
{-------------------------------------------}
function WalkToDraynorBank: Boolean;
var
WalkDTM: integer;
begin
MakeCompass('N');
FindRandoms;
if UseReflection = True then
begin
WalkToTile(Point(3093, 3245), 1, 1);
Flag;
writeln('------------------------');
WriteLn('Walked To Bank Using Reflection');
Result := True;
If (Result) then
Exit;
end else
WalkDTM := LoadAllDDTM(1);
if FindDTMRotated(WalkDTM, X, Y, MMx1,MMy1,MMx2,MMy2, 0, pi, 0.2, BankAngle) then
begin
Mouse(X - 2, Y, 4, 4, True);
WriteLn('Walked To Bank Using DDTM');
FFlag(0);
Result := True;
end else
if FindDTMRotated(BankDTM, X, Y, MMx1,MMy1,MMx2,MMy2, -pi, pi, 0.2, BankAngle) then
begin
Mouse(X, Y, 4, 4, True);
WriteLn('Walked To Bank Using DTM');
FFlag(0);
Result := True;
end else
if FindSymbol(x, y, 'bank') then
begin
mouse(x, y, 2, 2, true);
Writeln('Back to Bank');
FFlag(2);
Writeln(' Walked To Bank Using Bank Symbol');
Result := True;
end else
begin
Result := False;
Writeln('Could Not Find Bank, Nextplayer');
if not (Result) then
begin
Players[CurrentPlayer].Active := False;
LogOut;
NextPlayer(Players[CurrentPlayer].Active);
If (PlayersActive) = 0 then
begin
ScriptTerminate;
end;
end;
end;
FreeDTM(WalkDTM);
end;
{---------------------------------------------}
//-----Walks Character To EdgeVille Bank-----\\
{---------------------------------------------}
function WalkToEdgeBank: Boolean;
var
WalkDTM: integer;
begin
MakeCompass('N');
FindRandoms;
FindRandoms;
if UseReflection = True then
begin
WalkToTile(Point(3092 ,3494), 1, 0);
Flag;
writeln('------------------------');
WriteLn('Walked To Bank Using Reflection');
Result := True;
If (Result) then
Exit;
end else
WalkDTM := LoadAllDDTM(4);
if FindDTMRotated(WalkDTM, X, Y, MMx1,MMy1,MMx2,MMy2, 0, pi, 0.2, BankAngle) then
begin
Mouse(X , Y, 4, 4, True);
WriteLn('Walked To Bank Using DDTM');
FFlag(0);
Result := True;
end else
if FindDTMRotated(EdgeBankDTM, X, Y, MMx1,MMy1,MMx2,MMy2, -pi, pi, 0.2, BankAngle) then
begin
Mouse(X, Y, 4, 4, True);
WriteLn('Walked To Bank Using DTM');
FFlag(0);
Result := True;
end else
if FindSymbol(x, y, 'bank') then
begin
mouse(x, y, 2, 2, true);
Writeln('Back to Bank');
FFlag(2);
Writeln(' Walked To Bank Using Bank Symbol');
Result := True;
end else
begin
Result := False;
Writeln('Could Not Find Bank, Nextplayer');
if not (Result) then
begin
Players[CurrentPlayer].Active := False;
LogOut;
NextPlayer(Players[CurrentPlayer].Active);
If (PlayersActive) = 0 then
begin
ScriptTerminate;
end;
end;
end;
FreeDTM(WalkDTM);
end;
{-----------------------------------------}
//-----Walks Character To Seers Bank-----\\
{-----------------------------------------}
function WalkToSeersBank: Boolean;
var
WalkDTM: integer;
begin
MakeCompass('N');
FindRandoms;
if UseReflection = True then
begin
WalkToTile(Point(2727, 3493), 2, 2);
Flag;
writeln('------------------------');
WriteLn('Walked To Bank Using Reflection');
Result := True;
If (Result) then
Exit;
end else
WalkDTM := LoadAllDDTM(3);
if FindDTMRotated(WalkDTM, X, Y, MMx1,MMy1,MMx2,MMy2, 0, pi, 0.2, BankAngle) then
begin
Mouse(X , Y, 4, 4, True);
WriteLn('Walked To Bank Using DDTM');
FFlag(0);
Result := True;
end else
if FindDTMRotated(BankDTM, X, Y, MMx1,MMy1,MMx2,MMy2, -pi, pi, 0.2, BankAngle) then
begin
Mouse(X, Y, 4, 4, True);
WriteLn('Walked To Bank Using DTM');
FFlag(0);
Result := True;
end else
if FindSymbol(x, y, 'bank') then
begin
mouse(x, y, 2, 2, true);
Writeln('Back to Bank');
FFlag(0);
Writeln(' Walked To Bank Using Bank Symbol');
Result := True;
end else
begin
Result := False;
Writeln('Could Not Find Bank, Nextplayer');
if not (Result) then
begin
Players[CurrentPlayer].Active := False;
LogOut;
NextPlayer(Players[CurrentPlayer].Active);
If (PlayersActive) = 0 then
begin
ScriptTerminate;
end;
end;
end;
FreeDTM(WalkDTM);
end;
{---------------------------------}
//-----Banks Load Of Willows-----\\
{---------------------------------}
function DraynorBanking: Boolean;
begin
begin
FindRandoms;
MakeCompass('N');
begin
Wait(350 + Random(500));
Writeln('Banking...');
OpenBankFast('db');
FFlag(0);
wait(500 + random(500));
begin
Deposit(2, 28, true);
end;
begin
CloseBank;
Wait(150 + random (250));
MakeCompass('N');
Result := True;
Chopped := Chopped+27;
inc(Done);
inc(Completed);
wait(500+ Random(200));
PReport;
end;
end;
end;
end;
{------------------------------}
//-----Banks Load Of Yews-----\\
{------------------------------}
function EdgeBanking: Boolean;
begin
begin
FindRandoms;
MakeCompass('N');
begin
Wait(350 + Random(500));
Writeln('Banking...');
OpenBankFast('eb');
FFlag(0);
wait(500 + random(500));
begin
Deposit(2, 28, true);
end;
begin
CloseBank;
Wait(150 + random (250));
MakeCompass('N');
Result := True;
Chopped := Chopped+27;
inc(Done);
inc(Completed);
wait(500+ Random(200));
PReport;
end;
end;
end;
end;
{---------------------------------}
//-----Written By DeathSytex-----\\
//----Modified By Blumlebebee----\\
{---------------------------------}
function BackUpSeersBanking : Boolean;
var
BX, BY: Integer;
begin
if (not (InvFull)) or (not (LoggedIn)) then
Exit;
begin
FindObjTPA(BX, BY, 7699838, 15, -1, 15, 15, 3, ['ank','Ban', 'Bank']);
Wait(1210 + Random(895));
MMouse(BX, BY, 0, 0);
if (IsUpText('Banker')) then
begin
Mouse(BX, BY, 1, 1, False);
ChooseOption('Bank');
FFlag(0);
end
else
Mouse(BX, BY, 1, 1, False);
Wait(115 + Random(65));
ChooseOption('Use-quickly');
FFlag(0);
Wait(900 + Random(620));
if (BankScreen) then
begin
Deposit(2, 28, True);
Wait(285 + Random(110));
CloseBank;
Inc(done);
inc(Completed);
Result := True;
Wait(1500 + Random(1240));
end
else
begin
If FindDTM(SBankerDTM, X, Y, MSX1, MSY1, MSX2, MSY2) then
MMouse(BX, BY, 1, 1);
if IsUpText('ooth') Then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, False);
Wait(70 + Random(75));
if ChooseOption('uickly') then
FFLag(0);
Wait(900 + Random(620));
if (BankScreen) then
begin
Deposit(2, 28, True);
Wait(285 + Random(110));
CloseBank;
Inc(done);
PReport;
Result := True;
Wait(1500 + Random(1240));
end
else
begin
WriteLn('Could not find the Bank or the Banker.');
Players[CurrentPlayer].Active := False;
NextPlayer(Players[CurrentPlayer].Active);
end;
end;
end;
end;
end;
{-------------------------------------------------------}
//-----Searches and Finds/Opens Bank Booth In Bank-----\\
{-------------------------------------------------------}
procedure SeersBanking;
var
Bank, Bankk: Integer;
begin
if not LoggedIn then Exit;
if not BankScreen then
repeat
case Bank of
0: if (FindObj(x, y, 'oth', 10266798, 15)) then Mouse(x, y, 3, 3, False);
1: if (FindObj(x, y, 'oth', 5269623, 15)) then Mouse(x, y, 3, 3, False);
2: if (FindObj(x, y, 'oth', 3626083, 15)) then Mouse(x, y, 3, 3, False);
3: if (FindObj(x, y, 'oth', 4746624, 15)) then Mouse(x, y, 3, 3, False);
4: if (FindObj(x, y, 'oth', 2838626, 15)) then Mouse(x, y, 3, 3, False);
end;
Wait(220 + Random(120));
if ChooseOption('quickly') then
begin
FFlag(0);
Deposit(2, 28, True);
PReport;
repeat
Wait(100);
inc(Bank);
if (PinScreen) then Exit;
until (BankScreen) or (Bank >= 25) or (not (Loggedin));
end;
Inc(Bankk);
inc(Completed);
inc(Done);
until (BankScreen) or (Bankk > 4) or (not (LoggedIn));
BackUpSeersBanking;
end;
{--------------------------------------}
//-----Finds Broken Axe Using Chat-----\\
{---------------------------------------}
procedure FindBrokenAxe;
var
baxe: integer;
begin
if not (LoggedIn) then
Exit;
if TimeFromMark(baxe) < 1500 then
Exit;
FindNormalRandoms;
MarkTime(baxe);
if (FindBlackChatMessage('ou do not')) then
begin
Writeln('Broken Axe...Tell Blumblebee to Make a better EntFinder');
Players[CurrentPlayer].Active := False;
NextPlayer(Players[CurrentPlayer].Active);
end;
end;
//-----------------------------------------------------\\
{---Chooses What Tree To Chop Based on Users Selection---}
//------------------------------------------------------\\
function FindTree(Tree: String): Boolean;
begin
case lowercase(Tree) of
'willow':
begin
MyColor := 9947330;
MyColors := [1.5, 2.3];
TreeName := ['illow','Willo','Willow'];
result := true;
end;
'oak':
begin
MyColor := 4876128;
MyColors := [1.596, 4.326]
TreeName := ['ak','Oa','Oak'];
result := true;
end;
'normal':
begin
MyColor := 4876128;
MyColors := [1.596, 4.326]
TreeName := ['ree','Tre','Tree'];
result := true;
end;
end;
end;
//-------------------------------------------\\
{---My Custom TPA that finds the Tree Color ---}
//--------------------------------------------\\
function CutTree(x, y: Integer): Boolean;
var
CTS, I, Chopping: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(MyColors[0], MyColors[1]);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, MyColor, MSX1, MSY1, MSX2, MSY2, 6);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 15, 15);
For I := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 2, 2);
If(IsUpTextMultiCustom([TreeName[0]])) then
begin
Result := True;
Mouse(x, y, 0, 0, false);
ChooseOption('hop')
FindColorsSpiralTolerance(MSCX, MSCY, TPA, MyColor, MSX1, MSY1, MSX2, MSY2, 6);
end;
repeat
wait(500+random(250));
FindGainedLevel;
wait(1000+random(175));
AntiBan;
CameraRotate;
FindBrokenAxe;
FindRandoms;
if (InvFull) then exit;
Until (not IsUpText(TreeName[0])) or (InvFull) or (TimeFromMark(Chopping) < (20000 +random(10000)));
end;
end;
//----------------------------------------------------\\
{---Power Chops the Given Tree Until Uptext Is Gone---}
//-----------------------------------------------------\\
function ChopTree: boolean;
var
Chopping: Integer;
begin
if not(LoggedIn) then Exit;
WriteLn('Chopping ' + TreeName[2] +' Tree'#39's');
FindBrokenAxe;
wait(4000+random(250));
repeat
FindBrokenAxe;
if not(LoggedIn) then Exit;
FindNormalRandoms;
FindRandoms;
MarkTime(Chopping);
if(FindNormalRandoms) or (InvFull) then Exit;
if FindTree(Tree) then
begin
Result := True;
CutTree(x, y);
end;
FindRandoms;
FindBrokenAxe;
FindGainedLevel;
Until(Invfull);
exit;
end;
//------------------------------------\\
{---------My Drog Log Procedure--------}
{----Credits to SRL Drop Procedure ----}
//------------------------------------\\
function DropLogs: Boolean;
var
i: Integer;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(false);
if (Players[CurrentPlayer].Strings[2] = 'Fast') then
Writeln('Dropping Logs');
begin
Result := True;
FindRandoms;
if not (InvFull) then exit; Gametab(4);
for i := 2 To 28 Do
begin
FindRandoms;
If ExistsItem(i) then
DropItem(i);
end;
end;
begin
Inc(Done);
Chopped := Chopped + 27;
ReportVars[0] := ReportVars[0] + 27;
Preport;
FindRandoms;
AntiBan;
end;
if not (Result) then
begin
FindRandoms;
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(false);
if (Players[CurrentPlayer].Strings[2] = 'DTM') then
Writeln('Dropping Using DTMs');
Status('Dropping Logs');
Result := True;
gametab(4);
repeat
FindRandoms;
if finddtm(LogDTM, x, y, MIX1,MIY1,MIX2,MIY2) then
begin
FindRandoms;
Mouse(x, y, 3, 3, false);
begin
FindRandoms;
wait(random(500) + 200);
chooseoption('Drop');
wait(500 + random(500));
x := 0;
y := 0;
end;
end;
until (Not (finddtm(LogDTM, x, y, MIX1,MIY1,MIX2,MIY2)));
begin
Inc(Done);
Chopped := Chopped + 27;
ReportVars[0] := ReportVars[0] + 27;
Preport;
FindRandoms;
AntiBan;
end;
end;
end;
{--------------------------------}
//-----Chops Willow Tree's -----\\
//----- Written By: Griff721-----\\
{-----Modified By Blumblebee-----}
{--------------------------------}
function DraynorChopTree: Boolean;
var
x, y, DMark, Checking : integer;
begin
if not(LoggedIn) then Exit;
Writeln('Chopping Willow trees');
Status('Chopping Willows');
wait(2+random(250));
FindRandoms;
if TimeFromMark(DMark) < (20000 + Random (10000)) then
TerminateScript;
repeat
MarkTime(DMark);
if not(LoggedIn) then Exit;
If(FindNormalRandoms) or (InvFull) then Exit;
FindBrokenAxe;
if FindObjTPA(x, y, 4876128, 20, 2, 15, 25, 10, ['illow', 'Willo', 'Willow']) then
begin
Result := True;
Mouse(x, y, 0, 0, false);
ChooseOption('hop')
FindObjTPA(x, y, 4876128, 20, 2, 15, 25, 10, ['illow', 'Willo', 'Willow'])
end;
repeat
inc(checking)
FindRandoms;
FindBrokenAxe;
AntiBan;
CameraRotate;
wait(500+random(250));
FindGainedLevel;
wait(1000+random(175));
Until not IsUpText('illow') or (InvFull) or ((checking)>5);
FindRandoms;
FindBrokenAxe;
FindGainedLevel;
Until(invfull);
if not (Result) then
begin
Players[CurrentPlayer].Active := False;
LogOut;
NextPlayer(Players[CurrentPlayer].Active);
If (PlayersActive) = 0 then
begin
ScriptTerminate;
end;
end;
end;
{----------------------------}
//-----Chops Yew Tree's -----\\
{-----------------------------}
function EdgeChopTree: Boolean;
var
x, y, EMark : integer;
begin
if not(LoggedIn) then Exit;
Writeln('Chopping Yew trees');
Status('Chopping Yew'#39's');
wait(1000+random(250));
FindRandoms;
if TimeFromMark(EMark) < (20000 + Random (10000)) then
EdgeChopTree;
repeat
MarkTime(EMark);
if not(LoggedIn) then Exit;
If(FindNormalRandoms) or (InvFull) then Exit;
FindBrokenAxe;
ChangeYew;
if FindObjTPA(x, y, 1865575, 20, 2, 15, 25, 10, ['ew', 'Ye', 'Yew']) then
begin
Result := True;
Mouse(x, y, 0, 0, false);
ChooseOption('hop')
FindObjTPA(x, y, 1865575, 20, 2, 15, 25, 10, ['ew', 'Ye', 'Yew'])
end;
repeat
FindRandoms;
FindBrokenAxe;
AntiBan;
CameraRotate;
wait(500+random(250));
FindGainedLevel;
wait(1000+random(175));
Until not IsUpText('ew');
FindRandoms;
FindBrokenAxe;
FindGainedLevel;
FindUpperYew;
Until(invfull);
if not (Result) then
begin
Players[CurrentPlayer].Active := False;
LogOut;
NextPlayer(Players[CurrentPlayer].Active);
If (PlayersActive) = 0 then
begin
ScriptTerminate;
end;
end;
end;
//------------------------------------------------------\\
{--- Chops Maples In Seers Village Until Uptext Is Gone---}
//-------------------------------------------------------\\
function SeersChopTree: Boolean;
var
x : integer;
y : integer;
begin
if not(LoggedIn) then Exit;
Writeln('Chopping Maple trees');
Status('Chopping Maples');
wait(1000+random(250));
repeat
if not(LoggedIn) then Exit;
If(FindNormalRandoms) or (InvFull) then Exit;
FindBrokenAxe;
if FindObjTPA(x, y, 2966906, 20, 2, 15, 25, 10, ['aple', 'Mapl', 'Maple']) then
begin
Result := True;
Mouse(x, y, 0, 0, false);
ChooseOption('hop')
FindObjTPA(x, y, 2966906, 20, 2, 15, 25, 10, ['aple', 'Mapl', 'Maple'])
end;
repeat
FindRandoms;
FindBrokenAxe;
AntiBan;
CameraRotate;
wait(500+random(250));
FindGainedLevel;
wait(1000+random(175));
Until not IsUpText('aple') or (InvFull);
FindRandoms;
FindBrokenAxe;
FindGainedLevel;
Until(invfull);
if not (Result) then
begin
Players[CurrentPlayer].Active := False;
LogOut;
NextPlayer(Players[CurrentPlayer].Active);
If (PlayersActive) = 0 then
begin
ScriptTerminate;
end;
end;
end;
{----------------------------}
//-----Draynor MainLoop-----\\
{----------------------------}
Procedure DraynorLoop;
begin
SetUp1;
StartUp;
wait(500 + random (200));
SetUp2;
repeat
repeat
WalkToWillows;
DraynorChopTree;
If (InvFull) then
WalkToDraynorBank;
DraynorBanking;
If Not (LoggedIn) Or Not (Players[CurrentPlayer].Active) Then
Players[CurrentPlayer].Active := False;
If Not LoggedIn Then
Begin
Players[CurrentPlayer].Active := False;
SetUp2;
end;
until(done >= LoadsPerPlayer);
begin
Done := 0;
NextPlayer(True);
SetUp2;
end;
If AllPlayersInactive then Break;
until(False);
end;
{----------------------------------}
//-----Seers Village MainLoop-----\\
{----------------------------------}
Procedure SeersLoop;
begin
SetUp1;
StartUp;
wait(500 + random (200));
SetUp2;
repeat
repeat
WalkToMaples;
SeersChopTree;
If (InvFull) then
WalkToSeersBank;
SeersBanking;
If Not (LoggedIn) Or Not (Players[CurrentPlayer].Active) Then
Players[CurrentPlayer].Active := False;
If Not LoggedIn Then
Begin
Players[CurrentPlayer].Active := False;
SetUp2;
end;
until(done >= LoadsPerPlayer);
begin
Done := 0;
NextPlayer(Players[CurrentPlayer].Active);
SetUp2;
end;
If AllPlayersInactive then Break;
until(False);
end;
{------------------------------}
//-----EdgeVille MainLoop-----\\
{------------------------------}
Procedure EdgeLoop;
begin
SetUp1;
StartUp;
wait(500 + random (200));
SetUp2;
repeat
repeat
WalkToYews;
EdgeChopTree;
If (InvFull) then
WalkToEdgeBank;
EdgeBanking;
If Not (LoggedIn) Or Not (Players[CurrentPlayer].Active) Then
Players[CurrentPlayer].Active := False;
If Not LoggedIn Then
Begin
Players[CurrentPlayer].Active := False;
SetUp2;
end;
until(done >= LoadsPerPlayer);
begin
Done := 0;
NextPlayer(Players[CurrentPlayer].Active);
SetUp2;
end;
If AllPlayersInactive then Break;
until(False);
end;
{-----------------------------}
//-----Powering MainLoop-----\\
{-----------------------------}
procedure PowerLoop;
begin
SetUp1;
StartUp;
wait(500 + random (200));
SetUp2;
repeat
repeat
FindTree(tree);
ChopTree;
If (InvFull) then
DropLogs;
PReport;
Disguise('Completed ' + IntToStr(Done) + ' Load(s)')
If Not (LoggedIn) Or Not (Players[CurrentPlayer].Active) Then
NextPlayer(false);
If Not LoggedIn Then
Begin
NextPlayer(false);
SetUp2;
end;
until(done >= LoadsPerPlayer);
begin
NextPlayer(True);
SetUp2;
end;
If AllPlayersInactive then Break;
until(False);
end;
{----------------------------------------}
//-----Finds Which MainLoop To Use------\\
{----------------------------------------}
procedure WhatLoop;
begin
Case UpperCase(Where) of
'DR': DraynorLoop;
'PW': PowerLoop;
'SR': SeersLoop;
'EG': Edgeloop;
end;
end;
{--------------------}
//-----MainLoop-----\\
{--------------------}
begin
WhatLoop;
ScriptTerminate;
end.——————————————————
<!– END TEMPLATE: formanswers –>