SRL Archive - Test corner

Monk Killer + Healer, YOU have(pls) to help me!


ShowerThoughts

2008-04-27 03:46:35

Hey, i made a Monk Killer + Healer this is the smart version i am pretty sure that you guys know how to rip it off.

What it does:
- killing monks
- healing
- Bone Burying(instant ban):p
- A good proggy to come i have to do level check etc but i am to lazy to do
that..
- Good Killing monks

if you are at a pretty empty world it works great
i used an account with 40 attack and 50 str and then it goes to fast so i guess an account from combat 10-25 is the best because then it will stay long at the monk.

known bugs:
i know it are many but i want it to make perfect :p

- DTMS sometimes not working
- have to make the proggy
- when a player logs in it does nothing for a few secs because it is checking tah DTMS
- when it is very full world and every other player has 1 monk it will keep running around to find one out of attack…
-somewhere in the script it stands there and waits and then goes working again(when empty world i say for the second time it works great)
- when next player logs in it logs out again? not sure if this is true but i've heard it
- The Player max time in minutes is not working :S

If you can help me or have a suggestion to add please tell!
Thank You!
i already had a 30 mins proggy then i quit it.
i think i am going to take out the ChecksDtm not sure..

Here is the Script:
Program LMAO;
{.include srl/srl/misc/smart.scar}
{.Include SRL/SRL.Scar}
{.Include SRL/SRL/Skill/Fighting.Scar}

Var
X, Y, MonksKilled, MaxPlayerTime, ProggyI : Integer;
WUpper, WLower:Boolean;
Const
{=========================]
Main Const
[=========================}
DetailedDebug = True;//True If You Want To See A Full Detailed Debug
Warning = False;//Let This...

{=========================]
Standard Const
[=========================}
MonkColor = 8300243;//Change This If Having Trouble Finding A Monk(3234692)
BoneColor = 13092814;
procedure DeclarePlayers;
begin
HowManyPlayers:=1;//Fil this in!

ProggyI:=HowManyPlayers;
CurrentPlayer:=0;
NumberOfPlayers(HowManyPlayers);
{==========================================]

NOTE: Only Fill in The Lines With Comments.

[==========================================}
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Integers[0]:=100;//How Many Monks To Kill.
Players[0].Integers[1]:=60;//Seconds
Players[0].Integers[2]:=50;//Below Which Hp Percent, We Go Heal.
Players[0].Integers[3]:=15;//Minutes Before Switches To Next Player.
Players[0].Strings[1]:='StrenghtA';//Which Style? Attack, StrenghtA, StrenghtB, Defensive.
Players[0].Booleans[0]:=True;//True To Heal At Monks.
Players[0].Booleans[1]:=True;//True To Burry Bones.
//Let Those alone
Players[0].Loc:='Middle';
Players[0].Active := True;
Players[0].Integers[3]:=0;


{Players[1].Name := '';
Players[1].Pass := '';
Players[1].Nick := '';
Players[1].Integers[0]:=5;//Monks To Kill.
Players[1].Integers[1]:=70;//TimeToKillMonk In Seconds.
Players[1].Integers[2]:=50;//Below Which Hp Percent, We Go Heal.
Players[1].Integers[3]:=15;//Minutes Before Switches To Next Player.
Players[1].Strings[1]:='Attack';//Which Style? Attack, StrenghtA, StrenghtB, Defensive.
Players[1].Booleans[0]:=True;//True To Heal At Monks.
Players[0].Booleans[1]:=True;//To Burry Bones.
//Let Those alone
Players[1].Loc:='Middle';
Players[1].Active := True;
Players[1].Integers[3]:=0;}

end;
{===========================================================================================]

NOTE: END OF SETUP ONLY CHANGE STUFF BELOW IF YOU KNOW WHAT YOU ARE DOING!!!

[===========================================================================================}



Procedure HW(WaitTime:integer);
Begin
Wait(WaitTime)
End;

Procedure HWL(TextLine:String);
Begin
If DetailedDebug Then Writeln(TextLine);
End;

Function HUpText(Uptext:String):boolean;
Var
MaxTime:Integer;
Begin
MarkTime(MaxTime);
Repeat
Wait(1);
Result:=IsUpText(Uptext);
Until(TimeFromMark(MaxTime)>100) Or Result;
End;

Function HpBelow(Percent:integer):boolean;
Begin
Result:=HPPercent < Percent-Random(10);;
end;

Procedure HSetRun(BooleanX:Boolean);
Var
S:Integer;
ColorSign:String;
Begin
S := GetMMLevels('run', ColorSign);//Good Idea Dude Richard!
If (S > 30) Or HPBelow(Players[CurrentPlayer].Integers[2]) then SetRun(True) else SetRun(False);
End;



Procedure CheckDTMS;
Var
Upper, Lower:integer;
Begin
Upper := DTMFromString('78DA630C676260B0624001A971710CFF81342' +
'310FF0702C654A01A37881C33544D59F9010649A81A1060AC03AA' +
'71C7AD068C41E6A41350530B5493815F0D00F38C110A');
Lower := DTMFromString('78DA630C63626028624001A971710CFF81342' +
'310FF0702C654A01A37881C33544D59F9010649A81A1060AC03AA' +
'71C7AD068C41E6A41350530B5493815F0D0019301141');
If DTMRotated(Upper,X, Y, MMX1,MMY1,MMX2,MMY2)then WUpper:=True;
If DTMRotated(Lower,X, Y, MMX1,MMY1,MMX2,MMY2)then WLower:=True;

End;
Function AtMonastery:Boolean;//Will Check If The Character Is At Monks Or Not.
Var
Monastery:integer;
Begin
if Not LoggedIn Then Exit;
Monastery := DTMFromString('78DA63CC676260B06100034608C5B07DD36A8' +
'6FF50FE7F2060AC01AAF186C83141D54486CD609044D2C3980294' +
'F125A0260928A347404D2550461BBF1A001D4C1004');
Result:=DTMRotated(Monastery, X, Y, MMX1, MMY1, MMX2, MMY2);
FreeDTM(Monastery);
If Not Result then
begin
HWL('Location = Not At The Monastery');
Result:=FindSymbol(X, Y, 'Water');
If Result Then HWL('Location = Could Not Find DTM Clicked Water Symbol.');
End Else
HWL('Location = Monastery');
End;


Function ToMonastery(Where:string):Boolean;//Will Check If The Character Is At Monks Or Not.
Var
DTM:integer;
Begin
if Not LoggedIn Then Exit;
HSetRun(True);
Case LowerCase(Where) of
'middle' : DTM := DTMFromString('78DA63CC676260086640038C0CFFC12403C37' +
'F20604C01AA4982C8304355C4256D629084AA01EB4803AA7124A0' +
'A61EA8C699809A5AA09A64FC6A0021A90F1A');
'upper left' : DTM := DTMFromString('78DA632C6166607067644006FFFFFF67F80FA' +
'41921ECFF8C33816A82206A98A16AD2C256324842D58000631350' +
'2690809A46A04C01013533803285F8D5000026AE128E');
'lower left' :DTM := DTMFromString('78DA630C616260C86140038C0CFFC12403C37' +
'F20604C01AA4982C8304355C4256D629084AA01EB4803AA7124A0' +
'A61EA8C699809A5AA09A64FC6A001FDF0F18');
End;
Result:=DTMRotated(DTM, X, Y, MMX1, MMY1, MMX2, MMY2);
if Not result then Result:=FindSymbol(X, Y, 'Water');
If Not Result then HWL('Location = Not At The Monastery') Else HWL('Location = Monastery At The '+Where);
If Where='Upper Left' then X:= X - 2;
If Result Then
Begin
Mouse(X, Y, 0, 0,True);
FFlag(20);
End;
If Result then Players[CurrentPlayer].Loc:= Where;
HSetRun(False);
FreeDTM(DTM);
End;


Procedure OtherPlace(Opposite:Boolean);
begin
If Opposite Then
Begin
Case LowerCase(Players[CurrentPlayer].Loc) of
'middle':Case Random(3) of
0:If WUpper Then ToMonastery('Upper Left') else ToMonastery('Lower Left');
1:If WUpper Then ToMonastery('Upper Left') else ToMonastery('Lower Left');
2:If WLower Then ToMonastery('Lower Left') else ToMonastery('Upper Left');
3:If WLower Then ToMonastery('Lower Left') else ToMonastery('Upper Left');
end;
'lower left':Case Random(2) of
0:ToMonastery('Middle');
1:If WUpper Then ToMonastery('Upper Left') else ToMonastery('Lower Left');
2:ToMonastery('Middle');
End;
'upper left':Case Random(2) of
0:ToMonastery('Middle');
1:If WLower Then ToMonastery('Lower Left') else ToMonastery('Upper Left');
2:ToMonastery('Middle');
End;


End;
End else
Begin
Case LowerCase(Players[CurrentPlayer].Loc) of
'middle':Case Random(3) of
0:If WUpper Then ToMonastery('Upper Left') else ToMonastery('Lower Left');
1:If WUpper Then ToMonastery('Upper Left') else ToMonastery('Lower Left');
2:If WLower Then ToMonastery('Lower Left') else ToMonastery('Upper Left');
3:If WLower Then ToMonastery('Lower Left') else ToMonastery('Upper Left');
end;
'lower left':Case Random(4) of
0:If WUpper Then ToMonastery('Upper Left') else ToMonastery('Lower Left');
1:If WUpper Then ToMonastery('Upper Left') else ToMonastery('Lower Left');
2:ToMonastery('Middle');
3:ToMonastery('Middle');
End;
'upper left':Case Random(3) of
0:If WLower Then ToMonastery('Lower Left') else ToMonastery('Upper Left');
1:If WLower Then ToMonastery('Lower Left') else ToMonastery('Upper Left');
2:ToMonastery('Middle');
End;

End;
End;
If Not WLower And WUpper Then Logout;
End;

Function FindMonk:Boolean;//This Finds The Monk Using Tpa.
Var
MonkTpa: TpointArray;
Monk: T2DPointArray;
H, Hx, Hy, CTS, I, Timer:Integer;
Begin
MouseSpeed:=30;
Timer:=GetSystemTime;
if not LoggedIn Then Exit;
CTS := GetColorToleranceSpeed;
If not CTS = 2 Then ColorToleranceSpeed(2);
FindColorsSpiralTolerance(X, Y, MonkTPA, MonkColor, MSX1+30 , MSY1+30 , MSX2-30, MSY2-30 , 10);
Monk:= TPAtoATPAEx(MonkTPA, 20, 20);
H:=High(Monk);
For I := 0 To H Do
Begin
MiddleTPAEx(Monk[i], X, Y);
HWL('Took '+ IntToStr(GetSystemTime - Timer) +' MiliSecs To Find The Monk.');
If Not FindColorSpiralTolerance(Hx,HY,255,X-40,Y-40,X+40,Y+40,10) And
Not FindColorSpiralTolerance(Hx,HY,65280,X-40,Y-40,X+40,Y+40,20) Then
Begin
MMouse(X, Y, 0, 0);
Result:=HUpText('onk');
If Result Then Break;
If Not Result Then Wait(1000 + Random(500));
End;
End;
If Not result Then HWL('Monk Not Found.');
If Not result Then OtherPlace(False);
ColorToleranceSpeed(CTS);
MouseSpeed:=15;
End;

Function FindBone(MainScreen:Boolean):Boolean;//This Finds The Monk Using Tpa.
Var
MonkTpa: TpointArray;
Monk: T2DPointArray;
H, CTS, I, Timer:Integer;
Begin
MouseSpeed:=30;
Timer:=GetSystemTime;
if not LoggedIn Then Exit;
CTS := GetColorToleranceSpeed;
If not CTS = 2 Then ColorToleranceSpeed(2);
If MainScreen Then FindColorsSpiralTolerance(X, Y, MonkTPA, BoneColor, MSX1+100 , MSY1+100 , MSX2-100, MSY2-100 , 10) else FindColorsSpiralTolerance(X, Y, MonkTPA, BoneColor, MIX1 , MIY1 , MIX2, MIY2, 10);
Monk:= TPAtoATPAEx(MonkTPA, 15, 15);
H:=High(Monk);
For I := 0 To H Do
Begin
MiddleTPAEx(Monk[i], X, Y);
MMouse(X, Y, 0, 0);
Result:=HUpText('one');
If Result Then Break;
End;
ColorToleranceSpeed(CTS);
MouseSpeed:=15;
End;






Procedure Heal;//Will Heal At Monks.
Var
MaxTime:integer;
Begin
if Not LoggedIn Then Exit;
If Players[CurrentPlayer].Booleans[0]Then//If You Want To Get Healt When Fighting Then It Will Heal.
Begin
OtherPlace(True);
Repeat
If FindMonk Then
begin
Mouse(X, Y, 0, 0, False);
Wait(25+random(10));
If ChooseOption('alk') then
Begin
MarkTime(MaxTime)
Repeat
If FindTalk Then Break;
Until(TimeFromMark(MaxTime)>8000) or ClickToContinue;
If Not (TimeFromMark(MaxTime)>8000) Then
Begin
ClickToContinue;
FindNPCChatText('you heal me',ClickLeft);
ClickToContinue;
ClickToContinue;
ClickToContinue;
ClickToContinue;
ClickToContinue;
end;
end;
end;
FindNormalRandoms;
If InFight then OtherPlace(True);
Until Not HPBelow(99);
End;
End;

Procedure BurryBones;
Begin
Repeat
if FindBone(False) Then Mouse(X,Y,0,0,True);
Wait(1800+random(500));
Until Not FindBone(False);
End;

Function FightMonk:Boolean;
Var
MaxTime:integer;
Begin
if Not LoggedIn Then Exit;
MarkTime(MaxTime);
Repeat
if FindMonk Then
Begin
Case Random(2) of
0:Begin
Mouse(X,Y,0,0,False);
Hw(20+ Random(10));
Result:=ChooseOption('ttack');
End;
1:Begin
Mouse(X,Y,0,0,True);
Result:=FindColorTolerance(X, Y,255,X-10,Y-10,X+10,Y+10,5)
End;
end;
If InFight Then Break;
If Result Then Break;
end else
Wait(2500);
Until(TimeFromMark(MaxTime)>7500)
End;

Procedure KillMonk;
Var
MaxTime:integer;
Begin
If Not LoggedIn Then Exit;
If HpBelow(Players[CurrentPlayer].Integers[2]) then Heal;
If FightMonk Then
Begin
Wait(2500);
MarkTime(MaxTime);
Repeat
Wait(100);
Until (InFight)or(TimeFromMark(MaxTime)>10000);
MarkTime(MaxTime);
Repeat
Wait(100);
FindNormalRandoms;
Until (Not InFight) or HpBelow(Players[CurrentPlayer].Integers[2]) or (TimeFromMark(MaxTime)>Players[CurrentPlayer].Integers[1]*1000)
If Not LoggedIn Then Exit;
If Not InFight then MonksKilled:=MonksKilled + 1;
HWL(IntToStr(MonksKilled));
If HpBelow(Players[CurrentPlayer].Integers[2]) then Heal;
If Not InvFull Then
Begin
If FindBone(True) Then Mouse(X, Y, 0, 0, True);
FFlag(1);
Wait(500+random(250));
If Not InvFull Then If FindBone(True) Then Mouse(X, Y, 0, 0, True);
FFlag(1);
Wait(500+random(250));
end;
If InvFull Then If Players[CurrentPlayer].Booleans[1]Then BurryBones;
End;
End;

Procedure SetUpPlayer;
Var
TotalMonksKilled:Integer;
Begin
MonksKilled:=0;
TotalMonksKilled:=TotalMonksKilled + MonksKilled;
HWL(IntToStr(TotalMonksKilled)+' Monks Killed In Total(AllPlayers)');
Wait(1000);
LoginPlayer;
Wait(1000 + Random(500));
SetAngle(True);
MakeCompass('N');
FindNormalRandoms;
CheckDTMs;
GameTab(1);
Case LowerCase(Players[CurrentPlayer].Strings[1]) of
'attack': SetFightMode(1);
'strenghta':SetFightMode(2);
'strenghtb':SetFightMode(3);
'defensive':SetFightMode(4);
End;
GameTab(4);
Case Random(3) of
0:ToMonastery('Middle');
1:ToMonastery('Upper Left');
2:ToMonastery('Lower Left');
End;

End;


Procedure SetUpClient;
Var
MaxTime :Integer;
Begin
If Warning then
begin
MaxTime:= 0;
MarkTime(MaxTime);
ClearDebug;
Repeat
Writeln('');
Writeln('Make Sure That Your Accounts Are High Enough To Fight The Monks,');
Writeln('This Script Haves Healing But Level < 10s Will Die');
Writeln('');
wait(500);
ClearDebug;
Wait(500);
Until(timeFromMark(MaxTime)>2500);
ClearDebug;
Writeln('');
Writeln('Make Sure That Your Accounts Are High Enough To Fight The Monks,');
Writeln('This Script Haves Healing But Level < 10s Will Die');
Writeln('');
Wait(5000);
ClearDebug;
Writeln('To Turn This Warning Off Set Warning In The Main Const To False, Thank You.');
Writeln('If You Turn The Warning To Off(False) The Script Will Run');
Writeln('If You Do Not Know How Go Cry...');
Writeln('');
Writeln('');
Writeln('');
Writeln('');
Writeln('I Hope You Will Enjoy This Script!');
end else
DeclarePlayers;
ActivateClient;
End;

Function AllFalse: Boolean;
Var
I: Integer;
Begin
Result := True;
For I := 0 To High(Players) Do
If Players[CurrentPlayer].Active Then
Result := False;
End;

Procedure Switch(StatesLMAO:Boolean);
Begin
If ALLFalse Then
Begin
Writeln('ALL Players Are False, Thanks For Using My Script!');
TerminateScript;
End;
If StatesLMAO Then
Begin
HWL('Killed The Amount Of Monks Requested Next Player or Ran For The Time Requested.');
NextPlayer(True);
SetUpPlayer;
End Else
Begin
HWL('Error! NextPlayer False')
NextPlayer(False);
SetUpPlayer;
End;
End;

Procedure Proggy(Detailed:boolean);
Begin
If Not Detailed then
Begin
Writeln('');
Writeln('');
Writeln('Script Ran For = '+TimeRunning);
Writeln('Monks Killed = '+IntToStr(MonksKilled));
Writeln('');
Writeln('');
Disguise('Monks Killed = '+IntToStr(MonksKilled));
End else
If Detailed Then
Begin

Writeln('//////////////////////////////////////////////');
Writeln('// Script Ran For = '+TimeRunning);
Writeln('// Monks Killed = '+IntToStr(MonksKilled));
Writeln('// Player 1 Gained :');
Writeln('// Att Levels =');
Writeln('// Str Levels =');
Writeln('// Def Levels =');
If Not ProggyI > 1 Then Writeln('/////////////////////////////////////////////');
If Not ProggyI > 1 Then Exit;
Writeln('// Player 2 Gained :');
Writeln('// Att Levels =');
Writeln('// Str Levels =');
Writeln('// Def Levels =');
If Not ProggyI > 2 Then Writeln('/////////////////////////////////////////////');
If Not ProggyI > 2 Then Exit;
Writeln('// Player 3 Gained :');
Writeln('// Att Levels =');
Writeln('// Str Levels =');
Writeln('// Def Levels =');
If Not ProggyI > 3 Then Writeln('/////////////////////////////////////////////');
If Not ProggyI > 3 Then Exit;
Writeln('// Player 4 Gained :');
Writeln('// Att Levels =');
Writeln('// Str Levels =');
Writeln('// Def Levels =');
If Not ProggyI > 4 Then Writeln('/////////////////////////////////////////////');
If Not ProggyI > 4 Then Exit;
Writeln('// Player 5 Gained :');
Writeln('// Att Levels =');
Writeln('// Str Levels =');
Writeln('// Def Levels =');
Writeln('// ');

End;
Disguise('Monks Killed = '+IntToStr(MonksKilled));
End;

{=========================]
MainLoop
[=========================}
Begin
SmartSetupEx(10, false, True);
Wait(1000);
SetTargetDC(SmartGetDC);
While not(SmartReady) do Wait(100);
SetUpSRL;
SetUpClient;
SetUpPlayer;
Repeat
MarkTime(MaxPlayerTime);
Repeat
If Not Loggedin Then Break;
//If Loggedin Then If GetPlayers >
KillMonk;
Proggy(False);
Until (Not LoggedIn)or (MonksKilled > (Players[Currentplayer].Integers[0]))or (TimeFromMark(MaxPlayerTime)>Players[Currentplayer].Integers[2]*60000+Random(60000));
If (MonksKilled > (Players[Currentplayer].Integers[0]))or (TimeFromMark(MaxPlayerTime)>Players[Currentplayer].Integers[2]*60000) Then Switch(True);
If Not LoggedIn Or Not (MonksKilled > (Players[Currentplayer].Integers[0]))or (TimeFromMark(MaxPlayerTime)>Players[Currentplayer].Integers[2]*60000) Then Switch(False);
Proggy(True);
Until(AllFalse);
If AllFalse Then Writeln('All Players False!');
If AllFalse Then TerminateScript;
End.

Gu3st...

2008-04-27 05:08:28

maybe set ur mousespeed down to 10 instead of 30….

ShowerThoughts

2008-04-27 06:12:57

urgh that is needed else the monk is already away -.- and don't think get a faster function then because it takes 30 milisecs to find the monk tpas ownz!

Naum

2008-04-27 06:24:40

You spell it like Strength ;)

ShowerThoughts

2008-04-27 06:25:58

From: NaumanAkhlaQ
You spell it like Strength ;)


right,strength…

EvilChicken!

2008-04-27 07:44:24

  Players[0].Loc:='Middle';
Players[0].Active := True;
Players[0].Integers[3]:=0;

May I suggest something? Remember that all variables that aren't defined as anything, are set to 0 at start. So, Players[0].Integers[3]:=0; isn't needed. As for the other variables, here's a small proc for you.

Procedure SetVars;
var
F: Byte;

begin
for F := 0 to HowManyPlayers - 1 do begin
Players[F].Loc := 'Middle';
Players[F].Active := True;
end;
end;

Put that procedure right under the DeclarePlayers proc in the mainloop. And, delete those three lines in the DeclarePlayers procedure.

ShowerThoughts

2008-04-27 08:01:24

Thanks! yes that was a problem to i thought newbs where scared off by that many.. info to fill in :S

edit: creditted :p

Dumpin

2008-04-27 08:40:25

From: Zytex!
maybe set ur mousespeed down to 10 instead of 30….


our lord Fawki is using a mousespeed of aprox. 50 :P

ShowerThoughts

2008-04-27 08:42:35

From: Dumpin
our lord Fawki is using a mousespeed of aprox. 50 :P


see that is what i mean people make the mouse slow that looks botty humans move fast ever had your eyes open when using the computer :p

EvilChicken!

2008-04-27 09:06:21

Procedure CheckDTMS;
Var
Upper, Lower:integer;
Begin
Upper := DTMFromString('78DA630C676260B0624001A971710CFF81342' +
'310FF0702C654A01A37881C33544D59F9010649A81A1060AC03AA' +
'71C7AD068C41E6A41350530B5493815F0D00F38C110A');
Lower := DTMFromString('78DA630C63626028624001A971710CFF81342' +
'310FF0702C654A01A37881C33544D59F9010649A81A1060AC03AA' +
'71C7AD068C41E6A41350530B5493815F0D0019301141');
If DTMRotated(Upper,X, Y, MMX1,MMY1,MMX2,MMY2)then WUpper:=True;
If DTMRotated(Lower,X, Y, MMX1,MMY1,MMX2,MMY2)then WLower:=True;

End;

You forgot to free the DTMs. Should be:

Procedure CheckDTMS;
Var
Upper, Lower:integer;
Begin
Upper := DTMFromString('78DA630C676260B0624001A971710CFF81342' +
'310FF0702C654A01A37881C33544D59F9010649A81A1060AC03AA' +
'71C7AD068C41E6A41350530B5493815F0D00F38C110A');
Lower := DTMFromString('78DA630C63626028624001A971710CFF81342' +
'310FF0702C654A01A37881C33544D59F9010649A81A1060AC03AA' +
'71C7AD068C41E6A41350530B5493815F0D0019301141');
If DTMRotated(Upper,X, Y, MMX1,MMY1,MMX2,MMY2)then WUpper:=True;
If DTMRotated(Lower,X, Y, MMX1,MMY1,MMX2,MMY2)then WLower:=True;
FreeDTM(Upper);
FreeDTM(Lower);
End;

Procedure HW(WaitTime); is useless and I think you should remove it.

In findmonk, remove the "MouseSpeed := 30". In mainloop, enter "MouseSpeed := RandomRange(15, 23);
(If I can get on a normal comp, I'll find you my mousespeedvarying proc.)

Procedure HWL(TextLine:String); is also useless. Do a wait(150 + random(70) then IsUpText('string'). Nothing else needed.

In FindMonk:
  If Not result Then HWL('Monk Not Found.');
If Not result Then OtherPlace(False);

Should be
 If Not result then begin
HWL('Monk Not Found.');
OtherPlace(False);
end;

No randomness in BuryBones?

Btw, Sky made a leo solver, its being tested ATM.

Wait a couple seconds after attacking the monk beore checking for FindColor in FightMonk.

FindNormalRandoms is being called too often in KillMonk. Just FTWait until it is done, then FindNormalRandoms once. Or else it will lag A LOT.

Can't think of anything else..
I mean - I COULD teach you how to make an auto-updater for that script, how to save the proggy into a .txt-file and how to add INIs for the script, but you should cover the basics first. Nice TPA usage. Nice script.

Miitchyy

2008-04-27 11:16:05

lol Come on evil chicken, Don't be mean :P
He's not a noob I'm pretty sure he could make auto update :P