I've got some time before I leave for school so I'll build on Ross's code a bit.
To flesh it out a bit more:
program scriptSkeleton;
{$define smart}
{$i srl-6/srl.simba}
{$i sps/lib/sps-rs3.simba}
{$define debug_on}
///////////////////////////////////Start setting up the script here. Refer to the comments if you don't know what you're doing.
///////////////////////////////////
/////// Start Setup ///////
///////////////////////////////////
///////////////////////////////////Start setting up the script here. Refer to the comments if you don't know what you're doing.
const
(* player info *)
playerName = ['']; //Put your player's name (or nickname, if you set one) here.
playerFile = 'default'; //Put your playerfile's name here. Default is 'default'.
desiredWorld = 0; //Enter your desired world number here.
(* globals *)
(* options *)
///////////////////////////////////Don't modify the script ANY FURTHER unless you know what you're doing. You could break stuff!
///////////////////////////////////
/////// Stop Setup ///////
///////////////////////////////////
///////////////////////////////////Don't modify the script ANY FURTHER unless you know what you're doing. You could break stuff!
var
placeHolder:integer;
procedure writeDebug(text:string);
begin
{$IFDEF debug_on}
writeLn('[DEBUG] : ' + text);
{$ENDIF}
end;
procedure writeWarn(text:string);
begin
{$IFDEF debug_on}
writeln('');
writeLn('[WARNING] : ' + text);
writeln('');
{$ENDIF}
end;
procedure writeError(text:string);
begin
{$IFDEF debug_on}
writeln('');
writeLn('[ERROR] : ' + text);
writeln('');
{$ENDIF}
end;
procedure initScript();
var
i:integer;
begin
clearDebug();
addOnTerminate('stop');
smartEnableDrawing := true;
smartShowConsole := false;
smartPlugins := ['opengl32.dll', 'd3d9.dll'];
writeDebug('Spawning SMART client...');
setupSrl();
disableSrlDebug := true;
players.setup(playerName, playerFile);
currentPlayer := 0;
for i := 0 to high(players) do
begin
players[i].world := desiredWorld;
players[i].isActive := true;
writeDebug('Logging in...');
end;
begin
if (not players[currentPlayer].login()) then
exit;
exitTreasure();
writeDebug('Setup complete - player is logged in.');
end;
end;
procedure initPlayer();
begin
writeDebug('Setting camera.');
minimap.clickCompass;
minimap.setAngle(MS_ANGLE_HIGH);
writeDebug('Setting run.');
if not (minimap.isRunEnabled()) then
minimap.toggleRun(true);
writeDebug('Setting gametab.');
if (not gameTabs.isTabActive(TAB_BACKPACK)) then
gameTabs.openTab(TAB_BACKPACK);
end;
procedure stop(); //hammer time
begin
writeWarn('*** Terminating script ***');
if isLoggedIn() then
writeDebug('Logging out');
players[currentPlayer].logout();
writeDebug('Freeing BMPs');
writeDebug('Freeing DTMs');
writeWarn('*** Terminated script ***');
end;
begin
initScript();
initPlayer();
end.
That snippet will start SMART, log you in, and run some basic init routines.
As far as your questions; signing in all of your accounts depends on how you write the script - namely, whether or not you decide to include multiplayer handling. If yes, it's as easy as declaring more than one playerName.
If no, you'll have to run separate instances which can be achieved by opening a separate Simba tab/window and starting a new script.