marpis
2009-03-05 11:08:17
<!– BEGIN TEMPLATE: formanswers –>
marpis - SRL Member Application Form
marpis
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
HTML
Other Communitys
muusikoiden.net (finnish musicians), nothing useful rly
How Long have You Played Runescape
in my life, maybe 4 years? i started again last fall (2008)
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Well, i didn't get in last time so now i try again with a better script :)
I am 18 years old, Finnish, and programming is pretty much everything i do when im at my computer. What to say? Im mature, quick learner, i like to help others.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
I know, it doesn't have radialwalk. But honestly its the easiest thing. dunno why its so essential. I can make a walker script if needed ^^
——————————————————
<!– END TEMPLATE: formanswers –>
marpis - SRL Member Application Form
marpis
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
HTML
Other Communitys
muusikoiden.net (finnish musicians), nothing useful rly
How Long have You Played Runescape
in my life, maybe 4 years? i started again last fall (2008)
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Well, i didn't get in last time so now i try again with a better script :)
I am 18 years old, Finnish, and programming is pretty much everything i do when im at my computer. What to say? Im mature, quick learner, i like to help others.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
I know, it doesn't have radialwalk. But honestly its the easiest thing. dunno why its so essential. I can make a walker script if needed ^^
program ChopAndBurn;
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/WoodCutting.scar}
const
{ Chop&Burn - Woodcutter & Firemaker - by marpis.
( version: 3.1 )
Contact me on forums via private message.
You can use my functions and/or procedures, BUT REMEMBER TO CREDIT!
Feel free to edit this script.
DO NOT USE WITHOUT POSTING A PROGGY OR ERROR RAPORT TO THIS THREAD:
....
Note that Specific report is not 100% accurate!
__________________________________
} // I M P O R T A N T \\
// {}=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-={}
// {} {}
// {} Remember to have the {}
// {} TINDERBOX IN THE 1st INV SLOT {}
// {} if you are burning the logs {}
// {} {}
// {}=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-={}
// SRL-Stats
YourSrlID = '';
YourSrlPW = '';
// Script Setup
breakafterminutes = 45; //take a 15-minute break every x minutes
//////////////////DECLARE PLAYERS////////////////
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
numberOfPlayers(howManyPlayers);
CurrentPlayer := 0;
// Max wood to burn/drop is 999.
Players[0].Name := ''; //username
Players[0].Pass := ''; //password
Players[0].Nick := ''; //3-4 letters from your username
Players[0].integers[0]:= 2; //How many loads to do before switching players?
Players[0].integers[1]:= 999; //How many logs you want to burn/drop
Players[0].strings[1]:='N'; //Direction to flee a fight
Players[0].booleans[1]:= true; //Burn logs? if false, drop logs
Players[0].Active := true;
{
Players[1].Name := ''; //username
Players[1].Pass := ''; //password
Players[1].Nick := ''; //3-4 letters from your username
Players[1].integers[0]:= 2; //How many loads to do before switching players
Players[1].integers[1]:= 999; //How many logs you want to burn/drop
Players[1].strings[1]:='N'; //Direction to flee a fight
Players[1].booleans[1]:= true; //Burn logs? if false, drop logs
Players[1].Active := True;
{
Players[2].Name := ''; //username
Players[2].Pass := ''; //password
Players[2].Nick := ''; //3-4 letters from your username
Players[2].integers[0]:= 2; //How many loads to do before switching players
Players[2].integers[1]:= 999; //How many logs you want to burn/drop
Players[2].strings[1]:='N'; //Direction to flee a fight
Players[2].booleans[1]:= true; //Burn logs? if false, drop logs
Players[2].Active := true;
{
Players[3].Name := ''; //username
Players[3].Pass := ''; //password
Players[3].Nick := ''; //3-4 letters from your username
Players[3].integers[0]:= 2; //How many loads to do before switching players
Players[3].integers[1]:= 100; //How many logs you want to burn/drop
Players[3].strings[1]:='N' //Direction to flee a fight
Players[3].booleans[1]:= true; //Burn logs? if false, drop logs
Players[3].Active := true;
{
Players[4].Name := ''; //username
Players[4].Pass := ''; //password
Players[4].Nick := ''; //3-4 letters from your username
Players[4].integers[0]:= 2; //How many loads to do before switching players
Players[4].integers[1]:= 100; //How many logs you want to burn/drop
Players[4].strings[1]:='N' //Direction to flee a fight
Players[4].booleans[1]:= true; //Burn logs? if false, drop logs
Players[4].Active := True;
}
end;
////////////////////VARIABLES/////////////////////
// players[x].integers[2] = How many loads player has done
// players[x].integers[3] = How many logs player has burned/dropped
var
regularlog, timemark, x, y, x3, y3, failed, i2, i, timefromclickinglog, MajorMark, cmark, BurnTries : integer;
TreesToChop, LogsToBurn : Array of string;
didweburn : boolean;
////////////////////////////////////////////////
/////////////////////////////SETUP PLAYER//////
Procedure Setupplayer;
var
CurrentExp: integer;
begin
writeln('Waiting RS to load.');
wait(1000);
repeat
wait(1000);
until(GetColor(MSCX, MSCY) <> 0);
wait(2000);
{-----------------------}
if (players[currentplayer].booleans[1] = true) then
begin
CurrentExp := GetXP('firemaking');
case CurrentExp of
-1..2411: LogsToBurn := ['Logs'];
2412..13362: LogsToBurn := ['Logs','Oak'];
13363..273742: LogsToBurn := ['Logs', 'Oak', 'Willow'];
273742..999999999: LogsToBurn := ['Logs','Oak','Willow','Yew'];
end;
i := GetArrayLength(LogsToBurn);
case i of
0: begin
writeln('SOMETHINGS WRONG! Terminating...');
terminatescript;
end;
1: writeln('* Logs to burn: Regular logs');
2: writeln('* Logs to burn: Regular logs, Oak logs');
3: writeln('* Logs to burn: Regular logs, Oak logs, Willow logs');
4: writeln('* Logs to burn: Regular logs, Oak logs, Yew logs');
end;
end else writeln('* All logs will be dropped');
{-----------------------}
CurrentExp := GetXP('woodcutting');
case CurrentExp of
-1..2411: TreesToChop := ['Tree'];
2412..13362: TreesToChop := ['Tree','Oak'];
13363..273742: TreesToChop := ['Tree','Oak','Willow'];
273742..999999999: TreesToChop := ['Tree','Oak','Yew','Willow'];
end;
i := GetArrayLength(TreesToChop);
case i of
0: begin
writeln('SOMETHINGS WRONG! Terminating...');
terminatescript;
end;
1: writeln('* Trees to chop: Regular Trees.');
2: writeln('* Trees to chop: Regular Trees, Oaks');
3: writeln('* Trees to chop: Regular Trees, Oaks, Willows');
4: writeln('* Trees to chop: Regular Trees, Oaks, Willows, Yews');
end;
{-----------------------}
failed := 0;
SetAngle(true);
wait(50);
KeyDown(VK_DOWN);
wait(700+random(30));
KeyUp(VK_DOWN);
if not FindColorTolerance(x, y, 1123377, 60, 480, 115, 500, 10) then Mouse(90, 490, 25, 10, true);
wait(500+random(200));
GameTab(4);
end;
//////////////////////////////////////
///////////InCloseCombat by EvilChicken
function InCloseCombat: Boolean;
var
G, R: TPointArray;
begin
FindColorsTolerance(G, 65280, 203, 85, 300, 172, 0);
FindColorsTolerance(R, 255, 203, 85, 300, 172, 0);
Result := High(CombineTPA(G, R)) > 10;
end;
////////////////////////////////////////////////
function FindTinderbox : boolean;
var
x2, y2, tbox: integer;
Box: TBox;
begin
tbox := DTMFromString('78DA8DD2BD0A80300C04E014F1B5D541B05A5' +
'48ABF8388FAA27ABA4851B86448960F42C2191F8958236119899F' +
'2E72A24C03537ECDDB312D8C232683698949603A8599894961166' +
'272989D9812E620E6FECF464C07B312332BEE9A6006C52E4FCC08' +
'5313D3FF6723305E615A457E1C4C454CC13376012D6C1AE8');
Box:= InvBox(1);
case FindDtm(tbox, x2, y2, Box.x1, Box.y1, Box.x2, Box.y2) of
true: Result := true;
false: begin
GameTab(4);
wait(200+random(100));
result := FindDtm(tbox, x2, y2, Box.x1-5, Box.y1-5, Box.x2+5, Box.y2+5);
end;
end;
FreeDtm(tbox);
end;
///////////////////////////////////////////////
procedure AntiRandom;
begin
if not loggedin then exit;
findnormalrandoms;
if InCloseCombat then
runaway(Players[currentplayer].strings[1], true, 1, 30000+random(5000));
end;
////////////////////////////////////////////////
///////////////////////RAPORT///////////////////
procedure Raport;
var timetobreak, i : integer;
begin
ClearDebug;
timetobreak := breakafterminutes - ( TimeFromMark(timemark) / 1000 /60 );
writeln('*****************************************************************');
for i := 0 to HowManyPlayers-1 do
begin
if ( CurrentPlayer = i ) then
begin
writeln('| '+padr(Players[i].Nick, 4)+' : '+padr(intToStr(players[i].integers[3]), 3)+' logs of '+padr(IntToStr(Players[i].Integers[1]), 3)+' | Active: '+padr(booltostr(Players[i].Active), 5)+' | !CURRENTLY PLAYING! |');
end else
begin
writeln('| '+padr(Players[i].Nick, 4)+' : '+padr(intToStr(players[i].integers[3]), 3)+' logs of '+padr(IntToStr(Players[i].Integers[1]), 3)+' | Active: '+padr(booltostr(Players[i].Active), 5)+' | '+padr(players[i].Loc, 22)+'|');
end;
end;
writeln('*****************************************************************');
writeln(padr('| Script worked for '+TimeRunning, 65)+'|');
writeln('*****************************************************************');
writeln('| Script by: marpis |');
writeln('*****************************************************************');
SrlRandomsReport;
ClearReport;
AddToReport('Specific Report');
for i:= 0 to HowManyPlayers-1 do
begin
AddToReport(''+Capitalize(players[i].name));
AddToReport(' [ Trees: '+padl(IntToStr(players[i].integers[5]), 7)+' ]');
AddToReport(' [ Oaks: '+padl(IntToStr(players[i].integers[6]), 8)+' ]');
AddToReport(' [ Willows: '+padl(IntToStr(players[i].integers[4]), 5)+' ]');
AddToReport(' [ Yews: '+padl(IntToStr(players[i].integers[7]), 8)+' ]');
AddToReport(' Xp Gained: '+floattostr(players[i].integers[5]*25 + players[i].integers[6]*37.5 + players[i].integers[4]*67.5 + players[i].integers[7]*175));
AddToReport('');
end;
end;
//////////////////////////////////////////////////
Procedure ScriptTerminate;
begin
// Raport;
FreeDTM(regularlog);
end;
/////////////////////////////////////////////////
//////////////////////HAVE A BREAK //////////////
procedure HaveABreak;
var time: integer;
begin
status('sleeping');
if loggedin then logout;
writeln('having a few minutes break (14min + random 2min)');
time:=1000*60*14+random(1000*60*2);
repeat
Disguise('Break remaining: '+inttostr(time / 60000)+' min');
time:= time - 1000;
wait(1000);
until(time < 1000);
writeln('ok then, lets continue!');
Disguise('runescape.com');
loginplayer;
end;
/////////////////////////////////
function AxeBroken : boolean;
begin
result := FindBlackChatMessage('ou do not');
end;
///////////////////////////////////////////////
function EndMainloop : boolean;
var q: integer;
begin
Result := False;
for q := 0 to 6 do
begin
case q of
0: Result := AxeBroken;
2: Result := failed > 6;
3: Result := (players[currentplayer].integers[2] >= players[currentplayer].integers[0]) and (players[currentplayer].integers[3] > 0);
4: Result := LoggedIn = false;
5: Result := players[currentplayer].integers[3] >= players[currentplayer].integers[1];
6: Result := BurnTries > 6;
end;
if Result then
begin
players[currentplayer].integers[2]:= 0;//set loads to 0
case q of
0:begin
players[currentplayer].Loc:= 'All axes broken';
NextPlayer(false);
end;
2:begin
players[currentplayer].Loc:= 'Couldnt find a tree';
NextPlayer(false);
end;
3:NextPlayer(true);
4:begin
players[currentplayer].Loc:= 'Player logged out';
NextPlayer(false);
end;
5:begin
players[currentplayer].Loc:= 'Player done!';
NextPlayer(false);
end;
6:begin
players[currentplayer].loc:= 'Lost while burning';
Burntries := 0;
NextPlayer(false);
end;
end;
Raport;
wait(100);
SetupPlayer;
exit;
end;
end;
end;
////////////////LOAD DTMS//////////////////////
Procedure LoadDTM;
begin
RegularLog := DTMFromString('78DA8DCFC10A82601004E0FD839E280F295E2' +
'C24440D7D7C43093C58A2113E410E5E049166E6307BF958769D7F' +
'30AB6D1367C7A5CD7E888BF6CDDA9857C1C4300F626E301531A96' +
'0329886981CE62998969812E625989E98026620E60E331293C07C' +
'88B9C07C89096126620261CF59B8C713FE3AC1BC05D3FD37330C9' +
'21CC0');
end;
////////////////////////////////////////////////
//////////////////////DO RANDOM STUFF///////////
procedure DoRandomStuff;
begin
case(random(13)) of
0: HoverSkill('random', false);
1: begin
wait(100+random(100));
GameTab(1 +random(7));
wait(100+random(100));
GameTab(4);
end;
2: RandomMovement;
3,4: SleepAndMoveMouse(1000+random(3500));
5,6,7: if FindColorTolerance(x, y, 7556434, 120, 480, 170, 500, 10) then
begin
Mouse(150, 490, 22, 8, true);
SleepAndMoveMouse(2500+random(1000));
FindMod;
Mouse(90, 490, 22, 8, true);
end;
8,9: PickupMouse;
end;
GameTab(4);
end;
///////////////////////////////////////////////
////////////////////AVOID FIRE/////////////////
Procedure AvoidFire;
begin
status('Moving from fire...');
case random(4) of
0:Mouse(MMCX, MMCY+8, 2, 2, TRUE);
1:Mouse(MMCX+8, MMCY, 2, 2, TRUE);
2:Mouse(MMCX, MMCY-8, 2, 2, TRUE);
3:Mouse(MMCX-8, MMCY, 2, 2, TRUE);
end;
While FlagPresent do AntiRandom;
end;
function StandOnFire: boolean;
var c1, c2, c3: tpointarray;
begin
FindColorsTolerance(c1, 1734844, 207, 172, 282, 212, 35);
FindColorsTolerance(c2, 2128827, 207, 172, 282, 212, 35);
FindColorsTolerance(c3, 2339567, 207, 172, 282, 212, 35);
Result:= High(CombineTPA(CombineTPA(c1, c2), c3))>10;
end;
////////////////////////////////////////////////
//////////////////////Stop burning/////////////
function StopBurning: Boolean;
var q: integer;
begin
Result := False;
if not LoggedIn then exit;
for q := 0 to 5 do
begin
case q of
0: Result := timefrommark(TimeFromClickingLog) > 15000;
1: Result := FindChatBoxText('he fire catches', 8, 0);
2: Result := FindChatBoxText('ou can', 8, 0);
3: Result := FindText(x, y, 'Congratulation', NPCChars, MCX1, MCY1, MCX2, MCY2);
4: Result := InCloseCombat;
5: Result := FindNormalRandoms;
end;
if Result then
begin
status('Logs burned!');
exit;
end;
end;
end;
/////////////////////////////////////////////
function Burn: boolean;
begin
if not FindDTM(RegularLog, x, y, MIX1, MIY1, MIX2, MIY2) then
didweburn := true;
if not FindTinderbox then
begin
players[currentplayer].booleans[1] := false;
writeln('TinderBox not found: Player will drop logs');
exit;
end;
MMouse(x, y, 2, 2);
wait(200+random(50));
If IsUpTextMultiCustom(LogsToBurn) then
begin
case copy(GetUpText, 5, 3) of
'Wil': Inc(players[CurrentPlayer].integers[4]);
'Log': Inc(players[CurrentPlayer].integers[5]);
'Oak': Inc(players[CurrentPlayer].integers[6]);
'Yew': Inc(players[CurrentPlayer].integers[7]);
end;
GetMousePos(x, y);
Mouse(x, y, 0, 0, true);
wait(200+random(50));
MouseItem(1, true);
Ftwait(3);
MarkTime(TimeFromClickingLog);
status('Burning logs...');
repeat
AntiRandom
wait(10);
until(StopBurning);
if FindChatBoxText('he fire', 8, 0) or FindText(x, y, 'Congratulation', NPCChars, MCX1, MCY1, MCX2, MCY2) then
begin
Result := true;
Inc(players[currentplayer].integers[3]);
ReportVars[0] := ReportVars[0] + 1;
exit;
end;
if FindChatBoxText('ou can', 8, 0) then
Result := false;
end else
begin
status('Dropping logs...');
GetMousePos(x, y);
wait(100+random(50));
case copy(GetUpText, 5, 3) of
'Wil': Inc(players[CurrentPlayer].integers[4]);
'Log': Inc(players[CurrentPlayer].integers[5]);
'Oak': Inc(players[CurrentPlayer].integers[6]);
'Yew': Inc(players[CurrentPlayer].integers[7]);
end;
Mouse(x, y, 0, 0, false);
wait(200+random(50));
Result := ChooseOption('Drop');
wait(1200+random(100));
Inc(players[currentplayer].integers[3]);
ReportVars[0] := ReportVars[0] + 1;
end;
end;
////////////////////////////////////////////////
///////////////////////BURN WOOD///////////////
procedure BurnDrop;
begin
if not loggedin then exit;
if not InvFull then exit;
GameTab(4);
AntiRandom;
FixChat;
repeat
if FindDTM(RegularLog, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
if StandOnFire then avoidfire;
case players[currentplayer].booleans[1] of
true:
begin
repeat
if Burn then
begin
didweburn := true;
BurnTries := 0;
end else
begin
didweburn := false;
avoidfire;
Inc(burntries);
writeln('Firemaking failed: '+inttostr(burntries));
end;
until(didweburn or (BurnTries > 6));
end;
false:
begin
MMouse(x, y, 2, 2);
wait(300+random(100));
case copy(GetUpText, 5, 3) of
'Wil': Inc(players[CurrentPlayer].integers[4]);
'Log': Inc(players[CurrentPlayer].integers[5]);
'Oak': Inc(players[CurrentPlayer].integers[6]);
'Yew': Inc(players[CurrentPlayer].integers[7]);
end;
GetMousePos(x, y);
Mouse(x, y, 0, 0, false);
wait(200+random(50));
status('Dropping logs...');
ChooseOption('Drop');
Inc(players[currentplayer].integers[3]);
ReportVars[0] := ReportVars[0] + 1;
wait(2000+random(50));
end;
end;
end;
until(not FindDTM(RegularLog, x, y, MIX1, MIY1, MIX2, MIY2) or endmainloop);
Inc(players[CurrentPlayer].integers[2]);
end;
////////////////////////////////////////////////
//////////////FIND TREE///////////////////////////
function FindTree: boolean;
var
i, x, y, mark: integer;
TPA, c1, c2, c3, c4 : TPointArray;
Trees: Array of TPointArray;
begin
Result:= false;
FindColorsSpiralTolerance(MSCX, MSCY, c1, 7254949, MSX1, MSY1, MSX2, MSY2, 5);
FindColorsSpiralTolerance(MSCX, MSCY, c2, 132099, MSX1, MSY1, MSX2, MSY2, 5);
FindColorsSpiralTolerance(MSCX, MSCY, c3, 2706234, MSX1, MSY1, MSX2, MSY2, 5);
FindColorsSpiralTolerance(MSCX, MSCY, c4, 1387555, MSX1, MSY1, MSX2, MSY2, 5);
TPA := CombineTPA(CombineTPA(c1, c2), CombineTPA(c3, c4));
Trees:= SplitTPA(TPA, 5);
if (GetArrayLength(Trees) < 1) then
exit;
MarkTime(mark);
for i:= 0 to high(Trees) do
begin
if (TimeFromMark(mark) > 3000) then exit;
if MiddleTPAEx(Trees[i], x, y) then
begin
MMouse(x, y, 6, 6);
FTWait(2);
Result:= IsUpTextMultiCustom(TreesToChop);
if result then exit;
end;
end;
end;
////////////////////////////////////////////////
////////////////////////STOP HACKING //////////
function StopHacking: Boolean;
var q : integer;
begin
Result := False;
if not LoggedIn then exit;
for q := 0 to 7 do
begin
case q of
0: Result := AxeBroken;
1: Result := FindEnt(x3, y3, true);
2: Result := TimeFromMark(cmark) > 15000;
3: Result := i2 > i;
4: Result := InCloseCombat;
5: Result := FindNormalRandoms;
6: Result := InvFull;
7: Result := FindText(x, y, 'Guard', NPCChars, MCX1, MCY1, MCX2, MCY2);
end;
if Result then
begin
if q=7 then
RunTo('s', true);
exit;
end;
end;
end;
////////////////////////////////////////////////
///////////////////////////CHOP////////////////
procedure Chop;
var q : integer;
begin
if not loggedin then exit;
AntiRandom;
GetMousePos(x3, y3);
mouse(x3, y3, 2, 2, false);
wait(400+random(100));
if ChooseOption('hop') then
begin
failed := 0;
i := InvCount;
Flag;
wait(1000+random(100));
FindTree;
wait(1000);
status('Chopping...');
MarkTime(cmark);
repeat
wait(10);
i2 := InvCount;
AntiRandom;
until(StopHacking);
end;
AntiRandom;
GameTab(4);
end;
////////////////////////////////////////////////
///////////////////////////LOOK FOR A TREE/////
procedure LookForTree;
begin
repeat
if not loggedin then exit;
AntiRandom;
status('Tree not found!');
Inc(failed);
writeln('failed: '+inttostr(failed));
SetAngle(true);
case random(4) of
0: MakeCompass(IntToStr(60+random(40)));
1: MakeCompass(IntToStr(150+random(40)));
2: MakeCompass(IntToStr(240+random(40)));
3: MakeCompass(IntToStr(330+random(40)));
end;
sleepandmovemouse(3000+random(1000));
until(FindTree or (failed > 6) );
if FindTree then Chop;
SetAngle(true);
KeyDown(VK_DOWN);
wait(700+random(30));
KeyUp(VK_DOWN);
GameTab(4);
end;
procedure Signature;
begin
ClearDebug;
writeln(' __ __ _');
writeln(' / |_ _ _ | )| || )|\ |');
writeln(' \__ | ||_||_| & |_ )|_|| \| \|');
writeln(' |');
wait(2000);
ReplaceDebugline(3, ' | b');
wait(100);
ReplaceDebugline(3, ' | by ');
wait(100);
ReplaceDebugline(3, ' | by: ');
wait(100);
ReplaceDebugline(3, ' | by: m');
wait(100);
ReplaceDebugline(3, ' | by: ma');
wait(100);
ReplaceDebugline(3, ' | by: mar');
wait(100);
ReplaceDebugline(3, ' | by: marp');
wait(100);
ReplaceDebugline(3, ' | by: marpi');
wait(100);
ReplaceDebugline(3, ' | by: marpis');
writeln('');
wait(2000);
end;
////////////////////////////////////////////////
//////////////////////MAIN EXECUTION///////////
begin
Signature;
SetupSrl;
if (YourSrlID <> '') then SRLID := YourSrlID;
if (YourSrlPW <> '') then SRLPassword := YourSrlPW;
DeclarePlayers;
Disguise('runescape.com');
ScriptID := '1163';
LoadDTM;
ActivateClient;
if not loggedin then loginplayer;
SetupPlayer;
repeat
MarkTime(MajorMark);
repeat
if InvFull then
begin
BurnDrop;
Raport;
end;
repeat
DoRandomStuff;
if FindTree then Chop
else LookForTree;
until(InvFull or endmainloop);
BurnDrop;
Raport;
if endmainloop then writeln('~ STARTING WITH NEW PLAYER! ~');
until(TimeFromMark(MajorMark) >= 1000*60*breakafterminutes);
HaveABreak;
until(AllPlayersInactive);
TerminateScript;
end.
——————————————————
<!– END TEMPLATE: formanswers –>