SRL Archive - Archive

tylanbo - SRL Member Application Form


tylanbo

2007-03-12 16:29:46

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

What is the meaning to life?


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


Programming Knowledge
Java, javascript, pascal

Other Communitys
None =\

How Long have You Played Runescape
1 year or so

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

Hey, I am resending my application, this time with a good script ^.^

Basically it is my old one, but written with SRL, and with anti ban and randoms as well as multiple players.

Oh, I want to add SRL ID thing to my script, but not to sure if it requires more than that little line of code O_O

Anyways, I wrote this script to craft hard leather into hard leather bodies. It has an bank opening procedure that can be used at any bank. I thought that there was no need to withhold the script any longer, all the important functions work and your input would speed up the process =)

I don't want this released anywhere just yet, although if I become member I am going to post it on the members forums. Not the free ones though O_O. ( rather, "non-members" ) …basically leecher heaven / non-script writers

Um, about me.. I take java programming class at my school, learned javascript on my own, and pascal when I learned about scar. I want to join SRL members so I can make some good scripts, and get feedback from those that are making 2000+ line scripts O_O!

This is my first complete SRL script, but it does work without flaw =)… working on a fire crafter, and a hide tanner, as well as a varrok west smither ( WT-Fakawi already took care of that one though ^.^ ).

Anyways, feedback is very appreciated. I know there is no progress report function in there, but I didn't want to steal one from someone else O_O

I wrote all of this myself, with the exception of SRL includes of course, so that takes care of the 90% or above self creation requirement lol

If this is not good enough for SRL members, please leave a note as to why so maybe if I'm not too heartbroken I can fix it and try again =P

EDIT: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I have removed the origonal script submitted, this is the current version
This will craft gloves, boots, soft bodies, chaps, and its origonal purpose hardleather bodies

I just submitted a powercutter below it too, to help with your decision…lol…270 lines in one sitting. Take a look.

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


{/////////////////////////////////////////////////////////////////
// Al Kharid Multi-Crafter //
////////////////////////////////////////////////////////////////

Status: NOT RELEASED - Do NOT Post anywhere
Only permision for release on SRL MEMBERS Forumn
Members only, not anywhere else

Don't take the liberty of doing it, it'll
make me feel good to do it myself ^.^

(================================================)
This script was entirely written by myself
Copyright Landon Bowman 2007 ( Until public release )
However this time I used SRL, NOT written by me
Thank you SRL for such an awesome include!
You may not alter this script in any way
You may not sell this script or give it away
If you know me, you can tell me any bugs and I
will fix them, not you, so DO NOT TOUCH SCRIPT!
The more I learn from my mistakes, the better I
can make my scripts.
(================================================)
You DO have permission (If I gave to you or was
released to PUBLIC) to use this script for what
it was intended for, TO CRAFT TANNED COW HIDES.
(================================================)
Version history:

V 1.0 First fully functional version
V 1.1 Translated to SRL
V 1.2 Antirandoms and Antiban support
V 1.3 Multiple players
V 1.4 Smoothed out procedures
V 1.5 Now uses DTMs instead of colors
V 1.6 Antiban is more consistant..minor change
V 1.7 Progress report added
V 1.8 Multiple crafting types supported

(================================================)
If you have hard leather and soft leather, you
will need to take the leather you are not using,
note it, and keep it in your inventory. The DTM
finder does not distinguish the difference between
the two ATM, I made them too universal ^.^
(================================================)
Notes for current version:

Multiple item support is BETA, tested version
is hardleather bodies
(================================================)
Instructions for Operation:

1. Be in alkharid bank, middle booth would be best
2. Have crafting needle in the bottom right inventory slot
3. Have thread in any spot except 24th and last
4. Have Tanned leather in top section of bank somewhere
5. Have NubScape on very bright, low detail
6. Follow those instruction for ALL players
7. Set up colors and options on lines 72-84
8. Fill out player information
(================================================}

program New;
{.include SRL/SRL.scar}
{.include SRL/SRL/Extended/xBank.scar}

var
counter,Creation,TanHide,LoggedInTime,LastChecked,LoadsDoneTotal:Integer;
BankTolerance,NumberOfUsers,PlayerActiveTime,BoredLast:Integer;
CraftingItem,CraftingX,CraftingY:Integer;
LoadsDone,StartPlayer,KillTime,RandomSkillCheck,LoadsToDo:Integer;
RandomBoredHuman,RandomLeaveScreen,LastLeft,BankCounter:Integer;
done,ready,deposited:Boolean;


procedure SetVariables;
begin
LoadsToDo:=10; // How many loads to do before ending script
BankCounter:=4999248; // shouldn't need to change really
BankTolerance:=12;
NumberOfUsers:=1;
StartPlayer:=0; // Which player in the array will start?
LoggedInTime:=8; // Time in minutes for each player to be logged in
KillTime:=0; // Time in hours for script to end ( 0 = don't use )
RandomSkillCheck:=2; // MINIMUM mins between random checking of skill xp
RandomBoredHuman:=2; // MINIMUM mins between bored human mouse movements
RandomLeaveScreen:=2 //MINIMUM mins between leaving screen
CraftingItem:=2; // Acceptable values:
// 1 = Hardleather Body 2 = Softleather chaps
// 3 = Leather gloves 4 = Leather Boots
// 5 = Softleather Body
{=========================DO NOT TOUCH THESE=======================}
done:=true;
ready:=false;
deposited:=false;
{==================================================================}
end;

procedure SetPlayers;
begin

HowManyPlayers := NumberOfUsers;
NumberOfPlayers( HowManyPlayers );
CurrentPlayer := StartPlayer;

Players[0].Name :='PlayerName';
Players[0].Pass :='PlayerPass';
Players[0].Nick :='anbo';
Players[0].loc := 'bank';
Players[0].Active:=True;

end;

{======================================================================================}
{ Script Begins..... }
{======================================================================================}

procedure InitiateNextPlayer;
begin
NextPlayer(true);
writeln('Player ' + Players[CurrentPlayer].Name+ ' logging in ..');
writeln('Player set to do ' +inttostr(LoadsToDo)+ ' loads of hides');
LoadsDone:=0;
end;

procedure TerminatePlayer(Reason:String);
begin
CloseBank;
Logout;
Players[CurrentPlayer].Loc := Reason;
writeln(' Player ' +Players[CurrentPlayer].Name+ ' logged out because ' + Reason );
Players[CurrentPlayer].Active := False;
LoadsDone:=0;
end;

procedure CheckPlayerTimeout;
begin
if ( PlayerActiveTime + (LoggedInTime*60000) >= GetSystemTime ) then
begin
TerminatePlayer('logging out for antiban');
InitiateNextPlayer;
PlayerActiveTime:= GetSystemTime;
end;
end;

procedure RandomsAndAntiban;
var
AntiBanRandom: Integer;
begin
AntiBanRandom:=1 + random ( 3 );
FindNormalRandoms;
if ( AntiBanRandom = 1 ) and ( LastLeft < GetSystemTime ) then
begin
LeaveScreenEvery(RandomLeaveScreen);
LastLeft:=GetSystemTime+(RandomLeaveScreen*60000);
end;
if ( AntiBanRandom = 2 ) and ( LastChecked < GetSystemTime ) then
begin
HoverSkill('crafting',false);
LastChecked:=GetSystemTime+(RandomSkillCheck*60000);
end;
if ( AntiBanRandom = 3 ) and ( BoredLast < GetSystemTime ) then
begin
BoredEvery(RandomBoredHuman);
BoredLast:=GetSystemTime+(RandomBoredHuman*60000);
end;
end;

{======================================================================================}
{ Banking Procedures }
{======================================================================================}

procedure CloseBankWindow; // CloseBank; not always effective
begin
if ( Bankscreen ) then
begin
repeat
Mouse(488,39,2,2,true);
wait(1200+random(400));
until ( not (Bankscreen) )
end;
end;

procedure BankCrafted;
var
DepositedCreation: Boolean;
Counter: Integer;
begin
DepositedCreation:=false;
repeat
if ( FindDTM (Creation,x,y,568, 212,729, 457) ) then
begin
Mouse(x,y,1,1,false);
wait(100+random(50));
if ( ChooseOption(x, y, 're All') ) then
begin
Mouse(x,y,4,0,true);
wait(250+random(100));
DepositedCreation:= true;
end;
Counter:= Counter+1;
end;
until ( DepositedCreation ) or ( Counter >= 4 ) or ( not (FindDTM (Creation,x,y,568, 212,729, 457)))
if ( Counter >=4 ) then
begin
TerminatePlayer('Error in withdraw procedure');
Exit;
end;
LoadsDone:=LoadsDone+1;
end;

Function OpenTheBank(Color,Tol: Integer): Boolean; // Modified SRL OpenBank procedures, Thank you SRL =)
var
Counter,Clicked: Integer;
begin
if ( FindCompassAngle > 20 ) and
( FindCompassAngle < 340 ) then
MakeCompass('n');
Clicked:= 0;
If not(Loggedin)then Exit;
repeat
if(FindObjMultiText(x, y, 'se Bank', 'Bank B', 'booth', Color,Tol))then
begin
Mouse(x, y, 1, 1, false);
wait(100+random(50));
Clicked := Clicked + 1;
if(ChooseOption(x, y, 'quickly')) or (ChooseOption(x, y, 'Bank Banker'))then
begin
Flag;
repeat
Wait(100);
Counter := Counter + 1
until(BankScreen) or (Counter >= 70) or (PinScreen)
If (BankScreen) then
begin
if not ( FindDTM ( TanHide,x,y,75,60,463,286 ) ) then
QuickFixBank;
Result := True
Exit;
end else
If (PinScreen) then
begin
TerminatePlayer('Pin screen was detected, aborting...');
Exit;
end else
If (Counter >= 70) then
begin
TerminatePlayer('Bankscreen not opened in reasonable time');
Exit;
end;
end;
end;
until ( Bankscreen ) or ( Clicked >= 4 )
if ( Clicked >= 4 ) then
begin
TerminatePlayer('Too many missed clicks while opening bank');
Exit;
end;
end;

procedure WithdrawAllHides;
var
Withdrawn: Boolean;
begin
Withdrawn:=false;
if ( FindDTM ( Creation,x,y,568,212,729,457 ) ) then BankCrafted;
if ( FindDTM ( TanHide,x,y,75,60,463,286 ) ) then
begin
repeat
Mouse(x,y,1,1,false);
wait(100+random(50));
if ( ChooseOption(x, y, 'w All') ) then
begin
Mouse(x,y,4,0,true);
wait(250+random(100));
Withdrawn:= true;
end;
Counter:= Counter+1;
wait(500 + random(150));
until ( Withdrawn ) or ( Counter >= 10 )
end else

if not ( FindDTM ( TanHide,x,y,75,60,463,286 ) ) then
begin
TerminatePlayer('No hard leather left in bank');
exit;
end;
if ( Counter >=10 ) then
begin
TerminatePlayer('Error in withdraw procedure');
Exit;
end;
ready:=true; // Tells it is ready to craft again
deposited:=false; // No longer needs to deposit
wait(300+random(250));
end;

{======================================================================================}
{ Collects Primary Colors }
{======================================================================================}

procedure SetDTMs;

begin
if ( CraftingItem = 1 ) then
begin
TanHide := DTMFromString('78DA6354626060506640011686720CFC409A1' +
'188FF0301A33090A1C48006189148202D06243408A8910312BA04' +
'D44803091D026AF48084247E35000C3E0635');

Creation :=DTMFromString('78DA63F462606050654001C17E160CFF81342' +
'310FF0702460720438D010D302291401AA44687801A6F20A14740' +
'4D10116AC28084267E3500883C089F');
end;
if ( CraftingItem > 1 ) then
begin
TanHide := DTMFromString('78DA633CC2C8C0701A889180971B07430A900' +
'689FE0702C6AD40D605543510591809A4F70359D709A8390564DD' +
'20A06627907585809A6D40D649FC6A00239A0E6E');

if ( CraftingItem = 2 ) then // chaps
begin

Creation := DTMFromString('78DA635CC5C8C0200FC4484029D59AE13F900' +
'689FE0702C665409600AA1A882C8C04D24B802C25026A5600593A' +
'04D4AC25C2AE8D409618AA1A03050554351B802C4922D4A8E2570' +
'300FE4B0D6D');
CraftingX:=126;
CraftingY:=230;
end;
if ( CraftingItem = 3 ) then // Gloves
begin

Creation := DTMFromString('78DA633CCFC8C0F08F010584060833FC07D24' +
'01986FF40C07803C862624455C4C0884402E9EB40160B0135C781' +
'2C46026A4E0059BF18F0AB394B580D00C82A0DA1');
CraftingX:=184;
CraftingY:=109;
end;
if ( CraftingItem = 4 ) then // Boots
begin

Creation := DTMFromString('78DA63AC62646090016224E067ACC5F01F488' +
'344FF0301631190A582AA06220B2381741990A541404D25902548' +
'404D03116A407649E2570300D8980938');
CraftingX:=307;
CraftingY:=114;
end;
if ( CraftingItem = 5 ) then // Soft body
begin

Creation := DTMFromString('78DA636C646460F8C380021CED7418FE0369A' +
'00CC37F2060AC01B2D81851153130229140BA1CC86226A0A614C8' +
'FACB4058CD4F026A7A089B03002A150CA2');

CraftingX:=73;
CraftingY:=111;
end;
end;
end;


{======================================================================================}
{ Crafting Procedures }
{======================================================================================}

procedure CraftSelection(x1,y1,x2,y2:Integer);
begin
MouseSpeed := 6+random(2);
Mouse(x1,y1,0,0,true);
wait(20+random(50));
Mouse(x2,y2,0,0,true);
wait(20+random(50));
end;

procedure Craft;
var
RandomRandoms,craftswitch,TimesDone: Integer;
TimeoutCounter:Integer;
begin
if ( CraftingItem = 1 ) then
begin
counter:=0;
if ( CountItemDtm(TanHide) < 26 ) then
begin
TerminatePlayer('Full inventory of hides NOT FOUND');
Exit;
end;
GameTab(4);
repeat
RandomRandoms:=random(10);
craftswitch:=1+random(7);
if ( RandomRandoms = 5 ) then
begin
RandomsAndAntiban;
GameTab(4);
end;
if ( RandomRandoms <> 5 ) then
FindNormalRandoms;
if ( craftswitch = 1 ) then
begin
CraftSelection(711,445,671,443);
end;
if ( craftswitch = 2 ) then
begin
CraftSelection(708,449,666,447);
end;
if ( craftswitch = 3 ) then
begin
CraftSelection(714,437,661,448);
end;
if ( craftswitch = 4 ) then // reverse previous choices
begin
CraftSelection(671,443,711,445);
end;
if ( craftswitch = 5 ) then
begin
CraftSelection(666,447,708,449);
end;
if ( craftswitch = 6 ) then
begin
CraftSelection(661,448,714,437);
end;
if ( craftswitch = 7 ) and (FindDTM(TanHide,x,y,654, 396,684, 421)) then // further increases anti-ban with vertical craft clicking
begin
CraftSelection(711,445,712, 407);
end;
if ( craftswitch = 7 ) and (FindDTM(TanHide,x,y,654, 396,684, 421)) then // further increases anti-ban with vertical craft clicking
begin
CraftSelection(712, 407,711,445);
end;
until( CountItemDtm(TanHide) <=1 )
end;
if ( CraftingItem > 1 ) then
begin
TimesDone:=0;
repeat
wait( 500+random(200));
Mouse(711, 447,1,1,true);
if ( findinvdtm(x,y,TanHide) ) then
begin
Mouse(x,y,3,3,true);
repeat
wait ( 100);
TimeoutCounter:=TimeoutCounter+1;
until ( FindColorTolerance(x,y,65536,476, 31,496, 50,1 )) or ( TimeoutCounter >= 70 )
end;
if ( TimeoutCounter >= 70 ) then
begin
TerminatePlayer('Timedout waiting for craft menu');
Exit;
end;
if ( FindColorTolerance(x,y,65536,476, 31,496, 50,1 )) then
begin
Mouse(CraftingX,CraftingY,8,8,false);
wait(800+random(100));
Mouse(CraftingX-20,CraftingY+57,8,0,true);
end;
wait( 15000+random(600));
TimesDone:=TimesDone+1;
until ( TimesDone >= 3 )
end;
end;
{======================================================================================}
{ Progress Report =) }
{======================================================================================}

procedure PrintMyProgress;// thought it would help with knowing how well this script works =)
begin
ClearDebug;
writeln('Player ' +Players[CurrentPlayer].Name+ ' is currently active');
writeln('You have currently done ' +inttostr(LoadsDoneTotal)+' loads');
writeln('Thank you for using LaNdOnS Hardleather crafter');
DisguiseScar(inttostr(LoadsDoneTotal*26));
end;

{======================================================================================}
{ Main Execution Line }
{======================================================================================}

begin
SetupSRL;
DisguiseScar('LaNdOnS SRL AutoCrafter');
SetVariables;
SetPlayers;
SetDTMs;
PlayerActiveTime:=GetSystemTime;
LoadsDoneTotal:=0;
if ( KillTime > 0 ) then
KillScript(KillTime);
Repeat
MouseSpeed := 11+random(2);
if ( Players[CurrentPlayer].Active = False ) then
begin
InitiateNextPlayer;
end;
if ( Players[CurrentPlayer].loc = 'bank' ) Then
Begin
repeat
if (ready)then
begin
if not(FindDTM(TanHide,x,y,556,211,740,327))then GameTab(4);
if (bankscreen)then
repeat
CloseBankWindow;
MMouse(215,55,50,50);
wait(100+random(50));
until(not(bankscreen));
Craft; // crafts objects
LoadsDone:=LoadsDone+1;
done:=true; // Tells that procedure is done
ready:=false; // Tells that it is no longer ready to craft
end;
If (done)then
begin
MouseSpeed := 11+random(2);
if ( FindCompassAngle > 20 ) and
( FindCompassAngle < 340 ) then
MakeCompass('n');
OpenTheBank(BankCounter,BankTolerance);
repeat
wait ( 100);
until ( Bankscreen )
BankCrafted;
deposited:=true; // Tells that depositing is finished
done:=false; // Falsifies boolean
end;
If (deposited)Then
begin
if (BankScreen)then
begin
MouseSpeed := 11+random(2);
WithdrawAllHides;
CloseBankWindow;
wait(1000+random(400));
end;
ready:=true; // Tells it is ready to craft again
deposited:=false; // No longer needs to deposit
end;
LoadsDoneTotal:=LoadsDone+LoadsDoneTotal;
PrintMyProgress;
until(LoadsDone >= LoadsToDo )
end;
until(false)
writeln('Successfully completed '+inttostr(LoadsDone)+' loads');
writeln('Script Copyright Landon Bowman 2007'); // Until publicly or privately released
end.


I didn't test it much, only about a minute run, but i mostly lagged ( my pc is 667 mhz with no ram… ), I could only see the findtree and axegone worked, then I stopped it so my computer could breathe lol. I'll test it when I wake up on a faster computer. I have full faith that it does work though, at least once for sure. Did not write the antiban yet, BUT I DIDNT FORGET IT… its six am and I haven't slept yet..so I was tired and decided to sleep lol.
Anyways… here it is….
EDIT:
Working on bugs, adding a procedure to find the tree more accurately. Actually, thats written. but need to work on my timeout failsafe =\
I'll post a better working version soon.

{==============================================================================)

MOSTLY UNTESTED

Only clicking is proven effective

No other tests were conducted with this script


Instructions:

The usual low detail, very bright
Set the player array
Fill in the small setup
Be in a place with alot of trees ( duh )


Credits:

I wrote all of this myself
I was not helped by anyone
However, I would like to thank Yohojo for his DTM tutorial
Other than that, I hold copyright
(at least until public release)

As it is untested, it should not be posted anywhere
Especially not the free section..

~Landon

(==============================================================================}
program SRLPowerCutter;
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/woodcutting.scar}

var

TreeColor1,TreeColor2,TreeColor3,Tolerance: Integer;
UniversalLogDTM,UniversalAxeDTM,WaitTime: Integer;
LogsDropped,PlayerStart,TimePerPlayer:Integer;

procedure SetVariables;
begin
SRLID:='';
SRLPassword:='';
WaitTime:= 25; {Time in seconds between clicks as FailSafe}
EquipAxe:= True; {Is your axe equipped or not?}
TimePerPlayer:=10; {Time to run script per player in minutes}
end;

procedure DeclarePlayers;
begin
{Set player to False if not going to be used}

Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;

Players[1].Name := '';
Players[1].Pass := '';
Players[1].Nick := '';
Players[1].Active := False;

Players[2].Name := '';
Players[2].Pass := '';
Players[2].Nick := '';
Players[2].Active := False;

Players[3].Name := '';
Players[3].Pass := '';
Players[3].Nick := '';
Players[3].Active := False;

Players[4].Name := '';
Players[4].Pass := '';
Players[4].Nick := '';
Players[4].Active := False;

Players[5].Name := '';
Players[5].Pass := '';
Players[5].Nick := '';
Players[5].Active := False;

Players[6].Name := '';
Players[6].Pass := '';
Players[6].Nick := '';
Players[6].Active := False;

Players[7].Name := '';
Players[7].Pass := '';
Players[7].Nick := '';
Players[7].Active := False;
end;

{==============================================================================)
End of Player setup
(==============================================================================}

procedure DeclareDTMs;
begin

UniversalLogDTM :=DTMFromString('78DA63F466626060666440062DA9B60CFF813' +
'448F43F10303A02D5FC6140038C482490B601AAE164C4AFC60DA8' +
'4680809A00A01A1E026AA2806A3808A80905AAF949C0CD5E4035B' +
'FF1AB010028EF0BC5');

UniversalAxeDTM :=DTMFromString('78DA63AC676260F0636440068D897C0CFF813' +
'448F43F10305600D524A3AA81C8C248205D05541346400DC82E4F' +
'026ABA806ABC08A86907AA09C2AF0600BC440AFC');
end;

procedure SetScriptColors;
begin
TreeColor1:=2381896;
TreeColor2:=1728592;
TreeColor3:=5079160;
Tolerance:=5;
NumberOfPlayers(8);
CurrentPlayer:=0;
end;

Function AxeGone: Boolean;
var
TimeOut:Integer;

begin
MarkTime(TimeOut);
repeat
if ( EquipAxe ) then
begin
GameTab(5);
if ( findinvdtm(x,y,UniversalAxeDTM) ) then
Result:=False;
if ( not ( findinvdtm(x,y,UniversalAxeDTM) ) ) then
Result:=True;
end;
if ( not (EquipAxe) ) then
begin
GameTab(4);
if ( findinvdtm(x,y,UniversalAxeDTM) ) then
Result:=False;
if ( not ( findinvdtm(x,y,UniversalAxeDTM) ) ) then
Result:=True;
end;
until ( Result = False ) or ( Result = True ) or ( TimeFromMark(Timeout) >= 15000 )
if ( TimeFromMark(Timeout) >= 15000 ) then
begin
Players[CurrentPlayer].loc:='Timeout -> AxeHead';
writeln('Player ' +Players[CurrentPlayer].Name+ ' Timed out during AxeGone function');
NextPlayer(False);
Exit;
end;
end;

Function FindTree: Boolean;
var
RandomClick: Integer;
Clicked:Integer;
EntTreeColor:Integer;

begin
repeat
RandomClick:= 1 + random(5);
if ( FindMSColorTol(x,y,TreeColor1,Tolerance) ) or
( FindMSColorTol(x,y,TreeColor2,Tolerance) ) or
( FindMSColorTol(x,y,TreeColor3,Tolerance) ) then
begin
MMouse(x,y,4,4);
GetMousePos(x,y);
wait(100+random(100));
if ( IsUpText('hop down') ) then
begin
EntTreeColor:=GetColor(x,y);
if ( RandomClick <> 3 ) then
begin
Mouse(x,y,0,0,false);
if ( ChooseOption(x,y,'hop down') ) then
Result:= True;
end;
if ( RandomClick = 3 ) then
begin
Mouse(x,y,1,1,true);
Result:=True;
end;
MarkTime(Clicked);
end;
if ( FlagPresent ) then Flag;
end;
if (not(LoggedIn)) then Break;
FindTalk;
FindNormalRandoms;
FindEnt(EntTreeColor);
if (AxeGone) then Break;
FindTalk;
until ( InvFull ) or ( TimeFromMark(Clicked) >= WaitTime )
if ( TimeFromMark(Clicked) >= WaitTime ) then
begin
writeln(' Player ' +Players[CurrentPlayer].Name+ ' had too much time between clicking trees');
NextPlayer(false);
Exit;
end;
if ( AxeGone ) then
begin
writeln(' Player ' +Players[CurrentPlayer].Name+ ' lost head of axe');
NextPlayer(false);
Exit;
end;
end;

procedure DropLogsPlease;
begin
GameTab(4);
if ( findinvdtm(x,y,UniversalLogDTM) ) and ( InvFull ) then
begin
repeat
Mouse(x,y,3,3,false);
if ( ChooseOption(x,y,'rop All') ) then
begin
Mouse(x,y,6,1,true);
wait(150+random(150));
LogsDropped:=LogsDropped+1;
end;
until ( not( findinvdtm(x,y,UniversalLogDTM) ) )
end;
end;

procedure PrintMyProgress;
begin
ClearDebug;
writeln('*========================================*');
writeln('* LaNdOnS SRL Powercutter *');
writeln('*========================================*');
writeln('* Working for ' +inttostr(ScriptTime(2))+ ' minutes*');
writeln('* You have cut/drop ' +inttostr(LogsDropped)+ ' logs *');
writeln('*========================================*');
SRLRandomsReport;
end;


begin
SetupSRL;
SetVariables;
SetScriptColors;
DeclareDTMs;
DeclarePlayers;
WaitTime:=WaitTime*1000;
TimePerPlayer:=TimePerPlayer*60000;
repeat
MarkTime(PlayerStart);
repeat
FindTree;
DropLogsPlease;
PrintMyProgress;
if ( not (LoggedIn) ) then Break;
until( TimeFromMark(PlayerStart) >= TimePerPlayer )
if ( not (LoggedIn) ) then
begin
writeln('Player ' +Players[CurrentPlayer].Name+ ' is logged out, removing from player array');
Players[CurrentPlayer].loc := ' Got logged out ';
NextPlayer(false);
end;
if ( LoggedIn ) then
begin
Status('Switching players');
NextPlayer(true);
end;
until (false)
end.

I'm trying to keep the new scripts up top as well for your convienence.

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

Hey321

2007-03-12 17:17:09

Pending Yohojo's Copy Check, i'll vote yes as it has pretty much everything needed.

tylanbo

2007-03-12 17:21:24

From: hey321
Pending Yohojo's Copy Check, i'll vote yes as it has pretty much everything needed.


Sweet that makes two :)

JuKKa

2007-03-12 18:25:26

i want a copybuster on this one before i vote..

if its urs u sure have put alot of work in it..!

tylanbo

2007-03-12 18:36:47

From: JuKKa
i want a copybuster on this one before i vote..

if its urs u sure have put alot of work in it..!


Thanks alot :)

If you have to assume it is plagairized in order to be true, then I suppose I did a good job :D

It is all mine, so I guess that makes 3? WOOT! (h)

I think this script may have been .. shall I say.."overkill" -> However last time my app got a big F on it for having such a crappy script, I suppose you inspired me ;)

EDIT: Oops…on my GetMainColors; procedure I didn't put in the counter…LOL…but it would be pointless anyways b/c the color will never be "0"…it'll just take the empty inv color and think it is the right one O_O!!!… i'll go fix it

EDIT2: Um..still need help on the SRL stats thing whenever you guys get a chance o.o

YoHoJo

2007-03-12 19:25:35

Ok guys im back.
Checking it right now

Seems original to me.
Only problem i have is that you didnt wait a month after your first app

tylanbo - SRL Member Application Form - 03-04-2007, 08:13 PM


For now, im going to read though the code, and can someone please test this script to see if it works?
I know many of you have used Fakawi's COWS!, make some use of them hides!


Seems fine, but i think you should really really use DTMs or Bitmaps instead of colors when finding all of the things in your script.
Many things in runescape have similar colors, using DTMs and Bitmaps will help the functionality and speed of this script a lot.
Check out my DTM tutorial in the tut island section.

I think ill be a nice guy and give you a yes.
But please someone test this script out.

tylanbo

2007-03-12 19:44:43

From: yohojo8
Ok guys im back.
Checking it right now

Seems original to me.
Only problem i have is that you didnt wait a month after your first app



For now, im going to read though the code, and can someone please test this script to see if it works?
I know many of you have used Fakawi's COWS!, make some use of them hides!



Sorry Yohojo8 didn't know I had to wait a month :(

didn't mean to pester anyone, I just waited until my script was good enough to send =\

And yes it works ! =p

EDIT:

A no! O_O .. please post your reasons please :) ( it'll help me improve )

Thanks

JAD

2007-03-12 20:00:11

I'm not going to vote yet.. but how did you learn to script so good if you just joined the community? here are the reasons I'd say no:
1. I'm not 100% sure you made this.
2. you didn't use DTM's
3. your anti randoms aren't good enough
4. the script doesn't work, I tried it.

So, even though yohojo said you probably made this, I'm still unsure.. how did you learn to script so fast? I still don't know how I'm voting yet, it will probably be a no from me though because of the 2, 3 and 4 reasons.

YoHoJo

2007-03-12 20:05:00

Does this only make bodies?
because i dont have 14 craft on any of my accounts
Owel, iv already voted yes.

tylanbo

2007-03-12 20:42:29

From: JAD
I'm not going to vote yet.. but how did you learn to script so good if you just joined the community? here are the reasons I'd say no:
1. I'm not 100% sure you made this.
2. you didn't use DTM's
3. your anti randoms aren't good enough
4. the script doesn't work, I tried it.

So, even though yohojo said you probably made this, I'm still unsure.. how did you learn to script so fast? I still don't know how I'm voting yet, it will probably be a no from me though because of the 2, 3 and 4 reasons.


DOESN'T WORK?? how so… :(
I spent days fixing the effing bugs in it …

I didn't learn to script "so fast"… I have been scripting a while, just not with SRL. I also am learning java programming, so I have been doing alot of programming lately so that's why my scripting seems quick to you. My anti randoms should be good enough man… It always runs a check for the normal randoms and 1/10 it'll execute antiban options. This is done to keep antiban up but not so often that you don't get anything done you see? But it always runs FindNormalRandoms, if there is something else I should be doing let me know… Please don't reject my application because of DTMs. Its not like I will get any help from anyone on it, and if i'm not a member I minus well forget it. I had to work my butt off to get that script you see right there.

Anyways… if you still vote now be sure to post your final reason please..

tylanbo

2007-03-12 20:45:21

From: YoHoJo
Does this only make bodies?
because i dont have 14 craft on any of my accounts
Owel, iv already voted yes.


Yes, it makes hardleather bodies ( lvl 28 crafting ). I ran it on my comp and it worked 100%. The openbank procedure was the first made, then I had a hard time with the withdrawing… but now it is 100% effective.

Note to those who thinks it may not work:

If you have a slow computer, TAKE THIS INTO ACCOUNT!!
If you have a POS comp, it may mean that the text cannot be recognized quick enough to accomplish the specified goals. You don't need a super computer to run it, but anything older than I suppose 1.5 ghz w/ less than 512 ram or so.. it may be slow. SRL seems to lag down the machine, and thus inhibits performance.


EDIT: Another note on thoughts of me "learning too quick"

I could have submitted a powerchopper or something that EVERYONE has and that you must have seen so many times…but I happened to have already been working on a hide tanner, and unlike those that give up quick I stuck with a project and FINISHED IT. I am going to go back and add procedures to help people with slower computers, and if I am able to learn DTMs I will add that. Unfortunately for me I don't exactly have a guide, and didn't really know of any tuts at the time of this scripts creation. I am going to ATTEMPT to learn DTMs but give me some grace please..I tried before but all I got was a headache.

EDIT2:

Even if you don't like the script, ( it does work though >.< or at least it better ) , please just look at the basics. I hope it shows concept understanding and that I can be useful to the SRL community. If you have any questions that you wan't answered quick I'm always on skype and should be on MSN right now..

EDIT3:

So I got another no ( 2 so far ) …but no reasons O_O….please remember to tell me your reason for a no so I can improve, thanks

YoHoJo

2007-03-12 21:09:47

From: tylanbo
Its not like I will get any help from anyone on it, and if i'm not a member I minus well forget it. I had to work my butt off to get that script you see right there.


He wouldnt lie, if it doesnt work it doesnt :p.
Please post what went wrong.
And if your only reason to make this script was to get into SRL Members, you are on the wrong path.
SRL member is for people who enjoy scripting and want to help the community.
And whats stopping you from learning DTMS?
'The Point' of scripting is to learn as much as you can, not get into a stupid (no offense) section at a forum.

I say you change color to DTM or Bitmap to get accepted.
Colors are very unreliable.

But whatever, the poll will reveal the answers.

tylanbo

2007-03-12 21:19:54

From: YoHoJo
He wouldnt lie, if it doesnt work it doesnt :p.
Please post what went wrong.
And if your only reason to make this script was to get into SRL Members, you are on the wrong path.
SRL member is for people who enjoy scripting and want to help the community.
And whats stopping you from learning DTMS?
'The Point' of scripting is to learn as much as you can, not get into a stupid (no offense) section at a forum.

I say you change color to DTM or Bitmap to get accepted.
Colors are very unreliable.

But whatever, the poll will reveal the answers.


I'm not calling him a lier at all, don't get me wrong there :)
I just wanted to know what didnt work, so I could fix it.
I'm not trying to just get into the SRL community, I do enjoy scripting but getting into this group is a mark of accomplishment for me, and having to wait a month after this script ( which , after working so hard on , would set me back quite a bit ) would mean that I would probably just forget getting into the members section.
Oh, I'll learn DTM's. I agree, colors blow, and are uneffective. Do I need to submit another script to get in , one that has DTM's? =|

Edit:

Hey, once again, please remember to post ( if any ) reasons why script did not work for you.
Also, if you feel my application should be rejected, please tell me why so that I may improve my script/app and send in another. Thank you

Edit2:

My MSN privacy settings were blocking messages/showing of online status. That's taken care of, so I am able to be pm'ed if any of you desires to do so =|

Also, I'm going to go look at DTM's, maybe I just need a better reference to study off of. If you feel like my app needs to be rejected b/c of this, please don't say no yet. O_O

If you happen to know of a really good tut for DTM's link me to it ( i'm searching for one right now ). I guess I'll repost the script using DTMs, ASAP, to hopefully slip through this app process. Give me some grace guys its my first script and I didn't even get help…sheesh lol

Edit:

Nvm apparently Yohojo has one, looking at it now. Finally something that makes sense. Thanks :)

OMFG!@! I never knew DTMs were so easy lol. I just made random points and didnt know what to do with the tolerance ROFL ^.^
Well I guess that means its time 2 script, once again thx yohojo

bullzeye95

2007-03-12 21:41:59

I votes yes, because:
1. The script is decent (I've seen better though)
and
2. You just seem like a good person.

tylanbo

2007-03-12 21:50:07

From: bullzeye95
I votes yes, because:
1. The script is decent (I've seen better though)
and
2. You just seem like a good person.


Thanks alot :)

Getting worried with all the negative comments. ;)


EDIT:

WOOOT! Got that X on my effing DTM .. I'm truckin..

Now I got DTMs for cowhides, hard leather, and hard leather bodies :)
I'm going to go convert my script to DTMism, instead of Noobism

Edit:

Hey guys just got done with the dtm version and about to post :)

tylanbo

2007-03-12 23:05:26

You never told me why my script didn't work…

If it was b/c of bank opening procedure, just run it in al- kahrid. I'll probably change the bank to a '1 location' thing instead of anywhere. idk..

EDIT:


Watch the double posting. Also stay active.


Sorry, accident O_O.. if by stay active you mean contribute to the community, and to check the forums for questions, and to be on like msn or skype in case someone needs help, I most certainly will :)

Thanks Boreas

Edit 2:

Hey, almost done with the DTM's, a huge thank you to Yohojo for his tutorial on dtms, very well written =)
I'll be sure to post the new script for review when it is done. I changed the bank to al kahrid because it was unreasonable to try and fit in compatibility for all banks, and this way people can't say it doesn't work :)

Boreas

2007-03-12 23:21:22

Watch the double posting. Also stay active.

tylanbo

2007-03-13 01:47:39

Hey everyone, I am back with my DTM version of this script. There are less variables to set now and less setup. You need to be in Al kahrid, because that's where I tested it lol.

Anyways here it is :


{/////////////////////////////////////////////////////////////////
// Al Kharid Hard Leather Crafter //
////////////////////////////////////////////////////////////////

Status: NOT RELEASED - Do NOT Post anywhere
Only permision for release on SRL MEMBERS Forumn
Members only, not anywhere else

Don't take the liberty of doing it, it'll
make me feel good to do it myself ^.^

(================================================)
This script was entirely written by myself
Copyright Landon Bowman 2007 ( Until public release )
However this time I used SRL, NOT written by me
Thank you SRL for such an awesome include!
You may not alter this script in any way
You may not sell this script or give it away
If you know me, you can tell me any bugs and I
will fix them, not you, so DO NOT TOUCH SCRIPT!
The more I learn from my mistakes, the better I
can make my scripts.
(================================================)
You DO have permission (If I gave to you or was
released to PUBLIC) to use this script for what
it was intended for, TO CRAFT TANNED COW HIDES.
(================================================)
Version history:

V 1.0 First fully functional version
V 1.1 Translated to SRL
V 1.2 Antirandoms and Antiban support
V 1.3 Multiple players
V 1.4 Smoothed out procedures
V 1.5 Now uses DTMs instead of colors
V 1.6 Antiban is more consistant..minor change
V 1.7 Progress report added

(================================================)
There will be updates in the near future, adding
support for other types of crafts besides
Hard leather body ( level 28 crafting )
(================================================)
Notes for current version:

This version can run by itself now, it uses SRL's
antiban and antirandoms, and has support for
multiple players.
(================================================)
Instructions for Operation:

1. Be in alkharid bank, middle booth would be best
2. Have crafting needle in the bottom right inventory slot
3. Have thread in any spot except 24th and last
4. Have Hard Leather in top section of bank, somewhere
5. Have NubScape on very bright, low detail
6. Follow those instruction for ALL players
7. Set up colors and options on lines 72-84
8. Fill out player information
(================================================}

program New;
{.include SRL/SRL.scar}
{.include SRL/SRL/Extended/xBank.scar}

var
counter,Creation,TanHide,LoggedInTime,LastChecked,LoadsDoneTotal:Integer;
BankTolerance,NumberOfUsers,PlayerActiveTime,BoredLast:Integer;
LoadsDone,StartPlayer,KillTime,RandomSkillCheck,LoadsToDo:Integer;
RandomBoredHuman,RandomLeaveScreen,LastLeft,BankCounter:Integer;
done,ready,deposited:Boolean;


procedure SetVariables;
begin
LoadsToDo:=10; // How many loads to do before ending script
BankCounter:=4999248; // shouldn't need to change really
BankTolerance:=12;
NumberOfUsers:=1;
StartPlayer:=0; // Which player in the array will start?
LoggedInTime:=8; // Time in minutes for each player to be logged in
KillTime:=0; // Time in hours for script to end ( 0 = don't use )
RandomSkillCheck:=2; // MINIMUM mins between random checking of skill xp
RandomBoredHuman:=2; // MINIMUM mins between bored human mouse movements
RandomLeaveScreen:=2 //MINIMUM mins between leaving screen
{=========================DO NOT TOUCH THESE=======================}
done:=true;
ready:=false;
deposited:=false;
{==================================================================}
end;

procedure SetPlayers;
begin

HowManyPlayers := NumberOfUsers;
NumberOfPlayers( HowManyPlayers );
CurrentPlayer := StartPlayer;

Players[0].Name :='PlayerName';
Players[0].Pass :='PlayerPass';
Players[0].Nick :='anbo';
Players[0].loc := 'bank';
Players[0].Active:=True;

end;

{======================================================================================}
{ Script Begins..... }
{======================================================================================}

procedure InitiateNextPlayer;
begin
NextPlayer(true);
writeln('Player ' + Players[CurrentPlayer].Name+ ' logging in ..');
writeln('Player set to do ' +inttostr(LoadsToDo)+ ' loads of hides');
end;

procedure TerminatePlayer(Reason:String);
begin
CloseBank;
Logout;
Players[CurrentPlayer].Loc := Reason;
writeln(' Player ' +Players[CurrentPlayer].Name+ ' logged out because ' + Reason );
Players[CurrentPlayer].Active := False;
end;

procedure CheckPlayerTimeout;
begin
if ( PlayerActiveTime + (LoggedInTime*60000) >= GetSystemTime ) then
begin
TerminatePlayer('logging out for antiban');
InitiateNextPlayer;
PlayerActiveTime:= GetSystemTime;
end;
end;

procedure RandomsAndAntiban;
var
AntiBanRandom: Integer;
begin
AntiBanRandom:=1 + random ( 3 );
FindNormalRandoms;
if ( AntiBanRandom = 1 ) and ( LastLeft < GetSystemTime ) then
begin
LeaveScreenEvery(RandomLeaveScreen);
LastLeft:=GetSystemTime+(RandomLeaveScreen*60000);
end;
if ( KillTime > 0 ) then
KillScript(KillTime);
if ( AntiBanRandom = 2 ) and ( LastChecked < GetSystemTime ) then
begin
HoverSkill('crafting',false);
LastChecked:=GetSystemTime+(RandomSkillCheck*60000);
end;
if ( AntiBanRandom = 3 ) and ( BoredLast < GetSystemTime ) then
begin
BoredEvery(RandomBoredHuman);
BoredLast:=GetSystemTime+(RandomBoredHuman*60000);
end;
end;

{======================================================================================}
{ Banking Procedures }
{======================================================================================}

procedure CloseBankWindow; // CloseBank; not always effective
begin
if ( Bankscreen ) then
begin
repeat
Mouse(488,39,2,2,true);
wait(1200+random(400));
until ( not (Bankscreen) )
end;
end;

procedure BankCrafted;
var
DepositedCreation: Boolean;
Counter: Integer;
begin
DepositedCreation:=false;
repeat
if ( FindDTM (Creation,x,y,568, 212,729, 457) ) then
begin
Mouse(x,y,1,1,false);
wait(100+random(50));
if ( ChooseOption(x, y, 're All') ) then
begin
Mouse(x,y,4,0,true);
wait(250+random(100));
DepositedCreation:= true;
end;
Counter:= Counter+1;
end;
until ( DepositedCreation ) or ( Counter >= 4 ) or ( not (FindDTM (Creation,x,y,568, 212,729, 457)))
if ( Counter >=4 ) then
begin
TerminatePlayer('Error in withdraw procedure');
Exit;
end;
LoadsDone:=LoadsDone+1;
end;

Function OpenTheBank(Color,Tol: Integer): Boolean; // Modified SRL OpenBank procedures, Thank you SRL =)
var
Counter,Clicked: Integer;
begin
if ( FindCompassAngle > 20 ) and
( FindCompassAngle < 340 ) then
MakeCompass('n');
Clicked:= 0;
If not(Loggedin)then Exit;
repeat
if(FindObjMultiText(x, y, 'se Bank', 'Bank B', 'booth', Color,Tol))then
begin
Mouse(x, y, 1, 1, false);
wait(100+random(50));
Clicked := Clicked + 1;
if(ChooseOption(x, y, 'quickly')) or (ChooseOption(x, y, 'Bank Banker'))then
begin
Flag;
repeat
Wait(100);
Counter := Counter + 1
until(BankScreen) or (Counter >= 70) or (PinScreen)
If (BankScreen) then
begin
if not ( FindDTM ( TanHide,x,y,75,60,463,286 ) ) then
QuickFixBank;
Result := True
Exit;
end else
If (PinScreen) then
begin
TerminatePlayer('Pin screen was detected, aborting...');
Exit;
end else
If (Counter >= 70) then
begin
TerminatePlayer('Bankscreen not opened in reasonable time');
Exit;
end;
end;
end;
until ( Bankscreen ) or ( Clicked >= 4 )
if ( Clicked >= 4 ) then
begin
TerminatePlayer('Too many missed clicks while opening bank');
Exit;
end;
end;

procedure WithdrawAllHides;
var
Withdrawn: Boolean;
begin
Withdrawn:=false;
if ( FindDTM ( Creation,x,y,568,212,729,457 ) ) then BankCrafted;
if ( FindDTM ( TanHide,x,y,75,60,463,286 ) ) then
begin
repeat
Mouse(x,y,1,1,false);
wait(100+random(50));
if ( ChooseOption(x, y, 'w All') ) then
begin
Mouse(x,y,4,0,true);
wait(250+random(100));
Withdrawn:= true;
end;
Counter:= Counter+1;
wait(500 + random(150));
until ( Withdrawn ) or ( Counter >= 10 )
end else

if not ( FindDTM ( TanHide,x,y,75,60,463,286 ) ) then
begin
TerminatePlayer('No hard leather left in bank');
exit;
end;
if ( Counter >=10 ) then
begin
TerminatePlayer('Error in withdraw procedure');
Exit;
end;
ready:=true; // Tells it is ready to craft again
deposited:=false; // No longer needs to deposit
wait(300+random(250));
end;

{======================================================================================}
{ Collects Primary Colors }
{======================================================================================}

procedure SetDTMs;

begin
TanHide := DTMFromString('78DA6354626060506640011686720CFC409A1' +
'188FF0301A33090A1C48006189148202D06243408A8910312BA04' +
'D44803091D026AF48084247E35000C3E0635');

Creation :=DTMFromString('78DA63F462606050654001C17E160CFF81342' +
'310FF0702460720438D010D302291401AA44687801A6F20A14740' +
'4D10116AC28084267E3500883C089F');

end;

{======================================================================================}
{ Crafting Procedures }
{======================================================================================}

procedure CraftSelection(x1,y1,x2,y2:Integer);
begin
MouseSpeed := 6+random(2);
Mouse(x1,y1,0,0,true);
wait(20+random(50));
Mouse(x2,y2,0,0,true);
wait(20+random(50));
end;

procedure Craft;
var
counter,RandomRandoms,craftswitch: Integer;
begin
counter:=0;
if ( CountItemDtm(TanHide) < 26 ) then
begin
TerminatePlayer('Full inventory of hides NOT FOUND');
Exit;
end;
GameTab(4);
repeat
RandomRandoms:=random(10);
craftswitch:=1+random(7);
if ( RandomRandoms = 5 ) then
begin
RandomsAndAntiban;
GameTab(4);
end;
if ( RandomRandoms <> 5 ) then
FindNormalRandoms;
if ( craftswitch = 1 ) then
begin
CraftSelection(711,445,671,443);
end;
if ( craftswitch = 2 ) then
begin
CraftSelection(708,449,666,447);
end;
if ( craftswitch = 3 ) then
begin
CraftSelection(714,437,661,448);
end;
if ( craftswitch = 4 ) then // reverse previous choices
begin
CraftSelection(671,443,711,445);
end;
if ( craftswitch = 5 ) then
begin
CraftSelection(666,447,708,449);
end;
if ( craftswitch = 6 ) then
begin
CraftSelection(661,448,714,437);
end;
if ( craftswitch = 7 ) and ( counter <= 19 ) then // further increases anti-ban with vertical craft clicking
begin
CraftSelection(711,445,712, 407);
end;
if ( craftswitch = 7 ) and ( counter <= 19 ) then // further increases anti-ban with vertical craft clicking
begin
CraftSelection(712, 407,711,445);
end;
counter:=counter+1; // Counts how many times you have completed an object (Theoreticaly)
// Will be replaced with DTM or color finder
until( CountItemDtm(TanHide) <=1 ) or ( counter >= 26 )
end;
{======================================================================================}
{ Progress Report =) }
{======================================================================================}

procedure PrintMyProgress;// thought it would help with knowing how well this script works =)
begin
ClearDebug;
writeln('Player ' +Players[CurrentPlayer].Name+ ' is currently active');
writeln('You have currently done ' +inttostr(LoadsDoneTotal)+' loads');
writeln('Thank you for using LaNdOnS Hardleather crafter');
DisguiseScar(inttostr(LoadsDoneTotal*26));
end;

{======================================================================================}
{ Main Execution Line }
{======================================================================================}

begin
SetupSRL;
DisguiseScar('LaNdOnS SRL AutoCrafter');
SetVariables;
SetPlayers;
SetDTMs;
PlayerActiveTime:=GetSystemTime;
LoadsDoneTotal:=0;
Repeat
LoadsDone:=0;
MouseSpeed := 11+random(2);
if ( Players[CurrentPlayer].Active = False ) then
InitiateNextPlayer;
if ( Players[CurrentPlayer].loc = 'bank' ) Then
Begin
repeat
if (ready)then
begin
if not(FindDTM(TanHide,x,y,556,211,740,327))then GameTab(4);
if (bankscreen)then
repeat
CloseBankWindow;
MMouse(215,55,50,50);
wait(100+random(50));
until(not(bankscreen));
Craft; // crafts objects
LoadsDone:=LoadsDone+1;
done:=true; // Tells that procedure is done
ready:=false; // Tells that it is no longer ready to craft
end;
If (done)then
begin
MouseSpeed := 11+random(2);
if ( FindCompassAngle > 20 ) and
( FindCompassAngle < 340 ) then
MakeCompass('n');
OpenTheBank(BankCounter,BankTolerance);
repeat
wait ( 100);
until ( Bankscreen )
BankCrafted;
deposited:=true; // Tells that depositing is finished
done:=false; // Falsifies boolean
end;
If (deposited)Then
begin
if (BankScreen)then
begin
MouseSpeed := 11+random(2);
WithdrawAllHides;
CloseBankWindow;
wait(1000+random(400));
end;
ready:=true; // Tells it is ready to craft again
deposited:=false; // No longer needs to deposit
end;
LoadsDoneTotal:=LoadsDone+LoadsDoneTotal;
PrintMyProgress;
until(LoadsDone >= LoadsToDo )
end;
until(false)
writeln('Successfully completed '+inttostr(LoadsDone)+' loads');
writeln('Script Copyright Landon Bowman 2007'); // Until publicly or privately released
end.

You may also notice I added a progress report, to help keep track of how much you did, and it disguises scar with how many done, so if you are running the bot you don't have to do anything to see how many was made so far. :)

If there is anything else I can do to persuade you to let me in , let me know ;)

And, not that I haven't said it, please be sure to post reasons for rejecting this app, I got two no's and nobody even said why =|
:confused:

tylanbo

2007-03-13 02:49:35

From: YoHoJo
Does this only make bodies?
because i dont have 14 craft on any of my accounts
Owel, iv already voted yes.


I wanted to add though that, while currently it is only set up to craft hardleather bodies ( lvl 28 ) , that I am going to add support for lower level crafts. That updated script will then be posted on the members forums, for use/bug reports :)

Basically the hard part is done, adding what you are looking for is real simple…in fact it is click/wait for the most part O_O!

Thanks and i'll be sure to update shortly, using DTMs too :)

EDIT:

This is a double post…or is it? IDK, I'm not trying to double post so don't hammer me for it lol


Watch the double posting. Also stay active.

Sorry, I did it again >.<… tried to delete post and add to last, but couldn't find the delete button :(

Sorry again Boreas

JAD

2007-03-13 10:03:10

sorry it took me too long to respond, was sleeping :p it just moves the mouse around randomly when I try to run it, weird. maybe I did something wrong in the setup, but for randoms you should have FindTalk and if FindFight=true then…etc to make your anti randoms more efficient.

Killerdou

2007-03-13 10:26:50

why would you put any randoms in it when its inside the bank… you dont need it(no randoms in bank) or am i wrong?

JAD

2007-03-13 11:50:55

there are less randoms in bank then other places, but yes, you will get them even when trading with the tanner guy, and if your account gets flagged, you will get a LOT more randoms at bank and other things, so it would be good to have some anti randoms in it.

tylanbo

2007-03-13 12:57:11

From: JAD
there are less randoms in bank then other places, but yes, you will get them even when trading with the tanner guy, and if your account gets flagged, you will get a LOT more randoms at bank and other things, so it would be good to have some anti randoms in it.



Mouse just moves around randomly? That is extremely odd, is your computer slow?..

Ok , I'll add those other randoms , I thought findnormalrandoms wasl all lol :)

If you have the chance, try running the script on a faster comp, I know it works on mine =\.

The new version finds dtms, and the bank procedure is basically the same, except i said to run it in al kharid.
Thanks for your post :)

EDIT: What it should look like, is it will open up the bank, withdraw hides, craft ( with antiban and findnormalrandoms ), then bank again.
I don't know what to say other than that it worked awesome on this comp, and worked ( although real laggy ) on my slow POS comp at home.

Wizzup?

2007-03-13 13:10:17

A yes from me. :)

JAD

2007-03-13 13:16:59

I have a very fast computer :) some scripts just don't work on other peoples computers, and some do.. like wissup's essence miner is a GREAT script, and I know some people from MSN that it doesn't work for, but it works flawlessly for me :) so IDK if its your fault, or it just doesn't work for me.

tylanbo

2007-03-13 14:08:40

From: Wizzup?
A yes from me. :)


Thanks :)
Means alot coming from you ^.^

From: JAD
I have a very fast computer :) some scripts just don't work on other peoples computers, and some do.. like wissup's essence miner is a GREAT script, and I know some people from MSN that it doesn't work for, but it works flawlessly for me :) so IDK if its your fault, or it just doesn't work for me.

That's odd, well I will assume it is the bank finding procedure since that is the first one to run. I feel I wasn't specific in how it should be set, did you set the color to the countertop of the bank window? The counter, not window / wood. That may be your issue, tell me if you still have problems, and I'll be sure to update this script again and release a better version ;)

Another note:

PEOPLE PLEASE!!! I got 3 no's on my application, and nobody has told me why they felt my application should be rejected. All I ask is that you post your reasons here, it will help me in the future.
Thanks

EDIT:

I'm going to go run the DTM version again, and if I find problems I'll be sure to post them so you get a heads up. I tried to test it before I sent it to you, but you never know :)

TOB

2007-03-13 14:10:40

Yes from me, decent script.

tylanbo

2007-03-13 14:23:11

From: TOB
Yes from me, decent script.


Great, thanks alot :)


Note on script:

What I have noticed is that it sometimes tries to craft by clicking up instead of left/right movements ( for antiban ) , but does so when it is not supposed to. I will go and add better procedure to it. I also noticed that the progress report is off, I put the LoadsDone:=LoadsDone+1 in the wrong place, so it shows a higher number than it should. Other than those two things ( which doesn't stop it from working) I had no problems. I'll be sure to add the antirandoms that JAD suggested, and keep you posted on updates :)

Thanks

EDIT:

Just fixed the two bugs ( theoretically ) but cannot test because I need to tan some hides first :)
I'll be sure to post my results

EDIT2:

FindNormalRandoms already does a FindTalk check O_O…do I still need to add to my script? Thanks

EDIT3: Ok, fixed the vertical clicking issue, plus the progress report issue. I am running this script at a resolution of 1024 X 768, if you are not running at that resolution try doing so O.O

Reorganized it just a tad, to make it a little more easier to follow.
I'm considering scrapping the whole crafting procedure in place of something else, but I'm most likely going to save that for when I have people helping me develope the script. I am thinking about adding support right now for the lower crafting lvl items, I'll be sure to post when it is ready again.

EDIT:

Ok everyone, I got support for mulitiple crafts now, but atm it is in COMPLETE beta stage…haven't had the opportunity to test. I'll get back to you on it…

EDIT:

SWEEET. Just a couple bugs, got smoothed out, finishing touchups and I'll post new version :)

EDIT:


{/////////////////////////////////////////////////////////////////
// Al Kharid Multi-Crafter //
////////////////////////////////////////////////////////////////

Status: NOT RELEASED - Do NOT Post anywhere
Only permision for release on SRL MEMBERS Forumn
Members only, not anywhere else

Don't take the liberty of doing it, it'll
make me feel good to do it myself ^.^

(================================================)
This script was entirely written by myself
Copyright Landon Bowman 2007 ( Until public release )
However this time I used SRL, NOT written by me
Thank you SRL for such an awesome include!
You may not alter this script in any way
You may not sell this script or give it away
If you know me, you can tell me any bugs and I
will fix them, not you, so DO NOT TOUCH SCRIPT!
The more I learn from my mistakes, the better I
can make my scripts.
(================================================)
You DO have permission (If I gave to you or was
released to PUBLIC) to use this script for what
it was intended for, TO CRAFT TANNED COW HIDES.
(================================================)
Version history:

V 1.0 First fully functional version
V 1.1 Translated to SRL
V 1.2 Antirandoms and Antiban support
V 1.3 Multiple players
V 1.4 Smoothed out procedures
V 1.5 Now uses DTMs instead of colors
V 1.6 Antiban is more consistant..minor change
V 1.7 Progress report added
V 1.8 Multiple crafting types supported

(================================================)
If you have hard leather and soft leather, you
will need to take the leather you are not using,
note it, and keep it in your inventory. The DTM
finder does not distinguish the difference between
the two ATM, I made them too universal ^.^
(================================================)
Notes for current version:

Multiple item support is BETA, tested version
is hardleather bodies
(================================================)
Instructions for Operation:

1. Be in alkharid bank, middle booth would be best
2. Have crafting needle in the bottom right inventory slot
3. Have thread in any spot except 24th and last
4. Have Tanned leather in top section of bank somewhere
5. Have NubScape on very bright, low detail
6. Follow those instruction for ALL players
7. Set up colors and options on lines 72-84
8. Fill out player information
(================================================}

program New;
{.include SRL/SRL.scar}
{.include SRL/SRL/Extended/xBank.scar}

var
counter,Creation,TanHide,LoggedInTime,LastChecked,LoadsDoneTotal:Integer;
BankTolerance,NumberOfUsers,PlayerActiveTime,BoredLast:Integer;
CraftingItem,CraftingX,CraftingY:Integer;
LoadsDone,StartPlayer,KillTime,RandomSkillCheck,LoadsToDo:Integer;
RandomBoredHuman,RandomLeaveScreen,LastLeft,BankCounter:Integer;
done,ready,deposited:Boolean;


procedure SetVariables;
begin
LoadsToDo:=10; // How many loads to do before ending script
BankCounter:=4999248; // shouldn't need to change really
BankTolerance:=12;
NumberOfUsers:=1;
StartPlayer:=0; // Which player in the array will start?
LoggedInTime:=8; // Time in minutes for each player to be logged in
KillTime:=0; // Time in hours for script to end ( 0 = don't use )
RandomSkillCheck:=2; // MINIMUM mins between random checking of skill xp
RandomBoredHuman:=2; // MINIMUM mins between bored human mouse movements
RandomLeaveScreen:=2 //MINIMUM mins between leaving screen
CraftingItem:=2; // Acceptable values:
// 1 = Hardleather Body 2 = Softleather chaps
// 3 = Leather gloves 4 = Leather Boots
// 5 = Softleather Body
{=========================DO NOT TOUCH THESE=======================}
done:=true;
ready:=false;
deposited:=false;
{==================================================================}
end;

procedure SetPlayers;
begin

HowManyPlayers := NumberOfUsers;
NumberOfPlayers( HowManyPlayers );
CurrentPlayer := StartPlayer;

Players[0].Name :='PlayerName';
Players[0].Pass :='PlayerPass';
Players[0].Nick :='anbo';
Players[0].loc := 'bank';
Players[0].Active:=True;

end;

{======================================================================================}
{ Script Begins..... }
{======================================================================================}

procedure InitiateNextPlayer;
begin
NextPlayer(true);
writeln('Player ' + Players[CurrentPlayer].Name+ ' logging in ..');
writeln('Player set to do ' +inttostr(LoadsToDo)+ ' loads of hides');
LoadsDone:=0;
end;

procedure TerminatePlayer(Reason:String);
begin
CloseBank;
Logout;
Players[CurrentPlayer].Loc := Reason;
writeln(' Player ' +Players[CurrentPlayer].Name+ ' logged out because ' + Reason );
Players[CurrentPlayer].Active := False;
LoadsDone:=0;
end;

procedure CheckPlayerTimeout;
begin
if ( PlayerActiveTime + (LoggedInTime*60000) >= GetSystemTime ) then
begin
TerminatePlayer('logging out for antiban');
InitiateNextPlayer;
PlayerActiveTime:= GetSystemTime;
end;
end;

procedure RandomsAndAntiban;
var
AntiBanRandom: Integer;
begin
AntiBanRandom:=1 + random ( 3 );
FindNormalRandoms;
if ( AntiBanRandom = 1 ) and ( LastLeft < GetSystemTime ) then
begin
LeaveScreenEvery(RandomLeaveScreen);
LastLeft:=GetSystemTime+(RandomLeaveScreen*60000);
end;
if ( AntiBanRandom = 2 ) and ( LastChecked < GetSystemTime ) then
begin
HoverSkill('crafting',false);
LastChecked:=GetSystemTime+(RandomSkillCheck*60000);
end;
if ( AntiBanRandom = 3 ) and ( BoredLast < GetSystemTime ) then
begin
BoredEvery(RandomBoredHuman);
BoredLast:=GetSystemTime+(RandomBoredHuman*60000);
end;
end;

{======================================================================================}
{ Banking Procedures }
{======================================================================================}

procedure CloseBankWindow; // CloseBank; not always effective
begin
if ( Bankscreen ) then
begin
repeat
Mouse(488,39,2,2,true);
wait(1200+random(400));
until ( not (Bankscreen) )
end;
end;

procedure BankCrafted;
var
DepositedCreation: Boolean;
Counter: Integer;
begin
DepositedCreation:=false;
repeat
if ( FindDTM (Creation,x,y,568, 212,729, 457) ) then
begin
Mouse(x,y,1,1,false);
wait(100+random(50));
if ( ChooseOption(x, y, 're All') ) then
begin
Mouse(x,y,4,0,true);
wait(250+random(100));
DepositedCreation:= true;
end;
Counter:= Counter+1;
end;
until ( DepositedCreation ) or ( Counter >= 4 ) or ( not (FindDTM (Creation,x,y,568, 212,729, 457)))
if ( Counter >=4 ) then
begin
TerminatePlayer('Error in withdraw procedure');
Exit;
end;
LoadsDone:=LoadsDone+1;
end;

Function OpenTheBank(Color,Tol: Integer): Boolean; // Modified SRL OpenBank procedures, Thank you SRL =)
var
Counter,Clicked: Integer;
begin
if ( FindCompassAngle > 20 ) and
( FindCompassAngle < 340 ) then
MakeCompass('n');
Clicked:= 0;
If not(Loggedin)then Exit;
repeat
if(FindObjMultiText(x, y, 'se Bank', 'Bank B', 'booth', Color,Tol))then
begin
Mouse(x, y, 1, 1, false);
wait(100+random(50));
Clicked := Clicked + 1;
if(ChooseOption(x, y, 'quickly')) or (ChooseOption(x, y, 'Bank Banker'))then
begin
Flag;
repeat
Wait(100);
Counter := Counter + 1
until(BankScreen) or (Counter >= 70) or (PinScreen)
If (BankScreen) then
begin
if not ( FindDTM ( TanHide,x,y,75,60,463,286 ) ) then
QuickFixBank;
Result := True
Exit;
end else
If (PinScreen) then
begin
TerminatePlayer('Pin screen was detected, aborting...');
Exit;
end else
If (Counter >= 70) then
begin
TerminatePlayer('Bankscreen not opened in reasonable time');
Exit;
end;
end;
end;
until ( Bankscreen ) or ( Clicked >= 4 )
if ( Clicked >= 4 ) then
begin
TerminatePlayer('Too many missed clicks while opening bank');
Exit;
end;
end;

procedure WithdrawAllHides;
var
Withdrawn: Boolean;
begin
Withdrawn:=false;
if ( FindDTM ( Creation,x,y,568,212,729,457 ) ) then BankCrafted;
if ( FindDTM ( TanHide,x,y,75,60,463,286 ) ) then
begin
repeat
Mouse(x,y,1,1,false);
wait(100+random(50));
if ( ChooseOption(x, y, 'w All') ) then
begin
Mouse(x,y,4,0,true);
wait(250+random(100));
Withdrawn:= true;
end;
Counter:= Counter+1;
wait(500 + random(150));
until ( Withdrawn ) or ( Counter >= 10 )
end else

if not ( FindDTM ( TanHide,x,y,75,60,463,286 ) ) then
begin
TerminatePlayer('No hard leather left in bank');
exit;
end;
if ( Counter >=10 ) then
begin
TerminatePlayer('Error in withdraw procedure');
Exit;
end;
ready:=true; // Tells it is ready to craft again
deposited:=false; // No longer needs to deposit
wait(300+random(250));
end;

{======================================================================================}
{ Collects Primary Colors }
{======================================================================================}

procedure SetDTMs;

begin
if ( CraftingItem = 1 ) then
begin
TanHide := DTMFromString('78DA6354626060506640011686720CFC409A1' +
'188FF0301A33090A1C48006189148202D06243408A8910312BA04' +
'D44803091D026AF48084247E35000C3E0635');

Creation :=DTMFromString('78DA63F462606050654001C17E160CFF81342' +
'310FF0702460720438D010D302291401AA44687801A6F20A14740' +
'4D10116AC28084267E3500883C089F');
end;
if ( CraftingItem > 1 ) then
begin
TanHide := DTMFromString('78DA633CC2C8C0701A889180971B07430A900' +
'689FE0702C6AD40D605543510591809A4F70359D709A8390564DD' +
'20A06627907585809A6D40D649FC6A00239A0E6E');

if ( CraftingItem = 2 ) then // chaps
begin

Creation := DTMFromString('78DA635CC5C8C0200FC4484029D59AE13F900' +
'689FE0702C665409600AA1A882C8C04D24B802C25026A5600593A' +
'04D4AC25C2AE8D409618AA1A03050554351B802C4922D4A8E2570' +
'300FE4B0D6D');
CraftingX:=126;
CraftingY:=230;
end;
if ( CraftingItem = 3 ) then // Gloves
begin

Creation := DTMFromString('78DA633CCFC8C0F08F010584060833FC07D24' +
'01986FF40C07803C862624455C4C0884402E9EB40160B0135C781' +
'2C46026A4E0059BF18F0AB394B580D00C82A0DA1');
CraftingX:=184;
CraftingY:=109;
end;
if ( CraftingItem = 4 ) then // Boots
begin

Creation := DTMFromString('78DA63AC62646090016224E067ACC5F01F488' +
'344FF0301631190A582AA06220B2381741990A541404D25902548' +
'404D03116A407649E2570300D8980938');
CraftingX:=307;
CraftingY:=114;
end;
if ( CraftingItem = 5 ) then // Soft body
begin

Creation := DTMFromString('78DA636C646460F8C380021CED7418FE0369A' +
'00CC37F2060AC01B2D81851153130229140BA1CC86226A0A614C8' +
'FACB4058CD4F026A7A089B03002A150CA2');

CraftingX:=73;
CraftingY:=111;
end;
end;
end;


{======================================================================================}
{ Crafting Procedures }
{======================================================================================}

procedure CraftSelection(x1,y1,x2,y2:Integer);
begin
MouseSpeed := 6+random(2);
Mouse(x1,y1,0,0,true);
wait(20+random(50));
Mouse(x2,y2,0,0,true);
wait(20+random(50));
end;

procedure Craft;
var
RandomRandoms,craftswitch,TimesDone: Integer;
TimeoutCounter:Integer;
begin
if ( CraftingItem = 1 ) then
begin
counter:=0;
if ( CountItemDtm(TanHide) < 26 ) then
begin
TerminatePlayer('Full inventory of hides NOT FOUND');
Exit;
end;
GameTab(4);
repeat
RandomRandoms:=random(10);
craftswitch:=1+random(7);
if ( RandomRandoms = 5 ) then
begin
RandomsAndAntiban;
GameTab(4);
end;
if ( RandomRandoms <> 5 ) then
FindNormalRandoms;
if ( craftswitch = 1 ) then
begin
CraftSelection(711,445,671,443);
end;
if ( craftswitch = 2 ) then
begin
CraftSelection(708,449,666,447);
end;
if ( craftswitch = 3 ) then
begin
CraftSelection(714,437,661,448);
end;
if ( craftswitch = 4 ) then // reverse previous choices
begin
CraftSelection(671,443,711,445);
end;
if ( craftswitch = 5 ) then
begin
CraftSelection(666,447,708,449);
end;
if ( craftswitch = 6 ) then
begin
CraftSelection(661,448,714,437);
end;
if ( craftswitch = 7 ) and (FindDTM(TanHide,x,y,654, 396,684, 421)) then // further increases anti-ban with vertical craft clicking
begin
CraftSelection(711,445,712, 407);
end;
if ( craftswitch = 7 ) and (FindDTM(TanHide,x,y,654, 396,684, 421)) then // further increases anti-ban with vertical craft clicking
begin
CraftSelection(712, 407,711,445);
end;
until( CountItemDtm(TanHide) <=1 )
end;
if ( CraftingItem > 1 ) then
begin
TimesDone:=0;
repeat
wait( 500+random(200));
Mouse(711, 447,1,1,true);
if ( findinvdtm(x,y,TanHide) ) then
begin
Mouse(x,y,3,3,true);
repeat
wait ( 100);
TimeoutCounter:=TimeoutCounter+1;
until ( FindColorTolerance(x,y,65536,476, 31,496, 50,1 )) or ( TimeoutCounter >= 70 )
end;
if ( TimeoutCounter >= 70 ) then
begin
TerminatePlayer('Timedout waiting for craft menu');
Exit;
end;
if ( FindColorTolerance(x,y,65536,476, 31,496, 50,1 )) then
begin
Mouse(CraftingX,CraftingY,8,8,false);
wait(800+random(100));
Mouse(CraftingX-20,CraftingY+57,8,0,true);
end;
wait( 15000+random(600));
TimesDone:=TimesDone+1;
until ( TimesDone >= 3 )
end;
end;
{======================================================================================}
{ Progress Report =) }
{======================================================================================}

procedure PrintMyProgress;// thought it would help with knowing how well this script works =)
begin
ClearDebug;
writeln('Player ' +Players[CurrentPlayer].Name+ ' is currently active');
writeln('You have currently done ' +inttostr(LoadsDoneTotal)+' loads');
writeln('Thank you for using LaNdOnS Hardleather crafter');
DisguiseScar(inttostr(LoadsDoneTotal*26));
end;

{======================================================================================}
{ Main Execution Line }
{======================================================================================}

begin
SetupSRL;
DisguiseScar('LaNdOnS SRL AutoCrafter');
SetVariables;
SetPlayers;
SetDTMs;
PlayerActiveTime:=GetSystemTime;
LoadsDoneTotal:=0;
if ( KillTime > 0 ) then
KillScript(KillTime);
Repeat
MouseSpeed := 11+random(2);
if ( Players[CurrentPlayer].Active = False ) then
begin
InitiateNextPlayer;
end;
if ( Players[CurrentPlayer].loc = 'bank' ) Then
Begin
repeat
if (ready)then
begin
if not(FindDTM(TanHide,x,y,556,211,740,327))then GameTab(4);
if (bankscreen)then
repeat
CloseBankWindow;
MMouse(215,55,50,50);
wait(100+random(50));
until(not(bankscreen));
Craft; // crafts objects
LoadsDone:=LoadsDone+1;
done:=true; // Tells that procedure is done
ready:=false; // Tells that it is no longer ready to craft
end;
If (done)then
begin
MouseSpeed := 11+random(2);
if ( FindCompassAngle > 20 ) and
( FindCompassAngle < 340 ) then
MakeCompass('n');
OpenTheBank(BankCounter,BankTolerance);
repeat
wait ( 100);
until ( Bankscreen )
BankCrafted;
deposited:=true; // Tells that depositing is finished
done:=false; // Falsifies boolean
end;
If (deposited)Then
begin
if (BankScreen)then
begin
MouseSpeed := 11+random(2);
WithdrawAllHides;
CloseBankWindow;
wait(1000+random(400));
end;
ready:=true; // Tells it is ready to craft again
deposited:=false; // No longer needs to deposit
end;
LoadsDoneTotal:=LoadsDone+LoadsDoneTotal;
PrintMyProgress;
until(LoadsDone >= LoadsToDo )
end;
until(false)
writeln('Successfully completed '+inttostr(LoadsDone)+' loads');
writeln('Script Copyright Landon Bowman 2007'); // Until publicly or privately released
end.

WOOOT 550 lines lol. I only ran this script for one complete cycle on crafting chaps, I know the DTMs
are accurate and if it can do one load w/out errors then it can do 100. Tell me if there is any bugs, and
specifically WHAT THE BUGS ARE…. I can't do anything if you just say "Um… It didn't work…" and thats
it. :)

Another notice:

I keep getting no's on my app and nobody is posting why! :(
I accept your decision, but please post your reasons here so that I may improve.

Edit:

Hmm, seems like this threads getting a little inactive. Well if you happen to read this, try out the new version of my crafter ( now supports multiple types ). I believe that it should run fairly smooth, but would like to have input :)

My computer is almost dead just trying to run windows, much less runescape…much less runescape AND scar at the same time …so I can't test right now :|

I'm going to bed now…its 3 am O_O!… i'll be back at like..12..lol
When I get up I can run the script on a faster computer and try to update it…
anyways i'm out :)

EDIT:

Thread is highly inactive now, so I am taking the liberty of totally revamping the script. It, in the end, should have all of the same functions, but code will be smoother and easier to read.

EDIT:

After running my army through tutorial island, and ( not sure if it is mine or the scripts ) the miserable failure of Goblin scheduler, I decided to write a powercutter. Of course it is a good one, I think I get addicted to making it better =|….So far got the cut procedure and dtms….setting failsafes can get time consuming :)

I'll be sure to post that to help my app go through :P

EDIT:

OMG..I finished. I'm tired and my computer is slow so I cannot test any more. I ran it for 10
seconds, and only verified its axehead and findtree procedures worked. I didn't test anything
else, but am confident it works just fine.
I didn't add antiban, not yet at least ( i'll have that after my nap ), but everything else is there. Hope that convinces you guys lol :)


{==============================================================================)

MOSTLY UNTESTED

Only clicking is proven effective

No other tests were conducted with this script


Instructions:

The usual low detail, very bright
Set the player array
Fill in the small setup
Be in a place with alot of trees ( duh )


Credits:

I wrote all of this myself
I was not helped by anyone
However, I would like to thank Yohojo for his DTM tutorial
Other than that, I hold copyright
(at least until public release)

As it is untested, it should not be posted anywhere
Especially not the free section..

~Landon

(==============================================================================}
program SRLPowerCutter;
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/woodcutting.scar}

var

TreeColor1,TreeColor2,TreeColor3,Tolerance: Integer;
UniversalLogDTM,UniversalAxeDTM,WaitTime: Integer;
LogsDropped,PlayerStart,TimePerPlayer:Integer;

procedure SetVariables;
begin
SRLID:='';
SRLPassword:='';
WaitTime:= 25; {Time in seconds between clicks as FailSafe}
EquipAxe:= True; {Is your axe equipped or not?}
TimePerPlayer:=10; {Time to run script per player in minutes}
end;

procedure DeclarePlayers;
begin
{Set player to False if not going to be used}

Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;

Players[1].Name := '';
Players[1].Pass := '';
Players[1].Nick := '';
Players[1].Active := False;

Players[2].Name := '';
Players[2].Pass := '';
Players[2].Nick := '';
Players[2].Active := False;

Players[3].Name := '';
Players[3].Pass := '';
Players[3].Nick := '';
Players[3].Active := False;

Players[4].Name := '';
Players[4].Pass := '';
Players[4].Nick := '';
Players[4].Active := False;

Players[5].Name := '';
Players[5].Pass := '';
Players[5].Nick := '';
Players[5].Active := False;

Players[6].Name := '';
Players[6].Pass := '';
Players[6].Nick := '';
Players[6].Active := False;

Players[7].Name := '';
Players[7].Pass := '';
Players[7].Nick := '';
Players[7].Active := False;
end;

{==============================================================================)
End of Player setup
(==============================================================================}

procedure DeclareDTMs;
begin

UniversalLogDTM :=DTMFromString('78DA63F466626060666440062DA9B60CFF813' +
'448F43F10303A02D5FC6140038C482490B601AAE164C4AFC60DA8' +
'4680809A00A01A1E026AA2806A3808A80905AAF949C0CD5E4035B' +
'FF1AB010028EF0BC5');

UniversalAxeDTM :=DTMFromString('78DA63AC676260F0636440068D897C0CFF813' +
'448F43F10305600D524A3AA81C8C248205D05541346400DC82E4F' +
'026ABA806ABC08A86907AA09C2AF0600BC440AFC');
end;

procedure SetScriptColors;
begin
TreeColor1:=2381896;
TreeColor2:=1728592;
TreeColor3:=5079160;
Tolerance:=5;
NumberOfPlayers(8);
CurrentPlayer:=0;
end;

Function AxeGone: Boolean;
var
TimeOut:Integer;

begin
MarkTime(TimeOut);
repeat
if ( EquipAxe ) then
begin
GameTab(5);
if ( findinvdtm(x,y,UniversalAxeDTM) ) then
Result:=False;
if ( not ( findinvdtm(x,y,UniversalAxeDTM) ) ) then
Result:=True;
end;
if ( not (EquipAxe) ) then
begin
GameTab(4);
if ( findinvdtm(x,y,UniversalAxeDTM) ) then
Result:=False;
if ( not ( findinvdtm(x,y,UniversalAxeDTM) ) ) then
Result:=True;
end;
until ( Result = False ) or ( Result = True ) or ( TimeFromMark(Timeout) >= 15000 )
if ( TimeFromMark(Timeout) >= 15000 ) then
begin
Players[CurrentPlayer].loc:='Timeout -> AxeHead';
writeln('Player ' +Players[CurrentPlayer].Name+ ' Timed out during AxeGone function');
NextPlayer(False);
Exit;
end;
end;

Function FindTree: Boolean;
var
RandomClick: Integer;
Clicked:Integer;
EntTreeColor:Integer;

begin
repeat
RandomClick:= 1 + random(5);
if ( FindMSColorTol(x,y,TreeColor1,Tolerance) ) or
( FindMSColorTol(x,y,TreeColor2,Tolerance) ) or
( FindMSColorTol(x,y,TreeColor3,Tolerance) ) then
begin
MMouse(x,y,4,4);
GetMousePos(x,y);
wait(100+random(100));
if ( IsUpText('hop down') ) then
begin
EntTreeColor:=GetColor(x,y);
if ( RandomClick <> 3 ) then
begin
Mouse(x,y,0,0,false);
if ( ChooseOption(x,y,'hop down') ) then
Result:= True;
end;
if ( RandomClick = 3 ) then
begin
Mouse(x,y,1,1,true);
Result:=True;
end;
MarkTime(Clicked);
end;
if ( FlagPresent ) then Flag;
end;
if (not(LoggedIn)) then Break;
FindTalk;
FindNormalRandoms;
FindEnt(EntTreeColor);
if (AxeGone) then Break;
FindTalk;
until ( InvFull ) or ( TimeFromMark(Clicked) >= WaitTime )
if ( TimeFromMark(Clicked) >= WaitTime ) then
begin
writeln(' Player ' +Players[CurrentPlayer].Name+ ' had too much time between clicking trees');
NextPlayer(false);
Exit;
end;
if ( AxeGone ) then
begin
writeln(' Player ' +Players[CurrentPlayer].Name+ ' lost head of axe');
NextPlayer(false);
Exit;
end;
end;

procedure DropLogsPlease;
begin
GameTab(4);
if ( findinvdtm(x,y,UniversalLogDTM) ) and ( InvFull ) then
begin
repeat
Mouse(x,y,3,3,false);
if ( ChooseOption(x,y,'rop All') ) then
begin
Mouse(x,y,6,1,true);
wait(150+random(150));
LogsDropped:=LogsDropped+1;
end;
until ( not( findinvdtm(x,y,UniversalLogDTM) ) )
end;
end;

procedure PrintMyProgress;
begin
ClearDebug;
writeln('*========================================*');
writeln('* LaNdOnS SRL Powercutter *');
writeln('*========================================*');
writeln('* Working for ' +inttostr(ScriptTime(2))+ ' minutes*');
writeln('* You have cut/drop ' +inttostr(LogsDropped)+ ' logs *');
writeln('*========================================*');
SRLRandomsReport;
end;


begin
SetupSRL;
SetVariables;
SetScriptColors;
DeclareDTMs;
DeclarePlayers;
WaitTime:=WaitTime*1000;
TimePerPlayer:=TimePerPlayer*60000;
repeat
MarkTime(PlayerStart);
repeat
FindTree;
DropLogsPlease;
PrintMyProgress;
if ( not (LoggedIn) ) then Break;
until( TimeFromMark(PlayerStart) >= TimePerPlayer )
if ( not (LoggedIn) ) then
begin
writeln('Player ' +Players[CurrentPlayer].Name+ ' is logged out, removing from player array');
Players[CurrentPlayer].loc := ' Got logged out ';
NextPlayer(false);
end;
if ( LoggedIn ) then
begin
Status('Switching players');
NextPlayer(true);
end;
until (false)
end.

And like I said in there, don't post it anywhere. It isnt finished, I don't want my name on something that might suck and have it posted everywhere.

270 lines in an alpha powerminer…ha

Thanks…ok I gotta go sleep now :)

EDIT:

Ok, I tested the script, it seems that I need a procedure that will find the middle of the tree. I'm working on it
right now, I never made one like it so it'll be interesting :)
I'll get back to you.

WT-Fakawi

2007-03-16 16:33:12

Accepted. Welcome!