SRL Archive - Archive

0wn 4 skill - SRL Member Application Form


0wn 4 skill

2008-10-31 19:21:02

<!– BEGIN TEMPLATE: formanswers –>
0wn 4 skill - SRL Member Application Form
0wn 4 skill

What is the meaning to life?
Get laid and piss of Jagex

Where you Referred to SRL? If yes, by whom?
no


Programming Knowledge
None

Other Communitys
Sythe for Pins

How Long have You Played Runescape
3-4 years (on and off)

Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.

Hey, Im 0wn 4 skill. This is my second attempt at SRL Membership. I realise that it is still mostly reflection but I have added Walking backups and fishing spot finding backups which all work :D I want to add up a backup to find if im actively fishing without reflection but im not too sure what to do… Maybe finding the color of the rod?

Thanks for considering this :D

——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted

Program BarbarianFishernBankerRelection;
{.Include SRL\SRL\Misc\Smart.Scar}
{.Include SRL\SRL.Scar}
{.Include SRL\SRL\Reflection\Reflection.Scar}

/////////////////////////////////////////////////////
// _____ ___ _ _ _ _ //
// | _ | / | | | (_) | | //
// | |/ |_ ___ __ / /| | ___| | ___| | | //
// | /| \ \ /\ / / _ \ / /_| | / __| |/ / | | | //
// \ |_/ /\ V V /| | | | \___ | \__ \ <| | | | //
// \___/ \_/\_/ |_| |_| |_/ |___/_|\_\_|_|_| //
/////////////////////////////////////////////////////
//Start in Edgeville Bank or the FishingSpot//
// Setup Lines 21-24 33-53 and off you go! //
// Have Fly Fishing Rod and Feathers in Inv //
//////////////////////////////////////////////

Const
SRLStatsID = ''; // Your SRL stats ID
SRLStatsPass = ''; // Your SRL Stats Password

Sleepez = True; // Do you want your characters to sleep?
SleepEvery = 9; // 9 mins works good.
SleepForHowLong = 1; // Lets keep it short shall we? Random 1-1.5mins will be added.

SmartWorld = 16; // Change number if you want a different world.

Var
x,y, Bankes, Walkesbank, Walkesfish, LTD : Integer;
Salmonz, Troutz : Integer;
TimesSlept, Fishes, Mark, WhirlPoolAvoid : Integer;
FlyRod, Feather, Salmon, Trout : Integer; //DTMs

Procedure DeclarePlayers;
Begin

HowManyPlayers := 2;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active:=True;
Players[0].Integers[0]:=200;//Number Of Loads. I do 10ish an hour on lvl 70 fish.

Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='';
Players[1].Active:=True;
Players[1].Integers[0]:=200;//Number Of Loads

{Players[2].Name :='';
Players[2].Pass :='';
Players[2].Nick :='';
Players[2].Active:=True;
Players[2].Integer[0]:=1;//Number Of Loads}

Writeln('Using '+IntToStr(HowManyPlayers)+' Players!');
Writeln('Doing '+IntToStr(Players[CurrentPlayer].Integers[0])+' Loads!');

end;

Procedure SetupSmart;
Begin
LoadSMART(SmartWorld, True, False);
Wait(1000);
SetTargetDC(SmartGetDC);
end;



Procedure OwnAntiBan;
Begin
If Not LoggedIn then Exit;
case Random(30) of

0,1,2: Begin
HoverSkill('Fishing', False);
Wait(1000+Random(800));
end;
3,4,5: BoredHuman;
7: Begin
GameTab(1+Random(12));
Wait(RandomRange(800,1200));
GameTab(4);
end;
8: PickUpMouse;
9: MMouse(Random(500),Random(500),0,0);

end;
end;


Procedure LoadDTMs(DTM: String);
begin
Case lowercase(DTM) Of

'flyrod':
begin

FlyRod := DTMFromString('78DA8DD2CB0E82301445D12204796940DEA0F' +
'1FFFFD27367C4C93E0C360356DAB4DCAC4F29BDD2DF935DAA777C' +
'9FC00CCA0226F6DA0C738079281F30ADF2055319EB94CA1B4CA1E' +
'C6072E3EC776504532B0398467982E994164CAC511BFFAB021367' +
'2AC1CC4A016631CC66EC15F3958389B9B881398DBD76E37E56A53' +
'3EEA70733F16CFC00FDE603D0');

end;

'feathers':
Begin

Feather := DTMFromString('78DA6314606060106440010777EC607808A41' +
'981F83F10304A02197C0C6880914104AA06CC03992341400D2790' +
'9021A086074828A2AA305050405523062444089803722F370135D' +
'C84CD0100665A0945');

end;

'salmon':
Begin

Salmon := DTMFromString('78DA635CC0C4C050C6C8800CB696A43388006' +
'990E87F20605C0454538DAA06220B2381F464A09A3A026A6603D5' +
'141350B31CA82687809AF540357904D42C05AA2927A0660E61370' +
'30031D30E88');

end;

'trout':
Begin

Trout := DTMFromString('78DA633460646078C88002F66CDEC46004A48' +
'1320CFF81805103C87A82AAA6203383810BAA0604185580AC170C' +
'688011558D2990F588801A1B20EB360135BA44D8A546845D2073E' +
'EE0570300F4DD1072');

end;

end;
end;

Procedure Proggy; Forward;


Function FindLocation: String;
Var
Me: TMe;
Begin
If Not LoggedIn then Exit;
Me:= GetMe;
GetMyPos;

If (PointInBox(Me.Tile, IntToBox(3090, 3486, 3100, 3500))) or (FindBank('eb')) then
Result:='AtBank';

If PointInBox(Me.Tile, IntToBox(3100, 3420, 3112, 3435)) or (FindSymbol(x,y,'fishing spot')) then
Result:='AtFishingSpot';

If (Result = '') then
begin
Writeln('Not In any place?');
Logout;
Result:='NoLocation';
Proggy;
Players[CurrentPlayer].Active := False;
NextPlayer(Players[CurrentPlayer].Active);
end;
end;


function WalkPath(Path: TPointArray; Tol, R_FFlag: Integer): Boolean;
var
Count : Integer;
begin
Count:= 0;
repeat

Result:= WalkToTile(Path[Count], Tol, R_FFlag);
if (not Result) then
Result:= WalkToTile(Path[Count], tol, R_FFlag);

Count:= Count + 1;
until (not Result) or (Count > High(Path));
end;





Function LoadPaths(Which: String): TPointArray;
Begin
Case Lowercase(which) of

'wf':

Case Random(4) of

0: Begin
Result := [Point(3093, 3485), Point(3100, 3477), Point(3099, 3466),
Point(3087, 3461), Point(3093, 3452), Point(3093, 3443),
Point(3097, 3437), Point(3104, 3433)];
end;

1: Begin
Result := [Point(3094, 3485), Point(3099, 3478), Point(3098, 3466),
Point(3088, 3464), Point(3095, 3453), Point(3093, 3442),
Point(3098, 3435), Point(3101, 3430)];
end;

2: Begin
Result := [Point(3087, 3485), Point(3080, 3478), Point(3084, 3465),
Point(3091, 3454), Point(3093, 3442), Point(3095, 3436),
Point(3103, 3431)];
end;

3: Begin
Result := [Point(3088, 3488), Point(3079, 3482), Point(3081, 3472),
Point(3086, 3465), Point(3090, 3455), Point(3091, 3446),
Point(3094, 3437), Point(3102, 3430)];
end;
end;

'wb':

Case Random(4) of

0: Begin
Result := [Point(3102, 3433), Point(3093, 3441), Point(3092, 3453),
Point(3093, 3464), Point(3099, 3477), Point(3093, 3484),
Point(3095, 3492)];
end;

1: Begin
Result := [Point(3102, 3437), Point(3092, 3443), Point(3096, 3455),
Point(3093, 3465), Point(3100, 3478), Point(3092, 3485),
Point(3095, 3492)];
end;

2: Begin
Result := [Point(3100, 3433), Point(3093, 3441), Point(3093, 3454),
Point(3089, 3465), Point(3081, 3477), Point(3086, 3487),
Point(3094, 3492)];
end;

3: Begin
Result := [Point(3102, 3434), Point(3093, 3440), Point(3095, 3452),
Point(3087, 3461), Point(3081, 3473), Point(3081, 3483),
Point(3086, 3488), Point(3094, 3491)];
end;
end;
end;
end;





Procedure WalkToFish;
Var
Tries: Integer;
Begin
If Not LoggedIn Then Exit;
If FindLocation='AtFishingSpot' Then Exit;
Case Random(4) of
0: SetRun(True);
1: SetRun(False);
end;
WalkPath(LoadPaths('wf'), 2, 3);
If FindLocation='AtBank' then
Begin
Writeln('Reflection Failed. Hooks must have been updated, using Radial Walk');
MakeCompass('N');
Tries:=0;
Repeat
RadialWalk(FindWaterColor, 190, 100,RandomRange(55, 72), 2, 2);
Tries:=Tries+1;
If FindSymbol(x,y, 'fishing spot') then
Begin
Mouse(x,y, 3, 3, true);
FFlag(15);
exit;
end;
If FindLocation='AtFishingSpot' then break;
Until (Findlocation='AtFishingSpot') or (Tries > 10);
end;
Wait(500+Random(300));
If FindLocation='AtFishingSpot' then WalkesFish:=Walkesfish+1;

end;

Procedure WalkToBank;
Var
Tries: Integer;
Begin
If Not LoggedIn Then Exit;
If FindLocation='AtBank' then Exit;
SetRun(False);
WalkPath(LoadPaths('wb'), 2, 3); //Attempts walk with reflection.
If FindLocation='AtFishingSpot' then //If it still hasnt made it, it uses radial walking.
Begin
Writeln('Reflection Failed. Hooks must have been updated, using Radial Walk');
MakeCompass('N');
Tries:=0;
Repeat
RadialWalk(FindWaterColor, 330, 25,RandomRange(55, 72), 2, 2);
Tries:=Tries+1;
If FindSymbol(x,y, 'bank') then
Begin
Mouse(x,y, 3, 3, true);
FFlag(15);
end;
If FindLocation='AtBank' then break;
Until (Findlocation='AtBank') or (Tries > 10);
end;
If FindSymbol(x,y,'bank') then
Begin
Mouse(x,y, 3, 3, true);
FFlag(15);
end;
Wait(500+Random(300));
If FindLocation='AtBank' then WalkesBank:=WalkesBank+1;

end;


Function HaveWeGotFeathers: Boolean;
Begin
If Not LoggedIn then Exit;

GameTab(4);
LoadDTMs('feathers');
Result:= FindDTM(Feather, x, y, MIX1, MIY1, MIX2, MIY2);
FreeDTM(Feather);

end;

Procedure FeatherMessage;
Begin

Writeln('No Feathers on this account, switching players.')
Logout;
Players[CurrentPlayer].Active := False;
NextPlayer(Players[CurrentPlayer].Active);

end;



Function HaveWeGotFlyRod: Boolean;
Begin
If not LoggedIn then Exit;

Gametab(4);
LoadDTMs('flyrod');
Result:= FindDTM(flyrod, x, y, MIX1, MIY1, MIX2, MIY2);
FreeDTM(flyrod);

end;



Function WithdrawFlyRod: Boolean;
Begin
If Not LoggedIn then Exit;
If Not BankScreen then Exit;
LoadDTMs('flyRod');
If FindDTM(flyrod,x,y,MSX1,MSY1,MSX2,MSY2) then
Begin
MMouse(x,y,3,3);
IsUpText('ithdra');
GetMousePos(x,y);
Mouse(x,y,0,0,true);
Writeln('Got new Fly Rod')
Result:=True;
end else
Begin
CloseBank;
Writeln('Out of Rods on this account... Logging out... Buy more!');
Logout;
WriteLn('No FlyRods on this account');
Players[CurrentPlayer].Active := False;
NextPlayer(Players[CurrentPlayer].Active);
end;
FreeDTM(Flyrod);

end;




Procedure GoGetFlyRod;
Var
Tries: Integer;
Begin
SetAngle(True);
Begin

If FindLocation='AtBank' then
Begin
Repeat
OpenBankFast('eb');
Tries:=Tries+1
Until (BankScreen) or (Tries>5);
Wait(1000+Random(500));
WithdrawFlyRod;
end;

If FindLocation='AtFishingSpot' then
Begin
WalkToBank;
Repeat
OpenBankFast('eb');
Tries:=Tries+1;
Until (BankScreen) or (Tries>5)
WithdrawFlyRod;
WalkToFish;
end;
end;
end;

Procedure FindFlyRodFloor;
Begin
If Not LoggedIn Then Exit;
If HaveWeGotFlyRod then exit;
MakeCompass('W');
SetAngle(True);
If FindObj(x,y, 'rod' , 805217, 15) then
Begin
Writeln('Found the lost rod');
Mouse(x,y,3,3,true);
R_FFlag(0);
MakeCompass('N');
If HaveWeGotFlyRod then exit;
end else
Begin
Writeln('We lost the rod!');
MakeCompass('N');
GoGetFlyRod;
end;
end;


{My Fishing Spot Finder. Returns True if found. Will find any fishing spot}
Function FindFishingSpot(var x,y: Integer):Boolean;
var
FishingSpot: array of TNPC;
I: Integer;
Begin
If Not Loggedin Then Exit;

FishingSpot := SortNPCs(GetNPCsByID(315));

For I := 0 to High(FishingSpot) do
If FishingSpot[i].MS.X<>0 then

begin
Result:=True;
x := FishingSpot[I].MS.X;
y := FishingSpot[I].MS.Y;
If (Result) then exit;

end;
end;


Procedure DepositFished;
Var
Tries: Integer;
Begin
If Not Loggedin then Exit;
If FindLocation='AtBank' then
Begin
SetAngle(True);
Tries:=0;
Repeat
OpenBankFast('eb');
Tries:=Tries+1;
Wait(2000+Random(1000));
If BankScreen then Break;
Until (BankScreen) or (Tries>5);
If BankScreen then
Begin

LoadDTMs('salmon');
LoadDTMs('trout');

Salmonz := Salmonz + (ItemAmount('inventory', 'dtm', salmon, [0]));
Troutz := Troutz +(ItemAmount('inventory', 'dtm', trout, [0]))
Fishes := Fishes + Salmonz + Troutz;

FreeDTM(salmon);
FreeDTM(trout);

Deposit(3, 28,true);

Case Random(2) of
0: CloseBank;
end;

Bankes:=Bankes+1;
LTD:=LTD+1;
Writeln('Desposited Fishes');
Proggy;

end else

Begin
Writeln('Could Not find BankScreen');
end;
end;
end;


Function FindWhirlPool: Boolean;
var
WhirlPool: array of TNPC;
I: Integer;
begin
WhirlPool := SortNPCs(GetNPCsByID(405));
for I := 0 to High(WhirlPool) do
if WhirlPool[I].MS.X<>0 then
begin
Result := True;
if (Result) then Exit;
end;
end;


Procedure MoveSpotIfWhirlPool;
Begin
If Not Loggedin then exit;
If FindWhirlPool then

Begin
FindFishingSpot(x,y);
Mouse(x,y,3,3,true);
Writeln('Avoided WhirlPool');
WhirlPoolAvoid:=WhirlPoolAvoid + 1;
end else

Begin
WalkToTile(IntToPoint(3110, 3433), 3, 0);
Wait(1500+Random(100));
FindFishingSpot(x,y);
Mouse(x,y,3,3,true);
WhirlPoolAvoid:=WhirlPoolAvoid + 1;
end;

end;


function AreWeFishing: Boolean;
Var
Me:TMe;
Begin

Me:= GetMe;
Result := (InRange(Me.Animation,618,623));

end;


Procedure DoFishing;
Begin
If Not LoggedIn then exit;
If FindLocation='AtFishingSpot' then
Begin
Writeln('Doing Fishing');

Repeat

GameTab(4);
If Not HaveWeGotFlyRod then FindFlyRodFloor;
If Not AreWeFishing then
Begin

MakeCompass('N');
SetAngle(true);
FindNormalRandoms;

If FindFishingSpot(x,y) or FindObjTPA(x,y, 10918802, 8, 2, 20, 20,20,['ure']) then
Begin
FindFishingSpot(x,y);

Case Random(2) of
0: Begin
Mouse(x,y,3,3,true);
end;
1: Begin
Mouse(x,y,3,3,false);
Wait(500+Random(300));
ChooseOption('ure');
end;
end;

end else WalkToTile(IntToPoint(2725, 3425), 2, 0);

If FindFishingSpot(x,y) or FindObjTPA(x,y, 10918802, 8, 2, 20, 20,20,['ure']) then
Begin
FindFishingSpot(x,y);

Case Random(2) of
0: Begin
Mouse(x,y,3,3,true);
end;
1: Begin
Mouse(x,y,3,3,false);
Wait(500+Random(300));
ChooseOption('ure');
end;
end;

end else WalkToTile(IntToPoint(2716, 3530), 2, 0);

If FindWhirlPool then MoveSpotIfWhirlPool;

If FindFight then
Begin
Writeln('Oh shit, fight, lets get out of here.');
SetRun(True);
WalkToBank;
DepositFished;
FindNormalRandoms;
WalkToFish;
end;

FindNormalRandoms;
OwnAntiBan;

end;

If AreWeFishing then
Begin
FindNormalRandoms;
OwnAntiBan;
If FindWhirlPool then MoveSpotIfWhirlPool;
If FindFight then
Begin
WalkToBank;
DepositFished;
WalkToFish;
end;
FindNormalRandoms;
Wait(RandomRange(2000,3000));
end;

Until(InvFull);
end;

If InvFull then
Begin
WalkToBank;
DepositFished;
WalkToFish;
Disguise(TimeRunning);
end;

end;



Procedure Signature;
Begin
ClearDebug;
Writeln('Thankyou For using...............')
Wait(300);
Writeln(' _____ ___ _ _ _ _');
Wait(300);
Writeln('| _ | / | | | (_) | |');
Wait(300);
Writeln('| |/ |_ ___ __ / /| | ___| | ___| | |');
Wait(300);
Writeln('| /| \ \ /\ / / _ \ / /_| | / __| |/ / | | |');
Wait(300);
Writeln('\ |_/ /\ V V /| | | | \___ | \__ \ <| | | |');
Wait(300);
Writeln(' \___/ \_/\_/ |_| |_| |_/ |___/_|\_\_|_|_|');
Wait(300);
Writeln('Barbarian Fisher And Banker!!')
Wait(2500);
ClearDebug;
end;

Procedure Sleepy;
Begin
If Not LoggedIn then Exit;
If Not Sleepez then Exit;
Begin
Logout;
TimesSlept:=TimesSlept+1;
Writeln('Sleeping... zzzZZZZzzzzzzZZZZzzzzzz');
Sleep(SleepForHowLong*60000+RandomRange(30000,90000));
Writeln('Finished Sleeping... Your Characted feels refreshed.');
end;
end;

Procedure Proggy;
begin
writeln('--------------------------------------');
writeln('|Barbarian-Fisher-Banker-0wn 4 skill-|');
writeln('|------------------------------------|');
Writeln(' Ran For ' +TimeRunning);
writeln(' Did '+inttostr(Bankes)+' loads!');
writeln(' Banked '+inttostr(Fishes)+' Fishes!')
writeln(' Fished '+inttostr(salmonz)+' Salmon!')
writeln(' Fished '+inttostr(salmonz)+' Trout!')
writeln(' Walked to bank '+inttostr(walkesbank)+' times');
writeln(' Walked to fish '+inttostr(walkesfish)+' times');
writeln(' Avoided '+inttostr(WhirlpoolAvoid)+' Whirlpools!');
writeln(' Slept '+IntToStr(TimesSlept)+' times!');
writeln('-------------------------------------|');
writeln('| Thank you for using my script! |');
writeln('-------------------------------------|');
end;

procedure Stats;
begin
writeln('--------------------------------------');
writeln('|Barbarian-Fisher-Banker-0wn 4 skill-|');
writeln('|------------------------------------|');
Writeln(' Ran For ' +TimeRunning);
writeln(' Did '+inttostr(Bankes)+' loads!');
ReportVars[0]:=ReportVars[0]+Bankes;
writeln(' Banked '+inttostr(Fishes)+' Fishes!');
ReportVars[1]:=ReportVars[1]+Fishes;
writeln(' Walked to bank '+inttostr(walkesbank)+' times');
ReportVars[2]:=ReportVars[2]+walkesbank;
writeln(' Walked to fish '+inttostr(walkesfish)+' times');
ReportVars[3]:=ReportVars[3]+walkesfish;
writeln(' Avoided '+inttostr(WhirlpoolAvoid)+' Whirlpools!');
ReportVars[4]:=ReportVars[4]+WhirlPoolAvoid;
writeln(' Slept '+IntToStr(TimesSlept)+' times!');
ReportVars[5]:=ReportVars[5]+TimesSlept;
writeln('-------------------------------------|');
writeln('| Thank you for using my script! |');
writeln('-------------------------------------|');
SRLRandomsReport;
SendSRLReport;
end;


Procedure MainLoop;
Begin
LoginPlayer;
If Not LoggedIn then Exit;
SetChat('off',2);

If FindLocation='AtBank' then
Begin
If Not HaveWeGotFeathers then FeatherMessage;
If HaveWeGotFlyRod then
Begin
If (InvCount>3) then DepositFished else WalkToFish;
end else GoGetFlyRod;
end;

If FindLocation='AtFishingSpot' then
Begin
If Not HaveWeGotFeathers then FeatherMessage;
If HaveWeGotFlyRod then DoFishing else GoGetFlyRod;
end;

end;


procedure SRLstats;
begin
SetupSRL;
ScriptID := '963';
if ((SRLStatsID = '') or (SRLStatsPass = ''))then
begin
Writeln('Please get a SRL Stats ID');
TerminateScript;
end else
begin
SRLID := SRLStatsID;
SRLPassword := SRLStatsPass;
end;
end;




Begin
SetupSmart;
SetupSRL;
SRLStats;
Signature;
DeclarePlayers;
Repeat
MarkTime(Mark);

Repeat
MainLoop;
Disguise(TimeRunning);
If (TimeFromMark(Mark)> SleepEvery*60000) then break;
If (LTD>=(Players[CurrentPlayer].Integers[0])) then Break;
Until(LTD>=(Players[CurrentPlayer].Integers[0])) or (Not (LoggedIn));

If (TimeFromMark(Mark)> SleepEvery*60000) then
Begin
If FindLocation='AtFishes' then
WalkToBank;
Sleepy;
end;

Begin
If FindLocation='AtBank' then
Sleepy;
end;

If (LTD>=(Players[CurrentPlayer].Integers[0])) then

Begin
Writeln('Loads done on this player, changing players');
Logout;
NextPlayer(False);
LTD:=0;
end;

Stats;

If AllPlayersInactive then Break;
Until (AllPlayersInactive);

Logout;
Proggy;
Writeln('All Players are inactive');

end.

——————————————————
<!– END TEMPLATE: formanswers –>

Magiic

2008-10-31 19:45:06

yes from me,
you used dtms, tpa's, colour(and reflection) walking randoms antiban good standards and lots of other stuff

0wn 4 skill

2008-10-31 19:47:31

Thankyou Sandos1234 I will try not to let you down :) I really do appreciate your vote :D

Im off to bed now. Goodnight all :p

TravisV10

2008-10-31 22:22:11

Seems nice. I like the reflection failsafe.

Holding my vote for now though.

Scaper

2008-10-31 23:39:58

seems ok holding vote too

Claymore

2008-11-01 03:03:56

You are missing the TPAs, really important.

Should use DDTMs to walk inside the bank.

Why did you just made the player leave when fighting occurs, maybe just run away a full length in the mini map…

Your freeing and opening DDTMs too often, can cause lag.

I vote a no. Sorry. A few pointers

- Learn to use TPAs as they are important for every scripter.
- Learn to walk better. Your doing good, but seriously. Your script could mess up pretty badly. Your using Reflection to walk a entire path. You should just take one step at a time. If a tile is updated or w/e you could easily use a fail safe and continue. Otherwise relocating yourself isn't the best thing to do.
- Learn to use DTMs more efficiently. Try leaving on a frequently used DDTM like fishing rods.

0wn 4 skill

2008-11-01 04:36:37

Thankyou for all your comments. I will look into this Deathscytex :)

Function FindSeerBank(var xy,yx:Integer): Boolean;
Var
A: Extended;
Begin
SeerBank := DTMFromString('78DA63CC6362604866644006C7F71F60F80FA' +
'441A2FF8180311DA8260A55CD9F3F4C0C22503520C098835F0D18' +
'17E057C30453138A5B0D331003002EDE1380');
Result := FindDTMRotated(SeerBank, X, Y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1, A);
xy:= x;
yx:= y;
FreeDTM(SeerBank);
End;

Here is an example I have used for a different script of mine that uses a DTM to find the bank. As you can see I have the knowledge to do it and if you wish me to add it to the above script I will :)

TravisV10

2008-11-01 10:11:16

I voted no. Not very advanced.

Gu3st...

2008-11-01 10:13:13

Hey… Ur on Zybez too? pixel art?

0wn 4 skill

2008-11-01 12:08:45

Please tell me what to improve if your vote is no. I really would like to sort it :)

Zytex! : Im not on zybez?

boberman

2008-11-01 12:11:31

Voted yes. This is one of the better applications we have seen IMO.

0wn 4 skill

2008-11-01 13:01:33

Thankyou boberman, is there anything you think I should change at all? (even very small things)

Heavenzeyez1

2008-11-01 13:07:35

Yes, knows how to script + a nice guy.
~Eerik~

0wn 4 skill

2008-11-01 13:23:51

Thankyou very much Eerik :D

I have to go out for a while but if anybody see's anything I must add please do post a comment because im open to any kind of critisism.

Thankyou all again! :D
Bye

boberman

2008-11-01 13:51:23

From: 0wn 4 skill
Thankyou boberman, is there anything you think I should change at all? (even very small things)


Eliminate global variables (not global constants) When programming, global variables should almost never exist. They destroy encapsulation and re-usability. They also introduce the possibility for bugs everywhere. It is far easier to keep track of whats in variables when you know specifically what variable was requested by a function.

Consider a loadDTMs and freeDTMs function. Dynamically allocating and freeing memory (what happens when a DTM is loaded and freed) is slow because it requires a call to the OS to ask for more memory. DTMS can be quite big (36 bytes per point minimum) where as passing the handle takes very little (its only 4 bytes. the handle is the variable DTM : Integer, it isn't the actual DTM).

With this script, either more constants or more ways of figuring out hard-coded values would be nice. Its a PITA to have to go through and try and find bugs when a hard coded value is changed. It is much easier to have a constant at the top of the script that you change for any occurrence of that value.

More comments on what the code is doing would be nice. Consider adding a block of comments above each function to describe exactly what it is doing.

There are some cases where you variable names aren't very descriptive. (LTD is the one I noticed). Consider renaming them to make them better describe what is going on.


As I said, this is one of the better scripts we have seen. These suggestions are not given from a "getting into members" stand point, but more of suggestions from a programmer that has written his far share of programs. Maintenance of a program is half the programming problem. In fact, companies spend more on maintenance then they do on the actually programming.

0wn 4 skill

2008-11-01 17:06:05

Ok, I see what you mean. I did not realise the speed at which it effects things but thankyou for pointing this out :) I am very grateful for your inputs and I shall be changing these when my next version is released.

Thanks again Boberman :D

Camaro'

2008-11-01 17:34:02

I voted Yes.

Reasons-

-I see some tpas. Nice job.
-I see some dtms. Nice job.
-I see some failsafes. Nice job.


but personally i think reflection should be backup for regular srl. Instead of using reflection first. Even though it doesn't really make a difference.

0wn 4 skill

2008-11-01 18:19:23

Thankyou for your input and your vote! :D :D I am going to add more and more as it gets more widely used. If you saw my 1st version it has really gone far :D

Nava2

2008-11-01 18:50:23

Yes, good kid.

Your script is very organized.
I prefer using reflection first, and a color back up. IMO, makes the script better.

Few notes:

Use Inc(var x : Integer); its faster! :)
Combine Stats and Proggy, just add a timer for the stats to 5 mins.
You call SetupSRL twice.
Write your own TPA function, tbh, the SRL one isn't near as good as custom ones can be.
For checking if you are fishing, doing a FindColor around the MSCX and MSCY should do the trick, just get the pixels to each side accordingly. Your animations cover anyone elses.
{My Fishing Spot Finder. Returns True if found. Will find any fishing spot}
Function FindFishingSpot(var x,y: Integer):Boolean;
var
FishingSpot: array of TNPC;
I: Integer;
Begin
If Not Loggedin Then Exit;

FishingSpot := SortNPCs(GetNPCsByID(315)); // does this get the closest one? i forget...

For I := 0 to High(FishingSpot) do
If FishingSpot[i].MS.X<>0 then
begin
Result:=True;
x := FishingSpot[i].MS.X;
y := FishingSpot[i].MS.Y;
If (Result) then exit; // this would exit anyways? why not just do Exit;
end;
end;
Watch your standards… and read those comments.
Watch the unnecessary begins and ends also. If its one line, they aren't necessary ;)

All in all, great app. Good luck! :)

0wn 4 skill

2008-11-02 04:44:49

Thankyou very much! :D I will be adding what you have said about the finding if im fishing :D

Thankyou Nava :D

Tniffoc

2008-11-02 07:27:00

I'm impressed. Nava2 is a hard vote to get. Anyway, I don't think I'll vote because I'm right on the edge for the following reasons :
  • Used DTMs instead of DDTMs for walking. (DTMs are for other stuff, DDTMs are for walking.)
  • This is a small one, but you aren't supposed to capitalize words like if, then, for, while, begin, end, etc.
  • You used some color and some Reflection. I've found that, until your app is over, Reflection is off-limits. After that, you're free to script in anything. (It's a good feelcing.)
  • Standards are just a smidge off (in a few places and just little things.)

I like the way you check on a lot of things throughout the script. I also like the way you did the FindLocation instead of making a million procedures like RweAtTheBank. Meh… Now I'm leaning towards yes…….

Pixelate

2008-11-02 09:21:04

much better than the other apps we keep seeing. He clearly knows his stuff so thats a definite yes from me

YES!

0wn 4 skill

2008-11-02 12:21:07

Sorry I didnt get back so quick, didnt realise there was a second page xD

Thankyou very much for you input Pixelate and Tniffoc! :D

Tniffoc: What do you mean that I used DTMs for walking?

Blumblebee

2008-11-02 12:25:54

From: Tniffoc


Used DTMs instead of DDTMs for walking. (DTMs are for other stuff,


DTMs are for walking too, DDTMs are used to autocolor something, to help with walking. so DTM's are perfectly fine for walking…

[ontopic] I like the script, it looks very nice, and is one of the better apllications I've seen in the last while. Good Luck, and its a yes from me.

The_Shermanator

2008-11-02 12:29:56

I voted yes, looks like you have everything needed :D

Congrats!

-Shermanator

0wn 4 skill

2008-11-02 13:27:32

Thankyou all! :D You have been very generous to me and im grateful! :D

Thankyou :)

Nava2

2008-11-02 15:33:26

DDTMs are better for walking, in the sense that you can use a Tolerance.

If you use an area size > 1 for a DTM, as well as a high tolerance.. Shouldn't be an issue :)

Scaper

2008-11-02 16:34:02

yes gl

Raskolnikov

2008-11-02 16:35:49

Yes, it is very good for reasons stated above.

Cut em2 it

0wn 4 skill

2008-11-02 17:15:20

I will try this Nava :) Thankyou :)

Thankyou all for your votes! :D

Nava2

2008-11-02 19:51:16

From: 0wn 4 skill
I will try this Nava :) Thankyou :)

Thankyou all for your votes! :D


My pleasure, I wish you the utmost luck! :)

Nice to see the positives.

Honestly, your script is good, but not amazing. Its your attitude. Keep it up.

0wn 4 skill

2008-11-03 04:18:25

Okay, well, ive been working on some DDTMs for the walking and its coming along quite nicely. Doesnt seem to work for bank but a normal DTM does :p

I really appreciate all the help people are giving :)

Thankyou all very much! I really hope that I make it :D

WT-Fakawi

2008-11-03 13:35:30

in. Willkommen!