SRL Archive - Archive

EtherFreak - SRL Member Application


EtherFreak

2011-03-06 19:24:56

How Long have You Played Runescape?
10 Year(s)


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?
N/A


What is your general programming knowledge?
Basic, Matlab


Are you a member of any other communities?
No


Tell us about yourself…
From: EtherFreak
I am a senior college student, that will be graduating this June. I started to take an interest in botting as a hobby, due to becoming board with the game as it was (after they took away wilderness). Wilderness has returned, but the hobby of botting is still more fun.

The uploaded script attached is a crandor island addy and coal miner and superheater bar maker. It will take the bars back to drainer bank, deposit them, and head back to the mine to make more. The setup is to start at drainer bank OR the mine with a fire staff equip. If you start at the mine, you must have 18 nature runes on you and a pickaxe on you. The bank must have the nature runes in the (0,1) slot, the gold in the (1,0) slot, and the pickaxe in the (2,0) slot. Should you wish to stop or start in the middle of mining, you may, and there is an ore count to pick up where you left off. This script will not be made public due to the limited number of rocks on the island, and I no longer have members status.


It is a bit complicated of a setup, but then it is a several part script too. Any questions or comments, feel free to ask.

P.S. The attachment option for scripts does not work due to the fact I do not have forum clearance with my current rank.



Please show us one (or multiple) of your scripts.
program minerbasic;
{.Include SRL\SRL\Misc\SMART.SCAR}
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/magic.scar}
Const

// ----------------SETUP-----------------------------
ropecolor=401705;
shipmaster= 11488844 ;
RockColor=855309 ; //color picker for tree
addycolor=6188382;
entrancerock= 8750731 ;
Rockuptext='ock' ; //
loadcount= 5 ; //total loads to complete
wtime= 60 ; //total time to wait between mining rocks
//setting this too low results in clicking a tree multiple times
// ---------------END SETUP----------------------------------------

var
x, y: integer;
other, count: integer;
kill: integer;
TPA:TPointArray;
AddyLoc, ItemLocOld, nonaddy, ItemLocCur:TIntegerArray;
ATPA:T2DPointArray;
I: Integer;
addycount,barcount, gemcount, coalcount, counter: Integer;

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
// ----------------SETUP-----------------------------
Name := '';
Pass := '';
Nick := '';
Active := True;

end;
end;
// ---------------END SETUP----------------------------------------


Procedure invspots;
begin
count:=0;
repeat
count:=count+1;
if ExistsItem(count) then
ItemLocCur[count]:=1 else
ItemLocCur[count]:=0;
until count=28
end;

Procedure invspotsold;
begin
count:=0;
repeat
count:=count+1;
if ExistsItem(count) then
ItemLocold[count]:=1 else
ItemLocold[count]:=0;
until count=28
end;

Procedure findshipmaster;
begin
findcolortolerance(x,y,shipmaster,MSX1,MSY1,MSX2,MSY2,4);
mmouse(x,y,5,5);
wait(200);
getmousepos(x,y);
if ( WaitUpTextMulti(['aman', 'apt'], 200) ) then
begin
mouse(x,y,1,1,false);
Writeln('clicking to pay fare');
wait(300);
FindText(x, y, 'are', UpChars, msx1, msy1, msx2, msy2);
wait(200);
mouse((18+x),(y+2),16,2,true);
wait(6000);
if (IsChatBoxTextBetween('board',clblack,5,8))then
writeln('paid')else
begin
writeln('failed to pay, trying again');
findshipmaster;
end;
end else
begin
kill:=kill+1;
writeln('could not find shipmaster');
if kill<9 then
begin
writeln('trying again');
findshipmaster;
end;
kill:=0;
exit;
end;
wait(3000);
end;


Procedure Addyspots;
begin
invspots;
count:=0;
repeat
count:=count+1;
AddyLoc[count]:=(ItemLocCur[count]-(ItemLocOld[count])+AddyLoc[count]);
until count=28
writeln('addyloc');
writeln(addyloc);
end;

procedure findtpa(Color: integer);
begin
mousespeed:=(7+random(3));
FindColorsspiralTolerance(MSX2/2,MSY2/2,TPA, Color, MSX1, 40, MSX2,MSY2,4);
ATPA := TPAToATPAEx(TPA, 20, 20);
end;

procedure findtpaaddy(Color: integer);
begin
mousespeed:=(7+random(3));
FindColorsspiralTolerance(MSX2/2,MSY2/2,TPA, Color, (MSX2/2)-60, (MSY2/2)-70, (MSX2/2)+80,(MSY2/2)+70,4);
ATPA := TPAToATPAEx(TPA, 20, 20);
end;

procedure getxy;
begin
if length(ATPA)=0 then
exit;
SortATPAFrom(ATPA, Point(MSCX, MSCY));
MiddleTPAEx(ATPA[i], x, y);
end;

procedure orecount;
begin
writeln('Ore Count Initiated');
gemcount:=0;
addycount:=0;
coalcount:=0;
count:=0;
barcount:=0;
repeat
mousespeed:=(17+random(3));
count:=count+1;
InvMouse(count,3)
wait(100);
if ( WaitUpTextMulti(['tite'], 200) ) then //addy
begin

addycount:=addycount+1;
AddyLoc[count]:=1;
end;
if ( WaitUpTextMulti(['oal'], 200) ) then
coalcount:=coalcount+1;
if ( WaitUpTextMulti(['bar'], 200) ) then
barcount:=barcount+1;
if ( WaitUpTextMulti(['cut'], 200) ) then
gemcount:=gemcount+1;
until invcount=addycount+coalcount+barcount+2+gemcount
writeln('You have '+IntToStr(gemcount)+' gems, '+IntToStr(coalcount)+' coal, '+IntToStr(addycount)+' addy ore, and '+IntToStr(barcount)+' addy bars.');
end;

procedure superheat;
begin
if (addycount>0) and (coalcount>5) then
begin;
writeln('Lets make a bar');
writeln('You have '+IntToStr(addycount)+' addy ore and '+IntToStr(coalcount)+' coal.');
if barcount>17 then
begin
writeln('The max number of bars have been made')
exit;
end;
cast('superheat item',false);
mousespeed:=(13+random(3));
wait(500);
count:=1+barcount;
repeat
count:=count+1;
until (AddyLoc[count]=1)
InvMouse(count,3);
wait(200);
if ( WaitUpTextMulti(['tite'], 200) ) then
writeln('over addy') else
begin
writeln('failed finding addy')
getmousepos(x,y);
mouse(x,y,1,1,true);
orecount;
exit;
end;

if ( WaitUpTextMulti(['heat'], 200) )then
begin
InvMouse(count,1);
wait(4000);
other:=4;
if barcount=17 then
begin
other:=5;
end;
if invcount=coalcount+addycount+barcount+gemcount-other then
begin
writeln('Superheat Complete');
coalcount:=coalcount-6;
addycount:=addycount-1;
barcount:=barcount+1;
AddyLoc[count]:=0
writeln(barcount);
writeln('addy bars in inv');
writeln(addyloc);
end else
begin
writeln('Failed superheating');
writeln('# of items in inv(should be '+IntToStr(invcount)+')');
orecount;
end;
end;
end;
end;

Procedure initrun;
begin
wait(200);
Smart_Members := False;
Smart_Server := 1;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
DeclarePlayers;
LoginPlayer;
kill:=0;
SetLength(AddyLoc,29);
SetLength(ItemLocCur,29);
SetLength(ItemLocOld,29);
wait(4000);
setangle(true);
end;

Procedure mineaddy;
begin
findtpaaddy(addycolor);
if length(TPA)>0 then
begin
InvSpotsOld;
writeln('Mining Addy');
getxy;
begin
if length(ATPA)=0 then
exit;
MMouse(x, y, 20, 20);
MMouse(x, y-4, 8, 8);
wait(random(300)+300);
getmousepos(x,y);
begin
if ( WaitUpTextMulti([rockuptext], 200) ) then
begin
writeln('Clicking Addy');
Mouse(x,y,1,1,true);
wait(500);
end else
begin
wait(1000);
writeln('Failed to click, trying again...');
exit;
end;
end;
end;
count:=invcount+1;
kill:=0;
repeat
wait(100);
kill:=kill+1;
if (kill=80) then
exit;
until (IsChatBoxTextBetween('swing',clblack,8,8))
writeln('swinging at addy');
kill:=0;
repeat
wait(100);
if (IsChatBoxTextBetween('found',clblack,8,8)) then
begin
writeln('You found a gem');
gemcount:=gemcount+1;
wait(100);
exit;
writeln('exit after found a gem failed');
end;
kill:=kill+1;
if (kill=6000) then
exit;
until(IsChatBoxTextBetween('ore',clblack,8,8)) or (invcount=count)
addycount:=addycount+1;
writeln('You have'+IntToStr(addycount)+' addy ore');
AddySpots;
writeln(AddyLoc);
end;
end;

Procedure minecoal;
begin
findtpa(RockColor);
if length(TPA)>0 then
begin
getxy;
begin
if length(ATPA)=0 then
exit;
MMouse(x, y, 20, 20);
MMouse(x, y, 8, 8);
wait(random(300)+300);
getmousepos(x,y);
begin
if ( WaitUpTextMulti([rockuptext], 200) ) then
begin
writeln('Clicking Coal');
Mouse(x,y,1,1,true);
wait(500);
end else
begin
wait(1000);
writeln('Failed to click, trying again...');
exit;
end;
end;
end;
count:=invcount+1;
kill:=0;
repeat
wait(100);
kill:=kill+1;
if kill=40 then
exit;
until (IsChatBoxTextBetween('swing',clblack,8,8))
kill:=0;
repeat
wait(100);
if (IsChatBoxTextBetween('found',clblack,8,8)) then
begin
writeln('You found a gem');
gemcount:=gemcount+1;
exit;
end;
kill:=kill+1;
if (kill>3000) then
exit;
until (invcount=count)
coalcount:=coalcount+1;
writeln('you have '+IntToStr(coalcount)+' coal');
end;
end;


Procedure tobank; //unfinished!
begin
writeln('heading to lumbridge');
cast('lumbridge home teleport',false);
SymbolAccuracy := 0.7;
mousespeed:=(7+random(3));
repeat
wait(100);
until findsymbol(x,y,'water');
wait(1000);
SetRun(True);
mouse(680,60,15,15,true);
repeat
wait(100);
until findsymbol(x,y,'rest')
wait(3000);
findsymbol(x,y,'rest');
mouse(x,y,5,5,true);
wait(10000);
setangle(true);
writeln('resting');
RestUntil(95+random(4));
setrun(true);
mouse(560,50,10,10,true);
repeat
wait(100);
until findsymbol(x,y,'shop')
writeln('shop');
wait(1000);
findsymbol(x,y,'shop');
mouse(x,y-5,5,5,true);
wait(10000);
mouse(565,80,7,7,true);
wait(10000);
mouse(565,80,7,7,true);
wait(10000);
mouse(565,80,7,7,true);
SymbolAccuracy := 0.5;
repeat
wait(100);
until findsymbol(x,y,'dungeon')
wait(1000);
writeln('dung');
findsymbol(x,y,'dungeon');
SymbolAccuracy := 0.7;
mouse(x,y-15,5,5,true);
wait(10000);
mouse(565,80,7,7,true);
repeat
wait(100);
until findsymbol(x,y,'tree')
wait(1000);
writeln('tree');
findsymbol(x,y,'tree');
mouse(x,y+10,5,15,true);
wait(10000);
mouse(565,80,7,7,true);
wait(10000);
mouse(565,80,7,7,true);
repeat
wait(100);
until findsymbol(x,y,'rest')
wait(500);
findsymbol(x,y,'rest');
mouse(x-5,y,5,5,true);
wait(15000);
RestUntil(95+random(4));
setrun(true);
mouse(565,100,7,7,true);
repeat
wait(100);
until findsymbol(x,y,'bank')
wait(500);
findsymbol(x,y,'bank');
mouse(x,y,5,5,true);
wait(15000);
end;

Procedure Banking;
begin
openbankfast('db');
wait(1000);
DepositAll;
withdraw(0,1,18);//nature
wait(1000);
withdraw(2,0,1);//pick
wait(200);
withdraw(1,0,30);//gold
wait(1000);
if invcount=3 then
writeln('Banking Complete') else
exit;
end;

Procedure downrock;
begin
kill:=kill+1;
findcolorspiraltolerance(x,y,entrancerock,MSX1,MSY1,MSX2,MSY2,4)
mmouse(x,y,5,5);
if ( WaitUpTextMulti(['ock'], 200) ) then
begin
getmousepos(x,y);
mouse(x,y,1,1,true);
writeln('entering the cave');
wait(5000);
end else
begin
writeln('failed to find the rock enterance, trying again');
if kill=8 then
begin
writeln('logging out, could not get in rocks');
logout;
exit;
end;
downrock;
end;
if findsymbol(x,y,'mine') then
writeln('In cave') else
begin
writeln('failed to enter the cave');
logout;
exit;
end;
end;



Procedure uprope;
begin
kill:=kill+1;
findcolorspiraltolerance(x,y,ropecolor,MSX1,MSY1,MSX2,MSY2,4)
mmouse(x+4,y+15,5,5);
if ( WaitUpTextMulti(['ope'], 200) ) then
begin
getmousepos(x,y);
mouse(x,y,1,1,true);
writeln('exiting the cave');
wait(5000);
end else
begin
writeln('failed to find the rope, trying again');
wait(200);
if kill=8 then
begin
writeln('logging out, could not get up rope');
logout;
exit;
end;
uprope;
end;
if findsymbol(x,y,'mine') then
writeln('Exited cave') else
begin
writeln('failed to exit the cave');
logout;
exit;
end;
end;

Procedure wallcross;
begin
mmouse(260,150,5,5);
wait(4000);
if ( WaitUpTextMulti(['all', 'pen'], 200) ) then
begin
getmousepos(x,y);
mouse(x,y,1,1,true);
writeln('Wall opened');
wait(1000);
end else
begin
writeln('failed at wall, logging out');
logout;
exit;
end;
end;

Procedure exitship;
begin
mmouse(260,150,5,5);
wait(4000);
if ( WaitUpTextMulti(['oss', 'lan'], 200) ) then
begin
getmousepos(x,y);
mouse(x,y,1,1,true);
writeln('exiting ship');
wait(1000);
end else
begin
writeln('failed exiting ship, logging out');
logout;
exit;
end;
end;

Procedure tomine;
begin
mouse(565,50,10,10,true);
wait(10000);
mouse(560,50,10,10,true);
wait(19000);
mouse(590,135,10,10,true);
wait(10000);
repeat
mouse(590,140,5,5,true);
wait(5000+random(5000));
until findsymbol(x,y,'transportation')
writeln('Going to shipmasters');
wait(2000);
findsymbol(x,y,'transportation')
mouse(x,y,5,5,true);
wait(6000);
kill:=0;
findshipmaster;
wait(8000);
exitship;
wait(2000);
SymbolAccuracy := 0.5;
repeat
mouse(565,74,7,7,true);
wait(3000+random(5000));
until findsymbol(x,y,'dungeon')
writeln('dungeon found');
wait(2000);
findsymbol(x,y,'dungeon');
SymbolAccuracy := 0.7;
mouse(x,y,5,5,true);
wait(9000);
kill:=0;
downrock;
mouse(600,30,10,10,true);
wait(8000);
mouse(600,30,10,10,true);
wait(12000);
RestUntil(95+random(4));
setrun(true);
mouse(620,30,10,10,true);
wait(12000);
wallcross;
kill:=0;
repeat
kill:=kill+1;
mouse(620,30,10,10,true);
wait(5000+random(3000));
until kill>4
kill:=0;
uprope;
kill:=0;
repeat
wait(100)
until findsymbol(x,y,'mine');
mouse(x,y,5,5,true);
wait(15000);

end;

Procedure mainloop;
begin
initrun;
repeat
findnormalrandoms;

if findsymbol(x,y,'bank') then
begin
writeln('you are at the bank');
if invcount=3 then
writeln('you have pick, nature and gold')else
banking;
tomine;
end;
if findsymbol(x,y,'mine')then
writeln('You are at the mine')else
begin
writeln('You are not at the mine, logging out');
logout;
exit;
end;
orecount;
repeat
superheat;
findnormalrandoms;
mineaddy;
findnormalrandoms;
superheat;
if random(100)=1 then
begin
writeln('taking a rest');
wait(10000+random(30000));
end;
minecoal;
superheat;
if invfull then
if barcount<18 then
begin
writeln('Droppin last coal, more bars to make');
coalcount:=coalcount-1;
dropitem(28);
wait(1000);
mmouse(x,y,30,30);
if invfull then
if invfull then
begin
writeln('Invfull, but should be 27 items now...');
logout;
writeln('Logged out due to an inv issue');
exit;
end;
end;
if invfull then
writeln('Inventory is Full');
until invfull;
tobank;
until 1=2 //plans to add load count or time here
end;

begin
mainloop;
end.

Frement

2011-03-06 19:39:07

I'm gonna wait until others post their opinions, but I think you should work on your standards, I almost voted yes, but I'll have to see what others think :)

Harry

2011-03-06 19:44:10

Waaaay too many static waits, please add up some randomness ( ._.)? Failsafes could be better as well. I'll hold off on voting.

EtherFreak

2011-03-06 20:06:11

Ok, I will add some wait(fixedvalue+random(value));
I am trying my best to get my standards up to par, and I will continue to work on this, as this was an issue brought up to me on several occasions. Not an excuse for my standards, but all the stuff I have learned was through trial and error, and examining others work.

As a side note, I plan to add more failsafes to the uprope and the wall that you need to walk through to get to the island. I also plan to add further failsafes in my walking procedures. Although they rarely fail, it is not failproof yet…

Bad Boy JH

2011-03-06 20:51:19

Generally try and make it 100% working before you apply, I made the same mistake the first time I applied.

Voting no because:
- Your standards need work
- Your script needs more failsafes
- Lack of activity - 54 posts in 8 months? that's just under 7 posts a month
- You keep using repeat..until loops, incrementing a variable each time and exiting when the variable hits a point, rather than using a for..to..do

3Garrett3

2011-03-06 20:55:01

Did you guys even read the script? :P


Procedure tomine;
begin
mouse(565,50,10,10,true);
wait(10000);
mouse(560,50,10,10,true);
wait(19000);
mouse(590,135,10,10,true);
wait(10000);
repeat
mouse(590,140,5,5,true);
wait(5000+random(5000));
until findsymbol(x,y,'transportation')
writeln('Going to shipmasters');
wait(2000);
findsymbol(x,y,'transportation')
mouse(x,y,5,5,true);
wait(6000);
kill:=0;
findshipmaster;
wait(8000);
exitship;
wait(2000);
SymbolAccuracy := 0.5;
repeat
mouse(565,74,7,7,true);
wait(3000+random(5000));
until findsymbol(x,y,'dungeon')
writeln('dungeon found');
wait(2000);
findsymbol(x,y,'dungeon');
SymbolAccuracy := 0.7;
mouse(x,y,5,5,true);
wait(9000);
kill:=0;
downrock;
mouse(600,30,10,10,true);
wait(8000);
mouse(600,30,10,10,true);
wait(12000);
RestUntil(95+random(4));
setrun(true);
mouse(620,30,10,10,true);
wait(12000);
wallcross;
kill:=0;
repeat
kill:=kill+1;
mouse(620,30,10,10,true);
wait(5000+random(3000));
until kill>4
kill:=0;
uprope;
kill:=0;
repeat
wait(100)
until findsymbol(x,y,'mine');
mouse(x,y,5,5,true);
wait(15000);

end;

Walking to mine with static clicks? There are many simple ways to walk, especially with reflection and SPS now. It's very easy to learn and there are lots of tutorials on it.

Most object finding relies on static coords, I'd like to see more TPA functions, customized preferably to optimize the accuracy.

I vote no.

TomTuff

2011-03-06 21:03:30

No.


Static waits, coord clicking, NOT A SINGLE LOCAL VARIABLE. Even any one of those would be reason to vote no.

Also, did you script in notepad or something? Simba's tab indents 2 spaces, and if you actually hit the spacebar 5 or 6 times on your indents, what a waste of energy.

YoHoJo

2011-03-06 21:08:04

Cmon you guys constructive criticism, don't be jerks!
Give good feedback so he knows what to change/edit when he applies next time!

noidea

2011-03-06 23:42:14

Sorry no. You need local vars man. Learn the difference between functions and procedures. Fails safes and imperative. Your coding style needs much work. Needs standards etc.

Learn how to use the methods you're employing ;)

I'm not trying to be an ass.

Better luck next time.

EtherFreak

2011-03-06 23:57:49

"NOT A SINGLE LOCAL VARIABLE" not being a professional scripter, can you please give an example of a local variable?

"Also, did you script in notepad or something?" No, all scripts were written in simba, and were put in a tab. I copied and pasted from what was in simba's window. If I could have uploaded the simba file, this would have been apparent.

I am not trying to sound rude, but I am assuming most (if not all) of you have had a formal class with programing?

I have not been tremendously active due to the fact if I have nothing worth saying, I will not say it. I also was discouraged for a while due to some of my scripts receiving a lot of critisim when I submitted them to the public script section on the premises that they were better then nothing. They worked, and at the time I would have appreciated something that worked, even with a minor bug. I understand that some scripts are truly amazing, but are not out in the masses for a reason.

Any other questions or concerns, please feel free to ask.

pyroryan

2011-03-07 00:02:52

From: Bad Boy JH

- Lack of activity - 54 posts in 8 months? that's just under 7 posts a month


I'm at 11 to 12 posts a month. I just don't feel the need to post every time I read something. Post count doesn't mean very much. You could post once a month and be extremely helpful or post 100 times in a month and not be helpful at all.

From: EtherFreak

I am not trying to sound rude, but I am assuming most (if not all) of you have had a formal class with programing?


No, I have not had a formal education in programming.

EtherFreak

2011-03-07 00:14:46

I figured I would also expand on the loss of motiviation with the following two threads.

The following link is the cutter and stringer scripts I made. At the time, there were no other scripts in the public section for cutting and stringing. I took it upon myself to make one. I also figured i would share the wealth.
http://villavu.com/forum/showthread.php?t=59042&highlight=etherfreak

A while later I came across the following post, which made reference to my script.
http://villavu.com/forum/showthread.php?t=61875&highlight=etherfreak

it's setup properly im not that shitty lol, just went to help thread they said to get newer script. all the ones now for srl juniors/registered don't work for stringing accept for "EtherFreak" and its the worst thing ever lol. I know im a leecher I just don't have the time to put into good scripts atm untill school is over then in the summer I can go and do more scripting. Right now all I can do is edit scripts that don't work lol.


A script that worked (and still may work, I can not test it without my members status) two months after I lost members? Worked without me needing to fix stuff. (Thank YOU SRL UPDATERS!!!!) I will agree that the script is TERABLE with standards, but it was one of my early scripts so I knew less about standards then I know now (which is still not a lot)

Main

2011-03-07 00:28:09

don't use mouse a specific coordinate to walk, what happens if your compass is changed? or if you are not at the location?

Try color or radial walk or the new sps for better fail safe. And run your script before submit it.

You got good heart, improve your scripting skills and test your script under various condition then come back:P

pyroryan

2011-03-07 00:29:51

Standards aren't a problem. My general test is if I can read most of it, then its fine. Obviously I have pretty low standards for standards. But I'm sure thats the same way for most people who haven't had a formal education in programming. Regardless, you shouldn't have to use static mouse positions for walking (think of what happens when you get caught in a random).
I don't really take issue with anything else.

Edit: Main Ftw has beaten me to the static mouse coordinates.

EtherFreak

2011-03-07 00:36:19

I have been running my script the whole time? Is the uploaded script not running right for you guys? I also have made close to 2k of addy bars with this script with minimal issues.

EtherFreak

2011-03-07 00:39:54

I did not use radial walk because I did not feel it was suited for the majority walk. I did not use road walk because I do not like the notion of clicking on the road the whole time. Early on I played with road walk in the script. I guess if a random happened in my walking I would be SOL, and hence why I still need to implement more failsafes into my scripts. I am not one to leave a character running for long periods of time, just because of other users that may talk to me.

pyroryan

2011-03-07 00:40:18

From: EtherFreak
I have been running my script the whole time? Is the uploaded script not running right for you guys? I also have made close to 2k of addy bars with this script with minimal issues.


I haven't bothered to run it. But, some of us are saying that you should not use static mouse coordinates because of randoms, etc. That is my primary reason for concern.

YoHoJo

2011-03-07 00:43:35

From: EtherFreak
I have been running my script the whole time? Is the uploaded script not running right for you guys? I also have made close to 2k of addy bars with this script with minimal issues.


I don't think that functionality is the problem here, or what counts most when judging this.

We look mostly at code and scripting techniques, which as stated above you could use some work on.

Anyways, I would like to say sorry if people have been harsh on you or giving you crap when you have at least been kind enough to learn to script, use SRL, and at least attempt to create these scripts.

I promise you (almost) no one here is meaning to make you feel bad about your coding or anything, we are all simply just giving you helpful tips and constructive criticism about how to make your script better.

Now since this poll doesn't seem to be tipping to your favor right now, I say keep your head held up high, and take each and every bit of advice you have received in this thread to make your script better.

Take advantage of the help forums, don't be shy and post as many threads as you need with questions in order to make all of the changes you must to your script in order to make it better, and I assure you you will have fun learning to code more efficiently and will be an SRL member sooner than you know it!

SRL is full of amazingly smart and helpful people, one of the nicest places on the internet I've seen by far! So never hesitate to ask questions and learn more from the vast knowledge we all share here! We are all here to HELP YOU!

Good luck, and I hope to see another application from you in the future! YOU CAN DO IT:spot:

cycrosism

2011-03-07 02:05:55

This may have been said before but try not to have the user input colours.

Use TPA's or FindObjCustom to begin with and work from there on.

Floor66

2011-03-07 02:11:20

Sorry, but no.

Besides from your standards which could use some fixing, I see coord clicking which in my book -for walking, atleast- is a biiiig no-no.

Also, you solely use symbol walking. Try to use DDTM's and/or Radial Walking. You don't seem to have MultiPlayer working correctly either, aswell as an endles loop (until 1 = 2) :/

That said, it is good that you use TPA's! Keep that up :)

Bad Boy JH

2011-03-07 02:22:31

From: EtherFreak
I am not trying to sound rude, but I am assuming most (if not all) of you have had a formal class with programing?


8 days ago, no I hadn't.
Started my Bachelor of Information Technology (BIT - Get it?) last week…
[/semi-offtopic]

From: Pyroryan
I'm at 11 to 12 posts a month. I just don't feel the need to post every time I read something. Post count doesn't mean very much. You could post once a month and be extremely helpful or post 100 times in a month and not be helpful at all.


No offence pyro, but you aren't a member for your scripting abilities, you are a member because you have a hook updater, are trustworthy, etc.

Back to the topic of the script.
If you have trouble writing parts of a functioning script, like walking procedures (I certainly had trouble with this back when I applied) - hide it. Keep that section of your script short - I made an al-kharid cooker originally, short walk (1 click) - and show off with the rest.

TomTuff

2011-03-07 02:51:09

I must apologize for my rudeness earlier =\ I had a rowdy day today. Some pointers:

  • Standards. A tutorial can be found here < http://villavu.com/forum/showthread.php?t=60288&highlight=standards >. Proper standards help in readability and debugging.
  • Don't use static coord clicking. The only time this is ok is if there are prior checks with more advanced methods to click that coord - for example, if you know that quick prayers are off for certain, it would be ok to click in the circle with a coord click. Alternatives to coordinate clicking for walking would be Reflection (< http://villavu.com/forum/showthread.php?t=59400 > - beware that some of that tutorial is out of date, but the walking is still accurate information) or SPS (< http://villavu.com/forum/showthread.php?t=62286 >).
  • FindColor is inferior to FindColors. FindColors and all of its variants return a TPoint Array. This array can be sorted and split into an Array of TPointArray (ATPA). The ATPA then can be looped through to find your object (e.g. Length check, move mouse, check uptext, right click, choose option, break from loop if successful). Tutorials here: < http://villavu.com/forum/showthread.php?t=21786 > and < http://villavu.com/forum/showthread.php?t=49067 >
  • Use functions instead of procedures. That can help to log out your character if you get lost or fail or etc. Tutorial here < http://villavu.com/forum/showthread.php?t=59061 >
  • Avoid infinite loops.
  • Learn about different sorts of loops you can use - for example, for..to..do, while..do, etc. Tutorial here < http://villavu.com/forum/showthread.php?t=49089 > (search for "scar statements).
  • Try using control + space (type some of the function's name first) to bring up a list of functions, and press enter to instantly get proper capitalization. It really adds to script readibility.
  • Use local variables instead of global variables.

program Global;


var
GlobalVariable: Integer;


begin
end.


program Local;


procedure Example;
var
Local: Integer;
begin
end;


begin
end.


And for the record, I have not had any programming classes.

WT-Fakawi

2011-03-07 11:02:06

Nice one etherfreak! As always I votd yes for anyone that shows just a little hint of creativity. Your script is filled with creative solutions. Very goaloriented you work!

However, I advice you to take a look at other scripts too. Run them, taste their code, print them out. Try to graps their logic. Copy their code and try to get it to work in your own creations.

P.S. there was a time we all coded like you. No worries, you will get there soon enough!

pyroryan

2011-03-07 14:27:58

From: Bad Boy JH

No offence pyro, but you aren't a member for your scripting abilities, you are a member because you have a hook updater, are trustworthy, etc.


No offense taken. But, scripting abilities in pascal != scripting abilities in general. Scripting abilities isn't the same thing as programming ability (although similar). I believe you're using "scripting ability in pascal". Hence lies the difference. In either case, I was debating your claim that 7 posts a month is not sufficient. It pains me to see people talk about post count as if it is super significant.


Edit:
@OP
I remember starting off and not knowing about abstractions, annotations, interfaces, access levels, etc. Or even years before that in VB when I first learned the use of methods to prevent duplication of code. A bit after that, I'd attempt to further knowledge by attempting to circumvent GameGuard to create an autoclicker (turns out PostMessage works and SendMessage doesn't) and eventually dabble in unpacking and cracking (around 2007/2008 I think).
We all start somewhere, its where you go with it that matters.