Cazax
2008-02-28 15:45:54
<!– BEGIN TEMPLATE: formanswers –>
cazax - SRL Member Application Form
cazax
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
nothing more
Other Communitys
How Long have You Played Runescape
3 years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
My second appliement.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
My willow chopper and banker:
——————————————————
<!– END TEMPLATE: formanswers –>
cazax - SRL Member Application Form
cazax
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
nothing more
Other Communitys
How Long have You Played Runescape
3 years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
My second appliement.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
My willow chopper and banker:
program WillowRaper;
{.include srl/srl.scar}
{.include srl/srl/misc/trade.scar}
{.include srl/srl/misc/path.scar}
var
AnyAxe,Ents,LogsChopped,Loads,WillowLog,WRoadDTM : Integer;
SetUpped,Walked,Chopped,Bank : Boolean;
RoadMP : TDTMPointDef;
RoadSP : Array[0..3] of TDTMPointDef;
WillowDTMSkel : TDTM;
WDTMArea,WDTMTol : Integer;
WoodcuttingLvl,Me : Integer;
const
SleepPer = 15; // per how many loads sleep?
SleepFor = 2; // how many minutes to sleep
Procedure DeclarePlayers;
begin
HowManyPlayers := 4;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Nick := ''; // 3-4 letters of your Username
Players[0].Strings[0] := '0000'; // bank pin
Players[0].Strings[1] := 'woodcutting'; //Lamp Skill
Players[0].Integers[0] := 15; // how many before changing players?
Players[0].Active := True; // are u going to use this player ?
Players[1].Name := ''; // Username
Players[1].Pass := ''; // Password
Players[1].Nick := ''; // 3-4 letters of your Username
Players[1].Strings[0] := '0000'; // bank pin
Players[1].Strings[1] := 'woodcutting'; //Lamp Skill
Players[1].Integers[0] := 5;
Players[1].Active := True; // are u going to use this player ?
Players[2].Name := ''; // Username
Players[2].Pass := ''; // Password
Players[2].Nick := ''; // 3-4 letters of your Username
Players[2].Strings[0] := '0000'; // bank pin
Players[2].Strings[1] := 'woodcutting'; //Lamp Skill
Players[2].Integers[0] := 5;
Players[2].Active := True; // are u going to use this player ?
Players[3].Name := ''; // Username
Players[3].Pass := ''; // Password
Players[3].Nick := ''; // 3-4 letters of your Username
Players[3].Strings[0] :='0000'; // bank pin
Players[3].Strings[1] := 'woodcutting'; //Lamp Skill
Players[3].Integers[0] := 5;
Players[3].Active := True; // are u going to use this player ?
end;
Procedure LoadDTM;
begin
AnyAxe := DTMFromString('78DA63DCCDC4C0B09791011974660831FC07D' +
'220D1FF40C07800A86623AA1A882C8C04D23B806A4E1150B30DA8' +
'E6380135BB806A761150B39708F7EC07AAD9815F0D00F3891069');
end;
Procedure LoadBitmap;
begin
WillowLog := BitmapFromString(13, 10, 'beNrzV8hLtYvwVwCiEG8' +
'5IIKwMRFcGR4E1F6Y4QBEuGQD3GW9naXd7CUx1UBshytwshYHouxk' +
'W4g4ENmaiQERRByoAIiAKiEIKAsRhyNkBUAzISgu3BSuBRlBZOEWA' +
'S1NjbWEc3EhiE/RQg8NAcUJKgOJAwA7mmJ8');
end;
Procedure LoadDDTMs;
var
Road : Integer;
begin
WDTMArea := 1;
WDTMTol := 60;
RoadMP.x:=584;
RoadMP.y:=67;
RoadMP.AreaSize:=WDTMArea;
RoadMP.Color:=2512439;
RoadMP.Tolerance:=255;
RoadSP[0].x:=573;
RoadSP[0].y:=59;
RoadSP[0].areasize:=WDTMArea;
RoadSP[0].areashape:=0;
RoadSP[0].color:=FindWaterColor;
RoadSP[0].tolerance:=WDTMTol;
RoadSP[1].x:=576;
RoadSP[1].y:=80;
RoadSP[1].areasize:=1;
RoadSP[1].areashape:=0;
RoadSP[1].color:=2914425;
RoadSP[1].tolerance:=WDTMTol;
RoadSP[2].x:=591;
RoadSP[2].y:=74;
RoadSP[2].areasize:=1;
RoadSP[2].areashape:=0;
RoadSP[2].color:=1846848;
RoadSP[2].tolerance:=WDTMTol;
RoadSP[3].x:=587;
RoadSP[3].y:=57;
RoadSP[3].areasize:=WDTMArea;
RoadSP[3].areashape:=0;
RoadSP[3].color:=2711922;
RoadSP[3].tolerance:=WDTMTol;
Road := FindRoadColor;
Path[0].Mainpoint.x:=663; // thanks footballdjs :D
Path[0].Mainpoint.y:=110;
Path[0].Subpoints[0].x:=655;
Path[0].Subpoints[0].y:=110;
Path[0].Subpoints[1].x:=668;
Path[0].Subpoints[1].y:=133;
Path[0].Subpoints[2].x:=655;
Path[0].Subpoints[2].y:=132;
Path[0].Subpoints[3].x:=673;
Path[0].Subpoints[3].y:=106;
WillowDTMSkel.MainPoint:=RoadMP;
WillowDTMSkel.SubPoints:=RoadSP;
WRoadDTM:=AddDTM(WillowDTMSkel);
end;
Procedure HoverToRandomSkill;
begin
case random(14) of
0: HoverSkill('attack',False);
1: HoverSkill('hitpoints',False);
2: HoverSkill('mining',False);
3: HoverSkill('strength',False);
4: HoverSkill('agility',False);
5: HoverSkill('smithing',False);
6: HoverSkill('defence',False);
7: HoverSkill('fishing',False);
8: HoverSkill('ranged',False);
9: HoverSkill('cooking',False);
10: HoverSkill('prayer',False);
11: HoverSkill('crafting',False);
12: HoverSkill('firemaking',False);
13: HoverSkill('woodcutting',False);
end;
end;
procedure AntiBannage;
begin
if (not(LoggedIn)) then
Exit;
case random(40) of
0: SleepAndMoveMouse(1232+random(857));
1: HoverToRandomSkill;
2: begin
DoEmote(1+random(17));
wait(2546+random(165))
GameTab(1 +random(5))
Gametab(4)
end;
3: MMouse(random(250), random(250), 10, 10);
4: PickUpMouse;
5: begin
GameTab(1 + Random(12));
wait(1000+random(1000));
GameTab(4);
end;
end;
end;
Procedure Randoms;
begin
if(not(LoggedIn))then
Exit;
FindNormalRandoms;
FindLamp(Players[CurrentPlayer].Strings[1]);
if (FindFight) then
begin
wait(500+random(50))
SetRun(true);
wait(500+random(500))
RunAway('N',True,1,15000);
if NoGameTab xor InBlack then
begin
Writeln('Found unsolvable random');
Logout;
NextPlayer(False);
Exit;
end;
end;
end;
Procedure AutoResponder;
var
x,y : Integer;
begin
if FindText(x,y,'c lvl',SmallChars,9,414,491,460) or FindText(x,y,'c level',SmallChars,9,414,491,460) or FindText(x,y,'oodcutting lvl',SmallChars,9,414,491,460)then
begin
Writeln(' Someone is talking with me '+ (chr(13)) +' we are going to respond');
WoodcuttingLvl := GetSkillInfo('woodcutting',False);
wait(500+random(500))
case random(5) of
0: TypeSend('im lvl '+ IntToStr(WoodcuttingLvl));
1: TypeSend('im level '+ IntToStr(WoodcuttingLvl));
2: TypeSend('yay im ' +IntToStr(WoodcuttingLvl)+' lol');
3: TypeSend('ouch im ' +IntToStr(WoodcuttingLvl));
4: TypeSend('well im ' +IntToStr(WoodcuttingLvl));
end;
end;
if FindText(x,y,'H',UpChars,9,414,491,460) and FindText(x,y,'i',SmallChars,9,414,491,460) or FindText(x,y,'ello',SmallChars,9,414,491,460)or FindText(x,y,Players[CurrentPlayer].Nick,SmallChars,9,414,491,460) then
case random(50) of
0: TypeSend('hi');
1: TypeSend('hiya');
2: TypeSend('hello');
3: TypeSend('whats up');
4: TypeSend('yes?');
end;
Exit;
end;
Procedure BoredCutter;
begin
case random(300) of
0: TypeSend('wc lvls');
1: TypeSend('woodcutting lvls');
2: TypeSend('im soo bored');
3: TypeSend('i love woodcutting');
4: TypeSend('omg why there is a lot of people');
5: TypeSend('runescape rocks'); // not really
6: TypeSend('draynor village is my home');
7: TypeSend('i hate dark wizards -.-');
8: TypeSend('oh i need to go to the bathroom ');
9: TypeSend('willows r soo easy to chopp');
10:TypeSend('i like this place cuz there is a bank so near');
11:TypeSend('noobs...');
end;
end;
Procedure AutoTrader;
var
TraderName : String;
begin
if (SomeoneTrades) then
begin
Writeln('SOMEONE IS TRADING WITH '+ Players[CurrentPlayer].Name);
TraderName := GetTraderName;
Writeln('THE TRADER STARTER IS ' +TraderName);
if (HandleTrade) then
Exit;
end;
end;
function FindWillow : Boolean; // by santa_clause and modified by me
var
TreePointArray : T2DPointArray;
TreePoints : TPointArray;
Centre : TPoint;
TreeBox : TBox;
X, Y, I, K, U, C, H : Integer;
CTS : Integer;
begin
if not loggedin then exit;
CTS := GetColorToleranceSpeed;
MarkTime(U);
ColorToleranceSpeed(2);
Centre := IntToPoint(MSCX, MSCY);
FindColorsTolerance(TreePoints, 1060391, MSX1, MSY1, MSX2, MSY2, 10);
TreePointArray := SplitTPA(TreePoints, 20);
SortATPAFrom(TreePointArray, Centre);
K := TimeFromMark(U);
for I := 0 to High(TreePointArray) do
begin
TreeBox := GetTPABounds(TreePointArray[i]);
MMouse((TreeBox.X1 + TreeBox.X2)/2, (TreeBox.Y1 + TreeBox.Y2)/2, 3, 3);
Wait(50 + Random(50));
if IsUpText('illow') then
begin
GetMousePos(X, Y);
if not(FindColorTolerance(C, H, 51657,80, 6, 127, 20, 5)) then
begin
Mouse(X, Y, 0, 0, True);
Result := True;
WriteLn('Willow was found in '+IntToStr(K)+' milisecs');
ColorToleranceSpeed(CTS);
Exit;
end else
begin
Writeln('***********ENT***********');
Ents := Ents +1;
ReportVars[1] := 1;
SendSRLReport;
repeat
wait(1000+random(1000))
until not(FindColorTolerance(C, H, 51657, 80, 6, 127, 20, 5))
end;
end;
end;
end;
Procedure SetUpCurrentPlayer;
var
x,y : Integer;
begin
if (not(LoggedIn)) then
Exit;
SetUpped := False;
MakeCompass('E');
wait (1000+random(666))
MakeCompass('W');
SetAngle(True);
wait(500+random(500))
GameTab(4)
wait(500+random(500))
if (FindDTM(AnyAxe,x,y,MIX1,MIY1,MIX2,MIY2))then
begin
Mouse(x,y,1,1,false);
wait(500+random(500))
ChooseOption('xamine')
wait(2000)
if (IsChatBlackTextAnyLine('axe')) and (not(IsChatBlackTextAnyLine('this broken'))) then
begin
Writeln('Found axe')
AutoTrader;
SetUpped := True;
Exit;
if (IsChatBlackTextAnyLine('this broken')) then
begin
Writeln('Broken axe found...')
SetAngle(False);
wait(500+random(500))
if FindObjCustom(x,y,[5462367,671571,4013888],['ank','ooth','oth'],30) then
begin
wait(500+random(500));
Mouse(x,y,5,5,False);
wait(100+random(500))
ChooseOption('uickly');
wait(540+random(500))
FixBank;
if(FindDTM(AnyAxe,x,y,MIX1,MIY1,MIX2,MIY2))then
begin
Writeln('Another axe was found');
Mouse(x,y,1,1,true);
wait(500+random(500))
CloseBank;
wait(500+random(500))
MakeCompass('W');
SetUpped := True;
Exit;
end else
Writeln('No more axes was found');
Logout;
NextPlayer(False);
Exit;
end else
Writeln('Couldnt find bank booth!');
Logout;
NextPlayer(False);
Exit;
end;
end;
end else
Writeln('Start with an axe!');
Logout;
NextPlayer(False);
Exit;
end;
Procedure WalkingToWillows;
var
ys,xs,x,y,z,Water : Integer;
begin
if(not(LoggedIn))then
Exit;
if (SetUpped) then
Walked := False;
For Z:=1 To 5 Do
Begin
Water:= FindWaterColor;
WDTMTol:=WDTMTol+5;
WDTMArea:=WDTMArea+1;
if (DTMRotated(WRoadDTM,x,y,MMX1,MMY1,MMX2,MMY2)) then
begin
Mouse(x,y,2,2,True);
Flag;
Writeln('Willows found using DTM at a tolerance of '+IntToStr(WDTMTol)+
' and an area of '+IntToStr(WDTMArea));
Walked := True
Exit;
End Else
begin
Writeln('Willows NOT found using DTM');
If RadialWalk(Water,300,330,65,1,1) then
begin
Writeln('Willow found using RadialWalk');
Walked := True;
Exit;
End Else
begin
Writeln('Willows NOT found using RadialWalk');
SymbolAccuracy:=0.7;
If (FindSymbol(xs,ys,'fish')) then
begin
Mouse(ys,xs,2,2,True);
Writeln('Willows found using Fish Symbol');
Flag;
Walked := True;
Exit;
End Else
begin
Writeln('Sorry Willows NOT found using: DTM,RadialWalk and Fish Symbol.');
Logout;
NextPlayer(False);
Exit
end;
end;
end;
end;
end;
Procedure ChopWillows;
begin
if(not(LoggedIn))then
Exit;
if (Walked) then
Chopped := False;
Writeln('Letz chop those willows');
wait(5000+random(1000))
repeat
if FindWillow then
begin
wait(500+random(500))
Randoms;
wait(1500+random(500))
Writeln('Chopping...');
AutoResponder;
wait(500+random(500))
Randoms;
wait(2500+random(500))
BoredCutter;
wait(500+random(500))
AutoResponder;
wait(500+random(500))
AutoTrader;
wait(500+random(500))
Randoms;
wait(500+random(500))
AntiBannage;
wait(500+random(500))
Randoms;
wait(500+random(500))
end;
until(InvFull)
Chopped := True;
Exit;
end;
Procedure WalkingToTheBank;
var
BankCoords1,BankCoords2 : Integer;
begin
if(not(LoggedIn))then
Exit;
if(not(InvFull))then
ChopWillows;
if(InvFull)Then
LogsChopped := LogsChopped + CountItemsBmp('inv',WillowLog,10);
ReportVars[0] := CountItemsBmp('inv',WillowLog,10);
SendSRLReport;
if (Chopped) then
begin
Bank := False;
Writeln('Inventory fully of willows. Now we are going to walk to the bank');
MakeCompass('W');
SymbolAccuracy := 0.7;
if WalkPath(0) then
begin
Writeln('YaY walking to the bank using the coolest thing ');
Bank := True;
Exit;
end else
begin
if(FindSymbol(BankCoords1,BankCoords2,'bank'))then
begin
Writeln('Bank symbol was found');
Mouse(BankCoords1,BankCoords2,2,2,True);
Flag;
Randoms;
AntiBannage;
Bank := True;
Exit;
end else
Writeln('Bank symbol was not found');
if RadialWalk(FindRoadColor,90,180,5,1,1)then
begin
Writeln('Walking to the bank');
AntiBannage;
wait(500+random(500))
Randoms;
Bank := True;
Exit;
end else
Writeln('Sorry bank was not found');
Logout;
NextPlayer(False);
Exit;
end;
end;
end;
Procedure Banking;
var
cx, yc,C : Integer;
begin
if(not(LoggedIn))then
Exit;
if(Bank)then
Writeln('Now we are banking :)');
SetAngle(True);
wait(2500+random(2500))
MakeCompass('W');
if FindObjCustom(cx,yc,['ank','ooth','oth'],[5462367,671571,4013888],30) then
begin
wait(1500+random(1500))
Mouse(cx,yc,5,5,False);
wait(100+random(500))
ChooseOption('uickly');
end else
begin
Writeln('Sorry bank booth was not found trying again');
repeat
if FindObjCustom(cx,yc,['ank','ooth','oth'],[5462367,671571,4013888],30) then
begin
C := +1;
wait(1500+random(500))
Mouse(cx,yc,5,5,False);
wait(100+random(500))
ChooseOption('uickly');
if ( C = 10 )then
begin
Writeln('Sorry bank was not found ');
Logout;
NextPlayer(False);
Exit;
end;
end;
until(BankScreen) xor (PinScreen)
end;
if (PinScreen) then
begin
InPin(Players[CurrentPlayer].Strings[0])
wait(500+random(500))
end;
begin
wait(5000+random(1000))
Deposit(2,28,2);
Writeln('Perfectly banked');
wait(500+random(500))
Loads := Loads +1;
CloseBank;
end;
end;
Procedure CheckLoads;
begin
if ( Loads = Players[CurrentPlayer].Integers[0] ) then
begin
Writeln('CHANGING PLAYERS');
Logout;
NextPlayer(True);
Exit;
end else
begin
Writeln( IntToStr ((Players[CurrentPlayer].Integers[0]) - (Loads)) + ' Loads more to change players :)')
Exit;
end;
end;
Procedure Proggy;
begin
if not LoggedIn then Exit;
Writeln('---------------------------------');
Writeln('---------------------------------');
Writeln('The script worked for: '+ TimeRunning);
Writeln('The script chopped: '+ IntToStr(LogsChopped)+' logs');
Writeln('The script found: '+ IntToStr(Ents)+' ents');
Writeln('--------------------------------');
Writeln('---------------------------------');
end;
begin
SetupSRL;
wait(100);
ActivateClient;
ClearDebug;
DeclarePlayers;
if(not(LoggedIn))then
LoginPlayer;
Me := SleepFor *60 *10 *10 *10
LoadDTM;
LoadBitmap;
Disguise('Runescape - the...');
LoadDDTMs;
repeat
SetUpCurrentPlayer;
WalkingToWillows;
ChopWillows;
WalkingToTheBank;
Banking;
Proggy;
SendSRLReport;
SRLRandomsReport;
if ( SleepPer < Loads ) then
begin
Writeln('ZZzzzZzzzZzZZZ...');
Logout;
Wait(Me + random(60000))
Writeln('Sleep time completed');
LoginPlayer;
end;
CheckLoads;
until(false)// i have failsafes ;)
end.
——————————————————
<!– END TEMPLATE: formanswers –>