SRL Archive - Archive

Da 0wner - SRL Member Application Form


Da 0wner

2008-04-25 05:30:01

<!– BEGIN TEMPLATE: formanswers –>
Da 0wner - SRL Member Application Form
Da 0wner

What is the meaning to life?


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



Programming Knowledge
Little PHP, Delphi, and VB.net

Other Communitys
Freddy1990.com

How Long have You Played Runescape
4 Years

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

My name is Kyle W.. I'm 12 years old. I started scripting when i was 10. I like to help people and make scripts for Runescape and other games. I have 60 rep, idk if that matters but yea…I am also very good at forms, many people call me 't3h f0rm m4st3r'. I would really like to be SRL member. I promise to be active and help as many people as I can when I can.

Thanks,

Da 0wner aka Kyle

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

Edit: Sorry, had to make a few last minute changes to script.


Program New;
{.include SRL/SRL/misc/Smart.scar}
{.include SRL/SRL.scar}

const

UseSigned = True; // Use signed applet?
UseHighDetail = False; // Use high detail?
UseRandomWorld = True; // Use a randomly generated world?
World = 149; // What world to use? Only used if UseRandomWorld is false.

var
x, y, BucketDTM, ClayDTM, FullBucketDTM, BankDTM, SoftClayDTM, Loads, SoftClaysDone : integer;
FountainPoint : TPoint;

procedure DeclarePlayers;
begin

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

Players[0].Name := ''; // Username of player
Players[0].Pass := ''; // Password of player
Players[0].Nick := ''; // 3-5 letters of username. No caps or spaces!
Players[0].Integers[0] := 1; // Loads to Do
Players[0].Active := True; // Is this player active?

end;

procedure Antiban; forward;
procedure Antirandoms; forward;

function FailSafeWalk(TheColor, StartRadial, EndRadial, Radius, XMod, YMod : LongInt) : boolean;
begin
if not LoggedIn then Exit;
Antiban;
AntiRandoms;

if not RadialWalk(TheColor, StartRadial, EndRadial, Radius, XMod, YMod) then
begin
Writeln('There was an error in the walking. Switching players.');
NextPlayer(false);
end else
result := true;
end;

procedure DeathWalk;
begin
FailSafeWalk(FindRoadColor, 359, 30, 70, 2, 2);
FailSafeWalk(FindRoadColor, 300, 359, 70, 2, 2);
FailSafeWalk(FindRoadColor, 230, 320, 70, 2, 2);
FailSafeWalk(FindRoadColor, 230, 320, 70, 2, 2);
FailSafeWalk(FindRoadColor, 230, 320, 70, 2, 2);
FailSafeWalk(FindRoadColor, 230, 320, 70, 2, 2);
FailSafeWalk(FindRoadColor, 230, 320, 70, 2, 2);
FailSafeWalk(FindRoadColor, 270, 359, 70, 2, 2);
FailSafeWalk(FindRoadColor, 359, 30, 70, 2, 2);
FailSafeWalk(FindVarrockRoadColor, 180, 250, 70, 2, 2);
FailSafeWalk(FindVarrockRoadColor, 70, 230, 70, 2, 2);
FailSafeWalk(FindVarrockRoadColor, 230, 320, 70, 2, 2);
FailSafeWalk(FindVarrockRoadColor, 230, 320, 70, 2, 2);
FailSafeWalk(FindVarrockRoadColor, 230, 320, 70, 2, 2);
FailSafeWalk(FindVarrockRoadColor, 260, 300, 70, 2, 2);
FailSafeWalk(FindVarrockRoadColor, 260, 300, 70, 2, 2);
FailSafeWalk(FindVarrockRoadColor, 260, 300, 70, 2, 2);
FailSafeWalk(FindVarrockRoadColor, 150, 230, 70, 2, 2);
FailSafeWalk(FindVarrockRoadColor, 345, 30, 70, 2, 2);
FailSafeWalk(FindVarrockRoadColor, 350, 30, 70, 2, 2);
end;

function InChatMulti(Text: TStringArray): boolean;
var
i : integer;
s: string;
begin
for i := 0 to high(Text) do
begin
if not GetLastChatText(s) then
LastChatter(s);
Result := (Pos(Text[i], s) > 0);
end;
end;

procedure AutoResponder;
var
Responses : array [0..2] of TStringArray;
Questions : array [0..2] of TStringArray;
i : integer;
begin

Questions[0] := ['hey', 'hi', 'sup', 'yo'];
Questions[1] := [Players[currentplayer].nick];
Questions[2] := ['rafting lvl', 'raft lvl', 'raft level', 'rafting level'];

Responses[0] := ['sup', 'hey', 'yo', 'howdy'];
Responses[1] := ['what?', 'yeah?', 'be quiet im busy', 'what you want'];
Responses[2] := [IntToStr(GetSkillInfo('crafting', false)), 'its ' + IntToStr(GetSkillInfo('crafting', false)), 'umm...' + IntToStr(GetSkillInfo('crafting', false))];

for i := 0 to 2 do
if inchatmulti(questions[i]) then
begin
if findblackchatmessage(players[currentplayer].nick) then exit;
typesend(Responses[i][Random(High(Responses[i]))]);
end;
end;

function IsPersonPresent : boolean;
var
x, y, DotBMP : integer;
begin
DotBMP := BitmapFromString(4, 3, 'beNpjYPz3799/CHrz5h8YvHnz5tK' +
'lSwwMjI8ePTp69CgDACKyG+0=');

if FindBitmapToleranceIn(DotBMP, x, y, MMX1, MMY1, MMX2, MMY2, 15) then
result := true;

FreeBitmap(dotBMP);

end;

procedure AntiBan;
var
x, y : integer;
TPhrases : array [0..3] of string;
begin
AutoResponder;

if FindDead then DeathWalk;

TPhrases[0] := 'brb gotta get a drink';
TPhrases[1] := 'hey brb';
TPhrases[2] := 'brb';
TPhrases[3] := 'brb gotta pee';

case random(35) of

10, 15 : BoredHuman;
5, 9 :
begin
getmousepos(x, y);
mmouse(random(msx2), random(msy2), 2, 2);
wait(100 + random(500));
mmouse(x, y, 3, 3);
end;
3, 19 : PickUpMouse;
34, 35 : begin
If not IsPersonPresent then Exit;
Typesend(TPhrases[Random(3)]);
logout;
wait(60000 + random(60000));
loginplayer;
typesend('back');
end;
end;
end;

procedure AntiRandoms;
begin
FindNormalRandoms;

if FindFight then
RunAway('n', false, 1, 10000);

if FindDead then DeathWalk;

end;

function RandomWorld(F2P : boolean) : integer;
var
FreeWorlds, MemberWorlds : TIntegerArray;
begin
FreeWorlds := [7, 8, 10, 11, 13, 14, 15, 16, 17, 19, 20, 21, 25, 29, 30, 32,
33, 34, 35, 37, 38, 40, 41, 43, 47, 50, 51, 52, 55, 57, 61, 62,
63, 67, 68, 72, 74, 75, 80, 81, 85, 86, 87, 90, 93, 94, 95, 96,
101, 102, 105, 106, 107, 108, 109, 113, 117, 118, 119, 123, 125,
126, 127, 128, 133, 134, 136, 141, 142, 149, 152, 153, 154, 155, 0];

MemberWorlds := [6, 9, 12, 18, 22, 23, 24, 26, 27, 28, 31, 36, 39, 42, 44, 45,
46, 48, 49, 53, 54, 56, 58, 59, 64, 65, 66, 69, 70, 71, 76, 77,
78, 79, 82, 83, 84, 88, 89, 91, 92, 97, 98, 99, 100, 103, 104,
110, 111, 112, 114, 115, 116, 121, 124, 129, 130, 131, 132,
137, 138, 143, 144, 145, 151, 157, 158, 159, 0];

if F2P then
result := FreeWorlds[random(high(FreeWorlds))];
if not F2P then
result := MemberWorlds[random(high(MemberWorlds))];
end;

procedure StartupSmart(World : integer; HighDetail, Signed : boolean);
begin

if UseRandomWorld then
begin
SmartSetupEx(RandomWorld(True), UseHighDetail, UseSigned);
SetTargetDC(SmartGetDC);
while not SmartReady do
wait(200 + random(200));
end else
SmartSetupEx(World, UseHighDetail, UseSigned);
SetTargetDC(SmartGetDC);
while not SmartReady do
wait(200 + random(200));
end;

function FountainCoords(var FountainPoint : TPoint) : boolean;
var
x, y, i : integer;
FountainPoints : TPointArray;

begin
if not LoggedIn then Exit;
AntiRandoms;
Antiban;

FindColorsSpiralTolerance(x, y, FountainPoints, 10449241, MSX1, MSY1, MSX2, MSY2, 25);

for i := 0 to High(FountainPoints) do
begin
MMouse(FountainPoints[i].x, FountainPoints[i].y, 2, 2);
if IsUpText('ountain') then
begin
FountainPoint.x := FountainPoints[i].x;
FountainPoint.y := FountainPoints[i].y;
result := true;
exit;
end;
wait(100 + random(150));
end;
end;

procedure LoadDTMs;
begin

BucketDTM := DTMFromString('78DA63CC61626078CE8002FA4B9D19FE03694' +
'620FE0F048C7940353718D000231209A433806A3E1150538A6917' +
'869A1422D4A403D5DCC4AF060063630E3A');

ClayDTM := DTMFromString('78DA63DCCBC0C0D0C78002E6B44632FC07D28' +
'C40FC1F08188F03199D0C6880118904D27B80C424026AB6018909' +
'4498D34A40CD6620D1835F0D007A120E36');

FullBucketDTM := DTMFromString('78DA637462626078C080026A6AE7308800694' +
'620FE0F048C9E4035B719D000231209A4ED806A3E1150E30554F3' +
'96801A4BA09A7BF8D50000B0A80B82');

BankDTM := DTMFromString('78DA634C6462604860400135D5C50CFF81342' +
'310FF0702C664A09A0C54357FFE3031F043D58000630E504D2601' +
'350584D5000030860FCB');

SoftClayDTM := DTMFromString('78DA639CC1C4C010C8C8800CF282F818FE036' +
'990E87F20609C0854E38EAA06220B2381F44CA09A68026A1600D5' +
'781150D3055413845F0D0049960A62');

end;

procedure GoToBank;
begin
if not LoggedIn then Exit;
AntiRandoms;
Antiban;

FailSafeWalk(FindVarrockRoadColor, 180, 90, 65, 2, 2);
If DTMRotated(BankDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
mouse(x, y, 2, 2, true);
Flag;
end;
end;

procedure Banking(action : string);
begin
if not LoggedIn then Exit;
AntiRandoms;
Antiban;

case action of

'Deposit Clay' :
begin
OpenBankFast('veb');
FixBank;
if FindDTM(SoftClayDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 2, 2, false);
ChooseOption('tore All');
CloseWindow;
end;
end;

'Withdraw Clay' :
begin
OpenBankFast('veb');
FixBank;
if FindDTM(ClayDTM, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
Mouse(x, y, 2, 2, false);
ChooseOption('ithdraw X');
wait(250 + random(400));
TypeSend('14');
CloseWindow;
end;
end;

'Withdraw Buckets' :
begin
OpenBankFast('veb');
FixBank;
if FindDTM(BucketDTM, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
Mouse(x, y, 2, 2, false);
ChooseOption('ithdraw X');
wait(250 + random(400));
TypeSend('14');
end;
end;
end;
end;

procedure WalkToFountain;
begin
if not LoggedIn then Exit;
Antiban;

FailSafeWalk(FindVarrockRoadColor, 270, 359, 65, 2, 2);
if FindSymbol(x, y, 'water') then
mouse(x, y, 2, 2, true);
FFlag(5);
end;

procedure MakeTheClay;
begin
if not LoggedIn then Exit;
AntiRandoms;
Antiban;

GameTab(4);

if FindDTM(BucketDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
mouse(x, y, 2, 2, true);
if FountainCoords(FountainPoint) then
mouse(FountainPoint.x, FountainPoint.y, 2, 2, true);

while CountItemsDtm('inv', FullBucketDTM) <> 14 do
wait(50 + random(100));

if FindDTM(ClayDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
mouse(x, y, 2, 2, true);
if FindDTM(BucketDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
mouse(x, y, 2, 2, true);
wait(200 + random(150));
mouse(258, 418, 2, 2, false);
wait(250 + random(400));
ChooseOption('ake All');

while CountItemsDtm('inv', SoftClayDTM) <> 14 do
wait(50 + random(100));
end;

procedure Proggy;
begin
Writeln('/================================================================\');
Writeln('| Da 0wner''s Clay Softener Version 1.1 |');
Writeln('|================================================================|');
Writeln('| Current Player: ' + Padr(IntToStr(CurrentPlayer), 46) + ' |');
Writeln('| Loads Done: ' + Padr(IntToStr(Loads), 50) + ' |');
Writeln('| Soft Clay Made: ' + Padr(IntToStr(SoftClaysDone), 48) + ' |');
Writeln('| Time Running: ' + Padr(TimeRunning, 48) + ' |');
Writeln('\================================================================/');
end;

procedure MainLoop;
var
i : integer;
begin
if not LoggedIn then LoginPlayer;

for i := 0 to HowManyPlayers - 1 do
begin
SetRun(True);
SetAngle(True);
MakeCompass('n');
repeat
Banking('Withdraw Clay');
WalkToFountain;
MakeTheClay;
GoToBank;
Banking('Deposit Clay');
Loads := Loads + 1;
SoftClaysDone := SoftClaysDone + CountItemsDtm('inv', SoftClayDTM);
Proggy;
until(loads = Players[CurrentPlayer].Integers[0]);
SoftClaysDone := 0;
Loads := 0;
NextPlayer(False);
end;
end;



Begin
SetupSRL;
StartupSmart(World, UseHighDetail, UseSigned);
DeclarePlayers;
LoadDTMs;
MainLoop;
FreeDTM(BucketDTM);
FreeDTM(FullBucketDTM);
FreeDTM(ClayDTM);
FreeDTM(SoftClayDTM);
FreeDTM(BankDTM);
End.

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

ShowerThoughts

2008-04-25 06:43:54

Your multiplayer is not alright because in your failsafe walk it goes to next player and then just continues the script like when the new player logs in the bank it goes trying to fill buckets or something like that ;)

i am holding my vote for now.

Ashur2Good

2008-04-25 07:23:12

yes because of your great use of DTM's

 TPhrases[3] := 'brb gotta pee';

i think "pee" is a swear word in Fagex world

ShowerThoughts

2008-04-25 07:49:58

From: Ashur2Good
yes because of your great use of DTM's

 TPhrases[3] := 'brb gotta pee';

i think "pee" is a swear word in Fagex world


On my next apply i make a dtm loader :p 1 yes vote yes!

Daniel

2008-04-25 07:54:38

I vote a yes, but your standards are sometimes in-correct, not proper uses of failsafes, very dis-organized and also, why don't you use those master forms of yours?

Sorry, but try again in two weeks, improve your script etc.

EvilChicken!

2008-04-25 08:05:09

You need to work on failsafes + standards.

TPAs <3<3

YES.

gerauchert

2008-04-25 08:42:48

Yeah, that walking would be very very buggy. The only "failsafe" about it is that it will go to the next player if it fails. However when you make failsafes for walking you need to create things for "alternate clicks" soooo if one angle doesnt work, then you increase/decrease and try again…same with the radius. So something like this:


Procedure Walk;
begin
if(not(RadialRoadWalk(BLAH)))then
if(not(RadialRoadWalk(BLAH with higher radius)))then
if(not(RadialRoadWalk(BLAH with different angles)))then
if(not(RadialRoadWalk(BLAH with more possible tweaks)))then
begin
NextPlayer(False);
Exit;
end;
end;

Including DDTMs and Path.scar stuff would also increase your success of map walking ;)

Yes your standards are off at times, but for the most part you have readable code. Practice up on your failsafes as well because they are the most important part of a script.

I vote yes. Good job and keep it up man. :D

Naum

2008-04-25 11:22:52

Good, Looks good enough. Your a great person to talk to on msn and you have 1337-ish scripting skillz.

YES!

Richard

2008-04-25 13:45:01

YES! But wtf, why haven't you put a form in there. Thats like Britney Spears singing and the song actually being good!

Put a damn form in there, its what you were put on this planet to do!

skilld u

2008-04-25 16:27:24

yes! where is your form though?

faster789

2008-04-25 16:31:21

;) Yes, this is because before I've came a member you demonstrated many skills by exemplifying them by teaching me. But a good improvement on your standards is needed.

Edit: Lol, just noticed you don't have a form??

ShowerThoughts

2008-04-25 16:32:44

Because he makes leet forms and is cool to the community but makes baaddd failsafes with rrrw and his multiplayer is not alright doesn't means we should allow him with his leet forms and this one doesn't even include one -.-, sorry da 0wner i like you but i must follow the rules outta here ;)

Harry

2008-04-25 16:40:55

Sometimes immature on MSN, like me ;D
Script looks nice…

I'm siding with a Yes. Good luck Kyle! :)

Cazax

2008-04-25 18:00:15

Yes. TPA's, walking + failsafes, etc… all needed :)

P.S: You forgot to credit my function:
function InChatMulti(Text: TStringArray): boolean;
var
i : integer;
s: string;
begin
for i := 0 to high(Text) do
begin
if not GetLastChatText(s) then
LastChatter(s);
Result := (Pos(Text[i], s) > 0);
end;
end;
:)

Iron Man

2008-04-25 18:08:40

Yes, your helpful around the community IMO and willing to learn.

But I saw this:

FailSafeWalk(FindRoadColor, 230, 320, 70, 2, 2);
FailSafeWalk(FindRoadColor, 230, 320, 70, 2, 2);
FailSafeWalk(FindRoadColor, 230, 320, 70, 2, 2);
FailSafeWalk(FindRoadColor, 230, 320, 70, 2, 2);
FailSafeWalk(FindRoadColor, 230, 320, 70, 2, 2);

Couldn't a repeat there with some failsafes make it shorter?

AFAIK there isn't any freedtm's?

You should have added a form :rolleyes:

Dan Cardin

2008-04-25 21:41:12

sry, you're a pretty cool guy, but i think ill vote no :(.

im actually surprised about the number of people asking for a form. Usually when a form is added people complain about it taking up half of the script :confused:

Da 0wner

2008-04-26 15:02:47

Who keeps voting no and not posting -.-. If you vote no please tell the reason so I can add that.

n3ss3s

2008-04-26 15:19:06

You are supposed to apply with a complete script that most likely definetly gets you in. For example in your mainloop, the NextPlayer(False) should be NextPlayer(LoggedIn), but anyways your multiplayer utilization isn't correct so…

Da 0wner

2008-04-26 16:25:53

Yea, sorry…I made this at 1am.

I can do better, most of my friends know it too.

ZephyrsFury

2008-04-27 01:48:24

From: Da 0wner
Yea, sorry…I made this at 1am.

I can do better, most of my friends know it too.


I personally think a membership app script should be the best script the applicant can do.

Anyway, you haven't really used multiplayer well. It will screw up when you switch players. Your 'FailSafeWalk' isn't really failsafe because of the nextplayer in the middle of it. I don't think you've tested this script fully because you would pick up these flaws if you did.

Oh and I picked up something:

if F2P then
result := FreeWorlds[random(high(FreeWorlds))];
if not F2P then
result := MemberWorlds[random(high(MemberWorlds))];

The last world in each of the world type arrays will never be picked. You should use Length instead of High.

Sorry, my vote is no.

Zeph.

Da 0wner

2008-04-27 02:50:56

Um, did you vote earilier? Because the vote didn't change…and sorry, I didn't test except for one load. I never use multiple players so I would never know :(. I only like making single player scripts.

Edit: Can you go on msn Erik? Please

Sir R. M8gic1an

2008-04-27 04:18:17

there's really nothing fantastic about the script…walking is messed up, and multiplayer is messed up. your usage of TPA's has nothing special about it, you just find the colors and then move to each one seperatly, you could at least to TPAToATPA or SplitTPA. other than that it's loading, finding and unloading a couple of DTM's. WorldSwitcher / Smart loader is nothing special. basically you can make a script.

~RM

Da 0wner

2008-04-27 04:30:48

Yea, it's nothing to brag about a 1am 1 hour script…I can make a MUCH better script. If this dosen't get accepted I will apply again in a few weeks with the new updated 3pm script :D.

ZephyrsFury

2008-04-27 06:41:53

From: Da 0wner
Um, did you vote earilier? Because the vote didn't change…and sorry, I didn't test except for one load. I never use multiple players so I would never know :(. I only like making single player scripts.

Edit: Can you go on msn Erik? Please


If you want to make a single player script then don't let people add more players to it.

Sumilion

2008-04-30 06:47:38

You are so, so, so close, keep it up!

This application won't get you in, but you are allowed to re-apply after 2 weeks if you want to instead of after a month. You can do it ! :)