Bramble
2006-12-05 19:17:32
bramble - SRL Member Application Form
bramble
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
Programming Knowledge
PHP
Other Communitys
moparisthebest.com
How Long have You Played Runescape
since rsc started
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Well, I'am 20 years old, I do not play Runescape. I do however like making Scar scripts for it. I feel like i can bring new and fresh ideas for doing things to make SRL better, although i am almost a beginner to Scar scripting. I like to think that I have a pretty good knowledge on how to script as I know PHP very well.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
Updated my script, now v.08
——————————————————
bramble
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
Programming Knowledge
PHP
Other Communitys
moparisthebest.com
How Long have You Played Runescape
since rsc started
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Well, I'am 20 years old, I do not play Runescape. I do however like making Scar scripts for it. I feel like i can bring new and fresh ideas for doing things to make SRL better, although i am almost a beginner to Scar scripting. I like to think that I have a pretty good knowledge on how to script as I know PHP very well.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
Updated my script, now v.08
//////////////////////////////////////////////////////////////////
// ____ __ ___ //
// /\ _`\ /\ \ /\_ \ //
// \ \ \L\ \ _ __ __ ___ ___\ \ \____\//\ \ __ //
// \ \ _ <'/\`'__\/'__`\ /' __` __`\ \ '__`\ \ \ \ /'__`\ //
// \ \ \L\ \ \ \//\ \L\.\_/\ \/\ \/\ \ \ \L\ \ \_\ \_/\ __/ //
// \ \____/\ \_\\ \__/.\_\ \_\ \_\ \_\ \_,__/ /\____\ \____\ //
// \/___/ \/_/ \/__/\/_/\/_/\/_/\/_/\/___/ \/____/\/____/ //
//////////////////////////////////////////////////////////////////
//
//Fally Fish Cooker v.08
//
//People who i would like to thank for helping me on this project so far
//1.Boreas(big help dude)
//2.WT-Fakawi
//3.also starblaster for Highestangle procedure
//
//Setup Instructions:
//1.Be inside falador east bank
//2.Have the item you are cooking in your very first bank slot
//3.setup the variables on lines 93-159
//
//FallyFishCooker V.01
//No Anti-randoms
//No LoopBack (meaning does 1 trip)
//No Progress Report
//
//Update V.02
//Now has simple anti-randoms/loopback/progress report
//
//Update V.03
//Has very good walking routines
//Has better door finding routine
//
//Update V.04
//Now supports all available fish in free world
//Fixed 2nd door click
//
//Update V.05
//Now clicks the skill up messages
//
//Update V.06
//Fixed small bug in first walk procedure
//
//Update V.07
//Full Multi User support added (now it is true multiuser)
//Now its Amount!!! and it doesnt have to be multiples of 28!!!
//
//Update V.08
//New Door Opening process(its awesome)
//Better Progress Report, also added random reporting;
program FallyFishCooker;
{.include srl\srl.scar}
{.include SRL\SRL\Misc\PlayerForm.Scar}
{.include srl/srl/skill/cooking.scar}
var Anchovie,Shrimp,Salmon,Trout,Path,Cooking:integer;
Rando,Martax,Martay,Co,CheckCo,Ax,By:integer;ModChars,ModCharss:Extended;
Check,PersonLogged,Resulty:boolean;Working:string;ModChar:Extended;
CharInCycle,TotalCharDone,TotalChar,Position,TotalCycle:integer;
Herring,Tuna,Lobster,Swordfish,Sardine,Pike,CharAvailable,CycleDone:integer;
TotalAmountLeft,TotalAmountPerChar,CharAmountDone,TotalAmount:integer;
const
Symbol = 'water';
Bank = 'bank';
Procedure FreeDaDTM;
begin
if (cooking = Anchovie) then
FreeDTM(Anchovie);
if (cooking = Shrimp) then
FreeDTM(Shrimp);
if (cooking = Salmon) then
FreeDTM(Salmon);
if (cooking = Trout) then
FreeDTM(Trout);
if (cooking = Tuna) then
FreeDTM(Tuna);
if (cooking = Sardine) then
freedtm(Sardine);
if (cooking = Lobster) then
freedtm(Lobster);
if (cooking = Pike) then
freedtm(pike);
if (cooking = Herring) then
freedtm(Herring);
if (cooking = Swordfish) then
freedtm(Swordfish);
end;
//////////Setup for script begins here/////////////
Procedure setup;
begin
cooking := Shrimp; //What are you cooking?
//ex: Anchovie/Shrimp/Salmon/Trout/Tuna/Lobster
//Swordfish/Herring/Pike/Sardine
TotalAmountPerChar := 83; // How many Fish is on Each Char(Note: if one has
// 100 on him and another has 112, plz even amount
// out or go with lesser number, as going with higher
// causes errors
TotalAmountLeft := 83; // How many total across all characters ex: 5 chars
// with 100 each on them = 500 pretty much amountperchar
// times amount of chars your using
CharAmountDone := 83; // How many fish do you want to cook before logging
// out and logging into next char(Note: this will log
// him back in later if he has more to cook)
HowManyPlayers := 8 // Amount of Characters you will be using
end;
Procedure DeclarePlayers; // remember when doing this, delete the extra chars
begin // you are not using, or add more if needed
Setup;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active :=True;
Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='';
Players[1].Active :=True;
Players[2].Name :='';
Players[2].Pass :='';
Players[2].Nick :='';
Players[2].Active :=True;
Players[3].Name :='';
Players[3].Pass :='';
Players[3].Nick :='';
Players[3].Active :=True;
Players[4].Name :='';
Players[4].Pass :='';
Players[4].Nick :='';
Players[4].Active :=True;
Players[5].Name :='';
Players[5].Pass :='';
Players[5].Nick :='';
Players[5].Active :=True;
Players[6].Name :='';
Players[6].Pass :='';
Players[6].Nick :='';
Players[6].Active :=True;
Players[7].Name :='';
Players[7].Pass :='';
Players[7].Nick :='';
Players[7].Active :=True;
end;
///////////////////Setup end.//////////////////////
Procedure LoadDTM;
begin
Anchovie := DTMFromString('78DA632C64626078CA800232329A194480342' +
'394CF580E547317554D71F10454354540356F51D5F4F46E425593' +
'0154F398805D5540358F18D000238A1A00484D0D11');
Shrimp := DTMFromString('78DA63B467626078CA8002E677D533C801694' +
'620FE0F048C364035F718D000231209A46D816ADE1050E30F54F3' +
'9A801A3FA09ADBF8D50000BF070BA5');
Salmon := DTMFromString('78DA639CCDC4C0F08C0105CC4E0E671001D28' +
'C503EE30CA09A57A86A0ED7E6A3AA590854F31455CDFEAA1C5435' +
'73806A1EA1AA4977B242510300BD7E0BF4');
Trout := DTMFromString('78DA632C626260E0616440067B366D621001D' +
'23051C61CA01A7E543547F7ED4355530E54C381AA66DDA245A86A' +
'4076B1A3AAA92C2C4051030009CD0A03');
Herring := DTMFromString('78DA63CC6762603064644006678E1E619004D' +
'220D1FF40C0980654A387AA06220B2381743A508D190135A59876' +
'6155A349404D0D508D367E35008A9D0A4A');
Lobster := DTMFromString('78DA639CC7C4C010C8C8800C2A5CE41844803' +
'448F43F1030F603D584A3AA81C8C248203D19A8C697809A154035' +
'2E04D42C04AA89C5AF0600CA8109A7');
Pike := DTMFromString('78DA633CC6C4C060C0C8800C6A66D73088006' +
'990E87F2060DC8DA906220B2381F401A01A0B026ACE02D5E81250' +
'730AA8461DBF1A0053980A85');
Sardine := DTMFromString('78DA63F4606260D0656440062567CA1824813' +
'448F43F10303A61AA81C8C24820ED0254634C408D2F508D360135' +
'5E40356AF8D500006175082C');
Swordfish := DTMFromString('78DA633CC2C4C0E0CDC8800C9694AD651001D' +
'220D1FF40C0B803A82612550D44164602E96340354E04D49C01AA' +
'0920A0E632508D3F7E3500AEFD0B5B');
Tuna := DTMFromString('78DA63CC636260886464400697CF9E651001D' +
'220D1FF40C0980654138CAA06220B23817406504D2C0135154035' +
'A104D49403D5F8E2570300734A0A71');
setup;
end;
Procedure ColorGet;
begin
LoadDtm;
Position := CycleDone;
if (position = 1) then
finddtmin(x,y,Cooking,558,210,606,248)
else if (position = 2) then
FindDtmin(x,y,Cooking,606,210,647,248)
else if (position = 3) then
FindDtmin(x,y,Cooking,647,210,689,248)
else if (position = 4) then
FindDtmin(x,y,Cooking,689,210,737,248)
else if (position = 5) then
FindDtmin(x,y,Cooking,558,248,606,284)
else if (position = 6) then
FindDtmin(x,y,Cooking,606,248,647,284)
else if (position = 7) then
FindDtmin(x,y,Cooking,647,248,689,284)
else if (position = 8) then
FindDtmin(x,y,Cooking,689,248,737,284)
else if (position = 9) then
FindDtmin(x,y,Cooking,558,284,606,320)
else if (position = 10) then
FindDtmin(x,y,Cooking,606,284,647,320)
else if (position = 11) then
FindDtmin(x,y,Cooking,647,284,689,320)
else if (position = 12) then
FindDtmin(x,y,Cooking,689,284,737,320)
else if (position = 13) then
FindDtmin(x,y,Cooking,558,320,606,356)
else if (position = 14) then
FindDtmin(x,y,Cooking,606,320,647,356)
else if (position = 15) then
FindDtmin(x,y,Cooking,647,320,689,356)
else if (position = 16) then
FindDtmin(x,y,Cooking,689,320,737,356)
else if (position = 17) then
FindDtmin(x,y,Cooking,558,356,606,392)
else if (position = 18) then
FindDtmin(x,y,Cooking,606,356,647,392)
else if (position = 19) then
FindDtmin(x,y,Cooking,647,356,680,392)
else if (position = 20) then
FindDtmin(x,y,Cooking,689,356,737,392)
else if (position = 21) then
FindDtmin(x,y,Cooking,558,392,606,429)
else if (position = 22) then
FindDtmin(x,y,Cooking,606,392,647,429)
else if (position = 23) then
FindDtmin(x,y,Cooking,647,392,680,429)
else if (position = 24) then
FindDtmin(x,y,Cooking,689,392,737,429)
else if (position = 25) then
FindDtmin(x,y,Cooking,558,429,606,465)
else if (position = 26) then
FindDtmin(x,y,Cooking,606,429,647,465)
else if (position = 27) then
FindDtmin(x,y,Cooking,647,429,680,465)
else
begin
FindDtmin(x,y,Cooking,689,429,737,465);
Position := 28;
end;
Co := GetColor(x,y);
Ax := x;
By := y;
FreeDaDTM;
end;
Procedure Anti;
Begin
FindNormalRandoms;
If (Not(LoggedIn)) Then
begin
NextPlayer(false);
CharinCycle := CharInCycle + 1;
CharAvailable := CharAvailable -1;
personlogged := true;
end;
End;
procedure lowestAngle; //based on highestangle by starblaster100
begin
if (Loggedin) then
begin
keydown(40);
sleep(1000 + random(100) + random(200));
keyup(40);
wait(1000 + random(100));
end;
end;
Function MyOpenDoor(Dir:string):boolean;
var doorfound:string;i:integer;CoX:Array[0..8] of integer;
CoY:Array[0..8] of integer;
begin
Cox[0]:=326;
Coy[0]:=151;
Cox[1]:=246;
Coy[1]:=156;
Cox[2]:=186;
Coy[2]:=156;
Cox[3]:=330;
Coy[3]:=155;
Cox[4]:=273;
Coy[4]:=154;
Cox[5]:=219;
Coy[5]:=153;
Cox[6]:=306;
Coy[6]:=158;
Cox[7]:=281;
Coy[7]:=186;
Cox[8]:=217;
Coy[8]:=155;
keydown(40);
wait(1500);
keyup(40);
wait(500+random(+250));
makecompass(dir);
doorfound := 'no';
repeat
if (doorfound = 'no') then
begin
mmouse(Cox[i],Coy[i],3,3);
if (IsUpTextMulti('Door', 'Doo', 'oor') = true) then
begin
if (IsUpTextMulti('Open', 'Op', 'en') = true) or (isuptextmulti('Ope', 'pen', 'Open') = true) then
begin
GetMousePos(x,y);
mouse(x,y,0,0,true);
Doorfound := 'yes';
end;
if (IsUpTextMulti('Close', 'lo', 'se') = true) then
begin
Doorfound := 'yes';
end;
end;
end;
i:= +1;
until (i = 3) or (doorfound = 'yes');
if (doorfound = 'no') then
begin
keydown(38);
wait(200);
keyup(38);
wait(1000+random(250));
end;
repeat
if (doorfound = 'no') then
begin
mmouse(Cox[i],Coy[i],3,3);
if (IsUpTextMulti('Door', 'Doo', 'oor') = true) then
begin
if (IsUpTextMulti('Open', 'Op', 'en') = true) or (isuptextmulti('Ope', 'pen', 'Open') = true) then
begin
GetMousePos(x,y);
mouse(x,y,0,0,true);
Doorfound := 'yes';
end;
if (IsUpTextMulti('Close', 'lo', 'se') = true) then
begin
Doorfound := 'yes';
end;
end;
end;
i:= +1;
until (i = 6) or (doorfound = 'yes');
if (doorfound = 'no') then
begin
keydown(38);
wait(200);
keyup(38);
wait(1000+random(250));
end;
repeat
if (doorfound = 'no') then
begin
mmouse(Cox[i],Coy[i],3,3);
if (IsUpTextMulti('Door', 'Doo', 'oor') = true) then
begin
if (IsUpTextMulti('Open', 'Op', 'en') = true) or (isuptextmulti('Ope', 'pen', 'Open') = true) then
begin
GetMousePos(x,y);
mouse(x,y,0,0,true);
Doorfound := 'yes';
end;
if (IsUpTextMulti('Close', 'lo', 'se') = true) then
begin
Doorfound := 'yes';
end;
end;
end;
i:= +1;
until (i = 9) or (doorfound = 'yes');
if (doorfound = 'no') then
writeln('Couldnt open door, or door is allready open');
end;
function findreddoor(var martax,martay:integer;x1,y1,x2,y2:integer):boolean;
// by Boreas
var dacolor:integer; daboolean:boolean;
begin
dacolor:=200;
repeat
dacolor:=dacolor+1;
writeln(inttostr(dacolor));
if not(((dacolor=206)or(dacolor=217)or(dacolor=233)or(dacolor=241)))
then
begin
daboolean:=findcolor(martax,martay,dacolor,x1,y1,x2,y2);
if daboolean then
begin
resulty:=True;
exit;
end;
end;
until dacolor=254;
writeln('coudnt find it');
end;
Procedure WalkToRange;
begin
if ( not ( LoggedIn )) then Exit;
wait(1000+random(250));
mouse(mmcx,mmcy-12,0,0,true);
wait(1000+random(250));
flag;
findreddoor(martax,martay,mmx1,mmy1,676,50)
mouse(martax,martay,0,0,true);
wait(4000+random(1000));
Flag;
wait(1000+random(250));
setrun(true);
wait(500+random(+1000));
gametab(4);
end;
function FirstPath(var Path : integer):boolean;
begin
if ( not ( LoggedIn )) then Exit;
LoadDTM;
Setup;
Path := 0;
findreddoor(martax,martay,mmx1,28,mmcx,60);
mouse(martax,martay,0,0,True);
Flag;
Wait(1000+Random(500));
LowestAngle;
MyOpenDoor('s');
wait(1000+random(250));
activateclient;
MakeCompass('E');
wait(1000+random(250));
HighestAngle;
wait(1000+random(250));
FindDtmin(X,Y,Cooking,555,205,740,464);
Wait(1000+Random(500));
Mouse(x,y,5,5,true);
wait(1000+random(250));
FindColorTolerance(x,y,1781205,msx1,30,245,230,50)
Mouse(x,y,0,0,true);
Flag;
wait(1500+random(250));
Mouse(256,404,20,20,False);
ClickText('Cook All',206,354,306,454);
wait(1000+random(250));
FreeDaDTM;
end;
function CheckInv(var Check:boolean) : boolean;
begin
GameTab(4);
wait(1000+random(250));
CheckCo := GetColor(Ax,By);
If (CheckCo = Co) then
Check := False;
if (CheckCo > Co) or (CheckCo < Co) then
Check := True;
end;
procedure Randoness;
begin
Wait(1000+random(+1000));
Rando := 0+random(25);
if (rando = 0) then
PickUpMouse;
if (rando = 1) then
RandomRClick;
if (rando = 2) then
begin
GameTab(2);
HoverSkill('cooking',false);
end;
end;
procedure Cook;
begin
if ( not ( LoggedIn )) then Exit;
Anti;
repeat
Checkinv(Check);
Randoness;
Anti;
Clicktocontinue;
until(Check = True);
end;
Procedure FirstWalkBack;
begin
if ( not ( LoggedIn )) then Exit;
findreddoor(Martax,Martay,mmcx,mmcy,680,110);
mouse(martax,martay,0,0,true);
flag;
wait(1000+random(+500));
lowestangle;
MyOpenDoor('n');
wait(1000+random(+500));
activateclient;
makecompass('W');
wait(1000+random(+250));
FindRedDoor(Martax,Martay,600,mmy1,655,43);
mouse(martax,martay,0,0,true);
flag;
wait(1000+random(+250));
Setrun(False);
end;
procedure WalkToBank;
begin
if ( not ( LoggedIn )) then Exit;
FindColorTolerance(x,y,62965,616,mmy1,667,41,40);
mouse(x+10,y,0,0,True);
flag;
wait(1000+random(+250));
activateclient;
makecompass('N');
wait(1000+random(+500));
end;
procedure WithdrawBank;
begin
Withdraw(1,1,CycleDone);
wait(1000+random(250));
closebank;
end;
procedure DepositBank;
begin
DepositAll;
wait(1000+random(250));
Withdraw(1,1,CycleDone);
closebank;
end;
function Progress(var TotalCharDone,CycleDone,TotalAmountLeft:Integer):boolean;
begin
TotalChar := TotalChar + Position;
TotalCycle := TotalCycle + Position;
CycleDone := CharAmountDone - TotalCycle;
TotalCharDone := TotalAmountPerChar - TotalChar;
if (TotalAmount = 0) then
TotalAmount := TotalAmountLeft;
TotalAmount := TotalAmount - Position;
if (cooking = Anchovie) then
working := 'Anchovie'
else if (cooking = Shrimp) then
working :='Shrimp'
else if (cooking = Trout) then
working := 'Trout'
else if (cooking = Salmon) then
working := 'Salmon'
else if (cooking = Tuna) then
Working := 'Tuna'
else if (cooking = Lobster) then
Working := 'Lobster'
else if (cooking = Pike) then
Working := 'Pike'
else if (cooking = Swordfish) then
Working := 'Swordfish'
else if (cooking = Herring) then
Working := 'Pike'
Else if (cooking = Sardine) then
Working := 'Sardine';
WriteLn('______________________________________________________________');
WriteLn(' Fally Fish Cooker ');
WriteLn('Progress Report:');
writeln('Total time script has been running ' + inttostr(ScriptTime(2)) + ' minutes');
writeln('Total time current user has worked = ' + inttostr(players[currentplayer].worked) + ' minutes');
WriteLn('You have Banked ' + IntToStr(TotalChar) + ' total on this char');
WriteLn('You have cooked ' + IntToStr((TotalAmountLeft - TotalAmount)) + ' total of ' + working);
WriteLn('You have ' + Inttostr(TotalAmount) + ' ' + Working + ' left to cook');
WriteLn('______________________________________________________________');
srlrandomsreport;
end;
Procedure KeepingTrack;
begin
if (CharAvailable = HowManyPlayers) then
begin
if (HowManyPlayers > CharInCycle) or (HowManyPlayers = CharInCycle) then
TotalChar := 0;
if (CharInCycle > HowManyPlayers) then
TotalChar := CharAmountDone * 1;
if (CharinCycle > (HowManyPlayers * 2)) then
TotalChar := CharAmountDone * 2;
If (CharinCycle > (HowManyPlayers * 3)) then
TotalChar := CharAmountDone * 3;
If (CharinCycle > (HowManyPlayers * 4)) then
TotalChar := CharAmountDone * 4;
If (CharinCycle > (HowManyPlayers * 5)) then
TotalChar := CharAmountDone * 5;
If (CharinCycle > (HowManyPlayers * 6)) then
TotalChar := CharAmountDone * 6;
If (CharinCycle > (HowManyPlayers * 7)) then
TotalChar := CharAmountDone * 7;
If (CharinCycle > (HowManyPlayers * 8)) then
TotalChar := CharAmountDone * 8;
If (CharinCycle > (HowManyPlayers * 9)) then
TotalChar := CharAmountDone * 9;
If (CharinCycle > (HowManyPlayers * 10)) then
TotalChar := CharAmountDone * 10;
end;
if (CharAvailable = (HowManyPlayers - 1)) then
begin
ModChars := (((CharIncycle/HowManyPlayers) - (Trunc(CharIncycle/HowManyPlayers)) * HowManyPlayers) - 1);
ModCharss := ((Trunc(CharIncycle/HowManyPlayers)) * CharAvailable);
if (modChars < 0) or (ModChars = 0) then
begin
ModChars := (((CharIncycle/HowManyPlayers) - (Trunc(CharIncycle/HowManyPlayers) - 1) * HowManyPlayers) - 1);
ModCharss := ((Trunc(CharIncycle/HowManyPlayers) - 1) * CharAvailable);
end;
ModChar := ModChars + ModCharss;
if (CharAvailable > ModChar) or (CharAvailable = ModChar) then
TotalChar := 0;
if (ModChar > CharAvailable) then
TotalChar := CharAmountDone;
if (ModChar > (CharAvailable * 2)) then
TotalChar := CharAmountDone * 2;
If (ModChar > (CharAvailable * 3)) then
TotalChar := CharAmountDone * 3;
If (ModChar > (CharAvailable * 4)) then
TotalChar := CharAmountDone * 4;
If (ModChar > (CharAvailable * 5)) then
TotalChar := CharAmountDone * 5;
If (ModChar > (CharAvailable * 6)) then
TotalChar := CharAmountDone * 6;
If (ModChar > (CharAvailable * 7)) then
TotalChar := CharAmountDone * 7;
If (ModChar > (CharAvailable * 8)) then
TotalChar := CharAmountDone * 8;
If (ModChar > (CharAvailable * 9)) then
TotalChar := CharAmountDone * 9;
If (ModChar > (CharAvailable * 10)) then
TotalChar := CharAmountDone * 10;
end;
if (CharAvailable = (HowManyPlayers - 2)) then
begin
ModChars := (((CharIncycle/HowManyPlayers) - (Trunc(CharIncycle/HowManyPlayers)) * HowManyPlayers) - 2);
ModCharss := ((Trunc(CharIncycle/HowManyPlayers)) * CharAvailable);
if (modChars < 0) or (ModChars = 0) then
begin
ModChars := (((CharIncycle/HowManyPlayers) - (Trunc(CharIncycle/HowManyPlayers) - 1) * HowManyPlayers) - 2);
ModCharss := ((Trunc(CharIncycle/HowManyPlayers) - 1) * CharAvailable);
end;
ModChar := ModChars + ModCharss;
if (CharAvailable > ModChar) or (CharAvailable = ModChar) then
TotalChar := 0;
if (ModChar > CharAvailable) then
TotalChar := CharAmountDone;
if (ModChar > (CharAvailable * 2)) then
TotalChar := CharAmountDone * 2;
If (ModChar > (CharAvailable * 3)) then
TotalChar := CharAmountDone * 3;
If (ModChar > (CharAvailable * 4)) then
TotalChar := CharAmountDone * 4;
If (ModChar > (CharAvailable * 5)) then
TotalChar := CharAmountDone * 5;
If (ModChar > (CharAvailable * 6)) then
TotalChar := CharAmountDone * 6;
If (ModChar > (CharAvailable * 7)) then
TotalChar := CharAmountDone * 7;
If (ModChar > (CharAvailable * 8)) then
TotalChar := CharAmountDone * 8;
If (ModChar > (CharAvailable * 9)) then
TotalChar := CharAmountDone * 9;
If (ModChar > (CharAvailable * 10)) then
TotalChar := CharAmountDone * 10;
end;
if (CharAvailable = (HowManyPlayers - 3)) then
begin
ModChars := (((CharIncycle/HowManyPlayers) - (Trunc(CharIncycle/HowManyPlayers)) * HowManyPlayers) - 3);
ModCharss := ((Trunc(CharIncycle/HowManyPlayers)) * CharAvailable);
if (modChars < 0) or (ModChars = 0) then
begin
ModChars := (((CharIncycle/HowManyPlayers) - (Trunc(CharIncycle/HowManyPlayers) - 1) * HowManyPlayers) - 3);
ModCharss := ((Trunc(CharIncycle/HowManyPlayers) - 1) * CharAvailable);
end;
ModChar := ModChars + ModCharss;
if (CharAvailable > ModChar) or (CharAvailable = ModChar) then
TotalChar := 0;
if (ModChar > CharAvailable) then
TotalChar := CharAmountDone;
if (ModChar > (CharAvailable * 2)) then
TotalChar := CharAmountDone * 2;
If (ModChar > (CharAvailable * 3)) then
TotalChar := CharAmountDone * 3;
If (ModChar > (CharAvailable * 4)) then
TotalChar := CharAmountDone * 4;
If (ModChar > (CharAvailable * 5)) then
TotalChar := CharAmountDone * 5;
If (ModChar > (CharAvailable * 6)) then
TotalChar := CharAmountDone * 6;
If (ModChar > (CharAvailable * 7)) then
TotalChar := CharAmountDone * 7;
If (ModChar > (CharAvailable * 8)) then
TotalChar := CharAmountDone * 8;
If (ModChar > (CharAvailable * 9)) then
TotalChar := CharAmountDone * 9;
If (ModChar > (CharAvailable * 10)) then
TotalChar := CharAmountDone * 10;
end;
if (CharAvailable = (HowManyPlayers - 4)) then
begin
ModChars := (((CharIncycle/HowManyPlayers) - (Trunc(CharIncycle/HowManyPlayers)) * HowManyPlayers) - 4);
ModCharss := ((Trunc(CharIncycle/HowManyPlayers)) * CharAvailable);
if (modChars < 0) or (ModChars = 0) then
begin
ModChars := (((CharIncycle/HowManyPlayers) - (Trunc(CharIncycle/HowManyPlayers) - 1) * HowManyPlayers) - 4);
ModCharss := ((Trunc(CharIncycle/HowManyPlayers) - 1) * CharAvailable);
end;
ModChar := ModChars + ModCharss;
if (CharAvailable > ModChar) or (CharAvailable = ModChar) then
TotalChar := 0;
if (ModChar > CharAvailable) then
TotalChar := CharAmountDone;
if (ModChar > (CharAvailable * 2)) then
TotalChar := CharAmountDone * 2;
If (ModChar > (CharAvailable * 3)) then
TotalChar := CharAmountDone * 3;
If (ModChar > (CharAvailable * 4)) then
TotalChar := CharAmountDone * 4;
If (ModChar > (CharAvailable * 5)) then
TotalChar := CharAmountDone * 5;
If (ModChar > (CharAvailable * 6)) then
TotalChar := CharAmountDone * 6;
If (ModChar > (CharAvailable * 7)) then
TotalChar := CharAmountDone * 7;
If (ModChar > (CharAvailable * 8)) then
TotalChar := CharAmountDone * 8;
If (ModChar > (CharAvailable * 9)) then
TotalChar := CharAmountDone * 9;
If (ModChar > (CharAvailable * 10)) then
TotalChar := CharAmountDone * 10;
end;
if (CharAvailable = (HowManyPlayers - 5)) then
begin
ModChars := (((CharIncycle/HowManyPlayers) - (Trunc(CharIncycle/HowManyPlayers)) * HowManyPlayers) - 5);
ModCharss := ((Trunc(CharIncycle/HowManyPlayers)) * CharAvailable);
if (modChars < 0) or (ModChars = 0) then
begin
ModChars := (((CharIncycle/HowManyPlayers) - (Trunc(CharIncycle/HowManyPlayers) - 1) * HowManyPlayers) - 5);
ModCharss := ((Trunc(CharIncycle/HowManyPlayers) - 1) * CharAvailable);
end;
ModChar := ModChars + ModCharss;
if (CharAvailable > ModChar) or (CharAvailable = ModChar) then
TotalChar := 0;
if (ModChar > CharAvailable) then
TotalChar := CharAmountDone;
if (ModChar > (CharAvailable * 2)) then
TotalChar := CharAmountDone * 2;
If (ModChar > (CharAvailable * 3)) then
TotalChar := CharAmountDone * 3;
If (ModChar > (CharAvailable * 4)) then
TotalChar := CharAmountDone * 4;
If (ModChar > (CharAvailable * 5)) then
TotalChar := CharAmountDone * 5;
If (ModChar > (CharAvailable * 6)) then
TotalChar := CharAmountDone * 6;
If (ModChar > (CharAvailable * 7)) then
TotalChar := CharAmountDone * 7;
If (ModChar > (CharAvailable * 8)) then
TotalChar := CharAmountDone * 8;
If (ModChar > (CharAvailable * 9)) then
TotalChar := CharAmountDone * 9;
If (ModChar > (CharAvailable * 10)) then
TotalChar := CharAmountDone * 10;
end;
if (CharAvailable = (HowManyPlayers - 6)) then
begin
ModChars := (((CharIncycle/HowManyPlayers) - (Trunc(CharIncycle/HowManyPlayers)) * HowManyPlayers) - 6);
ModCharss := ((Trunc(CharIncycle/HowManyPlayers)) * CharAvailable);
if (modChars < 0) or (ModChars = 0) then
begin
ModChars := (((CharIncycle/HowManyPlayers) - (Trunc(CharIncycle/HowManyPlayers) - 1) * HowManyPlayers) - 6);
ModCharss := ((Trunc(CharIncycle/HowManyPlayers) - 1) * CharAvailable);
end;
ModChar := ModChars + ModCharss;
if (CharAvailable > ModChar) or (CharAvailable = ModChar) then
TotalChar := 0;
if (ModChar > CharAvailable) then
TotalChar := CharAmountDone;
if (ModChar > (CharAvailable * 2)) then
TotalChar := CharAmountDone * 2;
If (ModChar > (CharAvailable * 3)) then
TotalChar := CharAmountDone * 3;
If (ModChar > (CharAvailable * 4)) then
TotalChar := CharAmountDone * 4;
If (ModChar > (CharAvailable * 5)) then
TotalChar := CharAmountDone * 5;
If (ModChar > (CharAvailable * 6)) then
TotalChar := CharAmountDone * 6;
If (ModChar > (CharAvailable * 7)) then
TotalChar := CharAmountDone * 7;
If (ModChar > (CharAvailable * 8)) then
TotalChar := CharAmountDone * 8;
If (ModChar > (CharAvailable * 9)) then
TotalChar := CharAmountDone * 9;
If (ModChar > (CharAvailable * 10)) then
TotalChar := CharAmountDone * 10;
end;
if (CharAvailable = (HowManyPlayers - 7)) then
begin
ModChars := (((CharIncycle/HowManyPlayers) - (Trunc(CharIncycle/HowManyPlayers)) * HowManyPlayers) - 7);
ModCharss := ((Trunc(CharIncycle/HowManyPlayers)) * CharAvailable);
if (modChars < 0) or (ModChars = 0) then
begin
ModChars := (((CharIncycle/HowManyPlayers) - (Trunc(CharIncycle/HowManyPlayers) - 1) * HowManyPlayers) - 7);
ModCharss := ((Trunc(CharIncycle/HowManyPlayers) - 1) * CharAvailable);
end;
ModChar := ModChars + ModCharss;
if (CharAvailable > ModChar) or (CharAvailable = ModChar) then
TotalChar := 0;
if (ModChar > CharAvailable) then
TotalChar := CharAmountDone;
if (ModChar > (CharAvailable * 2)) then
TotalChar := CharAmountDone * 2;
If (ModChar > (CharAvailable * 3)) then
TotalChar := CharAmountDone * 3;
If (ModChar > (CharAvailable * 4)) then
TotalChar := CharAmountDone * 4;
If (ModChar > (CharAvailable * 5)) then
TotalChar := CharAmountDone * 5;
If (ModChar > (CharAvailable * 6)) then
TotalChar := CharAmountDone * 6;
If (ModChar > (CharAvailable * 7)) then
TotalChar := CharAmountDone * 7;
If (ModChar > (CharAvailable * 8)) then
TotalChar := CharAmountDone * 8;
If (ModChar > (CharAvailable * 9)) then
TotalChar := CharAmountDone * 9;
If (ModChar > (CharAvailable * 10)) then
TotalChar := CharAmountDone * 10;
end;
end;
begin
SetupSRL;
DeclarePlayers;
activateclient;
wait(500);
LoadDtm;
CharAvailable := HowManyPlayers;
CycleDone := 28;
FreeDaDtm;
repeat
TotalCycle := 0;
KeepingTrack;
loginplayer;
wait(1500+random(500));
PersonLogged := False;
repeat
Highestangle;
wait(1500+random(500));
PerfectNorth;
wait(1500+random(500));
OpenBank3;
wait(1500+random(500));
wait(1000+random(250));
if (InvEmpty = true) then
begin
WithdrawBank;
end;
if (InvEmpty = false) then
begin
DepositBank;
end;
gametab(4);
ColorGet;
WriteLn(inttostr(co));
Anti;
activateclient;
MakeCompass('E');
wait(500+random(+1000));
WalkToRange;
FirstPath(Path);;
Cook;
FirstWalkBack;
walktobank;
Progress(TotalCharDone,CycleDone,TotalAmountLeft);
if (not(Loggedin)) then
begin
NextPlayer(false);
CharinCycle := CharInCycle + 1;
CharAvailable := CharAvailable -1;
personlogged := true;
end;
until (cycleDone = 0) or (TotalAmountLeft = 0) or (TotalCharDone = 0) or
(personlogged = true);
if (TotalCharDone = 0) then
begin
CharInCycle := CharInCycle + 1;
wait(1000+random(500));
CharAvailable := CharAvailable -1;
NextPlayer(False);
end;
If (CycleDone = 0) then
begin
CharInCycle := CharInCycle + 1;
wait(1000+random(500));
NextPlayer(True);
end;
until (TotalAmount = 0) or (CharAvailable = 0);
Logout;
end.——————————————————