il post a few
{.Script Info:
# ScriptName = Tree Chopper + Firemaker
# Author = madman
# Description = Chops trees until full inventory then makes fires
# Version = v0.3
# Date = 3-Feb-2006
# Comments = Start anywhere where there are trees, with an axe and tinderbox.
# Autocolor = Yes
# Release Comments
* 0.1 - Inital Release
* 0.2 - Added AntiBan
* 0.3 - Improved AntiRandoms. Made script walkback after moving to make a fire
# Credits
* DWW + Charmz - Various Procedures
**PLEASE post comments and suggestion in post**
- http://villu-reborn.com/showthread.php?t=6459 -
/Script Info}
program ChopperFireMaker;
{.include SRL\SRL.SCAR}
{.include SRL\SRL\skill\WoodCutting.scar}
Var
Colors: Array[1..3] of Integer;
Loads, LogCount : Integer;
LogDTM, TinderDTM : Integer;
WalkCount, TempCount : Integer;
SST1, SST2 : LongInt;
FindNorMalRandomsTime, FindFastRandomsTime : LongInt;
Const
TreeTol = 5; //Tolerance for tree color
WaitTime = 10; //Maximum time before clicking tree again (seconds)
MaxLoads = 10; //Max Loads Per Player
MinutesALoad = 5; //Maximum minutes per load
LeftCPercent = 80; //Percent to left click
Version = '0.3'; //No Touch This
Procedure DeclarePlayers;
Begin
StartPlayers(true, '');
End;
//*************************\\
// DTMS / BMPS \\
//*************************\\
Procedure LoadDTM;
Begin
LogDTM := DTMFromString('78DA63F466626078CA8002B2820C19FE036 94' +
'620FE0F048C7640357719D000231209A42D816A5E1150E302 54F3' +
'91809A50A09A3704D40401D53C2242CD6D026A3C816AEEE05 7030' +
'0D68B0F7A');
TinderDTM := DTMFromString('78DA63F4626260E060644006098E9C0CFF8 13' +
'448F43F10308601D570A1AA81C8C248200D32478C801A6BA0 1A3E' +
'026ADC806AFE31E057130254F397801A27A01A6102760511E 11E7' +
'BA01A16026A7C816AFEE0770F00952B0C0F');
End;
//****************\\
// ANTIBAN \\
//****************\\
Procedure MyAntiBan;
Begin
RandomChatEvery(10 + Random(5));
RotateEvery(5 + Random(2));
LeaveScreenEvery(5 + Random(5));
PickUpMouseEvery(5 + Random(10))
RandomRClickEvery(15 + Random(5))
End;
//*****************\\
// RANDOMS \\
//*****************\\
Function TreeColor : Integer; Forward;
Function FindFastRandoms: Boolean;
var
i: Integer;
begin
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;
end;
Procedure FTWaitK(Time:Integer);
var
t: integer;
begin
For T:=1 to Time do
begin
Wait(200+Random(50));
FindTalk;
end;
FindHead;
FindEnt(TreeColor);
FindBirdsNest;
if(FindFight)then
Begin
RunAwayDirection('N');
FTWaitK(4 + random(3));
RunBack;
End
FindFastRandoms;
MarkTime(FindNorMalRandomsTime);
if FindNorMalRandomsTime-SST1 >(10000+Random(5000)) then
begin
Status('FindNorMalRandoms.');
FindNorMalRandoms;
FindTalk;
MarkTime(SST1);
Status('FindNorMalRandoms took:'+IntToStr(SST1-FindNorMalRandomsTime)+' msec');
end;
MarkTime(FindFastRandomsTime);
if FindFastRandomsTime-SST2 >(1500+Random(1500)) then
begin
Status('FindFastRandoms.');
FindFastRandoms;
FindTalk;
MarkTime(SST2);
Status('FindFastRandoms took:'+IntToStr(SST2-FindFastRandomsTime)+' msec');
end;
end;
Function Ent(Ex,Ey : integer): Boolean; //From Charmz
Begin
MMouse(Ex, Ey, 0, 0);
If(FindColorSpiralTolerance(x, y, 3432536, MSX1, MSY1, MSX2, MSY2, 10))then
MMouse(x, y, 0, 0);
If(IsUpText('Chop')) or (IsUpText('Tree')) or (IsUpText('Down'))then
Begin
If(FindColorSpiralTolerance(x, y, 383705, 1, 1, 180, 39, 20))or
(FindColorSpiralTolerance(x, y, 65535, 1, 1, 200, 40, 20))then
Begin
Result:= True;
EntsAvoided:=EntsAvoided + 1;
WriteLn('Ent found, waiting');
Mouse(648, 83, 1, 1, True);
// Wait(5000+Random(2000));
FTWaitK(22);
End else
Result:= False;
Exit;
End;
End;
//******************\\
// COLOR STUFF \\
//******************\\
Function FindTreeColorsIfNeeded(refrencecol,tol,tol2:intege r):boolean; //Stole from DWW
Var
c,a,b,xm,ym,curcolor:integer;
oc1,oc2,oc3:boolean;
Begin
If ((Colors[1]=0) or (Colors[2]=0) or (Colors[3]=0)) Then
Begin
If (FindColorTolerance(x,y,refrencecol,3,3,515,338,to l)) Then//Find tree close
Begin
if (FindObj(x,y,'Chop',refrencecol,tol)) Then
Begin
a:=1;
GetMousePos(x,y);
xm:=x;
ym:=y;
repeat
xm:=xm+a;
ym:=ym+b;
curcolor:=GetColor(xm,ym);
MMouse(xm,ym, 5, 5);
Wait(5+random(5));
If(IsUpText('Chop'))then
Begin
If(SimilarColors(curcolor,refrencecol,tol2))and(oc 1=false)then
Begin
Colors[1]:=curcolor;
oc1:=true;
End;
If(SimilarColors(curcolor,refrencecol,tol2))and
(not(curcolor=Colors[1]))and(oc2=false)then
Begin
Colors[2]:=curcolor;
oc2:=true;
End;
if(SimilarColors(curcolor,refrencecol,tol2))and
(not(curcolor=Colors[1]))and
(not(curcolor=Colors[2]))and(oc3=false)then
Begin
Colors[3]:=curcolor;
oc3:=true;
End;
End;
If(not(IsUpText('Chop')))then
Begin
c:=c+1;
xm:=x;
ym:=y
MMouse(xm,ym,1,1);
// wait(200+random(100)+random(100))
FTWaitK(2);
if(c=1)then a:=-1;
if(c=2)then begin a:=0;b:=-1;end;
if(c=3)then begin a:=0;b:=2;end;
End;
Until((oc1)and(oc2)and(oc3))or(c>=4);
End;
End;
If(Colors[1]>0)and(Colors[2]>0)and(Colors[3]>0)then result:=true;
End;
End;
Function TreeColor : integer; //Stolen from DWW
Var RandomColor:integer;
Begin
Repeat
RandomColor:=random(3)+1;
Until (RandomColor >= 1) or (RandomColor <= 3);
Result:=Colors[RandomColor];
End;
//*******************\\
// PROCEDURES \\
// + \\
// FUNCTIONS \\
//*******************\\
Procedure ProgressReport;
Begin
ClearDebug;
Writeln('****************************');
Writeln('/ Fire Maker + Log Chopper \');
Writeln('/ v' + Version + ' \');
Writeln('============================');
Writeln(' Ran for ' + TimeRunning);
Writeln(' Cut and light ' + IntToStr(LogCount) + ' logs');
Writeln('****************************');
End;
Function FindTree(MaxTol:Integer):Boolean; //Stolen from DWW
Var Tol,Ex,Ey:Integer;
Begin
While (Not (FindColorTolerance(Ex, Ey, TreeColor, MSX1, MSY1, MSX2, MSY2, Tol))
And Not (Tol > MaxTol)) Do
Begin
Tol:=Tol+1;
End;
If ((FindColorTolerance(Ex, Ey, TreeColor, MSX1,MSY1 ,MSX2, MSY2, Tol))
And Not (Tol > MaxTol)) Then Result:=True;
Tol:=1;
Wait(10);
End;
Procedure DoChopping;
Begin
if(FindTree(TreeColor))then
Begin
if(FindObj(x, y, 'ree', TreeColor, TreeTol))then
Begin
if(not(Ent(x, y)))then
Begin
if((Random(100) + 1) < LeftCPercent)then
Begin
Mouse(x, y, 0, 0, true);
Wait(50);
End else
Begin
Mouse(x, y, 0, 0, false);
ChooseOption(x, y, 'own');
Wait(50);
End
Flag;
//Wait(500 + Random(500));
FTWaitK(2);
MarkTime(Mark);
repeat
//DoMyRandoms;
//Wait(50 + random(50));
FTWaitK(1);
if(InvFull)then Break;
Until(not(TimeFromMark(Mark) > (1000 * WaitTime)));
End
End
End
End;
//*****************\\
// MAIN LOOP \\
//*****************\\
Procedure NewPlayer;
Begin
LoginPlayer;
GameTab(4);
if(not(FindInvDTM(x, y, TinderDTM)))then
Begin
Writeln('No tinder box! ... NextPlayer');
NextPlayer(false);
End
HighestAngle;
SetRun(true);
PerfectNorth;
End;
Procedure Setup;
Begin
SetupSRL;
LoadDTM;
MouseSpeed := 5 + Random(5);
BenMouse := true;
DeclarePlayers;
ActivateClient;
Wait(1000 + Random(1000));
End;
begin
Setup;
Repeat
NewPlayer;
FindAxeHeadColor;
FindTreeColorsIfNeeded(1520688, 5, 45);
Repeat
MarkTime(Mark);
Repeat
if(not(LoggedIn))then Break;
if(InvFull)then Break;
DoChopping;
Until((InvFull) or (TimeFromMark(Mark) >= 1000 * 60 * MinutesALoad));
WalkCount := 0;
Repeat
if(FindInvDTM(x, y, LogDTM))then
begin
Mouse(x, y, 3, 3, true);
//Wait(1000 + random(500));
FTWait(4);
if(FindInvDTM(x, y, TinderDTM))then
begin
Mouse(x, y, 3, 3, true);
//Wait(1000 + Random(500));
FTWait(4);
repeat
if(InChatMulti('ou can', 't ligh', 't a fir'))then
Begin
MouseFindFlag(MMCX, MMCY, 15, -15);
WalkCount := WalkCount + 1;
Flag;
Break;
End
//Wait(500);
FTWaitK(2);
until(not(InChat('attempt to'))) or (InChat('advanced a'));
End
LogCount := LogCount + 1;
End
Until(not(FindInvDTM(x, y, LogDTM)));
Loads := Loads + 1;
TempCount := 0;
repeat
MouseFindFlag(MMCX, MMCY, -15, 15);
TempCount := TempCount + 1;
Flag;
Until(TempCount >= WalkCount);
ProgressReport;
SRLRandomsReport;
if(Loads >= MaxLoads)then
Begin
Logout;
Break;
End
Until(not(LoggedIn));
NextPlayer(true);
Until(false);
end.
krzykiller
05-06-2007, 07:31 PM
Yea the script was created and meant to run off 2.03 Divi wont run it. You need to get scar 2.03 download srl off here and download winrar to extract into all the proper files. You can view tutorials on how to do this on the site.
Powered by vBulletin® Version 4.2.1 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.