Esteban
2007-07-17 21:17:13
<!– BEGIN TEMPLATE: formanswers –>
Esteban - SRL Member Application Form
Esteban
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
I will be taking a course in HTML this coming school year.
Other Communitys
Ex RuneHQ moderator. I was known as Dave when moderator, now Nubsta.
How Long have You Played Runescape
I have been playing since September 2003.
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
I joined SRL-Forums about 2 weeks after i was removed from my position as a RuneHQ Moderator for having posted on the the Tainted-Ones forum. When i was first here at SRL, i was interested in how SCAR worked, and quite frankly did not know what SRL did. So, i decided to start reading some tutorials around here, and after around a month of slow learning, i released EZTyper AutoTyper, my first functioning and useful SCAR script.
After about a moth after that, i threw around the idea of learning how to create a Skill training script. I came to the decision to learn how to, and would write a little SCAR script to test what i had learned. I slowly started putting these together, but in the last month I have made real progress on my script. I came to the decision today that EZChopper Draynor Willow Chopper was satisfactory enough for it to be released as a release version, which can be found in the Woodcutting section of SRL free scripts.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
——————————————————
<!– END TEMPLATE: formanswers –>
Esteban - SRL Member Application Form
Esteban
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
I will be taking a course in HTML this coming school year.
Other Communitys
Ex RuneHQ moderator. I was known as Dave when moderator, now Nubsta.
How Long have You Played Runescape
I have been playing since September 2003.
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
I joined SRL-Forums about 2 weeks after i was removed from my position as a RuneHQ Moderator for having posted on the the Tainted-Ones forum. When i was first here at SRL, i was interested in how SCAR worked, and quite frankly did not know what SRL did. So, i decided to start reading some tutorials around here, and after around a month of slow learning, i released EZTyper AutoTyper, my first functioning and useful SCAR script.
After about a moth after that, i threw around the idea of learning how to create a Skill training script. I came to the decision to learn how to, and would write a little SCAR script to test what i had learned. I slowly started putting these together, but in the last month I have made real progress on my script. I came to the decision today that EZChopper Draynor Willow Chopper was satisfactory enough for it to be released as a release version, which can be found in the Woodcutting section of SRL free scripts.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
{.Script Info:
# ScriptName = E-Z Chopper.
# Author = Esteban, with thanks to 3Garrett3 and Smartzkid for all their help.
# Description = Used for cutting willows next to the Draynor Bank.
# Version = 1.0 Release.
# Date = Release date July 17, 2007
# Comments = Have players start in southern part of Draynor bank, logged out.
Position extra axes to be used as the first item in your bank.
Low Detail, 32 bit true color, very bright for RS client, the usuals.
/Script Info}
program EZChopper;
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/WoodCutting.scar}
{.include SRL/SRL/extended/xBitmap.scar}
var TotalLoads, Ents, Loads: integer;
BrokenAxe: Boolean;
{=====================================================================}
{====================Set These Following Constants====================}
{=====================================================================}
Const
LoadsToDo = 1; //How many loads to do before switching players.
TimePerLoad = 10; //Max number of minutes 1 load should take. Set to your preference.
WillowColorA = 5337208; //Only set the willow colors if the script can't find them.
WillowColorB = 2914408;
WillowColorC = 33453453;
AntiBanageAmount = 50; //How often to perform an AntiBan procedure while chopping.
//Antiban will be performed x percent of the time.
VerNum = '1.0'; //Script Version.
{=====================================================================}
{========================End Setting Constants========================}
{=====================================================================}
{=====================================================================}
{=============================Payer Setup=============================}
{=====================================================================}
procedure DeclarePlayers;
begin
Status('Declaring Players');
HowManyPlayers := 6; //Number of PLAYERS. active or not.
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; //Player to start on.
//set all user names, passwords, nicks and Boolean2 correctly please.
Players[0].Name := 'UserName';//Username of the account.
Players[0].Pass := 'password';//Account's password.
Players[0].Nick := '3-4 Non capital letters of the username';
Players[0].Active := True;//Is the player to be used?
Players[0].boolean2 := False;//True if axe is wielded.
//If axe is in inventory, must be in first slot, set false.
Players[0].String1 := '1234';//Player's Bank PIN, if any.
Players[1].Name := 'Username';
Players[1].Pass := 'Password';
Players[1].Nick := '3-4 letters of Username';
Players[1].Active := True;
Players[1].boolean2 := False;
Players[1].String1 := '0000';
Players[2].Name := 'UserName';
Players[2].Pass := 'Password';
Players[2].Nick := '3-4 letters of UserName';
Players[2].Active := False;
Players[2].boolean2 := False;
Players[2].String1 := '0000';
Players[3].Name := 'UserName';
Players[3].Pass := 'Password';
Players[3].Nick := '3-4 letters of UserName';
Players[3].Active := False;
Players[3].boolean2 := False;
Players[3].String1 := '0000';
Players[4].Name := 'UserName';
Players[4].Pass := 'Password';
Players[4].Nick := '3-4 letters of UserName';
Players[4].Active := False;
Players[4].boolean2 := False;
Players[4].String1 := '0000';
Players[5].Name := 'UserName';
Players[5].Pass := 'Password';
Players[5].Nick := '3-4 letters of UserName';
Players[5].Active := False;
Players[5].boolean2 := False;
Players[5].String1 := '0000';
end;
{=====================================================================}
{====================End Player and script Setup======================}
{=========Only edit the below if you know what is being done==========}
{=====================================================================}
{=====================================================================}
{===============================Credits===============================}
{=====================================================================}
Procedure Credits;
begin
ClearDebug;
Wait(500);
Status('Writing Credits');
writeln('E-Z Chopper brought to you by- ');
writeln(' ___ ___ _____ ___ ___ ___ ___ _ ');
writeln('| __| | __| |_ _|| __| | _ | | _ | | | | ');
writeln('| __| |__ | | | | __| | _< | | | | | | ');
writeln('|___| |___| |_| |___| |___| |_|_| |_|___| ');
writeln(' ');
writeln(' -With thanks to 3garrett3 & SmartzKid');
wait(3000+random(500));
end;
{=====================================================================}
{========================Walking to the Willows=======================}
{=====================================================================}
Procedure WalkToWillow;
var TX, TY, WaterEdge, WaitWalkToWillows, WillowGroundWater, Tries, x, y: Integer;
begin if(GetCombatLevel < 15)then TerminateScript;
begin
if(not(LoggedIn))then Exit;
Status('Walking to the willows');
MakeCompass('W');
if(FindSymbol(x,y,'Fish'))then
begin
Writeln('Walking to the Willows via FishSymbol.');
SetRun(True);
Mouse(x,y,2,2,True);
FFlag(0);
end else
begin
WillowGroundWater := BitmapFromString(12, 9, 'z78DA3377B134' +
'70B23047224D9D4D2C0DDD4CDD4C0D8D8CB09266D848739A99033' +
'56D909903F7A30BD08FC82459E660318D0273504CA3D81C78B851' +
'C51C5CB100000F208F80');
MarkTime(WaitWalkToWillows);
repeat
if(FindBitmapTol(TX, TY, WillowGroundWater, MMX1, MMY1, MMX2, MMY2))then
begin
writeln('Found The BitMap.');
WaterEdge := AutoColorThis(WillowGroundWater, 10, MMX1, MMY1, MMX2, MMY2);
If (WaterEdge > 0) then
begin
SetRun(True);
RadialWalk( WaterEdge , 199, 247, 54, 2, 2);
writeln('Walking to the Willows via Bitmap.');
FFlag(1);
exit;
end;
tries:= tries +1;
wait(150+random(250));
end;
until(Tries >= 15) or (TimeFromMark(WaitWalkToWillows) > 10000); C:\DOCUME~1\Owner\LOCALS~1\Temp\EZChopper.scar
end;
end;
end;
{======================================================================}
{=============================Anti Randoms=============================}
{======================================================================}
function FindFastRandoms: Boolean; //Thanks goes to WT=Fakawi for this.
var
i: Integer;
begin
if(not(LoggedIn))then exit;
for i := 1 to 8 do
begin
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';
Logout;
Exit;
end;
end;
7: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
8: RC;
end;
wait(1);
end;
if(Result= true)then LogOut;
end;
Procedure AntiRandoms;
begin
if(not(loggedIn))then exit;
FindFastRandoms;
FindNormalRandoms;
end;
Procedure AntiBan;
begin
if(not(LoggedIn))then Exit;
if(random(100) + 1 < AntiBanageAmount)then Exit;
case Random(9) of
0: begin
HoverSkill('Random', false);
wait(1453+Random(432));
GameTab(4);
end;
1: begin
HoverSkill('Woodcutting',false);
wait(1364+Random(413));
GameTab(4);
end;
2: PickUpMouse;
3: AlmostLogOut;
4: SayCurrentLevels('Woodcutting');
5: begin
case random(8) of
0: TypeSend('Whats up?');
1: TypeSend('wc lvls?');
2: TypeSend('Woodcutting levels?');
3: TypeSend('sup?');
end;
end;
6: begin
Case random(3) of
0: MakeCompass('N');
1: MakeCompass('S');
2: MakeCompass('W');
end;
wait(100+random(150));
MakeCompass('E');
end;
7: begin
LowestAngle;
HighestAngle;
end;
8: RandomRClick;
end;
end;
{======================================================================}
{=========================Chopping the Willows=========================}
{======================================================================}
Procedure ChopTheWillow;
var ChopTime, waited, TextX, TextY: Integer;
begin
if(not(LoggedIn))then Exit;
Status('Chopping willows');
Wait(50+random(42));
MakeCompass('E');
HighestAngle;
MarkTime(ChopTime);
repeat
Wait(100+random(55));
if(FindColorSpiralTolerance(x, y, WillowColorA, MSX1, MSY1, MSX2, MSY2, 4)or
FindColorSpiralTolerance(x, y, WillowColorB, MSX1, MSY1, MSX2, MSY2, 4)or
FindColorSpiralTolerance(x, y, WillowColorC, MSX1, MSY1, MSX2, MSY2, 4))then
begin
wait(300+random(100));
writeln('Found one of the Willow colors! Checking to see if it is a willow.');
MMouse(x, y, 5, 5);
if(IsUpTextMulti('illow', 'llo', 'low'))then
begin
wait(500+random(100));
writeln('Found a Willow! Begin chopping');
Mouse(x, y, 1, 1, true);
wait(135+random(121));
Inc(Players[CurrentPlayer].Integer3);
if(FindColorSpiralTolerance(TextX, TextY, 516576, 6, 6,117 , 27, 4)or
FindColorSpiralTolerance(TextX, TextY, 118992, 6, 6, 117, 27, 4))then
begin
writeln('Possibly found an ent.');
MakeCompass('E');
MMouse(652, 83, 1, 1);
Mouse(652, 83, 1, 1, true);
writeln(' possibly advoiding an Ent. Waiting for the Possibl ent to go away.');
wait(20123+random(1234));
RunBack;
Ents:= Ents + 1;
Mouse(x, y, 1, 1, true);
if(InChat('do not'))then
begin
BrokenAxe:= True;
Exit;
end;
end;
AntiRandoms;
case random(2)of
0: SleepAndMovemouse(9876+random(1234));
1: wait(8765+random(321));
end;
while(IsUpText('llo') and not (waited > 10))do
begin
wait(500 + random(500));
Inc(waited);
end;
AntiRandoms;
Antiban;
end;
end;
until(Invfull) or (TimeFromMark(ChopTime) > (TimePerLoad * 60000 ));
end;
{======================================================================}
{=========================Walking to the Bank==========================}
{======================================================================}
Procedure WalkToBank;
var x, y, BankSymbol, bankSymbolColor, BankerDTM: integer;
begin
BankerDTM := DTMFromString('78DA63FCC5C4C020C9C8800CE2C3C318FE036' +
'990E87F206004A9114555F3E70F1398868982D5C8E15703004398' +
'0D45');
if(not(LoggedIn))then exit;
Status('Walking to the bank');
MakeCompass('N');
if(FindSymbol(x,y,'Bank'))then
begin
Writeln('Walking to Bank via BankSymbol.');
SetRun(True);
Mouse(x, y, 5, 5, True);
FFlag(0);
exit;
end else
if(DTMRotated(BankerDTM, x, y, MMX1, MMY1, MMX2, MMY2))then
begin
Writeln('Walking to bank via banker bitmap');
MMouse( x +10+random(5), y+4+random(3), 0, 0);
Mouse(x+10+random(5), y+4+random(3), 0, 0, true);
FFlag(0);
FreeDTM(BankerDTM);
Exit;
end else
begin
Writeln('Could not find the entire bank symbol. Looking for Bank Symbol color.');
BankSymbol := BitmapFromString(15, 15, 'z78DAC5D44B0A80300C' +
'04D02BF5A7D1A5B1BDFF955C64331012D2BAA88B410A79C2D098D' +
'29EE7ADBDF4C6C4F5204C395FD3B439FA68675EFB8A6FEAA49B28' +
'5F4FE5C2CDF7B58C02BE63FA329A1159344C9CFD234BEAA9B86CF' +
'56CB511912DDF6A66568E776EC9FEAD8BCBB3B72EDE737CA351B0' +
'4CC9D94D97296B3B36FDCCD20753EF1DC8');
BankSymbolColor:= AutoColorThis(BankSymbol, 40, MMX1, MMY1, MMX2, MMY2);
FreeBitmap(BankSymbol);
MakeCompass('N');
RadialWalk( BankSymbolColor , 5, 60, 66, 2, 2);
FFlag(0);
Exit;
end;
end;
{=======================================================================}
{===========================Banking Inventory===========================}
{=======================================================================}
Procedure BankInventory;
var WillowDTM, BrokenAxeDTM: integer;
begin
if(not(loggedIn))then exit;
Status('Banking inventory');
BrokenAxeDTM := DTMFromString('78DA633CCCC4C0B082910119D4C5F331FC07D' +
'220D1FF40C0781AA86615AA1A882C8C04D267816A561250730EA8' +
'661DAA1A030505143500A7410C3F');
WillowDTM := DTMFromString('78DA633CCFC4C0308991010420240383BB830' +
'4C32F28FF3F1030EE07AA9985AA06C682F1190F02D54C20A0E610' +
'504D170135D7806ADA09A8B905543383809AB3403573F0AB01002' +
'9EF0F55');
MakeCompass('S');
wait(4345+random(423));
if(BrokenAxe)then
begin
if(Players[CurrentPlayer].Boolean2)then
begin
GameTab(5);
TakeOff(BrokenAxeDTM);
end else
GameTab(4);
end;
OpenBankQuiet('db');
wait(321+random(111));
if(FindDTM(WillowDTM, x, y, 625, 324, 815, 587)) and ((bankscreen) or (pinscreen))then
begin
if(pinscreen)then
InPin(Players[CurrentPlayer].String1);
wait(345+random(123));
MMouse(x, y, 2, 2);
if(IsUpTextMulti('illow', 'llo', 'low'))then
begin
wait(300+random(123));
Mouse(x, y, 0, 0, false);
wait(100+random(99));
ChooseOption(x, y, 'All');
if(BrokenAxe)then
begin
DepositAll;
Wait(321+random(123));
Withdraw(1, 1, 1);
end;
end;
if(Not(Players[CurrentPlayer].Boolean2))then
begin
Deposit(2, 28, 2);
end;
wait(123+random(123));
end;
CloseBank;
Loads:= Loads + 1;
TotalLoads:= TotalLoads + 1;
wait(321+random(123));
FreeDTM(BrokenAxeDTM);
FreeDTM(WillowDTM);
begin
RadialRoadWalk(FindRoadColor, 143, 200, 32, -2, -2);
FFlag(0);
end;
end;
Procedure ProgressReport;
begin
Writeln('<------------------------------------------->' );
Writeln('|E-Z Chopper Version ' + VerNum + ' by Esteban' );
Writeln('|===========================================|' );
Writeln('|Worked for '+ ScriptTime2(2) );
Writeln('|-------------------------------------------|' );
Writeln('|Total Loads Chopped: '+ IntToStr(TotalLoads) );
Writeln('|-------------------------------------------|' );
Writeln('|Current Player: '+ Players[CurrentPlayer].Name );
Writeln('|Current Player Chopped: '+ IntToStr(Players[CurrentPlayer].Integer3) + ' logs');
Writeln('|-------------------------------------------|' );
Writeln('|Possibly Avoided '+ IntToStr(Ents) + ' Ents' );
Writeln('|-------------------------------------------|' );
Writeln('|Make sure to post all progress reports.' );
Writeln('<------------------------------------------->' );
SRLRandomsReport;
end;
begin
Credits;
SetupSRL;
DeclarePlayers;
ActivateClient;
LoginPlayer;
wait(1000+random(1000));
repeat
WalkToWillow;
Wait(2654+random(1230));
ChopTheWillow;
WalkToBank;
BankInventory;
ProgressReport;
if(not(LoggedIn))then
begin
writeln('User was logged out for some reason. Switching players');
Nextplayer(false);
Loads:= 0;
end;
If(LoadsToDo >= Loads)then
begin
writeln('Sucessfully completed player loads. Switching Players');
NextPlayer(True);
Loads:= 0;
end;
until (false);
end.
——————————————————
<!– END TEMPLATE: formanswers –>