SRL Archive - OSR Help

Having some Problems executing commands and functions


melkoo

2013-03-10 11:06:38

Hopefully I can get some more help!

I am following this guide:

[video=youtube_share;qfumZWrm_DE]http://youtu.be/qfumZWrm_DE[/video]


program PowerChopper;
//{$DEFINE SMART8}
{$i SRL\SRL.simba}

Const
SRLStats_Username = '';// Your SRL Stats Username
SRLSTats_Password = '';// Your SRL Stats Password
BreakEvery = 120; //How many minutes to break after
Breakfor = 5; //How long to break for
Version = '1.0';
NumbOfPlayers = 1; //How many players you are using
StartPlayer = 0; //Player to start auting with (0 means first char)

Procedure DeclarePlayers;
var i:integer;
begin
NumberOfPLayers(NumbOfPlayers);
CurrentPLayer := StartPlayer;
for i := 0 to NumbOfPlayers-1 do
Players[i].BoxRewards := ['mote', 'ostume', 'XP', 'Gem', 'ithril', 'oal', 'une', 'oins'];

with Players[0] do
begin
Name := ''; //Player username.
Pass := ''; //Player Password.
Active := True;
Integers[1] := 4; //1=BrightCopper, 2=DarkCopper, 3=Tin, 4=Iron.
Integers[2] := 4; //Seconds to try mining rock before clicking another.
end;
end;

Procedure StatsGuise(wat:String);
Begin
Status(wat);
Disguise(wat);
end;

Function CheckAndClick(UpText, Option:String; X,Y:Integer; RClick:Boolean) :Boolean;
Begin
MMouse (x, y, 5, 5);
If WaitUptext (UpText, 1500+Random(500)) Then
Begin
Result:=True;
GetMousePos (x, y);
If RClick Then
Begin
Mouse (x, y, 0, 0, False);
Result := WaitOption (Option, 2000);
If Result then FFlag (0);
End Else
Begin
Mouse (x, y, 0, 0, True);
Wait (100+Random(50));
FFlag(0);
End;
End;
End;

Procedure Antiban;
Begin
Case Random(250) of
0: Begin StatsGuise ('AntiBan') Gametab(tab_Stats) Hoverskill('Woodcut', False) GameTab(28) End;
1: Begin StatsGuise ('AntiBan') SleepAndMoveMouse(7000 + Random(500)); End;
2: Begin StatsGuise ('AntiBan') GameTab (tab_Inv) ExamineInv; GameTab(28) End;
3: Begin StatsGuise ('Antiban') RandomAngle (1); End;
4: Begin StatsGuise ('Antiban') GameTab (Tab_Stats); Wait(3000 + Random(500)); GameTab (28); End;
5: Begin StatsGuise ('Antiban') GameTab(Tab_Stats); HoverSkill ('Random', False); GameTab (28); End;
End;
End;

Procedure Failsafe(Reason:String);
Begin
Players[CurrentPlayer].Loc:=Reason;
Logout;
Stats_Commit;
//ProgressReport;
TerminateScript;
End;

Function Chopdown:Boolean;
Var
X, Y, PlusOne, Treecounter: Integer;
Begin
PlusOne:= InvCount + 1;
If FindObjCustom(X, Y, ['Chop', 'Down', 'p' ,'d'], [3627896, 3166827, 3627896, 1454376, 269596, 2044719 ], 10) Then
Begin
StatsGuise('This is the start of something Great!');
GetMousePos(X, Y);
Case Random(1) of
0: Mouse(x, y, 5, 5, True);
1: Begin
Mouse(x, y, 5, 5, False);
WaitOption('Chop', 500);
End;
End;

Repeat
MarkTime(TreeCounter);
Antiban;
Wait(100);
If InvCount=Plusone Then
WriteLn('We got one');
Until (InvCount=Plusone) or (TimeFromMark(TreeCounter) > 7000)
End;
end;


begin
SetupSRL;
DeclarePlayers;
SetAngle(SRL_ANGLE_LOW);
//Repeat
ChopDown
//Until(False);
end.


My first problem is the

SetAngle(SRL_ANGLE_LOW); It does not put the angle all the way down when I execute the script. I orignally tried using SetAngle(False); But then I get this compiling error

[Error] C:\Simba\Scripts\powerchopper.simba(112:17): Type mismatch at line 111
Compiling failed.

Also when I try to get it to write "We got one" using the WriteLn command nothing gets written.

Another problem is that when

Case Random(1) of
0: Mouse(x, y, 5, 5, True);
1: Begin
Mouse(x, y, 5, 5, False);
WaitOption('Chop', 500);
End;
End;

if It chooses the 1 instead of 0 it does not click Chop Down it just opens up the drop down menu (From when you rightclick in runescape) but dosnt do anything



Function Chopdown:Boolean;
Var
X, Y, PlusOne, Treecounter: Integer;
Begin
PlusOne:= InvCount + 1;
If FindObjCustom(X, Y, ['Chop', 'Down', 'p' ,'d'], [3627896, 3166827, 3627896, 1454376, 269596, 2044719 ], 10) Then
Begin
StatsGuise('This is the start of something Great!');
GetMousePos(X, Y);
Case Random(1) of
0: Mouse(x, y, 5, 5, True);
1: Begin
Mouse(x, y, 5, 5, False);
WaitOption('Chop', 500);
End;
End;

Repeat
MarkTime(TreeCounter);
Antiban;
Wait(100);
If InvCount=Plusone Then
WriteLn('We got one');
Until (InvCount=Plusone) or (TimeFromMark(TreeCounter) > 7000)
End;
end;

Runehack123

2013-03-10 11:10:26

Okay here is my answer (again)…
You need ChooseOption not WaitOption. I would use 'hop' not 'Chop' since the capital letters at the start are found less accurately. ChooseOptionMulti to look for multiple string types will improve it, too.
You also need MarkTime(TreeCounter) outside of the repeat loop, because otherwise you keep doing MarkTime MarkTime MarkTime and you'll never get above 7 seconds.
Just keep watching YoHoJo's video I think he made some mistakes and then corrected himself 30 minutes later so that was confusing when I started learning, but if you keep watching eventually you'll end up with something that works. :confused: