Second I ran it went to dranynor square than proceeded to draynor manor then it logged out
Second I ran it went to dranynor square than proceeded to draynor manor then it logged out
ight i just found out that this script dont work with d axe idk if ppl posted already but that could be a good bug to fix. Good work though.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>
< 0 : Arr0w me1 = False . Loc = No tree in 7,5 mins . Chopped 27 Logs. . Lvl = 77
< 1 : = True . Loc = . Chopped 0 Logs. . Lvl = 0
< 2 : = False . Loc = . Chopped 0 Logs. . Lvl = 0
< 3 : = False . Loc = . Chopped 0 Logs. . Lvl = 0
<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>
NextPlayer
Enter your username and Password
Enter your username and Password
Enter your username and Password
Enter your username and Password
Enter your username and Password
i was sleeping end he don't auto cut cuz he walks strange he cut max 1 hour then he go bank en log out at jail...![]()
Will post a prog when complete, but so far, all chars went from bank to Yew, some got lost, but all got full loads after a bit of direction from myself, but all never made it back to the bank. all New jail, some by Tree..
looks great ran it for a few minutes.
Just wonderig does it also autotalk at somepoint?
<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>
< 0 : = True . Loc = Yew 2 . Chopped 8 Logs. . Lvl =
< 1 : = True . Loc = . Chopped 0 Logs. . Lvl = 0
< 2 : = True . Loc = . Chopped 0 Logs. . Lvl = 0
< 3 : = True . Loc = . Chopped 0 Logs. . Lvl = 0
Worked for 3 Minutes and 52 Seconds
|| Chopped 8 Logs.
|| Banked 0 time[s].
|| Changed from yew 1 time[s].
It doesn't work for me![]()
@ me it just stands still please help me
Looks pretty good, I'm gonna test it and get you a proggy soon.
Does the script have a autotalk ,antiban,or a anti random???
everything else is perfect
Hey, I'm new to these forums, trying not to be a leech, but I don't have a progress report right now I'll post one in a bit. Few things I've noticed are it gets lost alot on its way from to and from the bank. The random event finders are nice, but the anti-ban is sometimes a little too frequent and wastes time instead of cutting the yews more. Also, Runescapes newest update replaced the axe head flying off with a new random event so if you could remove both the axe head finders in it and maybe put and autoresponder even just a simple one that says your Woodcut level when asked this script would be perfect. I'll be back with a proggie or two in a bit.
P.S. This is the only woodcut script I've even found that compiles on the newest Divi so good job on that lol.
Edit:
Okay not the greatest proggie here, but it might help you with some glitches.
I started both characters at Yew 1. The first guy actually had a full invo of yews, but it doesn't say it in the progress report, and he ended up at the yew tree north of Yew 1 while trying to bank. The second was about 10 squares west and 5 north of Yew 1. I'll try and run it again and hopefully get something a little less disappointing.
mines went to yew 1 and couldnt go to yew 2 for some reason.
this script doesnt work with the new player interface in game ive noticed none of my scripts work and they just keep clicking from stats to bag and doing nothing so could you make one that works with the new interface thanks
can u update this script
Line 83: [Error] (12535:12): Unknown identifier 'INTEGER1' in script C:\Documents and Settings\hmmmmmm\Desktop\DNYewRetriever.1.3.scar
I got the new player interface implemented, but, findaxe procedures are very old. Plz update!!!
This is what i got:
SCAR Code:{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
| Nielsie95's Yew Retriever Draynor |
|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
| |
| Will cut and bank from the 2 yews south from draynor |
| |
| Has Antiban - AntiRandoms - AutoColor |
| |
|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
| |
| Start at 1 of the 2 yews or in bank. |
| Have axe wielded or in inv. Also have more in bank. |
| Please set HumanDirtColor for safety =] |
| |
|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
| |
| VERSION 1.1 |
| |
| Again tried to fix that stupid DirtColorFinder |
| |
| VERSION 1.0 |
| |
| A big update was done, better DirtFinding, |
| faster tree finding, better ent finding, new walking |
| procedures and a change to the Progress Report and |
| added some Status writing =] |
| |
| VERSION 0.75 |
| |
| Small update to DirtFinding, small banking bug |
| removed, little update to chopping =] |
| |
| VERSION 0.50 |
| |
| My very first version of my very first script! |
| |
|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
program NielsYewRetrieverDraynor;
{.Include SRL/SRL.SCAR}
{.Include SRL/SRL/Skill/Woodcutting.Scar}
//----------------------------------------------------------------------------//
// --> SCRIPT SETUP <-- //
//----------------------------------------------------------------------------//
const Version = '1.1'; //No need to change
MaxLoggedInTime = 25; //Max time the player can be logged in
HumanDirtColor = 2183262; //Set this if DirtColorFinder doesn't work
//----------------------------------------------------------------------------//
// --> VARIABLES <-- //
//----------------------------------------------------------------------------//
var tx, ty, TreeX, TreeY, TempColor, DirtColor, DirtRoadColor, Slot, LoadsToDo, AxesBroke,
BankDot1, BankDot2, BankDot3, TreeSymbol, Tree, TotalLogs, LogMask, AxeMask, Loads,
ChangedYews, StartLvl, GainedLvl, AxeHeadTxt, BrokenAxeHeadMask, HeadDTM: integer;
ColorArray: array of integer; NoAxe: Boolean;
ChopMark, LogPresent, LogCheck, SST1, SST2, FindNorMalRandomsTime, FindFastRandomsTime,
Report, LoggedInTime: LongInt;
//----------------------------------------------------------------------------//
// --> PLAYER SETUP <-- //
//----------------------------------------------------------------------------//
procedure DeclarePlayers;
begin
HowManyPlayers:=4;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name :='timefault'; //Name
Players[0].Pass :='lolnoob!'; //Password
Players[0].Nick :=''; //3-4 letter nickname
Players[0].Loc :='Bank'; //Where is your Player? CHOOSE FROM: Bank, Yew 1 or Yew 2
Players[0].Integers[1] := 2 ; //Loads to do
Players[0].Active := True; //Is the Player used?
end;
//----------------------------------------------------------------------------//
// --> OVERALL PROCEDURES <-- //
//----------------------------------------------------------------------------//
procedure LoadVar;
begin
BankDot1 := DTMFromString('78DA636C67626008664001FFFFFF67F80FA41' + //By WT-Fakawi --> From Charm
'921ECFF8CB54035DEA86AFEFC61621081AA0101C63A4C73B0AA09' +
'C7AF06000153117B');
BankDot2 := DTMFromString('78DA63EC60626008624001FFFFFF67F80FA41' +
'921ECFF8C3540353EA86AFEFC61621081AA0101C63AA09A1022D4' +
'44E057030001B5117D');
BankDot3 := DTMFromString('78DA63EC60626008624001FFFFFF67F80FA41' +
'921ECFF8CF540359EA86AFEFC61621081AA0101C63AA09A40026A' +
'6A816A42F1AB010000781176');
Tree := BitmapFromString(9, 1, '788843283020606837809046607' +
'01D001000506022506022485032');
LogMask := BitmapFromString(13, 10, 'z78DA33301805E40037BC8' + //Charm
'0BAB6D0C2E5F451494998D02E5471010034299979');
AxeHeadTxt := BitmapFromString(30, 10, 'z78DA7373B334303170' +
'0393A62EA62626E6839374437227320901A36E1E75333124A9265' +
'04B3DA9EE84005C2663AAA4AE7A5CBAF0BB16530D729A21559C98' +
'10C36F0E316E26DE6DF87D4DBC1B28B197BCF0C404F8639972715' +
'AC435A9B98954F3013DD58547');
HeadDTM := DTMFromString('78DA63CC62626078C180021C2312191E02694' +
'620FE0F048C694035CF18D000231209A473816A9E12A1E6150135' +
'A94035AF09A801B9F9090135994498930C54F392809A3CCCF0415' +
'70300FB8311DF');
BrokenAxeHeadMask := BitmapFromString(9, 10, 'z78DA7373230D1890' +
'05C8D34BAA2EE2D5E3F21131FEC56FCBE091A53C34007F307225');
AxeMask := BitmapFromString(10, 10, 'z78DA7373230D18500028316' +
'130E825353470A921DE3DE499409EDB480D25FCE10000B72C7CE1' +
'');
end;
procedure PlayerStats; //Based on Fakawi's Progress Report
var Active: string;
i, PlayerTemp: Integer;
begin
if Players[CurrentPlayer].Loc <> 'Bank' then
begin
GameTab(4);
PlayerTemp := Players[CurrentPlayer].Integers[2];
Players[CurrentPlayer].Integers[2] := CountItemBmpMaskTol(LogMask, 20, 10) + PlayerTemp;
end
Writeln(' ');
WriteLn ('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>');
for I := 0 to HowManyPlayers - 1 do
begin
if Players[i].Active=True then Active:='True' else Active:='False';
WriteLn ( '< ' + Inttostr ( I ) + ' : ' + Players[i].Name + ' = ' + Active
+' . Loc = ' + Players[i].Loc +
+' . Chopped ' + IntToStr(Players[i].Integers[2]) +' Logs.'
+' . Lvl = ' + IntToStr(Players[i].level[20]));
end
WriteLn ('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>');
Players[CurrentPlayer].Integers[2] := PlayerTemp;
end;
procedure ProgressReport; //Based on Fakawi's Progress Report
var LogTemp: Integer;
begin
if Players[CurrentPlayer].Loc = 'Bank' then LogTemp := TotalLogs else
begin
GameTab(4);
LogTemp := CountItemBmpMaskTol(LogMask, 20, 10);
LogTemp := LogTemp + TotalLogs;
end;
//Cleardebug;
SRLRandomsReport;
Writeln(' ');
Writeln('/~~~~~~~~~~~~~~~~~~ Niels ~~~~~~~~~~~~~~~~~~~\');
Writeln('||~~~~~~~~~~~~~~~~ Draynor ~~~~~~~~~~~~~~~~~||');
Writeln('||~~~~~~~~~~~ Yew Cutter/Banker ~~~~~~~~~~~~||');
Writeln('||~~~~~~~~~~~~ Progress Report ~~~~~~~~~~~~~||');
Writeln('||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||');
Writeln('|| Worked for '+ TimeRunning);
Writeln('|| Chopped '+ IntToStr(LogTemp)+(' Logs.'));
Writeln('|| Banked '+ IntToStr(Banks)+' time[s].');
if ChangedYews > 0 then
WriteLn('|| Changed from yew '+ IntToStr(ChangedYews)+' time[s].');
if AxesBroke > 0 then
WriteLn('|| Broken '+ IntToStr(AxesBroke) +' Axe[s].');
if GainedLvl > 0 then
WriteLn('|| Gained '+ IntToStr(GainedLvl) +' Lvl[s].');
WriteLn('|| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ');
WriteLn('|| Current Colors:');
WriteLn('|| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ');
WriteLn('|| Dirt: '+IntToStr(DirtRoadColor));
WriteLn('|| Road: '+ IntToStr(RoadColor));
WriteLn('|| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ');
WriteLn('|| Current Player: ' + Players[CurrentPlayer].Name);
WriteLn('|| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ');
WriteLn('|| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ');
WriteLn('|| Current Version: ' + Version);
WriteLn('|| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ');
Writeln('\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/');
PlayerStats;
MarkTime(Report);
end;
function FindFastRandoms: Boolean; //Almost Directly from Fakawi's Goblin Sheduler
var i: Integer;
begin
for i:=1 to 10 do
begin
if(not(LoggedIn))then Exit;
case I of
1: if FindDead then
Result := True;
2: if FindMod then
Result := True;
3: if FindMime then
Result := True;
4: if FindMaze then
Result := True;
5: if FindQuiz then
Result := True;
6: if FindDemon then
Result := True;
7: begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Players[CurrentPlayer].Active := False;
Logout;
Exit;
end;
end;
8: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Players[CurrentPlayer].Active := False;
Logout;
Exit;
end;
end;
9 : if FindFight then
begin
Result := True;
RunTo('N', True);
end;
10: if FindTalk then
Result := True;
end;
wait(1);
end;
end;
procedure FtWaitE ( Time : Integer ); //FTWaitD without the status writing
var T, I : integer;
begin
try
T := (Time div 1000)+1;
for I := 1 to T do
begin
Wait ( 250 );
FindTalk;
end
except
begin
if(not(LoggedIn))then Exit;
Wait ( Time );
FindTalk;
end;
end;
if(not(LoggedIn))then Exit;
MarkTime(FindNorMalRandomsTime);
if FindNorMalRandomsTime-SST1 >(10000+Random(5000)) then
begin
FindNorMalRandoms;
MarkTime(SST1);
end;
MarkTime(FindFastRandomsTime);
if FindFastRandomsTime-SST2 >(1500+Random(1500)) then
begin
FindFastRandoms;
MarkTime(SST2);
end;
end;
//----------------------------------------------------------------------------//
// --> OVERAL CHOP PROCEDURES <-- //
//----------------------------------------------------------------------------//
procedure GainLvl; //Idea based on SL 'PS Willow Cutter' CheckLeveled function
Var temp: Integer;
begin
if(not(LoggedIn))then Exit;
if (Clicktocontinue) then WriteLn('We probably gained a lvl!');
Temp := (Players[CurrentPlayer].level[20] - StartLvl);
if (Temp > 0) then
begin
StartLvl := Players[CurrentPlayer].level[20]
Gainedlvl := GainedLvl + Temp;
end
end;
procedure CountLogs; // CharmZ
var LogTemp: integer;
begin
if(not(LoggedIn))then Exit;
GameTab(4);
LogTemp := CountItemBmpMaskTol(LogMask, 20, 10);
TotalLogs := LogTemp + TotalLogs;
Players[CurrentPlayer].Integers[2] := Players[CurrentPlayer].Integers[2] + LogTemp;
end;
procedure FirstEmptySlot;
begin
if(not(LoggedIn))then Exit;
if (InvFull) then exit;
slot := 0;
repeat
slot := slot + 1
until(not ExistsItem(slot));
marktime(LogCheck);
end;
function CheckForLogs: Boolean; //Idea from SL 'PS willow cutter'
begin
if(not(LoggedIn))then Exit;
if (InvFull) then exit;
if (TimeFromMark(LogCheck) >= (15000 + random (1000))) then
begin
GameTab(4);
if (not ExistsItem(slot)) then
begin
WriteLn('No logs found since last check');
Result := True;
FirstEmptySlot;
end else
begin
FirstEmptySlot;
MarkTime(LogPresent);
Result := False;
end
end
if (TimeFromMark(LogPresent) > 240000) then
begin
WriteLn('4 mins no logs were found, Player is set to false');
Players[CurrentPlayer].Loc := '4 mins no logs';
Players[CurrentPlayer].Active := False;
Logout;
end
end;
//----------------------------------------------------------------------------//
// --> AXE PROCEDURES <-- //
//----------------------------------------------------------------------------//
function CharmFindAxeHeadColors: Boolean; //Charm !!!BUGGED FROM HERE ON!!!
var AX, AY: Integer;
begin
if(not(LoggedIn))then Exit;
GameTab(4);
if(FindBitmapMaskTolerance(AxeMask, AX, AY, MIX1, MIY1, MIX2, MIY2, 10, 5))then
begin
Head := GetColor(AX + 5, AY + 3);
Head2 := GetColor(AX + 7, AY + 2);
Head3 := GetColor(AX, AY + 3);
EquipAxe:= False;
Result:= True;
if ((Ax > 605) or (AY > 245) or (Ax < 565) or (AY < 210)) then
begin
MMouse(AX, AY, 1, 1);
HoldMouse(AX, AY, True);
Wait(150 + Random(50));
MMouseItem(1);
GetMousePos(x, y);
ReleaseMouse(x, y, True);
Wait(100 + Random(100));
MMouse(x, y, 2, 2)
end
end else
begin
GameTab(5);
Wait(1000+Random(750));
if(FindBitmapMaskTolerance(AxeMask, AX, AY, MIX1, MIY1, MIX2, MIY2, 10, 5))then
begin
Head := GetColor(AX + 5, AY + 3);
Head2 := GetColor(AX + 7, AY + 2);
Head3 := GetColor(AX, AY + 3);
EquipAxe:= True;
Result:= True;
end
GameTab(4);
end
if(Result= True)then
begin
NoAxe:= False;
WriteLn('Axe head colors - '+IntToStr(Head)+', '+IntToStr(Head2)+ ', and '+IntToStr(Head3));
if EquipAxe then WriteLn('The axe is Equiped') else WriteLn('The axe not is Equiped');
end else
begin
WriteLn('No Axe')
Players[CurrentPlayer].loc := 'No Axes';
Players[CurrentPlayer].Active := False;
Logout;
end
end;
function MyFindAxeHead: Boolean; //Mix from SRL Findhead and Charmz findaxehead procedures + walkback from RedDot
var xh, yh, ex, ey, xb, yb, Tries: Integer;
Start: Boolean;
begin
if(not(LoggedIn))then Exit;
if(InChatMulti('ou do not have', 'You do no', 'o not have a')or
(FindBitmapMaskTolerance(AxeHeadTxt, x, y, MCX1, MCY1, MCX2, MCY2, 10, 85))) then
begin
if not EquipAxe then
begin
GameTab(4);
Wait(50+Random(50));
if(not(FindBitmapMaskTolerance(AxeMask, x, y, MIX1, MIY1, MIX2, MIY2, 20, 10)))then Start:= True;
end else
if EquipAxe then
begin
GameTab(5);
Wait(50+Random(50));
if(not(FindBitmapMaskTolerance(AxeMask, x, y, MIX1, MIY1, MIX2, MIY2, 20, 10)))then Start:= True;
end
end;
if Start then
begin
Status('Finding the axe')
WriteLn('Lost Axe Head, Finding..');
HighestAngle;
if(FindBitmapMaskTolerance(BrokenAxeHeadMask, XH, YH, MIX1, MIY1, MIX2, MIY2, 20, 25))then
begin
AxesBroke:= AxesBroke + 1;
WriteLn('Found a Broken Axe!');
NoAxe:= True;
Mouse(XH,YH,0,0,false);
if not ChooseOption(Ex, Ey, 'emove') then
ChooseOption(ex, ey, 'Cancel');
Result:= False;
Exit;
end
GameTab(4);
FtWaitE(2000+Random(100));
if(InvFull)then
begin
if(FindBitmapMaskTolerance(LogMask, XH, YH, MIX1, MIY1, MIX2, MIY2, 20, 25))then
begin
Mouse(XH, YH, 0, 0, False);
ChooseOption(x, y, 'rop');
end
end
repeat
if not LoggedIn then Exit;
if (FindDTM(HeadDTM, XH, YH, MIX1, MIY1, MIX2, MIY2)) then Break;
if not (FindObjMulti('Take', Head, Head2, Head3, 5)) then
begin
SetRun(True);
Tries := Tries + 1;
WriteLn('Axe head not found. Taken ' + IntToStr(tries) + ' tries');
Status('Axe Head not found - Rotating Screen');
KeyDown(VK_LEFT);
Wait(500 + Random(800));
KeyUp(VK_LEFT);
Wait(400 + Random(300));
if not FindObjMulti('Take', Head, Head2, Head3, 5) then
begin
Status('Axe Head not found - Moving to Red Dot');
x := 648;
y := 83;
FindColorSpiral(x, y, 241, 615, 55, 675, 115)
XB := X
YB := Y
Mouse(x + 3, y + 3, 2, 2, True);
Flag;
Wait(100 + Random(300));
Tries := Tries + 1;
end;
if FindObjMulti('Take', Head, Head2, Head3, 5) then
begin
Status('Found Axe Head');
WriteLn('Axe head was found. Picking it up');
Wait(300 + Random(400));
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
Flag;
Wait(500 + Random(300));
XB := 648 - XB + 648
YB := 83 - YB + 83
Mouse(XB,YB,1,1,True);
Flag;
Wait(500 + Random(300));
Tries := Tries + 1;
end else
begin
if (not(FindSymbol(x, y, 'Tree'))) then
begin
Status('Walking back from Red Dot');
FtWaitE(500 + Random(300));
XB := 648 - XB + 648
YB := 83 - YB + 83
Mouse(XB,YB,1,1,True);
Flag;
FtWaitE(500 + Random(300));
Tries := Tries + 1;
end;
end;
end;
until (tries > 9) or (FindDTM(HeadDTM, XH, YH, MIX1, MIY1, MIX2, MIY2));
if (tries > 9) then NoAxe := True else
if (AttachHead) then
begin
Result := True;
NoAxe := False;
GameTab(4);
end
Setrun(False);
MakeCompass('N');
Flag;
Wait(500);
if FindSymbol(x, y, 'tree') then
begin
MouseFindFlag(x, y -9, 1, 1);
FFlag(0);
end
end;
end;
procedure GetBestAxe;
var RuneAxeMask, AddyAxeMask, MithAxeMask, SteelAxeMask, IronAxeMask, BronzeAxeMask, x ,y: integer;
begin
Status('Getting the best axe from the bank');
Wait(5000);
RuneAxeMask := BitmapFromString(5, 10, 'z78DA958C410E80400803BF040' +
'B6DC2D58DFEFF49EAE281E86A620F3DCC14448EA8DCFB8A37045B' +
'EDBA71C742266728247ED8FCA920B6891DFCDBD24F5E3B37B6C2D' +
'09F3C6FAD4330E125FAC2650704733B67');
AddyAxeMask := BitmapFromString(5, 10, 'z78DA7D8BB10DC0200C0457B2F' +
'11B899208F65F8944503C58E48A2FEE6C91179573175057282FDF' +
'203990A6CF455DCA56E9EB56ADA3598F75FAFF9AF179DE5BDD7E2' +
'B1EABD113D12C06E4823B85');
MithAxeMask := BitmapFromString(5, 10, 'z78DA8D90410AC0200C04BF94B' +
'08992A394FAFF27D5AAA5DB16A11BD8C34C02A2488BCADD8F6047' +
'F58D9B374D4DBD0E9E425D82EDBC6AE341567ED9CE51503CAD6CB' +
'293734F3BAEDEFC7A5546767C3965F91B0716F53C9C');;
SteelAxeMask := BitmapFromString(5, 10, 'z78DA758E490E80300C03BFE4' +
'40EB28D7B2FCFF49A48B5028604B3E8CDB24804B30E79066EEDC6' +
'2C6375A74712B4F1E34C9B047DB78FFF5D1F6992B8BFBDD36AEA0' +
'55DF2D62CB5479CC3EC16F51F7CC87FC96543D6F0C921F8E0BF2C' +
'73C7F');
IronAxeMask := BitmapFromString(5, 10, 'z78DA958C310E80300C03BFE40' +
'863292355E9FF9F44A1194251073C78B8930DF418E68EEC1B2B6B' +
'EE97151BDBE02A26787E8895B1F0F86D1FCE934E5F59E9E6B9878' +
'DD5CC63DB5F457D798A2D382EE20F3C76');
BronzeAxeMask := BitmapFromString(5, 10, 'z78DA33300002430374120A4' +
'C9C8D1D8D8C90496435C8E2669686A6069658642D8CCD8D0CB0C8' +
'82C5299135330189239310352626C626862E98E250BD48B298FEC' +
'5150E1000001FB63B4E');
if ((Players[CurrentPlayer].level[20]) >= 41) and (FindBitmapToleranceIn(RuneAxeMask, x, y, MSX1,MSY1,MSX2,MSY2,20)) then
begin
WriteLn('Rune Axe is found')
Wait(1000);
repeat
Mouse(x, y, 1, 1, True);
Wait(3000);
until (FindBitmapToleranceIn(RuneAxeMask, x, y, MIX1,MIY1,MIX2,MIY2,20))
end else
if ((Players[CurrentPlayer].level[20]) >= 31) and (FindBitmapToleranceIn(AddyAxeMask, x, y, MSX1,MSY1,MSX2,MSY2,20)) then
begin
WriteLn('Addy Axe is found')
Wait(1000);
repeat
Mouse(x, y, 1, 1, True);
Wait(3000);
until (FindBitmapToleranceIn(AddyAxeMask, x, y, MIX1,MIY1,MIX2,MIY2,20))
end else
if ((Players[CurrentPlayer].level[20]) >= 41) and (FindBitmapToleranceIn(MithAxeMask, x, y, MSX1,MSY1,MSX2,MSY2,20)) then
begin
WriteLn('Mithril Axe is found')
repeat
Mouse(x, y, 1, 1, True);
Wait(3000);
until (FindBitmapToleranceIn(MithAxeMask, x, y, MIX1,MIY1,MIX2,MIY2,20))
end else
if ((Players[CurrentPlayer].level[20]) >= 6) and (FindBitmapToleranceIn(SteelAxeMask, x, y, MSX1,MSY1,MSX2,MSY2,20)) then
begin
WriteLn('Steel Axe is found')
Wait(1000);
repeat
Mouse(x, y, 1, 1, True);
Wait(3000);
until (FindBitmapToleranceIn(SteelAxeMask, x, y, MIX1,MIY1,MIX2,MIY2,20))
end else
if FindBitmapToleranceIn(IronAxeMask, x, y, MSX1,MSY1,MSX2,MSY2,20) then
begin
WriteLn('Iron Axe is found');
Wait(1000);
repeat
Mouse(x, y, 1, 1, True);
Wait(3000);
until (FindBitmapToleranceIn(IronAxeMask, x, y, MIX1,MIY1,MIX2,MIY2,20))
end else
if FindBitmapToleranceIn(BronzeAxeMask, x, y, MSX1,MSY1,MSX2,MSY2,20) then
begin
WriteLn('Bronze Axe is found')
Wait(1000);
repeat
Mouse(x, y, 1, 1, True);
Wait(3000);
until (FindBitmapToleranceIn(BronzeAxeMask, x, y, MIX1,MIY1,MIX2,MIY2,20))
end
FreeBitmap(RuneAxeMask);
FreeBitMap(AddyAxeMask);
FreeBitmap(MithAxeMask);
FreeBitmap(SteelAxeMask);
FreeBitmap(IronAxeMask);
FreeBitMap(BronzeAxeMask);
end;
//----------------------------------------------------------------------------//
// --> BANKING PROCEDURES <-- //
//----------------------------------------------------------------------------//
function MyOpenBank: Boolean;
var bx, by, tol: Integer; OpenBankTime: LongInt;
begin
Status('Opening Bank');
WriteLn('Opening Bank');
if(not(LoggedIn))then Exit;
MakeCompass('W');
LowestAngle;
Tol := 0
MMouse(240, 135, 1, 1);
if IsUpTextMulti('e Bank', 'Booth', 'ooth') then
begin
GetMousePos(bx, by);
Mouse(bx, by, 0, 0, False);
if ChooseOption(x, y, 'uickly') then
begin
MarkTime(OpenBankTime);
repeat
if(not(LoggedIn))then Exit;
Wait(10);
if TimeFromMark(OpenBankTime) > 20000 then Exit;
if BankScreen then Break;
until BankScreen;
Result := True;
exit;
end
end else
repeat
Wait(200);
if (FindObjectMulti(bx, by, 'se Bank', 'Bank Booth', 'nk Booth', 8026748, 1984346, 3026483, Tol, 10, True, True)) then
begin
if(not(LoggedIn))then Exit;
Mouse(bx, by, 0, 0, False);
if ChooseOption(x, y, 'uickly') then
begin
MarkTime(OpenBankTime);
repeat
if(not(LoggedIn))then Exit;
Wait(10);
if BankScreen then Break;
if TimeFromMark(OpenBankTime) > 20000 then Exit;
until BankScreen;
Result := True;
exit;
end
Wait(200);
end else Tol := Tol + 10;
until ((BankScreen) or (Tol >= 50))
if (Tol >= 50) then result := False;
end;
procedure Bank;
begin
Status('Banking')
if(not(LoggedIn))then Exit;
if (FlagPresent) then Flag;
GetAllLevels;
GainLvl;
CountLogs;
if (not(MyOpenBank)) then
begin
if(not(LoggedIn))then Exit;
MakeCompass('N');
HighestAngle;
Openbank3;
end
if (EquipAxe) then Deposit(1,28,2) else
Deposit (2,28,2)
if (NoAxe) then
begin
fixbank;
wait(1000);
DepositAll;
Wait(1000)
GetBestAxe;
Wait(1000);
Closebank;
Wait(1000);
if FindBitmapMaskTolerance(AxeMask, x, y, MIX1, MIY1, MIX2, MIY2, 20, 10) then Mouse(x, y, 1, 1, True);
Wait(5000);
CharmFindAxeHeadColors;
Loads := loads +1
Banks := Banks +1
end else
begin
Closebank;
Banks := Banks +1
Loads := Loads +1
end
PerfectNorth;
HighestAngle;
end;
//----------------------------------------------------------------------------//
// --> WALKING PROCEDURES <-- //
//----------------------------------------------------------------------------//
Function CountArray(Color: integer):integer; //Tarajunky
var n:integer;
begin
For n:= 0 to GetArrayLength(ColorArray)-1 do
begin
if ColorArray[n]= Color then result:=result+1;
end;
end;
Function FindDirtColor: integer;
var h,i,j,n,tol,Color:integer; ColorPoints: TPointArray;
begin
if(not(LoggedIn))then Exit;
repeat
if Tol > 60 then Color := DirtColor else Color := 1652808
if Tol = 10 then Color := DirtColor;
FindColorsSpiralTolerance(MMCX, MMCY, ColorPoints, Color, MMX1, MMY1, MMX2 -20, MMY2, tol)
For h := 0 to GetArrayLength(ColorPoints)-1 do
begin
TestColor := GetColor(ColorPoints[h].x, ColorPoints[h].y);
SetArrayLength(ColorArray, 0);
n:=0;
red := (TestColor mod 256) //
green := ((TestColor / 256) mod 256); //
blue := ((TestColor / 256) / 256); //
// this part is Tarajunky's
if Tol < 60 then if FindColor(x, y, TestColor, 680, 15, MMX2, MMY2) then //
if Red - Green >= 3 then if Red - Green <= 32 then //
if Red - Blue >= 30 then if Red - Blue <= 62 then //
if Green - Blue >= 15 then if Green - Blue <= 50 then //
if GetColor(ColorPoints[h].x +5, ColorPoints[h].y) = TestColor then
if GetColor(ColorPoints[h].x -9, ColorPoints[h].y) = TestColor then
if GetColor(ColorPoints[h].x +3, ColorPoints[h].y +3) = TestColor then
if GetColor(ColorPoints[h].x -3, ColorPoints[h].y -3) = TestColor then
for i:= 0 to 15 do
begin
for j:= 0 to 6 do
begin
SetArrayLength(ColorArray, GetArrayLength(ColorArray)+1);
ColorArray[n]:=GetColor(ColorPoints[h].x -9 + i, ColorPoints[h].y -3 + j);
n:=n+1;
end;
end;
if (CountArray(TestColor) > 80) then
begin
WriteLn('Color = '+ inttostr(testColor)+' Red: '+inttostr(Red)+' Blue: '+inttostr(Blue)+' Green: '+inttostr(Green));
WriteLn('DirtColor = ' + Inttostr(TestColor) + ' found at a Tol of ' + IntToStr(Tol));
DirtRoadColor := TestColor;
Result := DirtRoadColor;
DirtColor := DirtRoadColor;
exit;
end
end;
Tol := Tol + 10;
if Tol > 20 then IdleTime(Tol * 30, 75, 1) else Wait(Tol * 30) //Makes sure it wont logout.
until Tol > 100;
WriteLn('DirtRoadColor NOT found!');
WriteLn('Terminating script..');
TerminateScript;
end;
procedure WalkToYews;
begin
if(not(LoggedIn))then Exit;
Status('Walking to Yews');
FindRoadColor;
RadialRoadWalk(RoadColor, 95, 58, 54, -1, 0);
if not FindMMColor(x, y, RoadColor) then FindRoadColor;
RadialRoadWalk(RoadColor, 140, 195, 55, -1, -1);
if not FindMMColor(x, y, RoadColor) then FindRoadColor;
RadialRoadWalk(RoadColor, 140, 195, 55, -1, -1);
if not FindMMColor(x, y, RoadColor) then FindRoadColor;
RadialRoadWalk(RoadColor, 120, 160, 55, -1, -1);
Flag;
FindDirtColor;
RadialWalk(DirtRoadColor, 135, 75, 55, -1, 0);
if not FindMMColor(x, y, DirtRoadColor) then
begin
Flag;
FindDirtColor;
end
RadialWalk(DirtRoadColor, 30, 117, 55, -1, 0);
if not FindMMColor(x, y, DirtRoadColor) then
begin
Flag;
FindDirtColor;
end
RadialWalk(DirtRoadColor , 88, 48, 50, -1, 0);
SymbolAccuracy := 0.5;
if FindSymbol(tx, ty, 'tree') then Mouse(tx, ty +5, 1, 1, True) else
begin
if not FindMMColor(x, y, DirtRoadColor) then
begin
Flag;
FindDirtColor;
end
RadialWalk(DirtRoadColor , 88, 48, 50, -1, 0);
if not FindSymbol(tx, ty, 'tree') then
begin
if TreeSymbol <> 0 then
if FindColorTolerance(tx, ty, Treesymbol, MMX1, MMY1, 785, 90, 1) then Mouse(tx, ty +9, 1, 1, True) else
begin
WriteLn('YewSymbol not found, maybe its an Ent, so we are waiting..');
FtWaitE(15000);
MouseBack(Random(1100) - Random(600), Random(700) - Random (400), 8, 8, 50, 60, 0);
FtWaitE(10000);
if FindSymbol(tx, ty, 'tree') then Mouse(tx, ty +9, 1, 1, True);
end else
begin
WriteLn('Tree not found');
Players[CurrentPlayer].Loc := 'Lost while walking to Yews';
Players[CurrentPlayer].Active := False;
LogOut;
SymbolAccuracy := 0.9;
exit;
end
end
end;
Flag;
Players[CurrentPlayer].Loc := 'Yew 1';
SymbolAccuracy := 0.9;
end;
procedure WalkToBank;
begin
if(not(LoggedIn))then Exit;
Status('Walking to Bank');
FindDirtColor;
RadialWalk(DirtRoadColor , 290, 245, 58, 1, 0);
if not FindMMColor(x, y, DirtRoadColor) then
begin
Flag;
FindDirtColor;
end
RadialWalk(DirtRoadColor , 276, 230, 58, 1, 0);
if not FindMMColor(x, y, DirtRoadColor) then
begin
Flag;
FindDirtColor;
end
RadialWalk(DirtRoadColor , 185, 265, 55, 1, 0);
Flag;
FindRoadColor;
RadialRoadWalk(RoadColor, 270, 320, 65, 1, 1);
if not FindMMColor(x, y, RoadColor) then FindRoadColor;
RadialRoadWalk(RoadColor, 320, 365, 58, 1, 1);
Flag;
SymbolAccuracy := 0.3;
if (DTM3Flag(BankDot1, BankDot2, BankDot3, True)) then Flag else
if FindSymbol(tx, ty, 'bank') then Mouse(tx, ty, 1, 1, True) else
begin
if not FindMMColor(x, y, RoadColor) then FindRoadColor;
RadialRoadWalk(RoadColor, 335, 390, 45, 1, 1);
Flag;
if (DTM3Flag(BankDot1, BankDot2, BankDot3, True)) then Flag else
if FindSymbol(tx, ty, 'bank') then Mouse(tx, ty, 1, 1, True) else
begin
WriteLn('Bank not found');
Players[CurrentPlayer].Loc := 'Lost while walking to bank';
Players[CurrentPlayer].Active := False;
LogOut;
SymbolAccuracy := 0.9;
exit;
end
end
Players[CurrentPlayer].Loc := 'Bank';
SymbolAccuracy := 0.9;
end;
procedure Yew1to2;
begin
if(not(LoggedIn))then Exit;
if ((TreeSymbol = 0) or (not(FindMMcolor(x, y, TreeSymbol)))) then TreeSymbol := (GetSymbolColor(x, y, 'tree'))
MouseFindFlag(675, 115, 1, 1);
fflag(3);
if (FindColorTolerance(x, y, Treesymbol, 650, 70, 720, 155, 1)) then mouse(x, y, 1, 1, true);
Flag;
Players[CurrentPlayer].Loc := 'Yew 2';
Wait(500);
end;
procedure Yew2to1;
begin
if(not(LoggedIn))then Exit;
if ((TreeSymbol = 0) or (not(FindMMcolor(x, y, TreeSymbol)))) then TreeSymbol := (GetSymbolColor(x, y, 'tree'))
MouseFindFlag(616, 60, -1, 0)
fflag(3);
if (FindColorTolerance(x, y, Treesymbol, 570, 10, 650, 100, 1)) then mouse(x, y +9, 1, 1, true);
Flag;
Players[CurrentPlayer].Loc := 'Yew 1';
Wait(500);
end;
procedure ChangeYews;
begin
if(not(LoggedIn))then Exit;
Status('Changing Yews');
if LowerCase(Players[CurrentPlayer].Loc) = 'yew 1' then
begin
WriteLn('Walking from the first Yew to the second.');
Yew1to2;
end else
if LowerCase(Players[CurrentPlayer].Loc) = 'yew 2' then
begin
WriteLn('Walking from the second Yew to the first.');
Yew2to1;
end
ChangedYews := ChangedYews +1;
end;
//----------------------------------------------------------------------------//
// --> CHOPPING PROCEDURES <-- //
//----------------------------------------------------------------------------//
function EntCheck(tx, ty: integer; Move: Boolean): Boolean;
begin
if(not(LoggedIn))then Exit;
if Move then MMouse(tx, ty, 1, 1);
Wait(150 +Random(150));
if IsUpText('Yew') then
if FindColorTolerance(x, y, 55769, 85, 15, 115, 15, 20) then Result := True;
end;
function HandleEnt(Move: Boolean): Boolean;
var Ent: LongInt;
begin
if(not(LoggedIn))then Exit;
if (FindColorCircleTolerance(x,y, 195836, 15, 648, 83, 20)) then
if EntCheck(TreeX, TreeY, Move) then
begin
WriteLn('Handling Ent!');
Result := True;
Mouse(MMCX, MMCY, 0, 0, True);
MarkTime(Ent);
repeat
FTWaitE(1500);
until ((not EntCheck(TreeX, TreeY, True)) or (TimeFromMark(Ent) > 120000))
EntsAvoided := EntsAvoided +1;
end else
Result := False;
end;
Function FindDeformedYew(Var ObjX, ObjY: Integer): Boolean; //Charmz <-- Not used for now, as it causes to much lack.
Var
Acc, Ref: Extended;
TX, TY, Times, Tol: Integer;
Begin
if(not(LoggedIn))then Exit;
WriteLn('Performing FindDeformedYew');
Ref:= 0.9;
Tol:= 0;
For Times := 1 to 10 do
Begin
FindTalk;
Wait(50+Random(100));
Try
FindDeformedBitmapToleranceIn(Tree, TX, TY, MSX1 + 50, MSY1 + 30, MSX2 - 50, MSY2 - 50, Tol, 2, True, Acc);
except
Result:= False;
End
If(Acc >= Ref)then
Begin
tx := tx +10
TempColor := GetColor(tx, ty);
MMouse(TX, TY, 3, 3);
If(IsUpTextMulti('hop down Ye', 'down Yew', 'own Y')) or (IsUpTextMulti('Yew', 'ew', 'Ye'))then
Begin
ObjX:= TX;
ObjY:= TY;
TreeX := ObjX;
TreeY := ObjY;
Result:= True;
Exit;
End
End
Ref:= Ref - 0.05; // Ref - 0.1
Tol:= Tol + 5; // Tol + 10
Wait(Random(50));
Wait(1);
End
Wait(1);
End;
function FindYew(var x, y: integer): Boolean;
var
Points: TPointArray;
I, Ci, Tol: Integer;
begin
repeat
if FindMSColorTol(x, y, 598048, Tol) then Break else Tol := Tol +2
until Tol > 15
if Tol > 15 then
begin
Result := False;
exit;
Tol := 0
end else
begin
FindColorsSpiralTolerance(MSCX, MSCY, Points, 598048, MSX1 + 50, MSY1 + 30, MSX2 - 50, MSY2 - 50, tol)
ci := 0;
for I := 1 to GetArrayLength(Points) - 1 do
begin
if (Distance(Points[ci].x, 0, Points[i].x, 0) >= 2) and
(Distance(0, Points[ci].y, 0, Points[i].y) >= 2) then
ci := I
else
begin
Points[i].x := 0;
Points[i].y := 0;
end;
end;
for i := 0 to GetArrayLength(Points) - 1 do
begin
if (Points[i].x <> 0) then
if FindColorTolerance(x, y, 2373688, Points[i].x -5, Points[i].y -5, Points[i].x +5, Points[i].y +5, 5 +Tol) then
if FindColorTolerance(x, y, 4159600, Points[i].x -5, Points[i].y -5, Points[i].x +5, Points[i].y +5, 5 +Tol) then
if FindColorTolerance(x, y, 2900024, Points[i].x -5, Points[i].y -5, Points[i].x +5, Points[i].y +5, 5 +Tol) then
begin
TempColor := GetColor(Points[i].x, Points[i].y);
MMouse(Points[i].x, Points[i].y, 0, 0)
Wait(50);
if (IsUpText('Yew')) then
begin
Status('Yew found at a Tol of ' +IntToStr(Tol));
Result := True;
Break;
end;
end;
end;
if (Result) then
begin
x := Points[i].x;
y := Points[i].y;
TreeX := x;
TreeY := y;
end;
end;
Tol := 0;
end;
function TreeGone(Sx, Sy: integer): Boolean;
begin
if(not(LoggedIn))then Exit;
if ((not FindColor(x, y, TempColor, Sx -4, Sy -4, Sx +4, Sy +4)) or (TimeFromMark(ChopMark) > 120000)) then
begin
MMouse(TreeX, TreeY, 1, 1);
Wait(100);
if not IsUpText('Yew') then
begin
Status('Yew Gone');
Result := True;
end else
begin
if FindObjEx(tx, ty, 'Yew', TreeX -20, TreeY -20, TreeX +20, TreeY +20, 598048, 20, 2, 2, 50, True) then
begin
TempColor := GetColor(tx, ty);
MarkTime(ChopMark);
end
end
end
end;
function ClickTree: Boolean;
var Ent: LongInt;
begin
if(not(LoggedIn))then Exit;
if FindYew(tx, ty) then
begin
GainLvl;
if not EntCheck(TreeX, TreeY, False) then
begin
if(Random(20) < 15)then
begin
Mouse(tx, ty, 1, 1, True);
end else
begin
Mouse(tx, ty, 0, 0, False);
if not ChooseOption(x, y, 'hop down')then
Mouse(tx, ty, 1, 1, True);
end
end else
begin
MarkTime(Ent);
repeat
FTWaitE(1500);
until ((not EntCheck(TreeX, TreeY, True)) or (TimeFromMark(Ent) > 120000));
Mouse(tx, ty, 1, 1, True);
end
Result := True;
FtWaitE(100);
if FindFastRandoms then Mouse(tx, ty, 1, 1, True);
GainLvl;
MyFindAxeHead;
end else
{ if FindDeformedYew(tx, ty) then
begin
Wait(50 +Random(150));
if not HandleEnt(False) then Mouse(tx, ty, 1, 1, True);
Result := True;
end else} Result := False;
end;
procedure WaitTillTree;
var TillTreeMark: LongInt;
begin
if(not(LoggedIn))then Exit;
if InvFull then Exit;
Status('Yew not found, waiting..');
MarkTime(TillTreeMark);
GetAllLevels;
repeat
case Random(20) of
0 : SleepAndMoveMouse(2000 +Random(1000));
1 : MouseBack(Random(1100) - Random(600), Random(700) - Random (400), 8, 8, 50, 60, 0);
2 : IdleTime(2000 +Random(1000), 14, 2);
3 : begin RandomRClick; Wait(200); ChooseOption(x, y, 'Cancel'); end
4 : FtWaitE(1500);
5 : PickUpMouse;
6 : FtWait(50);//AlmostLogOut;
7 : GameTab(Random(13) +1);
8 : SleepAndMoveMouse(2000 +Random(1000));
9 : WWait(3000);
10: PickUpMouse;
11: FtWait(8);
12: IdleTime(3000 +Random(1000), 14, 2);
13: WWait(2500);
14: IdleTime(2700, 11, 1);
15: GameTab(Random(13) +1);
16: WWait(2000);
17: FtWaitE(1500);
18: PickUpMouse;
19: begin RandomRClick; FtWaitE(200); ChooseOption(x, y, 'Cancel'); end
end
FindFastRandoms;
if ClickTree then Break;
FindFastRandoms;
Wait(1000);
if (TimeFromMark(Report) > 180000) then ProgressReport;
FtWaitE(1500 +Random(2000));
if (TimeFromMark(TillTreeMark) > 450000) then
begin
WriteLn('No tree for 7,5 minutes');
Players[CurrentPlayer].Loc := 'No tree in 7,5 mins';
Players[CurrentPlayer].Active := False;
LogOut;
end
until(ClickTree);
end;
procedure Chop;
var TreeWait: LongInt;
begin
if(not(LoggedIn))then Exit;
HighestAngle;
repeat
Status('Chopping');
FirstEmptySlot;
if NoAxe then break;
if not ClickTree then WaitTillTree;
MarkTime(ChopMark);
MarkTime(LogPresent);
MarkTime(LogCheck);
repeat
Status('Chopping');
if(not(LoggedIn))then Exit;
if InvFull then Break;
FtWait(2);
MyFindAxeHead;
if NoAxe then break;
if HandleEnt(True) then ClickTree;
if not TreeGone(TreeX, TreeY) then
case Random(20) of
0 : SleepAndMoveMouse(500 +Random(500));
1 : MouseBack(Random(1100) - Random(600), Random(700) - Random (400), 8, 8, 50, 60, 0);
2 : IdleTime(1000 +Random(1000), 14, 2);
3 : begin RandomRClick; Wait(200); ChooseOption(x, y, 'Cancel'); end
4 : FtWait(2);
5 : PickUpMouse;
6 : SleepAndMoveMouse(500 +Random(500));//AlmostLogOut;
7 : GameTab(Random(13) +1);
8 : SleepAndMoveMouse(500 +Random(1000));
9 : WWait(1000);
10: PickUpMouse;
11: FtWait(6);
12: IdleTime(500 +Random(1000), 14, 2);
13: WWait(500);
14: IdleTime(700, 11, 1);
15: GameTab(Random(13) +1);
16: HandleEnt(False);
17: MouseBack(Random(1100) - Random(600), Random(700) - Random (400), 8, 8, 50, 60, 0);
18: PickUpMouse;
19: begin RandomRClick; Wait(200); ChooseOption(x, y, 'Cancel'); end
end
if not TreeGone(TreeX, TreeY) then
begin
MarkTime(TreeWait);
if HandleEnt(True) then ClickTree;
repeat
FtWaitE(500 +Random(1000));
Wait(100);
if HandleEnt(False) then ClickTree;
Wait(100);
if NoAxe then break;
if CheckForLogs then ClickTree;
if TreeGone(TreeX, TreeY) then break;
if InvFull then Break;
if (TimeFromMark(Report) > 180000) then ProgressReport;
until(TimeFromMark(TreeWait) > 30000);
end
until ((TreeGone(TreeX, TreeY)) or (TimeFromMark(ChopMark) > 90000));
MyFindAxeHead;
if NoAxe then break;
if not InvFull then ChangeYews;
until ((InvFull) or (not(LoggedIn)));
if LowerCase(Players[CurrentPlayer].Loc) = 'yew 2' then Yew2to1;
end;
//----------------------------------------------------------------------------//
// --> MAIN THING <-- //
//----------------------------------------------------------------------------//
begin
ClearDebug;
WriteLn('Nielsie95 Draynor Yew Cutter / Banker version '+ Version);
Status('Nielsie95 Draynor Yew Cutter / Banker version '+ Version);
Wait(2500);
setupsrl;
activateclient;
BenMouse := False;
MouseSpeed := 20 + random(5);
DeclarePlayers;
NickNameBMP:=CreateBitmapMaskFromText(Players[CurrentPlayer].Nick,UpChars);
LoadVar;
DirtColor := HumanDirtColor;
LoadsToDo := Players[CurrentPlayer].Integers[1];
LoginPlayer;
CharmFindAxeHeadColors;
GetAllLevels;
MarkTime(LoggedInTime);
repeat
repeat
if LowerCase(Players[CurrentPlayer].loc) = 'bank' then
begin
if InvCount > 10 then Bank;
if (TimeFromMark(LoggedInTime) > MaxLoggedInTime*60*1000) then Break;
if (Loads >= LoadsToDo) then Break;
WalkToYews;
end
if ((LowerCase(Players[CurrentPlayer].loc) = 'yew 1') or (LowerCase(Players[CurrentPlayer].loc) = 'yew 2')) then
begin
Chop;
Wait(100);
if (TimeFromMark(LoggedInTime) > MaxLoggedInTime*60*1000) then Break;
WalkToBank;
end
ProgressReport;
if not LoggedIn then Break;
until((Loads >= LoadsToDo) or (TimeFromMark(LoggedInTime) > MaxLoggedInTime*60*1000) or (not(LoggedIn)));
if (TimeFromMark(LoggedInTime) > MaxLoggedInTime*60*1000) then
begin
if not (Players[CurrentPlayer].Active) then wait(100) else
Players[CurrentPlayer].loc := 'Times up';
LogOut;
WriteLn('Time is up, Logging in next player');
end
if Loads >= LoadsToDo then
begin
if not (Players[CurrentPlayer].Active) then wait(100) else
Players[CurrentPlayer].loc := 'Loads Done';
LogOut;
WriteLn('Loads are done, Logging in next player');
end
if LoggedIn then LogOut;
Loads := 0;
LoadsToDo := Players[CurrentPlayer].Integers[1];
NextPlayer(Players[CurrentPlayer].Active);
MarkTime(LoggedInTime);
CharmFindAxeHeadColors;
GetAllLevels;
ProgressReport;
until(False);
end.
Error:
Line 363: [Error] (12815:1): Unknown identifier 'Head' in script C:\Program Files\SCAR 3.11\Scripts\yewchoptest.scar
You do no longer loose your axe head, its been taken out by Jagex.
Either start again with a fresh script, or remove everything that doesnt work![]()
Rogeruk's Al-Kharid Tanner V1.1 [Released]
Rogeruk's Barbarian Crafter [Coming Soon]
Rogeruk's Guild Fisher [Coming Soon]
!! - Taking Requests - !!
OMFG you dont lose axe heads now??? OMFG now we can auto forvever and ever and ever and everYou do no longer loose your axe head, its been taken out by Jagex.
Either start again with a fresh script, or remove everything that doesnt workuntil we get the new random -.-.
Even If You Are On Your Way, You Will Get Run Over If You Just Sit There.
![]()
-ILikePie1995.
My Best Script I Yet Made, Go Check It Out, Its In The Fighting Section. Look For UndeadKiller!
GET FREE CASH!!!READ ALL ABOUT IT!!!
http://www.AdPaid.com/ptr/pages/join...d=ilikepie1995
JOIN AdPaid.Com NOW!!!ITS OWNAGE!!!
http://www.AdPaid.com/ptr/pages/conf...d=ilikepie1995
Please update this script?
Apparently you don't lose your axe head anymore, lol.
I'll try to fix this script. But i have never scripted be4. Well I fixed it for a quarter, so i'll get on it when i get home from college (1st day ^^ w00t)
SCAR Code:{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
| Nielsie95's Yew Retriever Draynor TEMP VERSION, DOES NOT WORK |
|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
| |
| Will cut and bank from the 2 yews south from draynor |
| |
| Has Antiban - AntiRandoms - AutoColor |
| |
|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
| |
| Start at 1 of the 2 yews or in bank. |
| Have axe wielded or in inv. Also have more in bank. |
| Please set HumanDirtColor for safety =] |
| |
|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
| |
| VERSION 1.1 |
| |
| Again tried to fix that stupid DirtColorFinder |
| |
| VERSION 1.0 |
| |
| A big update was done, better DirtFinding, |
| faster tree finding, better ent finding, new walking |
| procedures and a change to the Progress Report and |
| added some Status writing =] |
| |
| VERSION 0.75 |
| |
| Small update to DirtFinding, small banking bug |
| removed, little update to chopping =] |
| |
| VERSION 0.50 |
| |
| My very first version of my very first script! |
| |
|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
program NielsYewRetrieverDraynor;
{.Include SRL/SRL.SCAR}
{.Include SRL/SRL/Skill/Woodcutting.Scar}
//----------------------------------------------------------------------------//
// --> SCRIPT SETUP <-- //
//----------------------------------------------------------------------------//
const Version = '1.1'; //No need to change
MaxLoggedInTime = 25; //Max time the player can be logged in
HumanDirtColor = 2183262; //Set this if DirtColorFinder doesn't work
//----------------------------------------------------------------------------//
// --> VARIABLES <-- //
//----------------------------------------------------------------------------//
var tx, ty, TreeX, TreeY, TempColor, DirtColor, DirtRoadColor, Slot, LoadsToDo, AxesBroke,
BankDot1, BankDot2, BankDot3, TreeSymbol, Tree, TotalLogs, LogMask, AxeMask, Loads,
ChangedYews, StartLvl, GainedLvl, AxeHeadTxt, BrokenAxeHeadMask, HeadDTM: integer;
ColorArray: array of integer; NoAxe: Boolean;
ChopMark, LogPresent, LogCheck, SST1, SST2, FindNorMalRandomsTime, FindFastRandomsTime,
Report, LoggedInTime: LongInt;
//----------------------------------------------------------------------------//
// --> PLAYER SETUP <-- //
//----------------------------------------------------------------------------//
procedure DeclarePlayers;
begin
HowManyPlayers:=4;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name :='timefault'; //Name
Players[0].Pass :=''; //Password
Players[0].Nick :=''; //3-4 letter nickname
Players[0].Loc :='Bank'; //Where is your Player? CHOOSE FROM: Bank, Yew 1 or Yew 2
Players[0].Integers[1] := 2 ; //Loads to do
Players[0].Active := True; //Is the Player used?
end;
//----------------------------------------------------------------------------//
// --> OVERALL PROCEDURES <-- //
//----------------------------------------------------------------------------//
procedure LoadVar;
begin
BankDot1 := DTMFromString('78DA636C67626008664001FFFFFF67F80FA41' + //By WT-Fakawi --> From Charm
'921ECFF8CB54035DEA86AFEFC61621081AA0101C63A4C73B0AA09' +
'C7AF06000153117B');
BankDot2 := DTMFromString('78DA63EC60626008624001FFFFFF67F80FA41' +
'921ECFF8C3540353EA86AFEFC61621081AA0101C63AA09A1022D4' +
'44E057030001B5117D');
BankDot3 := DTMFromString('78DA63EC60626008624001FFFFFF67F80FA41' +
'921ECFF8CF540359EA86AFEFC61621081AA0101C63AA09A40026A' +
'6A816A42F1AB010000781176');
Tree := BitmapFromString(9, 1, '788843283020606837809046607' +
'01D001000506022506022485032');
LogMask := BitmapFromString(13, 10, 'z78DA33301805E40037BC8' + //Charm
'0BAB6D0C2E5F451494998D02E5471010034299979');
AxeHeadTxt := BitmapFromString(30, 10, 'z78DA7373B334303170' +
'0393A62EA62626E6839374437227320901A36E1E75333124A9265' +
'04B3DA9EE84005C2663AAA4AE7A5CBAF0BB16530D729A21559C98' +
'10C36F0E316E26DE6DF87D4DBC1B28B197BCF0C404F8639972715' +
'AC435A9B98954F3013DD58547');
HeadDTM := DTMFromString('78DA63CC62626078C180021C2312191E02694' +
'620FE0F048C694035CF18D000231209A473816A9E12A1E6150135' +
'A94035AF09A801B9F9090135994498930C54F392809A3CCCF0415' +
'70300FB8311DF');
BrokenAxeHeadMask := BitmapFromString(9, 10, 'z78DA7373230D1890' +
'05C8D34BAA2EE2D5E3F21131FEC56FCBE091A53C34007F307225');
AxeMask := BitmapFromString(10, 10, 'z78DA7373230D18500028316' +
'130E825353470A921DE3DE499409EDB480D25FCE10000B72C7CE1' +
'');
end;
procedure PlayerStats; //Based on Fakawi's Progress Report
var Active: string;
i, PlayerTemp: Integer;
begin
if Players[CurrentPlayer].Loc <> 'Bank' then
begin
GameTab(4);
PlayerTemp := Players[CurrentPlayer].Integers[2];
Players[CurrentPlayer].Integers[2] := CountItemBmpMaskTol(LogMask, 20, 10) + PlayerTemp;
end
Writeln(' ');
WriteLn ('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>');
for I := 0 to HowManyPlayers - 1 do
begin
if Players[i].Active=True then Active:='True' else Active:='False';
WriteLn ( '< ' + Inttostr ( I ) + ' : ' + Players[i].Name + ' = ' + Active
+' . Loc = ' + Players[i].Loc +
+' . Chopped ' + IntToStr(Players[i].Integers[2]) +' Logs.'
+' . Lvl = ' + IntToStr(Players[i].level[20]));
end
WriteLn ('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>');
Players[CurrentPlayer].Integers[2] := PlayerTemp;
end;
procedure ProgressReport; //Based on Fakawi's Progress Report
var LogTemp: Integer;
begin
if Players[CurrentPlayer].Loc = 'Bank' then LogTemp := TotalLogs else
begin
GameTab(4);
LogTemp := CountItemBmpMaskTol(LogMask, 20, 10);
LogTemp := LogTemp + TotalLogs;
end;
//Cleardebug;
SRLRandomsReport;
Writeln(' ');
Writeln('/~~~~~~~~~~~~~~~~~~ Niels ~~~~~~~~~~~~~~~~~~~\');
Writeln('||~~~~~~~~~~~~~~~~ Draynor ~~~~~~~~~~~~~~~~~||');
Writeln('||~~~~~~~~~~~ Yew Cutter/Banker ~~~~~~~~~~~~||');
Writeln('||~~~~~~~~~~~~ Progress Report ~~~~~~~~~~~~~||');
Writeln('||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||');
Writeln('|| Worked for '+ TimeRunning);
Writeln('|| Chopped '+ IntToStr(LogTemp)+(' Logs.'));
Writeln('|| Banked '+ IntToStr(Banks)+' time[s].');
if ChangedYews > 0 then
WriteLn('|| Changed from yew '+ IntToStr(ChangedYews)+' time[s].');
if AxesBroke > 0 then
WriteLn('|| Broken '+ IntToStr(AxesBroke) +' Axe[s].');
if GainedLvl > 0 then
WriteLn('|| Gained '+ IntToStr(GainedLvl) +' Lvl[s].');
WriteLn('|| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ');
WriteLn('|| Current Colors:');
WriteLn('|| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ');
WriteLn('|| Dirt: '+IntToStr(DirtRoadColor));
WriteLn('|| Road: '+ IntToStr(RoadColor));
WriteLn('|| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ');
WriteLn('|| Current Player: ' + Players[CurrentPlayer].Name);
WriteLn('|| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ');
WriteLn('|| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ');
WriteLn('|| Current Version: ' + Version);
WriteLn('|| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ');
Writeln('\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/');
PlayerStats;
MarkTime(Report);
end;
function FindFastRandoms: Boolean; //Almost Directly from Fakawi's Goblin Sheduler
var i: Integer;
begin
for i:=1 to 10 do
begin
if(not(LoggedIn))then Exit;
case I of
1: if FindDead then
Result := True;
2: if FindMod then
Result := True;
3: if FindMime then
Result := True;
4: if FindMaze then
Result := True;
5: if FindQuiz then
Result := True;
6: if FindDemon then
Result := True;
7: begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Players[CurrentPlayer].Active := False;
Logout;
Exit;
end;
end;
8: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Players[CurrentPlayer].Active := False;
Logout;
Exit;
end;
end;
9 : if FindFight then
begin
Result := True;
RunTo('N', True);
end;
10: if FindTalk then
Result := True;
end;
wait(1);
end;
end;
procedure FtWaitE ( Time : Integer ); //FTWaitD without the status writing
var T, I : integer;
begin
try
T := (Time div 1000)+1;
for I := 1 to T do
begin
Wait ( 250 );
FindTalk;
end
except
begin
if(not(LoggedIn))then Exit;
Wait ( Time );
FindTalk;
end;
end;
if(not(LoggedIn))then Exit;
MarkTime(FindNorMalRandomsTime);
if FindNorMalRandomsTime-SST1 >(10000+Random(5000)) then
begin
FindNorMalRandoms;
MarkTime(SST1);
end;
MarkTime(FindFastRandomsTime);
if FindFastRandomsTime-SST2 >(1500+Random(1500)) then
begin
FindFastRandoms;
MarkTime(SST2);
end;
end;
//----------------------------------------------------------------------------//
// --> OVERAL CHOP PROCEDURES <-- //
//----------------------------------------------------------------------------//
procedure GainLvl; //Idea based on SL 'PS Willow Cutter' CheckLeveled function
Var temp: Integer;
begin
if(not(LoggedIn))then Exit;
if (Clicktocontinue) then WriteLn('We probably gained a lvl!');
Temp := (Players[CurrentPlayer].level[20] - StartLvl);
if (Temp > 0) then
begin
StartLvl := Players[CurrentPlayer].level[20]
Gainedlvl := GainedLvl + Temp;
end
end;
procedure CountLogs; // CharmZ
var LogTemp: integer;
begin
if(not(LoggedIn))then Exit;
GameTab(4);
LogTemp := CountItemBmpMaskTol(LogMask, 20, 10);
TotalLogs := LogTemp + TotalLogs;
Players[CurrentPlayer].Integers[2] := Players[CurrentPlayer].Integers[2] + LogTemp;
end;
procedure FirstEmptySlot;
begin
if(not(LoggedIn))then Exit;
if (InvFull) then exit;
slot := 0;
repeat
slot := slot + 1
until(not ExistsItem(slot));
marktime(LogCheck);
end;
function CheckForLogs: Boolean; //Idea from SL 'PS willow cutter'
begin
if(not(LoggedIn))then Exit;
if (InvFull) then exit;
if (TimeFromMark(LogCheck) >= (15000 + random (1000))) then
begin
GameTab(4);
if (not ExistsItem(slot)) then
begin
WriteLn('No logs found since last check');
Result := True;
FirstEmptySlot;
end else
begin
FirstEmptySlot;
MarkTime(LogPresent);
Result := False;
end
end
if (TimeFromMark(LogPresent) > 240000) then
begin
WriteLn('4 mins no logs were found, Player is set to false');
Players[CurrentPlayer].Loc := '4 mins no logs';
Players[CurrentPlayer].Active := False;
Logout;
end
end;
//----------------------------------------------------------------------------//
// --> AXE PROCEDURES <-- //
//----------------------------------------------------------------------------//
function MyFindAxeHead: Boolean; //Mix from SRL Findhead and Charmz findaxehead procedures + walkback from RedDot
var xh, yh, ex, ey, xb, yb, Tries: Integer;
Start: Boolean;
begin
if(not(LoggedIn))then Exit;
if(InChatMulti('ou do not have', 'You do no', 'o not have a')or
(FindBitmapMaskTolerance(AxeHeadTxt, x, y, MCX1, MCY1, MCX2, MCY2, 10, 85))) then
begin
if not EquipAxe then
begin
GameTab(4);
Wait(50+Random(50));
if(not(FindBitmapMaskTolerance(AxeMask, x, y, MIX1, MIY1, MIX2, MIY2, 20, 10)))then Start:= True;
end else
if EquipAxe then
begin
GameTab(5);
Wait(50+Random(50));
if(not(FindBitmapMaskTolerance(AxeMask, x, y, MIX1, MIY1, MIX2, MIY2, 20, 10)))then Start:= True;
end
end;
if Start then
begin
Status('Finding the axe')
WriteLn('Lost Axe Head, Finding..');
HighestAngle;
if(FindBitmapMaskTolerance(BrokenAxeHeadMask, XH, YH, MIX1, MIY1, MIX2, MIY2, 20, 25))then
begin
AxesBroke:= AxesBroke + 1;
WriteLn('Found a Broken Axe!');
NoAxe:= True;
Mouse(XH,YH,0,0,false);
if not ChooseOption(Ex, Ey, 'emove') then
ChooseOption(ex, ey, 'Cancel');
Result:= False;
Exit;
end
GameTab(4);
FtWaitE(2000+Random(100));
if(InvFull)then
begin
if(FindBitmapMaskTolerance(LogMask, XH, YH, MIX1, MIY1, MIX2, MIY2, 20, 25))then
begin
Mouse(XH, YH, 0, 0, False);
ChooseOption(x, y, 'rop');
end
end
repeat
if not LoggedIn then Exit;
if (FindDTM(HeadDTM, XH, YH, MIX1, MIY1, MIX2, MIY2)) then Break;
if not (FindObjMulti('Take', Head, Head2, Head3, 5)) then
begin
SetRun(True);
Tries := Tries + 1;
WriteLn('Axe head not found. Taken ' + IntToStr(tries) + ' tries');
Status('Axe Head not found - Rotating Screen');
KeyDown(VK_LEFT);
Wait(500 + Random(800));
KeyUp(VK_LEFT);
Wait(400 + Random(300));
if not FindObjMulti('Take', Head, Head2, Head3, 5) then
begin
Status('Axe Head not found - Moving to Red Dot');
x := 648;
y := 83;
FindColorSpiral(x, y, 241, 615, 55, 675, 115)
XB := X
YB := Y
Mouse(x + 3, y + 3, 2, 2, True);
Flag;
Wait(100 + Random(300));
Tries := Tries + 1;
end;
if FindObjMulti('Take', Head, Head2, Head3, 5) then
begin
Status('Found Axe Head');
WriteLn('Axe head was found. Picking it up');
Wait(300 + Random(400));
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
Flag;
Wait(500 + Random(300));
XB := 648 - XB + 648
YB := 83 - YB + 83
Mouse(XB,YB,1,1,True);
Flag;
Wait(500 + Random(300));
Tries := Tries + 1;
end else
begin
if (not(FindSymbol(x, y, 'Tree'))) then
begin
Status('Walking back from Red Dot');
FtWaitE(500 + Random(300));
XB := 648 - XB + 648
YB := 83 - YB + 83
Mouse(XB,YB,1,1,True);
Flag;
FtWaitE(500 + Random(300));
Tries := Tries + 1;
end;
end;
end;
until (tries > 9) or (FindDTM(HeadDTM, XH, YH, MIX1, MIY1, MIX2, MIY2));
if (tries > 9) then NoAxe := True else
if (AttachHead) then
begin
Result := True;
NoAxe := False;
GameTab(4);
end
Setrun(False);
MakeCompass('N');
Flag;
Wait(500);
if FindSymbol(x, y, 'tree') then
begin
MouseFindFlag(x, y -9, 1, 1);
FFlag(0);
end
end;
end;
procedure GetBestAxe;
var RuneAxeMask, AddyAxeMask, MithAxeMask, SteelAxeMask, IronAxeMask, BronzeAxeMask, x ,y: integer;
begin
Status('Getting the best axe from the bank');
Wait(5000);
RuneAxeMask := BitmapFromString(5, 10, 'z78DA958C410E80400803BF040' +
'B6DC2D58DFEFF49EAE281E86A620F3DCC14448EA8DCFB8A37045B' +
'EDBA71C742266728247ED8FCA920B6891DFCDBD24F5E3B37B6C2D' +
'09F3C6FAD4330E125FAC2650704733B67');
AddyAxeMask := BitmapFromString(5, 10, 'z78DA7D8BB10DC0200C0457B2F' +
'11B899208F65F8944503C58E48A2FEE6C91179573175057282FDF' +
'203990A6CF455DCA56E9EB56ADA3598F75FAFF9AF179DE5BDD7E2' +
'B1EABD113D12C06E4823B85');
MithAxeMask := BitmapFromString(5, 10, 'z78DA8D90410AC0200C04BF94B' +
'08992A394FAFF27D5AAA5DB16A11BD8C34C02A2488BCADD8F6047' +
'F58D9B374D4DBD0E9E425D82EDBC6AE341567ED9CE51503CAD6CB' +
'293734F3BAEDEFC7A5546767C3965F91B0716F53C9C');;
SteelAxeMask := BitmapFromString(5, 10, 'z78DA758E490E80300C03BFE4' +
'40EB28D7B2FCFF49A48B5028604B3E8CDB24804B30E79066EEDC6' +
'2C6375A74712B4F1E34C9B047DB78FFF5D1F6992B8BFBDD36AEA0' +
'55DF2D62CB5479CC3EC16F51F7CC87FC96543D6F0C921F8E0BF2C' +
'73C7F');
IronAxeMask := BitmapFromString(5, 10, 'z78DA958C310E80300C03BFE40' +
'863292355E9FF9F44A1194251073C78B8930DF418E68EEC1B2B6B' +
'EE97151BDBE02A26787E8895B1F0F86D1FCE934E5F59E9E6B9878' +
'DD5CC63DB5F457D798A2D382EE20F3C76');
BronzeAxeMask := BitmapFromString(5, 10, 'z78DA33300002430374120A4' +
'C9C8D1D8D8C90496435C8E2669686A6069658642D8CCD8D0CB0C8' +
'82C5299135330189239310352626C626862E98E250BD48B298FEC' +
'5150E1000001FB63B4E');
if ((Players[CurrentPlayer].level[20]) >= 41) and (FindBitmapToleranceIn(RuneAxeMask, x, y, MSX1,MSY1,MSX2,MSY2,20)) then
begin
WriteLn('Rune Axe is found')
Wait(1000);
repeat
Mouse(x, y, 1, 1, True);
Wait(3000);
until (FindBitmapToleranceIn(RuneAxeMask, x, y, MIX1,MIY1,MIX2,MIY2,20))
end else
if ((Players[CurrentPlayer].level[20]) >= 31) and (FindBitmapToleranceIn(AddyAxeMask, x, y, MSX1,MSY1,MSX2,MSY2,20)) then
begin
WriteLn('Addy Axe is found')
Wait(1000);
repeat
Mouse(x, y, 1, 1, True);
Wait(3000);
until (FindBitmapToleranceIn(AddyAxeMask, x, y, MIX1,MIY1,MIX2,MIY2,20))
end else
if ((Players[CurrentPlayer].level[20]) >= 41) and (FindBitmapToleranceIn(MithAxeMask, x, y, MSX1,MSY1,MSX2,MSY2,20)) then
begin
WriteLn('Mithril Axe is found')
repeat
Mouse(x, y, 1, 1, True);
Wait(3000);
until (FindBitmapToleranceIn(MithAxeMask, x, y, MIX1,MIY1,MIX2,MIY2,20))
end else
if ((Players[CurrentPlayer].level[20]) >= 6) and (FindBitmapToleranceIn(SteelAxeMask, x, y, MSX1,MSY1,MSX2,MSY2,20)) then
begin
WriteLn('Steel Axe is found')
Wait(1000);
repeat
Mouse(x, y, 1, 1, True);
Wait(3000);
until (FindBitmapToleranceIn(SteelAxeMask, x, y, MIX1,MIY1,MIX2,MIY2,20))
end else
if FindBitmapToleranceIn(IronAxeMask, x, y, MSX1,MSY1,MSX2,MSY2,20) then
begin
WriteLn('Iron Axe is found');
Wait(1000);
repeat
Mouse(x, y, 1, 1, True);
Wait(3000);
until (FindBitmapToleranceIn(IronAxeMask, x, y, MIX1,MIY1,MIX2,MIY2,20))
end else
if FindBitmapToleranceIn(BronzeAxeMask, x, y, MSX1,MSY1,MSX2,MSY2,20) then
begin
WriteLn('Bronze Axe is found')
Wait(1000);
repeat
Mouse(x, y, 1, 1, True);
Wait(3000);
until (FindBitmapToleranceIn(BronzeAxeMask, x, y, MIX1,MIY1,MIX2,MIY2,20))
end
FreeBitmap(RuneAxeMask);
FreeBitMap(AddyAxeMask);
FreeBitmap(MithAxeMask);
FreeBitmap(SteelAxeMask);
FreeBitmap(IronAxeMask);
FreeBitMap(BronzeAxeMask);
end;
//----------------------------------------------------------------------------//
// --> BANKING PROCEDURES <-- //
//----------------------------------------------------------------------------//
function MyOpenBank: Boolean;
var bx, by, tol: Integer; OpenBankTime: LongInt;
begin
Status('Opening Bank');
WriteLn('Opening Bank');
if(not(LoggedIn))then Exit;
MakeCompass('W');
LowestAngle;
Tol := 0
MMouse(240, 135, 1, 1);
if IsUpTextMulti('e Bank', 'Booth', 'ooth') then
begin
GetMousePos(bx, by);
Mouse(bx, by, 0, 0, False);
if ChooseOption(x, y, 'uickly') then
begin
MarkTime(OpenBankTime);
repeat
if(not(LoggedIn))then Exit;
Wait(10);
if TimeFromMark(OpenBankTime) > 20000 then Exit;
if BankScreen then Break;
until BankScreen;
Result := True;
exit;
end
end else
repeat
Wait(200);
if (FindObjectMulti(bx, by, 'se Bank', 'Bank Booth', 'nk Booth', 8026748, 1984346, 3026483, Tol, 10, True, True)) then
begin
if(not(LoggedIn))then Exit;
Mouse(bx, by, 0, 0, False);
if ChooseOption(x, y, 'uickly') then
begin
MarkTime(OpenBankTime);
repeat
if(not(LoggedIn))then Exit;
Wait(10);
if BankScreen then Break;
if TimeFromMark(OpenBankTime) > 20000 then Exit;
until BankScreen;
Result := True;
exit;
end
Wait(200);
end else Tol := Tol + 10;
until ((BankScreen) or (Tol >= 50))
if (Tol >= 50) then result := False;
end;
procedure Bank;
begin
Status('Banking')
if(not(LoggedIn))then Exit;
if (FlagPresent) then Flag;
GetAllLevels;
GainLvl;
CountLogs;
if (not(MyOpenBank)) then
begin
if(not(LoggedIn))then Exit;
MakeCompass('N');
HighestAngle;
Openbank3;
end
if (EquipAxe) then Deposit(1,28,2) else
Deposit (2,28,2)
if (NoAxe) then
begin
fixbank;
wait(1000);
DepositAll;
Wait(1000)
GetBestAxe;
Wait(1000);
Closebank;
Wait(1000);
if FindBitmapMaskTolerance(AxeMask, x, y, MIX1, MIY1, MIX2, MIY2, 20, 10) then Mouse(x, y, 1, 1, True);
Wait(5000);
CharmFindAxeHeadColors;
Loads := loads +1
Banks := Banks +1
end else
begin
Closebank;
Banks := Banks +1
Loads := Loads +1
end
PerfectNorth;
HighestAngle;
end;
//----------------------------------------------------------------------------//
// --> WALKING PROCEDURES <-- //
//----------------------------------------------------------------------------//
Function CountArray(Color: integer):integer; //Tarajunky
var n:integer;
begin
For n:= 0 to GetArrayLength(ColorArray)-1 do
begin
if ColorArray[n]= Color then result:=result+1;
end;
end;
Function FindDirtColor: integer;
var h,i,j,n,tol,Color:integer; ColorPoints: TPointArray;
begin
if(not(LoggedIn))then Exit;
repeat
if Tol > 60 then Color := DirtColor else Color := 1652808
if Tol = 10 then Color := DirtColor;
FindColorsSpiralTolerance(MMCX, MMCY, ColorPoints, Color, MMX1, MMY1, MMX2 -20, MMY2, tol)
For h := 0 to GetArrayLength(ColorPoints)-1 do
begin
TestColor := GetColor(ColorPoints[h].x, ColorPoints[h].y);
SetArrayLength(ColorArray, 0);
n:=0;
red := (TestColor mod 256) //
green := ((TestColor / 256) mod 256); //
blue := ((TestColor / 256) / 256); //
// this part is Tarajunky's
if Tol < 60 then if FindColor(x, y, TestColor, 680, 15, MMX2, MMY2) then //
if Red - Green >= 3 then if Red - Green <= 32 then //
if Red - Blue >= 30 then if Red - Blue <= 62 then //
if Green - Blue >= 15 then if Green - Blue <= 50 then //
if GetColor(ColorPoints[h].x +5, ColorPoints[h].y) = TestColor then
if GetColor(ColorPoints[h].x -9, ColorPoints[h].y) = TestColor then
if GetColor(ColorPoints[h].x +3, ColorPoints[h].y +3) = TestColor then
if GetColor(ColorPoints[h].x -3, ColorPoints[h].y -3) = TestColor then
for i:= 0 to 15 do
begin
for j:= 0 to 6 do
begin
SetArrayLength(ColorArray, GetArrayLength(ColorArray)+1);
ColorArray[n]:=GetColor(ColorPoints[h].x -9 + i, ColorPoints[h].y -3 + j);
n:=n+1;
end;
end;
if (CountArray(TestColor) > 80) then
begin
WriteLn('Color = '+ inttostr(testColor)+' Red: '+inttostr(Red)+' Blue: '+inttostr(Blue)+' Green: '+inttostr(Green));
WriteLn('DirtColor = ' + Inttostr(TestColor) + ' found at a Tol of ' + IntToStr(Tol));
DirtRoadColor := TestColor;
Result := DirtRoadColor;
DirtColor := DirtRoadColor;
exit;
end
end;
Tol := Tol + 10;
if Tol > 20 then IdleTime(Tol * 30, 75, 1) else Wait(Tol * 30) //Makes sure it wont logout.
until Tol > 100;
WriteLn('DirtRoadColor NOT found!');
WriteLn('Terminating script..');
TerminateScript;
end;
procedure WalkToYews;
begin
if(not(LoggedIn))then Exit;
Status('Walking to Yews');
FindRoadColor;
RadialRoadWalk(RoadColor, 95, 58, 54, -1, 0);
if not FindMMColor(x, y, RoadColor) then FindRoadColor;
RadialRoadWalk(RoadColor, 140, 195, 55, -1, -1);
if not FindMMColor(x, y, RoadColor) then FindRoadColor;
RadialRoadWalk(RoadColor, 140, 195, 55, -1, -1);
if not FindMMColor(x, y, RoadColor) then FindRoadColor;
RadialRoadWalk(RoadColor, 120, 160, 55, -1, -1);
Flag;
FindDirtColor;
RadialWalk(DirtRoadColor, 135, 75, 55, -1, 0);
if not FindMMColor(x, y, DirtRoadColor) then
begin
Flag;
FindDirtColor;
end
RadialWalk(DirtRoadColor, 30, 117, 55, -1, 0);
if not FindMMColor(x, y, DirtRoadColor) then
begin
Flag;
FindDirtColor;
end
RadialWalk(DirtRoadColor , 88, 48, 50, -1, 0);
SymbolAccuracy := 0.5;
if FindSymbol(tx, ty, 'tree') then Mouse(tx, ty +5, 1, 1, True) else
begin
if not FindMMColor(x, y, DirtRoadColor) then
begin
Flag;
FindDirtColor;
end
RadialWalk(DirtRoadColor , 88, 48, 50, -1, 0);
if not FindSymbol(tx, ty, 'tree') then
begin
if TreeSymbol <> 0 then
if FindColorTolerance(tx, ty, Treesymbol, MMX1, MMY1, 785, 90, 1) then Mouse(tx, ty +9, 1, 1, True) else
begin
WriteLn('YewSymbol not found, maybe its an Ent, so we are waiting..');
FtWaitE(15000);
MouseBack(Random(1100) - Random(600), Random(700) - Random (400), 8, 8, 50, 60, 0);
FtWaitE(10000);
if FindSymbol(tx, ty, 'tree') then Mouse(tx, ty +9, 1, 1, True);
end else
begin
WriteLn('Tree not found');
Players[CurrentPlayer].Loc := 'Lost while walking to Yews';
Players[CurrentPlayer].Active := False;
LogOut;
SymbolAccuracy := 0.9;
exit;
end
end
end;
Flag;
Players[CurrentPlayer].Loc := 'Yew 1';
SymbolAccuracy := 0.9;
end;
procedure WalkToBank;
begin
if(not(LoggedIn))then Exit;
Status('Walking to Bank');
FindDirtColor;
RadialWalk(DirtRoadColor , 290, 245, 58, 1, 0);
if not FindMMColor(x, y, DirtRoadColor) then
begin
Flag;
FindDirtColor;
end
RadialWalk(DirtRoadColor , 276, 230, 58, 1, 0);
if not FindMMColor(x, y, DirtRoadColor) then
begin
Flag;
FindDirtColor;
end
RadialWalk(DirtRoadColor , 185, 265, 55, 1, 0);
Flag;
FindRoadColor;
RadialRoadWalk(RoadColor, 270, 320, 65, 1, 1);
if not FindMMColor(x, y, RoadColor) then FindRoadColor;
RadialRoadWalk(RoadColor, 320, 365, 58, 1, 1);
Flag;
SymbolAccuracy := 0.3;
if (DTM3Flag(BankDot1, BankDot2, BankDot3, True)) then Flag else
if FindSymbol(tx, ty, 'bank') then Mouse(tx, ty, 1, 1, True) else
begin
if not FindMMColor(x, y, RoadColor) then FindRoadColor;
RadialRoadWalk(RoadColor, 335, 390, 45, 1, 1);
Flag;
if (DTM3Flag(BankDot1, BankDot2, BankDot3, True)) then Flag else
if FindSymbol(tx, ty, 'bank') then Mouse(tx, ty, 1, 1, True) else
begin
WriteLn('Bank not found');
Players[CurrentPlayer].Loc := 'Lost while walking to bank';
Players[CurrentPlayer].Active := False;
LogOut;
SymbolAccuracy := 0.9;
exit;
end
end
Players[CurrentPlayer].Loc := 'Bank';
SymbolAccuracy := 0.9;
end;
procedure Yew1to2;
begin
if(not(LoggedIn))then Exit;
if ((TreeSymbol = 0) or (not(FindMMcolor(x, y, TreeSymbol)))) then TreeSymbol := (GetSymbolColor(x, y, 'tree'))
MouseFindFlag(675, 115, 1, 1);
fflag(3);
if (FindColorTolerance(x, y, Treesymbol, 650, 70, 720, 155, 1)) then mouse(x, y, 1, 1, true);
Flag;
Players[CurrentPlayer].Loc := 'Yew 2';
Wait(500);
end;
procedure Yew2to1;
begin
if(not(LoggedIn))then Exit;
if ((TreeSymbol = 0) or (not(FindMMcolor(x, y, TreeSymbol)))) then TreeSymbol := (GetSymbolColor(x, y, 'tree'))
MouseFindFlag(616, 60, -1, 0)
fflag(3);
if (FindColorTolerance(x, y, Treesymbol, 570, 10, 650, 100, 1)) then mouse(x, y +9, 1, 1, true);
Flag;
Players[CurrentPlayer].Loc := 'Yew 1';
Wait(500);
end;
procedure ChangeYews;
begin
if(not(LoggedIn))then Exit;
Status('Changing Yews');
if LowerCase(Players[CurrentPlayer].Loc) = 'yew 1' then
begin
WriteLn('Walking from the first Yew to the second.');
Yew1to2;
end else
if LowerCase(Players[CurrentPlayer].Loc) = 'yew 2' then
begin
WriteLn('Walking from the second Yew to the first.');
Yew2to1;
end
ChangedYews := ChangedYews +1;
end;
//----------------------------------------------------------------------------//
// --> CHOPPING PROCEDURES <-- //
//----------------------------------------------------------------------------//
function EntCheck(tx, ty: integer; Move: Boolean): Boolean;
begin
if(not(LoggedIn))then Exit;
if Move then MMouse(tx, ty, 1, 1);
Wait(150 +Random(150));
if IsUpText('Yew') then
if FindColorTolerance(x, y, 55769, 85, 15, 115, 15, 20) then Result := True;
end;
function HandleEnt(Move: Boolean): Boolean;
var Ent: LongInt;
begin
if(not(LoggedIn))then Exit;
if (FindColorCircleTolerance(x,y, 195836, 15, 648, 83, 20)) then
if EntCheck(TreeX, TreeY, Move) then
begin
WriteLn('Handling Ent!');
Result := True;
Mouse(MMCX, MMCY, 0, 0, True);
MarkTime(Ent);
repeat
FTWaitE(1500);
until ((not EntCheck(TreeX, TreeY, True)) or (TimeFromMark(Ent) > 120000))
EntsAvoided := EntsAvoided +1;
end else
Result := False;
end;
Function FindDeformedYew(Var ObjX, ObjY: Integer): Boolean; //Charmz <-- Not used for now, as it causes to much lack.
Var
Acc, Ref: Extended;
TX, TY, Times, Tol: Integer;
Begin
if(not(LoggedIn))then Exit;
WriteLn('Performing FindDeformedYew');
Ref:= 0.9;
Tol:= 0;
For Times := 1 to 10 do
Begin
FindTalk;
Wait(50+Random(100));
Try
FindDeformedBitmapToleranceIn(Tree, TX, TY, MSX1 + 50, MSY1 + 30, MSX2 - 50, MSY2 - 50, Tol, 2, True, Acc);
except
Result:= False;
End
If(Acc >= Ref)then
Begin
tx := tx +10
TempColor := GetColor(tx, ty);
MMouse(TX, TY, 3, 3);
If(IsUpTextMulti('hop down Ye', 'down Yew', 'own Y')) or (IsUpTextMulti('Yew', 'ew', 'Ye'))then
Begin
ObjX:= TX;
ObjY:= TY;
TreeX := ObjX;
TreeY := ObjY;
Result:= True;
Exit;
End
End
Ref:= Ref - 0.05; // Ref - 0.1
Tol:= Tol + 5; // Tol + 10
Wait(Random(50));
Wait(1);
End
Wait(1);
End;
function FindYew(var x, y: integer): Boolean;
var
Points: TPointArray;
I, Ci, Tol: Integer;
begin
repeat
if FindMSColorTol(x, y, 598048, Tol) then Break else Tol := Tol +2
until Tol > 15
if Tol > 15 then
begin
Result := False;
exit;
Tol := 0
end else
begin
FindColorsSpiralTolerance(MSCX, MSCY, Points, 598048, MSX1 + 50, MSY1 + 30, MSX2 - 50, MSY2 - 50, tol)
ci := 0;
for I := 1 to GetArrayLength(Points) - 1 do
begin
if (Distance(Points[ci].x, 0, Points[i].x, 0) >= 2) and
(Distance(0, Points[ci].y, 0, Points[i].y) >= 2) then
ci := I
else
begin
Points[i].x := 0;
Points[i].y := 0;
end;
end;
for i := 0 to GetArrayLength(Points) - 1 do
begin
if (Points[i].x <> 0) then
if FindColorTolerance(x, y, 2373688, Points[i].x -5, Points[i].y -5, Points[i].x +5, Points[i].y +5, 5 +Tol) then
if FindColorTolerance(x, y, 4159600, Points[i].x -5, Points[i].y -5, Points[i].x +5, Points[i].y +5, 5 +Tol) then
if FindColorTolerance(x, y, 2900024, Points[i].x -5, Points[i].y -5, Points[i].x +5, Points[i].y +5, 5 +Tol) then
begin
TempColor := GetColor(Points[i].x, Points[i].y);
MMouse(Points[i].x, Points[i].y, 0, 0)
Wait(50);
if (IsUpText('Yew')) then
begin
Status('Yew found at a Tol of ' +IntToStr(Tol));
Result := True;
Break;
end;
end;
end;
if (Result) then
begin
x := Points[i].x;
y := Points[i].y;
TreeX := x;
TreeY := y;
end;
end;
Tol := 0;
end;
function TreeGone(Sx, Sy: integer): Boolean;
begin
if(not(LoggedIn))then Exit;
if ((not FindColor(x, y, TempColor, Sx -4, Sy -4, Sx +4, Sy +4)) or (TimeFromMark(ChopMark) > 120000)) then
begin
MMouse(TreeX, TreeY, 1, 1);
Wait(100);
if not IsUpText('Yew') then
begin
Status('Yew Gone');
Result := True;
end else
begin
if FindObjEx(tx, ty, 'Yew', TreeX -20, TreeY -20, TreeX +20, TreeY +20, 598048, 20, 2, 2, 50, True) then
begin
TempColor := GetColor(tx, ty);
MarkTime(ChopMark);
end
end
end
end;
function ClickTree: Boolean;
var Ent: LongInt;
begin
if(not(LoggedIn))then Exit;
if FindYew(tx, ty) then
begin
GainLvl;
if not EntCheck(TreeX, TreeY, False) then
begin
if(Random(20) < 15)then
begin
Mouse(tx, ty, 1, 1, True);
end else
begin
Mouse(tx, ty, 0, 0, False);
if not ChooseOption(x, y, 'hop down')then
Mouse(tx, ty, 1, 1, True);
end
end else
begin
MarkTime(Ent);
repeat
FTWaitE(1500);
until ((not EntCheck(TreeX, TreeY, True)) or (TimeFromMark(Ent) > 120000));
Mouse(tx, ty, 1, 1, True);
end
Result := True;
FtWaitE(100);
if FindFastRandoms then Mouse(tx, ty, 1, 1, True);
GainLvl;
MyFindAxeHead;
end else
{ if FindDeformedYew(tx, ty) then
begin
Wait(50 +Random(150));
if not HandleEnt(False) then Mouse(tx, ty, 1, 1, True);
Result := True;
end else} Result := False;
end;
procedure WaitTillTree;
var TillTreeMark: LongInt;
begin
if(not(LoggedIn))then Exit;
if InvFull then Exit;
Status('Yew not found, waiting..');
MarkTime(TillTreeMark);
GetAllLevels;
repeat
case Random(20) of
0 : SleepAndMoveMouse(2000 +Random(1000));
1 : MouseBack(Random(1100) - Random(600), Random(700) - Random (400), 8, 8, 50, 60, 0);
2 : IdleTime(2000 +Random(1000), 14, 2);
3 : begin RandomRClick; Wait(200); ChooseOption(x, y, 'Cancel'); end
4 : FtWaitE(1500);
5 : PickUpMouse;
6 : FtWait(50);//AlmostLogOut;
7 : GameTab(Random(13) +1);
8 : SleepAndMoveMouse(2000 +Random(1000));
9 : WWait(3000);
10: PickUpMouse;
11: FtWait(8);
12: IdleTime(3000 +Random(1000), 14, 2);
13: WWait(2500);
14: IdleTime(2700, 11, 1);
15: GameTab(Random(13) +1);
16: WWait(2000);
17: FtWaitE(1500);
18: PickUpMouse;
19: begin RandomRClick; FtWaitE(200); ChooseOption(x, y, 'Cancel'); end
end
FindFastRandoms;
if ClickTree then Break;
FindFastRandoms;
Wait(1000);
if (TimeFromMark(Report) > 180000) then ProgressReport;
FtWaitE(1500 +Random(2000));
if (TimeFromMark(TillTreeMark) > 450000) then
begin
WriteLn('No tree for 7,5 minutes');
Players[CurrentPlayer].Loc := 'No tree in 7,5 mins';
Players[CurrentPlayer].Active := False;
LogOut;
end
until(ClickTree);
end;
procedure Chop;
var TreeWait: LongInt;
begin
if(not(LoggedIn))then Exit;
HighestAngle;
repeat
Status('Chopping');
FirstEmptySlot;
if NoAxe then break;
if not ClickTree then WaitTillTree;
MarkTime(ChopMark);
MarkTime(LogPresent);
MarkTime(LogCheck);
repeat
Status('Chopping');
if(not(LoggedIn))then Exit;
if InvFull then Break;
FtWait(2);
MyFindAxeHead;
if NoAxe then break;
if HandleEnt(True) then ClickTree;
if not TreeGone(TreeX, TreeY) then
case Random(20) of
0 : SleepAndMoveMouse(500 +Random(500));
1 : MouseBack(Random(1100) - Random(600), Random(700) - Random (400), 8, 8, 50, 60, 0);
2 : IdleTime(1000 +Random(1000), 14, 2);
3 : begin RandomRClick; Wait(200); ChooseOption(x, y, 'Cancel'); end
4 : FtWait(2);
5 : PickUpMouse;
6 : SleepAndMoveMouse(500 +Random(500));//AlmostLogOut;
7 : GameTab(Random(13) +1);
8 : SleepAndMoveMouse(500 +Random(1000));
9 : WWait(1000);
10: PickUpMouse;
11: FtWait(6);
12: IdleTime(500 +Random(1000), 14, 2);
13: WWait(500);
14: IdleTime(700, 11, 1);
15: GameTab(Random(13) +1);
16: HandleEnt(False);
17: MouseBack(Random(1100) - Random(600), Random(700) - Random (400), 8, 8, 50, 60, 0);
18: PickUpMouse;
19: begin RandomRClick; Wait(200); ChooseOption(x, y, 'Cancel'); end
end
if not TreeGone(TreeX, TreeY) then
begin
MarkTime(TreeWait);
if HandleEnt(True) then ClickTree;
repeat
FtWaitE(500 +Random(1000));
Wait(100);
if HandleEnt(False) then ClickTree;
Wait(100);
if NoAxe then break;
if CheckForLogs then ClickTree;
if TreeGone(TreeX, TreeY) then break;
if InvFull then Break;
if (TimeFromMark(Report) > 180000) then ProgressReport;
until(TimeFromMark(TreeWait) > 30000);
end
until ((TreeGone(TreeX, TreeY)) or (TimeFromMark(ChopMark) > 90000));
MyFindAxeHead;
if NoAxe then break;
if not InvFull then ChangeYews;
until ((InvFull) or (not(LoggedIn)));
if LowerCase(Players[CurrentPlayer].Loc) = 'yew 2' then Yew2to1;
end;
//----------------------------------------------------------------------------//
// --> MAIN THING <-- //
//----------------------------------------------------------------------------//
begin
ClearDebug;
WriteLn('Nielsie95 Draynor Yew Cutter / Banker version '+ Version);
Status('Nielsie95 Draynor Yew Cutter / Banker version '+ Version);
Wait(2500);
setupsrl;
activateclient;
BenMouse := False;
MouseSpeed := 20 + random(5);
DeclarePlayers;
NickNameBMP:=CreateBitmapMaskFromText(Players[CurrentPlayer].Nick,UpChars);
LoadVar;
DirtColor := HumanDirtColor;
LoadsToDo := Players[CurrentPlayer].Integers[1];
LoginPlayer;
CharmFindAxeHeadColors;
GetAllLevels;
MarkTime(LoggedInTime);
repeat
repeat
if LowerCase(Players[CurrentPlayer].loc) = 'bank' then
begin
if InvCount > 10 then Bank;
if (TimeFromMark(LoggedInTime) > MaxLoggedInTime*60*1000) then Break;
if (Loads >= LoadsToDo) then Break;
WalkToYews;
end
if ((LowerCase(Players[CurrentPlayer].loc) = 'yew 1') or (LowerCase(Players[CurrentPlayer].loc) = 'yew 2')) then
begin
Chop;
Wait(100);
if (TimeFromMark(LoggedInTime) > MaxLoggedInTime*60*1000) then Break;
WalkToBank;
end
ProgressReport;
if not LoggedIn then Break;
until((Loads >= LoadsToDo) or (TimeFromMark(LoggedInTime) > MaxLoggedInTime*60*1000) or (not(LoggedIn)));
if (TimeFromMark(LoggedInTime) > MaxLoggedInTime*60*1000) then
begin
if not (Players[CurrentPlayer].Active) then wait(100) else
Players[CurrentPlayer].loc := 'Times up';
LogOut;
WriteLn('Time is up, Logging in next player');
end
if Loads >= LoadsToDo then
begin
if not (Players[CurrentPlayer].Active) then wait(100) else
Players[CurrentPlayer].loc := 'Loads Done';
LogOut;
WriteLn('Loads are done, Logging in next player');
end
if LoggedIn then LogOut;
Loads := 0;
LoadsToDo := Players[CurrentPlayer].Integers[1];
NextPlayer(Players[CurrentPlayer].Active);
MarkTime(LoggedInTime);
CharmFindAxeHeadColors;
GetAllLevels;
ProgressReport;
until(False);
end.
You can still BREAK the axe, via ent.
Rogeruk's Al-Kharid Tanner V1.1 [Released]
Rogeruk's Barbarian Crafter [Coming Soon]
Rogeruk's Guild Fisher [Coming Soon]
!! - Taking Requests - !!
nice script man i'v used it for 14 days now mostly non stop i got 14 lvls from it.
nice, nice
Thanks jezI'm currently busy updating all my scripts for the next SCAR + SRL.. Smelter + TutRunner already are done, this one isn't next on my list, but I will update
![]()
look this script can't even go to all of the yews i call this script nub ibot neXus owns ths script by heaps and it takes the new randoms.
i'm sorry for that its true though some people got to know whats out there!
There are currently 1 users browsing this thread. (0 members and 1 guests)