Results 1 to 4 of 4

Thread: Invalid number of parameters at line 292 Compiling failed.

  1. #1
    Join Date
    Mar 2012
    Posts
    10
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default Invalid number of parameters at line 292 Compiling failed.

    Hey guys. I can't seem to get any of the 2007 bots to work.
    I've installed everything, all of the includes, etc.
    When I try to load the 2007 pest control bot, it says this:

    [Error] C:\Simba\Includes\SRL/SRL/misc/SmartParams.Simba(293:131): Invalid number of parameters at line 292
    Compiling failed.

    The entire thing says this:

    (*
    Smart Params
    ============

    .. contents::

    *)

    {$DEFINE SRL_SMART}
    {$DEFINE SMART}
    {$loadlib libsmartremote}

    (*
    GetSmartParams
    ~~~~~~~~~~~~~~

    .. code-block:: pascal

    function GetSmartParams: TStringArray;

    Grabs The Correct Parameters For passing to the SmartClient.

    .. note::

    By: Brandon.
    Modified By: Mormanman, Benland100.

    Example:

    .. code-block:: pascal

    *)
    function GetSmartParams: TStringArray;
    var
    Params: TStringArray;
    Page: String;
    begin
    Page := 'http://oldschool33.runescape.com/,j1';
    Params := Explode(',', Page);
    Result := Params;
    end;

    (*
    FixSmartSpeed
    ~~~~~~~~~~~~~

    .. code-block:: pascal

    procedure FixSmartSpeed;

    Fixes Smart's Loading Speed.
    Moves the Mouse & Adjusting the Canvas Refresh rate.

    .. note::

    By: Brandon.

    Example:

    .. code-block:: pascal

    *)
    procedure FixSmartSpeed;
    var
    T: Integer;
    begin
    T:= GetSystemTime + 2000;
    While (Not SmartEnabled) Do
    begin
    if (GetSystemTime >= T) Then
    Break;
    Wait(500);
    end;

    While (GetColor(382, 252) = 0) Do
    begin
    If RSReady then
    Break;
    SmartSetRefresh(SmartGetRefresh + 1);
    MMouse(4, 4, 0, 0);
    SmartSetRefresh(SmartGetRefresh - 1);
    if (GetSystemTime >= T) Then
    Break;
    Wait(500);
    end;
    end;

    (*
    SmartGetClientIDs
    ~~~~~~~~~~~~~~~~~

    .. code-block:: pascal

    function SmartGetClientIDs: TIntegerArray;

    Grabs All Client ID's of the current remote.

    .. note::

    By: Mormanman.

    Example:

    .. code-block:: pascal

    *)
    function SmartGetClientIDs: TIntegerArray;
    var
    I, Count: Integer;
    begin
    Count := SmartGetClients(True);
    SetLength(Result, Count);
    If (Count > 0) then
    For I:= 0 to (Count - 1) do
    Result[I] := SmartClientID(I);
    end;

    (*
    SmartKillClients
    ~~~~~~~~~~~~~~~~

    .. code-block:: pascal

    procedure SmartKillClients;

    Kills all Smart clients.

    .. note::

    By: Mormanman.

    Example:

    .. code-block:: pascal

    *)
    procedure SmartKillClients;
    var
    IDs: TIntegerArray;
    I: Integer;
    begin
    IDs := SmartGetClientIDs;
    For I := High(IDs) DownTo 0 Do
    If SmartKillClient(IDs[I]) Then
    Writeln('Killed Client: ' + ToStr(IDs[I]))
    else
    Writeln('Failed To Kill Client: ' + ToStr(IDs[I]));
    end;

    (*
    SixHourFix
    ~~~~~~~~~~

    .. code-block:: pascal

    procedure SixHourFix;

    Kills The Current Smart Client and Restarts it.
    Fixes the 6 hour login.

    .. note::

    By: Brandon.

    Example:

    .. code-block:: pascal

    *)
    procedure FreeSRL; Forward;
    procedure SetupSRL; Forward;
    procedure SixHourFix;
    var
    Trash: TVariantArray;
    Refresh: Integer;
    begin
    FreeSRL;
    Refresh := SmartGetRefresh;
    SmartKillClient(SmartCurrentClient);
    SetupSRL;

    try
    CallProc('SMART_FreeDebug', Trash);
    CallProc('SMART_SetupDebug', Trash);
    except
    end;

    SmartSetRefresh(Refresh);

    try
    if (not LoginPlayer) then
    srl_Warn('SixHourFix', 'Could not log in player', warn_Terminate);
    except
    srl_Warn('SixHourFix', 'Players not declared', warn_Terminate);
    end;
    end;


    (*
    PairSmart
    ~~~~~~~~~

    .. code-block:: pascal

    function PairSmart(ID: Integer): Boolean;

    Pairs A Client To The Current Controller.

    .. note::

    By: Benland100, Brandon.

    Example:

    .. code-block:: pascal

    *)
    function PairSmart(ID: Integer): Boolean;
    var
    I, Count: Integer;
    IDs: TIntegerArray;
    begin
    IDs := SmartGetClientIDs;
    Count := Length(IDs);
    If (Count > 0) then
    For I:= 0 To (Count - 1) Do
    If (IDs[I] = ID) and SmartPairClient(ID) then
    begin
    SetEIOSTarget('libsmartremote', ToStr(ID));
    Writeln('Paired with SMART[' + ToStr(ID) + ']');
    Result := True;
    Exit;
    end;
    Writeln('** Failed To Pair Client: ' + ToStr(ID) + '; Client Does Not exist **');
    end;

    (*
    InitSmart
    ~~~~~~~~~

    .. code-block:: pascal

    function InitSmart(ForceNew: Boolean): Integer;

    Initializes A Smart Remote Client.
    Terminates the current script upon failure.
    Terminates all clients of the current remote upon failure.
    ForceNew Creates a new client.

    .. note::

    By: Benland100, Mormanman, Brandon.

    Example:

    .. code-block:: pascal

    *)
    function InitSmart(ForceNew: Boolean): Integer;
    var
    I, Count: Integer;
    IDs: TIntegerArray;
    Params: TStringArray;
    begin
    If (Not ForceNew) then
    begin
    Ids := SmartGetClientIDs;
    Count := Length(IDs);
    If (Count > 0) then
    For I:= 0 To (Count - 1) Do
    begin
    If SmartPairClient(IDs[I]) then
    begin
    Result := IDs[I];
    SetEIOSTarget('libsmartremote', ToStr(Result));
    Writeln('Paired with SMART[' + ToStr(Result) + ']');
    Exit;
    end;
    end;
    end;

    Params := GetSmartParams;
    If (Length(Params) <> 2) then
    begin
    Writeln('** Failed To Grab Smart Parameters **');
    Writeln('** Please check your internet connection/firewall **');
    TerminateScript;
    Exit;
    end;

    {$IFDEF SMART8}
    Result := SmartSpawnClient(ReplaceWrap(PluginPath, '\', '/', [rfReplaceAll]), Params[0], ',' + Params[1], 765, 503, 's', '', '');
    {$ELSE} (this is line 292)
    Result := SmartSpawnClient(ReplaceWrap(PluginPath, '\', '/', [rfReplaceAll]), Params[0], ',' + Params[1], 765, 503, 's', '', '', -1);
    {$ENDIF}

    If (Result > 0) Then
    begin
    try
    SetEIOSTarget('libsmartremote', ToStr(Result));
    Writeln('Loading SMART: ' + Params[0] + Params[1]);
    except
    WriteLn('** Fatal Error: Pairing Clients; Terminating Script **');
    TerminateScript;
    end;
    end else
    begin
    Writeln('** Smart Cannot Spawn Clients **');
    TerminateScript;
    end;
    end;

    (*
    SetupSmart
    ~~~~~~~~~~

    .. code-block:: pascal

    procedure SetupSmart(ForceNewClient: Boolean);

    Sets Up a new Smart Client and waits until it's on screen.
    Terminates The current script upon failure.

    .. note::

    By: Mormanman.
    Modified By: Brandon.

    Example:

    .. code-block:: pascal

    *)
    procedure SetupSmart(ForceNewClient: Boolean);
    var
    T: Integer;
    begin
    T:= GetSystemTime + 120000;
    Smart_CurrentClient:= InitSmart(ForceNewClient);
    if (Smart_CurrentClient <= 0) then
    begin
    writeln('*** Smart Failed To Load ***');
    TerminateScript;
    end;

    if (SRL_SixHourFix) then
    SRL_Procs[SRL_OnRSUpdate]:= @SixHourFix;

    While (GetColor(382, 252) <> 0) Do
    begin
    if RSReady then
    break;

    Wait(100);
    if (GetTimeRunning >= 120000) then
    begin
    Writeln('*** Failed To Detect Clients ***');
    TerminateScript;
    end;
    end;
    end;





    {* Functions Below Here are From the Original Smart.Simba *}


    {*
    By: Unknown Author.
    Finds a Windows by partial title and Sets it as the target.
    *}
    function FindAndSetTarget(TitlePrefix: String; SetAsTarget: Boolean): Boolean;
    var
    T : TSysProcArr;
    I : Integer;
    begin
    T := GetProcesses;
    for I := High(T) downto 0 do
    if Pos(TitlePrefix, T[I].Title) <> 0 then
    begin
    Result := True;
    if SetAsTarget then SetTarget(T[I]);
    Exit;
    end;
    end;

    {*
    By: Unknown Author.
    Gets the position of the actual mouse (Not Smart's Mouse).
    *}
    procedure GetRealMousePos(var X, Y : Integer);
    var
    KMTarget, ITarget: Integer;
    begin
    {$IFDEF LAPE}
    writeln('GetRealMousePos not implemented yet in SRL-5 Lape!');
    TerminateScript;
    {$ELSE}
    KMTarget := GetKeyMouseTarget;
    ITarget := GetImageTarget;
    FindAndSetTarget('SMART', True);
    GetTClient.IOManager.GetMousePos(X, Y);
    FreeTarget(GetImageTarget);
    SetKeyMouseTarget(KMTarget);
    SetImageTarget(ITarget);

    // These are not universial offsets, but works somewhat for some Windows themes.
    X := X - 8;
    Y := Y - 25;
    {$ENDIF}
    end;

    {*
    By: Unknown Author.
    Returns if the "Real Mouse" (Not Smart's Mouse) Is Within a given Box.
    *}
    function IsRealMouseInBox(B : TBox): Boolean;
    var
    P : TPoint;
    begin
    GetRealMousePos(P.X, P.Y);
    Result := PointInBox(P, B);
    end;

    So uhh. What do I do?

  2. #2
    Join Date
    Mar 2007
    Posts
    5,125
    Mentioned
    275 Post(s)
    Quoted
    901 Post(s)

    Default

    Make sure you have the SMART8 plugin and make sure you have {$DEFINE SMART8} at the top of the script

    Forum account issues? Please send me a PM

  3. #3
    Join Date
    Feb 2012
    Posts
    20
    Mentioned
    0 Post(s)
    Quoted
    10 Post(s)

    Default

    I have the same error I followed Yoho's guide and put 8 infront of the smart? Plz help

  4. #4
    Join Date
    Mar 2013
    Posts
    14
    Mentioned
    0 Post(s)
    Quoted
    3 Post(s)

    Default

    Quote Originally Posted by azaghul View Post
    I have the same error I followed Yoho's guide and put 8 infront of the smart? Plz help
    SMART is completely acting up for me at the moment. If there's a script you'd like to use, just remove the {$define SMART} at the top of the script and add ActivateClient; to the main loop. Then use the green crosshairs to target your browser with Runescape open.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •