SRL Archive - Applications

Lowering the Threshhold for SRL Members! Read before pushing no...


WT-Fakawi

2008-09-21 05:10:15

SRL has grown to 50k+ Members. I still see a lot of new talent popping in. But I have noticed that the threshhold for promoting new Members has dramatically risen. If a script does not contain the neccesary failsafes, multiplayer, properly formatted code, etc. you all have a tendency of pushing no.

I would like to give you three considerations before you again push no.

  1. What is the attitude of the applicant? This is for me, and it should be for you too, the most important quality. How is his/her 's tone of voice? How is his/her's willingness to learn and adapt? What is are his/her's words compared to age/social background? The atmosphere (meaning you) is what makes this community great! If applicants speak their truth quietly and nicely, I would let them in by default, like I have done so on many occasions in the past. So, if the attitude is right….push yes next time.
  2. How many times has the applicant applied? In other words: Is this a persistent junior? Has he/she learned from his last appliance? If he/she has….push yes next time. We cant all be Masters!
  3. We were all nobodies once. Do not forget that. Remember where you came from, and view the application through the eye of the nobody. See the pride in the script. See how it has been written/formatted with care. Look at the time it took to finally master the often difficult programming concepts of SCAR/SRL. Look at all the blood and sweat it took to finally push "Submit New Thread". Feel the anxiety of the applicant as he watches yes/no grow. Generally speaking: if a script has just a hint of crude originality….push yes next time.

I hope you will take these consideration seriously. A community that doesnt evolve quick enough is a dead community. SRL is not as much about scripting as it is about people. If we keep inviting the right people in, we have a better chance of survival.

WT

Naum

2008-09-21 05:19:57

Thanks for that post, Taken into consideration for next time.

EvilChicken!

2008-09-21 05:54:32

About time!

Should've made this sticky a loong time ago >:

Hopefully people will remember this for a time now, and not forget this in three days ..

P1nky

2008-09-21 06:58:55

always had this in my mind, and im happy you shared it , with everyone.
thanks

sirlaughsalot

2008-09-21 07:53:17

Good, now i wont feel bad for voting for people for these reasons…

WT-Fakawi

2008-09-21 08:56:16

I have a fourth point to add:

It is threads like these that scream for valuable input. None is given. The HelpSquad should be on guard for threads like these. If you leave these guys out in the dark the more isolated the entire community will eventually become.

n3ss3s

2008-09-21 09:15:51

I restrain from voting no for bad usage of English and just leave the application thread. If the paragraph in the application isn't good, and the script barely fulfills the requirements, I usually just leave the thread because otherwise, I would vote no without posting, and I consider that a bit unfair… Although the script I got in with wasn't something somebody would volunteer to keep in the Scripts folder…

I know what your point is about thinking about the applicant's position, I agree, but everyone should remember that wanting in isn't something that can compensate the loss in the scripting side on the attitude side.


See how it has been written/formatted with care.


Epic times with Boreas :rolleyes:

Harry

2008-09-21 09:39:19

How many times has the applicant applied? In other words: Is this a persistent junior? Has he/she learned from his last appliance? If he/she has….push yes next time. We cant all be Masters!

Unless there is very little improvement ;)

But good points WT. But in my opinion, the standards of getting in have not raised too much in the past 6 months.
Only thing that often leads me to no on applicants is using reflection for object finding, walking, etc., but not just using it as a failsafe to colour finding, but simply using it because they are either
  1. Too bad at coding that they must use Java reading to code
  2. or are just are too lazy to code colour object finding, therefore in my opinion are not SRL Member quality

n3ss3s

2008-09-21 11:20:09

or are just are too lazy to code colour object finding, therefore in my opinion are not SRL Member quality


There is so much difference between use FindObjTPA and FindObject, isn't there…

MasterKill

2008-09-21 11:55:32

when I post my list with stuff what srl members need, its only cause those points might help him becomming better and get him in for sure next time. I couldn't care less if all points are in the script, as long as I can see he has some scripting talent, or just can make good/fine working scripts.

Though, some times there are srl members who don't even know what an array is. There is the limit for me. At least show you have some scripting knowledge. And of course there behavior is a big part of the "yes" or "no" vote to. When the aplyer allways helps people and stuff the chance for a yes will be a lot bigger.

Just giving my opinion.

MylesMadness

2008-09-21 15:13:01

From: n3ss3s
There is so much difference between use FindObjTPA and FindObject, isn't there…
Not many member say yes to FindObjTPA though.

Bobarkinator

2008-09-21 15:41:53

Um…in my opinion the standards are already too low. It seems to me that a few people who shouldn't have gotten in got in.

Raskolnikov

2008-09-21 15:56:13

Well said WT.

Um…in my opinion the standards are already too low. It seems to me that a few people who shouldn't have gotten in got in.


There are a few people that this happened to, like you said. If some members start saying no, and the applicant flips out (start cussing ect.) the appliance should be closed by a moderator/admin. No excuses really even though their script might be "great".

Good job Fakawi!

Cut em2 it

R0b0t1

2008-09-21 19:03:04

When I said stuff like this nobody would listen…

Dan Cardin

2008-09-21 21:17:22

i agree with Bobarkinator. Yes, maybe some should be let in because of their attitude, and some have! but as a whole, i dont think that the standards should be lowered. Yes also to having attitude be a factor, but it shouldnt be the biggest factor in voting. Not by a long shot. The primary point of SRL members is to group the more advanced scripters.

If there were actually 50k active members, then adding another group and letting them by because of attitude could be possible, but really there are only a few thousand, so its definitely not necessary and i dont think it should be done.

sirlaughsalot

2008-09-21 21:52:43

From: Dan Cardin
i agree with Bobarkinator. Yes, maybe some should be let in because of their attitude, and some have! but as a whole, i dont think that the standards should be lowered. Yes also to having attitude be a factor, but it shouldnt be the biggest factor in voting. Not by a long shot. The primary point of SRL members is to group the more advanced scripters.

If there were actually 50k active members, then adding another group and letting them by because of attitude could be possible, but really there are only a few thousand, so its definitely not necessary and i dont think it should be done.


I think his point is to hold it in higher regard, although i have to agree, they may have a good attitude but also be leechers, you have to have a good balance….

Laur€ns

2008-09-26 15:49:58

From: R0b0t1
When I said stuff like this nobody would listen…


Because:

Fawki = Important
You ≠ Fawki
You ≠ Important

:p No offence tough.

Magiic

2008-09-28 16:14:04

lol yeah ^ nice one laurens
but anyway yeah so you're saying that attitude is more important than the script?
i wouldn't vote yes to someone with an attitude problem but if someone had a average script that probably shouldn't be accepted but was really willing to learn then we should push yes :\ i do see the logic :P

WT-Fakawi

2009-01-10 15:54:26

*BUMP* IMHO Attitude is all, yes. This also implies that someone can't be a member within 10 or 20 posts. Judging someones behaviour generally takes more time and posts than it takes to write a "proper" script.

Tniffoc

2009-01-10 16:38:03

I don't know about my opinion on this subject because I like it being hard to get in but I learned most AFTER I got members just because more people are willing to help you.

WT-Fakawi

2010-09-17 03:49:48

Mayor bump (again) because of this:

http://villavu.com/forum/showthread.php?t=58807

Why?

Tomtuff is one of a few new talented young (12) scripters who has worked his butt of to get it right. No, I haven't run the script, but judging by the looks of it, Tom and his scripts seem allright.

So why the hell would you push no….and not even bother to say why? Please please, try to remember what it was like back when you where a noob, please, read my first post.


P.S. Tomtuff is in! (second new member since we reopened….months ago, djeeez!)

Rich

2010-09-17 04:37:47

He has very few failsafes.
He has no uptext checks.
He is relying on co-ords to click on the range.
He relies on timing to wait for the fish to cook. Not counting the cooked/raw fish.
His three anti-ban procedures could easily be one.
Autocolour by ACA2.
No if not LoggedIn the Exit;
He edited the script after we told him what's wrong. I prefer judging on what they applied with. Not on what they applied with with all the additions by the Members.
And he's in?

People are saying it's becoming too easy to become a Member, and this is a perfect example.

Sir R. M8gic1an

2010-09-17 04:51:02

Devils Advocate
1 - No uptext
UT stands for uptext

procedure SetUT;
begin
Case [Players[CurrentPlayer].Strings[0]] of
'crayfish': UT := 'aw crayfish';
'chicken': UT := 'aw chicken';
'shrimp': UT := 'aw shrimp';
'sardine': UT := 'aw sardine';
'beef': UT := 'aw beef';
'anchovies': UT := 'aw anchovies';
'herring': UT := 'aw herring';
'pike': UT := 'aw pike';
'trout': UT := 'aw trout';
'salmon': UT := 'aw salmon';
'tuna': UT := 'aw tuna';
'lobster': UT := 'lobster';
'swordfish': UT := 'aw swordfish';
end;
end;

//which is later used here:
procedure WithdrawTheFood;
var
x,y,i,a: integer;
TP: TPointArray;
begin
if(not (Loggedin)) then exit;
if(not (BankScreen)) then OpenTheBank;
DepositAll;
FixBank;
FixBankTab;
Wait(100+random(25));
SetDTM;
if FindDTM(FishDTM, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
WriteLn('found du fishy');
Mouse(x,y,5,5,false);
ChooseOption('draw-All');
end else
begin
TP := FindItems(10526888, 6, UT, 28); //here
repeat
MMouse(TP[i].x, TP[i].y,4,4);
Mouse(x,y,0,0,false);
ChooseOption('All');
a := a + 1;
until(CountInvFish > 0) or (a>4);
end;
CloseBank;
if CountInvFish = 0 then logout;
FreeDTM(FishDTM);
end;

//furthermore
if( not( FindObjectDeformed(ObjX,ObjY,'ang','nge',FishBMP,MSX1,MSY1,MSX2,MSY1))) then
//... Should have been UT instead of 'ang','nge' there

if(not(FindObjectDeformed(ObjX,ObjY,'ang','nge',RangeBMP,MSX1,MSY1,MSX2,MSY1))) then

2 - relying on coords to click range

function FindTheRange: Boolean; //credits: Coh3n's guide, slightly modified/parts taken out
var
ObjX, ObjY,x, y, i,RangeBMP: integer;
TPA: TPointArray;
ATPA : T2DPointArray;
begin
if not LoggedIn then Exit;
if( not (ClickFishInInv)) then
begin
result := false;
logout;
end else
begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.04, 0.85);
FindColorsSpiralTolerance(x,y,TPA,1648046,MSX1, MSY1, MSX2, MSY2,10);
ATPA := SplitTPAEX(TPA,5,5);
if(Length(ATPA) = 0) then
begin
RangeBMP := BitmapFromString(4, 4, 'meJyT1tgnjQ35JhUDUWB6JRBJqqwF' +
'IinVzUAEAIr2EGc=');
if( not( FindObjectDeformed(ObjX,ObjY,'ang','nge',RangeBMP,MSX1,MSY1,MSX2,MSY1))) then
begin
FreeBitmap(RangeBMP);
Result := false;
Logout;
end else
begin
FreeBitmap(RangeBMP);
MMouse(ObjX,ObjY,5,5);
Mouse(ObjX,ObjY,0,0,true);
result := true;
exit;
end;
end;
SortATPAFromFirstPoint(ATPA, Point(MSCX,MSCY));
WriteLn('Length: ' + IntToStr(Length(ATPA[i])));
MiddleTPAEx(ATPA[i],x,y);
MMouse(x,y,4,4);
Mouse(x,y,0,0,true);
Result := True;
end;
Wait(4000+Random(1000));
end;

if you meant this:

procedure cook;
begin
if FindTheRange then
begin
Mouse(257,414,5,5,false);
ChooseOption('All');
C := C + CountInvFish;
LD := LD + 1;
WriteLn('Completing load #' + IntToStr(LD));
end else logout;
end;
This is the cooking menu, which does not change coords.

He has very few failsafes.

procedure OpenTheBank; //i luffs yew (over msn), slightly modified
begin
if(not (Loggedin)) then exit;
if LD = Players[currentplayer].Integers[0] then
begin
NextPlayer(Players[CurrentPlayer].Active);
Prog;
end else
begin
if BankScreen then exit;
setcamera;
if( not (OpenBankNPC)) then
if(not (OpenBankFast('akb'))) then
if(not (OpenBank('akb',false,false))) then
if(not (OpenBankGlass('akb',false,false))) then
begin
WriteLn('banking failed, logging out');
Logout;
end;
end;
Antiban(2);
end;

And for the rest of his finders he uses BMP + DTM ..

And so on and so forth…

~RM

Gu3st...

2010-09-17 04:59:58

From: Rich
He has very few failsafes.
He has no uptext checks.
He is relying on co-ords to click on the range.
He relies on timing to wait for the fish to cook. Not counting the cooked/raw fish.
His three anti-ban procedures could easily be one.
Autocolour by ACA2.
No if not LoggedIn the Exit;
He edited the script after we told him what's wrong. I prefer judging on what they applied with. Not on what they applied with with all the additions by the Members.
And he's in?

People are saying it's becoming too easy to become a Member, and this is a perfect example.
Just for the sake of it, I dug up my old app.
(*************************************************)
(* __ __ __ ____ ____ *)
(* ( \/ ) /__\ ( _ \( ___) *)
(* ) ( /(__)\ )(_) ))__) *)
(* (_/\/\_)(__)(__)(____/(____) *)
(* ____ _ _ ____ _ _ ____ ____ _ _ *)
(* ( _ \( \/ ) (_ )( \/ )(_ _)( ___)( \/ ) *)
(* ) _ < \ / / /_ \ / )( )__) ) ( *)
(* (____/ (__) (____) (__) (__) (____)(_/\_) *)
(* *)
(*************************************************)
(* Smelts ores and bank bars in Al Kharid. *)
(* *)
(*************************************************)
(* Instructions. *)
(*************************************************)
(* 1. USE SCARSCAPE, Very Bright. *)
(* 2. Set your Screen to 32 bit TRUE color. *)
(* 3. Position your chars at Al Kharid bank. *)
(* 4. Make sure your Players have ores. *)
(*************************************************)




program ZytexSmelter;
{.include SRL/SRL.scar}
{.include SRL/SRL/Skill/Smithing.scar}

var
Barexp, Xp, XpMade : Extended; //DoSmelt, CalculateXp and GetBarInfo.
Bar, BarS, BarsMade, //DoSmelt, CalculateXp and GetBarInfo.
Rcactus, RunOut, SmeltX,
BankDTM, SmeltDTM, CounterDTM, LevelDTM : Integer; //DTM's.
x, y : Integer; //DTM Finding etc...
BBar : string; //Smelting
NextPlayer1 : Boolean; //For Nextplayer.

var
IronOre2, CoalOre2, MithrilOre2, GoldOre2, AdamantOre2,
TinOre2, CopperOre2, SilverOre2, RuniteOre2: Integer;

var
frmDesign : TForm;
BackGround, ExitLabel, StartLabel : TLabel; // For the Forms.

const
SetMouseSpeed = 10; //What mouse speed?
Ver = '1.0'; //The verision of this script. No need to touch.

procedure NP(Active : String); forward;

function CountItemDTM(dtm: Integer): Integer;
var
i, x, y: Integer;
TB: Tbox;
begin
if not Loggedin then Exit;
Wait(2000);
GameTab(4);
for i := 1 to 28 do
begin
TB := InvBox(i);
if ExistsItem(i) then
if FindDTM(dtm, x, y, TB.x1, TB.y1, TB.x2, TB.y2) then
Inc(Result);
end;
end;

procedure WithdrawDTM(dtm, Amount: Integer);
var
rx, ry: Integer;
begin
if not LoggedIn then Exit;
if (BankScreen) then
begin
if (Amount = 1) then
begin
if FindDTM(dtm, rx, ry, 4, 4, 515, 377) then
begin
Mouse(rx, ry, 0, 0, True);
Exit;
end;
end else
begin
if FindDTM(dtm, rx, ry, 4, 4, 515, 377) then
begin
Mouse(rx, ry, 0, 0, False);
if (Amount = 5) or (Amount = 10) then
begin
ChooseOption('Withdraw ' +IntToStr(Amount))
exit;
end else
if (Amount = 0) then
begin
ChooseOption('Withdraw All')
exit;
end else
begin
ChooseOption('Withdraw X');
Wait(1000 + Random(100));
TypeSend(IntToStr(Amount));
Exit;
end;
end;
end;
end;
Writeln('Did not found dtm...');
end;

function FurnaceScreen: Boolean;
begin
if (FindColorTolerance(x, y, 12217707, 1, 339, 317, 518, 479)) then
begin
Result := True;
end else
Result := False;
end;

function InBank: Boolean;
begin
Result := (FindDTM(BankDTM, x, y, 570, 5, 725, 166)) or
(FindDTM(CounterDTM, x, y, 570, 5, 725, 166));
end;

function InSmelt: Boolean;
begin
Result := (FindDTM(SmeltDTM, x, y, 570, 5, 725, 166)) or
(FindDTM(RCactus, x, y, 570, 5, 725, 166));
end;

function Lost: Boolean;
begin
if (not(InSmelt)) and (not(InBank)) then
begin
Result := True;
end;
end;

function DoBank: Boolean;
begin
if not Loggedin then Exit;
OpenBankFast('akb');
if BankScreen or PinScreen then
begin
if pinscreen then InPin(Players[CurrentPlayer].strings[1]);
wait(500+random(500));
Players[CurrentPlayer].Banked := Players[CurrentPlayer].Banked + CountItemDTM(Bar);
DepositAll;
Case BBar of
'Bronze' :
begin
WithDrawDTM(CopperOre2, 14)
wait(200+random(200));
if CountItemDTM(CopperOre2) = (14) then
begin
wait(70+random(20));
end else
begin
writeln('None ores at bank... Logging out.');
NextPlayer1 := true;
NP('F');
Exit;
end;
WithDrawDTM(TinOre2, 0)
wait(70+random(20));
if CountItemDTM(TinOre2) = (14) then
begin
wait(70+random(20));
Result := True;
end else
begin
writeln('None ores at bank... Logging out.');
NextPlayer1 := true;
NP('F');
Exit;
end;
end;
'Iron' :
begin
WithDrawDTM(IronOre2, 28);
wait(70+random(20));
if CountItemDTM(IronOre2) = (28) then
begin
wait(70+random(20));
Result := True;
end else
begin
writeln('None ores at bank... Logging out.');
NextPlayer1 := true;
NP('F');
Exit;
end;
end;
'Silver' :
begin
WithDrawDTM(SilverOre2, 28);
wait(70+random(20));
if CountItemDTM(SilverOre2) = (28) then
begin
wait(70+random(20));
Result := True;
end else
begin
writeln('None ores at bank... Logging out.');
NextPlayer1 := true;
NP('F');
Exit;
end;
end;
'Steel' :
begin
WithDrawDTM(IronOre2, 9)
wait(70+random(20));
if CountItemDTM(IronOre2) = (9) then
begin
wait(70+random(20));
end else
begin
writeln('None ores at bank... Logging out.');
NextPlayer1 := true;
NP('F');
Exit;
end;
WithDrawDTM(CoalOre2, 0);
wait(70+random(20));
if CountItemDTM(CoalOre2) = (19) then
begin
wait(70+random(20));
Result := True;
end else
begin
writeln('None ores at bank... Logging out.');
NextPlayer1 := true;
NP('F');
Exit;
end;
end;
'Gold' :
begin
WithDrawDTM(GoldOre2, 28);
wait(70+random(20));
if CountItemDTM(GoldOre2) = (28) then
begin
wait(70+random(20));
Result := True;
end else
begin
writeln('None ores at bank... Logging out.');
NextPlayer1 := true;
NP('F');
Exit;
end;
end;
'Mith' :
begin
WithDrawDTM(MithrilOre2, 5)
wait(70+random(20));
if CountItemDTM(MithrilOre2) = (5) then
begin
wait(70+random(20));
end else
begin
writeln('None ores at bank... Logging out.');
NextPlayer1 := true;
NP('F');
Exit;
end;
WithDrawDTM(CoalOre2, 0)
wait(70+random(20));
if CountItemDTM(CoalOre2) = (23) then
begin
wait(70+random(20));
Result := True;
end else
begin
writeln('None ores at bank... Logging out.');
NextPlayer1 := true;
NP('F');
Exit;
end;
end;
'Addy' :
begin
WithDrawDTM(AdamantOre2, 5)
wait(70+random(20));
if CountItemDTM(AdamantOre2) = (5) then
begin
wait(70+random(20));
end else
begin
writeln('None ores at bank... Logging out.');
NextPlayer1 := true;
NP('F');
Exit;
end;
WithDrawDTM(CoalOre2, 0)
wait(70+random(20));
if CountItemDTM(CoalOre2) = (23) then
begin
wait(70+random(20));
Result := True;
end else
begin
writeln('None ores at bank... Logging out.');
NextPlayer1 := true;
NP('F');
Exit;
end;
end;
'Rune' :
begin
WithDrawDTM(RuniteOre2, 3)
wait(70+random(20));
if CountItemDTM(RuniteOre2) = (3) then
begin
wait(70+random(20));
end else
begin
writeln('None ores at bank... Logging out.');
NextPlayer1 := true;
NP('F');
Exit;
end;
WithDrawDTM(CoalOre2, 0)
wait(70+random(20));
if CountItemDTM(CoalOre2) = (25) then
begin
wait(70+random(20));
Result := True;
end else
begin
writeln('None ores at bank... Logging out.');
NextPlayer1 := true;
NP('F');
Exit;
end;
end;
end;
wait(random(40));
end;
end;

Procedure ToBank;
begin
if not Loggedin then Exit;
if (FindDTM(RCactus, x, y, 570, 5, 725, 166)) then
begin
Mouse(x, y, 5, 5, True);
FFlag(0);
Wait(1000);
if (FindDTM(CounterDTM, x, y, 570, 5, 725, 166)) then
begin
Mouse(x+4, y, 5, 5, True);
FFlag(0);
Wait(2000);
end;
end;
end;

procedure SWait; forward;

function DoSmelt: Boolean;
var
Mark : LongInt;
begin
if not Loggedin then Exit;
FindObjCustom(x, y, ['Smelt', 'melt'], [2697516, 2967725], 10);
Mouse(x, y, 3, 3, true);
Wait(1000);
repeat
if not LoggedIn then Exit;
wait(200+random(40));
until(FurnaceScreen)
if (FurnaceScreen) then
begin
if (FindDTM(BarS, x, y, 1, 339, 518, 479)) then
begin
wait(100+random(40));
Mouse(x, y, 5, 5, false);
wait(100);
if (ChooseOption('melt X')) then
begin
Wait(800+random(500));
case random(16) of
0: TypeSend('55');
1: TypeSend('678');
2: TypeSend('123');
3: TypeSend('34');
4: TypeSend('75');
5: TypeSend('987');
6: TypeSend('55');
7: TypeSend('354');
8: TypeSend('61');
9: TypeSend('51');
10: TypeSend('651');
11: TypeSend('4654');
12: TypeSend('987');
13: TypeSend('654');
14: TypeSend('312');
15: TypeSend('321');
end;
MarkTime(Mark);
repeat
SWait;
if not LoggedIn then exit;
until(finddtm(RunOut, x, y, 1, 339, 518, 479)) or (TimeFromMark(Mark) > 60000);
Result := True;
wait(random(40));
exit;
end else
begin
if (FindDTM(SmeltX, x, y, 4, 4, 515, 377)) then
begin
Wait(100+random(20));
Mouse(x, y, 5, 5, true);
Wait(800+random(500));
case random(16) of
0: TypeSend('55');
1: TypeSend('678');
2: TypeSend('123');
3: TypeSend('34');
4: TypeSend('75');
5: TypeSend('987');
6: TypeSend('55');
7: TypeSend('354');
8: TypeSend('61');
9: TypeSend('51');
10: TypeSend('651');
11: TypeSend('4654');
12: TypeSend('987');
13: TypeSend('654');
14: TypeSend('312');
15: TypeSend('321');
end;
MarkTime(Mark);
repeat
SWait;
if not LoggedIn then Exit;
until(finddtm(RunOut, x, y, 1, 339, 518, 479)) or (TimeFromMark(Mark) > 60000);
Result := True;
wait(random(40));
exit;
end else
begin
writeln('Did not found furnace.');
Result := False;
wait(random(40));
end;
end;
BarsMade := BarsMade + CountItemDTM(Bar);
end;
end else
begin
writeln('Did not found furnace. Checking place...');
if (not(InSmelt))then
begin
Players[CurrentPlayer].Loc := 'Lost';
Result := False;
wait(random(40));
NextPlayer1 := true;
NP('F');
end else
begin
FindObj(x, y, 'Smelt', 2697257, 10);
Mouse(x, y, 3, 3, true);
wait(1500+random(200));
if (FurnaceScreen) then
begin
if (FindDTM(BarS, x, y, 1, 339, 518, 479)) then
begin
wait(100+random(40));
Mouse(x, y, 5, 5, false);
if (ChooseOption('melt X')) then
begin
Wait(250+random(500));
case random(16) of
0: TypeSend('55');
1: TypeSend('678');
2: TypeSend('123');
3: TypeSend('34');
4: TypeSend('75');
5: TypeSend('987');
6: TypeSend('55');
7: TypeSend('354');
8: TypeSend('61');
9: TypeSend('51');
10: TypeSend('651');
11: TypeSend('4654');
12: TypeSend('987');
13: TypeSend('654');
14: TypeSend('312');
15: TypeSend('321');
end;
MarkTime(Mark);
repeat
SWait;
if not LoggedIn then Exit;
until(finddtm(RunOut, x, y, 1, 339, 518, 479)) or (TimeFromMark(Mark) > 60000);
Result := True;
wait(random(40));
end;
end;
end;
end;
end;
end;

Procedure ToSmelt;
begin
if not Loggedin then Exit;
if (FindDTM(RCactus, x, y, 570, 5, 725, 166)) then
begin
Mouse(x, y, 5, 5, True); ;
FFlag(0);
if (FindSymbol(x, y, 'furnace')) then
begin
Mouse(x+(4), y, 3, 3, True); ;
FFlag(0);
end else
begin
if (FindColorTolerance(x, y, 1734910, 570, 5, 725, 166, 5)) then
begin
Mouse(x+4, y, 5, 5, True); ;
FFlag(0);
if (FindColorTolerance(x, y, 1724520, 4, 4, 515, 377, 5)) then
begin
MMouse(x, y, 0, 0);
if (IsUpText('Open')) then
begin
Mouse(x, y, 0, 0, True); ;
end else
begin
Mouse(609, 82, 5, 5, True); ;
end;
end;
end else
begin
Mouse(643, 34, 5, 5, True); ; //AAH!! COORD CLICKING!! :S
FFlag(0); //It is when finding furnacecolor fails anyway..
end;
end;
end else
begin
if (RadialWalk(7720655, 20, 70, 70, 2, 2)) then
begin
FFlag(0);
if (FindColorTolerance(x, y, 1724520, 4, 4, 515, 377, 5)) then
begin
MMouse(x, y, 0, 0);
if (IsUpText('Open')) then
begin
Mouse(x, y, 0, 0, True); ;
end else
begin
Mouse(609, 82, 5, 5, True); ;
end;
end;
end;
end;
Wait(3000);
end;

procedure SWait;
var
Mark, RX, RY : Integer;
begin
MarkTime(Mark);
repeat
if (FindDTM(LevelDTM, x, y, 1, 339, 518, 479)) then
begin
Wait(random(40));
Mouse(x, y, 40, 2, true);
Wait(200+random(100));
DoSmelt;
Break;
end else
begin
if (FindDTM(RunOut, x, y, 6, 429, 518, 479)) then
begin
Wait(random(40));
Break;
end else
begin
Wait(100);
RX := 4+Random(764);
RY := 4+random(502);
MMouse(RX, RY, 30, 30);
Wait(RX + RY + RY);
RX := 4+Random(764);
RY := 4+random(502);
MMouse(RX, RY, 30, 30);
Wait(RX + RY + RY);
end;
end;
until(TimeFromMark(mark) > 60000);
end;

procedure CalculateXp;
begin
if not Loggedin then Exit;
Xp := GetXp('Smithing');
XpMade := Xp + (BarExp * BarsMade);
GameTab(4)
end;

Procedure Load;
begin
RCactus := DTMFromstring('78DA635CC4C4C060C780024EEF2905D38C503' +
'EE334A01A5B54352D01BAA86A9602D5F8A1AAF12A3246510300A8' +
'51069F');
RunOut := DTMFromstring('78DA63E4666060D8CBC8800E58811824FA1F0' +
'81855808C43986A18A06AC0B433116A2280C461026AF288505306' +
'240E1250D344847BA61061CE1222DCB38B0873CE13760F00AC1B1' +
'165');
SmeltX := DTMFromstring('78DA634C62606058C08002FEFFFF0FA619A17' +
'CC66020318B809A7C20B188809A2020B19808736613505341847B' +
'6A8930A79608375710A1A60A48CCC3AF060080DC2871');
BankDTM := DTMFromString('78DA632C606260B0654001EF9E3C61E002D28' +
'C40FC1F0818276057C3005503A641E6141150338108350D403576' +
'F8D50000974615C5');
CounterDTM := DTMFromString('78DA630C676260486740015FBF426846289F1' +
'1A4269B0835F944A829C6AF060020E90AC9');
SmeltDTM := DTMFromString('78DA634C65626030634001EF9E3C61E002D28' +
'C40FC1F08185BB0AB6180AA01D3ED40354904D49403D594E25703' +
'00AF7B1219');
LevelDTM := DTMFromString('78DA6314656460D80BC428E03F988489325E6' +
'720AC269D087340761DC4AF060094CC086C');
CopperOre2 := DTMFromString('78DA638C656060F064400155EE0A609A11CA6' +
'70C0012DE0C688011554D34908826A02613480413509387E91E74' +
'3500EF4E045A');
TinOre2 := DTMFromString('78DA638C656060F0644001DE6E6E609A11CA6' +
'70C000932A001465435D140229A809A4C20114C404D1EA67BD0D5' +
'0000E8C30450');
IronOre2 := DTMFromString('78DA638C656060F06440012AE282609A11CA6' +
'70C0012DE0C688011554D34908826A02613480413509387E91E74' +
'3500927C03C5');
MithrilOre2 := DTMFromString('78DA638C656060F06440011A1AD6609A11CA6' +
'70C0012DE0C688011554D34908826A02613480413509387E91E74' +
'3500B9770404');
CoalOre2 := DTMFromString('78DA637466606028664001525242609A11CA6' +
'7340512E50C688011558D3D906825A0260048D411501382E91E74' +
'3500AD1A0410');
SilverOre2 := DTMFromString('78DA6374666060286640013131C9609A11CA6' +
'7340512E50C688011558D3D906825A0260048D411501382E91E74' +
'3500316504E5');
GoldOre2 := DTMFromString('78DA637466606028664001C571FC609A11CA6' +
'7340512E50C688011558D3D906825A0260048D411501382E91E74' +
'35000D2B04AA');
AdamantOre2 := DTMFromString('78DA6374666060E0626440063AE63A601A26C' +
'A6806247851D5C064E16AEC81840C013501404294809A104CF7A0' +
'AB010009300251');
RuniteOre2 := DTMFromString('78DA6374666060E062644006DA96F6601A26C' +
'A6806247851D5C064E16A405A6408A8090012A204D48460BA075D' +
'0D0015880265');
end;

procedure GetBarInfo(WhatBar: string);
begin
case WhatBar of
'Bronze' :
begin
Bar := DTMFromstring('78DA63FCC0C0C050C48002E23C75C0342394C' +
'FF80A48E4A3AAF1B3514555F3144814A3AA3154134751030090AD' +
'060A');
BarS := DTMFromstring('78DA633466606098C8C8800CFC6D5519B8803' +
'448F43F1030EA00197350D518AA8983699828A33590988EAA26CE' +
'5317450D002CC60861');
Barexp := 6.2;
end;
'Iron' :
begin
Bar := DTMFromstring('78DA637467606058CC800252E3E2C0342394C' +
'FE80224E6A2AA09F6F54555E3002416A1AA31373646510300541C' +
'055F');
BarS := DTMFromstring('78DA639CC5C0C0308991011984F8F93170016' +
'990E87F20609C0264CC455563616202A661A28C8B81C434543569' +
'F171286A00A70B0A59');
Barexp := 12.5;
end;
'Silver' :
begin
Bar := DTMFromstring('78DA63F462606038C4800256ADDA0AA619A17' +
'C461720B10F554D77CF3454350E40E228AA9AB8B854143500EB5C' +
'07F1');
BarS := DTMFromstring('78DA633CC3C0C03085910119F4F44C67E002D' +
'220D1FF40C07804C8988BAA262E2E0D4CC34419AF008999A86A56' +
'AFDE86A2060039740D1B');
Barexp := 13.5;
end;
'Steel' :
begin
Bar := DTMFromstring('78DA63F460606078CC8002267576806946289' +
'FD11548DC435553595880AAC601483C415513E0ED85A20600CDB4' +
'075B');
BarS := DTMFromstring('78DA6364626460980AC448A0AAB090810B488' +
'344FF0301E31F20632EAA9A406F6F300D1365E402B266A0AA99DC' +
'D989A20600ABED0ACC');
Barexp := 17.5;
end;
'Gold' :
begin
Bar := DTMFromstring('78DA63F460606060666440063737CA8069982' +
'8A30B320F02364D124755E304245850D59425F2A3A80100220C04' +
'C6');
BarS := DTMFromstring('78DA63346564609804C44860F36409062E200' +
'D12FD0F048C7A40D65C5435E54902601A26CA680564CD40557373' +
'932C8A1A0090A30A66');
Barexp := 22.5;
end;
'Mith' :
begin
Bar := DTMFromstring('78DA63F462606078CB8002FCFC8BC0342394C' +
'FE80A245EA1AA71708C4355E30024DEA3AAD1D2B64351030086FF' +
'061D');
BarS := DTMFromstring('78DA63CC646460980CC448C0D1319E810B488' +
'344FF0301631290350F558DB6B63D98868932160159D351D5F8FB' +
'17A3A8010076DA099F');
Barexp := 30.0;
end;
'Addy' :
begin
Bar := DTMFromstring('78DA63F4606060E063644006416941601A26C' +
'AE80A243851D538053BA1AAB10712FCA86A74CC7550D40000D3D0' +
'036C');
BarS := DTMFromstring('78DA639CC7C8C0301988918073B0330317900' +
'689FE0702C6E940D61C54353AE63A601A26CAB818C89A81AA2638' +
'3D18450D009E300A27');
Barexp := 37.5;
end;
'Rune' :
begin
Bar := DTMFromstring('78DA63F4626060D061644006C17955601A26C' +
'AE80C243451D5B844A7A0AAB1071206A86A746D9C50D40000074B' +
'0444');
BarS := DTMFromstring('78DA63BCCCC8C030198891806B742A0317900' +
'689FE0702C6D340D66C54357AB6CE601A26CA781BC89A81AA2624' +
'BF1A450D00E1CC0B43');
Barexp := 50.0;
end;
end;
BBar := WhatBar;
end;

Procedure DrawImages(Sender: TObject);
var
Picture : Integer;
Canvas : TCanvas;

Begin
picture := BitmapFromString(200, 177, '*SNIP*');
Canvas := GetBitmapCanvas(Picture);
CopyCanvas(Canvas, frmDesign.Canvas, 0, 0, 207, 200, 0, 0, 207, 200);
FreeBitmap(Picture);
end;

Procedure ButtonClick(Sender: TObject);
Begin
case Sender of
StartLabel : begin
frmDesign.ModalResult := mrOk;
wait(200);
SRLPlayerForm(True, [], ['Loads To Do'], ['Ore To Smelt', 'Bank PIN', 'SRL ID', 'SRL Password'], []);
end;
ExitLabel : begin
frmDesign.ModalResult := mrOk;
exit;
end;
end;
end;

Procedure InitForm;
Begin
frmDesign := CreateForm;
frmDesign.Left := 267;
frmDesign.Top := 126;
frmDesign.Width := 200;
frmDesign.Height := 177;
frmDesign.Caption := 'Al-Kharid Smelter';
frmDesign.Color := clBtnFace;
frmDesign.Font.Color := clWindowText;
frmDesign.Font.Height := -11;
frmDesign.Font.Name := 'MS Sans Serif';
frmDesign.Font.Style := [];
frmDesign.OnPaint := @DrawImages;
frmDesign.Visible := False;
frmDesign.PixelsPerInch := 96;
frmDesign.Borderstyle := bsNone;
BackGround := TLabel.Create(frmDesign);
BackGround.Parent := frmDesign;
BackGround.Left := 0;
BackGround.Top := 0;
BackGround.Width := 200;
BackGround.Height := 177;
BackGround.Cursor := crDefault;
BackGround.AutoSize := False;
ExitLabel := TLabel.Create(frmDesign);
ExitLabel.Parent := frmDesign;
ExitLabel.Left := 8;
ExitLabel.Top := 136;
ExitLabel.Width := 106;
ExitLabel.Height := 36;
ExitLabel.Cursor := crHandPoint;
ExitLabel.AutoSize := False;
ExitLabel.OnClick := @ButtonClick;
ExitLabel.Transparent := True;
StartLabel := TLabel.Create(frmDesign);
StartLabel.Parent := frmDesign;
StartLabel.Left := 72;
StartLabel.Top := 88;
StartLabel.Width := 118;
StartLabel.Height := 41;
StartLabel.Cursor := crHandPoint;
StartLabel.AutoSize := False;
StartLabel.OnClick := @ButtonClick;
StartLabel.Transparent := True;
end;

procedure SafeInitForm;
var
v: TVariantArray;
begin
setarraylength(V, 0);
ThreadSafeCall('InitForm', v);
end;

procedure ShowFormModal;
begin
frmDesign.ShowModal;
end;

procedure SafeShowFormModal;
var
v: TVariantArray;
begin
setarraylength(V, 0);
ThreadSafeCall('ShowFormModal', v);
end;

procedure PlayerReport;
var
Active : string;
P : Integer;
begin
for P := 0 to HowManyPlayers - 1 do
begin
if Players[P].Active = True then
Active := 'T'
else
Active := 'F';
WriteLn('| '+ (IntToStr(P)) +' : '+ Players[P].nick + ' = '+ Active +'. |');
if (Players[P].Banked > 0) then
Writeln('| Bars made = '+ IntToStr(Players[P].Banked) +'. |');
Writeln('| Loc = '+ Players[P].Loc +'. |');
end;
end;

procedure Proggie;
begin
ClearDeBug;
Writeln('/**************************\');
Writeln('| Zytexs AK Smelter! |');
Writeln('| Ver: '+ Ver +'. |');
Writeln('| Worked for: |');
Writeln('| '+ TimeRunning +'|');
Writeln('|**************************|');
PlayerReport;
Writeln('\**************************/');
end;

procedure NP(Active : string);
begin
if (NextPlayer1 = true) then
begin
if (HowManyPlayers = 1) then
begin
TerminateScript;
end;
if (Active = 'F') then
begin
NextPlayer(false);
end else
NextPlayer(true);
LogInPlayer;
GetBarInfo(Players[CurrentPlayer].strings[0]);
wait(2000+Random(100));
HighestAngle;
MouseSpeed := SetMouseSpeed;
SetChat('on',1);
SetChat('friends',3);
SetChat('off',2);
NextPlayer1 := false;
CalculateXp;
Proggie;
end;
end;

procedure SetUp;
var
i : Integer;
begin
Load;
SetupSRL;
SetupSmithing;
Disguise('Adobe Photoshop Elements - [Untitled-1 @ 66,7% (Layer 1, RG)]');
ClearDeBug;
ScriptId := '577';
GetApplication.BringToFront;
SafeInitForm;
SafeShowFormModal;
for i := 0 to HowManyPlayers - 1 do
if Not(Players[i].Strings[2] = '') then
Begin
SRLID := Players[i].Strings[2];
SRLPassword := Players[i].Strings[3];
Break;
end;
if (NextPlayer1 = true) then
begin
LogInPlayer;
GetBarInfo(Players[CurrentPlayer].strings[0]);
wait(2000+Random(100));
HighestAngle;
MouseSpeed := SetMouseSpeed;
SetChat('on',1);
SetChat('friends',3);
SetChat('off',2);
NextPlayer1 := false;
CalculateXp;
Proggie;
end;
end;

begin
NextPlayer1 := true;
SetUp;
Proggie;
repeat
repeat
if InBank then
if DoBank then
ToSmelt;
if InSmelt then
if DoSmelt then
ToBank;
if (Lost) then
begin
Players[CurrentPlayer].Loc := 'Lost';
Proggie;
NextPlayer1 := true;
NP('F');
end;
if (Players[CurrentPlayer].Loc = 'Lost') then
begin
LogOut;
Proggie;
NextPlayer1 := true;
NP('F');
end;
until(false)//(Players[CurrentPlayer].Banked mod Players[CurrentPlayer].Integer[0] = 0) //MUST FIX
NextPlayer1 := true;
NP('A');
until(false) //All players false. need to fix to.
FreeSmithingBitMaps;
end.
I too used few uptext checks, not many failsafes at all, and I used DTMs for walking! (Note; no DDTM, DTM.)
Take a look at my DoBank and DoSmelt procedures. It could easily be edited so that they would take up 1/3 of the amount of lines they do now, and the only arrays I use is the ones from the SRL include. I don't even think I knew about arrays at the time. I didn't use TPA for objet finding (I used SRL's FindObjectTPA, but I don't remember if I actually knew how it worked. TomTuff obviously do. Post #20).

EDIT: And please note that I wrote "USE SCARSCAPE" at the top because I didn't bother to add tolerance to stuff / fix the compass shifting.

Still I got in.

I absolutely agree with WT-Fakawi. TomTuff deserves the SRL Member title, and I'm glad he got it.

WT-Fakawi

2010-09-17 08:43:15

You can't enter as a master. You may enter if you try to the best of your abilities and show basic skills in programming.

Everytime it blows me away to see what Membership does to the community. Immediately there is a division between US/THEM.

My programming standards are pretty low, my technical skills are far below the average Member, yet I have written many huge scripts that combine lots of RS-skills. I bet those script wouldnt get through the ballot commision nowadays.

And to stress once more: we need all the talent we can. Everyone that commences to write scripts in Simba is in essence Member material.

Richard

2010-09-17 15:59:39

If anyone looks at any of my scripts, you can clearly see I was far from the best scripter. Even now, I can admit I'm really not the best at programming in SCAR. Personally, I feel that applications should include a section about how they feel they've contributed to the community.

In comparison to others, I personally don't think I was worthy of membership at the time.

bugger0001

2010-09-18 05:39:14

I don't know if anybody still remembers my application, but back in the time when I became a member, I had been a junior for ages and had been writing lots of pointless and simple scripts just for studying purposes. And then the first 'proper' script I wrote and decided to show to the community was also the same script I was told to apply with and which eventually made me a member.

I never thought my script was good enough to apply, yet I still got in with ease. And as for today, I still think that script was not enough to become a member, at least not good enough to be accepted that easily. Probably that's why I voted NO for TomTuff's application aswell. Yet, I am glad he actually got in as his application is AT LEAST the same level as was mine.

I think the standards for becoming a member are different for every current member and that is normal. If we'd have strict regulations for the voting process then there would only be a 100% YES and 100% NO applications, meaning that weaker applicants would be more disappointed when their applications got denied and people who get in would be too encouraged about their actual abilities. Sure, if there is a mind-blowing application, then it most probably will be 100% YES.

Anyways, to sum it all up. What I intended to say, is that the application result should not only be about getting in or staying out. It should also be sort of a feedback to the applicant about how good his/hers application really was. If that's not the purpose of the poll then why not just the admins/mods have the right to decide who's in and who's not.

3Garrett3

2010-09-18 12:26:26

My Members App

Nuff said.

Would be a laugh-fest if someone applied with that today.

TomTuff

2011-01-22 03:01:20

From: WT-Fakawi
Mayor bump (again) because of this:

http://villavu.com/forum/showthread.php?t=58807

Why?

Tomtuff is one of a few new talented young (12) scripters who has worked his butt of to get it right. No, I haven't run the script, but judging by the looks of it, Tom and his scripts seem allright.

So why the hell would you push no….and not even bother to say why? Please please, try to remember what it was like back when you where a noob, please, read my first post.


P.S. Tomtuff is in! (second new member since we reopened….months ago, djeeez!)


From: Sir R. Magician
Devils Advocate..
~RM


This is a gravedig, but I feel it necessary that I thank Fakawi and RM for these posts.

Also, Fakawi, I was 14 at the time of applying :o (15 now). I think I had my birthdate set wrong… odd that it was lower and not higher.

WT-Fakawi

2011-01-22 17:15:33

From: TomTuff
This is a gravedig, but I feel it necessary that I thank Fakawi and RM for these posts.

Also, Fakawi, I was 14 at the time of applying :o (15 now). I think I had my birthdate set wrong… odd that it was lower and not higher.


Hmm, this thread should have been closed long ago. Sorry. Not nice having others talking so freely about you.

Gu3st...

2011-11-16 16:58:45

"Bumping" this thread (Not really bumping since it's a sticky, but I'm focusing more attention towards it anyways)

Now that more and more people are coming to SRL to find scripts, we will get more and more applicants. Some will be without scripts, some will be with copied scripts, some will be with very simple scripts and some will be good scripts, but keep in mind that the script should not be the sole reason to what you are voting ;)