Hello there, Kb!
First of all, a very well written first script, I really <3 your standards, well done! They are off at some places, but it's still a nice start!
A few things I noticed:
Code:
{$IfDef Reflection}
R_FindRandoms;
{$EndIf}
You can remove these, we no longer use reflection.
Code:
program kbPowerMaples;
{$DEFINE SMART}
{$I srl/srl.simba}
const
{---SMART Setup Constants---}
WORLD = 0; // Set a world, if you'd like. Leave 0 to choose a random world.
MEMBERS = False; // Are you Members or Free-To-Play? False for F2P, True for P2P.
SIGNED = True; // True if running a single account, false otherwise.
{---------------------------}
{--------Script Info--------}//DON'T CHANGE
Author = 'kbScripts and KeepBotting';
Name = 'kbPowerMaples';
Version = '0.9';
{---------------------------}//DON'T CHANGE
procedure DeclarePlayers; //This declares the players to be used in the script.
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //Your Runescape username
Players[0].Pass := ''; //Your Runescape password
Players[0].Nick := ''; //3 or 4 lowercase letters from your Runescape username. Used as a Nickname.
Players[0].Active := True; //Set to true if you want to use this player. Set to False to disable this player.
Players[0].Pin := ''; //Leave blank if the player doesn't have a Bank PIN.
end;
procedure SetupScript; //This is almost purely cosmetic, it lets you know what procedures/functions are being activated when the script starts.
begin;
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn('Welcome to kbPowerMaples by kbScripts and KeepBotting!');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn('Initilizing DeclarePlayers procedure...');
wait(500);
WriteLn('Successful!');
WriteLn('Initilizing LoginPlayer procedure...');
wait(500);
WriteLn('Successful!');
WriteLn('Initilizing ChopTree procedure...');
wait(500);
WriteLn('Successful!');
WriteLn('Initilizing AntiBan procedure...');
wait(500);
WriteLn('Successful!');
WriteLn('All procedures initilized successfully! Happy botting!');
end;
procedure AntiBan; //This keeps the banhammah from striking.
begin
if (not (LoggedIn)) then
Exit;
FindNormalRandoms;
case Random(4) of
0:
begin
WriteLn('AntiBan chosen: Hover Skill.');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
HoverSkill('Woodcutting', false); //This hovers your mouse over the Woodcutting skill.
wait(2453 + Random(432));
end;
1:
begin;
WriteLn('AntiBan chosen: Pick Up Mouse.');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
PickUpMouse; //This simulates a human picking the mouse up off the mouse pad, then setting it back down.
end;
2:
begin
Wait(10000)
end;
end;
end;
procedure DropLogs;
var
i: integer;
begin
for i := 2 to 3 do
begin
DropPattern(Random(3) + 1);
if InvCount = 1 then
break;
end;
end;
procedure AntiRandoms; //This is currently broken (as Reflection does not work) but it would solve Random Events if it worked.
begin
{$IFDEF Reflection}
R_FindRandoms;
{$ENDIF}
FindNormalRandoms;
end;
procedure ChopTree; //This chops your trees.
var
x, y: integer;
begin
repeat
FindNormalRandoms;
ToggleXPBar(true);
WriteLn('ChopTree procedure activated! Finding tree.');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
if FindObj(x, y, 'aple', 3621734, 35) then //This finds the object, records the X and Y values, and tells the script to find the option "Tree".
begin
WriteLn('Tree found! Clicking option.');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
Mouse(x, y, 0, 0, true);
ChooseOption('aple'); //This tells the script to left-click on the object and select "Maple".
end;
repeat //This is a repeat function. It repeats the steps above.
wait(400 + random(250));
AntiBan;
until not IsUpText('aple') or (InvFull); //This is an Until function. It stops the repeat function if the tree has been chopped or your inventory is full.
until (InvFull); //This tells the script to stop completely once your inventory is full.
end;
begin
Smart_Server := WORLD; //This sets up the SMART Minimizing Autoing Resource Thing.
Smart_Members := MEMBERS;
Smart_Signed := SIGNED;
Smart_SuperDetail := False;
SetupSRL; //This sets up SRL.
SetupScript; //This runs your SetupScript procedure, initilizing all of the procedures.
DeclarePlayers; //This runs your DeclarePlayers procedure, making sure that the script has a player to run.
LoginPlayer; //This logs in your player.
repeat //This is the start of the ChopTree procedure loop.
ChopTree; //Chops your trees.
DropLogs; //This drops your logs.
AntiBan; //Runs your AntiBans.
//Notice that AntiRandoms isn't in here. It would be useless to include because Reflection is currently broken.
until AllPlayersInactive; //This stops the script completely once your player has failed. e.g. Gotten into a random event, died (unlikely) or failed to find a tree.
end.
Here, I fixed your standards as well, hope you learn from these and helps you keep motivated!

You had some missing semicolons as well, added them there!
Code:
ChooseOption('aple'); //This tells the script to left-click on the object and select "Maple".
I don't see what is this line for? You can use ChooseOption only when you have right-clicked something and you have the ChooseOption dialog open. But you did a left click before it..
Code:
repeat //This is a repeat function. It repeats the steps above.
wait(400+random(250));
AntiBan;
Until not IsUpText('aple') or (InvFull);
This doesn't look good.
Let's say it you have 2 maples left of you. It will click the nearest, but the mouse stays still and when you move closer to the tree, it will then be hovering over the other maple. And what if there are no other cutters? Your script will then run into an infinite loop. You should look into:
Code:
MarkTime();
//and
TimeFromMark();
These will help you to prevent infinite loops, it's a failsafe.
Code:
until AllPlayersInactive;
You don't set your player(s) inactive ever in this script, do you? Only randoms can brake it right now. I suggest adding more failsaves.
Other than that, well done, a nice first script! Keep it up!
~Eerik.