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
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.
I'm trying to keep the new scripts up top as well for your convienence.
——————————————————
<!– END 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 –>