SRL Archive - Archive

bramble - SRL Member Application Form


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
//////////////////////////////////////////////////////////////////
// ____ __ ___ //
// /\ _`\ /\ \ /\_ \ //
// \ \ \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.

——————————————————

solarwind

2006-12-05 19:59:35

I say yes, this script shows that you have pretty good scripting skills and can easily improve. Just keep improving stuff.

Pentti

2006-12-06 04:49:55

I must say yes too. Script looks very nice!

Arr0w

2006-12-06 13:52:02

wow im only 12 lol, Yes from me to well done!

-Arr0w

TOB

2006-12-06 14:11:39

I'm going to say yes. You need to not rely on waits for your walking procedure, user landmarks such as symbols on the minimap and the such. Could do with a little improvement but looks great.

YoHoJo

2006-12-11 18:59:43

scripting is good
you dont use player aray though
that means that antirandoms dont work
add player array and youve got a yes form me

solarwind

2006-12-11 23:18:57

From: yohojo8
scripting is good
you dont use player aray though
that means that antirandoms dont work
add player array and youve got a yes form me



Yeah, what he said, but I already voted yes =)

YoHoJo

2006-12-12 00:05:32

he messaged me and said hes gonna try to fix it
as long as hes trying i say yes fa sho

Bramble

2006-12-12 00:28:34

i added in the declare players, instead of just using setupplayers, i guess thats what you meant by adding the player array.

da_professa

2006-12-12 03:37:23

Nice script.. I vote yes

Bramble

2006-12-15 16:49:15

i just added a form in for the setup vars, if you would like to test it out as the zip is too big to attach here is the link.
Falador Fish Cooker with Forms

WT-Fakawi

2006-12-15 19:42:47

Accepted.