SRL Archive - Archive

nicbaz - SRL Member Application Form


NiCbaZ

2008-04-24 07:42:04

<!– BEGIN TEMPLATE: formanswers –>
nicbaz - SRL Member Application Form
nicbaz

What is the meaning to life?
To have fun and enjoy yourself.

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


Programming Knowledge
Scar and a lil php

Other Communitys
Excepted member at kyab

How Long have You Played Runescape
3 years

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

{—Wizzup said i could re-apply in 2 weeks its been about 2 weeks since i applied last time—————}


Hello all srl members, devs, mods and admins, today i am re-applying for SRL members status.
I am nicbaz and i am 14 years old i have been at this for for allmost 2 years now! While i have been
here i have been slowly learning now to script and i have recenlty working on a 4 location yew cutter,
the script is not flalwless at all locations but it is getting there, in this script i have tryed to include
all the things needed for srl members, i have included

1.Map Walking
2.My own TPA cutting
3.DDTM's
4.DTM's
5.Cases….
…. and lots more you will see if you look through the script, just to clear things up
can you not comment on the script having this

////////////////////////////////////
////////////////////ddddd///////////
////////////////////////////////////

after each procedure beacuse thats how i like to do it to keep my script nice and neat.

also you might say Fr0zonSouls TypeSend2 is like half the script, well its not without the type send it would still
be 1350 lines+, also you may say i use to much lines on DDTMS well there are 4 banks so i need 4 DDTMS
well enough about the script and more about me…

I live in austrila victoria i go to school i am year 9.

my hobbies are

1.Motobike Riding
2.Sking, water and snow.
3.SCripting and hangging out on srl
4.Just going to the movies and such with my rl mates.

well this is the end of my app i will try to attach the script on at the bottom and post in {SCAR},,,,{/SCAR} tabs

Also remember to check out my DTM tut :p


Nicbaz

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

program VarrokYewCutter;
{.include SRl/SRL/Misc/SMART.scar}
{.include SRl/SRl.scar}
{.include SRL/SRL/Skill/Woodcutting.scar}
{.include SRL/SRL/misc/Users.scar}


//////////////////////////////////////////////////////////////////////
// Multi Yew Cutter By Nicbaz //
// \\
// \\
// Hello And Welcome To My first real \\
// Script this script is designed to cut and bank yew logs in //
// Dranor bank, VEB, EdgeVill, and Fally. //
// Fill in the script in the below lines lines 60-67 \\
// This Script would be about 1300 lines without fr0zons ts2 //
////////////////////////////////////////////////////////////////////\\
// V 1.1 //
// Wrote Wcing Procedure \\
// Walking With symbles //
// \\
//////////////////////////////////////////////////////////////////////
//V 1.2 \\
// Started To learn DTM's //
// And Radial Map Walking \\
// //
/////////////////////////////////////////////////////////////////////
//V 1.3 \\
//TPA's In the wood Cutting Procedure //
// \\
/////////////////////////////////////////////////////////////////////
//V 1.4 \\
//Added in random talking //
//And DTM's For Banking \\
/////////////////////////////////////////////////////////////////////
//V 1.5 //
//Added Random Talking \\
//Added In Multi Player //
// \\
/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
//Future Updates \\ // //
//Needed SRL stats \\
// \\
/////////////////////////////////////////////////////////////////////
// Thanks to Torrent of Flame for his Tutorials and Help :D \\
/////////////////////////////////////////////////////////////////////
{ Rember to choose Varrok edgevill varrok or dranor, abd btw varrok
works best atm }

const
YourSRLId = '';
YourSRLPassword ='';
SmartWorld = 108;
usesmart = true;


procedure DeclarePlayers;
begin

HowManyPlayers := 1; //How many Players
NumberOfPlayers(HowManyPlayers);
CurrentPlayer :=0; //Starting Player

Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := ''; // 3/4 of name.
Players[0].Loc := 'varrok'; // change to edgevill, fally, varrok, dranor
Players[0].Active := True;
Players[0].Integers[0]:= 100; //Loads to Do
{
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := ''; // 3/4 of name.
Players[0].Loc := 'varrok'; // change to edgevill, fally, varrok, dranor
Players[0].Active := True;
Players[0].Integers[0]:= 100; //Loads to Do

Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := ''; // 3/4 of name.
Players[0].Loc := 'varrok'; // change to edgevill, fally, varrok, dranor
Players[0].Active := True;
Players[0].Integers[0]:= 100; //Loads to Do
}
end;

/////////////////////////////////////////////////////////////////////
////////////////////////Dont Edit Below Here ////////////////////////
/////////////////////////////////////////////////////////////////////

var x, y: integer;
Loads, Yew: integer;
BrokenAxe: integer;
NormalAxe: integer;
BrokenAxes: integer;
LevelsGained: integer;


/////////////////////////////////////////////////////////////////////
////////////////////////nicbaz load DDTM's //////////////////////////
/////////////////////////////////////////////////////////////////////
/////////BANK////////////////
function DDTMBank: integer;
var
BankMP: TDTMPointDef;
BankSP: array of TDTMPointDef;
BankDDTM: TDTM;
begin
SetArrayLength(BankSP, 4);

BankMP.x := 80;
BankMP.y := 30;
BankMP.color := 8094084;
BankMP.tolerance := 225;

BankSP[0].x := 90;
BankSP[0].y := 34;
BankSP[0].areasize := 2;
BankSP[0].areashape := 0;
BankSP[0].color := 1310462;
BankSP[0].Tolerance := 5;

BankSP[1].x := 71;
BankSP[1].y := 33;
BankSP[1].areasize := 2;
BankSP[1].areashape := 0;
BankSP[1].color := 195836;
BankSP[1].Tolerance := 5;

BankSP[2].x := 79;
BankSP[2].y := 34;
BankSP[2].areasize := 2;
BankSP[2].areashape := 0;
BankSP[2].color := 195836;
BankSP[2].Tolerance := 5;

BankSP[3].x := 75;
BankSP[3].y := 33;
BankSP[3].areasize := 2;
BankSP[3].areashape := 0;
BankSP[3].color := 195836;
BankSP[3].Tolerance := 5;

BankDDTM.MainPoint := BankMP;
BankDDTM.SubPoints := BankSP;
result := AddDTM(BankDDTM);
end;

////////////EdgeBank////////////
function EdgeBankDDTM: Integer;
var
EdgeMP: TDTMPointDef;
EdgeSP: array of TDTMPointDef;
EdgeDDTM: TDTM;
begin
SetArrayLength(EdgeSP, 5);

EdgeMP.x := 115;
EdgeMP.y := 47;
EdgeMP.AreaSize := 0;
EdgeMP.AreaShape := 0;
EdgeMP.Color := 6711150;
EdgeMP.Tolerance := 225;

EdgeSP[0].x := 115;
EdgeSP[0].y := 47;
EdgeSP[0].AreaSize := 0;
EdgeSP[0].AreaShape := 0;
EdgeSP[0].Color := 6711150;
EdgeSP[0].Tolerance := 225;

EdgeSP[1].x := 113;
EdgeSP[1].y := 39;
EdgeSP[1].AreaSize := 2;
EdgeSP[1].AreaShape := 0;
EdgeSP[1].Color := 982782;
EdgeSP[1].Tolerance := 5;

EdgeSP[2].x := 112;
EdgeSP[2].y := 48;
EdgeSP[2].AreaSize := 2;
EdgeSP[2].AreaShape := 0;
EdgeSP[2].Color := 195836;
EdgeSP[2].Tolerance := 5;

EdgeSP[3].x := 112;
EdgeSP[3].y := 57;
EdgeSP[3].AreaSize := 2;
EdgeSP[3].AreaShape := 0;
EdgeSP[3].Color := 195836;
EdgeSP[3].Tolerance := 5;

EdgeSP[4].x := 117;
EdgeSP[4].y := 37;
EdgeSP[4].AreaSize := 2;
EdgeSP[4].AreaShape := 0;
EdgeSP[4].Color := 60909;
EdgeSP[4].Tolerance := 5;

EdgeDDTM.MainPoint := EdgeMP;
EdgeDDTM.SubPoints := EdgeSP;
Result := AddDTM(EdgeDDTM);
end;

///////////////Fally////////////////

function FallyBankDDTM: Integer;
var
FallyMP: TDTMPointDef;
FallySP: array of TDTMPointDef;
FallyDDTM: TDTM;
begin
FallyMP.x := 109;
FallyMP.y := 91;
FallyMP.AreaSize := 0;
FallyMP.AreaShape := 0;
FallyMP.Color := 9943484;
FallyMP.Tolerance := 50;

FallySP[0].x := 109;
FallySP[0].y := 91;
FallySP[0].AreaSize := 0;
FallySP[0].AreaShape := 0;
FallySP[0].Color := 9943484;
FallySP[0].Tolerance := 50;

FallySP[1].x := 101;
FallySP[1].y := 93;
FallySP[1].AreaSize := 0;
FallySP[1].AreaShape := 0;
FallySP[1].Color := 195836;
FallySP[1].Tolerance := 0;

FallySP[2].x := 119;
FallySP[2].y := 94;
FallySP[2].AreaSize := 0;
FallySP[2].AreaShape := 0;
FallySP[2].Color := 60909;
FallySP[2].Tolerance := 0;

FallySP[3].x := 117;
FallySP[3].y := 94;
FallySP[3].AreaSize := 0;
FallySP[3].AreaShape := 0;
FallySP[3].Color := 195836;
FallySP[3].Tolerance := 0;

FallySP[4].x := 110;
FallySP[4].y := 94;
FallySP[4].AreaSize := 0;
FallySP[4].AreaShape := 0;
FallySP[4].Color := 195836;
FallySP[4].Tolerance := 0;

FallySP[5].x := 97;
FallySP[5].y := 93;
FallySP[5].AreaSize := 0;
FallySP[5].AreaShape := 0;
FallySP[5].Color := 195836;
FallySP[5].Tolerance := 0;

FallyDDTM.MainPoint := FallyMP;
FallyDDTM.SubPoints := FallySP;
Result := AddDTM(FallyDDTM);
end;
///////////////Dranor////////////////
function DranorBankDDTM: Integer;
var
DranorMP: TDTMPointDef;
DranorSP: array of TDTMPointDef;
DranorDDTM: TDTM;
begin
SetArrayLength(DranorSP, 4);

DranorMP.x := 65;
DranorMP.y := 108;
DranorMP.AreaSize := 0;
DranorMP.AreaShape := 0;
DranorMP.Color := 6381671;
DranorMP.Tolerance := 0;

DranorSP[0].x := 65;
DranorSP[0].y := 108;
DranorSP[0].AreaSize := 0;
DranorSP[0].AreaShape := 0;
DranorSP[0].Color := 6381671;
DranorSP[0].Tolerance := 0;

DranorSP[1].x := 61;
DranorSP[1].y := 115;
DranorSP[1].AreaSize := 2;
DranorSP[1].AreaShape := 0;
DranorSP[1].Color := 195836;
DranorSP[1].Tolerance := 5;

DranorSP[2].x := 60;
DranorSP[2].y := 102;
DranorSP[2].AreaSize := 2;
DranorSP[2].AreaShape := 0;
DranorSP[2].Color := 195836;
DranorSP[2].Tolerance := 5;

DranorSP[3].x := 61;
DranorSP[3].y := 111;
DranorSP[3].AreaSize := 2;
DranorSP[3].AreaShape := 0;
DranorSP[3].Color := 195836;
DranorSP[3].Tolerance := 5;

DranorDDTM.MainPoint := DranorMP;
DranorDDTM.SubPoints := DranorSP;
Result := AddDTM(DranorDDTM);
end;

////////////////////////////////////////////////////////////////////////
{ THIS IS WORK OF FR0ZON SOUL IM USEING THIS
FOR ANIT-BAN FOR TYPING I REPEAT IT IS NOT MINE USEING IT BEACUSE IT IS
BETTER THEN THE SRL TYPESEND }
////////////////////////////////////////////////////////////////////////
Type
TextType = Record
NWord, OWord : String;
ChangeType : Integer;
end;

{*************************************************************************************************
Procedure TypeSend2(Text: String; SMART : Boolean);
By: FrÕzÑ_§ÕµL.
Description: Types Text Human-like, pressing random keys around the original.Will not mess up words such as red: or wave:
as long as there is no space before the :. Will type in SMART if needed.
Use: TypeSend2('i want to change this text', false);
SMART use: TypeSend2('i want to change this text', true);
*************************************************************************************************}
Procedure TypeSend2(Text: String; SMART : Boolean);

var
i, j, k, l, DP : integer;
WordArr : Array [0..100] of TextType;
Keys : Array [0..3] of String;

Begin
i := 0;
Text := Padr(Padl(Trim(Text), Length(Trim(Text)) + 1), Length(Trim(Text)) + 2);
Repeat
WordArr[i].OWord := Between(' ', ' ', Text);
WordArr[i].NWord := WordArr[i].OWord;
Delete(Text, Pos(WordArr[i].OWord, Text) - 1, Length(WordArr[i].OWord) + 1);
i := i + 1;
Until(Text = ' ');
for i := 0 to 100 do
Begin
WordArr[i].ChangeType := -1;
if Random(100) < 10 then
if Pos(':', WordArr[i].OWord) < 1 then
WordArr[i].ChangeType := Random(3);
end;
i := 0;
Repeat
Repeat
if WordArr[i].ChangeType = -1 then
Begin
i := i + 1;
if i > 100 then
Break;
end;
until(WordArr[i].ChangeType >= 0);
if Length(WordArr[i].OWord) = 0 then
Break;
j := Random(Length(WordArr[i].OWord)) + 1;
if WordArr[i].ChangeType = 1 then
DP := Pos(Copy(Lowercase(WordArr[i].OWord), j, 1), WordArr[i].OWord);
Keys[3] := '1234567890';
Keys[2] := 'qwertyuiop';
Keys[1] := 'asdfghjkl';
Keys[0] := 'zxcvbnm';
Repeat
for k := 3 downto 0 do
Begin
l := Pos(Copy(Lowercase(WordArr[i].OWord), j, 1), Keys[k]);
if l > 0 then
Break;
end;
if l = 0 then
Begin
i := i + 1;
if (i > 100) then
Break;
end;
until(l > 0);
if (i > 100) then
Break;
case k of
0 : k := k + Random(1);
1, 2 : k := k - 1 + Random(2);
3 : k := k - 1 + Random(1);
end;
case l of
1 : l := 1 + Random(1);
Length(Keys[k]) : l := Length(Keys[k]) - 1 + Random(1);
else
l := l - 1 + Random(2);
end;
if (Random(100) > 70) or (WordArr[i].ChangeType = 1) then
Begin
Delete(WordArr[i].NWord, j, 1);
Insert(Copy(Keys[k], l, 1), WordArr[i].NWord, j);
end else
Insert(Copy(Keys[k], l, 1), WordArr[i].NWord, j - 1 + Random(1));
i := i + 1;
Until(i = 101);
for i := 0 to 100 do
Begin
for l := 1 to Length(WordArr[i].NWord) do
Begin
if Pos(Copy(WordArr[i].NWord, l, 1), '~!@#$%^&*()_+{}|:"<>?') > 0 then
Begin
KeyDown(VK_SHIFT);
Wait(100 + Random(100));
end;
if SMART then
SmartSendKeys(Copy(WordArr[i].NWord, l, 1))
else
TypeByte(GetKeyCode(StrGet(WordArr[i].NWord, l)));
Try
if Not(Pos(Copy(WordArr[i].NWord, l + 1, 1), '~!@#$%^&*()_+{}|:"<>?') > 0) then
KeyUp(VK_SHIFT);
Except
end;
Wait(100 + Random(100));
if (WordArr[i].ChangeType = 1) and (l = DP) then
if (Copy(WordArr[i].NWord, l, 1) <> Copy(WordArr[i].OWord, DP, 1)) then
Begin
Wait(200 + Random(200));
TypeByte(VK_BACK);
Wait(200 + Random(200));
if SMART then
SmartSendKeys(Copy(WordArr[i].OWord, DP, 1))
else
TypeByte(GetKeyCode(StrGet(WordArr[i].OWord, DP)));
Wait(200 + Random(200));
end;
end;
if Length(WordArr[i].NWord) = 0 then
Break;
if SMART then
SmartSendKeys(' ')
else
TypeByte(VK_SPACE);
end;
if SMART then
SmartSendKeys(chr(10))
else
TypeByte(GetKeyCode(chr(13)));
for l := 0 to 100 do
if WordArr[l].ChangeType = 2 then
if WordArr[l].OWord <> WordArr[l].NWord then
Begin
for i := 1 to Length(WordArr[l].OWord) do
Begin
if SMART then
SmartSendKeys(Copy(WordArr[i].OWord, i, 1))
else
TypeByte(GetKeyCode(StrGet(WordArr[l].OWord, i)));
Wait(100 + Random(100));
end;
if WordArr[l].OWord = '' then
Exit;
KeyDown(VK_SHIFT);
Wait(100 + Random(100));
if SMART then
SmartSendKeys('*')
else
TypeByte(GetKeyCode('8'));
Wait(200 + Random(200));
KeyUp(VK_SHIFT);
Wait(100 + Random(100));
if SMART then
SmartSendKeys(chr(10))
else
TypeByte(GetKeyCode(chr(13)));
Exit;
end;
end;
{END OF FR0ZON SOULS TYPESEND2 BACK ONTO MY SCRIPT}
/////////////////////////////////////////////////////////////////////
////////////////////////nicbaz load DTM's ///////////////////////////
/////////////////////////////////////////////////////////////////////
procedure LoadDTMs;
begin

BrokenAxe := DTMFromString('78DA636C616260E0636440061D697C601A26C' +
'AD80354C38FAA06260B57D30754C34D404D2F508D080135CD4035' +
'5C04D4D400D5A8E05703008C0604B4');

NormalAxe := DTMFromString('78DA63E4626060E067400175F17C609A11CA6' +
'7640312720C688011550D0B909025A0860748B01050230E245809' +
'A81105127C04D480E439F1AB01004CBC01C4');

end;

/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz Fix Screen ///////////////////////
/////////////////////////////////////////////////////////////////////
procedure FixScreen;
begin
MakeCompass('n');
Wait(200+random(100));
Setangle(true);
Wait(200+random(100));
MakeCompass('n');
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz Is Axe Broken ////////////////////
/////////////////////////////////////////////////////////////////////
procedure Talk;
var
P: Integer;
begin
if (not(LoggedIn)) then
Exit;
p:=1+Random(35);
if (p=4) then
begin
case Random(36) of
0: TypeSend2('hi all', usesmart);
1: TypeSend2('temple is near', usesmart);
2: TypeSend2('hellooo', usesmart);
3: TypeSend2('hay', usesmart);
4: TypeSend2('heya', usesmart);
5: TypeSend2('i hate those dam botters', usesmart);
6: TypeSend2('boring', usesmart);
7: TypeSend2('blaaaaahhh', usesmart);
8: TypeSend2('cutting yews takes long', usesmart);
9: TypeSend2('booooooooring', usesmart);
10: TypeSend2('yay', usesmart);
11: TypeSend2('ouch', usesmart);
12: TypeSend2('ohhhh', usesmart);
13: TypeSend2('blah.', usesmart);
14: TypeSend2('quiet', usesmart);
15: TypeSend2('bam', usesmart);
16: TypeSend2('come down yew', usesmart);
17: TypeSend2('meuahahah', usesmart);
18: TypeSend2('bleh', usesmart);
19: TypeSend2('yewwww', usesmart);
20: TypeSend2('bagh', usesmart);
21: TypeSend2('argh !', usesmart);
22: TypeSend2('gree !', usesmart);
23: TypeSend2('come down yew !', usesmart);
24: TypeSend2('yew come here !', usesmart);
25: TypeSend2('i mean it !', usesmart);
26: TypeSend2('argh !', usesmart);
27: TypeSend2('sozz !', usesmart);
28: TypeSend2('muahahahahahaha i kill yews !', usesmart);
29: TypeSend2('zzzz !', usesmart);
30: TypeSend2('sleeps for mees !', usesmart);
31: TypeSend2('i want to do this', usesmart);
32: TypeSend2('i lovvvessss all you guys', usesmart);
33: TypeSend2('i like sayig random stuff', usesmart);
34: TypeSend2('yew tree die', usesmart);
35: TypeSend2('lololol', usesmart);

end;
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////nicbaz Auto Responder ///////////////////////
/////////////////////////////////////////////////////////////////////
function AutoResponder:boolean;
var
talks:integer;

begin
if inchat('wc') or inchat('oodcutting')then
begin
case Random(5) of
0: typesend2('my wc lvl is 2 good to be tru', usesmart);
1: typesend2('rofl choob i never give my wc lvl', usesmart);
2: typesend2('m wc lvl is 9999', usesmart);
3: typesend2('lol 99', usesmart);
4: typesend2('wc 4 l3f2', usesmart);
end;
Talks := Talks + 1;
Result := true;
gametab(4);
Exit;
end;
if (inchat('macro')) or (inchat('bot')) or (inchat('autoer'))then
begin
case Random(5) of
0: typesend2('macro rofl never', usesmart);
1: typesend2('no way i anit', usesmart);
2: typesend2('all bots should die', usesmart);
3: typesend2('lol 99', usesmart);
4: typesend2('wc 4 l3f2', usesmart);
end;
Talks := Talks + 1;
Result := true;
exit;
end;
if (inchat('hey')) or (inchat('hi')) or (inchat('yo'))then
begin
case Random(11) of
0: typesend2('yoooo wasssupppppppp', usesmart);
1: typesend2('hi', usesmart);
2: typesend2('hey', usesmart);
3: typesend2('yo', usesmart);
4: typesend2('yer', usesmart);
5: typesend2('what', usesmart);
6: typesend2('hiiies', usesmart);
7: typesend2('yoooooo', usesmart);
8: typesend2('lol yer hi', usesmart);
9: typesend2('noob', usesmart);
10: typesend2('hey', usesmart);
end;

Talks := Talks + 1;
Result := true;
exit;
end;
if (inchat('auto')) or (inchat('talk')) or (inchat('noob'))then
begin
case Random(5) of
0: typesend2('im not a noob i dont have to talk go away', usesmart);
1: typesend2('lol noob i dont auto', usesmart);
2: typesend2('rolf never', usesmart);
3: typesend2('fr00b', usesmart);
4: typesend2('im never talking to you f00b', usesmart);
end;
Talks := Talks + 1;
Result := true;
exit;
end;
if (inchat('nice')) or (inchat('rich')) or (inchat('good'))then
begin
case Random(5) of
0: typesend2('ty ur nice 2', usesmart);
1: typesend2('i am rich so i dont talk to noobs', usesmart);
2: typesend2('rolf never', usesmart);
3: typesend2('i am good rich guy', usesmart);
4: typesend2('yyoyo its nice being richss', usesmart);
end;
Talks := Talks + 1;
Result := true;
exit;
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////nicbaz LevelsGained /////////////////////////
/////////////////////////////////////////////////////////////////////
function HandleContinue:boolean;
var
xx, yy:integer;
begin
if (FindText(xx, yy, 'ained', NPCChars, 0, 340, 500, 460))
or (IsChatBlackTextAnyLine('ained')) then
begin
LevelsGained := LevelsGained + 1;
result := true;
end else
result := false;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////nicbaz Walk To Bank /////////////////////////
/////////////////////////////////////////////////////////////////////
procedure WalkToVarrokBank;
begin
MakeCompass('S');
RoadColor := FindVarrockRoadColor;
if (findSymbol(x, y, 'tree')) then
begin
mouse(x, y, 2, 2, true);
FFlag(2);
if not RadialWalk(RoadColor, 355, 25, 65, 4, 4)
then
RadialWalk(RoadColor, 355, 27, 65, 4, 4);
Writeln('Walking To bank')
if not RadialWalk(RoadColor, 359, 27, 72, 4, 4)
then
RadialWalk(RoadColor, 355, 33, 72, 4, 4);
Writeln('Walking To bank')
if not RadialWalk(RoadColor, 345, 15, 60, 4, 4)
then
RadialWalk(RoadColor, 345, 13, 60, 4, 4);
Writeln('Walking To bank')
if (findSymbol(x, y, 'bank')) then
begin
mouse(x, y, 2, 2, true);
FFlag(2);
if not (findSymbol(x, y, 'bank')) then
begin
MakeCompass('s');
wait(1000);
if DTMRotated(DDTMBank, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Writeln ('found bank dtm');
wait(1000)
Mouse(x - 6, y - 6, 12, 2, true);
FFlag(0)
if not DTMRotated(DDTMBank, x, y, MMX1, MMY1, MMX2, MMY2) then
Writeln ('did not find bank');
NextPlayer(False);
end;
end;
end;
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////Edge Bank////////////////////////////////
/////////////////////////////////////////////////////////////////////
procedure WalkToEdgeBank;
begin
MakeCompass('n');
if(findSymbol(x, y, 'bank')) then
mouse(x, y, 2, 2, true);
if not (findSymbol(x, y, 'bank')) then
begin
wait(1000);
if DTMRotated(EdgeBankDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Writeln ('found bank dtm');
wait(1000)
Mouse(x - 6, y - 6, 12, 2, true);
FFlag(0)
end else
if(findSymbol(x, y, 'dungeon')) then
begin
mouse(x - 10, y, 2, 2, true);
FFlag(2);
MakeCompass('n');
RadialWalk(FindWaterColor, 35, 90, 30, 4, 4);
FFlag(20);
if(findSymbol(x, y, 'bank')) then
begin
mouse(x, y, 2, 2, true);
FFlag(2);
if not (findSymbol(x, y, 'bank')) then
begin
wait(1000);
if not DTMRotated(EdgeBankDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
Writeln ('did not found bank dtm');
Nextplayer(false);
begin
Writeln ('found bank dtm');
wait(1000)
Mouse(x - 6, y - 6, 12, 2, true);
FFlag(0)
end;
end;
end;
end;
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////Fally Bank///////////////////////////////
/////////////////////////////////////////////////////////////////////
procedure WalkToFallyBank;
begin
RoadColor := FindFallyRoadColor;
MakeCompass('n');
if(findSymbol(x, y, 'tree')) then
begin
RadialRoadWalk(FindRoadColor, 45, 100, 25, 1, 1);
if not RadialRoadWalk(RoadColor, 0, 40, 72, 1, 1) then
RadialRoadWalk(FindRoadColor, 355, 45, 72, 1, 1);
if not RadialRoadWalk(FindRoadColor, 359, 40, 50, 1, 1) then
RadialRoadWalk(FindRoadColor, 355, 40, 50, 1, 1);
if(findSymbol(x, y, 'bank')) then begin
Mouse(x, y, 5, 5, true);
if not (findSymbol(x, y, 'bank')) then
begin
wait(1000);
if not DTMRotated(FallyBankDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
Writeln ('did not found bank dtm');
Nextplayer(false);
begin
Writeln ('found bank dtm');
wait(1000)
Mouse(x - 6, y - 6, 12, 2, true);
FFlag(0)
end;
end;
end;
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////Dranor Bank//////////////////////////////
/////////////////////////////////////////////////////////////////////
procedure WalkToDranorBank;
begin
if (findSymbol(x, y, 'tree')) then
begin
if not RadialRoadWalk(FindDirtRoadColor, 260, 244, 72, 2 , 2) then
RadialRoadWalk(FindDirtRoadColor, 260, 230, 74, 2 , 2);
if not RadialRoadWalk(FindDirtRoadColor, 224, 226, 79, 2 , 2) then
RadialRoadWalk(FindDirtRoadColor, 230, 240, 79, 2 , 2);
if not RadialRoadWalk(FindRoadColor, 313, 297, 76, 2 , 2) then
RadialRoadWalk(FindRoadColor, 320, 280, 76, 2 , 2);
if not RadialRoadWalk(FindRoadColor, 334, 350, 77, 2 , 2) then
RadialRoadWalk(FindRoadColor, 334, 350, 77, 2 , 2);
if not DTMRotated(DranorBankDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
Writeln ('did not found bank dtm');
Nextplayer(false);
begin
Writeln ('found bank dtm');
wait(1000)
Mouse(x - 6, y - 6, 12, 2, true);
FFlag(0)
end;
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz AntiBan //////////////////////////
/////////////////////////////////////////////////////////////////////
procedure AntiBans;
begin
if(not(LoggedIn))then
Exit;
case Random(16) of

0: begin
HoverSkill('Mining', false);
wait(1000+random(1000));
GameTab(4);
end;

1: begin
HoverSkill('Woodcutting', false);
wait(1000+random(1000));
GameTab(4);
end;

2: begin
HoverSkill('Smithing', false);
wait(4000+random(550));
GameTab(4);
end;


3: PickUpMouse;

4: MouseBox(MMX1,MMY1,MMX2,MMY2,3);

5: SleepAndMoveMouse(5000+random(6000));

6: begin
GameTab(2 + Random(12));
wait(2000+random(1500));
GameTab(4);
end;


7: begin
GameTab(6 + Random(12));
wait(1500+random(700));
GameTab(4);
end;

8: begin
HoverSkill('Defene', false);
wait(4000+random(550));
GameTab(4);
end;

9: begin
RandomRClick;
wait(1000)
end;

10: begin
BoredHuman;
wait(2000+random (333));
end;

11: begin
PickUpMouse;
end;

12: begin
RandomMovement;
wait(2000+random (333));
end;

13: begin
case (Random(6))of
1: MakeCompass('S');
2: MakeCompass('N');
3: MakeCompass('W');
4: MakeCompass('E');
end;
end;
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz randoms //////////////////////////
/////////////////////////////////////////////////////////////////////
procedure Randoms;
begin
FindNormalRandoms;
FindLamp('Woodcutting');
FindEnt(x, y, true);
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz CheckAxe /////////////////////////
/////////////////////////////////////////////////////////////////////
procedure CheckAxe;
begin
if FindAxe then
begin
Writeln('Axe Found')
end
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz Check Versions ///////////////////
/////////////////////////////////////////////////////////////////////
function CheckVersions:boolean;
begin
result:=false;
if (SRLVersionNumber < 15) then
begin
WriteLn('Wrong SRL Version; Download the latest update at http://www.sr'
+ 'l-forums.com/');
TerminateScript;
end;
if (GetScarVersion < 314) then
begin
WriteLn('Wrong SCAR Version; Download the latest update at http://www.fr'
+ 'eddy1990.com/');
TerminateScript;
end;
if (SRLVersionNumber = 15) and (GetScarVersion = 315) then
result:=true;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz Talk//////////////////////////////
/////////////////////////////////////////////////////////////////////
procedure TalkLots;
begin
if(not(LoggedIn))then
Exit;
case Random(2) of
0: talk;
1:AutoResponder
end;
end
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz Ent//// //////////////////////////
/////////////////////////////////////////////////////////////////////
procedure EntFinder; //By Yohojo - edited by bobbohobbo
var
EX, EY: integer;
FX, FY: integer;
SafeEntWait: LongInt;
begin
if (not (LoggedIn)) then
Exit;
begin
Status('Ent Checking')
if
(FindObjCustom(EX, EY, ['Yew'], [4690821], 7)) then
begin
MMouse(EX, EY, 0, 0)
if FindColorTolerance(FX, FY, 55769, 85, 15, 115, 15, 20) then
begin
Status('Found Ent');
MarkTime(SafeEntWait)
repeat
FTWait(5)
FindNormalRandoms;
if not (LoggedIn) then
NextPlayer(False);
until TimeFromMark(SafeEntWait) > 20000 + Random(5000);
end;
end;
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////Naum/Torrent// //////////////////////////
/////////////////////////////////////////////////////////////////////
procedure WaitWhilstChopping; //Credits to numan and torrent for this
var
CuttingMark : Integer;
begin
MarkTime(CuttingMark);
repeat
AntiBans;
Randoms;
CheckAxe;
EntFinder;
AntiBans;
until (FindBlackChatMessage('cut some logs')) or (TimeFromMark(CuttingMark) > (200000));
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz FindDaYewTree/////////////////////
/////////////////////////////////////////////////////////////////////
function FindDaYewTree: boolean; // i made this with help from tuts.
var
YewTreeTPA: TPointArray;
I: Integer;
YewTreeColors : array [0..4] of integer;
begin
YewTreeColors[0] := 2380107;
YewTreeColors[1] := 1328698;
YewTreeColors[2] := 3239782;
YewTreeColors[3] := 1520426;
YewTreeColors[4] := 2044980;
for i := 0 to 4 do
FindColorsSpiralTolerance(X, Y, YewTreeTPA, YewTreeColors[i], MSX1, MSY1, MSX2, MSY2,45);
begin
MMouse(YewTreeTPA[i].x, YewTreeTPA[i].y, 3, 3);
wait(78)
if IsUptext('hop')
then
begin
Result:= True;
end;
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz ChooseColor///////////////////////
/////////////////////////////////////////////////////////////////////
function PickYewColour: Integer; // ty jesus for help
begin
case random(6) of
0: Result := 3297356;
1: Result := 3898223;
2: Result := 534303;
3: Result := 534046;
4: Result := 4218718;
5: Result := 4898318;
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz banking //////////////////////////
/////////////////////////////////////////////////////////////////////
procedure Banking;
begin

Yew := DTMFromString('78DA6394616060E0674001A10E5C0C5C409A1' +
'188FF0301A3169021C4800618914820AD0A243808A8910312AC04' +
'D480EC6127A006E45E09026AE48184247E3500B4EB05E9');
begin
Wait(300 + random(160));
OpenBankQuiet('sb');

if (not (FindDTM(Yew, x, y, mix1, miy1, mix2, miy2))) then
begin
if (FindColorSpiralTolerance(x, y, 608352, mix1, miy1, mix2, miy2, 15)) then
begin
Mouse(x, y, 4, 3, false);
ChooseOption('All');
Loads := Loads + 1;
end;
end else

if (FindDTM(Yew, x, y, mix1, miy1, mix2, miy2)) then
begin
Mouse(x, y, 4, 3, false);
ChooseOption('All');
Loads := Loads + 1;
end;
CloseBank;
Wait(150 + random(278));
MakeCompass('S');
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz To Tress /////////////////////////
/////////////////////////////////////////////////////////////////////
procedure WalkToVarrokTrees;
begin
MakeCompass('N');
RoadColor := FindVarrockRoadColor;
if not RadialWalk(RoadColor, 350, 10, 65, 4, 4)
then
RadialWalk(RoadColor, 345, 5, 65, 4, 4);
FFlag(2);
if FindSymbol(x, y, 'water') then
begin
if not RadialWalk(RoadColor, 0, 25, 69, 4, 4)
then
RadialWalk(RoadColor, 0, 35, 69, 4, 4);
Writeln('Walkig step 2')
FFlag(2);
if not RadialWalk(RoadColor, 0, 18, 75, 4, 4)
then
RadialWalk(RoadColor, 350, 25, 70, 4, 4);
Writeln('Walking To Tree')
FFlag(2);
if (findSymbol(x, y, 'tree'))
then
begin
mouse(x, y, 2, 2, true);
FFlag(2);
if not FindSymbol(x, y, 'tree')
then
Writeln ('did not find Trees');
NextPlayer(False);
end;
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz EdgeToTrees///////////////////////
/////////////////////////////////////////////////////////////////////
procedure WalkToEdgeTrees;
begin
MakeCompass('s');
if(findSymbol(x, y, 'tree')) then
begin
mouse(x - 10, y, 2, 2, true);
FFlag(2);
if not (findSymbol(x, y, 'tree')) then
begin
if (FindSymbol(x, y, 'water'))then
MakeCompass('n');
if not RadialWalk(FindWaterColor, 290, 340, 45, 4, 4) then
if not RadialWalk(FindWaterColor, 295, 345, 45, 4, 4) then
RadialWalk(FindWaterColor, 300, 350, 45, 4, 4);
FFlag(15);
if(findSymbol(x, y, 'dungeon')) then
begin
mouse(x, y, 2, 2, true);
FFlag(2);
if(findSymbol(x, y, 'tree')) then begin
mouse(x - 10, y, 2, 2, true);
FFlag(2);
end;
end;
end;
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz FallyToTrees//////////////////////
/////////////////////////////////////////////////////////////////////
procedure WalkToFallyTrees;
begin
RoadColor := FindFallyRoadColor;
MakeCompass('n');
if Not(RadialRoadWalk(RoadColor, 217, 195, 72, 1, -1)) then
RadialRoadWalk(RoadColor, 230, 180, 65, 0, -1);
FFlag(2);
if Not(RadialRoadWalk(RoadColor, 168, 190, 65, 1, -1))
then
if Not(RadialRoadWalk(RoadColor, 165, 195, 65, 1, -1)) then
RadialRoadWalk(FindRoadColor, 165, 195, 65, 1, -1);
FFlag(0);
if Not(RadialRoadWalk(FindRoadColor, 198, 160, 25, 1, 1)) then
RadialRoadWalk(FindRoadColor, 200, 163, 25, 1, 1);
FFlag(0);
if(findSymbol(x, y, 'tree')) then
begin
Mouse(x, y, 5, 5, true);
FFlag(0);
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz DranorToTrees/////////////////////
/////////////////////////////////////////////////////////////////////
procedure WalkToDranorTree;
begin
if DTMRotated(DranorBankDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
if not RadialRoadWalk(FindRoadColor, 114, 129, 65, 2 , 2) then
RadialRoadWalk(FindRoadColor, 120, 140, 65, 2 , 2);
if (findSymbol(x, y, 'doungen')) then
begin
if not RadialRoadWalk(FindRoadColor, 147, 181, 73, 2 , 2) then
RadialRoadWalk(FindRoadColor, 150, 190, 73, 2 , 2);
if not RadialRoadWalk(FindDirtRoadColor, 51, 71, 74, 2 , 2) then
RadialRoadWalk(FindDirtRoadColor, 40, 80, 74, 2 , 2);
if not RadialRoadWalk(FindDirtRoadColor, 59, 75, 72, 2 , 2) then
RadialRoadWalk(FindDirtRoadColor, 40, 85, 72, 2 , 2);
if not (findSymbol(x, y, 'tree')) then
Writeln ('did not find tree');
Nextplayer (false);
begin
Mouse(x, y, 5, 5, true);
end;
end;
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz Is Axe Broken ////////////////////
/////////////////////////////////////////////////////////////////////
function IsAxeBroken: boolean; // ty for people helping on this
begin
if FindDTM(BrokenAxe, x, y, mix1, miy1, mix2, miy2) then
begin
Writeln('Axe is broken! Attempting to bank and get new one.');
BrokenAxes := BrokenAxes + 1;
if (Players[CurrentPlayer].Loc = 'varrok') then
begin
WalkToVarrokBank;
end;
if (Players[CurrentPlayer].Loc = 'edgevill') then
begin
WalkToEdgeBank;
end;
if (Players[CurrentPlayer].Loc = 'fally') then
begin
WalkToFallyBank;
end;
if (Players[CurrentPlayer].Loc = 'dranor') then
begin
WalkToDranorBank;
end;
begin
Writeln('Banking for new axe..');
Banking;
Mouse(x, y, 4, 4, false);
ChooseOption('eposit');
if (FindDTM(NormalAxe, x, y, mix1, miy1, mix2, miy2)) then
begin
Mouse(x, y, 4, 4, false);
ChooseOption('1')
CheckAxe;
CloseBank;
end;
end;
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz ChooseClick //////////////////////
/////////////////////////////////////////////////////////////////////
function ChooseClick: Integer; // jesus for help TY
begin
case random(2) of
0: Mouse(x, y, 3, 3, true);
1: begin
Mouse(x, y, 4, 4, false);
ChooseOption('hop');
end;
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz ChopYew //////////////////////////
/////////////////////////////////////////////////////////////////////
procedure ChopYew;
var Attempts: integer;
CuttingTime: integer;
begin
if not LoggedIn then NextPlayer(false);
MarkTime(CuttingTime);
SetAngle(true);
repeat
if (not (FindDaYewTree)) then
begin
Wait(2000 + random(250));
Attempts := Attempts + 1;
if (Attempts = 100) then
begin
Writeln('oh noos no yew tree bahh');
Attempts := 0;
NextPlayer(false);
Exit;
Wait(1500 + random(1200));
end;
end else
begin
if FindDaYewTree then
begin
ChooseClick;
WaitWhilstChopping;
end;
begin
Randoms;
Antibans;
EntFinder;
FindEnt(x, y, True);
end;
end;
until (TimeFromMark(CuttingTime) > 800000 + random(60000)) or (InvFull)
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz Nicbaz////////////////////////////
/////////////////////////////////////////////////////////////////////

procedure text;
begin
ClearDebug;
Writeln(' _______ .__ ___. ')
wait(250 + random(30));
Writeln(' \ \ |__| ____\_ |__ _____ ________')
wait(250 + random(30));
Writeln(' / | \| |/ ___\| __ \\__ \ \___ /')
wait(250 + random(30));
Writeln('/ | \ \ \___| \_\ \/ __ \_/ / ')
wait(250 + random(30));
Writeln('\____|__ /__|\___ >___ (____ /_____ \')
wait(250 + random(30));
Writeln(' \/ \/ \/ \/ \/')
wait(2000)
Writeln(' _____.___. __________ ')
wait(250 + random(30));
Writeln(' \__ | | ______ _ __ \______ \______ _ __ ___________')
wait(250 + random(30));
Writeln(' / | |/ __ \ \/ \/ / | ___/ _ \ \/ \/ // __ \_ __ \')
wait(250 + random(30));
Writeln(' \____ \ ___/\ / | | ( <_> ) /\ ___/| | \/')
wait(250 + random(30));
Writeln(' / ______|\___ >\/\_/ |____| \____/ \/\_/ \___ >__| ')
wait(250 + random(30));
Writeln(' \/ \/ \/ ')
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz Anti Leech////////////////////////
/////////////////////////////////////////////////////////////////////
procedure DieLeech;
begin
if (SRLID = '') or (SRLPassword = '')then
begin
Wait(1000+Random(400));
ClearDebug;
Writeln('YOU ARE A LEACHER');
wait (1000)
Writeln('So Go Get Your Self a SRL ID and PAss');
wait(1000)
Writeln('If you dont do that you the script will not run');
Wait(1000)
Writeln('www.srl-forums.com');
wait(1000)
Writeln('Go kill your SELF!!!!!');
Wait(1000)
Writeln('NICBAZZZZ');
TerminateScript;
end;
end;
/////////////////////////////////////////////////////////////////////////
///////////////////////////nicbaz Proggy/////////////////////////////////
/////////////////////////////////////////////////////////////////////////
procedure Proggy;
begin
ClearDebug;
Writeln(',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,');
Writeln('/\Please Post Progress Reports & Any problems /\ ');
Writeln('//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ ');
Writeln('//\\Worked For: ' + TimeRunning + ' //\\');
Writeln('//\\Did: ' + IntToStr(Loads) + ' Loads //\\');
Writeln('//\\Broke: ' + IntToStr(BrokenAxes) + ' Axes //\\');
Writeln('//\\Talked: ' + IntToStr (Talks) + 'To //\\');
Writeln('//\\Levels: ' + IntToStr (LevelsGained) + 'Gained levels //\\');
Writeln('//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ ');
Writeln('//\\ Thanks for Using my Script :D //\\ ');
Writeln('```````````````````````````````````````````````');
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////Varrok///////////////////////////////////
/////////////////////////////////////////////////////////////////////
procedure Varrok;
begin
WalkToVarrokTrees;
ChopYew;
WalkToVarrokbank;
Banking;
if (Loads = Players[CurrentPlayer].Integers[0]) then
begin
NextPlayer(True);
Loads := 0;
MakeCompass('S')
Writeln('Players Switched successfully')
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////EdgeVill/////////////////////////////////
/////////////////////////////////////////////////////////////////////
procedure EdgeVill;
begin
WalkToEdgeTrees;
ChopYew;
WalkToEdgebank;
Banking;
if (Loads = Players[CurrentPlayer].Integers[0]) then
begin
NextPlayer(True);
Loads := 0;
MakeCompass('S')
Writeln('Players Switched successfully')
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////Fally////////////////////////////////////
/////////////////////////////////////////////////////////////////////
procedure Fally;
begin
WalkToFallyTrees;
ChopYew;
WalkToFallybank;
Banking;
if (Loads = Players[CurrentPlayer].Integers[0]) then
begin
NextPlayer(True);
Loads := 0;
MakeCompass('S')
Writeln('Players Switched successfully')
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////nicbaz Dranor////////////////////////////
/////////////////////////////////////////////////////////////////////
procedure Dranor;
begin
WalkToDranorTree;
ChopYew;
WalkToDranorBank;
Banking;
if (Loads = Players[CurrentPlayer].Integers[0]) then
begin
NextPlayer(True);
Loads := 0;
MakeCompass('S')
Writeln('Players Switched successfully')
end;
end;
/////////////////////////////////////////////////////////////////////
////////////////////////////Mainloop/////////////////////////////////
/////////////////////////////////////////////////////////////////////
procedure Setup;
begin
SetupSRL;
SRLId := YourSRLId;
SRLPassword:= YourSRLPassword;
CheckVersions;
DieLeech;
text;
SmartSetupEx(SMARTWorld, false, true);
SetTargetDC(SmartGetDC);
while not SmartReady do Wait(2000);
DeclarePlayers;
LoginPLayer;
end;

begin
Setup;
LoadDTMs;
CheckAxe;
Wait(900 + Random(333));
repeat
if (Players[CurrentPlayer].Loc = 'varrok') then
begin
Varrok;
end;
if (Players[CurrentPlayer].Loc = 'edgevill') then
begin
Varrok;
end;
if (Players[CurrentPlayer].Loc = 'fally') then
begin
Fally;
end;
if (Players[CurrentPlayer].Loc = 'dranor') then
begin
Dranor;
end;
Proggy;
until (False);
end.

/////////////////////////////////////////////////////////////////////////
//Thank you for useing my script! //
//Credits to //
//Torrent Of Flame For Lots of Help! //
//Jesus For lots of help! //
//And Da Owner for lots of help! //
/////////////////////////////////////////////////////////////////////////

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

bullzeye95

2008-04-24 07:47:11

I keep telling you… there's no reason to use DDTMs like that. There's nothing dynamic in yours!

ZephyrsFury

2008-04-24 08:22:04

Ok,

Your standards are not too good:

procedure WalkToVarrokBank;
begin
MakeCompass('S');
RoadColor := FindVarrockRoadColor;
if (findSymbol(x, y, 'tree')) then
begin
mouse(x, y, 2, 2, true);
FFlag(2);
if not RadialWalk(RoadColor, 355, 25, 65, 4, 4)
then
RadialWalk(RoadColor, 355, 27, 65, 4, 4);
Writeln('Walking To bank')
if not RadialWalk(RoadColor, 359, 27, 72, 4, 4)
then
RadialWalk(RoadColor, 355, 33, 72, 4, 4);
Writeln('Walking To bank')
if not RadialWalk(RoadColor, 345, 15, 60, 4, 4)
then
RadialWalk(RoadColor, 345, 13, 60, 4, 4);
Writeln('Walking To bank')
if (findSymbol(x, y, 'bank')) then
begin
mouse(x, y, 2, 2, true);
FFlag(2);
if not (findSymbol(x, y, 'bank')) then
begin
MakeCompass('s');
wait(1000);
if DTMRotated(DDTMBank, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Writeln ('found bank dtm');
wait(1000)
Mouse(x - 6, y - 6, 12, 2, true);
FFlag(0)
if not DTMRotated(DDTMBank, x, y, MMX1, MMY1, MMX2, MMY2) then
Writeln ('did not find bank');
NextPlayer(False);
end;
end;
end;
end;
end;

It should be this I think:


procedure WalkToVarrokBank;
begin
MakeCompass('S');
RoadColor := FindVarrockRoadColor;
if (findSymbol(x, y, 'tree')) then
begin
mouse(x, y, 2, 2, true);
FFlag(2);
if not RadialWalk(RoadColor, 355, 25, 65, 4, 4) then
RadialWalk(RoadColor, 355, 27, 65, 4, 4);
Writeln('Walking To bank')
if not RadialWalk(RoadColor, 359, 27, 72, 4, 4) then
RadialWalk(RoadColor, 355, 33, 72, 4, 4);
Writeln('Walking To bank')
if not RadialWalk(RoadColor, 345, 15, 60, 4, 4) then
RadialWalk(RoadColor, 345, 13, 60, 4, 4);
Writeln('Walking To bank')
if (findSymbol(x, y, 'bank')) then
begin
mouse(x, y, 2, 2, true);
FFlag(2);
if not (findSymbol(x, y, 'bank')) then
begin
MakeCompass('s');
wait(1000);
if DTMRotated(DDTMBank, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Writeln ('found bank dtm');
wait(1000)
Mouse(x - 6, y - 6, 12, 2, true);
FFlag(0)
if not DTMRotated(DDTMBank, x, y, MMX1, MMY1, MMX2, MMY2) then
//begin needed
Writeln ('did not find bank');
NextPlayer(False);
//end needed
end;
end;
end;
end;
end;

If I was just quickly glancing at your procedure I would find it rather difficult to establish what you were doing. You also need a begin and an end after 'DTMRotated' and 'NextPlayer'.

You should also avoid switching players in the middle of a procedure especially if you don't Exit back into the mainloop after wards. The reason I say this is because if you switch players without exiting, the next player will log in but will start from where your previous player logged out.

Example:

procedure ChopYew;
var Attempts: integer;
CuttingTime: integer;
begin
if not LoggedIn then NextPlayer(false);
MarkTime(CuttingTime);
SetAngle(true);
repeat
if (not (FindDaYewTree)) then
begin
Wait(2000 + random(250));
Attempts := Attempts + 1;
if (Attempts = 100) then
begin
Writeln('oh noos no yew tree bahh');
Attempts := 0;
NextPlayer(false); //here
Exit;
Wait(1500 + random(1200));
end;
end else

Lets say the player is chopping yews in Varrock right and he encounters a problem… 'Oh noes we have to switch players'. So you switch to the next character and exit the procedure right. But you exit into here:


procedure Varrok;
begin
WalkToVarrokTrees;
ChopYew; //exit out of here
WalkToVarrokbank;
Banking;
if (Loads = Players[CurrentPlayer].Integers[0]) then
begin
NextPlayer(True);
Loads := 0;
MakeCompass('S')
Writeln('Players Switched successfully')
end;
end;

Now that is problem. As soon as you switch players and exit the procedure, the script will continue on and will try to WalkToVarrockBank thus ensuring your character is thoroughly lost.

The best way to switch players is to only call NextPlayer at the end of your mainloop. When you get lost, LogOut your player and exit. Because you have 'if not LoggedIn then Exit' in every procedure *hint hint*, the script will skip right to the end and call NextPlayer. Thus when your next character is logged in the script start back at the start again and hopefully in the right procedure :p.

There are also a couple of places where it would be better to use a 'case of' statement:


function IsAxeBroken: boolean; // ty for people helping on this
begin
if FindDTM(BrokenAxe, x, y, mix1, miy1, mix2, miy2) then
begin
Writeln('Axe is broken! Attempting to bank and get new one.');
BrokenAxes := BrokenAxes + 1;
if (Players[CurrentPlayer].Loc = 'varrok') then
begin
WalkToVarrokBank;
end;
if (Players[CurrentPlayer].Loc = 'edgevill') then
begin
WalkToEdgeBank;
end;
if (Players[CurrentPlayer].Loc = 'fally') then
begin
WalkToFallyBank;
end;
if (Players[CurrentPlayer].Loc = 'dranor') then
begin
WalkToDranorBank;
end;

This would be better written as:


function IsAxeBroken: boolean; // ty for people helping on this
begin
if FindDTM(BrokenAxe, x, y, mix1, miy1, mix2, miy2) then
begin
Writeln('Axe is broken! Attempting to bank and get new one.');
BrokenAxes := BrokenAxes + 1;

case Players[CurrentPlayer].Loc of
'varrok': WalkToVarrokBank;
'edgevill': WalkToEdgeBank;
'fally': WalkToFallyBank;
'dranor': WalkToDranorBank;
end;

Its a lot shorter, neat and easier to look at.

BTW I also suggest you spell your locations correctly to make it easier for your script's user.

Also as bullzeye95 says your DDTM's would be better made into normal DTM. Unless you are gonna change a part of your DDTMs everytime you run the script its better to just stick with the static DTMs.

So yea…. I'm deciding what to vote still…

Zeph

EDIT: I think I will vote yes. You know how to script and have all the requirements. However you should take the things I said into consideration in the future.

NiCbaZ

2008-04-24 08:31:20

wow thanks for all that, helps alot, i didnt realize the the multiplayer big because im testing the script never messed up there, ty

gerauchert

2008-04-24 09:31:20

From: bullzeye95
I keep telling you… there's no reason to use DDTMs like that. There's nothing dynamic in yours!


Could not have said that better.

I vote yes. You have a lot to learn about making your script RUN for long periods at a time though. By the looks of it, I can see a lot of potential issues that could come up during runtime.

However you have demonstrated your knowledge of SCAR and SRL pretty well, so good job and keep working hard :D

Runescape Pro

2008-04-24 19:22:24

I agree with gerauchert. I'm gunna vote yes because you do have an understanding of scar scripting and srl, but you need to work on your standards a little.

EvilChicken!

2008-04-24 19:48:50

Yees

Richard

2008-04-25 13:49:52

Yes, but you shouldn't have DDTMs, they would work fine as normal DTMs, DDTMs are mainly for things on the minimap, as they change alot. GL!

the scar noob

2008-04-25 15:05:19

OK so nobody mentioned the 2 things I saw as first?

1. He doesn't frees any (d)dtm's
2. Look at his yew finder, he uses arrays totally wrong
3. Like Ed said, nothing dynamic with your ddtm's
4. The things really needed for your script to run properly (tree finding etc, ..) are pretty short aswell.

-Tsn.

NiCbaZ

2008-04-25 22:19:03

thx for all the feedback and votes, i take it all into account.

Jagex_Fagex

2008-04-27 07:17:41

From: the scar noob

4. The things really needed for your script to run properly (tree finding etc, ..) are pretty short aswell.


It doesn't matter about the size.. infact it is better if they are shorter, as long as it works.

n3ss3s

2008-04-27 09:17:21

Fagex, we look at the code, not runtime :p

But, yes, the code can be small if the quality is good.

P1nky

2008-04-27 23:31:01

Line 949: [Error] (15837:1): Semicolon (';') expected in script

remember to add a ;

end;

Richard

2008-04-29 12:40:19

He must be using an older scar then, because in some of the older ones you didn't need semicolons.

Pure1993

2008-04-29 14:27:19

I have a few questions, first of all:
function ChooseClick: Integer;    // jesus for help TY
begin
case random(2) of
0: Mouse(x, y, 3, 3, true);
1: begin
Mouse(x, y, 4, 4, false);
ChooseOption('hop');
end;
end;
end;
Why'd you use an integer? nothing major, but this would be a way you can decide the outcome:
function ChooseClick(Click:Integer):boolean;
begin
if Click=1 then Mouse(x,y,3,3,true) else
if Click=2 then
begin
Mouse(x,y,4,4,false);
wait(100); {it needs to "load" the choosing "pop-up"}
ChooseOption('hop');
end else
begin
writeln('Error: Invalid numbers of parameters'); {or something similar}
TerminateScript;
end;
result:= True;
end;
or if you want it to be random, there is no need to use a function:
procedure ChooseClick;
var
RandomRoll, RandomResult: Integer;
begin
RandomRoll:= Random(1000);
RandomResult:= RandomRoll mod 2;
if RandomResult=0 then
begin
Mouse(x,y,3,3,true);
end else
begin
Mouse(x,y,4,4,false);
wait(100);
ChooseOption('hop');
end;
end;
Of course if I completely misunderstood something, please correct me, but you never even returned the Integer, as in "Result:=….".
Many other things have already been said, so there is no need for me to repeat them, I am holding my vote for now, maybe I'll vote later, but right now I am 50% 50%, so no matter which way I vote, I would vote the against my own opinion ^^

Daniel

2008-04-30 06:49:07

Well, Sumilions scanning this thread. So i'll say what he doesn't.

Welcome! In!

Sumilion

2008-04-30 06:49:13

The votes are not convincing enough for me, sorry. You are allowed to re-apply in 2 weeks if you want to though.

edit : Hehe, I'm a tough one IP-Drowner ;) but I'm pretty sure he'll get in eventually.