{ ______________
| | || | __|
F| () | || | |S
|____|____|_|PowerChopper Version X Released 3/18/07
Don't copy this script in whole or in Part... you do not have permision.
}
//-------------------------------------------------------------------------//
//Fourscape's Powerchopper Version X (Not Version 10, I just don't know...)
//Do setup lines 28-71 and then that's it.
//----------------------------------------//
//Credits to CharmZ, for the AutoResponder, and to YoHoJo8, for all the help.
//WT-Fakawi for FastRandoms.
Program FPowerCutter;
{.include SRL\SRL.SCAR}
{.include SRL\SRL\Skill\Woodcutting.SCAR}
Var
LoadNumber : Integer;
LogDTM, BrokenAxeDTM, AxeHandleDTM, RegularAxeDTM, AxeHeadMask : Integer;
StartXP, EndXP, TotalXP, TotalLogs : Integer;
TheTreeName : String;
TreeColor, AutoTreeColor : Integer;
Const
//---------------------------------------------------------------------------
// SETUP
//-----------------------------------------------------------------------------
AmmountOfLoads = 3; //Ammount of loads you want to chop before
//switching players.
//They will chop again!
Boxy = True; // Use Box Solver?
Sandy = True; // Use Sandwich Solver?
//-----------------------------------------------------------------------------
//->Declare Players<-//
Procedure DeclarePlayers;
begin
Status('Loading Players')
HowManyPlayers := 1;
NumberOfPlayers( HowManyPlayers );
CurrentPlayer := 0;
Players[0].Name := 'UserName';
Players[0].Pass := 'Password';
Players[0].Nick := 'Nickname'; // 2-4 letters of username
Players[0].String1 := 'Tree' ; // Tree name. Tree, Oak, or Willow
Players[0].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');
AxeHeadMask := BitmapFromString(12, 8, 'z78DA3330200CDC3080018900' +
'972E62CC24D55E4C9594BB993C13C8733FB5DCE3860310AF92185' +
'B008E3078E5'); // Not mine, I don't remember where I got it.
end;
Procedure LoadTreeName;
Begin
Case (LowerCase(Players[CurrentPlayer].String1)) of
'oak' : TheTreeName := 'Oak';
'oak' : TreeColor := 876624;
'tree' : TheTreeName := 'Tree';
'tree' : TreeColor := 876624;
'willow' : TheTreeName := 'Willow';
'willow' : TreeColor := 5535856;
end;
end;
Function FAutoColor : Boolean;
Var
TCX, TCY : Integer;
Begin
If FindObj(TCX, TCY, TheTreeName, TreeColor, 12) then
Begin
AutoTreeColor := GetColor(TCX, TCY)
end;
Result := True;
end;
//->Setup<-//
Procedure MySetupScript; //Fourscape!!!
Begin
Status('Set-Up')
SetupSRL;
ActivateClient;
DeclarePlayers;
LoadDTMs;
UseSandwichSolver := Sandy;
UseBoxSolver := Boxy;
Begin
If (Not(LoggedIn)) then
Begin
Status('Logging In')
Loginplayer;
end;
end;
end;
//->GetRandomLoad-//
Var
RandomLoad : Integer;
Procedure GetRandomLoad;
Begin
RandomLoad := (AmmountOfLoads + Random (3))
end;
//->Anti Randoms<-//
Function TheAntiRandoms : Boolean; //WT-Fakawi
var
i: Integer;
begin
for I := 1 to 9 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;
8 : if FindFight then
begin
Result := True;
RunAwayDirection('E')
Flag;
Wait(10000 + Random(10000))
RunBack;
SetRun(False)
end;
9: if FindTalk then
Result := True;
end;
Wait(1);
end;
end;
//->Anti Ban<-//
Function GetChatMessage(Text: String): Boolean;
Var
TX, TY: Integer;
Chat: String;
Begin
If(IsTextInAreaEx(40, 415, 130, 415, TX, TY, ':', 0, SmallChars, False, True, 0, 0, 0))then
Begin
Chat:= Lowercase(Trim(GetTextAtEx(TX + 8, 415, 0, SmallChars, False, False, 0, 1, 16711680, 40, False, TR_AllChars)));
If(Pos(Text, Chat) <> 0)then
Begin
Result:= True;
End
End
End;
Function GetChatName(Name: String): Boolean;
Var
I : Integer;
ChatName : String;
Begin
ChatName := Lowercase(Trim(GetTextAtEx(21, 415, 0, SmallChars, False, False, 0, 0, 0, 50, False, TR_AllChars)));
I:= Pos(':', ChatName);
If(I <> 0)then
Begin
Delete(ChatName, I, I);
End
If(Pos(Name, ChatName) <> 0)then
Begin
Result:= True;
End
End;
Function TheAntiBan: Boolean;
Var
Responce, Lvl: String;
RandomReply: Integer;
Chat,Name,ChatName: String;
Begin
begin
OldLine:= TheLine;
TheLine:= Lowercase(Trim(GetTextAtEx(20, 415, 0, SmallChars, False, False, 0, 1, 16711680, 40, False, TR_AllChars)));
NewLine:= TheLine;
If(GetChatName(Players[CurrentPlayer].Name))then
Begin
Exit;
End
If(OldLine=NewLine)then
Begin
Exit;
End
If(GetChatMessage(Players[CurrentPlayer].Name)) or
(GetChatMessage(Players[CurrentPlayer].Nick))then
Begin
WriteLn(''+ChatName+': '+Chat);
RandomReply:= Random(10)+1;
Case (RandomReply) of
0 : Responce:= ('?');
1 : Responce:= ('what');
2 : Responce:= ('yes');
3 : Responce:= ('no');
4 : Responce:= ('what do you want');
5 : Responce:= ('me?');
6 : Responce:= ('Yah?');
7 : Responce:= ('who?');
8 : Responce:= ('wha?');
9 : Responce:= ('?');
10 : Responce:= ('???');
End
TypeSend(Responce+' '+Name);
Result:= True;
End
If(GetChatMessage('lol')) or (GetChatMessage('lmao')) or (GetChatMessage('rofl')) or (GetChatMessage('haha'))then
Begin
WriteLn(''+ChatName+': '+Chat);
RandomReply:= Random(24)+1;
Case (RandomReply) of
0 : Responce:= ('heh');
1 : Responce:= ('loll');
2 : Responce:= ('lol');
3 : Responce:= ('haha');
4 : Responce:= ('hihi');
5 : Responce:= ('ehe');
6 : Responce:= ('lmao');
7 : Responce:= ('lmfao');
8 : Responce:= ('rofls');
9 : Responce:= ('fun');
10 : Responce:= ('nice');
11 : Responce:= ('lolz');
12 : Responce:= ('yep');
13 : Responce:= ('hola');
14 : Responce:= ('wow');
15 : Responce:= ('i bet');
16 : Responce:= ('rofl');
17 : Responce:= ('ghehehghehighhe');
18 : Responce:= ('cool');
19 : Responce:= ('...');
20 : Responce:= ('???');
21 : Responce:= ('wow');
22 : Responce:= ('grr..');
23 : Responce:= ('rowr');
24 : Responce:= ('lolololololol');
25 : Responce:= ('ha ha ha!!!');
End
TypeSend(Responce);
Result:= True;
End
If(GetChatMessage('auto')) or (GetChatMessage('autoing')) or
(GetChatMessage('macro')) or (GetChatMessage('autoin'))then
Begin
WriteLn(''+ChatName+': '+Chat);
RandomReply:= Random(11)+1;
Case (RandomReply) of
0 : Responce:= ('lol... ');
1 : Responce:= ('you would think that wouldn''t you');
2 : Responce:= ('your a funny one');
3 : Responce:= ('yep, i sure am lol');
4 : Responce:= ('you wish man');
5 : Responce:= ('if i was i would still own u');
6 : Responce:= ('lmao');
7 : Responce:= ('very funny yet not true');
8 : Responce:= ('hmph.. you wish');
9 : Responce:= ('i guess i could be doin that... lol');
10 : Responce:= ('whatever nub... you wish');
11 : Responce:= ('uh.. yeah right');
End
TypeSend(Responce);
Result:= True;
End
If(GetChatMessage('wc')) or (GetChatMessage('woodcutting')) or (GetChatMessage('woodcuttin')) And
(GetChatMessage('lvl')) or (GetChatMessage('level')) or (GetChatMessage('lvls')) or (GetChatMessage('levels'))then
Begin
WriteLn(''+ChatName+': '+Chat);
Lvl:= IntToStr(GetSkillLevel('woodcutting'));
RandomReply:= Random(5)+1;
Case (RandomReply) of
0 : Responce:= ('i''m lvl '+Lvl+' woodcuttin');
1 : Responce:= ('level '+Lvl+' wc');
2 : Responce:= ('lvl '+Lvl+' woodcut!');
3 : Responce:= (+Lvl);
4 : Responce:= ('i''m level '+lvl);
5 : Responce:= (+Lvl+' here :P');
End
TypeSend(Responce);
Result:= True;
End
If(GetChatMessage('wat')) or (GetChatMessage('what')) and (GetChatMessage('doin')) or (GetChatMessage('doing'))then
Begin
WriteLn(''+ChatName+': '+Chat);
RandomReply:= Random(9)+1;
Case RandomReply of
0 : Responce:= ('not much');
1 : Responce:= ('nothing');
2 : Responce:= ('bored');
3 : Responce:= ('aye?');
4 : Responce:= ('emmm..nothin');
5 : Responce:= ('nope');
6 : Responce:= ('booo');
7 : Responce:= ('no ty');
8 : Responce:= ('what');
9 : Responce:= ('....');
10 : Responce:= ('nothin');
End;
TypeSend(Responce);
Result:= True;
End;
If(GetChatMessage('hey')) or (GetChatMessage('hi')) or (GetChatMessage('hello')) or (GetChatMessage('wats up')) or (GetChatMessage('whats up')) or (GetChatMessage('yo'))then
Begin
WriteLn(''+ChatName+': '+Chat);
RandomReply:= random(9)+1;
Case RandomReply of
0 : Responce:= ('hello');
1 : Responce:= ('wassup');
2 : Responce:= ('yo');
3 : Responce:= ('whats up everyone');
4 : Responce:= ('whats up');
5 : Responce:= ('welcome');
6 : Responce:= ('hello hello');
7 : Responce:= ('wat up');
8 : Responce:= ('yo');
9 : Responce:= ('sup?');
10 : Responce:= ('whats up');
end
TypeSend(Responce);
Result:= True;
end
end;
end;
//->Get Axe Colors<-//
Procedure GetAxeColors;
Begin
FindAxeHeadColor;
end;
//->Axe Head Finder<-//
Procedure TheFindAxe;
Begin
FindHead;
end;
//->Everything Put Together2<-//
Procedure CompleteFix2;
Begin
TheAntiRandoms;
Wait(10)
TheFindAxe;
Wait(10)
TheAntiBan;
end;
//->Ent Finder<-// Yohojo8
Var
EX, EY : integer;
FX, FY : integer;
SafeEntWait : LongInt;
Procedure EntChecker;
Begin
Status('Checking For Ent')
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(645, 83, 2, 2);
MarkTime(SafeEntWait)
Repeat
CompleteFix2;
Wait(10)
If Random(100) = 80 then
Begin
RandomRClick;
end;
Until TimeFromMark(SafeEntWait) > 18000 + Random(10000)
EntsAvoided := EntsAvoided + 1
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')
NextPlayer(False)
end;
end;
end;
Procedure CompleteFix;
Begin
TheAntiRandoms;
Wait(10)
//InLumby;
Wait(10)
EntChecker;
Wait(10)
TheFindAxe;
Wait(10)
IsAxeBroken;
Wait(10)
TheAntiBan;
end;
//->Start Chopping<-//
Var
TX, TY : Integer;
TreeTime, SafeWaiting : LongInt;
Procedure StartChopping;
Begin
MakeCompass('N')
MarkTime(TreeTime)
If ( Not (LoggedIn) ) Then
Begin
NextPlayer (False)
Exit;
end;
Repeat
Begin
IsAxeBroken;
Status('Looking for ' + TheTreeName)
If (InvFull) then
Begin
Exit;
end;
EntChecker;
MakeCompass('W')
If (FindObjMultiText(TX, TY, TheTreeName, TheTreeName, TheTreeName, AutoTreecolor, 4)) then
Begin
Mouse(TX, TY, 1, 1, True)
Wait( 1400 + Random (200))
MarkTime(SafeWaiting)
Repeat
CompleteFix; //THIS SCRIPT IS BY FOURSCAPE!
If InvFull then
Begin
Exit;
end;
Wait(10)
If Not (LoggedIn) then NextPlayer(False)
Until (TimeFromMark(SafeWaiting) > 5000 + Random(5000))
end;
end;
If Not (LoggedIn) then NextPlayer(False)
Until (InvFull) or (TimeFromMark(TreeTime)>60000 * 7)
end;
//->Start Dropping<-//
Var
LX, LY, DroppedLogsCount : Integer;
//DO NOT REMOVE THIS LINE! By Fourscape
Procedure StartDropping;
Begin
If (InvFull) then
Begin
GameTab(4)
DroppedLogsCount := CountItemDtm(LogDTM) + 6
Repeat
GameTab(4)
If (FindDTM(LogDTM, LX, LY, MIX1, MIY1, MIX2, MIY2)) then
begin
Mouse(LX, LY, 8, 8, false)
ChooseOption(x,y,'Drop')
TheAntiRandoms;
end;
If Not (LoggedIn) then NextPlayer(False)
Until (Not(FindDTM(LogDTM, LX, LY, MIX1, MIY1, MIX2, MIY2)))
end;
end;
//->Progress Report<-//
Procedure ReportIt;
Begin
SRLRandomsReport;
WriteLn('')//Fourscape Progress
WriteLn('<---------------------------------------------------------->')
WriteLn(' Progress Thus Far ')
WriteLn(' Run Time : ' + (TimeRunning) + '')
WriteLn(' Logs Chopped : ' + IntToStr (TotalLogs) + '')
WriteLn(' XP Gained : ' + IntToStr (EndXP - StartXP + TotalXP) + '')
WriteLn(' Good Job! : Fourscape RULES! - lol')
WriteLn('<---------------------------------------------------------->')
end;
//->Main Stuff<-//
begin
wait(1200)
MySetupScript;
//By Fourscape
HighestAngle;
Repeat
If Not (LoggedIn) then LogInPlayer;
GetRandomLoad;
Repeat
DisguiseScar('[' + IntToStr(LoadNumber) + '/'
+IntToStr(RandomLoad) + '] '
+(Players[CurrentPlayer].name))
HighestAngle;
GetAxeColors;
StartXP := GetXp('Woodcutting')
LoadTreeName;
FAutoColor;
StartChopping;
StartDropping;
EndXP := GetXp('Woodcutting')
TotalLogs:= TotalLogs + DroppedLogsCount
ReportIt;
Until (LoadNumber >= RandomLoad)
LogOut;
NextPlayer(True);
HighestAngle;
If Not (LoggedIn) then NextPlayer(False)
Until False;
end.
{ ______________
| | || | __|
F| () | || | |S
|____|____|_|PowerChopper Version X Released 3/18/07
Don't copy this script in whole or in Part... you do not have permision.
}