Laur€ns
2008-07-29 11:00:01
<!– BEGIN TEMPLATE: formanswers –>
laurenssie0 - SRL Member Application Form
laurenssie0
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
Programming Knowledge
Ehhm.. Standard VB, and VB2008 (little for Warrock hacks)
Other Communitys
Some, don't know them all :]
How Long have You Played Runescape
2½ years legit, ½ year macros
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Well.. I am Laurens, 14 years old, I live in Zwijndrecht, a small but nice city in The Netherlands. I was born on October 17th, 1993. My hobbies are computers, Korfball and my school is the "Johan de Witt gymnasium" in Dordrecht. I have to ride 8 kilometers every day to get there, but it's well worth it :) I am almost 1.85 meters (6'00") long and still growing ^^ I am not so good at maths (4.6 out of 10 at my list) and my English is not awesome too ;) Later, I want to do something with computers. I come to this site by Google, when I searched for Runescape Bot. And I hope to stay here long time :)
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
I made a Monk Killer/Healer :)
And special thanks to PvH who helped me :D
With: (Yes = Green, Somewhat = Orange, No = Red)
* DTMs / DDTMs
* Decent complex working script. Up to you to judge!
* FailSafes
* MultiPlayer
* Break out of potential endless loops
* Standards! Required to get people read your script.
* RadialWalk / DTM Walking
Procedure/Functions overview:
Now the actual code:(h)
682 Lines!
——————————————————
<!– END TEMPLATE: formanswers –>
laurenssie0 - SRL Member Application Form
laurenssie0
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
Programming Knowledge
Ehhm.. Standard VB, and VB2008 (little for Warrock hacks)
Other Communitys
Some, don't know them all :]
How Long have You Played Runescape
2½ years legit, ½ year macros
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Well.. I am Laurens, 14 years old, I live in Zwijndrecht, a small but nice city in The Netherlands. I was born on October 17th, 1993. My hobbies are computers, Korfball and my school is the "Johan de Witt gymnasium" in Dordrecht. I have to ride 8 kilometers every day to get there, but it's well worth it :) I am almost 1.85 meters (6'00") long and still growing ^^ I am not so good at maths (4.6 out of 10 at my list) and my English is not awesome too ;) Later, I want to do something with computers. I come to this site by Google, when I searched for Runescape Bot. And I hope to stay here long time :)
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
I made a Monk Killer/Healer :)
And special thanks to PvH who helped me :D
With: (Yes = Green, Somewhat = Orange, No = Red)
* DTMs / DDTMs
* Decent complex working script. Up to you to judge!
* FailSafes
* MultiPlayer
* Break out of potential endless loops
* Standards! Required to get people read your script.
* RadialWalk / DTM Walking
Procedure/Functions overview:
// * procedure DeclarePlayers // * by SRL Developers
// * function LaurensWait(Time:integer) // * by Laurenssie0
// * function LaurensMessage(Message:String) // * by Laurenssie0
// * function WhatsTheUpText(Uptext:String):boolean // * by Laurenssie0
// * function HpIsBelowX(Percent:integer):boolean // * by Laurenssie0
// * procedure SetRunningMode(BooleanX:Boolean) // * by Laurenssie0
// * procedure Increase // * by Laurenssie0
// * function AreYouAtMonastery:Boolean // * by Laurenssie0
// * procedure ToMonasterySection(Which:string):Boolean // * by Laurenssie0
// * procedure RotateCompass // * by PvH, modified a little by Laurenssie0 :)
// * procedure AntiBanMe // * by Laurenssie0
// * procedure OtherPlace(Opposite:Boolean) // * by Laurenssie0
// * procedure GimmeMonk:Boolean // * by Laurenssie0
// * procedure HandleHeal // * by PvH
// * procedure HealMeh // * by Laurenssie0 / uses PvH's HandleHeal
// * procedure BuryBones **Deleted, stopped working =[** // * by Laurenssie0
// * function FightTehMonk:boolean; // * by Laurenssie0
// * procedure KillMonk // * by Laurenssie0
// * procedure SetVariables // * by Laurenssie0
// * procedure SetUpPlayer // * by Laurenssie0
// * procedure SetUpClient // * by Laurenssie0
// * procedure SwitchChars(States:Boolean) // * by Laurenssie0 / uses the Dev's procedure to switch.
// * procedure ProgressReport // * by Laurenssie0
// * procedure Execution // * by Laurenssie0
// Myself: 20/23
// Others: 01/23
// Modded: 02/23
// Percent myself: 86,956521739130434782608695652174% //Close enough to the 90%.. ;)
// Percent others: 4,3478260869565217391304347826092%
// Percent modded: 8,6956521739130434782608695652174%
// Total: 100,0%
Now the actual code:(h)
682 Lines!
{.Script Info:
# ScriptName = Monk Killer and Healer
# Author = Laurenssie0
# Description = Kills monks and heals at them (@ Monastery near edgeville)
# Version = 1.337
# Date = Started making: 08/07/08 Finished: 23/07/08
# Comments = SRL Members Application.
/Script Info}
{============================INSTRUCTIONS=======================================
1. Fill in Declare Players and consts
2. Go to the middle of the monastery, so it is COMPLETELY visible on minimap
3. Press the shiney green button
4. Enjoy the killing
5.
if YouLikeIt then inc(Yes) else inc(NoobPoints);
===============================================================================}
//Special thanks to PvH for helping and giving me 2 of his procedures :)
// * procedure DeclarePlayers // * by SRL Developers
// * function LaurensWait(Time:integer) // * by Laurenssie0
// * function LaurensMessage(Message:String) // * by Laurenssie0
// * function WhatsTheUpText(Uptext:String):boolean // * by Laurenssie0
// * function HpIsBelowX(Percent:integer):boolean // * by Laurenssie0
// * procedure SetRunningMode(BooleanX:Boolean) // * by Laurenssie0
// * procedure Increase // * by Laurenssie0
// * function AreYouAtMonastery:Boolean // * by Laurenssie0
// * procedure ToMonasterySection(Which:string):Boolean // * by Laurenssie0
// * procedure RotateCompass // * by PvH, modified a little by Laurenssie0 :)
// * procedure AntiBanMe // * by Laurenssie0
// * procedure OtherPlace(Opposite:Boolean) // * by Laurenssie0
// * procedure GimmeMonk:Boolean // * by Laurenssie0
// * procedure HandleHeal // * by PvH
// * procedure HealMeh // * by Laurenssie0 / uses PvH's HandleHeal
// * procedure BuryBones **Deleted, stopped working =[** // * by Laurenssie0
// * function FightTehMonk:boolean; // * by Laurenssie0
// * procedure KillMonk // * by Laurenssie0
// * procedure SetVariables // * by Laurenssie0
// * procedure SetUpPlayer // * by Laurenssie0
// * procedure SetUpClient // * by Laurenssie0
// * procedure SwitchChars(States:Boolean) // * by Laurenssie0 / uses the Dev's procedure to switch.
// * procedure ProgressReport // * by Laurenssie0
// * procedure Execution // * by Laurenssie0
// Myself: 20/23
// Others: 01/23
// Modded: 02/23
// Percent myself: 86,956521739130434782608695652174% //Close enough to the 90%.. ;)
// Percent others: 4,3478260869565217391304347826087%
// Percent modded: 8,6956521739130434782608695652174%
// Total: 99,999999999999999999999999999995% //Huh?
Program MonasteryMassacre;
{.Include SRL/SRL.Scar}
{.Include SRL/SRL/Skill/Fighting.Scar}
Const
DetailDebug = False;//Wanna see some crap?? Turn it on.
AntiBanAmount = 10; //Likeness of antiban. The higher, the less antiban performs.
MonkColor = 2242371;//Having trouble finding monks? Pick new color & change.
BoneColor = 10000806;//Script can't find bones? Pick new color & change it.
{*******************************************************************************
Procedure: DeclarePlayers
Made by : SRL Developers
Sets up the player array
*******************************************************************************}
procedure DeclarePlayers;
begin
HowManyPlayers:=1;
CurrentPlayer:=0;
NumberOfPlayers(HowManyPlayers);
Players[0].Name := 'laurenssie0';
Players[0].Pass := '';
Players[0].Nick := 'aure';
Players[0].Integers[0]:=100;//Number of monks
Players[0].Integers[1]:=60;//Seconds per kill
Players[0].Integers[2]:=50;//Script will heal if below (..)% of health
Players[0].Integers[3]:=15;//MPP (Minutes Per Player)
Players[0].Strings[1] := 'Strength'; //What skill do you want to train? Attack, Strength,Defence,Spreaded
Players[0].Booleans[0]:=True;//True To Heal At Monks. Recommended to be ON
{ Players[1].Name := 'User Name';
Players[1].Pass := 'Password';
Players[1].Nick := 'ser';
Players[1].Integers[0]:=100;//Number of monks
Players[1].Integers[1]:=60;//Seconds
Players[1].Integers[2]:=50;//Script will heal if below (..)% of health
Players[1].Integers[3]:=15;//MPP (Minutes Per Player)
Players[1].Strings[1] := 'Strength'; //What skill do you want to train? Attack,Strength,Defence,Spreaded
Players[1].Booleans[0]:=True;//True To Heal At Monks. Recommended to be ON }
end;
{[[[[[[[[[[[[[[[[[[[[[Scripting code starts here]]]]]]]]]]]]]]]]]]]]]]]]]]]}
{[[[[[[[[[[[[[[[[[[[[[[[[[[Prepare yourself!]]]]]]]]]]]]]]]]]]]]]]]]]]]]]}
Var
x, y, MonksSlain, TotMonksSlain, TimeForPlayer: Integer;
Upper, Lower:Boolean;
{*******************************************************************************
Procedure: LaurensWait
Made by : Laurenssie0
Just a modification to show I know functions :)
*******************************************************************************}
Procedure LaurensWait(Time:integer);
Begin
Wait(Time);
End;
{*******************************************************************************
Procedure: LaurensMessage
Made by : Laurenssie0
If you have set the detailed debug, it shows extended information.
*******************************************************************************}
Procedure DetDebug(TextLine:String);
Begin
If DetailDebug Then Writeln(TextLine);
End;
{*******************************************************************************
Function: WhatsTheUpText
Made by : Laurenssie0/SRL Developers -> Uses IsUpText from the SRL Developers
Searches for the uptext in the left upper corner of your RS screen
*******************************************************************************}
Function WhatsTheUpText(Uptext:String):boolean;
Var
MaxTime:Integer;
Begin
MarkTime(MaxTime);
Repeat
Wait(1);
Result:=IsUpText(Uptext);
Until(TimeFromMark(MaxTime)>100) Or Result;
End;
{*******************************************************************************
Function: HpIsBelowX
Made by : Laurenssie0
Calculates how much HP percents you have left. -Random 20% for safety.
*******************************************************************************}
Function HpIsBelowX(Percent:integer):boolean;
Begin
Result:=HPPercent < Percent-Random(20);;
end;
{*******************************************************************************
Procedure: SetRunningMode
Made by : Laurenssie0 / SRL Developers
Sets the running mode on if your running energy is more than 30%.
*******************************************************************************}
Procedure SetRunningMode(BooleanX:Boolean);
Var
S:Integer;
ColorSign:String;
Begin
S := GetMMLevels('run', ColorSign);
If (S > 30) Or HPIsBelowX(Players[CurrentPlayer].Integers[2]) then SetRun(True) else SetRun(False);
End;
{*******************************************************************************
Procedure: IncreaseTotals
Made by : Laurenssie0
Increases the amounts of killed monks
*******************************************************************************}
Procedure Increase;
Begin
Inc(TotMonksSlain);
end;
{*******************************************************************************
Function: AtMonastery
Made by : Laurenssie0
Returns true if you are at the monastery. Wheter if it founds the DTM or the water symbol
*******************************************************************************}
Function AreYouAtMonastery:Boolean;
Var
Monastery:integer;
Begin
if Not LoggedIn Then Exit;
Monastery := DTMFromString('78DA6394636060906740012C8C8C609A11CA6' +
'7B40712ACA86ABE7CFA82AAC60E48D81150C389A9262B2311550D' +
'079060C36F0E005E900B24');
Result:=DTMRotated(Monastery, X, Y, MMX1, MMY1, MMX2, MMY2);
FreeDTM(Monastery);
If Not Result then
begin
DetDebug('Not At The Monastery');
Result:=FindSymbol(x, y, 'Water');
If Result Then DetDebug('Could Not Find DTM, but found water symbol.');
DetDebug('We are at the monastery.');
End Else
DetDebug('At monastery');
End;
{*******************************************************************************
Procedure: ToMonasterySection
Made by : Laurenssie0
Goes to a different corner of the monastery.
*******************************************************************************}
Function ToMonasterySection(Which:string):Boolean;
Var
DTM:integer;
Begin
if Not LoggedIn Then Exit;
SetRunningMode(True);
Case LowerCase(Which) of
'middle' : DTM := DTMFromString('78DA636467606000612490959108A619A17C4' +
'63E060C60E56A82A98617558DB1163FAA1A10838F805D2006337E' +
'3500AE42050D');
'upper left' : DTM := DTMFromString('78DA63E462606060674001591989609A11CA6' +
'71444E24081A59B0EAA1A0120C185AAC6588B1F550D3390E02660' +
'17480D337E3500AE6E050C');
'lower left' : DTM := DTMFromString('78DA63646760606063400161324C609A11CA6' +
'7E40312DCA86A6C9DB530D530A1AAC9CA484455C348841A064CBB' +
'EC1D1551D400006D410474');
End;
Result:=DTMRotated(DTM, X, Y, MMX1, MMY1, MMX2, MMY2);
if Not Result then Result:=FindSymbol(X, Y, 'Water');
If Not Result then DetDebug('Location = Not At The Monastery') Else DetDebug('Location = Monastery At The '+Which);
If Which='Upper Left' then X:= X - 2;
If Which='Upper Left' then Y:= Y + 2;
If Which='Lower Left' then Y:= Y + 2;
If Result Then
Begin
Mouse(X, Y, 0, 0,True);
FFlag(20);
End;
If Result then Players[CurrentPlayer].Loc:= Which;
SetRunningMode(False);
FreeDTM(DTM);
End;
{*******************************************************************************
Procedure: RotateCompass
Made by : PvH, modified by me :)
Rotates the compass, used in antiban..
*******************************************************************************}
procedure RotateCompass;
begin
if not LoggedIn then Exit;
case random(9) of
0: MakeCompass(IntToStr(Random(250)));
1: MakeCompass(IntToStr(Random(174)));
2: MakeCompass(IntToStr(90+random(220)));
3: MakeCompass('W');
4: MakeCompass('E');
5: MakeCompass('N');
6: MakeCompass('S');
7: Setangle(true);
8: Setangle(false);
end;
MakeCompass('N');
Setangle(false);
end;
{*******************************************************************************
Procedure: AntiBanMe
Made by : Laurenssie0 / SRL Developers
Doesn't get you banned
*******************************************************************************}
Procedure AntiBanMe;
Var
B: Integer;
Begin
If Not LoggedIn Then Exit;
B := Random(AntiBanAmount);
Case B Of
0: HoverSkill('random', False);
1: HoverSkill('random', False);
2: HoverSkill('strength', False);
3: PickUpMouse;
4: MMouse(Random(MSX2), Random(MSY2), 3, 3);
5: TypeSend('str lvl??');
End;
GameTab(4);
End;
{*******************************************************************************
Procedure: OtherPlace
Made by : Laurenssie0
Walks to another side of the Monastery.
*******************************************************************************}
Procedure OtherPlace(Opposite:Boolean);
begin
If Opposite Then
Begin
Case LowerCase(Players[CurrentPlayer].Loc) of
'middle':Case Random(3) of
0: ToMonasterySection('Upper Left');
1: ToMonasterySection('Upper Left');
2: ToMonasterySection('Lower Left');
3: ToMonasterySection('Lower Left');
end;
'upper left':Case Random(2) of
0:ToMonasterySection('Middle');
1:ToMonasterySection('Lower Left');
2:ToMonasterySection('Middle');
End;
'lower left':Case Random(2) of
0:ToMonasterySection('Middle');
1:ToMonasterySection('Upper Left');
2:ToMonasterySection('Middle');
End;
End;
End else
Begin
Case LowerCase(Players[CurrentPlayer].Loc) of
'middle':Case Random(3) of
0: ToMonasterySection('Upper Left');
1: ToMonasterySection('Upper Left');
2: ToMonasterySection('Lower Left');
3: ToMonasterySection('Lower Left');
end;
'lower left':Case Random(4) of
0:ToMonasterySection('Upper Left');
1:ToMonasterySection('Upper Left');
2:ToMonasterySection('Middle');
3:ToMonasterySection('Middle');
End;
'upper left':Case Random(3) of
0:ToMonasterySection('Lower Left');
1:ToMonasterySection('Lower Left');
2:ToMonasterySection('Middle');
End;
End;
End;
If Not Lower And Upper Then Logout;
End;
{*******************************************************************************
Procedure: FindMonk
Made by : Laurenssie0
Finds monks by using TPA.
Notes : Thanks TPA tutorial writers!
*******************************************************************************}
Function GimmeMonk:Boolean;
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, MSY1, MSX2, MSY2, 10); Monk:= TPAtoATPAEx(MonkTPA, 17, 18);
H:=High(Monk);
For I := 0 To H Do
Begin
MiddleTPAEx(Monk[i], X, Y); DetDebug('Took '+ IntToStr(GetSystemTime - Timer) +' MiliSecs To Find The Monk.'); If Not InFight Then If Not FindColorSpiralTolerance(Hx,HY,255,X-30,Y-30,X+30,Y+30,15) And Not FindColorSpiralTolerance(Hx,HY,65280,X-30,Y-30,X+30,Y+30,15) Then
Begin
MMouse(X, Y, 3, 3);
Wait(30+random(10));
Result:=WhatsTheUpText('onk');
If Result Then Break;
If Not Result Then Wait(1000 + Random(500));
End;
End;
If Not result Then DetDebug('Monk Not Found.');
If Not result Then OtherPlace(False);
ColorToleranceSpeed(CTS);
MouseSpeed:=15;
End;
{*******************************************************************************
Procedure: HandleHeal
Made by : PvH given to me via MSN :) Thanks for the tips and corrections!
Handles the healing process.
*******************************************************************************}
procedure HandleHeal;
var
Failsafe:integer;
begin
if not LoggedIn then exit;
marktime(FailSafe);
repeat
wait(3000+random(2000));
if not ClickContinue(True,True) then break;
if TimeFromMark(Failsafe) > 100000 then break;
until(false)
end;
{*******************************************************************************
Procedure: Heal
Made by : Laurenssie0
Heals at the monks.
*******************************************************************************}
Procedure HealMeh;
Var
MaxTime:integer;
Begin
if Not LoggedIn Then Exit;
If Players[CurrentPlayer].Booleans[0]Then
Begin
OtherPlace(True);
Repeat
If GimmeMonk 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
HandleHeal;
end;
end;
end;
FindNormalRandoms;
If InFight then OtherPlace(True);
Until Not HpIsBelowX(99);
End;
End;
{*******************************************************************************
Function: FightMonk
Made by : Laurenssie0
Guess what it does? Yes, it fights monks.
*******************************************************************************}
Function FightTehMonk:Boolean;
Var
MaxTime:integer;
Begin
if Not LoggedIn Then Exit;
MarkTime(MaxTime);
Repeat
if GimmeMonk Then
Begin
Case Random(2) of
0:Begin
Mouse(X,Y,0,0,False);
LaurensWait(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)
ClicktoContinue;
End;
{*******************************************************************************
Procedure: KillMonk
Made by : Laurenssie0
...
*******************************************************************************}
Procedure KillMonk;
Var
MaxTime:integer;
Begin
If Not LoggedIn Then Exit;
If HPIsBelowX(Players[CurrentPlayer].Integers[2]) then HealMeh;
FindNormalRandoms;
If FightTehMonk Then
Begin
Wait(3750+Random(1250));
MarkTime(MaxTime);
Repeat
FindNormalRandoms;
Until (InFight)or(TimeFromMark(MaxTime)>10000);
MarkTime(MaxTime);
Repeat
Wait(100);
FindNormalRandoms;
Until (Not InFight) or HpIsBelowX(Players[CurrentPlayer].Integers[2]) or (TimeFromMark(MaxTime)>Players[CurrentPlayer].Integers[1]*1000)
If Not LoggedIn Then Exit;
If Not InFight then Increase;
If HpIsBelowX(Players[CurrentPlayer].Integers[2]) then HealMeh;
If Not InvFull Then
FindNormalRandoms;
End;
End;
{*******************************************************************************
Procedure: SetVariables
Made by : Laurenssie0
Sets the variables to let the script run good
*******************************************************************************}
Procedure SetVariables;
var
F: Integer;
begin
for F := 0 to HowManyPlayers - 1 do
begin
Players[F].Loc := 'Middle';
Players[F].Active := True;
end;
end;
{*******************************************************************************
Procedure: SetupPlayer
Made by : Laurenssie0
Sets up the player by doing:
* Setting monk kill to 0
* Logs in
* Sets highest angle
* Makes compass good so the char won't walk to the outside
* Sets fight mode
* Walks to a random section.
*******************************************************************************}
Procedure SetUpMyPlayerz;
Begin
MonksSlain:=0;
Wait(1000);
LoginPlayer;
Wait(1000 + Random(500));
SetAngle(True);
MakeCompass('W');
wait(1000 + Random(500));
MakeCompass('N');
FindNormalRandoms;
GameTab(1);
Case LowerCase(Players[CurrentPlayer].Strings[1]) of
'attack': SetFightMode(1);
'strength':SetFightMode(2);
'spreaded':SetFightMode(3);
'defensive':SetFightMode(4);
End;
GameTab(4);
Case Random(3) of
0:ToMonasterySection('Middle');
1:ToMonasterySection('Upper Left');
2:ToMonasterySection('Lower Left');
End;
End;
{*******************************************************************************
Procedure: SetupClient
Made by : Laurenssie0
Makes the client ready to auto by setting the vars, declaring the players and activate the client.
*******************************************************************************}
Procedure SetUpMyClient;
Begin
SetVariables;
DeclarePlayers;
ActivateClient;
SetVariables;
End;
{*******************************************************************************
Function: AllFalse
Made by : Unknown...
Returns true if all players are false.
*******************************************************************************}
Function AllFalse: Boolean;
Var
I: Integer;
Begin
For I := 0 To High(Players) Do
If Players[CurrentPlayer].Active Then
Exit;
Result := True;
End;
{*******************************************************************************
Procedure: SwitchChars
Made by : laurenssie0
Switches the characters...
***********************8*******************************************************}
Procedure SwitchChars(States:Boolean);
Begin
If ALLFalse Then
Begin
Writeln('ALL Players Are False, Thanks For Using My Script!');
TerminateScript;
End;
If States Then
Begin
DetDebug('Yepee, we''ve slain enough monks to make your happy :)');
LogOut;
NextPlayer(True);
SetUpMyPlayerz;
End Else
Begin
DetDebug('Next player is false, little error here :) Fixing..')
Logout;
NextPlayer(False);
SetUpMyPlayerz;
End;
End;
{*******************************************************************************
Procedure: GlobalProggy
Made by : Laurenssie0
Makes a proggy in the debug-canvas window and in the debug below here.
*******************************************************************************}
Procedure ProgressReport;
Var
F:integer;
Begin
Writeln('=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-');
Writeln('Monk Killer and Healer by laurenssie0');
Writeln('=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-');
Writeln('Monks powned:= '+ IntToStr(TotMonksSlain));
Writeln('In: '+ TimeRunning);
Writeln('-=-=-Player-specific report-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-');
Writeln('Nickname -=- Number of Monks slain ritually');
For F:=0 To HowManyPlayers - 1 Do
Begin
Writeln(+Players[F].Name+' -=- '+IntToStr(Players[F].Integers[4]));
end;
Writeln('=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-');
End;
{/ \}
{\ Main execution here /}
{/ \}
Procedure Execution;
begin
ClearDebug;
SetUpSRL;
ProgressReport;
SetUpMyClient;
SetUpMyPlayerz;
DeleteDebugline(1);
Repeat
SetUpMyPlayerz;
MarkTime(TimeForPlayer);
Repeat
ClearDebug;
If Not Loggedin Then Break;
KillMonk;
AntiBanMe;
ProgressReport;
Until
{No standards, to keep it all visible and clear (for me}
(Not LoggedIn)or ( MonksKilled >= (Players[Currentplayer].Integers[0]))or
(TimeFromMark(MaxPlayerTime)>Players[Currentplayer].Integers[2]*60000+Random(10000));
If (MonksKilled> (Players[Currentplayer].Integers[0]))
or (TimeFromMark(MaxPlayerTime)>Players[Currentplayer].Integers[2]*60000) Then SwitchChars(True);
If Not LoggedIn Or Not ( MonksKilled >= (Players[Currentplayer].Integers[0]))
or (TimeFromMark(MaxPlayerTime)>Players[Currentplayer].Integers[2]*60000) Then SwitchChars(False);
{End of no standards}
ProgressReport;
Until(AllFalse);
If AllFalse Then Writeln('All your chars are Falsee! Terminating,,');
If AllFalse Then TerminateScript;
End;
begin
Execution;
Writeln('Completed! Run again..');
end.
——————————————————
<!– END TEMPLATE: formanswers –>