SRL Archive - MSI Bugs

Trouble with MSI


PotentPK

2011-07-26 20:43:02

I'm trying to use the powerchopper on MSI. My account logs in and then this happens. Not sure if I'm setting up MSI correctly but I followed the tutorial on it. I am setting it up manually without the form.

Error: Out Of Range at line 922
The following DTMs were not freed: [Bronze Pickaxe, Iron Pickaxe, Steel Pickaxe, Mithril Pickaxe, Adamant Pickaxe, Rune Pickaxe, Dragon Pickaxe, Bronze Hatchet, Iron Hatchet, Steel Hatchet, Mithril Hatchet, Adamant Hatchet, Rune Hatchet, Dragon Hatchet, Normal Logs, Oak Logs, Willow Logs, Maple Logs, Yew Logs, Magic Logs, Clay Ore, Copper Ore, Tin Ore, Iron Ore, Silver Ore, Coal Ore, Gold Ore, Mithril Ore, Adamantite Ore, Runite Ore, Small Fishing Net, Crayfish Cage, Fishing Rod, Fishing Bait, Fly Fishing Rod, Harpoon, Lobster Pot, Raw Shrimps, Raw Crayfish, Raw Sardines, Raw Anchovies, Raw Herring, Raw Trout, Raw Pike, Raw Salmon, Raw Tuna, Raw Lobster, Raw Swordfish, Raw Shark, Cooked Shrimps, Cooked Crayfish, Cooked Sardines, Cooked Anchovies, Cooked Herring, Cooked Trout, Cooked Pike, Cooked Salmon, Cooked Tuna, Cooked Lobster, Cooked Swordfish, Cooked Shark, Uncut Sapphire, Uncut Emerald, Uncut Ruby, Uncut Diamond, Bird'S Nest, Feather, Staff Of Air, Staff Of Water, Staff Of Earth, Staff Of Fire, Air Rune, Body Rune, Mind Rune, Earth Rune, Fire Rune, Water Rune, Chaos Rune, Law Rune, Cosmic Rune, Death Rune, Nature Rune, Soft Clay, Vial, Vial Of Water, Jug, Jug Of Water, Bowl, Bowl Of Water, Bucket, Bucket Of Water, Bronze Bar, Iron Bar, Silver Bar, Steel Bar, Gold Bar, Mithril Bar, Adamant Bar, Rune Bar, SRL - Lamp bitmap, 100]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap]
File[C:\Simba\Includes\MSI\Debug Logs\27-07-11 at 12 26 42 AM.txt] has not been freed in the script, freeing it now.

NCDS

2011-07-26 21:03:15

What file pops up when the error occurs? Also, post your setup and that may help.

PotentPK

2011-07-26 21:32:10

From: NCDS
What file pops up when the error occurs? Also, post your setup and that may help.


Nothing pops up my account just sits there. All I need to edit is the RunMe.simba correct?

(*
RunMe
=====

The RunMe file is the file that the user will actually run. It doesn't matter
whether they're using the form or not, they still have to run this file. If
not using the form, the user should only change the DeclareSettings and
DeclarePlayers procedures.

The source for can be found
`here <https://github.com/SRL/MSI/raw/master/RunMe.simba>`_, and a very detailed
guide on how to properly setup MSI can be found here
`here <http://villavu.com/forum/showthread.php?p=745942#post745942>`_ if you are
having trouble setting up.

*)

program MSI_Script;
// Define the extras you want to use
{$DEFINE EXTRA_CHARACTER_STATS} // Saves each players stats to a file viewable in HTML format

// Define other settings
//{$DEFINE SPS} // Uncomment + select color walking to use SPS (color walking)
{$DEFINE SMART} // Comment to use MSI with a browser. Reflection will be disabled if commented.
{$DEFINE MSI_REFLECTION} // Comment to completely exclude the use of Reflection

{ ============================================================================ }
{$i MSI/MSI/Core/Setup.simba}

const
USE_FORM = False;

(*
DeclareSettings
~~~~~~~~~~~~~~~

.. code-block:: pascal

procedure DeclareSettings();

Sets the global variable 'MSI_Settings.' Can be easily expandable to any type
of setting requested by any user.

*)
procedure DeclareSettings();
begin
MSI_Settings[SETUP_DEBUG_SMART] := True; // Debugs things onto SMART (may cause lag)
MSI_Settings[SETUP_SAVE_DEBUG] := True; // Save's the debug box text to a file
MSI_Settings[SETUP_SAVE_REPORT] := True; // Save's the progress report to a file
MSI_Settings[SETUP_HUMAN_BREAK] := True; // Take more human like breaks
MSI_Settings[SETUP_SWITCH_WORLDS] := True; // Switch worlds when switching players or after breaks
MSI_Settings[SETUP_PRINT_REPORT] := True; // Will only print the short report in the debug box (will still save long report to file)
MSI_Settings[SETUP_BREAK_TIME] := 15; // Single player only - how long to break for (in minutes)
MSI_Settings[SETUP_DEBUG_LEVEL] := 10; // The lower the number, the less the script will debug
MSI_Settings[SETUP_ANTIBAN_WAIT] := 15000; // Minimum time to wait between antibans (in milliseconds 1000ms = 1s)
MSI_Settings[SETUP_RANDOMS_WAIT] := 10000; // Minimum time to wait between randoms checks
MSI_Settings[SETUP_STATS_ID] := ''; // Stats ID
MSI_Settings[SETUP_STATS_PASS] := ''; // Stats password
MSI_Settings[SETUP_WALKING] := 'Color'; // 'Reflection' or 'Color'
end;

(*
DeclarePlayers
~~~~~~~~~~~~~~

.. code-block:: pascal

procedure DeclarePlayers();

When called, sets the global variable 'MSI_Players.' This is the procedure
the user needs to setup if they elect not to use the player form.

*)
procedure DeclarePlayers();
var
i: Integer;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
SetLength(MSI_Players, HowManyPlayers);

for i := 0 to High(MSI_Players) do
SetLength(MSI_Players.Scripts, 100);

CurrentPlayer := 0;
CurrentScript := 10;

with MSI_Players[0] do
begin
Name := '***@***.com'; // Username
Pass := '*******'; // Password
Pin := ''; // Bank pin; leave as '' if player doesn't have one
Active := True; // Use this player?
Member := False; // Is this player a member?
BreakLoads := 0; // Amount of loads before breaking/switching players; leave 0 to not take breaks
BreakTime := 0; // Amount of time (in minutes) before breaking/witching; leave 0 to not take breaks
TotalLoads := 0; // Total loads for the player to do; leave 0 if using TotalTime or to go forever
TotalTime := 0; // How long for the player to run? (in minutes); leave 0 if using TotalLoads or go forever

with Scripts[0] do
begin
end;
end;
{
with MSI_Players[1] do
begin
Name := '';
Pass := '';
Pin := '';
Active := True;
Member := False;
BreakLoads := 0;
BreakTime := 0;
TotalLoads := 0;
TotalTime := 0;

with Scripts[0] do
begin
end;
end;

with MSI_Players[2] do
begin
Name := '';
Pass := '';
Pin := '';
Active := True;
Member := False;
BreakLoads := ;
BreakTime := ;
TotalLoads := ;
TotalTime := ;

with Scripts[0] do
begin
end;
end;

with MSI_Players[3] do
begin
Name := '';
Pass := '';
Pin := '';
Active := True;
Member := False;
BreakLoads := ;
BreakTime := ;
TotalLoads := ;
TotalTime := ;

with Scripts[0] do
begin
end;
end;

with MSI_Players[4] do
begin
Name := '';
Pass := '';
Pin := '';
Active := True;
Member := False;
BreakLoads := ;
BreakTime := ;
TotalLoads := ;
TotalTime := ;

with Scripts[0] do
begin
end;
end;

with MSI_Players[5] do
begin
Name := '';
Pass := '';
Pin := '';
Active := True;
Member := False;
BreakLoads := ;
BreakTime := ;
TotalLoads := ;
TotalTime := ;

with Scripts[0] do
begin
end;
end;

with MSI_Players[6] do
begin
Name := '';
Pass := '';
Pin := '';
Active := True;
Member := False;
BreakLoads := ;
BreakTime := ;
TotalLoads := ;
TotalTime := ;

with Scripts[0] do
begin
end;
end;

with MSI_Players[7] do
begin
Name := '';
Pass := '';
Pin := '';
Active := True;
Member := False;
BreakLoads := ;
BreakTime := ;
TotalLoads := ;
TotalTime := ;

with Scripts[0] do
begin
end;
end;
}
end;

var
i: integer;
begin
// set the script start date and time used to progress reports and logs
ScriptStart := TheDate(DATE_DAY) + ' at ' + TheTime;
ScriptStart := Replace(scriptStart, ':', ' ');

ClearDebug;
MSI_Setup;

// initilize form if selected, otherwise call player setup routines
if (USE_FORM) then
begin
try
try
ThreadSafeCallEx('ShowMSIForm');
finally
ThreadSafeCallEx('FreeMSIForm');
end;
except
Writeln(ExceptionToString(ExceptionType, ExceptionParam));
end;

HowManyPlayers := Length(MSI_Players);
NumberOfPlayers(HowManyPlayers);

for i := 0 to High(MSI_Players) do
SetLength(MSI_Players.Scripts, 100);

if (not ScriptReady) then
TerminateScript;
end else begin
DeclareSettings;
DeclarePlayers;
end;

// initialize SMART and clear it's canvas
{$IFDEF SMART}
SMART_Server := 152;
SMART_Members := False;
SMART_Signed := False;
SMART_SuperDetail := False;
{$ENDIF}

SetupSRL;
ActivateClient;
CurrDebugLevel := 1;
MSI_InitSRLPlayers();
SetScriptProp(SP_WriteTimeStamp, [True]);
AddOnTerminate('MSI_ScriptTerminate');

{$IFDEF SMART}
SMART_SetupDebug();
clearRSCanvas(SMART_Canvas.canvas);
{$ENDIF}

// create debug file
if (MSI_Settings[SETUP_SAVE_DEBUG]) then
DebugFile := CreateFile(PATH_DEBUG + ScriptStart + '.txt');

if (MSI_Settings[SETUP_STATS_ID] = '') then
SetupSRLStats(21, 'Anonymous', 'anon1337')
else
SetupSRLStats(21, MSI_Settings[SETUP_STATS_ID], MSI_Settings[SETUP_STATS_PASS]);

MSI_CheckDefines();
if (not ReflectionBroken) then
MSI_SetupReflection();

// this boolean isn't yet in the player form
if (USE_FORM) then
MSI_Settings[SETUP_PRINT_REPORT] := True;

MSI_Mainloop;
end.

AaAaAaAaA

2011-07-26 21:43:48

I had that same problem. Re-start your computer, then restart simba and click update on all of the items (MSI,Reflection,SRL) even if they have been updated. Then you can run the script again. It will work. IF it happens again, close and reopen simba till it works.

This is the only solution I've found right now.

PotentPK

2011-07-26 21:49:22

From: AaAaAaAaA
I had that same problem. Re-start your computer, then restart simba and click update on all of the items (MSI,Reflection,SRL) even if they have been updated. Then you can run the script again. It will work. IF it happens again, close and reopen simba till it works.

This is the only solution I've found right now.


Thanks I'll tell you how it goes.

No luck. I also forgot to mention that Locations.simba opens in a new tab and mentions something about line 922.

begin
if (not LoggedIn) then
Exit;

MSI_AddHeader('MSI_SetPlayerLoc');

Script := MSI_Scripts[MSI_Players[CurrentPlayer].Scripts[CurrentScript].Name]; *THIS LINE
SetLength(locArr, 2);
locArr[0] := Script.PathInfo.StartLoc;
locArr[1] := Script.PathInfo.EndLoc;


The thing is I'm not using a set location and it for some reason shows this. When I used the form it said the location was unnecessary. Reason I don't want to use the form is that I want to use the script(to save) and run more than 1 bot at once. I didn't see an option on the form to use the unsigned client.

NCDS

2011-07-26 22:16:40

You never assign a script in your setup.

Change

with Scripts[0] do
begin
end;
To

with Scripts[0] do
begin
Name := SCRIPT_POWER_CHOP;
end;

PotentPK

2011-07-26 22:21:59

From: NCDS
You never assign a script in your setup.

Change

with Scripts[0] do
begin
end;
To

with Scripts[0] do
begin
Name := SCRIPT_POWER_CHOP;
end;


Thanks! That fixed it for me =)

I'm still a noob but hopefully I'll get better.