catch me on #SCAR irc.scar-divi.com or msn icefire908@netscape.net

Cheers

]]>Any help would be great.

Thank You

ps. Scar 3.41 downloads just fine but i need to use 3.22 for bm bot on seafight

]]>

i`m using the same script that i use on dofus, cuz they are like each other...

const Resource1 = 9417168; // Color de tu Recurso - Pega el color del recurso Nº1 Resource2 = 9417168; // Color de tu Recurso - Pega el color del recurso Nº2 Resource3 = 9417168; // Color de tu Recurso - Pega el color del recurso Nº3 CollectTime = 3000; // Tiempo en recolectar - Tiempo de recoleccion (11000 = 11 Segundos) var x, y, lvlx, lvly: Integer; function TargetResource1: Boolean; begin Result := FindColor(x, y, Resource1, 0, 0, 800, 600); end; function TargetResource2: Boolean; begin Result := FindColor(x, y, Resource1, 0, 0, 800, 600); end; function TargetResource3: Boolean; begin Result := FindColor(x, y, Resource3, 0, 0, 800, 600); end; function NextResource1: Boolean; begin Result := FindColor(x, y, Resource1, 0, 0, 800, 600); end; function NextResource2: Boolean; begin Result := FindColor(x, y, Resource2, 0, 0, 800, 600); end; function NextResource3: Boolean; begin Result := FindColor(x, y, Resource3, 0, 0, 800, 600); end; procedure Collect; begin if (TargetResource1 or TargetResource2 or TargetResource3) then begin MoveMouse(x, y); Wait(100 + Random(200)); MouseBtnDown(x, y, mbLeft); Wait(20 + Random(50)); MouseBtnUp(x, y, mbLeft); Wait(3000 + Random(500)); Wait(CollectTime); end; end; function NoResource: Boolean; begin Result := not FindColor(x, y, 1683891, 0, 0, 800, 600); end; function FindLevel: Boolean; begin Result := FindColor(lvlx, lvly, 25087, 0, 0, 500, 500); end; procedure LevelUp; begin if FindLevel then begin MoveMouse(lvlx, (lvly + 2)); Wait(100 + Random(100)); ClickMouse(lvlx, (lvly + 2), mbLeft); Wait(100 + Random(100)); end; end; begin Collect; repeat if NoResource then Collect; if (NextResource1 or NextResource2 or NextResource3) then Collect; if FindLevel then LevelUp; until False; end.

the script find the monster but it dont click.. when i swap to the game client... the script dont work... some one have any solution?

]]>

For those of you who are not up to the challenge and wish to be contributors who test and submit feedback

RRL is open for testing for all

OSI, speak to me via MSN or private message

SCAR is open for testing for all, send feedback to bug.scar-divi.com

Also, REMINDER. If you are new from SRL *and would like to* confirm your identity please private message me via SRL's forums with your name here. My username is Wanted.

If you are from another community and would like to get verified message someone who is verified here that is also from your community via that communities private message system.

Here is a list of verified users http://forums.scar-divi.com/showthread.php?tid=129

Thank you

]]>]]>

Haven't been active lately much myself, here or in the other community. Looking forward to dipping my toes back in the water. Getting something working with RS3 NXT looks like it could be fun.

So what's the status of things? SCAR Divi 3.41 seems to still be the latest release. Is SCAR Divi 4 still a go? Was really looking forward to the new features. Speaking of which what is the state of the various includes? They still being actively developed???

]]>

It took me a while to remember the program name but I finally stumbled across it again so here I am yay! I wanted to throw out a thanks to LordJashin and Freddy for helping me with a script I was making to automatic tasks in a game back in 2012. It was my real first introduction into programming and they were very kind to help me and explain stuff as I worked on the script. Scar Divi opened doors I didn't know I had and I started to dive deeper into the rabbit hole and I came out the other side as a software engineer whom works for HP now. My programming passion started here by tinkering with Scar Divi and having a lot of fun while doing it. I just wanted to throw out a thanks to you guys and let you know that you changed my life.

:3 Cheers

]]>Seems like its not compatible. It do work with scar 3.22 but then you can only run one instance of scar.

Also is there not color functions for smart browser ?

]]>

I was curious, is (or was) Scar open source ever? Or is still?

I would love to create my own program (like an IDE to script your own programs/macros).

And I am wondering because Scar and Simba are extremely similar, how did this come to be?

]]>

Basically I have a series of fighting formation. Each formation holds 9 to 24 "Hero Slots". There are about 40 heroes with various abilities to choose from. My knowledge is limited to only individual object checks. As it is now I have to write out any changes by looking at each button, textbox or label individually.

Procedure Diamond(Sender: TObject); Begin ResetFormation; Form1.RadioButton2.checked := true; Form1.NxRadioButton2.Checked := True; Form1.NxRadioButton1.visible := True; Form1.NxRadioButton1.Caption := 'Slot 1'; Form1.NxRadioButton2.visible := True; Form1.NxRadioButton2.Caption := 'Slot 2'; Form1.NxRadioButton3.visible := True; Form1.NxRadioButton3.Caption := 'Slot 3';//etc till NxRadioButton24 end;

What I'd LOVE to be able to do is just run a simple loop that would that would look something like :

For count := 1 to 24 do

Begin

NxRadioButton+IntToStr(count).visible := True;

NxRadioButton+IntToStr(count).Caption := 'Slot '+IntToStr(count)

end;

But I'm not sure what format to use. Plus I wouldn't have pages of these lists to scroll through as they would be broken down into very much smaller chunks that does the same thing. And if possible, how to do a case call where I could easily write out a routine to scan through a series of objects, like NxRadioButton, to find one with the name of a specific hero to erase from it.

Procedure FindHero(HeroName:string)

Case form1.NxRadioButton of

'Dragon' : Begin .Caption := "EMPTY"; end;

'Werewolf': Begin .Caption := "Empty": end;

etc

end;

With the above method I would only need to code it 1 time and use it for all hero searches, but as it stands I only know how to scan through the buttons singly and search them all for each hero - so ending up with over 960 procedure calls!

Hoping that there is a solution for this or a source in which I can look to find the solution (a source a little more focused than the entire internet through google, lol)

]]>

I am curious, what is SCAR?

Is scar just a program that was written in pascal?? And it allows you to create your own scripts in pascal syntax?

How does it do this?

I would LOVE to make my own program something very similar to scar.

Any information would be amazing!

Thanks.

]]>

I can use PlaySound to play any .wav file, however I noticed that even after the script is terminated, if the sound has a remaining duration it will continue to play, until it either reaches the end of the sound file or SCAR is closed...

Any ways to make a sound stop when terminating a script?

]]>

If I release a Bot, will anyone care?

- - - Updated - - -

Actually I believe it goes...

If a man posts a Script on the internet, but the Script gets posted on SCAR Divi Forums, does it even exist?

Here's something that could spike your interest.

]]>

Guess there is nothing much more to say. Thank you for reading this

]]>

A long time ago, I used very basic SCAR scripts to perform pretty basic tasks in RuneScape (around 2006). One that did me well was a woodcutting script, it was fantastically simplistic and power-chopped tree's and dropped everything.

I Was wondering if SCAR supports RS 2007? I See a few posts regarding OSI Updates.

Although I'm not familiar with this program and it's processes at the minute, if there's anything you guys can share with me or link me too I'd be very grateful!

Thanks

]]>So it ended up here, as Janilabo kept telling me to put it on github.. In the end I did do that... And figured that I could just as well tell ya all about it!

**Source:** https://github.com/WarPie/SCARExt/

**Download:** SCARExt.rar (simply extract it in includes folder) (**Last updated - 23. Oct 2013**)

So the functions which are exported (:

//** Math.pas **// function XT_DistManhattan(pt1,pt2: TPoint): Extended; function XT_DistEuclidean(pt1,pt2: TPoint): Extended; function XT_DistChebyshev(pt1,pt2: TPoint): Extended; function XT_DistOctagonal(pt1,pt2: TPoint): Extended; function XT_Modulo(X,Y:Extended): Extended; function XT_InCircle(const Pt, Center: TPoint; Radius: Integer): Boolean; function XT_InPoly(x,y:Integer; const Poly:TPointArray): Boolean; function XT_InPolyR(x,y:Integer; const Poly:TPointArray): Boolean; function XT_InPolyW(x,y:Integer; const Poly:TPointArray): Boolean; function XT_InEllipse(const Pt, Center:TPoint; YRad, XRad: Integer): Boolean; function XT_InRectange(Pt:TPoint; X1,Y1, X2,Y2: Integer): Boolean; //** Numeric.pas **// procedure XT_MinMaxTIA(const Arr: TIntArray; var Min:Integer; var Max: Integer); procedure XT_MinMaxTEA(const Arr: TExtArray; var Min:Extended; var Max: Extended); function XT_SumTIA(const Arr: TIntArray): Integer; function XT_SumTEA(const Arr: TExtArray): Extended; procedure XT_TIAsToTPA(const X:TIntArray; const Y:TIntArray; var TPA:TPointArray); function XTCore_TIAToATIA(const Arr:TIntArray; Width,Height:Integer): T2DIntArray; //** Finder.pas **// function XTCore_FindColorTolExLCH(const ImgArr:T2DIntArray; var TPA:TPointArray; Color, ColorTol, LightTol:Integer): Boolean; function XTCore_FindColorTolExLAB(const ImgArr:T2DIntArray; var TPA:TPointArray; Color, ColorTol, LightTol:Integer): Boolean; //** ContrastEdges.pas **// function XT_ContrastEdges(const ImgArr: T2DIntArray; MinDiff: Integer): TPointArray; function XT_ContrastEdgesGray(const ImgArr: T2DIntArray; MinDiff: Integer): TPointArray; //** DensityMap.pas **// function XT_DensityMap(const TPA:TPointArray; Radius, Passes:Integer): T2DExtArray; function XT_DensityMapNormed(const TPA:TPointArray; Radius, Passes, Beta:Integer): T2DIntArray; procedure XT_TPADensitySort(var Arr: TPointArray; Radius, Passes:Integer); //** Points.pas **// function XT_SumTPA(Arr: TPointArray): TPoint; procedure XT_TPASeparateAxis(const TPA: TPointArray; var X:TIntArray; var Y:TIntArray); procedure XT_TPAFilterBounds(var TPA: TPointArray; x1,y1,x2,y2:Integer); function XT_GetTPAExtremes(const TPA:TPointArray): TPointArray; function XT_GetTPABBox(const TPA:TPointArray): TPointArray; function XT_GetTPABoundingBox(const TPA:TPointArray): TPointArray; //Alias for GetTPABBox; procedure XT_GetAdjacent(var adj:TPointArray; n:TPoint; EightWay:Boolean); procedure XT_ReverseTPA(var TPA: TPointArray); procedure XT_MoveTPA(var TPA: TPointArray; SX,SY:Integer); procedure XT_TPARemoveDupes(var TPA: TPointArray); procedure XT_LongestPolyVector(const Poly:TPointArray; var A,B:TPoint); function XT_InvertTPA(const TPA:TPointArray): TPointArray; function XT_RotateTPAEx(const TPA: TPointArray; const Center:TPoint; Radians: Extended): TPointArray; function XT_TPAPartition(const TPA:TPointArray; BoxWidth, BoxHeight:Integer): T2DPointArray; function XT_AlignTPA(TPA:TPointArray; Method: TAlignMethod; var Angle:Extended): TPointArray; function XT_CleanSortTPA(const TPA: TPointArray): TPointArray; function XT_UniteTPA(const TPA1, TPA2: TPointArray; RemoveDupes:Boolean): TPointArray; procedure XT_TPALine(var TPA:TPointArray; const P1:TPoint; const P2: TPoint); function XT_ConnectTPA(const TPA:TPointArray): TPointArray; function XT_ConnectTPAEx(TPA:TPointArray; Tension:Extended): TPointArray; function XT_XagonPoints(const Center:TPoint; Sides:Integer; const Dir:TPoint): TPointArray; procedure XT_TPAEllipse(var TPA:TPointArray; const Center: TPoint; RadX,RadY:Integer); procedure XT_TPACircle(var TPA:TPointArray; const Center: TPoint; Radius:Integer); procedure XT_TPASimplePoly(var TPA:TPointArray; const Center:TPoint; Sides:Integer; const Dir:TPoint); function XT_ConvexHull(const TPA:TPointArray): TPointArray; function XT_FloodFillTPAEx(const TPA:TPointArray; const Start:TPoint; EightWay, KeepEdges:Boolean): TPointArray; function XT_FloodFillTPA(const TPA:TPointArray; const Start:TPoint; EightWay:Boolean): TPointArray; function XT_TPAOutline(const TPA:TPointArray): TPointArray; function XT_TPABorder(const TPA:TPointArray): TPointArray; function XT_FloodFillPolygon(const Poly:TPointArray; EightWay:Boolean): TPointArray; function XT_ClusterTPAEx(const TPA: TPointArray; Distx,Disty: Integer; EightWay:Boolean): T2DPointArray; function XT_ClusterTPA(const TPA: TPointArray; Distance: Integer; EightWay:Boolean): T2DPointArray; function XT_TPASkeleton(const TPA:TPointArray; FMin,FMax:Integer): TPointArray; //** CSpline.pas and TPAExtShape.pas **// function XT_CSpline(const TPA:TPointArray; Tension:Extended; Connect:Boolean): TPointArray; function XT_TPAExtractShape(const PTS:TPointArray; Distance, EstimateRad:Integer): TPointArray; //** Collection.pas **// function XT_IntMatrix(W,H, Init:Integer): T2DIntArray; function XT_IntMatrixNil(W,H:Integer): T2DIntArray; procedure XT_IntMatrixSetPts(var Matrix:T2DIntArray; const Pts:TPointArray; Value:Integer; const Align:TPoint); function XT_BoolMatrix(W,H:Integer; Init:Boolean): T2DBoolArray; function XT_BoolMatrixNil(W,H:Integer): T2DBoolArray; procedure XT_BoolMatrixSetPts(var Matrix:T2DBoolArray; const Pts:TPointArray; Value:Boolean; const Align:TPoint); function XT_TPAToIntMatrix(const TPA:TPointArray; Init, Value:Integer; Align:Boolean): T2DIntArray; function XT_TPAToIntMatrixNil(const TPA:TPointArray; Value:Integer; Align:Boolean): T2DIntArray; function XT_TPAToBoolMatrix(const TPA:TPointArray; Init, Value:Boolean; Align:Boolean): T2DBoolArray; function XT_TPAToBoolMatrixNil(const TPA:TPointArray; Value:Boolean; Align:Boolean): T2DIntArray; procedure XT_BlurImageArr(var ImgArr:T2DIntArray; Radius:Integer); function XT_NormalizeATIA(const ATIA:T2DIntArray; Alpha, Beta:Integer): T2DIntArray; function XT_ATIAGetIndices(const ATIA:T2DIntArray; const Indices:TPointArray): TIntArray; //** Randomize.pas **// function XT_RandomTPA(Amount:Integer; MinX,MinY,MaxX,MaxY:Integer): TPointArray; function XT_RandomCenterTPA(Amount:Integer; CX,CY,RadX,RadY:Integer): TPointArray;

As you see... it's just a bunch of crap, some of this crap might just be useful! :-D

#-----------------------------------------------------------------------------------------

I'll walk trough a few of them functions which is worth noting..:

#**XT_InPoly, XT_InPolyR, XT_InPolyW**:

This are all methods of checking if a point is within a polygon (defined by a TPA).. I actually had to add three.. or I did not have to but I am cool like that!! =P*XT_InPoly: The main version, it's a combination of Ray casting and Winding number algorithm.. Just to avoid "imperfect-polygons".. Costs more.. so if you are okay with a pretty precise "estimate" you can use:

*XT_InPolyR (RayCasting), or *XT_InPolyW (winding number)..

#**XT_ClusterTPA(Ex)**

ClusterTPA is a complex function, it's action is the same as SplitTPA(Ex) seen in Simba, and SCAR (Macro-programs), but unlike those, this one performance in O(n)-time, while SplitTPA(ex) has a time-complexity of O(n^2). My algorithm will on the other side abuse and maybe even rape your memory! :-D (joking...)In short this algorithm uses a 2D-Matrix to cluster together the points that are within a given distance (Distx,Disty) from each other. It then returns 2D TPoint Array (T2DPointArray).

I honestly think that this function is very fast, can be used with LARGE sets of points, and relatively high distance..

A somewhat slower version can be found in the latest version of Simba, but that version is mostly created by Janilabo, partially extended on the grounds of my concept.

#**XT_ContrastEdges(Gray)**

Given a matrix that represents an image this algorithm extracts the contrast edge points.The result is an Array of TPoint (TPointArray).

So you get the edges...

#**XT_ConnectTPA**

Quickly creates a line from from each point in the TPA (pts), to the next point. It uses XT_TPALine

#**XT_ConvexHull**

A 2D-implementation of

ConvexHull.ConvexHullcan be explained with simple words:|> Given a Array of Points, imagine that you where to put a rubber band around am...

|> The points which strech the rubber band are the points returned by this algorithm.

Time complexity: O(mn) (M as in Width, and N as in Height) before sorting the points..

Once sorted and cleaned it's close to O(n).

Convex hull - Wikipedia, the free encyclopedia

Can be used together with InPoly(W/R), to check if points are within this shape...

#**XT_TPAExtractShape**

Similar to

ConvexHullthis also extracts the shape.. but it has rules! Three parameters are taken, only two of am which is actually important the TPA and `Distance`.. This is the maximum distance to it's net neighbors.. It's like a form for Alpha-Shape extraction (Concave Hull)... So it can actually extract the SHAPE.Image to check out.. Middle shape = Convex, last shape = concave..: http://vis4.net/labs/wp/wp-content/uploads/2012/01/Bildschirmfoto-2012-01-03-um-01.18.09-380x217.png

This also returns the lines.. it's not optimal for usage with InPoly (it returns full lines connecting every points), can be changed on demand.

>>

Visualization example(http://pastebin.com/raw.php?i=Wmsn4rzG)

#**XT_TPADensitySort**

TPADensitySort simply sorts your TPA by the point-clouds density.. So if a point is a "loner", it will end up at the end of the TPA, if points has many neighbors it has a high value..! =) So tightness = good!

#**XT_FloodFillPolygon**

FloodFillPolygonisNOTthe same asTPAFromPolygonfound in SCAR >3.4!!!This one is much cooler, and much faster! ;-D It does not give a crap about the polypoints within the outer polypoints (results in all the points on and within the edges of the polygon).. if that makes any sense. In other words it will fill the entire polygon defined by the outlines of the polygon, so even if the polygon crosses it self, or got holes, the holes will be filled, the "crossing it self"-part will be ignored.. So you always get a filled shape. Hence the name "FloodFill"

#**XT_TPAPartition**

Partitions a TPA, by splitting it in to boxes of `BoxWidth` and `BoxHeight`. The result is the ATPA containing all the area TPAs. So imagine the inventory, or bank-items in RS where each slot = one box, this functions creates/splits it up to those boxes..

#**XT_TPABorder** and **XT_TPAOutline**

TPABorder: Returns the border outside your shape.

TPAOutline: Returns the border on your shape.For multiple shapes, I would suggest ClusterTPA(Dist = 1, 8way=False) first.. Then grab borders of the shapes you want.

#**XT_TPASimplePoly**

Uses `XagonPoints` combined with ConnectTPA to draw a line trough each

point given by `XagonPoints`. So we get a "proper polygon" with x sides. So it creates everything from triangles to over 100-sided polygons..

#-----------------------------------------------------------------------------------------

That's it for now.. source, and link to dll:

https://github.com/WarPie/SCARExt/

On a sidenote: The library also allows you to quickly create 2DBool- 2DIntArrays and (or as I call am matrices), this can be used for fast manipulation of TPoints, and for quick lookups. EG:

XT_TPAToBoolMatrix(TPA, False, True, True);

Examples are given up on request.

]]>

And why does my anti virus say Potential Threat is "InstallMonetizer.AU"?

The earlier versions of scar didn't have any of this.

]]>