SRL Archive - RS3 Outdated / Broken Scripts

Willow Multiple Chop - Made ONLY for SRL Juniors


Claymore

2008-07-12 18:31:17


:spot: Willow Multiple Chop Version [0.2A] :spot:
Still on it's development stage, this proud work made by DeathScytex (Ocean's 1 Company) is an ongoing project which will continue to develop. It started out as a plain Willow Bank 'N' Chop, now into a Willow Multiple Chop which allows the user to have the option to Woodcut from Draynor to Riggminton and to Camelot! Although Draynor is the only option available so far…

:fiery: Features :fiery:
Anti Ban
Anti Randoms
Banking Procedures
Avoid Normal Trees! (Most problems with Woodcutting scripts are it gets stuck with the Normal Trees, this will move away from them.)
Detects Broken Axe and Replaces them (Any axe in the bank!)
Fail Safes.
Improved Willow Chopping Procedure!
Ent Finder (Works way better than SRL, Although as back up, it still uses SRL).
Multi Player!
DDTMS
DTMS

For The Next Release…
Riggminton, Chop and Sell
Power Willow Chopping + Dropping.
Adding Fail Safes to some procedures.
More…

My Progress Report!
[—————-| Willow Multi Chop |—————-]
[——————-| Version 1.0 |——————-]
[—| The script ran for 10 Minutes and 47 Seconds
[—| The Amount of loads done are 4
[—| The Amount of Axe Broken are 0
[—| The Amount of Axe Replaced are 0
[—| The Amount of Ents Found are 1
[—| Your Woodcutting Level is 93
[—| Levels gained in total are 0
[—————————————————–]
[——| Made by DeathScytex Of Oceans Company |——]

Previous Versions
Willow Chop 'N' Bank V[0.1B]


[================================================== ==]
[===> Progress Report For Willow Chopper
[===> The script ran for 10 Minutes and 38 Seconds
[===> The Amount of loads done are 3
[===> Your Woodcutting Level is 93
[===> Levels gained in total : 0
[===> Post this progress report please.
[================================================== =]

Works Better now!

noidea

2008-07-12 21:20:15

hys Junior Members only? If it were for SRL members too, you could prob get more input and better suggestions?

noidea

Claymore

2008-07-12 21:30:36

Well, my previous version was for leechers (Free For All, First Scripts) and now, i made the new version for SRL Jr Members and Up.

I didnt say, SRL Members arent invited…..Come on SRL Members, dont be shy… post a suggestion… Naw…

But anywais noidea, what would your suggestion be? And dont say change the title to SRL MEmbers AND Jrs….

Twisted

2008-07-12 21:36:03

Good job, but maybe not Symbol clicking…?

And FindNormalRandoms finds all of the Randoms…

-Twisted

EDIT: Maybe Made ONLY for Junior Membs +

Claymore

2008-07-12 21:42:41

What do you prefer rather than symbol clicking, i already added RadialWalk incase of failure =p

And yea sure, ill change it to let some other shy Members in… (Ill cut the Cr@ppy joke now…)

BobboHobbo

2008-07-12 21:42:52

MMmmm

Yours:
function EntFinder: Boolean;
var
EntX, EntY : Integer;
begin
if InvFull or not LoggedIn then Exit;
GetMousePos(EntX, EntY);
Result := FindEnt(EntX, EntY, false);
if (Result) then
begin
Writeln('Found Ent!');
MouseFlag(MMcx, MMcy, 5, 5);
Wait(2000 + Random(2500));
WalkToWillows;
ChopWillows;
end;
end;

Mine:

function EntFinderBH: boolean;
var
EntX, EnyY: integer;
begin
if (InvFull) or not (LoggedIn) or not IsUpText('Willow') then
Exit;
GetMousePos(EntX, EnyY);
Result := FindEnt(EntX, EnyY, false);
if (Result) then
begin
MouseFlag(MMcx, MMcy, 5, 5);
EntsAvoided := EntsAvoided + 1;
end;
end;

MMM they dont look simular? Please credit procedures, dont make that mistake as i did long ago :P

EDIT*
Oh even sadder:
Mine from GE yew cutter:
function EntFinderBHText: boolean;
var
BHX, BHY: integer;
begin
if (InvFull) or (not LoggedIn) then
Exit;
Result := FindColorTolerance(BHX, BHY, 388075, 80, 6, 127, 20, 30);
if (Result) then
begin
MouseFlag(MMcx, MMcy, 5, 5);
EntsAvoided := EntsAvoided + 1;
end;
end;

Yours:

function TextEntFinder: boolean;
var
EX, EY: integer;
begin
if InvFull or not LoggedIn then
Exit;
Result := FindColorTolerance(EX, EY, 388075, 80, 6, 127, 20, 30);
if (Result) then
begin
Writeln('Found Ent!');
MouseFlag(MMcx, MMcy, 5, 5);
Wait(2000 + Random(2500));
EntSpotted := EntSpotted + 1;
WalkToWillows;
ChopWillows;
end;
end;

Claymore

2008-07-12 21:49:32

Update
Added Credits for people who helped out.
——————————————————

Sorry didnt add my credits too…

Well Thanks BobboHobbo… This isn't the first time i have been making mistakes… Used other peoples signatures… Than i got spazed bad… Never again did i take a signature.

Well any mroe ideas BobboHobbo ? Like….failsafes…something?

jakeyboy29

2008-07-13 08:32:36

dude. mint script rep++ it's so simple but i love it. :D

Claymore

2008-07-13 14:03:37

Thanks, lol. I just started so my script wouldn't be totally awsome like Ultra Cut N Bank…

jakeyboy29

2008-07-13 14:32:46

i like the way it logs out every load. unlike "cut and bank"

Claymore

2008-07-13 15:45:27

It logs out every load?

lmao..suppose to log off randomly….

randy marsh

2008-07-13 18:52:41

[——————-| Version 1.0 |——————-]
[—| The script ran for 7 Minutes and 55 Seconds
[—| The Amount of loads done are 2
[—| The Amount of Axe Broken are 18
[—| The Amount of Axe Replaced are 0
[—| The Amount of Ents Found are 0

hmmm 18 axes broken! works swett best woodcutting script i seen!

Rubix

2008-07-13 19:55:13

From: djcheater
[——————-| Version 1.0 |——————-]
[—| The script ran for 7 Minutes and 55 Seconds
[—| The Amount of loads done are 2
[—| The Amount of Axe Broken are 18




hmm 18 axes broke in 2 loads, that worse than mine…6 axes in 3 loads..

Claymore

2008-07-13 20:13:13

Thats a bug, i accidently put Axe Broken on 'CheckBrokenAxe' that means it checked for borken axes 16 times, not broken axe 16 times =p

otherwise, wouldnt Ents Found = 16?

Well thanks for progress report =D

randy marsh

2008-07-14 05:28:51

Has trouble finding williow trees so,do i use ur colours or should i pick my own?

Do i have to use the mini map to pick colours? can i not just use player screen?


dos this work multiplayer, as i added another user?

Claymore

2008-07-14 13:49:48

Yes, Yes, because the i used Radial Road Walk towalk to to willows. Yes it is multiplayer.

randy marsh

2008-07-14 13:57:01

Logged In Player is not in Players array.


after using new srl 18

randy marsh

2008-07-14 15:46:58

is this cause evrtyime it logs out u have to select new colours?
what about auto clour and colour varabiles things?

randy marsh

2008-07-14 15:51:34

is this cause evrtyime it logs out u have to select new colours?
what about auto clour and colour varabiles things?

randy marsh

2008-07-14 15:52:43

is this cause evrtyime it logs out u have to select new colours?
what about auto clour and colour varabiles things?
also it logs out after one load!

randy marsh

2008-07-14 15:53:52

is this cause evrtyime it logs out u have to select new colours?
what about auto clour and colour varabiles things?
also it logs out after one load!

Claymore

2008-07-14 16:15:07

Wow,new record… 5 post at once!

Anyways
It is logging out because of a LogOut function i accidently placed on the banking procedure. It will be fixed aswell as other stuff like FindEnt.

jakeyboy29

2008-07-14 16:26:54

lol true, got trouble with new srl tho

randy marsh

2008-07-14 16:49:46

lol lag sorry about double posting wirless kept playing up..

Phillip_The_Ranga

2008-07-17 17:30:07

When i tried running it i get
Line 189: [Error] (15409:5): Unknown identifier 'AlmostLogout' in script C:\Documents and Settings\Phillip\Desktop\Willow Multi Chop V[0.2.1A].scar

Claymore

2008-07-18 16:34:56

its outdated, need to remove and add some stuff…

Nava2

2008-08-27 12:14:11

So, I gravedug… Oops…

Here are some suggestions, I'm bored and I've seen you around helping others. Just thought I would see if I could do the same.

Btw, instead of doing Integer := Integer + 1; do Inc(Integer). Its delphi, and there by faster. Also, Use IncEx(var Integer, Integer) to increase by more than one. Also, cleans up your code.

function AvoidTrees : Boolean;
var
tx, ty, Tries : Integer;
begin
if (IsUpText('Tree')) then
begin
if (FindSymbol(tx, ty, 'Fish')) then
begin
Mouse(tx, ty, 2, 2, True);
FFlag(0);
Wait(900 + Random(235));
Result := True;
end;
if (not (FindSymbol(tx, ty, 'Fish'))) then
begin
Result := False;
Tries := Tries + 1;
if (Tries = 10) then LogOut;
end;
Tries := Tries - Tries;
end;
end;

This can be Shortened by doing:

function AvoidTrees : Boolean;
var
tx, ty, Tries : Integer;
begin
if (IsUpText('Tree')) then
if FindSymbol(tx, ty, 'Fish') then
begin
Mouse(tx, ty, 2, 2, True);
FFlag(0);
Wait(900 + Random(235));
Result := True;
end {else
begin
//Result := False; //Uneeded because scar automatically sets them to false.
Tries := Tries + 1; //You have no loop, whats the point of this?
if (Tries = 10) then LogOut;
end;
//Tries := Tries - Tries; // Wtf?}
end;

Read the comments, then you can delete the commented section.

function FindBrokenAxe(bx, by : Integer) : Boolean;
begin
if (not (LoggedIn)) then Exit;
BrokenAxe := BitmapFromString(8, 9, 'beNpjYGRgwI5cY9OByDkqB' +
'RkBRRwjEiEM9/gsiBogKhDntQ2KhovDpYDmGDl7W/qEAnUBBX3Ti2' +
'DmM8Atsg+NA0r5Z5bCxCGAEaLLMyk3IKccTcraPwJoV4kEH9BeBhT' +
'ACHRGsigPAwBqASe1');
Result := FindBitmapToleranceIn(BrokenAxe, bx, by, MIX1, MIY1, MIX2, MIY2, 20);
if (Players[CurrentPlayer].Booleans[0] = True) then GameTab(5);
if (Players[CurrentPlayer].Booleans[0] = False) then GameTab(4);
if (Result) then
begin
Writeln('Found Broken Axe!');
end;
GameTab(4);
FreeBitMap(BrokenAxe);
AmountOfBrokenAxe := AmountOfBrokenAxe + 1;
end;

function FindBrokenAxe : Boolean; // why do you want the x, y? Also, if you want them.
// you must have them as variables. Otherwise, they
// are just useless. I looked in your script, it's useless.
var // Removed a global var cuz of fixing this :)
x, y, GT : Integer;

begin
if (not (LoggedIn)) then Exit;
GT := GetCurrentTab; // this will fix errors becuase your script changes tabs.
BrokenAxe := BitmapFromString(8, 9, 'beNpjYGRgwI5cY9OByDkqB' +
'RkBRRwjEiEM9/gsiBogKhDntQ2KhovDpYDmGDl7W/qEAnUBBX3Ti2' +
'DmM8Atsg+NA0r5Z5bCxCGAEaLLMyk3IKccTcraPwJoV4kEH9BeBhT' +
'ACHRGsigPAwBqASe1');
if Players[CurrentPlayer].Booleans[0] then
GameTab(5)
else
GameTab(4);
if FindBitmapToleranceIn(BrokenAxe, x, y, MIX1, MIY1, MIX2, MIY2, 20) then
begin
Writeln('Found Broken Axe!');
Result := true;
end;
GameTab(GT);
FreeBitMap(BrokenAxe);
Inc(AmountOfBrokenAxe);
end;

function ReplaceAxe : Boolean;
var
x, y, nx, ny, nbx, nby, WillowDTM, AxeDTM, BrokenAxe : Integer;
begin
if FindBrokenAxe then
begin
Wait(310 + Random(115));
OpenBankQuiet('db');
Wait(210 + Random(220));
FFlag(0);
if BankScreen then
begin
WillowDTM := DTMFromString('78DA63FCC4C4C0D0C9C8800A1819FE8349068' +
'6FF40C0C8C08C550D8204D2AC40355308A86104AA994940CD37A0' +
'7BE61050F31AA8A68F0835B3F0AB010040990CF0');
AxeDTM := DTMFromString('78DA639CCFC4C0708701056489F3313C04D28' +
'C40FC1F0818A701D55C6740038C4824905E0854738F809AD94035' +
'F709A8E905AAF948404D1F50CD73FC6A0034810E5E');
BrokenAxe := BitmapFromString(8, 9, 'beNpjYGRgwI5cY9OByDkqB' +
'RkBRRwjEiEM9/gsiBogKhDntQ2KhovDpYDmGDl7W/qEAnUBBX3Ti2' +
'DmM8Atsg+NA0r5Z5bCxCGAEaLLMyk3IKccTcraPwJoV4kEH9BeBhT' +
'ACHRGsigPAwBqASe1');
if (PinScreen) then InPin(IntToStr(Players[CurrentPlayer].Integers[1]));
Wait(545 + Random(920));
FixBank;
if (FindDTM(WillowDTM, x, y, MIX1,MIY1,MIX2,MIY2)) then
begin
Deposit(1, 28, True);
Wait(1000 + Random(840));
FreeDTM(WillowDTM);
CloseBank;
end;
FindBitmapToleranceIn(BrokenAxe, nbx, nby, MIX1, MIY1, MIX2, MIY2, 10);
Wait(310 + Random(115));
MMouse(nbx, nby, 2, 2);
if (IsUpText('roken')) then
begin
Wait(350 + Random(210));
Mouse(nbx, nby, 0, 0, True);
Writeln('Banked Broken Axe!');
FreeBitMap(BrokenAxe);
end;
if (FindDTM(AxeDTM, nx, ny, MSX1, MSY1, MSX2, MSY2)) then
begin
MMouse(nx, ny, 2, 2);
if (IsUpText('xe')) then
begin
Wait(315 + Random(220));
Mouse(nx, ny, 0, 0, True);
Writeln('Withdrawed a New Axe');
end;
end;
end;
CloseBank;
Wait(1215 + Random(550));
if (Players[CurrentPlayer].Booleans[0] = True) then
begin
Writeln('Weilding the New Axe...');
MMouse(nx, ny, 2, 2);
if (IsUpText('xe')) then
begin
Wait(330 + Random(115));
Mouse(nx, ny, 0, 0, True);
Writeln('Succesfully Weilded the New Axe.');
end;
end;
Result := True;
FreeDTM(AxeDTM);
ReplacedAxe := ReplacedAxe + 1;
end;
end;

function ReplaceAxe : Boolean;

var
x, y, WillowDTM, AxeDTM, BrokenAxe : Integer;

begin
try
if FindBrokenAxe then
begin
Wait(310 + Random(115));
if OpenBankQuiet('db') then // this results true if it finds the pinscreen or bank screen.
begin
if (PinScreen) then InPin(IntToStr(Players[CurrentPlayer].Integers[1]));
WillowDTM := DTMFromString('78DA63FCC4C4C0D0C9C8800A1819FE8349068' +
'6FF40C0C8C08C550D8204D2AC40355308A86104AA994940CD37A0' +
'7BE61050F31AA8A68F0835B3F0AB010040990CF0');
AxeDTM := DTMFromString('78DA639CCFC4C0708701056489F3313C04D28' +
'C40FC1F0818A701D55C6740038C4824905E0854738F809AD94035' +
'F709A8E905AAF948404D1F50CD73FC6A0034810E5E');
BrokenAxe := BitmapFromString(8, 9, 'beNpjYGRgwI5cY9OByDkqB' +
'RkBRRwjEiEM9/gsiBogKhDntQ2KhovDpYDmGDl7W/qEAnUBBX3Ti2' +
'DmM8Atsg+NA0r5Z5bCxCGAEaLLMyk3IKccTcraPwJoV4kEH9BeBhT' +
'ACHRGsigPAwBqASe1');
Wait(300 + Random(200)); // wait was too big.
FixBank;
if (FindDTM(WillowDTM, x, y, MIX1,MIY1,MIX2,MIY2)) then
begin
x := CoordsToItem(x, y);
MouseItem(x, false);
Wait(100 + random(50));
ChooseOption('ll');
//Deposit(1, 28, True); // if you do this, then you are going to bank the broken axe! :(
//Wait(500 + Random(300)); // too long. P.S. Why?
//CloseBank; // DONT CLOSE THE BANK TILL THE END OF A PROCEDURE.
end;
if FindBitmapToleranceIn(BrokenAxe, x, y, MIX1, MIY1, MIX2, MIY2, 10) then //what if it dosnt find it?
begin
//Wait(310 + Random(115));
MMouse(x, y, 2, 2);
Wait(75 + Random(50)); // must wait at LEAST ~75 ms.
if (IsUpText('roken')) then
begin
GetMousePos(x, y); // this will remove the gittery mouse.
//Wait(350 + Random(210)); // would a human wait THAT long after finding the object? Not so much.
Mouse(x, y, 0, 0, True);
Writeln('Banked Broken Axe!');
end;
end;
if (FindDTM(AxeDTM, x, y, MSX1, MSY1, MSX2, MSY2)) then
begin
MMouse(nx, ny, 2, 2);
Wait(75 + Random(50)); //blah you know why by now.
if (IsUpText('xe')) then
begin
//Wait(315 + Random(220));
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
Writeln('Withdrawed a New Axe');
end;
end;
end;
CloseBank;
//Wait(1215 + Random(550)); // ...?
if Players[CurrentPlayer].Booleans[0] then
if FindDTM(AxeDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Weilding the New Axe...');
MMouse(x, y, 2, 2);
Wait(75 + random(50); // you MUST wait before checking uptext as rs client is slow.
if (IsUpText('xe')) then
begin
//Wait(330 + Random(115)); // uneeded
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
Writeln('Succesfully Weilded the New Axe.');
end;
end;
Result := True;
ReplacedAxe := ReplacedAxe + 1;
finally // just in case of a runtime error some how :)
FreeBitmap(BrokenAxe); //capital M was bugging me :P
FreeDTM(AxeDTM);
FreeDTM(WillowDTM);
end;
end;
end;

^ wow that was a big one. :)

function ReturnToBank : Boolean;
var
x, y : Integer;
begin
Result := FindBrokenAxe;
if (Result) then
begin
FindSymbol(x, y, 'Bank');
Wait(210 + Random(115));
Mouse(x, y, 2, 2, True);
Wait(115 + Random(45));
FFlag(0);
ReplaceAxe;
Wait(400 + Random(180));
end;
end;

procedure WalkToWillows;
var
x, y, SearchSymbol, SearchMMColor :Integer;
Arrived : Boolean;
begin
if (InvFull) or (not (LoggedIn)) then Exit;
repeat
if (FindSymbol(x, y, 'Fish')) then
begin
Mouse(x, y, 2, 2, True);
FFlag(0);
Arrived := True;
Writeln('Found the Fish Icon to the Willow Tree Site.');
Wait(910 + Random(445));
end;
if (not (FindSymbol(x, y, 'Fish'))) then
begin
Wait(45 + Random(155));
SearchSymbol := SearchSymbol + 1;
if (SearchSymbol = 20) then
begin
Writeln('Failed to find the Willow Tree Site, using a Fail Safe!');
Arrived := False;
if (FindColorTolerance(x, y, MMGrassColor, MSX1, MSY1, MSX2, MSY2, 10)) then
begin
MakeCompass('N');
RadialRoadWalk(MMGrassColor, 180, 250, 55, 1, 1);
Wait(750 + Random(495));
FFlag(0);
Arrived := True;
Writeln('Found Willow Tree Site, currently running there.');
Wait(1000 + Random(2000));
end;
if (not (FindColorTolerance(x, y, MMGrassColor, MSX1, MSY1, MSX2, MSY2, 10))) then
begin
Wait(555 + Random(400));
SearchMMColor := SearchMMColor + 1;
if (SearchMMColor = 5) then
begin
Writeln('Failed to find the Willow Tree Site. Logging Out.');
Arrived := False;
LogOut;
end;
end;
end;
end;
until (Arrived = True);
SearchMMColor := SearchMMColor - SearchMMColor;
SearchSymbol := SearchSymbol - SearchSymbol;
end;

procedure WalkToWillows;
var
x, y, SearchSymbol, SearchMMColor :Integer;
Arrived, B : Boolean;
begin
if (InvFull) or (not (LoggedIn)) then Exit;
Arrived := False;
repeat
if (FindSymbol(x, y, 'Fish')) then
begin
Mouse(x, y, 4, 4, True); //increase randomness
FFlag(Random(2)); //at least make it change :)
Arrived := True;
Writeln('Found the Fish Icon to the Willow Tree Site.');
//Wait(910 + Random(445)); //why?
end else // USE ELSE, makes it so you don't repeat the search.
//if (not (FindSymbol(x, y, 'Fish'))) then
begin
Wait(45 + Random(155));
Inc(SearchSymbol);
if (SearchSymbol = 20) then
begin
Writeln('Failed to find the Willow Tree Site, using a Fail Safe!');
//Arrived := False; Set False at the beginning then you don't need to do it otherwise.
if (FindColorTolerance(x, y, MMGrassColor, MSX1, MSY1, MSX2, MSY2, 10)) then
begin
MakeCompass('N');
RadialRoadWalk(MMGrassColor, 180, 250, 55, 1, 1);
//Wait(750 + Random(495)); unneeded with fflag
FFlag(0);
Arrived := True;
Writeln('Found Willow Tree Site, currently running there.');
//Wait(1000 + Random(2000)); ??
end else // USE THESEEEEE
begin
//Wait(555 + Random(400));
Inc(SearchMMColor);
if (SearchMMColor = 5) then
begin
Writeln('Failed to find the Willow Tree Site. Logging Out.');
Arrived := False;
LogOut;
Exit; //You forgot to break out of your procedure.
end;
end;
end;
end;
until (Arrived = True);
//SearchMMColor := SearchMMColor - SearchMMColor; // Why? Faster todo SearchMMColor := 0;
//SearchSymbol := SearchSymbol - SearchSymbol; // ..?
end;

procedure ChopWillows;
var
Tries, x, y : Integer;
begin
if (InvFull) or (not (LoggedIn)) then Exit;
repeat
if (FindBrokenAxe) then
begin
ReturnToBank;
Exit;
end;
if (FindObjTPA(x, y, WillowTree, 10, -1, 15, 15, 3, ['Willow','illow', 'hop'])) then
begin
if AvoidTrees then
begin
Writeln('That was no Willow Tree, that was just a Regular Tree!');
end;
Wait(335 + Random(115));
Writeln('Found Willow Tree');
MMouse(x, y, 1, 1);
Wait(450 + Random(235));
if IsUpText('illow') and (not (TextEntFinder)) then
begin
Wait(900 + Random(445));
if EntFinder then
begin
EntSpotted := EntSpotted + 1;
Exit;
end;
Mouse(x, y, 1, 1, True);
FFlag(0);
Wait(750 + Random(225));
if EntFinder then
begin
Exit;
end;
MMouse(x, y, 2, 2);
if (not (IsUpText('illow'))) then
begin
Wait(100 + Random(200));
FindColorSpiralTolerance(x, y, WillowTree, MSX1, MSY1, MSX2, MSY2, 10)
Mouse(x, y, 1, 1, True);
if (IsUpText('illow')) then
case (Random(5)) of
1: MMouse(x-2, y-2, 1, 1);
2: MMouse(x+1, y+3, 1, 1);
4: MMouse(x-1, y+2, 1, 1);
end;
end;
repeat
AntiRandoms;
Wait(900 + Random(450));
AntiBan;
Wait(505 + Random(225));
MMouse(x, y, 2, 2);
until (InvFull) or (not (IsUpText('illow')));
end;
end else
begin
Wait(550 + Random(450));
Tries := Tries + 1;
if (Tries = 5) then
begin
Writeln('Failed to find the Willow Tree, Logging Out.');
Exit;
LogOut;
end;
Tries := Tries - Tries;
end;
until (InvFull);
end;

procedure ChopWillows;
var
Tries, x, y : Integer;
begin
if (InvFull) or (not (LoggedIn)) then Exit;
repeat
if (FindBrokenAxe) then
begin
ReturnToBank;
Exit;
end;
if (FindObjTPA(x, y, WillowTree, 10, -1, 15, 15, 3, ['Willow','illow', 'hop'])) then
begin
if AvoidTrees then
//begin // dont need begins and ends for one line of code after an if statement.
Writeln('That was no Willow Tree, that was just a Regular Tree!');
//end;
//Wait(335 + Random(115)); ... Random
Writeln('Found Willow Tree');
MMouse(x, y, 5, 5); //increased randomness
Wait(75 + Random(50)); //smaller.
if IsUpText('illow') and (not (TextEntFinder)) then // You need to rewrite this.
begin // it shoudl wait for the ent to go away, not just exit out.
//Wait(900 + Random(445)); //would never wait that long // in your main loop it makes it just bank, doesn't actually avoid
if EntFinder then // it.
begin
Inc(EntSpotted);
//Exit;
{while EntFound do
begin // something LIKE that.
Wait(100 + random(50));
AntiRandoms;
end;}
end;
Mouse(x, y, 5, 5, True); //increased randomness
FFlag(0);
Wait(750 + Random(225));
if EntFinder then
begin
Exit;
end;
//MMouse(x, y, 2, 2); would just gitter the mouse.
if (not (IsUpText('illow'))) then // your tree down procedure? maybe use colors... :)
begin
Wait(100 + Random(200));
FindColorSpiralTolerance(x, y, WillowTree, MSX1, MSY1, MSX2, MSY2, 10)
Mouse(x, y, 1, 1, True);
if (IsUpText('illow')) then
case (Random(5)) of // so confused.
1: MMouse(x-2, y-2, 1, 1);
2: MMouse(x+1, y+3, 1, 1);
4: MMouse(x-1, y+2, 1, 1);
end;
end;
repeat
AntiRandoms;
Wait(100 + Random(450));
AntiBan;
Wait(100 + Random(225));
//MMouse(x, y, 2, 2); gitter mouse.
until (InvFull) or (not (IsUpText('illow')));
end;
end else // WOOT BRAVO!
begin
Wait(550 + Random(450));
Inc(Tries); //
if (Tries = 5) then
begin
Writeln('Failed to find the Willow Tree, Logging Out.');
LogOut; //switched these two lines around. :) IF the procedure exits, then it won't log out eh?
Exit; // BTW, you should just calibrate the players, and make them walk back the willows rather then log out.
end;
//Tries := Tries - Tries; if its a local variable, it doesnt free up memory doing that... :)
end;
until (InvFull);
end;

Just remove this procedure, and replace it with a regular dtm. There is NOTHING dynamic about the dtm here:

function BankDDTM: Integer;           // nothing dynamic about this. Change it to a regular dtm.

var
BankMainPoint: TDTMPointDef;
BankSubPoints: Array [0..4] of TDTMPointDef;
BankTDTM: TDTM;

begin

BankMainPoint.x := 632;
BankMainPoint.y := 70;
BankMainPoint.AreaSize := 0;
BankMainPoint.AreaShape := 0;
BankMainPoint.Color := 5087402;
BankMainPoint.Tolerance := 40;

BankSubPoints[0].x := 632;
BankSubPoints[0].y := 70;
BankSubPoints[0].AreaSize := 1;
BankSubPoints[0].AreaShape := 0;
BankSubPoints[0].Color := 5087402;
BankSubPoints[0].Tolerance := 40;

BankSubPoints[1].x := 632;
BankSubPoints[1].y := 77;
BankSubPoints[1].AreaSize := 1;
BankSubPoints[1].AreaShape := 0;
BankSubPoints[1].Color := 5087402;
BankSubPoints[1].Tolerance := 40;

BankSubPoints[2].x := 638;
BankSubPoints[2].y := 77;
BankSubPoints[2].AreaSize := 1;
BankSubPoints[2].AreaShape := 0;
BankSubPoints[2].Color := 1462373;
BankSubPoints[2].Tolerance := 40;

BankSubPoints[3].x := 638;
BankSubPoints[3].y := 71;
BankSubPoints[3].AreaSize := 1;
BankSubPoints[3].AreaShape := 0;
BankSubPoints[3].Color := 1462373;
BankSubPoints[3].Tolerance := 40;

BankSubPoints[4].x := 635;
BankSubPoints[4].y := 76;
BankSubPoints[4].AreaSize := 1;
BankSubPoints[4].AreaShape := 0;
BankSubPoints[4].Color := 1758693;
BankSubPoints[4].Tolerance := 40;

BankTDTM.MainPoint := BankMainPoint;
BankTDTM.SubPoints := BankSubPoints;
Result := AddDTM(BankTDTM);
end;

procedure WalkToBank;
var
x, y, SearchBankSymbol, BankDTM1 : Integer;
BankNotFound : Boolean;
begin
if not (LoggedIn) then Exit;
if (InvFull) then
begin
repeat
if (FindSymbol(x, y, 'Bank')) then
begin
MakeCompass('N');
Mouse(x, y, 2, 2, True);
FFlag(0);
Wait(585 + Random(315));
BankNotFound := False;
Writeln('Able to find Bank Icon! Walking to Bank.');
Wait(855 + Random(520));
end;
if (not (FindSymbol(x, y, 'Bank'))) or (not(FlagPresent)) then
begin
SearchBankSymbol := SearchBankSymbol + 1;
if (SearchBankSymbol = 10) then
begin
Writeln('Could not find the Bank Icon, using other methods.');
BankNotFound := True;
BankDTM1 := BankDDTM;
if DTMRotated(BankDTM1, X, Y, MMX1, MMY1, MMX2, MMY2) then
begin
WriteLn('Found BankDTM1');
Mouse(x, y, 2, 2, true);
Wait(450 + Random(115));
FFlag(0);
FreeDTM(BankDTM1);
BankNotFound := False;
end;
if (not (DTMRotated(BankDTM1, X, Y, MMX1, MMY1, MMX2, MMY2))) then
begin
Writeln('Failed to find the Bank Icon!');
LogOut;
end;
end;
end;
until (BankNotFound = False);
end;
SearchBankSymbol := SearchBankSymbol - SearchBankSymbol;
end;

procedure WalkToBank;
var
x, y, SearchBankSymbol, BankDTM1 : Integer;
BankFound : Boolean;
begin
if not (LoggedIn) then Exit;
BankFound := false;
//if (InvFull) then // it SHOULD just go regardless.. :)
//begin
repeat
if (FindSymbol(x, y, 'Bank')) then
begin
//MakeCompass('N'); will screw up symbol walking.
Mouse(x, y, 2, 2, True);
FFlag(0);
Wait(585 + Random(315));
BankFound := True; // made your logic easier. :D
Writeln('Able to find Bank Icon! Walking to Bank.');
Wait(855 + Random(520));
end else
//if (not (FindSymbol(x, y, 'Bank'))) {or (not(FlagPresent)) ?? } then
begin
Inc(SearchBankSymbol);
if (SearchBankSymbol = 10) then
begin
Writeln('Could not find the Bank Icon, using other methods.');
//BankFound := false; set at the beginning
BankDTM1 := BankDDTM; //fix this remember
if DTMRotated(BankDTM1, X, Y, MMX1, MMY1, MMX2, MMY2) then
begin
WriteLn('Found BankDTM1');
Mouse(x, y, 3, 3, true);
//Wait(450 + Random(115)); flagging.
FFlag(0);
// Moved this down so that it is ALWAYS freed
//BankFound := False;
end else
//if (not (DTMRotated(BankDTM1, X, Y, MMX1, MMY1, MMX2, MMY2))) then
begin
Writeln('Failed to find the Bank Icon!');
LogOut;
Exit;
end;
end;
end;
until (BankFound); // failsafe this more.
//end;
FreeDTM(BankDTM1);
//SearchBankSymbol := SearchBankSymbol - SearchBankSymbol;
end;

procedure BankItems;
var
WillowDTM, x, y : Integer;
BankedItems : Boolean;
begin
if not (LoggedIn) or (not (InvFull)) then Exit;
if (InvFull) then
begin
WillowDTM := DTMFromString('78DA63FCC4C4C0D0C9C8800A1819FE8349068' +
'6FF40C0C8C08C550D8204D2AC40355308A86104AA994940CD37A0' +
'7BE61050F31AA8A68F0835B3F0AB010040990CF0');
Wait(452 + Random(532));
if (OpenBankQuiet('db')) then
begin
FFlag(0);
Wait(435 + Random(325));
if (PinScreen) then
InPin(IntToStr(Players[CurrentPlayer].Integers[1]));
Wait(545 + Random(920));
FixBank;
if (FindDTM(WillowDTM, x, y, MIX1,MIY1,MIX2,MIY2)) then
begin
Deposit(1, 28, True);
Wait(1000 + Random(1840));
FreeDTM(WillowDTM);
LoadsToDo := LoadsToDo + 1;
LoadsCompleted := LoadsCompleted + 1;
BankedItems := True;
CloseBank;
end;
if (not (BankScreen)) then
begin
Writeln('Logging Out, can not find the Bank Screen');
LogOut;
end;
end;
end;
end;

procedure BankItems;
var
WillowDTM, x, y : Integer;
//BankedItems : Boolean;
begin
if not (LoggedIn) or (not (InvFull)) then Exit;
if (OpenBankQuiet('db'))then
begin
WillowDTM := DTMFromString('78DA63FCC4C4C0D0C9C8800A1819FE8349068' +
'6FF40C0C8C08C550D8204D2AC40355308A86104AA994940CD37A0' +
'7BE61050F31AA8A68F0835B3F0AB010040990CF0');
//Wait(452 + Random(532));
{if then
begin}
//FFlag(0); openbankquiet results true when the bank is open.
//Wait(435 + Random(325));
if (PinScreen) then
InPin(IntToStr(Players[CurrentPlayer].Integers[1]));
Wait(200 + Random(100));
FixBank;
if (FindDTM(WillowDTM, x, y, MIX1,MIY1,MIX2,MIY2)) then
begin
MouseItem(CoordsToItem(x, y), false);
Wait(100 + random(50));
ChooseOption('ll');
//Deposit(1, 28, True); what i wrote is safer. what if the axe is in the invy?
//Wait(1000 + Random(1840)); why bother?
// moved.
Inc(LoadsToDo);
Inc(LoadsCompleted);
//BankedItems := True; useless variable
CloseBank;
end;
{if (not (BankScreen)) then You close the bank the line before.. It will LogOut each time. :(
begin
Writeln('Logging Out, can not find the Bank Screen');
LogOut;
end; }
end;
end;
FreeDTM(WillowDTM);
end;

procedure CheckLoads;
begin
if (Players[CurrentPlayer].Integers[0] = LoadsToDo) then
begin
Writeln('Character has finished '+IntToStr(Players[CurrentPlayer].Integers[0])+'. Now switching players');
LogOut;
NextPlayer(False);
LoadsToDo := LoadsToDo - LoadsToDo;
end;
Writeln('Character has to finish '+ IntToStr(Players[CurrentPlayer].Integers[0] - LoadsToDo) + ' more loads.');
end;

Removed that procedure, placed it elsewhere.

And this one:

procedure CreditsAndSetUp;
begin
SetupSRL;
Signature;
end;

begin
SetupSRL;
Signature;
ActivateClient;
repeat
FindWoodcuttingLevel;
WalkToWillows;
ChopWillows;
WalkToBank;
BankItems;
ProgressReport;
if (Players[CurrentPlayer].Integers[0] = LoadsToDo) then
begin
Writeln('Character has finished '+IntToStr(Players[CurrentPlayer].Integers[0])+' Loads. Now switching players'); //fixed english
LogOut;
NextPlayer(False);
Setup;
//LoadsToDo := LoadsToDo - LoadsToDo; useless...
end;
Writeln('Character has to finish '+ IntToStr(LoadsToDo - Players[CurrentPlayer].Integers[0]) + ' more loads.'); // fixed math..
until (HowManyPlayers = CurrentPlayer)
end.

Thats teh final procedure fixed.

Wow, you need to work on this script a LOT. I don't think this even works actually.

I will post my version of the script which compiles.

Heavenzeyez1

2008-08-27 12:49:11

Some1 has been really bored , but to the script maker , it is really positive , i know from my own experience , ;)
I was about to do the same thing , but i was in a hurry . -.-
GJ,
~Eerik~

randy marsh

2008-08-27 13:00:33

Erm what you mean?

Heavenzeyez1

2008-08-27 13:04:14

From: djcheater
Erm what you mean?


Edited , sorry , my head is gray , too much working on a script . :)
~Eerik~

Claymore

2008-08-27 19:31:04

0.o Nava2, you do realize that this script was my very first script XD I'm a big kid now, i just coded a guild miner.

Otherwise, thanks Nava2! Bet you put lots of effort to it… But not realizing that i already knew these stuff XD

Nava2

2008-08-28 01:34:07

From: Deathscytex
0.o Nava2, you do realize that this script was my very first script XD I'm a big kid now, i just coded a guild miner.

Otherwise, thanks Nava2! Bet you put lots of effort to it… But not realizing that i already knew these stuff XD


Waste of an hour. I realized it after I finished. Tbh, I was unsure how you got members with that… :S

That script is non-functioning haha.

Claymore

2008-08-28 17:17:07

No, i posted my Maple Cut Burn and Bank. I got a score of 12 yes 1 no. XD

I was happy that day, good times!