Code:
program This is teh uberness of teh chopping choppyess..... It banks and chops then banks some more, start in edge bank. ENJOY;
const
//-- Start Of Setup --\
Mask = '' ; //what to rename scar as
User = 'kial23' ; //user
Pass = 'chloe' ; //pass
Direction = 'S' ; //direction to run when gettin' 0wn3d
Tree1 = 4094064 ; //yew tree colors
Tree2 = 4094064 ;
Tree3 = 4094064 ;
RoadColor = 6184550 ; //Road Color on MM
TreeColor = 99080 ; //Color of Tree on MM
BankSymb = 0; //Color of Bank Icon on MM(leave at 0 for script to auto pick)
PinNumb = 0 ; //pin number to open ur bank.(only if needed)
Trips = 25 ; //number of trips to make before stopping.
InTime = 75 ; //take a break every X minutes
OutTime = 5 ; //break for X minutes
ReAttach = True ; //if true script will try and re-attach axehead.
Wield = true ; //true to if ur wielding axe and false if not.(script works better if not wielding)
EdgeVille = True ; //true to cut yews in edgeville, leave it at true.
EntChecks = True ; //true to use my ent finder.(if false it will still check with si's ent finder)
SiFindObj = False ; //true to use si's find obj. false to use alternate find obj.
//-- End Of Setup -- \
EntBmpTol = 50 ; //tolerance of the ent checker bmp
var
Tx, Ty, T1, T2, T3, attached, killed, ents, banks, newpicks, times, fishs, YEntBmp : integer;
broke : boolean;
{.include si.scar}
//Ent Checking Stuff
function EntPresent : boolean;
begin
Result:=CheckEnt;
if(EntChecks = true)and
(FindBitmapToleranceIn(YEntBmp, tx, ty, 75, 1, 145, 40, EntBmpTol) = true)and
(IsUpText('Ch') = true)then
Result:=true;
end;
//Option function
function Option(s : string): boolean;
begin
result:=IsUpText(s);
end;
//Find Obj
function FindObj2(objtext : string; objcolor, tol : integer) : boolean;
var ax,ay,x,y:integer;
xi,yi,TempHold2,i,TempHold:extended;
begin
if(FindColorTolerance(x,y,objcolor,1,1,514,336,tol))then
begin
ax:=257; ay:=168;
repeat
i:=i+1
yi:=0;
repeat
yi:=yi+1;
TempHold:=Trunc(i/2);
TempHold2:=i/2;
if(TempHold=TempHold2)then
begin
ay:=ay+10;
end else ay:=ay-10;
if(FindColorTolerance(x,y,objcolor,ax-622,ay-696,ax+160,ay+108,tol))then
begin
MMouse(x,y,1,1);
wait(1000);
if(Option(objtext))then
result:=true;
end;
until(yi=i)or(result=true)
xi:=0;
repeat
xi:=xi+1;
TempHold:=Trunc(i/2);
TempHold2:=i/2;
if(TempHold=TempHold2)then
begin
ax:=ax+10;
end else ax:=ax-10;
if(FindColorTolerance(x,y,objcolor,ax-4114,ay-5647,ax+641,ay+61,tol))then
begin
MMouse(x,y,1,1);
wait(1000);
if(Option(objtext))then
result:=true;
end;
until(xi=i)or(result=true)
until(ax>=514)or(result=true)
end;
end;
//Modified Anti-Ban from SI
function AntiBan2(inTime, outTime, Account: Integer): Boolean;
var
logtime, randomin, randomout: Integer;
begin
logtime := ((GetSystemTime - gSiABT) / 1000) / 60;
randomin := (InTime * 1000) * 60 + random(InTime * 60);
if(logtime >= randomin)then
begin
LogOut;
Result := True;
WriteLn('Anti-Ban - Logged Out at '+TheTime);
randomout := (OutTime * 1000) * 60 + random(OutTime * 60)
Writeln('Waiting ' + inttostr(randomout) + ' Minutes To Log Back In');
Wait(randomout);
Login(Account);
WriteLn('Anti-Ban - Logged In at '+TheTime);
gSiABT := GetSystemTime;
end;
end;
//GetSymbolColor from SSi2
function GetSymbolColor(name : string) : integer;
var
Bitmap, Color, c, x, y : integer;
acc : extended;
begin
if(lowercase(name) = 'bank')then
begin
Bitmap := BitmapFromString(15, 5, 'z78DA33B434B4343473B' +
'100421364D2D9D2C9C9D4C4CDCDD5D1CCD0C2D5DCC5D00299ED04' +
'8226C824B25E43B0998664990C213175116F32B2F9C824B2F9A4B' +
'A1997F9B842865493890F734C9301ACE46928');
Color:=6417151;
end;
FindDeformedBitmapToleranceIn(Bitmap, x, y, 570, 5, 725, 160, 70, 0, True, acc);
if(acc > 0.65)then
begin
repeat
c:=c + 5;
if(FindColorTolerance(x, y, Color, x, y, x + 15, y + 5, c))then
result:=GetColor(x, y);
until(result > 0)or(c > 70);
end;
FreeBitmap(Bitmap);
end;
//Mark Time Procedures from SSi2
procedure MarkTime(var TimeMarker:integer);
begin
TimeMarker:=GetSystemTime;
end;
function TimeFromMark(var TimeMarker:integer):integer;
begin
result:=(GetSystemTime - TimeMarker) / 1000;
end;
//Function that checks if ur inventory is full...
function Full : boolean;
begin
if(IsChatMessage('Your i') = true)and
(InvFull = true)then
result:=true;
end;
//Progress Report
procedure Report;
var
avtime : integer;
begin
if(Wield = true)then
killed:= killed + 28
Else
killed:= killed + 27;
if(ScriptTime(2) > 0)then
avtime:= Killed / ScriptTime(2);
writeln('');
writeln('<=================Progress Report================>');
writeln('Worked for ' + inttostr(ScriptTime(1)) +' Hour[s] and ' + inttostr(ScriptTime(2)) +' Minute[s] and ' + inttostr(ScriptTime(3)) +' Second[s].');
writeln('Killed and Banked ' + inttostr(Killed) +' Willow Log[s].');
if(ScriptTime(2) > 0)then
writeln('Averaging ' + floattostr(AvTime) +' Log[s] per minute.');
if(gSiRandoms[5] > 0)then
writeln('Gained ' + inttostr(gSiRandoms[5]) +' WoodCutting Level[s].');
if(NewPicks > 0)then
writeln('Withdrawn ' + inttostr(NewPicks) +' New Pick[s].');
if(Attached > 0)then
writeln('Re-Attached ' + inttostr(attached) +' AxeHead[s].');
if(ents > 0)then
writeln('Waited for ' + inttostr(ents) +' Ent[s].');
if(gSiRandoms[1] > 0)then
writeln('Dealt with ' + inttostr(gSiRandoms[1]) + ' Text Random[s].');
if(gSiRandoms[3] > 0)then
writeln('Dealt with ' + inttostr(gSiRandoms[3]) + ' Box[s].');
if(gSiRandoms[0] > 0)then
writeln('Found ' + inttostr(gSiRandoms[0]) + ' Fight[s].');
if(gSiRandoms[2] > 0)then
writeln('Used ' + inttostr(gSiRandoms[2]) + ' Lamp[s].');
writeln('<================================================>');
end;
// Randoms
procedure RegRandoms;
var
x, y : integer;
begin
if(FindColor(x, y, 65535, 10, 25, 511, 334) = true)then
begin
gSiRandoms[1] := gSiRandoms[1] + 1;
TakeScreen('Text',gSiRandoms[1]);
TalkToRand(x, y);
wait(35 + random(75));
GameTab(4);
wait(100 + random(75));
end;
CheckRandoms(1, 'WoodCutting', Direction, True, True, srtAll);
end;
procedure CuttingRandoms;
begin
RegRandoms;
if(ReAttach = true)and(AxeHeadGone(wield) = true)then
begin
FixAxe(wield);
wait(2500 + random(1000));
if(AxeHeadGone(wield) = false)then
begin
writeln('');
writeln('Found and re-attached pickhead!');
attached:=attached + 1;
end;
end;
if(AxeHeadGone(wield) = true)then
begin
writeln('');
writeln('Lost axehead... getting a new one!');
broke:=true;
Logout;
TerminateScript;
end;
if(BrokenAxe(wield) = true)then
begin
writeln('');
writeln('Axe broken... getting a new one!');
broke:=true;
Logout;
TerminateScript;
end;
end;
//Flag.
procedure FlagR;
begin
repeat
wait(10);
until(FlagPresent = false);
end;
function FindObjecto(s : string; color, tol : integer): boolean;
begin
if(SIFindObj = true)then
result:=FindObj(tx, ty, s, color, tol)
Else
result:=FindObj2(s, color, tol);
end;
procedure CutTree(color1, color2, color3 : integer; tname : string);
var
tc, rn, x, y, x1, y1, x2, y2, mark : integer;
begin
rn:=random(3) + 1;
case rn of
1 : tc:=color1;
2 : tc:=color2;
3 : tc:=color3;
end;
rn:=random(2) + 1;
if(rn = 1)then
begin
x1:=218;
y1:=118;
x2:=282;
y2:=186;
end
Else
begin
x1:=9;
y1:=9;
x2:=511;
y2:=333;
end;
if(FindColorSpiralTolerance(x, y, tc, x1, y1, x2, y2, 3) = true)then
begin
if(Option('Chop ' + tname) = true)
or(FindObjecto('Chop ' + tname, tc, 3) = true)
and(CheckEnt = false)then
begin
GetMousePos(x, y);
Mouse(x, y, 2, 2, true);
wait(175 + random(300));
MarkTime(mark);
CuttingRandoms;
FlagR;
repeat
wait(10);
CuttingRandoms;
if(EntPresent = true)then
break;
if(TimeFromMark(mark) > 45)then
begin
MarkTime(mark);
wait(100 + random(100));
GetMousePos(x, y);
if(Option('Cho') = true)then
Mouse(x + 2, y, 5, 5, true)
Else
MMouse(x + 2, y, 45, 15);
end;
until(Option('Cho') = false)or(full = true);
end;
if(EntPresent = true)then
begin
writeln('');
writeln('Found An Ent!');
ents:=ents + 1;
Mouse(647, 82, 2, 2, true);
wait(250 + random(1000));
MarkTime(mark);
repeat
wait(100);
CuttingRandoms;
until(TimeFromMark(mark) > 30);
end;
end;
end;
// MapWalking
procedure YewsToBank; //edgeville walking from rsnoobs script.
var
x, y : integer;
begin
if(EdgeVille = true)then
begin
while(not FindColor(x, y, BankS, 620, 30, 695, 105))do
if(FindColor(x, y, RoadColor, 635, 30, 685, 45))then
MouseFlag(x, y, 2, 2);
Mouse(x, y, 2, 2, True);
Flag;
end
Else
begin
end;
End;
procedure BankToYews; //edgeville walking from rsnoobs script.
var
x, y, off: integer;
Begin
if(EdgeVille = true)then
begin
x:= 640;
y:= 145;
if(FindColorSpiral(x, y, RoadColor, 621, 95, 652, 120))then
Mouse(x, y, 2, 2, True);
Flag;
if(Random(2)=0)then
begin
x:= 635;
y:= 85;
off:= 10;
end
Else
begin
x:= 630;
y:= 160;
off:= - 10;
end;
if(FindColorSpiral(x, y, TreeColor, 615, 80, 650, 160))then
Mouse(x + 5, y + off, 2, 2, True);
Flag;
end
Else
begin
end;
end;
//Close Bank Procedure
procedure CloseBank;
begin
wait(200 + random(175));
Mouse(random(20) + 430, random(3) + 37, 0, 0, true);
wait(100 + random(50));
end;
//Procedure to bank yews.
procedure ClearInv;
begin
SetRun(true);
MakeCompass('N');
YewsToBank;
OpenBank2(PinNumb);
wait(100 + random(150));
if(Wield = true)then
DepositAll
Else
begin
DepositArea(607, 212, 733, 240);
DepositArea(566, 256, 730, 452);
end;
CloseBank;
BankToYews;
SetRun(false);
end;
//Procedure to get a new axe out of bank
procedure NewAxe;
var
x, y : integer;
begin
broke:=false;
setrun(true);
if(Wield = true)then
TakeOff(5);
MakeCompass('N');
YewsToBank;
OpenBank2(PinNumb);
wait(100 + random(150));
DepositAll;
wait(400 + random(150));
FixBank;
wait(300 + random(150));
if(FindColorTolerance(x, y, gSiAxeH, 74, 61, 110, 88, 3) = false)then
begin
writeln('');
writeln('Outta picks... terminating');
Logout;
TerminateScript;
end;
Withdraw(1, 1);
CloseBank;
wait(50 + random(75));
if(Wield = true)then
UseItem(1);
NewPicks:=NewPicks + 1;
BankToYews;
SetRun(False);
end;
procedure SwitchTrees; //by RSnoob
var
x, y: Integer;
begin
if(EdgeVille = true)then
begin
if(FindColor(x, y, TreeColor, 630, 25, 660, 60))then
Mouse(x + 2, y + 12, 2, 2, True)
else
if(FindColor(x, y, TreeColor, 630, 105, 660, 140))then
Mouse(x + 2, y, 2, 2, True);
end
Else
begin
end;
Flag;
end;
{--- Main Line Of Coding Starts Here ---}
begin
YEntBmp:= BitmapFromString(2, 10, 'z78DA73357135317074452' +
'29D5D9D5D0D8C70B24D8950834B3D121B00ADF01C47');
writeln('');
writeln('YewCutterBanker v. Beta - by RealRune');
writeln('');
writeln('Start in the bank with the banksymbol visible');
writeln('');
writeln('Empty inv except for a pick either wielded or in first slot of inventory');
writeln('');
writeln('Make sure to have extra picks in first Bank Slot');
writeln('');
writeln('Starting Up');
wait(1000);
LoadInclude(mask);
SetAccount(1, user, pass);
GetAxeColors(wield);
T1:=Tree1;
T2:=Tree2;
T3:=Tree3;
BankS:=BankSymb;
Killed:=0;
if(BankS = 0)then
BankS:= GetSymbolColor('bank');
if(BankS = 0)then
begin
writeln('');
writeln('Color finding failed... please input colors urself');
Logout;
TerminateScript;
end;
if(FindColor(tx, ty, BankS, 573, 8, 723, 158) = true)then
begin
SetRun(true);
BankToYews;
SetRun(false);
end;
repeat
repeat
CutTree(T1, T2, T3, 'down Y');
if(Full = false)then
begin
SwitchTrees;
CuttingRandoms;
end;
if(Broke = true)then
NewAxe;
AntiBan2(inTime, outTime, 1);
until(full = true);
if(Full = true)then
begin
Times:=times + 1;
ClearInv;
Report;
end;
AntiBan2(inTime, outTime, 1);
until(times = trips) or (times > trips);
end.
Heres the errors: