-
Trying to get scar to work...but getting an error saying this
Failed when compiling
Line 2: [Error] (2:7) : Identifier expected in script C: \Program Files\Scar 3.01\Scripts\autominer.scar
Working with this
Code:
program New;
begin program SRLGuildMiner;
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/Mining.scar}
{.include SRL/SRL/misc/FaladorColorFinder.scar}
{.include SRL/SRL/extended/xMapWalk.scar}
Const
**Loads****************= 9999;**** // Number of loads before switching user.
**OreTol************** = 4999;
**StartPlayer**********= 0;
Const
**CoalColor**************= 2438711;** // CoalColor is a constant
**MithrilColor********** = 7425100;** // MithrilColor is a constant
//----------------------------------------------------------------------------//
Const VersionNumber********= '0.39';
//----------------------------------------------------------------------------//
Var MapPickColor,MapOreColor,LadderColor,
****TotalOres,SecondsToWait,H,G:integer;
Var FB1,FB2,FB3: Integer; // BankerDTMs (Yellow dots at three angles: -10,0,+10 degrees)
// For use with DTM3Flag that plants a flag when any of 3 DTM's is found
//----------------------------------------------------------------------------//
Procedure DeclarePlayers;
begin
**** HowManyPlayers:=1;
**** NumberOfPlayers(HowManyPlayers);
**** Players[0].Name**** :='myusername';
**** Players[0].Pass**** :='mypassword';
**** Players[0].Nick**** :='snatch';
**** Players[0].Loc******:='Falador';
**** Players[0].Boolean1 := True;** // EquipPick.
**** Players[0].String1**:= 'Coal'; // Coal = coal only. Mithril = both.
**** Players[0].Active** := True;
end;
//----------------------------------------------------------------------------//
Procedure FillMem;** // 3 yellow dot bankers @ different angle
begin
**FB1 := DTMFromString('78DA636C66626008634001972E5E66F80FA41' +
****** '981F83F1030B601D5C4A0AAF9F38789810BAA0604189B8850D345' +
****** '580D00CA7B110D');
**FB2 := DTMFromString('78DA63EC61626008614001478F1E65F80FA41' +
****** '981F83F1030F602D544A1AAF9F38789810BAA0604182712A1662A' +
****** '504D247E3500C2961107');
**FB3 := DTMFromString('78DA636C646260086140038C0CFFC12403C37' +
****** 'F206004A9894255F1E70F130317540D58472B504D3401359D4035' +
****** '31F8D50000978B0E8E');
end;
//----------------------------------------------------------------------------//
Procedure SetOres;
Begin
**Case Lowercase(Players[CurrentPlayer].String1) Of
****'coal'** : Begin OreColor1 := CoalColor OreColor2 := OreColor1 End;
****'mithril': Begin OreColor1 := MithrilColor; OreColor2 :=CoalColor; End;
**End;
End;
//----------------------------------------------------------------------------//
Function FindOre(MaxTol:Integer):Boolean;
Var Tol,Ex,Ey:Integer;
Begin
H:=H+1;
**For G := 1 to H do
** Begin
****Case G Of
******1: Begin OreColor:= OreColor1; SecondsToWait := 5; End;
******2: Begin OreColor:= OreColor2; SecondsToWait := 10; End;
****End;
** End;
**While (Not (FindColorTolerance(Ex, Ey, OreColor, MSX1, MSY1, MSX2, MSY2, Tol))
**And Not (Tol > MaxTol)) Do
****Begin
******Tol:=Tol+1;
****End;
**If ((FindColorTolerance(Ex, Ey, OreColor, MSX1,MSY1 ,MSX2, MSY2, Tol))
**And Not (Tol > MaxTol)) Then Result:=True;
**Tol:=1;
**Wait(10);
End;
//----------------------------------------------------------------------------//
procedure PlayerStats;
var PSActive: string;
var i: Integer;
begin
**WriteLn(' ');
**WriteLn(' ');
**WriteLn(' ');
**writeln('**********************************************');
**writeln('Name******** : '+ Players[CurrentPlayer].Name);
**writeln('Number****** : '+inttostr(CurrentPlayer));
**writeln('Mining Level : '+ inttostr(Players[CurrentPlayer].level[15]));
**writeln('Worked for** : '+IntToStr(Players[CurrentPlayer].Worked)+' minutes.');
**writeln('Banked****** : '+ inttostr(Players[CurrentPlayer].Banked) + ' times.');
**if Players[CurrentPlayer].Active=True then PSActive:='True' else PSActive:='False';
**writeln('Active****** : '+ PSActive);
**writeln('Location**** : '+ Players[CurrentPlayer].loc);
**writeln('**********************************************');
for i := 0 to HowManyPlayers-1 do
** begin
** if Players[i].Active=True then PSActive:='True' else PSActive:='False';
******writeln( (inttostr(i))+' : '+Players[i].name+ ' = '+PSActive+
******'.- Lvl : '+inttostr(Players[i].level[15])+
******'.- B :'+inttostr(Players[i].Banked)+' Times.'+
******'.- A: '+IntToStr(Players[i].Worked)+' mins.'+
******'.- Loc: '+Players[i].loc);
****end
** writeln('**********************************************');
end;
//----------------------------------------------------------------------------//
procedure ProgressReport;
begin
**WriteLn(' ');
**WriteLn(' ');
**WriteLn(' ');
**WriteLn('<============== -'+VersionNumber+'- Progress Report ===============>');
**writeln('Worked for '+ TimeRunning);
**WriteLn('Banked '+IntToStr(banks)+' loads[s].');
**WriteLn('Banked '+IntToStr(TotalOres)+' Ores.');
**WriteLn('<=====================================================>');
**PlayerStats;
**SRLRandomsReport;
end;
//----------------------------------------------------------------------------//
function FindMapOreColor:integer;
var
**MapOre,MapOre2:integer;
begin
**MapOre := BitmapFromString(3, 3,
******** '3D2C345948546D5D624A39416D5D626D5D625948546D5D626D5D62' +
******** '');
**MapOre2 := BitmapFromString(3, 3,
******** '061115222D35364243131E22364243364243222D35364243364243' +
******** '');
**if(FindBitmapsProgressiveTol(MapOre,MapOre2,0,0,0,65,5,587,41,***,118))then
****Result:=GetColor(x+1,y+1);
**Freebitmap(MapOre);
**Freebitmap(MapOre2);
end;
//----------------------------------------------------------------------------//
Function FindFaladorLadderColor: Integer;
var**C,TX,TY,FaladorLadder:integer;
begin
FaladorLadder:= BitmapFromString(2, 2, '4F1F004F1F004F1F00' +
****** 'A4A298');
while (C<100) do
** begin
** C:=C+5;
** If FindBitMapToleranceIn(FaladorLadder,TX,TY,650,144,664,156,C) then
******begin
************LadderColor:=GetColor(TX,TY);
************Players[CurrentPlayer].Loc:='Falador';
************Result:=LadderColor;
************writeln('LadderColor = '+IntToStr(LadderColor));
************break;
******end
** end
FreeBitMap(FaladorLadder);
if Result = 0 then begin writeln('ERROR: LadderColor NOT Found'); TerminateScript end;
end;
//----------------------------------------------------------------------------//
function Underground:boolean;
begin
**if((FindColoredAreaTolerance(x,y,256,570,5,725,162,50,1)))then
**begin
****Result:=true;
**end;
end;
//----------------------------------------------------------------------------//
procedure ToCenter;
begin
**if(FindColorSpiral(x,y,MapPickColor,570,63,725,160))then
**begin
****Mouse(x-10,y-10,20,20,true);
****FFlag(20);
****Wait(1000+Random(100));
**end else
**begin
****RoadWalk(MapOreColor,'S');
****if(FindColorSpiral(x,y,MapPickColor,570,63,725,160))then
****begin
******Mouse(x-10,y-10,20,20,true);
******FFlag(20);
******Wait(1000+Random(100));
****end;
**end;
end;
//----------------------------------------------------------------------------//
procedure RunAway;
begin
**if(UnderGround)then
**begin
****RoadWalk(MapOreColor,'W');
****ClickMMColor(LadderColor);
****FFlag(10);
****RoadWalk(MapOreColor,'E');
**end else
**RunTo('N',False);
end;
//----------------------------------------------------------------------------//
function HandleGas(Gx,Gy:Integer):Boolean;
begin
******if FindGas(gx,gy) then
******begin
******** ToCenter;
******** Result:=True;
******end;
end;
//----------------------------------------------------------------------------//
Function ClimbLadderDown:Boolean;
var
**c:integer;
begin
**for c:=1 to 50 do
**begin
****If FindColor(x,y,0,MSX1+10,MSY1+10,MSX2-10,MSY2-10) then
****begin
******Wait(100);
******Mouse(x,y,0,0,false);
******if ChooseOption(x,y,'Climb') then
******begin
******** MarkTime(Mark);
******** repeat
********** Wait((1000)+Random(1000));
********** If TimeFromMark(Mark)>30000 then begin Logout; Exit; end;
******** until ((GetColor(580,80)=0) and (GetColor(648,142)=0));
******Result:=True;
******Exit;
******end;
****end;
**c:=C+1;
**SendArrowSilentWait((Random(2)*2)+1, 20 + Random(10));
**if C=50 then begin Logout; exit end;
**end;
end;
//----------------------------------------------------------------------------//
Function ClimbLadderUp:Boolean;
var
**c:integer;
begin
**for c:=1 to 50 do
**begin
****Wait(100);
****if FindObj(x,y,'adder',2775161,21) then
******begin
********Wait(100);
********Mouse(x,y,0,0,false);
********if ChooseOption(x,y,'Climb') then
********begin
**********MarkTime(Mark);
**********repeat
************Wait((1000)+Random(1000));
************If TimeFromMark(Mark)>30000 then begin Logout; Exit; end;
**********until FindColor(x,y,WaterColor,MMX1,MMY1,MMX2,MMY2);
**********Result:=True;
**********Exit;
********end;
******end;
**c:=C+1;
**if C=50 then begin Logout; exit end;
**SendArrowSilentWait((Random(2)*2)+1, 20 + Random(10));
**end;
end;
//----------------------------------------------------------------------------//
// --****************To the Guild in Three Clicks!**************************--//
//----------------------------------------------------------------------------//
procedure BankToGuild;
var xblack,yblack:Integer;
begin
**PerfectNorth;
**MouseFindFlag(690,110,1,-1);
**Flag;
**FindColor(xblack,yblack,0,MMX1,MMCY,MMX2,MMY2);
**Mouse(xblack-5,yblack+10,0,0,true);
**Flag;
**ClimbLadderDown;
**Players[CurrentPlayer].loc:='Guild';
end;
//----------------------------------------------------------------------------//
procedure GuildToBank;
var
**c:integer;
begin
****repeat
******c:=c+1;
******RadialWalk(MapOreColor,210,270,50,-1,0);
******if FindColor(x,y,LadderColor,MMX1,MMY1,MMX2,MMY2) then break;
******if c=10 then begin Logout; exit; end;
****until( FindColor(x,y,LadderColor,MMX1,MMY1,MMX2,MMY2) or(c>10) )
****IdleTime(3000, 1000, 1.0);
****If FindColor(x,y,LadderColor,MMX1,MMY1,MMX2,MMY2) Then Mouse(x,y,2,2,True);
****Wait(1500+Random(500));
****FFlag(0);
****ClimbLadderUp;
****MouseFindFlag(666,45,-1,-1);
****Flag;
****MakeCompass('N');
****If FindColor(x,y,BankColor,MMX1,MMY1,MMX2,MMY2) then
****begin
******Mouse(x,y,0,0,True);
******FFlag(10);
******DTM3Flag(FB1,FB2,FB3,True);
******FFlag(3);
****end
****else
****begin
******DTM3Flag(FB1,FB2,FB3,True);
******FFlag(3);
****end;
****Players[CurrentPlayer].loc:='Falador';
end;
//----------------------------------------------------------------------------//
Function SimpleBank:Boolean;
var sx,sy,dx,dy,Mark2,Tries:integer;
begin
**SX:=MSCX; SY:=MSCY;
**repeat
****sx:=Sx+1;
****sy:=sy+3;
****MMouse(sx, sy, 0, 0);
****if IsUpTextMulti('e Bank','Booth','ooth') then
****begin
******GetMousePos(Dx, Dy);
******Mouse(Dx, Dy, 0, 0, False);
******if ChooseOption(Dx, Dy, 'uickly')**then
******begin
********MarkTime(Mark2);
********repeat
**********Wait(10);
**********if TimeFromMark(Mark2) > 20000 then
********** begin
************ Result:=False;
************ Exit;
********** end;
********until BankScreen;
********if BankScreen then
********begin
**********Result := True;
**********Exit;
********end;
******end;
****end
****else
****begin
******wait(1);
******Tries:=Tries+1;
****end;
**until(tries >9);
end;
//----------------------------------------------------------------------------//
procedure Bank;
var LocalOres:integer;
begin
****if (NoPick and EquipPick) then
****begin
****** if InventoryFull then
****** begin
******** if(FindBitmapSpiralTolerance(Ore,x,y,559,210,735,460,25))then
**************begin
****************Mouse(x,y,5,5,false);
****************ChooseOption(x,y,'Drop');
**************end;
****** end;
****** GameTab(5);
****** Mouse(593,303,0,0,true);
****** Wait(Random(1000)+2000);
****** GameTab(4);
****end;
****LocalOres:=CountItemBmpTol(Ore,50);
****MarkTime(Mark);
****if not BankScreen then
****begin
******repeat
******** if (not(Loggedin)) then**Exit;
******** if not SimpleBank then OpenBankQuiet('feb');
******until(BankScreen or (TimeFromMark(Mark)>60000));
****end;
****if(BankScreen)then
****begin
******Wait(Random(2000)+200);
******FixBank;
******if(NoPick=true)then
******begin
********ClickAllItemsColorWait('All',65536,1000+Random(100));
********Wait(Random(2000)+200);
********Withdraw(1,1,1);
********Wait(Random(2000)+200);
******end else
******begin
********if(EquipPick=false)then Deposit(2,28,2);
********Wait(Random(2000)+200);
********if(EquipPick=true)then
********** begin
************ ClickAllItemsColorWait('All',65536,1000+Random(100));
************ Wait(Random(2000)+200);
********** end;
******end;
******CloseBank;
******if(NoPick=true)and(EquipPick=true)then
******begin
********FindPickHeadColor;
********Wait(Random(1000)+200);
********ClickItemColor(hc1,true);
******end;
******Banks:=Banks+1;
******TotalOres:=TotalOres+LocalOres;
******Players[CurrentPlayer].Banked:=Players[CurrentPlayer].Banked+1;
******NoPick:=false
****end;
end;
//----------------------------------------------------------------------------//
Procedure ChangeGasPixels(Var Gasx,GasY:Integer);
Var
** TempX, TempY: Integer;
Begin
**Wait(100);
**If FlagPresent Then
****Begin
******FFlag(0);
******If FindColorSpiralTolerance(x,y,OreColor,MSX1,MSY1,MSX2,MSY2,4) Then
********Begin
********x := TempX;
********y := TempY;
********If CheckOre(x,y,OreColor,4) > 2 Then
**********Begin
************If Distance(MSCX,MSCY,TempX,Tempy) < 40 Then
**************Begin
****************GasX := x;
****************GasY := y;
**************End;
**********End;
********End;
**End;
End;
//----------------------------------------------------------------------------//
Procedure WizzupMine;
Var Dx,Dy,Ex,Ey:Integer;
Begin
**If FindOre(OreTol) Then
**Begin
****If FindObjOre(Dx, Dy, 'Mine', OreColor, 10, 4) Then
****Begin
******H:=0;
******If Not HandleGas(Dx, Dy) Then
******Begin
**********If Random (9) < 7 Then Mouse(Dx, Dy, 0, 0, True)
**********Else
**********Begin
************Mouse(Dx, Dy, 0, 0, False);
************ChooseOption(Ex, Ey, 'ine');
**********End;
******ChangeGasPixels(Dx,Dy);
******MarkTime(Mark);
******Repeat
********HandleGas(Dx, Dy);
********Wait(100);
********FindTalk;
********FindPick;
********If NoPick Then Break;
********If FindFight Then RunAway;
******Until ((TimeFromMark(Mark) > (1000 * SecondsToWait))
******Or (FindColor(X, Y, 0,51, 421, 51, 421)))
******End;
****End;
**End
**Else
**Begin
****If H>1 Then H:=0;
****If Random(9) < 7 Then if not FindColorTolerance(x,y,CoalColor, MSX1,MSY1,MSX2,MSY2,OreTol) then ToCenter;
****FindNormalRandoms;
****If FindFight Then RunAway;
****Wait(500+Random(500));
**End;
End;
//----------------------------------------------------------------------------//
Procedure DoChats;
Begin
**SetChat('On', 1);
**SetChat('On', 1);
**SetChat('Off', 2);
**SetChat('Off', 2);
**SetChat('On', 3);
**SetChat('On', 3);
End;
//----------------------------------------------------------------------------//
procedure Setup;
begin
**** SetupSRL;
**** SetUpSRLMining;
**** FillMem;
**** DeclarePlayers;
**** CurrentPlayer:=StartPlayer;
**** EquipPick:= Players[CurrentPlayer].Boolean1;**// Wielding.
**** PickUpItems:=True; // to pick up random items when pickhead is gone.
**** BenMouse:=False;
**** MouseSpeed:=10;
**** LoginPlayer;****** // logs in the first player.
**** SetOres;
end;
//----------------------------------------------------------------------------//
//*************************** Main Loop***************************************//
//----------------------------------------------------------------------------//
begin
**Setup;
**FindFaladorLadderColor;
**SymbolAccuracy:=0.4;** // temporarily reduce symbolaccuracy for better symbol spotting
**FindFaladorBasicColors;
**SymbolAccuracy:=0.8; // set symbolacc. to default
**NickNameBMP:=CreateBitmapMaskFromText(Players[CurrentPlayer].Nick,UpChars) // in case we started logged in aot logged out
**repeat
******GetAllLevels;
******if not FindPickHeadColor then Logout;
******Dochats;
******if Players[CurrentPlayer].loc='Falador' then
********begin
******** SetRun(true);
******** BankToGuild;
********end
******if Players[CurrentPlayer].loc='Guild' then
********begin
**********if(MapOreColor=0) then MapOreColor:=FindMapOreColor;
**********if FindMMColor(x, y, LadderColor) then RoadWalk(MapOreColor,'E');
**********FFlag(10);
**********MarkTime(Mark);
**************if(MapPickColor=0) then MapPickColor:=GetSymbolColor(x,y,'mining spot');
**********repeat
************WizzupMine;
************Wait(100);
************if (not(Loggedin)) then**break;
**********until(InventoryFull)or(NoPick=true)or(TimeFromMark(Mark)>1800000)
**********SetRun(False);
**********GuildToBank;
**********Bank;
**********ProgressReport;
********end;
******if ((LoggedIn) and (Players[CurrentPlayer].Banked mod Loads = 0) ) then
********Begin
**********MarkTime(Mark);
**********SetChat('off',1);
**********repeat
************ Wait(1000);
************ FindNormalRandoms;
************ if(TimeFromMark(Mark)>120000) then begin Logout; Break; end;
**********until(not(LoggedIn));
**********writeln('dead and logging back in');
**********writeln(InttoStr(CurrentPlayer));
**********Wait(500+Random(501));
**********NextPlayer(True);
**********writeln(InttoStr(CurrentPlayer));
**********NoPick:=False;
**********SetOres;
**********EquipPick := Players[CurrentPlayer].Boolean1;
**********FindPickHeadColor;
**********DoChats;
********end;
******if (not (Loggedin)) then
********Begin
**********NextPlayer(False);
**********NoPick:=False;
**********SetOres;
**********EquipPick := Players[CurrentPlayer].Boolean1;
**********FindPickHeadColor;
**********DoChats;
******End;
**Until(False)
end.
end.
Anyone know what i am supposed to do to stop gettin the error? lol im a newb to SCAR :?
-
wikipedia'd scar, as I have no idea what it is
but I got this simple hello world
Code:
program HelloWorld;
begin
**WriteLn('Hello World!');
end.
so, I'd try changing the top of yours to read
Code:
program SRLGuildMiner;
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/Mining.scar}
{.include SRL/SRL/misc/FaladorColorFinder.scar}
{.include SRL/SRL/extended/xMapWalk.scar}
As I think the
shouldn't be there
(added automatically when you create a new project, then you pasted in some code, possibly - dunno)
-
Don't mess with the OreTol number just leave it at the number it was when you opened the script.
May be something else I don't know.