SCAR Code:
{ //-------------------------------------------------------------\\
|| INSTRUCTIONS ||
||-------------------------------------------------------------||
|| ||
|| 1. Fill in the setup below. ||
|| 1. Axe in first INV slot... ||
|| 2. Add your players in the DECLARE PLAYERS Lines 38-65. ||
|| 3. Drag Crosshair into RS window. ||
|| 4. No more forms for now so just hit play. ||
|| 5. AXE HEAD FINDER WILL WORK!!! ||
||-------------------------------------------------------------||
|| INSTRUCTIONS ||
\\-------------------------------------------------------------//
}
{.include SRL\SRL.SCAR}
{.include SRL\SRL\Skill\Woodcutting.SCAR}
Var
LoadNumber : Integer;
LogDTM, BrokenAxeDTM, AxeHandleDTM, RegularAxeDTM : Integer;
StartXP, EndXP, TotalXP, TotalLogs, DroppedLogs : Integer;
Const
//---------------------------------------------------------------------------
// SETUP
//-----------------------------------------------------------------------------
AmmountOfLoads = 5; //Ammount of loads you want to chop before switching players. Random 5 is added.
TheTreeName = 'Oak'; //Just guess.
Boxy = True; // Use Box Solver?
Sandy = True; // Use Sandwich Solver?
//-----------------------------------------------------------------------------
//--------------------//
Treecolor = 2132088; //Probobly should change this...
Treecolor2 = 3305568;
//--------------------//
//->Declare Players<-//
Procedure DeclarePlayers;
begin
Status('Loading Players')
HowManyPlayers := 5;
NumberOfPlayers( HowManyPlayers );
CurrentPlayer := 0;
Players[0].Name := 'Username';
Players[0].Pass := 'Password';
Players[0].Nick := 'Nickname'; // 2-4 letters of username
Players[0].Active := True;
Players[1].Name := 'Username';
Players[1].Pass := 'Password';
Players[1].Nick := 'Nickname'; // 2-4 letters of username
Players[1].Active := True;
end;
//->Load Dtm's<-//
Procedure LoadDTMs;
begin
Status('Loading DTM''s')
LogDTM := DTMFromString('78DA632C666260E0646440067921460CFF813' +
'448F43F103066314179C880118904D2354035FF19F0AB2905AA11' +
'22604E23500D0F0135C94035DCF8D50000507909F5');
BrokenAxeDTM := DTMFromString('78DA633CCAC4C090C1C8800C9A127919FE036' +
'990E87F2060BC0C54938CAA06220B2381F445A09A04026A8E01D5' +
'C41050B31FA8A698809AB384CD0100CBBD0D20');
AxeHandleDTM := DTMFromString('78DA637CCFC4C0E0C6C8800CCA227819FE036' +
'990E87F2060FC06546389AA06220B2381F473A09A00026ADE00D5' +
'F81350F316A8C685809A97403541F8D50000D0090D3C');
RegularAxeDTM := DTMFromString('78DA637461626060676440060DF1BC0CFF813' +
'448F43F10300601D5FC6740038C482490F604AAF94D408D13500D' +
'2B237E35F640358204D4F813618E1F50CD1F02EE0906AA61C26F0' +
'E0099720B7E');
end;
//->Setup<-//
Procedure MySetupScript;
Begin
Status('Set-Up')
SetupSRL;
DeclarePlayers;
LoadDTMs;
UseSandwichSolver := Sandy;
UseBoxSolver := Boxy;
Begin
If (Not(LoggedIn)) then
Begin
Status('Logging In')
Loginplayer;
end;
end;
end;
//->Anti Randoms<-//
Procedure TheAntiRandoms;
Begin
Status('Random Check')
FindNormalRandoms;
wait(10)
FindTalk;
wait(10)
if (FindFight) then
begin
RunAwayDirection('E');
Wait(8500 + random(3500));
RunBack;
end;
Wait(10);
FindTalk;
end;
//->Anti Ban<-//
Var
WCLEVEL, DONTBAN : Integer;
Procedure TheAntiBan;
begin
TheAntiRandoms;
Status('Preforming Antiban')
if ( not ( LoggedIn )) then Exit;
DONTBAN:= 1 + Random(140)
case DONTBAN of
2: HoverSkill('woodcutting', false);
3: HoverSkill('random', false);
4: DoEmote(1 + Random(20));
6: PickUpMouse;
9: MMouse(MSX1,MSX2,10,10)
12: GameTab(1+random(7))
13: HighestAngle;
14: TypeSend('Lol my wc lvl is ' +IntToStr (WClevel) + '.')
15: TypeSend('Wc lvl ' +IntToStr (WClevel) + '! Sweet!')
16: TypeSend('Grr, my wc lvl is only ' +IntToStr (WClevel) + '')
17: GetSkillLevel('WoodCutting')
18: GameTab(1+Random(7))
21: TypeSend('I''m lvl ' +IntToStr (WClevel) + ', but I want ' +IntToStr (WClevel + 3 + Random(8)) + '')
22: TypeSend('' +IntToStr (WClevel) + ' woodcuting.../')
23: TypeSend('I can''t wait till im lvl ' +IntToStr (WClevel + 4 + Random(7)) + '')
24: TypeSend('Hmm... im only lvl ' +IntToStr (WClevel) + ' woodcutting... i should go for ' +IntToStr (WClevel + 6 + Random(8))+'')
25: TypeSend('yay... lvl ' +IntToStr (WClevel) + 'wc... still...')
26: TypeSend('cool! only ' + IntToStr (10+random(8)) + 'k xp till lvl ' +IntToStr (WClevel + 1 + random(4)) + ' wc')
27: TypeSend('WC lvl ' +IntToStr (WClevel) + '')
28: TypeSend('hmph... only ' +IntToStr (WClevel) + '')
end;
TheAntiRandoms;
end;
//->Get Axe Colors<-//
Procedure GetAxeColors;
Begin
GameTab(4)
Wait(1000 + Random(100))
FindAxeHeadColor;
Wait(1000 + Random(100))
MakeCompass('N')
end;
//->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;
//->Check for Broken Axe<-//
Var
BX, BY, NX, NY : integer;
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;
//->Axe Head Finder<-//
Procedure TheFindAxe;
Begin
Status ('Looking For Axe')
FindHead;
end;
//->Start Chopping<-//
Var
TX, TY : Integer;
Procedure StartChopping;
Begin
Repeat
Begin
IsAxeBroken;
Status('Looking For Oak')
If (InvFull) then
Begin
Exit;
end;
If ( Not (LoggedIn) ) Then NextPlayer (False)
EntChecker;
If ( Not (LoggedIn) ) Then NextPlayer (False)
If (FindObjMultiText(TX, TY, TheTreeName, TheTreeName, TheTreeName, Treecolor, 4)) then
Begin
Mouse(TX, TY, 3, 3, True)
Wait( 100 + Random (200) )
TheAntiRandoms;
Wait(10)
TheAntiBan;
Wait(10)
If ( Not (LoggedIn) ) Then NextPlayer (False)
Wait(10)
EntChecker;
Wait(10)
TheFindAxe;
Wait(4000+Random(1000))
end;
end;
Until (InvFull)
end;
//->Start Dropping<-//
Var
LX, LY, DroppedLogsCount : Integer;
Procedure StartDropping;
Begin
If (InvFull) then
Begin
GameTab(4)
Repeat
GameTab(4)
If (FindDTM(LogDTM, LX, LY, MIX1, MIY1, MIX2, MIY2)) then
begin
Mouse(LX, LY, 8, 8, false)
ChooseOption(x,y,'Drop')
DroppedLogs:=DroppedLogs + 1
If ( Not (LoggedIn) ) Then NextPlayer (False)
TheAntiRandoms;
wait(400+random(100))
end;
Until (Not(FindDTM(LogDTM, LX, LY, MIX1, MIY1, MIX2, MIY2)))
LoadNumber := LoadNumber + 1
end;
end;
//->Progress Report<-//
Procedure ReportIt;
Begin
SRLRandomsReport;
WriteLn('[>-----------------------FOURS REPORT-----------------------<]')
WriteLn('[>Script Time: ' + (TimeRunning) + '')
WriteLn('[>Logs Chopped: ' + IntToStr (DroppedLogs) + '')
WriteLn('[>XP Gained: ' + IntToStr (TotalXP) + '')
WriteLn('[>----------------------------------------------------------<]')
end;
//->Main Stuff<-//
begin
wait(1200)
MySetupScript;
HighestAngle;
MakeCompass('W')
WCLEVEL := GetSkillLevel('WoodCutting')
Repeat
GetAxeColors;
StartXP := GetXp('Woodcutting')
Repeat
DisguiseScar('[' + IntToStr(LoadNumber) + '/' +IntToStr(AmmountOfLoads) + '] ' +(Players[CurrentPlayer].name) + '')
StartChopping;
If ( Not (LoggedIn) ) Then NextPlayer (False)
StartDropping;
EndXP := GetXp('Woodcutting')
TotalLogs := TotalLogs + DroppedLogsCount
TotalXP := (EndXP - StartXP) + (TotalXP)
ReportIt;
GetAxeColors;
Until (LoadNumber + Random (5) > AmmountOfLoads)
LogOut;
NextPlayer(True);
HighestAngle;
MakeCompass('W')
WCLEVEL := GetSkillLevel('WoodCutting')
If ( Not (LoggedIn) ) Then NextPlayer (False)
Until False;
end.