SRL Archive - Archive

unrealman - SRL Member Application Form


unrealman

2009-01-04 15:08:24

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

What is the meaning to life?


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


Programming Knowledge
HTML, PHP, Java, Basic

Other Communitys
Zybez

How Long have You Played Runescape
5 years

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

I have been apart of SRL for a little wile but I hardly had any knowledge of how to script or even work SCAR. After a while i looked at some tutorials and found out how to make SCAR work. At that time i was still a leecher and could only use the Free For All scripts and i said , "hmm i wonder what the Jr. Member scripts are like." So i starting posting and eventually got up to 10 posts. I was like YES! finnaly. Then after i got the Jr. Mem scripts i said to myself, I don't think this is fair.. I get to use all these amazing scripts and what have i done to contribute to SRL? So i started looking into tutorials for scripting and found out how to move the mouse, click on colors, all of the basics. Then it just took off. I loved scripting but i just didn't have the time. My mom hates it when i am on the computer and i get grounded if i am on for over an hour so it kind of took a while to actually take the time to make my own script. I did learn a lot with trying to make a script. I just want to learn even more than i already do though.. =)

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

{/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/\ Instructions /\/////////////////////
//////////////////////////////\/\/\/\/\/\/\/\/\/\\\\\\\\\\\\\\\\\\\\\
/// Make Sure you start off in Varrock West Bank with a \\
/// tinderbx already in your invintory. Set the tab to the \\
/// correct tab before starting the script. Make sure that \\
/// it is Set up that way and you should be ready to roll!! \\
/// \\
/// Thanks for trying it out. \\
/// Plz give me feedback on the forums. THNX!!! \\
/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/////////\\\\\\\\\/////////////////////
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/}

{Fill Our Declare Players Below!}

program Firemaker;
{.include SRL/SRL/Misc/Smart.scar}
{.include SRL/SRL.scar}
{.include SRL/SRl/SKILL/Firemaking.scar}


var
x, y : Integer
;Tinder, Willow, Oak, Maple, Total : Integer
;Testing : Boolean
;Coolor : TPointArray
;CoolorP : TPoint

;Procedure DeclarePlayers;
Begin

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

Players[0].Name := 'Username';
Players[0].Pass := 'Password';
Players[0].Nick := 'ser';
Players[0].Pin := '0000';
Players[0].Strings[0] := 'Willow'; //What Log Are You Going To Use?
//Valid Arguments are 'Oak', 'Willow', and 'Maple'
Players[0].Active:= True;

Writeln( IntToStr ( HowManyPlayers ) + ' Player[s]' );
End;

procedure DeclareDTMs;
begin
Tinder := DTMFromString('78DA63CC62626070626440068E961C0CFF813' +
'448F43F1030A603D598A1AA81C8C248205D0654634C404D0A508D' +
'370135F140357604D49400D578E0570300EF6C099B');

Willow := DTMFromString('78DA639CC1C4C060CBC8800CC2FDE419F8813' +
'448F43F10302EC45403918591407A31508D3B0135B3806A3C09A8' +
'E903AAF122A0A61DA8C619BF1A0009880A15');

Oak := DTMFromString('78DA637CC5C4C060CBC8800C26E43B31F0036' +
'990E87F2060FC0154638FAA06220B2381F467A01A77026ADE02D5' +
'781250F318A8C69B809ADB4035AEF8D500005EE60C8C');

Maple := DTMFromString('78DA633CC4C4C060CBC8800C0A7C7819F8813' +
'448F43F10309E05AAB147550391859140FA1C508D1B013547806A' +
'3C09A8D90554E34340CD46A01A17FC6A008C890B1F');
end;



Function DeclareDDTMs(walkorlog: Integer): Integer; // TY Mariofan12 for the DDTTMs
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array[0..4] of TDTMPointDef;
TempTDTM: TDTM;
Vroadcolor: integer;
begin
Vroadcolor := FindVarrockRoadColor;
case walkorlog of
1: begin
dtmMainPoint.x := 573;
dtmMainPoint.y := 110;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := Vroadcolor;
dtmMainPoint.Tolerance := 7;

dtmSubPoints[0].x := 573;
dtmSubPoints[0].y := 110;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := Vroadcolor;
dtmSubPoints[0].Tolerance := 7;

dtmSubPoints[1].x := 555;
dtmSubPoints[1].y := 91;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := Vroadcolor;
dtmSubPoints[1].Tolerance := 7;

dtmSubPoints[2].x := 574;
dtmSubPoints[2].y := 53;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 6392462;
dtmSubPoints[2].Tolerance := 15;

dtmSubPoints[3].x := 586;
dtmSubPoints[3].y := 126;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 4486771;
dtmSubPoints[3].Tolerance := 15;

dtmSubPoints[4].x := 562;
dtmSubPoints[4].y := 107;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := Vroadcolor;
dtmSubPoints[4].Tolerance := 7;

TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;

2: begin
dtmMainPoint.x := 602;
dtmMainPoint.y := 95;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 5271947;
dtmMainPoint.Tolerance := 15;

dtmSubPoints[0].x := 602;
dtmSubPoints[0].y := 95;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 5271947;
dtmSubPoints[0].Tolerance := 15;

dtmSubPoints[1].x := 602;
dtmSubPoints[1].y := 114;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := Vroadcolor;
dtmSubPoints[1].Tolerance := 7;

dtmSubPoints[2].x := 602;
dtmSubPoints[2].y := 118;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := Vroadcolor;
dtmSubPoints[2].Tolerance := 7;

dtmSubPoints[3].x := 622;
dtmSubPoints[3].y := 116;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := Vroadcolor;
dtmSubPoints[3].Tolerance := 7;

dtmSubPoints[4].x := 607;
dtmSubPoints[4].y := 87;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 5271947;
dtmSubPoints[4].Tolerance := 15;


TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;

3: begin
dtmMainPoint.x := 630;
dtmMainPoint.y := 106;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindVarrockRoadColor;
dtmMainPoint.Tolerance := 7;

dtmSubPoints[0].x := 630;
dtmSubPoints[0].y := 106;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindVarrockRoadColor;
dtmSubPoints[0].Tolerance := 7;

dtmSubPoints[1].x := 612;
dtmSubPoints[1].y := 79;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 4947074;
dtmSubPoints[1].Tolerance := 15;

dtmSubPoints[2].x := 625;
dtmSubPoints[2].y := 48;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 4947074;
dtmSubPoints[2].Tolerance := 15;

dtmSubPoints[3].x := 632;
dtmSubPoints[3].y := 109;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindVarrockRoadColor;
dtmSubPoints[3].Tolerance := 15;

dtmSubPoints[4].x := 617;
dtmSubPoints[4].y := 34;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 6392462;
dtmSubPoints[4].Tolerance := 15;

TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
end;
end;

procedure FreeDtms;
begin
freedtm(Tinder);
freedtm(Willow);
freedtm(Oak);
freedtm(Maple);
end;

procedure antibann;
begin
if not LoggedIn then Exit;
case Random(60) of
0: wait(500+random(10000));
1: begin
RandomMovement;
SetAngle(true);
end;
2: HoverSkill('random' ,false);
3: PickUpMouse;
end;
end;

Procedure AntiiRandoms;
begin
FindNormalRandoms;
FindInventoryRandoms;
FindnonInventoryRandoms;
Findtalk;
if Pos('tch sp', lowercase(GetTalkingNPCName)) > 0 then ClickContinue(true, true);
end;

function sWait(number: integer): boolean; //Thank You "i pro leechin'"
var
i, d, g, b: integer;
begin
d := (number + 10);
g := random(3) + 1;
b := random(4) + 1;
for i := 1 to g do
d := d + (d / b);
wait(d);
end;

procedure SetupSmart;
begin
SmartSetupEx(2, True, True, False);
SetTargetDC(SmartGetDC);
end;

Procedure Stuckage;
var
VarrockRoadColor: integer;
begin
makecompass('n');
VarrockRoadColor := FindVarrockRoadColor;
if RadialRoadWalk(VarrockRoadColor, 45, 135, 20 + random(10), -2, 1)then
begin
Writeln('Getting Into Position');
end else
begin
if RadialRoadWalk(VarrockRoadColor, 225, 315, 20 + random(10), -2, 1) then
begin
Writeln('Getting Into Position');
end else
begin
Writeln('Don''t Know Where You Are. Logging Character Out');
logout;
end;
end;
end;




procedure GetOaks;
begin
DeclareDTMs;
if FindDtm(Oak, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
mouse(x, y, 8, 8, false);
swait(600);
chooseoption('All');
closebank;
end else
begin
closebank;
Writeln('No More logs!');
end;
end;

procedure GetWillows;
begin
DeclareDTMs;
if FindDtm(Willow, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
mouse(x, y, 8, 8, false);
swait(600);
chooseoption('All');
closebank;
end else
begin
closebank;
Writeln('No More logs!');
end;
end;

Procedure GetMaples;
begin
DeclareDTMs;
if FindDtm(Maple, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
mouse(x, y, 8, 8, false);
swait(400);
chooseoption('All');
closebank;
end else
begin
closebank;
Writeln('No More logs!');
end;
end;

procedure GetLogs;
begin
GameTab(4);
MakeCompass('perfect north');
SetAngle(True);
if not(FindDTM(maple, x, y, MIx1, MIy1, MIx2, MIy2))then
begin
OpenBank('vwb', True, True);
end;
if pinscreen then
begin
InPin(Players[CurrentPlayer].pin);
Wait(258+random(168));
end;
if (BankScreen) then
begin
case Lowercase(players[currentplayer].strings[0]) of
'Oak', 'oak': GetOaks;
'Willow', 'willow': GetWillows;
'Maple', 'maple': GetMaples;
end;
antibann;
end else
begin
WriteLn('Can Not Find ' + players[currentplayer].Strings[0] + ' Logs. Terminating Script');
Logout;
end;
end;

procedure WalkToSpot;
var
Walk, Help, VarrockRoadColor: integer;
begin
if not LoggedIn then exit;
Walk := DeclareDDTMs(1);
Help := DeclareDDTMs(3);
VarrockRoadcolor := FindVarrockRoadColor;
Makecompass('n');
if (RadialRoadWalk(VarrockRoadcolor, 100, 180, 50 + random(22), -2, 1)) then
begin
Writeln('Walked out using radial walk');
end else
begin
if DTMRotated(Walk, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(x, y, 8, 8, true);
FFlag(0);
Writeln('Walk out of bank Complete');
end else
begin
if DTMRotated(Help, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(x, y, 8, 8, true);
FFlag(0);
Writeln('Walk out of bank Complete');
end else
begin
WriteLn('Could not find the road, logging out');
logout;
end;
end;
end;
freedtm(Help);
freedtm(Walk);
end;

procedure WalkToBank;
var
Walk, Help, b, VarrockRoadcolor: integer;
begin
if not LoggedIn then exit;
Help:= DeclareDDTMs(1);
Walk:= DeclareDDTMs(2);
VarrockRoadColor := FindVarrockRoadColor;

if DTMRotated(Walk, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(x, y, 8, 8, true);
FFlag(0);
Testing := True;
swait(100);
if FindSymbol(x, y, 'bank') then
begin
mouse(x, y, 6, 6, True);
FFlag(0);
end else
begin
FindColorsSpiralTolerance(MMCx, MMCy, Coolor, 2871018, MMX1, MMY1, MMX2, MMY2, 10);
if Length(Coolor) = 0 then
begin
Writeln('Don''t Know Where You Are. Logging Character Out');
logout;
end;
For b := 0 to High(Coolor) do
begin
CoolorP := Coolor[b];
mouse(CoolorP.x, CoolorP.y, 6, 6, True);
FFlag(0);
end;
end;
end else if DTMRotated(Help, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
mouse(x, y, 8, 8, true);
FFlag(0);
Testing := True;
swait(100);
if FindSymbol(x, y, 'bank') then
begin
mouse(x, y, 6, 6, True);
FFlag(0);
end else
begin
FindColorsSpiralTolerance(MMCx, MMCy, Coolor, 2871018, MMX1, MMY1, MMX2, MMY2, 10)
if Length(Coolor) = 0 then
begin
Writeln('Don''t Know Where You Are. Logging Character Out');
logout;
end;
For b := 0 to High(Coolor) do
begin
CoolorP := Coolor[b];
mouse(CoolorP.x, CoolorP.y, 6, 6, True);
FFlag(0);
end;
end;
end else if (RadialRoadWalk(VarrockRoadColor, 45, 135, 50 + random(22), -2, 1)) then
begin
swait(100);
Testing := true;
if FindSymbol(x, y, 'bank') then
begin
mouse(x, y, 6, 6, True);
FFlag(0);
end else
begin
FindColorsSpiralTolerance(MMCx, MMCy, Coolor, 2871018, MMX1, MMY1, MMX2, MMY2, 10)
if Length(Coolor) = 0 then
begin
Writeln('Don''t Know Where You Are. Logging Character Out');
logout;
end;
For b := 0 to High(Coolor) do
begin
CoolorP := Coolor[b];
mouse(CoolorP.x, CoolorP.y, 6, 6, True);
FFlag(0);

end;
end;
end else
begin
Testing := False;
Writeln('Don''t Know Where You Are. Logging Character Out');
end;
if not (Testing) then
begin
Logout;
end;
FreeDTM(Walk);
FreeDtm(Help);
end;

procedure BurnOaks;
begin
if not(FindDTM(Tinder, x, y, MIx1, MIy1, MIx2, MIy2))then
Exit;
repeat
if FindDTM(Tinder, x, y, MIX1, MIY1, MIX2, MIY2) then
Mouse(x, y, 5, 5, True);
Wait(100+Random(200));
if FindDTM(Oak, x, y, MiX1, MiY1, MiX2, MiY2) then
Mouse(x, y, 5, 5, true);
Wait(1000 + Random(487));
if (GetBlackChatMessage = 'You can''t light a fire here.') then
begin
Wait(250 + Random(250));
Writeln('Can Not Light A Fire. Changing Position');
Stuckage;
end;
LightWait;
Total := Total +1
until (not FindDTM(Oak, x, y, MiX1, MiY1, MiX2, MiY2))
MakeCompass('perfect North');
Antiirandoms;
end;

procedure BurnWillows;
begin
if not(FindDTM(Tinder, x, y, MIx1, MIy1, MIx2, MIy2))then
Exit;
repeat
if FindDTM(Tinder, x, y, MIX1, MIY1, MIX2, MIY2) then
Mouse(x, y, 5, 5, True);
Wait(100+Random(200));
if FindDTM(Willow, x, y, MiX1, MiY1, MiX2, MiY2) then
Mouse(x, y, 5, 5, true);
Wait(1000 + Random(487));
if (GetBlackChatMessage = 'You can''t light a fire here.') then
begin
Wait(250 + Random(250));
Writeln('Can Not Light A Fire. Changing Position');
Stuckage;
end;
LightWait;
Total := Total +1
until (not FindDTM(Willow, x, y, MiX1, MiY1, MiX2, MiY2))
MakeCompass('perfect North');
Antiirandoms;
end;

procedure BurnMaples;
begin
if not(FindDTM(Tinder, x, y, MIx1, MIy1, MIx2, MIy2))then
Exit;
repeat
if FindDTM(Tinder, x, y, MIX1, MIY1, MIX2, MIY2) then
Mouse(x, y, 5, 5, True);
Wait(100+Random(200));
if FindDTM(Maple, x, y, MiX1, MiY1, MiX2, MiY2) then
Mouse(x, y, 5, 5, true);
Wait(1000 + Random(487));
if (GetBlackChatMessage = 'You can''t light a fire here.') then
begin
Wait(250 + Random(250));
Writeln('Can Not Light A Fire. Changing Position');
Stuckage;
end;
LightWait;
Total := Total +1
until (not FindDTM(Maple, x, y, MiX1, MiY1, MiX2, MiY2))
MakeCompass('perfect North');
Antiirandoms;
end;


procedure MakeFire;
begin
GameTab(4);
if LoggedIn then
begin
case Lowercase(players[currentplayer].strings[0]) of
'Oak', 'oak': BurnOaks;
'Willow', 'willow': BurnWillows;
'Maple', 'maple': BurnMaples;
end;
end else
begin
WriteLn('Can Not Find ' + players[currentplayer].Strings[0] + ' Logs. Terminating Script');
Logout;
end;
Antibann;
end;

Procedure ProgressReport;
begin
WriteLn('\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/');
WriteLn('\//////////// Progress Report! \\\\\\\\\\\\/');
WriteLn('\\\\\\\\\\\/\/\/\/\/\/\/\/\/\/\/\///////////');
WriteLn('\ ');
WriteLn('\ This Script Ran For: ' + TimeRunning +' ');
WriteLn('\ ');
WriteLn('\ You Burned: ' + IntToStr(Total) + ' logs!');
WriteLn('\ ');
WriteLn('\ Please Post Proggie On Forums! TY! ');
WriteLn('\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/');
WriteLn(' ');
end;



begin
SetupSRL;
SetupSmart;
DeclarePlayers;
LoginPlayer;
repeat
DeclareDTMs;
GetLogs;
WalkToSpot;
MakeFire;
WalkToBank;
ProgressReport;
FreeDTMs;
until(AllPlayersInactive)
end.

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

Scaper

2009-01-04 16:15:28

yes from me
happy new year

unrealman

2009-01-04 16:22:23

What was the reason for the no? I kind of want to know for future reference.

Naum

2009-01-04 16:25:13

Umm, sorry just a no.

1.Too many begins and ends

2.There's an access violation - which you can remove by putting the freedtms after the until statement (main-loop)

3.MakeCompass('perfect north'); isn't and argument Afaik.

4.Longetivity and posts…

5.Could have used cases.

Overall summary is you tried your best but here some really simple errors in there. You could have done better if you would have checked your script. Sorry if it sounded too mean, I was just pointing out some stuff. ;)

Quickmarch

2009-01-04 16:35:23

Looks good yes from me :)

benjaa

2009-01-05 05:52:46

Looks very simple and short. When you think about it, 100 lines could have been replaced with 2 or 3 if you used case for log-getting and burning.

Good work on DTM's and DDtm's though

Main loop is also ineffective, as the account is never not active
also is not multiplayer

antirandoms only needs FindNormalRandoms; - but I won't criticise, you're just extra careful!

each procedure NEEDS a failsafe - particularly if(not LoggedIn)then exit;

this character would also die if it gets into a random fight

MakeCompass('perfect north') is incorrect, and shows an error
should be MakeCompass('n')


Sorry, I don't think you're ready
Edit
: You should try looking around the forums more, getting your post count up.

I can see you know other scripting though, scar should be easy for you

Magiic

2009-01-05 13:21:20

also, he didn't make the DDTMs which is a big impact on the script, lots could be shortened and for some reason the way you declared the vars by putting a semicolon on the lines under them annoyed me for no reason whatsoever :/ weird. Sorry, no from me.

boberman

2009-01-05 14:10:37

Yes from me, the script is sufficiently complex as well as using pretty good programming form. I liked it all in all.

Torrent of Flame

2009-01-05 14:17:11

Nope. Others explained it pretty well.

Line 255: [Hint] (16704:10): Variable 'Result' never used in script

Eh, just felt like adding my own two cents.

EDIT: Your standards are a bit funky too.

Naike

2009-01-05 14:43:59

Yes.

Keep it up, and read more about cases, TPA's.

unrealman

2009-01-05 16:02:31

i put the semicolons before the vars because it won't compile for me unless it has them there. i don't know why and it made me quite mad… i tried fixing that but i couldn't get it to work. Ok thnx guys and i will look more into cases. Btw how many votes are needed for an accept or deny? jw… thanks all of you.. also, how do u get your longevity up? I am confuzzled.

Griff

2009-01-05 17:21:42

I liked your dtms and ddtms, but your script could be shortened considerably with some cases. Your standards get a bit messed up too, but other than that I like it. I don't know what to vote yes, so I'm holding my vote. By the way, longetivity is hot long you have been here for, so it gets higher in time. And you need more yess than noes to get in. If its really close, the admin that closes the thread decides.

EDIT: Looked into it a bit more, and I saw some things that I like. Yes from me.

-Griff

unrealman

2009-01-05 17:30:04

ok thank you. what parts do you think could have used a case? i would like some areas so i can try to make it happen.thanks

poolikemax

2009-01-05 17:50:33

i am going to say yes
i liked you use of DTM's and DDTM's
but some of your procedures could of been simpiler

Pyro

2009-01-05 18:08:34

I dont really know what it takes to be a member anymore. You seem ok and some people round here act as if they are scripting masters.

Ill just write a bit about the nextplayer analogy. I wrote a huge post maybe a year ago about it when i was still scripting. But here we go….

Basically you have the right idea of when something goes wrong. We want to logout. Which is the right way to go about things. You Also may want to use a playerstring or loc to indicate where things went wrong.

You have it semi down by writing them as writelns. So if we scrolled back up we can see what went wrong. But we cannot see with which player. Also your progress report needs to include individual players (If only to tell which player got screwed and why)

Also as pointed out above by benjaa. The point of logging out a player when its in trouble is to make each procedure in the main loop start with

 if(not(loggedin))then exit 

Say because you have logged out because the walking out of the bank got screwed. You then do not want it trying to light the logs on fire while on the login screen :) , Although you HAVE put in some failsafes there so you wont be going beserk on the login screen which is good to see.

From there at the end of your mainloop. You want to include

 if(not(loggedin)) then nextplayer(false) 

So that it goes to the next player somewhat.

Mind you while saying all this, your script is NOT multiplayer. As in it will never move onto a next player. This is an integral part of SRL and the main reason SRL exists today. However you do have the right idea, and DDTM's are nice to see. And finding items using DTM's is also my favourite way of doing things (However screw walking with them)

If people vote because his standards are crap, because he could have used less begins and ends. Then thats BS in my mind. I am the worst person for standards. When i write a script, i write it for myself. And if im feeling generous i let it out to the world. It does not matter how it works or how it looks or how heinous the coding is. If it works it works.

Kyle Undefined

2009-01-06 00:22:06

K, I'm not going to vote but if I was it would be a no. Sorry. You have way to many procedures in there when they could all be shortened into just one using cases. Now, I was in a good mood so I made your three main parts into cases. They are below.
//************************ Uses a case to declare DTMs ***********************\\
//********************************By Camo¤Kyle********************************\\
procedure DeclareDTMs;
begin
case case lowercase(Players[CurrentPlayer].Strings[0]) of
'tinder' : Tinder := DTMFromString('78DA63CC62626070626440068E961C0CFF813' +
'448F43F1030A603D598A1AA81C8C248205D0654634C404D0A508D' +
'370135F140357604D49400D578E0570300EF6C099B');
{ I know this isn't a dtm that you would want to use but this is how I had to set it up }

'willow' : Willow := DTMFromString('78DA639CC1C4C060CBC8800CC2FDE419F8813' +
'448F43F10302EC45403918591407A31508D3B0135B3806A3C09A8' +
'E903AAF122A0A61DA8C619BF1A0009880A15');

'oak' : Oak := DTMFromString('78DA637CC5C4C060CBC8800C26E43B31F0036' +
'990E87F2060FC0154638FAA06220B2381F467A01A77026ADE02D5' +
'781250F318A8C69B809ADB4035AEF8D500005EE60C8C');

'maple' : Maple := DTMFromString('78DA633CC4C4C060CBC8800C0A7C7819F8813' +
'448F43F10309E05AAB147550391859140FA1C508D1B013547806A' +
'3C09A8D90554E34340CD46A01A17FC6A008C890B1F');
end;

//*********Uses a case to get your logs instead of having 4 procedures********\\
//********************************By Camo¤Kyle********************************\\
procedure GetLogs;
begin
GameTab(4);
MakeCompass('perfect north');
SetAngle(True);
DeclareDTMs;
if not(FindDTM(DeclareDTMs, x, y, MIx1, MIy1, MIx2, MIy2))then
begin
OpenBank('vwb', True, True);
end;
if pinscreen then
begin
InPin(Players[CurrentPlayer].pin);
Wait(258+random(168));
end;
if (BankScreen) then
begin
case lowercase(Players[CurrentPlayer].Strings[0]) of
'oak' : begin
if FindDtm(Oak, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
mouse(x, y, 8, 8, false);
swait(600);
chooseoption('All');
closebank;
end else
begin
closebank;
Writeln('No More logs!');
end;
end;
'willow' : begin
if FindDtm(Willow, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
mouse(x, y, 8, 8, false);
swait(600);
chooseoption('All');
closebank;
end else
begin
closebank;
Writeln('No More logs!');
end;
end;
'maple' : begin
if FindDtm(Maple, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
mouse(x, y, 8, 8, false);
swait(600);
chooseoption('All');
closebank;
end else
begin
closebank;
Writeln('No More logs!');
end;
end;
end
antibann;
end else
begin
WriteLn('Can Not Find ' + players[currentplayer].Strings[0] + ' Logs. Terminating Script');
Logout;
end;
end;

//********Uses a case to burn your logs instead of having 4 procedures********\\
//********************************By Camo¤Kyle********************************\\
procedure MakeFire;
begin
GameTab(4);
if LoggedIn then
begin
case lowercase(Players[CurrentPlayer].Strings[0]) of
'oak' : begin
if not(FindDTM(Tinder, x, y, MIx1, MIy1, MIx2, MIy2))then
Exit;
repeat
if FindDTM(Tinder, x, y, MIX1, MIY1, MIX2, MIY2) then
Mouse(x, y, 5, 5, True);
Wait(100+Random(200));
if FindDTM(DeclareDTMs, x, y, MiX1, MiY1, MiX2, MiY2) then
Mouse(x, y, 5, 5, true);
Wait(1000 + Random(487));
if (GetBlackChatMessage = 'You can''t light a fire here.') then
begin
Wait(250 + Random(250));
Writeln('Can Not Light A Fire. Changing Position');
Stuckage;
end;
LightWait;
Total := Total +1
until (not FindDTM(Oak, x, y, MiX1, MiY1, MiX2, MiY2))
MakeCompass('perfect North');
Antiirandoms;
end;
'willow' : begin
if not(FindDTM(Tinder, x, y, MIx1, MIy1, MIx2, MIy2))then
Exit;
repeat
if FindDTM(Tinder, x, y, MIX1, MIY1, MIX2, MIY2) then
Mouse(x, y, 5, 5, True);
Wait(100+Random(200));
if FindDTM(DeclareDTMs, x, y, MiX1, MiY1, MiX2, MiY2) then
Mouse(x, y, 5, 5, true);
Wait(1000 + Random(487));
if (GetBlackChatMessage = 'You can''t light a fire here.') then
begin
Wait(250 + Random(250));
Writeln('Can Not Light A Fire. Changing Position');
Stuckage;
end;
LightWait;
Total := Total +1
until (not FindDTM(Oak, x, y, MiX1, MiY1, MiX2, MiY2))
MakeCompass('perfect North');
Antiirandoms;
end;
'maple' : begin
if not(FindDTM(Tinder, x, y, MIx1, MIy1, MIx2, MIy2))then
Exit;
repeat
if FindDTM(Tinder, x, y, MIX1, MIY1, MIX2, MIY2) then
Mouse(x, y, 5, 5, True);
Wait(100+Random(200));
if FindDTM(DeclareDTMs, x, y, MiX1, MiY1, MiX2, MiY2) then
Mouse(x, y, 5, 5, true);
Wait(1000 + Random(487));
if (GetBlackChatMessage = 'You can''t light a fire here.') then
begin
Wait(250 + Random(250));
Writeln('Can Not Light A Fire. Changing Position');
Stuckage;
end;
LightWait;
Total := Total +1
until (not FindDTM(Oak, x, y, MiX1, MiY1, MiX2, MiY2))
MakeCompass('perfect North');
Antiirandoms;
end;
end
end else
begin
WriteLn('Can Not Find ' + players[currentplayer].Strings[0] + ' Logs. Terminating Script');
Logout;
end;
Antibann;
end;

Others have explained the other reason why I would vote no. Your "multiplayer" isn't really multiplayer. In this line right here:
  begin
WriteLn('Can Not Find ' + players[currentplayer].Strings[0] + ' Logs. Terminating Script');
Logout;
end;

You're not ending the script, you're just logging out. If you wanted to end it you would use TerminateScript; but to make it multiplayer you don't want to do that. Use NexPlayer(False); if something screws up with that player. Also, your proggy only shows all total logs and not by each player. You could do something like this:
for I := 0 to (HowManyPlayers - 1) do
begin
WriteLn('\ Player ' + IntToStr(I) + ':' + Players [i].Nick + ' : You Burned: ' + IntToStr(Total) + ' logs!');
end;

Thats all I have to add, like I said, I'm not voting. Better luck next time. ;)

~Camo

FreakyMonkey

2009-01-06 01:13:49

Eh, Don't like your standards. Too many "end else" loops. Honestly, I hate those and you can have a few more TPA failsafes I guess rather than "if Length(TPA)=0 blah". Also broaden your range of TPA knowledge a bit to show us what you know.

Regardless, it's a yes from me. I didn't really post that much when I applied, but I knew that I could contribute. I hope you feel the same way and become more active if you make members…

boberman

2009-01-06 08:15:20

From: Pyro
I dont really know what it takes to be a member anymore. You seem ok and some people round here act as if they are scripting masters. . . .


Honestly, I haven't figured out just yet what goes through some of the other members minds when the vote. A lot seems like "The first two guys voted no so Ill vote no to be cool" I have my doubts that some even look through the script.

This is a decent application, the program isn't perfect, but it does things that I really like and there really isn't much to add on. People voting because there are no TPA failsafes are nuts, TPAs AREN'T a requirement like many seem to think (Neither are DTMs or DDTMs) and not every script is required to have a specific set of tools used.

Like I said above, the script is decent and there really isn't a whole lot to add. I was going to vote no initially, but then I saw that he did things like get stuff from the bank, burn return to the bank and get more stuff. A lot of firemakers don't do that, making this one fairly unique.

Naum

2009-01-06 11:48:14

3 main reasons:

2.There's an access violation - which you can remove by putting the freedtms after the until statement (main-loop)

3.MakeCompass('perfect north'); isn't and argument Afaik.

4.Longetivity and posts…

5.Could have used cases.

Magiic

2009-01-06 12:04:59

From: boberman
Honestly, I haven't figured out just yet what goes through some of the other members minds when the vote. A lot seems like "The first two guys voted no so Ill vote no to be cool" I have my doubts that some even look through the script.

This is a decent application, the program isn't perfect, but it does things that I really like and there really isn't much to add on. People voting because there are no TPA failsafes are nuts, TPAs AREN'T a requirement like many seem to think (Neither are DTMs or DDTMs) and not every script is required to have a specific set of tools used.

Like I said above, the script is decent and there really isn't a whole lot to add. I was going to vote no initially, but then I saw that he did things like get stuff from the bank, burn return to the bank and get more stuff. A lot of firemakers don't do that, making this one fairly unique.

i didn't vote no for that reason at all as i read through scripts and applications before choosing what i vote and then if i am unsure i will read what others said. btw ToF, the variable thing is cos the function doesn't have return a result, should be a proc.

Iroki

2009-01-06 13:38:56

looks good, you need some improvements in your script, but YES for me :)

Quickmarch

2009-01-06 14:07:28

From: NaumanAkhlaQ
3 main reasons:

2.There's an access violation - which you can remove by putting the freedtms after the until statement (main-loop)

3.MakeCompass('perfect north'); isn't and argument Afaik.

4.Longetivity and posts…

5.Could have used cases.


Why does longevity and posts matter? i got in on 50 posts and 10% longevity

Torrent of Flame

2009-01-06 14:09:20

I looked through the script, bomberman, if that was directed in my direction.

There are a quite a few flaws with his script. Some members go on about how people are meant to be tough on applications, and when people are, others complain?

The members need to make a consensus on what is an acceptable script, because there are too many conflicts of opinion in the members camp atm.

From: Quickmarch
Why does longevity and posts matter? i got in on 50 posts and 10% longevity


Your script was better.

Pyro

2009-01-06 14:43:28

@camo :…… You are wrong. You do not use nextplayer(false). You log out. then at the end of the main loop you put nextplayer(false)….So he has done the right thing. Do not tell him otherwise.

Tbh: If i did vote on these things. I would probably leaning towards no at this stage, because SRL IS multiplayer. However in saying that, if getting into SRL is purely scripting ability, then i dont see anything wrong with it.

unrealman

2009-01-06 16:02:13

Hey Camo¤Kyle. The thing on cases helped out a lot. I will remember that from now on. I was having some trouble with how to do that but know i know! Also thank you everyone with the stuff that you have told me. I will take this into account and do them in my other scripts that I will create. thanks all of you.

Btw. sorry for taking this long to respond. I was at school. i live in the USA so my time is a little off of most of yours. I also have some studying to do so ill try to check in when i can. thanks.

cause

2009-01-06 16:09:10

Yes for me, you don't have to be a genius to get in here. (At least not while I'm voting.)

A G E N T

2009-01-06 16:54:20

Seems a little bit clunky, to be honest. As has been mentioned above, you have a lot of redundancy in your procedures. However, you seem to understand a lot of important things like Radial Walking, DTMs, and the like. I don't think I'll vote on this one, but I suppose I'm leaning towards yes.

NiCbaZ

2009-01-06 17:20:50

From: Quickmarch
Why does longevity and posts matter? i got in on 50 posts and 10% longevity


Its the other way around his longevity is high his posts are low.

Bam Bam

2009-01-06 17:42:41

Your standards are a bit funky in the beginning but you say there was a reason for that. Your three getlog procedures could definitely be combined using one case statement. Also you need to fix your multiplayer support before I vote yes.

Its a great start though, it really is.

Timer

2009-01-06 18:48:43

No.

Way to simple, i don't get what you guys are seeing in this guy.

and… two of your main functions, are made by other people..
Function DeclareDDTMs(walkorlog: Integer): Integer;  // TY Mariofan12 for the DDTTMs
function sWait(number: integer): boolean; //Thank You "i pro leechin'"

What happend here?—
  if not(FindDTM(maple, x, y, MIx1, MIy1, MIx2, MIy2))then
begin
OpenBank('vwb', True, True);
end;
if pinscreen then
begin
InPin(Players[CurrentPlayer].pin);
Wait(258+random(168));
end;
if (BankScreen) then
begin
case Lowercase(players[currentplayer].strings[0]) of
'Oak', 'oak': GetOaks;
'Willow', 'willow': GetWillows;
'Maple', 'maple': GetMaples;
end;
antibann;
end else
begin
WriteLn('Can Not Find ' + players[currentplayer].Strings[0] + ' Logs. Terminating Script');
Logout;
end;
//No fail safe?

FindColorsSpiralTolerance(MMCx, MMCy, Coolor, 2871018, MMX1, MMY1, MMX2, MMY2, 10)
if Length(Coolor) = 0 then
begin
Writeln('Don''t Know Where You Are. Logging Character Out');
logout;
end;
For b := 0 to High(Coolor) do
begin
CoolorP := Coolor[b];
mouse(CoolorP.x, CoolorP.y, 6, 6, True);
FFlag(0);

end;
end;
//Little dangerous, isn't it? Clicking every color found...

until (not FindDTM(Oak, x, y, MiX1, MiY1, MiX2, MiY2))
until (not FindDTM(Willow, x, y, MiX1, MiY1, MiX2, MiY2))
//no fail safe to break the loop, also, dangerous.

I'm sorry, a HUGE no.

Nava2

2009-01-07 17:09:56

No, improve efficiency, instead of having 10 different procedures for withdrawing logs, use one with a case as to what DTM to use.

Good luck next time.

unrealman

2009-01-08 18:48:50

No one has voted in like 2 days so is this set in stone? And if it is does it mean i am a member or i don't have enough 'yes' votes? Jw

P1nky

2009-01-08 22:52:14

From: unrealman
No one has voted in like 2 days so is this set in stone? And if it is does it mean i am a member or i don't have enough 'yes' votes? Jw


yeah most active members have voted or some chose not too prolly have a reason. Though it looks tough atm 10 yes 9 no's is about 50/50.

Maybe next time though its the Admin's decision a miracle can happen =P

though the voting session has not ended yet.

benjaa

2009-01-08 23:36:59

if it's close, usually you get membership anyway

..which imho is a bad idea

but good luck anyway

Dervish

2009-01-10 06:31:51

Not going to vote on this one.

I thought you needed at least 70% yes to get in…? (not 50).

JAD

2009-01-10 14:05:11

Yes from me. Good script. I'm not going to list the things I found wrong with it, It has all been posted above. Just work on those things and it will be good.

WT-Fakawi

2009-01-10 14:29:16

Yes, obviously.

the scar noob

2009-01-10 17:29:44

Same as JAD, you may enter from me, though.
At least if you promise to change the things posted above (implementing cases etc ;))

Btw I like your ddtm loading, you also load & free them correctly, which many applicants of today don't -_-

-Tsn.

unrealman

2009-01-10 19:32:48

I'll definitely be implementing all that has been suggested. Thank you.

Hobbit

2009-01-12 20:20:49

In

Congratz