SRL Archive - Archive

Special Ed - SRL Member Application Form


Special Ed

2007-03-05 18:31:00

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

What is the meaning to life?
42

Where you Referred to SRL? If yes, by whom?
yes
RefleX yea havent seen him around lately…. =(

Programming Knowledge
html,xml,java,javascript,C++

Other Communitys


How Long have You Played Runescape
Beta RSC

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

Hey, I applied last month or something and I didn't really have my SRL Script ready, and I got sick and just a bunch of stuff happened so it ended badly…

But, now I'm back and not as sick as before. I'm definitely a good programmer doesn't really matter what language it is I can usually make a good an efficient program. I've been scripting for a long time but I stopped for a while because I was taking another route of scripting a.k.a. (C++).

I'm definitely a good person as far as personality goes and I'm definitely a leader and work well with groups. I like input on my Programming / Scripting to help me improve my methods and make my scripts a lot better.

I've made a few "Ub3|2 1337" scripts in the past, like a food eater, a script that did romeo but like there were tons of updates since it worked last, a bunch of random script not using SRL but that never stopped me from making good scripts in the past.

And… I think I would be a great addition to the team because I learned SRL in and out in less than a week. XD

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

Also you'll notice my cool TreeNames Function… ehh… ehh… come on its cool you know it.

Oh and I guess it should really be called a willow smasher/banker but I wanted to show you guys my TreeNames Function cause I thought it was cool and I'd probably forget it if I didnt put it in… lol

Old One…
program SpecialWoodCutter;
{.include SRL\SRL.SCAR}
{.include SRL\SRL\Skill\Woodcutting.SCAR}
var
TreeName,TreeName1,TreeName2,TreeName3:string;
TreeColor,DTMBrokenAxe,DTMNormalAxe,Load,LoadTarget:integer;
Banked,Ran,Ent,NewAxe:integer;

//Setup//
procedure Setup;
begin
SetupSRL;
TreeName:='Willow';
TreeColor:= 2508872;
LoadTarget:= 5; //Number of loads until it switches characters
end;

procedure DeclarePlayers;
begin
HowManyPlayers := 2;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active:=true;

Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='';
Players[1].Active:=true;

end;
//End Of Setup//

procedure SetupScript;
begin
Wait(10 + Random(100));
MakeCompass('N');
Wait(10 + Random(100));
HighestAngle;
Wait(10+Random(100));
Load:= 0;
Banked:= 0;
Ran:= 0;
Ent:= 0;
NewAxe:= 0;
Wait(10 + Random(100));
end;

procedure LoadingDTMBitmaps;
begin
DTMBrokenAxe:= DTMFromString('78DA633CCAC4C090C1C8800C9A127919FE036' +
'990E87F2060BC0C54938CAA06220B2381F445A09A04026A8E01D5' +
'C41050B31FA8A698809AB384CD0100CBBD0D20');

DTMNormalAxe:= DTMFromString('78DA637461626060676440060DF1BC0CFF813' +
'448F43F10300601D5FC6740038C482490F604AAF94D408D13500D' +
'2B237E35F640358204D4F813618E1F50CD1F02EE0906AA61C26F0' +
'E0099720B7E');
end;

function TreeNames(TreeName:string):string;
var x:integer;
begin
if(Length(TreeName) >= 3)then
begin
x:= 1
TreeName1:= (StrGet(TreeName,1)+ StrGet(TreeName,2)+ StrGet(TreeName,3));
if(Length(TreeName) >= 4)then
begin
x:= 2
TreeName2:= (StrGet(TreeName,2)+ StrGet(TreeName,3)+ StrGet(TreeName,4));
if(Length(TreeName) >= 5)then
begin
x:= 3
TreeName3:= (StrGet(TreeName,3)+ StrGet(TreeName,4)+ StrGet(TreeName,5));
end;
end;
end;
if(x = 1)then
begin
result:= (TreeName1);
TreeName2:= TreeName1
result:= (TreeName2);
TreeName3:= TreeName1
result:= (TreeName3);
end;
if(x = 2)then
begin
result:= (TreeName1);
result:= (TreeName2);
TreeName3:= TreeName1
result:= (TreeName3);
end;
if(x = 3)then
begin
result:= (TreeName1);
result:= (TreeName2);
result:= (TreeName3);
end;
end;

procedure RunAway;
begin
Ran:= (Ran + 1);
SetRun(true);
MouseFindFlag(MMCX + 40, MMCY + 40, 5, 5);
Wait(15000 + Random(5000));
MouseFindFlag(MMCX - 40, MMCY - 40, 5, 5);
Flag;
Wait(100 + Random(100));
end;

procedure Ents;
begin
if(FindObjMultiText( x, y, TreeName1, TreeName2, TreeName3, TreeColor, 3))then
begin
MMouse( x, y, 0, 0);
if(FindColorTolerance( x, y, 55769, 85, 15, 115, 15, 20))then
begin
Ent:= (Ent + 1);
SetRun(true);
MouseFindFlag( MMCX + 3, MMCY + 3, 2, 2);
Wait(15000 + Random(5000));
MouseFindFlag( MMCX - 3, MMCY - 3, 2, 2);
Flag;
Wait(100 + Random(100));
end;
end;
end;

procedure SpecialAntiRandoms;
begin
FindNormalRandoms;
Ents;
DwarfItem;
FindLamp('Woodcutting');
OpenBox;
SolveBox;
if(DetectFrogCave)then SolveFrogSwamp;
if(InBlack)then Logout;
if(FindFight)then RunAway;
if(TalkToRand)then
begin
repeat
ClickToContinue;
until(not(TalkToRand));
end;
if(WeAreDead)then
begin
Logout;
Players[CurrentPlayer].Active:= False;
NextPlayer(True);
end;
end;

procedure SpecialAntiBan;
var px:integer;
begin
px:= Random(19);
case px of
0 : HoverSkill('Woodcutting',false);
1 : PickUpMouse;
2 : Wait(100 + Random(10));
3 : Wait(100 + Random(10));
4 : SpecialAntiRandoms;
5 : Wait(100 + Random(10));
6 : Wait(100 + Random(10));
7 : Wait(100 + Random(10));
8 : begin GameTab(Random(7)+1) Wait(400) end;
9 : SpecialAntiRandoms;
10 : Wait(100 + Random(10));
11 : Wait(100 + Random(10));
12 : Wait(100 + random(10));
13 : begin GameTab(Random(7)+1) Wait(400) end;
14 : Wait(100 + Random(10));
15 : Wait(100 + Random(10));
16 : Wait(100 + Random(10));
17 : PickUpMouse;
18 : Wait(100 + Random(10));
19 : PickUpMouse;
end;
end;

procedure WithdrawAxe;
var BX,BY:integer;
begin
if(FindDtm( DTMNormalAxe, BX, BY, MSX1, MSY1, MSX2, MSY2))then
begin
repeat
Mouse( x, y, 1, 1, True);
Wait(150 + Random(50));
until(FindDtm( DTMNormalAxe, BX, BY, MIX1, MIY1, MIX2, MIY2));
end;
end;

procedure DepositBrokenAxe;
var BX,BY:integer;
begin
repeat
FindDtm( DTMBrokenAxe, BX, BY, MIX1, MIY1, MIX2, MIY2);
Mouse( x, y, 1, 1, True);
Wait(150 + Random(50));
until(not(FindDtm( DTMBrokenAxe, BX, BY, MIX1, MIY1, MIX2, MIY2)));
end;

procedure BankNewAxe;
begin
NewAxe:= (NewAxe + 1);
SetRun(true);
Wait(100);
FindSymbol( x, y, 'bank');
Status('Trees -> Bank');
Wait(100);
Mouse( x, y, 1, 1, true);
Flag;
Wait(500 + Random(100));
if(FindObj( x, y, 'ooth', 3552827, 5))then
begin
Mouse( x, y, 0, 0, false);
Wait(500 + Random(250));
PopUp('ickl');
Flag;
Wait(1000 + Random(500));
WithdrawAxe;
Wait(100 + Random(50));
DepositBrokenAxe;
Wait(1000 + Random(500));
end;
if(not(FindDtm( DTMNormalAxe, x, y, MSX1, MSY1, MSX2, MSY2)))then
begin
Status('Could not Find Banked Axe / Logging Out');
Logout;
Players[CurrentPlayer].Active:= False;
Nextplayer(true);
end;
CloseBank;
Wait(100 + Random(100));
MouseFindFlag(MMCX - 30, MMCY + 30, 3, 3);
Status('Bank -> Trees');
end;

procedure AxeBroken;
begin
Status('Checking For Broken Axe...');
GameTab(4)
Wait(100 + Random(100))
if(not(FindDTM( DTMBrokenAxe, x, y, MIX1, MIY1, MIX2, MIY2)))then
begin
Status('No Broken Axe');
Exit;
end;
if(FindDTM( DTMBrokenAxe, x, y, MIX1, MIY1, MIX2, MIY2 )and(not(FindDTM( DTMNormalAxe, x, y, MIX1, MIY1, MIX2, MIY2))))then
begin
Status('Found a Broken Axe / No More in Inventory');
BankNewAxe;
end;
end;

procedure AxeFinder;
begin
Wait(100 + Random(100));
FindHead;
Wait(100 + Random(100));
AttachHead;
end;

procedure Banking;
begin
Banked:= (Banked + 1);
FindSymbol( x, y, 'bank');
SetRun(true);
Wait(100);
Mouse( x, y, 2, 2, true);
Flag;
Wait(500 + Random(100));
if(FindObj( x, y, 'booth', 3552827, 5))then
begin
Mouse( x, y, 0, 0, false);
Wait(400 + Random(200));
PopUp('ickl');
end;
Wait(400 + Random(200));
ClickItemName(TreeName2,false);
Wait(10);
ChooseOption( x, y, 'All')
Wait(100);
ClickItemName('Broken',false);
ChooseOption( x, y, 'All')
Wait(100);
CloseBank;
Wait(100 + Random(100));
MouseFindFlag( MMCX - 30, MMCY + 30, 3, 3);
Flag;
Wait(200 + Random(200));
end;


procedure TreeTime;
var XT,YT,z:integer;
begin
z:= 0;
if(not(LoggedIn))then
begin
NextPlayer(false);
Exit;
end;
Wait(1000 + Random(500));
if(FindObjMultiText( XT, YT, TreeName1, TreeName2, TreeName3, TreeColor, 3))then
begin
Wait(100 + Random(10));
Mouse( XT, YT, 1, 1, True);
Wait(10);
Mouse( XT, YT, 1, 1, True);
Wait(10 + Random(10));
SpecialAntiRandoms;
begin
repeat
z:= (z + 1);
Ents;
Wait(100 + Random(100));
until((not(IsUpText(TreeName2)))or(IsUpText('alk'))or(z >= 4));
end;
Flag;
SpecialAntiRandoms;
end;
if(InvFull)then
begin
Banking;
end;
end;

procedure SpecialTree;
begin
TreeNames(TreeName);
repeat
begin
AxeBroken;
Wait(10);
SpecialAntiBan;
Wait(10);
TreeTime;
Wait(10);
AxeFinder;
end;
until(InvFull);
Banking;
end;

procedure ProgressReport;
begin
ClearDebug;
Writeln('|/\/\/\/\/\/\/\/\/\/\/\/\|');
Writeln(' Special Woodcutter ');
Writeln('');
Writeln(' Time Ran: '+TimeRunning+' ');
Writeln(' Loads Banked: '+inttostr(banked)+' ');
Writeln(' Ran Away: '+inttostr(Ran)+' ');
Writeln(' Ents Avoided: '+inttostr(Ent)+' ');
Writeln(' Axes WithDrawn: '+inttostr(NewAxe)+' ');
Writeln('');
Writeln('|/\/\/\/\/\/\/\/\/\/\/\/\|');
end;

begin
Wait(1500);
Setup;
DisguiseScar('Ventrilo');
LoadingDTMBitmaps;
DeclarePlayers;
ClearDebug;
if(not(LoggedIn))then Loginplayer;
begin
repeat
SetupScript;
repeat
if(not(LoggedIn))then
begin
NextPlayer(False);
Exit;
end;
SpecialTree;
Load:= (Load + 1);
ProgressReport;
until(Load > (Random(5)+ LoadTarget));
LogOut;
NextPlayer(True);
ProgressReport;
until(false);
end;
end.

Updated New One…
{.Script Info:
# ScriptName = Special WoodCutter
# Author = Special Ed
# Description = Chop & Banks Willows at Draynor
# Version = 1.15
# Date = March 10, 2007
# Comments =
/Script Info}
program SpecialWillowBanker;
{.include SRL\SRL.SCAR}
{.include SRL\SRL\Skill\Woodcutting.SCAR}
var
TreeName1,TreeName2,TreeName3:string;
TreeColor,DTMBrokenAxe,DTMNormalAxe,Load,LoadTarget,DTMAxeHandle:integer;
Banked,Ran,Ent,NewAxe:integer;

//Setup//
procedure Setup;
begin;
SetupSRL;
TreeColor:= 3502184;
LoadTarget:= 100; //Number of loads until it switches characters
end;

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

Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active:=true;
end;
//End Of Setup//

procedure SetupScript;
begin
FindAxeHeadColor;
Wait(10 + Random(100));
MakeCompass('N');
Wait(10 + Random(100));
HighestAngle;
Wait(10 + Random(100));
Load:= 0;
Banked:= 0;
Ran:= 0;
Ent:= 0;
NewAxe:= 0;
Wait(10 + Random(100));
end;

procedure LoadingDTMBitmaps;
begin
DTMBrokenAxe:= DTMFromString('78DA633CCCC4C0B091910119D4C4F13180444' +
'0F83F10301E02AA5987AA06220B2381F459A09AF504D49C03AAD9' +
'4040CD19A09ACD4498B38D809AD340353B08A8390A54B385809AD' +
'D403527F0AB0100F014127B');

DTMNormalAxe:= DTMFromString('78DA637CCDC4C0B09E9101197467083280444' +
'0F83F1030BE02AA598DAA06220B2381F47BA09A3504D47C2642CD' +
'57A09A7544A8D94840CD27A09AAD04D43C02AA398A5F0D002B8D1' +
'231');
DTMAxeHandle:= DTMFromString('78DA63F4616260F8C6800618914820ED0B54F' +
'385801A4FA09A3F44A8F941408D3D500D1F237E35DE986EAE88E2' +
'63E042520300750807A0');
end;

function TreeNames(TreeName:string):string;
var x:integer;
begin
if(Length(TreeName) >= 3)then
begin
x:= 1
TreeName1:= (StrGet(TreeName,1) + StrGet(TreeName,2) + StrGet(TreeName,3));
if(Length(TreeName) >= 4)then
begin
x:= 2
TreeName2:= (StrGet(TreeName,2) + StrGet(TreeName,3) + StrGet(TreeName,4));
if(Length(TreeName) >= 5)then
begin
x:= 3
TreeName3:= (StrGet(TreeName,3) + StrGet(TreeName,4) + StrGet(TreeName,5));
end;
end;
end;
if(x = 1)then
begin
result:= (TreeName1);
TreeName2:= TreeName1
result:= (TreeName2);
TreeName3:= TreeName1
result:= (TreeName3);
end;
if(x = 2)then
begin
result:= (TreeName1);
result:= (TreeName2);
TreeName3:= TreeName1
result:= (TreeName3);
end;
if(x = 3)then
begin
result:= (TreeName1);
result:= (TreeName2);
result:= (TreeName3);
end;
end;

procedure RunAway;
begin
Ran:= (Ran + 1);
SetRun(true);
MouseFindFlag(MMCX + 40,MMCY + 40,5,5);
Wait(15000 + Random(5000));
MouseFindFlag(MMCX - 40,MMCY - 40,5,5);
Flag;
Wait(100 + Random(100));
end;

procedure Ents;
begin
TreeNames('Willow');
if(not(FindColorTolerance(x,y,55769,85,15,115,15,25)))then
begin
Exit;
end;
if(FindColorTolerance(x,y,55769,85,15,115,15,25))then
begin
Ent:= (Ent + 1);
SetRun(true);
MouseFindFlag(MMCX + 3,MMCY + 3,2,2);
Wait(15000 + Random(5000));
MouseFindFlag(MMCX - 3,MMCY - 3,2,2);
Flag;
Wait(500 + Random(100));
end;
end;

procedure SpecialAntiRandoms;
begin
FindNormalRandoms;
Ents;
DwarfItem;
FindLamp('Woodcutting');
OpenBox;
SolveBox;
if(DetectFrogCave)then SolveFrogSwamp;
if(InBlack)then Logout;
if(FindFight)then RunAway;
if(TalkToRand)then
begin
repeat
ClickToContinue;
until(not(TalkToRand));
end;
if(WeAreDead)then
begin
Logout;
Players[CurrentPlayer].Active:= False;
NextPlayer(True);
end;
end;

procedure SpecialAntiBan;
var RX:integer;
begin
RX:=Random(19);
case RX of
0 : HoverSkill('Woodcutting',false);
1 : PickUpMouse;
2 : Wait(100 + Random(10));
3 : Wait(100 + Random(10));
4 : SpecialAntiRandoms;
5 : Wait(100 + Random(10));
6 : Wait(100 + Random(10));
7 : Wait(100 + Random(10));
8 : begin; GameTab(Random(7) + 1) Wait(300 + Random(50)) end;
9 : SpecialAntiRandoms;
10 : Wait(100 + Random(10));
11 : Wait(100 + Random(10));
12 : Wait(100 + random(10));
13 : begin; GameTab(Random(7) + 1) Wait(300 + Random(50)) end;
14 : Wait(100 + Random(10));
15 : Wait(100 + Random(10));
16 : Wait(100 + Random(10));
17 : PickUpMouse;
18 : Wait(100 + Random(10));
19 : PickUpMouse;
end;
end;

procedure WithdrawAxe;
var BX,BY,BT:integer;
begin
BT:= 0;
if(not(FindDtm(DTMNormalAxe,BX,BY,MSX1,MSY1,MSX2,MSY2)))then
begin
Status('You Have No More Axes Logging Out...');
Logout;
Players[CurrentPlayer].Active:= False;
Nextplayer(true);
end;
if(FindDtm(DTMNormalAxe,BX,BY,MSX1,MSY1,MSX2,MSY2))then
begin
repeat
BT:= (BT + 1);
Mouse(BX,BY,1,1,True);
Wait(700 + Random(200));
until(FindDtm(DTMNormalAxe,BX,BY,MIX1,MIY1,MIX2,MIY2)or(BT > 5));
FindAxeHeadColor;
end;
end;

procedure DepositBrokenAxe;
var BX,BY,BT:integer;
begin
BT:= 0;
if(not(FindDtm(DTMBrokenAxe,BX,BY,MIX1,MIY1,MIX2,MIY2)))then
begin
Exit;
end;
if(FindDtm(DTMBrokenAxe,BX,BY,MIX1,MIY1,MIX2,MIY2))then
begin
repeat
BT:= (BT + 1);
Mouse(BX,BY,1,1,True);
Wait(700 + Random(200));
until(not(FindDtm(DTMBrokenAxe,BX,BY,MIX1,MIY1,MIX2,MIY2))or(BT >= 5));
end;
end;

procedure DepositAxeHandle;
var BX,BY,BT:integer;
begin
BT:= 0;
if(not(FindDtm(DTMAxeHandle,BX,BY,MIX1,MIY1,MIX2,MIY2)))then
begin
Exit;
end;
if(FindDtm(DTMAxeHandle,BX,BY,MIX1,MIY1,MIX2,MIY2))then
begin
repeat
BT:= (BT + 1);
Mouse(BX,BY,1,1,True);
Wait(700 + Random(200));
until(not(FindDtm(DTMAxeHandle,BX,BY,MIX1,MIY1,MIX2,MIY2))or(BT >= 5));
end;
end;

procedure BankNewAxe;
begin
NewAxe:= (NewAxe + 1);
SetRun(true);
Wait(100);
FindSymbol(x,y,'bank');
Status('Trees -> Bank');
Wait(100);
Mouse(x,y,1,1,true);
Flag;
Wait(500 + Random(100));
if(FindObj(x,y,'ooth',3552827,5))then
begin
Mouse(x,y,0,0,false);
Wait(1000 + Random(500));
PopUp('ickl');
Flag;
Wait(1000 + Random(500));
DepositBrokenAxe;
Wait(1000 + Random(500));
DepositAxeHandle;
Wait(1000 + Random(500));
Wait(1000 + Random(500));
WithdrawAxe;
end;
CloseBank;
Wait(100 + Random(100));
MouseFindFlag(MMCX - 30,MMCY + 30,3,3);
Status('Bank -> Trees');
end;

procedure AxeBroken;
begin
Status('Checking For Broken Axe...');
GameTab(4)
Wait(100 + Random(100))
if(not(FindDTM(DTMBrokenAxe,x,y,MIX1,MIY1,MIX2,MIY2)))then
begin
Status('No Broken Axe');
Exit;
end;
if(FindDTM(DTMBrokenAxe,x,y,MIX1,MIY1,MIX2,MIY2 )and(not(FindDTM(DTMNormalAxe, x, y, MIX1, MIY1, MIX2, MIY2))))then
begin
Status('Found a Broken Axe / No More in Inventory');
BankNewAxe;
end;
end;

procedure AxeFinder;
begin
LoadingDTMBitmaps;
Wait(100 + Random(100));
if(not(FindDTM(DTMAxeHandle,x,y,MIX1,MIY1,MIX2,MIY2)))then
begin
Exit;
end;
if(FindDTM(DTMAxeHandle,x,y,MIX1,MIY1,MIX2,MIY2)or(InChatMulti('ot ha','ch yo','ing le')))then
begin
FindHead;
Wait(100 + Random(100));
AttachHead;
Wait(100 + Random(100));
BankNewAxe;
end;
end;

procedure Banking;
var BX,BY,BAX,BAY:integer;
begin
TreeNames('Willow');
FindSymbol(BX,BY,'bank');
if(not(FindSymbol(BX,BY,'bank')))then
begin
Exit;
end;
SetRun(true);
Wait(100);
Mouse(BX,BY,2,2,true);
Flag;
Wait(500 + Random(100));
if(FindObj(BAX,BAY,'booth',3552827,5))then
begin
Mouse(BAX,BAY,0,0,false);
Wait(400 + Random(200));
PopUp('ickl');
end;
Wait(1000 + Random(500));
begin
repeat
ClickItemName(TreeName2,false);
Wait(400 + Random(100));
ChooseOption(BX,BY,'All')
Banked:= (Banked + 1);
Wait(200 + Random(100));
until(not(FindItemName(TreeName1))or(not(FindItemName(TreeName2))or(not(FindItemName(TreeName3)))));
end;
Wait(100 + Random(50));
DepositBrokenAxe;
Wait(100 + Random(50));
CloseBank;
Wait(100 + Random(100));
MouseFindFlag(MMCX - 30,MMCY + 30,3,3);
Flag;
Wait(200 + Random(200));
end;


function StillCutting: Boolean;
var XT,YT:integer;
begin
TreeNames('Willow');
if(IsUpText('alk')or(IsUpText('lk he')or(IsUpText('her'))))then
begin
result:= false;
end;
if(IsUpText('hop')or(IsUpText('own')or(IsUpText(TreeName2))))then
begin
result:= true;
end;
if(result = true)then
begin
Exit;
end;
if(result = false)then
begin
FindObjMultiText(XT,YT,TreeName1,TreeName2,TreeName3,TreeColor,3)
Wait(500 + Random(100));
Ents;
Mouse(XT,YT,1,1,True);
AxeFinder;
AxeBroken;
SpecialAntiRandoms;
end;
end;

procedure TreeTime;
var XT,YT,TTol:integer;
begin
TTol:= 3
if(not(LoggedIn))then
begin
NextPlayer(false);
Exit;
end;
TreeNames('Willow');
Wait(1000 + Random(500));
AxeBroken;
if(not(FindObjMultiText(XT,YT,TreeName1,TreeName2,TreeName3,TreeColor,TTol)))then
begin
repeat
TTol:= (TTol + 1);
until(FindObjMultiText(XT,YT,TreeName1,TreeName2,TreeName3,TreeColor,TTol));
end;
if(FindObjMultiText(XT,YT,TreeName1,TreeName2,TreeName3,TreeColor,TTol)or(IsUpTextMulti('hop down','down','own'))or(IsUpTextMulti(TreeName1,TreeName2,TreeName3)))then
begin
Wait(100 + Random(10));
Ents;
Mouse(XT,YT,1,1,True);
Wait(100 + Random(100));
AxeFinder;
Flag;
Wait(100 + Random(10));
SpecialAntiBan;
Wait(100 + Random(10));
StillCutting;
Wait(5000 + Random(1000));
end;
if(InvFull)then
begin
Banking;
end;
end;

procedure SpecialTree;
begin
repeat
begin
SpecialAntiRandoms;
Wait(100);
TreeTime;
end;
until(InvFull);
Banking;
end;

procedure ProgressReport;
begin
Writeln(' Special Woodcutter ');
Writeln('');
Writeln(' Time Ran: ' + TimeRunning + ' ');
Writeln(' Loads Banked: ' + inttostr(Banked) + ' ');
Writeln(' Ran Away: ' + inttostr(Ran) + ' ');
Writeln(' Ents Avoided: ' + inttostr(Ent) + ' ');
Writeln(' Axes Withdrawn: ' + inttostr(NewAxe) + ' ');
Writeln('');
end;

begin
Wait(1500);
Setup;
DisguiseScar('Ventrilo');
LoadingDTMBitmaps;
DeclarePlayers;
ClearDebug;
if(not(LoggedIn))then Loginplayer;
begin
repeat
SetupScript;
begin
repeat
if(not(LoggedIn))then
begin
NextPlayer(False);
Exit;
end;
SpecialTree;
ProgressReport;
until(Load > (Random(5) + LoadTarget));
end;
LogOut;
NextPlayer(True);
ProgressReport;
until(false);
end;
end.


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

Special Ed

2007-03-05 19:26:37

A No already, could you please tell me why so I can change it please?

bullzeye95

2007-03-05 19:30:54

Ohhhhhh crap! Jesus I meant to say yes! Ok whoever can change it, please change my vote :p sorry

Please make the code readable though. Use standards. Oh and don't put a semicolon after begin.

Special Ed

2007-03-05 20:03:02

K make it readable and don't use a semicolon, but… what are standards if you don't mind me asking?

YoHoJo

2007-03-05 20:03:27

DTMS Stolen and some other sotlen from
http://www.sythe.org/showthread.php?t=150940

Seems mostly like an edited version of four's with added banking to me -.-

Also, no standards, no failsafes.

No From Me.

Standards are INDENTS.
Hers a small tut on them
http://kaitnieks.com/scar/scriptingsta/

Special Ed

2007-03-05 20:23:17

No, Honestly I didn't steal anything from four's script, I don't even go on sythe anymore but I can see what your saying lol… if there is any way to prove it come on ventrilo cause I've been testing it for like 5 days and you can ask anyone.

Oh, and the standards thing, Umm.. I really didn't think that it was that important, it's just easier to read for me the way I had it… sorry I'll change it if it'll help at all. I really never knew that… lol I thought people just thought it looked cooler that way I didn't know it was mandatory

K, I fixed the Standards stuff, but I think I might have done it wrong in some parts…

Could you like ask Four if he can look at it and tell you or something, cause I really didnt steal it I promise and now that you said I did everyone will think I did and I'll never get into SRL…. =(

bullzeye95

2007-03-05 21:04:26

Keep the no from me. Stolen stuff…

It's not mandatory. It just makes it easier for us to read.

Special Ed

2007-03-05 21:12:13

Seriously I really didn't steal it I'll make another script if I have to to prove to you guys that I really made it!

Boreas

2007-03-05 22:25:07

Yoho could you get four in here? He should be able to recognize his own code even better than the copybuster :p .

Special Ed

2007-03-05 23:01:31

Thx Boreas, even though this is probably you just doing your job.

Boreas

2007-03-05 23:03:59

Not my job, I just like to keep an eye on the membership apps, and trying to get to the bottom of this.

Special Ed

2007-03-05 23:05:08

Oh Well thanks anyways…

But I g2g for tonight I'll check-up on this in the morning.

YoHoJo

2007-03-05 23:34:40

Ok fine, ill get four to check also.
I know you didnt copy completely, but a lot is so similar.
And even if you didnt copy, i still vote no :p
But ill grab four sometime and have him take a look.
Though, he inst on much =/ .

You have to admit though
you DID steal the DTMs.
They are 100% identical and not credited.

Your Ent:
procedure Ents;
begin
if(FindObjMultiText( x, y, TreeName1, TreeName2, TreeName3, TreeColor, 3))then
begin
MMouse( x, y, 0, 0);
if(FindColorTolerance( x, y, 55769, 85, 15, 115, 15, 20))then
begin
Ent:= (Ent + 1);
SetRun(true);
MouseFindFlag( MMCX + 3, MMCY + 3, 2, 2);
Wait(15000 + Random(5000));
MouseFindFlag( MMCX - 3, MMCY - 3, 2, 2);
Flag;
Wait(100 + Random(100));
end;
end;
end;

Four's Ent:
//->Ent Checker<-//
Var
EX, EY : integer;
FX, FY : integer;
Procedure EntChecker;
Begin
Status('Checking For Ent')
Flag;
If (FindObjMultiText(EX, EY, TheTreeName, TheTreeName, TheTreeName, Treecolor, 4)) then
Begin
MMouse(Ex, EY, 0, 0)
If FindColorTolerance( FX, FY, 55769, 85, 15, 115, 15, 20) then
Begin
Status('Ent Found');
MouseFindFlag(648,83,5,5);
Wait(15000+Random(5000));
end;
end;
end;

Your Axe Broken:
procedure AxeBroken;
begin
Status('Checking For Broken Axe...');
GameTab(4)
Wait(100 + Random(100))
if(not(FindDTM( DTMBrokenAxe, x, y, MIX1, MIY1, MIX2, MIY2)))then
begin
Status('No Broken Axe');
Exit;
end;
if(FindDTM( DTMBrokenAxe, x, y, MIX1, MIY1, MIX2, MIY2 )and(not(FindDTM( DTMNormalAxe, x, y, MIX1, MIY1, MIX2, MIY2))))then
begin
Status('Found a Broken Axe / No More in Inventory');
BankNewAxe;
end;
end;

Fours:

Procedure IsAxeBroken;
Begin
Status('Checking for broken axe')
GameTab(4)
Wait(400 + Random (100))
If (Not(FindDTM(BrokenAxeDTM, BX, BY, MIX1, MIY1, MIX2, MIY2 ))) then
Begin
Status('Axe Not Broken')
Exit;
end;
Begin
If (FindDTM(BrokenAxeDTM, BX, BY, MIX1, MIY1, MIX2, MIY2 )) and
(Not(FindDTM(RegularAxeDTM, NX, NY, MIX1, MIY1, MIX2, MIY2))) then
Begin
Status('Broke an Axe, and you have no more.')
NextPlayer(False)
end;
end;
end;

I dunno what to say for this one.
Iv contacted fourscape.
He can judge.

Wizzup?

2007-03-06 02:19:40

It looks nice to me, if it isn't stolen.
Maybe his code was just inspired on four's code? :)

Ruroken

2007-03-06 08:29:30

maybe, but those copy buster types are awfully suspicions of everyone who makes an app here ;)

Special Ed

2007-03-06 14:11:24

Wow I guess I can see why you though I stole the script lol… but not so much my Ent procedure, but no I didn't steal anything of fours I honestly honestly didn't copy those DTM's… I know their identical but… this is all just messed up how come i spend almost 2 weeks on something and get it working great and I come to try to get into SRL all this stuff happens, I didn't copy anything and I'm sorry if you think I did… If there is any way to make it up to the people who think I'm a cheat… let me know… cause even if I don't get into SRL this time I still want to be able to get in some other time.

Anyways.. I'm going to try and finish my miner cause if I don't get in I want to have something ready for next month… And I'll make this script so screwed up you wont be able to compare it to anything. OK?and I'll remember standards too

Special Ed

2007-03-06 16:22:31

Here is an updated version of my script I got rid of the "stolen" DTM and replaced them with new ones, but I like the ent procedure I thought of even though fours' was released before mine and I also fixed some axe banking issues it had.

{.Script Info:
# ScriptName = Special WoodCutter
# Author = Special Ed
# Description = Chop & Banks Willows at Draynor
# Version = 1
# Date = March 5, 2007
# Comments =
/Script Info}
program SpecialWoodCutter;
{.include SRL\SRL.SCAR}
{.include SRL\SRL\Skill\Woodcutting.SCAR}
var
TreeName,TreeName1,TreeName2,TreeName3:string;
TreeColor,BrokenAxe,NormalAxe,Load,LoadTarget:integer;
Banked,Ran,Ent,NewAxe:integer;

//Setup//
procedure Setup;
begin;
SetupSRL;
TreeName:='Willow';
TreeColor:= 2637880;
LoadTarget:= 5; //Number of loads until it switches characters
end;

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

Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active:=true;
end;
//End Of Setup//

procedure SetupScript;
begin
Wait(10 + Random(100));
MakeCompass('N');
Wait(10 + Random(100));
HighestAngle;
Wait(10 + Random(100));
Load:= 0;
Banked:= 0;
Ran:= 0;
Ent:= 0;
NewAxe:= 0;
Wait(10 + Random(100));
end;

procedure LoadingDTMBitmaps;
begin
BrokenAxe:= DTMFromString('78DA633CCCC4C0B091910119D4C4F13180444' +
'0F83F10301E02AA5987AA06220B2381F459A09AF504D49C03AAD9' +
'4040CD19A09ACD4498B38D809AD340353B08A8390A54B385809AD' +
'D403527F0AB0100F014127B');

NormalAxe:= DTMFromString('78DA637CCDC4C0B09E9101197467083280444' +
'0F83F1030BE02AA598DAA06220B2381F47BA09A3504D47C2642CD' +
'57A09A7544A8D94840CD27A09AAD04D43C02AA398A5F0D002B8D1' +
'231');
end;

function TreeNames(TreeName:string):string;
var x:integer;
begin
if(Length(TreeName) >= 3)then
begin
x:= 1
TreeName1:=(StrGet(TreeName,1)+ StrGet(TreeName,2)+ StrGet(TreeName,3));
if(Length(TreeName) >= 4)then
begin
x:= 2
TreeName2:=(StrGet(TreeName,2)+ StrGet(TreeName,3)+ StrGet(TreeName,4));
if(Length(TreeName) >= 5)then
begin
x:= 3
TreeName3:=(StrGet(TreeName,3)+ StrGet(TreeName,4)+ StrGet(TreeName,5));
end;
end;
end;
if(x = 1)then
begin
result:=(TreeName1);
TreeName2:= TreeName1
result:=(TreeName2);
TreeName3:= TreeName1
result:=(TreeName3);
end;
if(x = 2)then
begin
result:=(TreeName1);
result:=(TreeName2);
TreeName3:= TreeName1
result:=(TreeName3);
end;
if(x = 3)then
begin
result:=(TreeName1);
result:=(TreeName2);
result:=(TreeName3);
end;
end;

procedure RunAway;
begin
Ran:=( Ran + 1);
SetRun(true);
MouseFindFlag(MMCX + 40,MMCY + 40,5,5);
Wait(15000+Random(5000));
MouseFindFlag(MMCX - 40,MMCY - 40,5,5);
Flag;
Wait(100 + Random(100));
end;

procedure Ents;
begin
if(FindObjMultiText(x,y,TreeName1,TreeName2,TreeName3,TreeColor,3))then
begin
MMouse(x,y,0,0);
if(FindColorTolerance(x,y,55769,85,15,115,15,20))then
begin
Ent:= (Ent + 1);
SetRun(true);
MouseFindFlag(MMCX + 3,MMCY + 3,2,2);
Wait(15000 + Random(5000));
MouseFindFlag(MMCX - 3,MMCY - 3,2,2);
Flag;
Wait(100 + Random(100));
end;
end;
end;

procedure SpecialAntiRandoms;
begin
FindNormalRandoms;
Ents;
DwarfItem;
FindLamp('Woodcutting');
OpenBox;
SolveBox;
if(DetectFrogCave)then SolveFrogSwamp;
if(InBlack)then Logout;
if(FindFight)then RunAway;
if(TalkToRand)then
begin
repeat
ClickToContinue;
until(not(TalkToRand));
end;
if(WeAreDead)then
begin
Logout;
Players[CurrentPlayer].Active:= False;
NextPlayer(True);
end;
end;

procedure SpecialAntiBan;
var px:integer;
begin
px:=Random(19);
case px of
0 : HoverSkill('Woodcutting',false);
1 : PickUpMouse;
2 : Wait(100 + Random(10));
3 : Wait(100 + Random(10));
4 : SpecialAntiRandoms;
5 : Wait(100 + Random(10));
6 : Wait(100 + Random(10));
7 : Wait(100 + Random(10));
8 : begin; GameTab(Random(7) + 1) Wait(400) end;
9 : SpecialAntiRandoms;
10 : Wait(100 + Random(10));
11 : Wait(100 + Random(10));
12 : Wait(100 + random(10));
13 : begin; GameTab(Random(7) + 1) Wait(400) end;
14 : Wait(100 + Random(10));
15 : Wait(100 + Random(10));
16 : Wait(100 + Random(10));
17 : PickUpMouse;
18 : Wait(100 + Random(10));
19 : PickUpMouse;
end;
end;

procedure WithdrawAxe;
var BX,BY:integer;
begin
if(FindDtm(NormalAxe,BX,BY,MSX1,MSY1,MSX2,MSY2))then
begin
repeat
Mouse(BX,BY,1,1,True);
Wait(300 + Random(100));
until(FindDtm(NormalAxe,BX,BY,MIX1,MIY1,MIX2,MIY2));
end;
end;

procedure DepositBrokenAxe;
var BX,BY:integer;
begin
repeat
FindDtm(BrokenAxe,BX,BY,MIX1,MIY1,MIX2,MIY2);
ClickItemName('Broken',false);
ChooseOption(x, y, 'All')
Wait(300 + Random(100));
until(not(FindDtm(BrokenAxe,BX,BY,MIX1,MIY1,MIX2,MIY2)));
end;

procedure BankNewAxe;
begin
NewAxe:= (NewAxe + 1);
SetRun(true);
Wait(100);
FindSymbol(x,y,'bank');
Status('Trees -> Bank');
Wait(100);
Mouse(x,y,1,1,true);
Flag;
Wait(500 + Random(100));
if(FindObj(x,y,'ooth',3552827,5))then
begin
Mouse(x,y,0,0,false);
Wait(500 + Random(250));
PopUp('ickl');
Flag;
Wait(2000 + Random(1000));
WithdrawAxe;
Wait(2000 + Random(1000));
DepositBrokenAxe;
Wait(1000 + Random(500));
end;
if(not(FindDtm(NormalAxe,x,y,MSX1,MSY1,MSX2,MSY2)))then
begin
Status('Could not Find Banked Axe / Logging Out');
Logout;
Players[CurrentPlayer].Active:= False;
Nextplayer(true);
end;
CloseBank;
Wait(100 + Random(100));
MouseFindFlag(MMCX - 30,MMCY + 30,3,3);
Status('Bank -> Trees');
end;

procedure AxeBroken;
begin
Status('Checking For Broken Axe...');
GameTab(4)
Wait(100 + Random(100))
if(not(FindDTM(BrokenAxe,x,y,MIX1,MIY1,MIX2,MIY2)))then
begin
Status('No Broken Axe');
Exit;
end;
if(FindDTM(BrokenAxe,x,y,MIX1,MIY1,MIX2,MIY2 )and(not(FindDTM(NormalAxe, x, y, MIX1, MIY1, MIX2, MIY2))))then
begin
Status('Found a Broken Axe / No More in Inventory');
BankNewAxe;
end;
end;

procedure AxeFinder;
begin
Wait(100 + Random(100));
FindHead;
Wait(100 + Random(100));
AttachHead;
end;

procedure Banking;
begin
Banked:= (Banked + 1);
FindSymbol(x,y,'bank');
SetRun(true);
Wait(100);
Mouse(x,y,2,2,true);
Flag;
Wait(500 + Random(100));
if(FindObj(x,y,'booth',3552827,5))then
begin
Mouse(x,y,0,0,false);
Wait(400 + Random(200));
PopUp('ickl');
end;
Wait(400 + Random(200));
ClickItemName(TreeName2,false);
Wait(10);
ChooseOption(x, y, 'All')
Wait(100);
ClickItemName('Broken',false);
ChooseOption(x, y, 'All')
Wait(100);
CloseBank;
Wait(100 + Random(100));
MouseFindFlag(MMCX - 30,MMCY + 30,3,3);
Flag;
Wait(200 + Random(200));
end;


procedure TreeTime;
var XT,YT:integer;
begin
TreeNames(TreeName);
if(not(LoggedIn))then
begin
NextPlayer(false);
Exit;
end;
Wait(1000 + Random(500));
if(FindObjMultiText(XT,YT,TreeName1,TreeName2,TreeName3,TreeColor,3)or(IsUpTextMulti('hop down', 'down ' + TreeName1, 'own')) or (IsUpTextMulti(TreeName1,TreeName2,TreeName3)))then
begin
Wait(100 + Random(10));
Ents;
Wait(10);
Mouse(XT,YT,1,1,True);
Wait(100 + Random(50));
Mouse(XT,YT,1,1,True);
Ents;
Wait(2000 + Random(1000));
Flag;
end;
if(InvFull)then
begin
Banking;
end;
end;

procedure SpecialTree;
begin
TreeNames(TreeName);
repeat
begin
AxeBroken;
AxeFinder;
Wait(10);
SpecialAntiBan;
Wait(10);
SpecialAntiRandoms;
TreeTime;
SpecialAntiRandoms;
Wait(10);
end;
until(InvFull);
Banking;
end;

procedure ProgressReport;
begin
ClearDebug;
Writeln(' Special Woodcutter ');
Writeln('');
Writeln(' Time Ran: ' + TimeRunning + ' ');
Writeln(' Loads Banked: ' + inttostr(banked) + ' ');
Writeln(' Ran Away: ' + inttostr(Ran) + ' ');
Writeln(' Ents Avoided: ' + inttostr(Ent) + ' ');
Writeln(' Axes WithDrawn: ' + inttostr(NewAxe) + ' ');
Writeln('');
end;

begin
Wait(1500);
Setup;
DisguiseScar('Ventrilo');
LoadingDTMBitmaps;
DeclarePlayers;
ClearDebug;
if(not(LoggedIn))then Loginplayer;
begin
repeat
SetupScript;
repeat
if(not(LoggedIn))then
begin
NextPlayer(False);
Exit;
end;
SpecialTree;
ProgressReport;
until(Load > (Random(5) + LoadTarget));
LogOut;
NextPlayer(True);
ProgressReport;
until(false);
end;
end.

Fourscape

2007-03-06 19:57:14

This is not my script. Doesn't look too similar to me. DTM's do need to be credited, else… I like the script. I would add more to it… but it is good. So to clear things up… this is not my script. I can see though why it could be seen as coppied.

Added Edit : Yohojo8 is with out a doubt correct though in you coppying parts of other scripts such as mine. The IsAxeBroken procedure is too similar for comfort. Credits please. And if you where currious. I voted no. I think… If I didn't I meant to. My computer lags. Dial up…

-Fours

PS : Special Ed… stop crying =D Next time just do what you did and PM me. It's not the end of the world not being accepted. The first time I applied I was denied.

Special Ed

2007-03-07 08:12:43

That was actually the first thing I did was look you up and message you four, but I had to get my point across in the meantime, because its just my nature to be argumentative.(lol) Also this is my second time applying so I hope I make it XD.

Thanks again four and I'm sure you'll see good scripts out of me in the future.

Fourscape

2007-03-07 20:25:53

I edited above. Please read if you have not already.

Boreas

2007-03-07 20:37:53

I voted yes before edit. I would vote no if I could.

Special Ed

2007-03-07 22:21:02

I didn't copy anything but ok… i didn't even look at any other scripts for ideas, I did this all on my own, but I do have a question for you, so for every good idea that I have that is a good function/procedure you want me to search for it to make sure no one has come up with it first, because you know the saying "Great minds think alike" that kinda applies to me…. lol I'm not trying to be cocky or a dick, but I'm just saying that it seems stupid to look up every procedure I come up with to make sure that no one has used it before.

Also for my AxeBroken Procedure…. what else is there to do for a procedure like that I mean thats the only logical path to take to make a procedure for checking if its broken… check if you find the DTM of a broken axe and if you do, take action… simple as that.

BTW Boreas that was really harsh… could you give more of an example than just, "oh that procedure looks like that other one and he didn't credit it"

I know you don't like it but give me some better examples of how i can improve i've seen yoho post before saying

"When we vote no its not that we have a personal grudge against you its that we care about you and we won't just give you a No try harder ,we'll tell you how you can improve for next time."

Fourscape

2007-03-07 22:34:03

To tell you strait up, your happiness should not revolve arround getting accepted.

Special Ed

2007-03-07 22:46:20

Its not I'm just trying to sort things out and get a clear understanding of why you think I stole this stuff and how I can improve my script. I just want to know why you vote no, specifically, not just it looks like another procedure.

BTW my happiness lies in proving my innocence not in getting accepted trust me, I'm on the debate team for school.

Actually I'm expecting to be declined even if the votes are in my favor if that can happen… lol.

Fourscape

2007-03-08 12:06:48

I don't know how well you remember page 1, but the person whos finall decision as a main roll in your acceptance likes your script. You have a good chance of being accepted. Your votes are 7-5

Special Ed

2007-03-08 16:15:24

Yea but I just want some respect from you and Boreas, because I'm most likely going to be a member at the moment, but even if I get in I don't want you and Boreas to be against me, because from what I've heard and know you are two big people in the SRL community.

Oh BTW how much longer is the poll open for or it is just based on whatever an admin feels.

Special Ed

2007-03-10 01:45:21

Can you guys give me some info on why you voted "No" please?

YoHoJo

2007-03-10 02:32:44

Please dont double post.
And ok i will in a sec.

Coppied DTMs
Similar procedures (just a guess)
Lot of your waits arent rannom
Need failsafes
Even parts with failsafe just exit and dont change compass angle or anything like:

until((not(IsUpText(TreeName2)))or(IsUpText('alk'))or(z >= 4));
end;
Flag;
SpecialAntiRandoms;
end;
if(InvFull)then
begin
Banking;
end;
end;

Doest do anything after z=4
Failsafe Needed

repeat
begin
AxeBroken;
Wait(10);
SpecialAntiBan;
Wait(10);
TreeTime;
Wait(10);
AxeFinder;
end;
until(InvFull);

And now im just not liking your attitude.
Just because it was your birthday doesn't mean we have to vote yes/ treat you nicer.

Remember SRL member is just as much about attitude as it is scripting.

Special Ed

2007-03-10 04:21:59

I know and I posted that like 2 days ago…. and noone has posted so I've been waiting for anyone to say anything, also I'm sorry about being sort with you guys and stuff I just really feel that you're going out of the way to get me declined.

Also, and what do you mean a lot of my waits aren't random, 90% of them have "+Random".
And, are you like telling people just to come vote "no" because no one is posting why they think it's bad and thats all I really want.

I've been working on it lately so here's and updated version.

{.Script Info:
# ScriptName = Special WoodCutter
# Author = Special Ed
# Description = Chop & Banks Willows at Draynor
# Version = 1.1
# Date = March 10, 2007
# Comments =
/Script Info}
program SpecialWillowBanker;
{.include SRL\SRL.SCAR}
{.include SRL\SRL\Skill\Woodcutting.SCAR}
var
TreeName1,TreeName2,TreeName3:string;
TreeColor,DTMBrokenAxe,DTMNormalAxe,Load,LoadTarget:integer;
Banked,Ran,Ent,NewAxe:integer;

//Setup//
procedure Setup;
begin;
SetupSRL;
TreeColor:= 1529936;
LoadTarget:= 100; //Number of loads until it switches characters
end;

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

Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active:=true;
end;
//End Of Setup//

procedure SetupScript;
begin
Wait(10 + Random(100));
MakeCompass('N');
Wait(10 + Random(100));
HighestAngle;
Wait(10 + Random(100));
Load:= 0;
Banked:= 0;
Ran:= 0;
Ent:= 0;
NewAxe:= 0;
Wait(10 + Random(100));
end;

procedure LoadingDTMBitmaps;
begin
DTMBrokenAxe:= DTMFromString('78DA633CCCC4C0B091910119D4C4F13180444' +
'0F83F10301E02AA5987AA06220B2381F459A09AF504D49C03AAD9' +
'4040CD19A09ACD4498B38D809AD340353B08A8390A54B385809AD' +
'D403527F0AB0100F014127B');

DTMNormalAxe:= DTMFromString('78DA637CCDC4C0B09E9101197467083280444' +
'0F83F1030BE02AA598DAA06220B2381F47BA09A3504D47C2642CD' +
'57A09A7544A8D94840CD27A09AAD04D43C02AA398A5F0D002B8D1' +
'231');
end;

function TreeNames(TreeName:string):string;
var x:integer;
begin
if(Length(TreeName) >= 3)then
begin
x:= 1
TreeName1:= (StrGet(TreeName,1) + StrGet(TreeName,2) + StrGet(TreeName,3));
if(Length(TreeName) >= 4)then
begin
x:= 2
TreeName2:= (StrGet(TreeName,2) + StrGet(TreeName,3) + StrGet(TreeName,4));
if(Length(TreeName) >= 5)then
begin
x:= 3
TreeName3:= (StrGet(TreeName,3) + StrGet(TreeName,4) + StrGet(TreeName,5));
end;
end;
end;
if(x = 1)then
begin
result:= (TreeName1);
TreeName2:= TreeName1
result:= (TreeName2);
TreeName3:= TreeName1
result:= (TreeName3);
end;
if(x = 2)then
begin
result:= (TreeName1);
result:= (TreeName2);
TreeName3:= TreeName1
result:= (TreeName3);
end;
if(x = 3)then
begin
result:= (TreeName1);
result:= (TreeName2);
result:= (TreeName3);
end;
end;

procedure RunAway;
begin
Ran:= (Ran + 1);
SetRun(true);
MouseFindFlag(MMCX + 40,MMCY + 40,5,5);
Wait(15000+Random(5000));
MouseFindFlag(MMCX - 40,MMCY - 40,5,5);
Flag;
Wait(100 + Random(100));
end;

procedure Ents;
begin
TreeNames('Willow');
if(FindObjMultiText(x,y,TreeName1,TreeName2,TreeName3,TreeColor,3))then
begin
MMouse(x,y,0,0);
if(not(FindColorTolerance(x,y,55769,85,15,115,15,25)))then
begin
Exit;
end;
if(FindColorTolerance(x,y,55769,85,15,115,15,25))then
begin
Ent:= (Ent + 1);
SetRun(true);
MouseFindFlag(MMCX + 3,MMCY + 3,2,2);
Wait(15000 + Random(5000));
MouseFindFlag(MMCX - 3,MMCY - 3,2,2);
Flag;
Wait(500 + Random(100));
end;
end;
end;

procedure SpecialAntiRandoms;
begin
FindNormalRandoms;
Ents;
DwarfItem;
FindLamp('Woodcutting');
OpenBox;
SolveBox;
if(DetectFrogCave)then SolveFrogSwamp;
if(InBlack)then Logout;
if(FindFight)then RunAway;
if(TalkToRand)then
begin
repeat
ClickToContinue;
until(not(TalkToRand));
end;
if(WeAreDead)then
begin
Logout;
Players[CurrentPlayer].Active:= False;
NextPlayer(True);
end;
end;

procedure SpecialAntiBan;
var px:integer;
begin
px:=Random(19);
case px of
0 : HoverSkill('Woodcutting',false);
1 : PickUpMouse;
2 : Wait(100 + Random(10));
3 : Wait(100 + Random(10));
4 : SpecialAntiRandoms;
5 : Wait(100 + Random(10));
6 : Wait(100 + Random(10));
7 : Wait(100 + Random(10));
8 : begin; GameTab(Random(7) + 1) Wait(300 + Random(50)) end;
9 : SpecialAntiRandoms;
10 : Wait(100 + Random(10));
11 : Wait(100 + Random(10));
12 : Wait(100 + random(10));
13 : begin; GameTab(Random(7) + 1) Wait(300 + Random(50)) end;
14 : Wait(100 + Random(10));
15 : Wait(100 + Random(10));
16 : Wait(100 + Random(10));
17 : PickUpMouse;
18 : Wait(100 + Random(10));
19 : PickUpMouse;
end;
end;

procedure WithdrawAxe;
var BX,BY,BT:integer;
begin
BT:= 0;
if(FindDtm(DTMNormalAxe,BX,BY,MSX1,MSY1,MSX2,MSY2))then
begin
repeat
BT:= (BT + 1);
Mouse(BX,BY,1,1,True);
Wait(500 + Random(100));
until(FindDtm(DTMNormalAxe,BX,BY,MIX1,MIY1,MIX2,MIY2)or(BT > 5));
end;
if(not(FindDtm(DTMNormalAxe,BX,BY,MSX1,MSY1,MSX2,MSY2)))then
begin
Status('You Have No More Axes Logging Out...');
Logout;
Players[CurrentPlayer].Active:= False;
Nextplayer(true);
end;
end;

procedure DepositBrokenAxe;
var BX,BY,BT:integer;
begin
BT:= 0;
if(not(FindDtm(DTMBrokenAxe,BX,BY,MIX1,MIY1,MIX2,MIY2)))then
begin
Exit;
end;
if(FindDtm(DTMBrokenAxe,BX,BY,MIX1,MIY1,MIX2,MIY2))then
begin
repeat
BT:= (BT + 1);
Mouse(BX,BY,1,1,True);
Wait(500 + Random(100));
until(not(FindDtm(DTMBrokenAxe,BX,BY,MIX1,MIY1,MIX2,MIY2))or(BT > 5));
end;
end;

procedure BankNewAxe;
begin
NewAxe:= (NewAxe + 1);
SetRun(true);
Wait(100);
FindSymbol(x,y,'bank');
Status('Trees -> Bank');
Wait(100);
Mouse(x,y,1,1,true);
Flag;
Wait(500 + Random(100));
if(FindObj(x,y,'ooth',3552827,5))then
begin
Mouse(x,y,0,0,false);
Wait(1000 + Random(500));
PopUp('ickl');
Flag;
Wait(1000 + Random(500));
DepositBrokenAxe;
Wait(1000 + Random(500));
WithdrawAxe;
Wait(1000 + Random(500));
end;
CloseBank;
Wait(100 + Random(100));
MouseFindFlag(MMCX - 30,MMCY + 30,3,3);
Status('Bank -> Trees');
end;

procedure AxeBroken;
begin
Status('Checking For Broken Axe...');
GameTab(4)
Wait(100 + Random(100))
if(not(FindDTM(DTMBrokenAxe,x,y,MIX1,MIY1,MIX2,MIY2)))then
begin
Status('No Broken Axe');
Exit;
end;
if(FindDTM(DTMBrokenAxe,x,y,MIX1,MIY1,MIX2,MIY2 )and(not(FindDTM(DTMNormalAxe, x, y, MIX1, MIY1, MIX2, MIY2))))then
begin
Status('Found a Broken Axe / No More in Inventory');
BankNewAxe;
end;
end;

procedure AxeFinder;
var AX:integer;
begin
AX:= 0;
Wait(100 + Random(100));
if(not(FindHead))then
begin
repeat
FindHead;
Wait(100 + Random(100));
AttachHead;
Wait(100 + Random(100));
AX:= (AX + 1);
until(FindHead or (AX >= 10));
BankNewAxe;
end;
if(FindHead)then
begin
Exit;
end;
end;

procedure Banking;
var BX,BY,BAX,BAY:integer;
begin
TreeNames('Willow');
Banked:= (Banked + 1);
FindSymbol(BX,BY,'bank');
if(not(FindSymbol(BX,BY,'bank')))then
begin
Exit;
end;
SetRun(true);
Wait(100);
Mouse(BX,BY,2,2,true);
Flag;
Wait(500 + Random(100));
if(FindObj(BAX,BAY,'booth',3552827,5))then
begin
Mouse(BAX,BAY,0,0,false);
Wait(400 + Random(200));
PopUp('ickl');
end;
Wait(1000 + Random(500));
begin
repeat
ClickItemName(TreeName2,false);
Wait(300);
ChooseOption(BX,BY,'All')
Wait(200 + Random(100));
until(not(FindItemName(TreeName1))or(not(FindItemName(TreeName2))or(not(FindItemName(TreeName3)))));
end;
Wait(100);
DepositBrokenAxe;
Wait(100);
CloseBank;
Wait(100 + Random(100));
MouseFindFlag(MMCX - 30,MMCY + 30,3,3);
Flag;
Wait(200 + Random(200));
end;


function StillCutting: Boolean;
var XT,YT:integer;
begin
TreeNames('Willow');
if(IsUpText('alk')or(IsUpText('lk he')or(IsUpText('her'))))then
begin
result:= false;
end;
if(IsUpText('hop')or(IsUpText('own')or(IsUpText(TreeName2))))then
begin
result:= true;
end;
if(result = true)then
begin
Exit;
end;
if(result = false)then
begin
FindObjMultiText(XT,YT,TreeName1,TreeName2,TreeName3,TreeColor,3)
Wait(500 + Random(100));
Ents;
Mouse(XT,YT,1,1,True);
AxeBroken;
AxeFinder;
SpecialAntiRandoms;
end;
end;

procedure TreeTime;
var XT,YT,TTol:integer;
begin
TTol:= 3
if(not(LoggedIn))then
begin
NextPlayer(false);
Exit;
end;
TreeNames('Willow');
Wait(1000 + Random(500));
AxeBroken;
if(not(FindObjMultiText(XT,YT,TreeName1,TreeName2,TreeName3,TreeColor,TTol)))then
begin
repeat
TTol:= (TTol + 1);
until(FindObjMultiText(XT,YT,TreeName1,TreeName2,TreeName3,TreeColor,TTol));
end;
if(FindObjMultiText(XT,YT,TreeName1,TreeName2,TreeName3,TreeColor,TTol)or(IsUpTextMulti('hop down','down','own'))or(IsUpTextMulti(TreeName1,TreeName2,TreeName3)))then
begin
Wait(100 + Random(10));
Ents;
Mouse(XT,YT,1,1,True);
Flag;
Wait(100 + Random(10));
SpecialAntiBan;
Wait(100 + Random(10));
StillCutting;
AxeBroken;
AxeFinder;
Wait(5000 + Random(1000));
end;
if(InvFull)then
begin
Banking;
end;
end;

procedure SpecialTree;
begin
repeat
begin
SpecialAntiRandoms;
Wait(100);
TreeTime;
end;
until(InvFull);
Banking;
end;

procedure ProgressReport;
begin
ClearDebug;
Writeln(' Special Woodcutter ');
Writeln('');
Writeln(' Time Ran: ' + TimeRunning + ' ');
Writeln(' Loads Banked: ' + inttostr(banked) + ' ');
Writeln(' Ran Away: ' + inttostr(Ran) + ' ');
Writeln(' Ents Avoided: ' + inttostr(Ent) + ' ');
Writeln(' Axes Withdrawn: ' + inttostr(NewAxe) + ' ');
Writeln('');
end;

begin
Wait(1500);
Setup;
DisguiseScar('Ventrilo');
LoadingDTMBitmaps;
DeclarePlayers;
ClearDebug;
if(not(LoggedIn))then Loginplayer;
begin
repeat
SetupScript;
begin
repeat
if(not(LoggedIn))then
begin
NextPlayer(False);
Exit;
end;
SpecialTree;
ProgressReport;
until(Load > (Random(5) + LoadTarget));
end;
LogOut;
NextPlayer(True);
ProgressReport;
until(false);
end;
end.

WT-Fakawi

2007-03-11 15:13:27

In!