Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal

Leaderboard


Popular Content

Showing content with the highest reputation since 12/12/11 in all areas

  1. 1 point
  2. 1 point
    You tried these with the normal client? I'll look at it this weekend. Also, did you get the latest OSI from github (not include manager)
  3. 1 point
    Video instructions on how to use the bot:
  4. 1 point
    https://github.com/SCAR-Divi/ShellUtils Load the ShellUtils plugin and use Run() or RunEx().
  5. 1 point
    Nvm found the correct section https://wiki.scar-divi.com/Category:File_Functions
  6. 1 point
    Looks good. Glad to see certificate error gone and the shiny new design. IPB, PHP 7 woo. Wiki is back up too
  7. 1 point
    {******************************************************************************* procedure WindMouse(xs, ys, xe, ye, gravity, wind, minWait, maxWait, maxStep, targetArea: extended); By: Benland100 Description: *******************************************************************************} procedure WindMouse(xs, ys, xe, ye, gravity, wind, minWait, maxWait, maxStep, targetArea: extended); var veloX, veloY, windX, windY, veloMag, dist, randomDist, lastDist, step: extended; lastX, lastY: integer; sqrt2, sqrt3, sqrt5: extended; begin sqrt2:= sqrt(2); sqrt3:= sqrt(3); sqrt5:= sqrt(5); while hypot(xs - xe, ys - ye) > 1 do begin dist:= hypot(xs - xe, ys - ye); wind:= minE(wind, dist); if dist >= targetArea then begin windX:= windX / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5; windY:= windY / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5; end else begin windX:= windX / sqrt2; windY:= windY / sqrt2; if (maxStep < 3) then begin maxStep:= random(3) + 3.0; end else begin maxStep:= maxStep / sqrt5; end; end; veloX:= veloX + windX; veloY:= veloY + windY; veloX:= veloX + gravity * (xe - xs) / dist; veloY:= veloY + gravity * (ye - ys) / dist; if hypot(veloX, veloY) > maxStep then begin randomDist:= maxStep / 2.0 + random(round(maxStep) div 2); veloMag:= sqrt(veloX * veloX + veloY * veloY); veloX:= (veloX / veloMag) * randomDist; veloY:= (veloY / veloMag) * randomDist; end; lastX:= Round(xs); lastY:= Round(ys); xs:= xs + veloX; ys:= ys + veloY; if (lastX <> Round(xs)) or (lastY <> Round(ys)) then MoveMouse(Round(xs), Round(ys)); step:= hypot(xs - lastX, ys - lastY); wait(round((maxWait - minWait) * (step / maxStep) + minWait)); lastdist:= dist; end; if (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) then MoveMouse(Round(xe), Round(ye)); end; {******************************************************************************* procedure MMouse(x, y, rx, ry: integer); By: Benland100 Laptop Movement by Hobbit with help from nielsie95! Description: Moves the mouse. *******************************************************************************} procedure MMouse(x, y, rx, ry: integer); var cx, cy: integer; randSpeed: Extended; {$IFDEF UseLaptopMouse} seg, e, f, g, nx, ny, hypo: Integer; a, b, c: Extended; Miss: Boolean; {$ENDIF} begin GetMousePos(cx, cy); {$IFDEF UseLaptopMouse} miss := (Random(LMouse_MissChance) = 0); e:= 0; a:= x - cx; b:= y - cy; c:= Pow(a,2) + Pow(b,2) hypo:= Round(Sqrt(c)); case hypo of 0: Exit; 1..225: seg:=1; 226..600: seg:= Random(2) + 1; 601..1800: seg:= random(3) + 2; else seg := 5; end; f := Round( a / seg); g := Round( b / seg); repeat Wait(30 + random(50)); {Begin: Modified from MMouse by Benland100} randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0; if randSpeed = 0.0 then randSpeed := 0.1; getMousePos(cx,cy); nx:= (cx + (f * e)) + random(rx); ny:= (cy + (g * e)) + random(ry); {End: Modified from MMouse by Benland100} if Miss then begin nx:= nx + RandomRange(rx, rx * 2); ny:= ny + RandomRange(ry, ry * 2); end; WindMouse(cx,cy,nx,ny,11.0,8.0,10.0/randSpeed,12.0/randSpeed,10.0*randSpeed,10.0*randSpeed); e:= e + 1; until(e = seg); GetMousePos(cx, cy); if not PointInBox(Point(cx, cy), IntToBox(x, y, x + rx, y + ry)) then begin Wait(30 + random(30)); WindMouse(cx,cy,(x + random(rx)),(y + random(ry)),11.0,6.0,10.0/randSpeed,15.0/randSpeed,10.0*randSpeed,10.0*randSpeed); end; {$ELSE} randSpeed:= (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0; if randSpeed = 0.0 then randSpeed := 0.1; X := x + random(rx); Y := y + random(ry); WindMouse(cx,cy,x,y,9.0,3.0,10.0/randSpeed,15.0/randSpeed,10.0*randSpeed,10.0*randSpeed); {$ENDIF} end;
  8. 1 point
    I've been "less active" lately, when it comes to releasing new things. The reason for this is that I've been working on a new project for quite some time now. So now I'd like to present the first public pre-release version for SCAR Divi 4.00, which will replace SCAR Divi 3.xx eventually, when it's finished. This is a pre-alpha release, so it could be far from stable. SCAR Divi 4 marks a major milestone in SCAR's evolution. It focuses on object oriented programming, performance and rapid development. Unlike SCAR Divi 3, this version runs scripts in a separate process, which prevents the script from ever causing the IDE to crash or to be affected in any negative way. Scripts will now execute at lightning speed, as SCAR 4 is powered by the powerful Delphi Web Script engine, which executes scripts efficiently by employing a powerful interpreter engine. The engine also offers a very extensive pascal syntax, with a lot of features which aren't even present in Delphi. This engine was chosen over other engines as it provides the perfect scripting environment, which is very powerful, yet easy to learn. You're probably wondering what SCAR 4 can do right now. So here's a list: Send input to/capture windows Work with bitmaps (WIP) Display errors/hints in-code live Display compiler messages live Display runtime exceptions Code completion Code hints Load included core units Garbage collection Compile projects consisting out of multiple units This list of abilities will of course be growing rapidly. at the moment there is no documentation available yet, but the included core API units can be used as a reference. Keep in mind that the API is still under development and is prone to changes. This small sample demonstrates how to capture a window and convert the image to a bitmap string. uses Macro; var Wnd = TWndTarget.Create(200886); // Replace number with a window handle WriteLn(Wnd.Capture.SaveToString); Aside from the main API, a scripted legacy API is also included, which aims to emulate the SCAR Divi 3 API. To include it, add "Legacy" to uses. Downloads: SCAR Divi Development Enjoy ~Freddy
  9. 1 point
    Ok, latest build has pretty much the entire previous API reimplemented. The Legacy.SCAR3 namespace compiles again. System.ZLib was also added, bugs were fixed and now 3 of the 4 tolerance algorithms from SCAR 3 are available. I have also set up a wiki to document SCAR 4 at http://wiki4.scar-divi.com. Currently it does not yet contain any information, but does have some blank pages which are structured to reflect parts of the current API. That should give you guys an idea where to find some stuff in there. Most of the API is fairly straightforward in use. Here you can find all of the namespaces. EDIT: Latest build has ICloneable interface. EDIT2: TBitmap now supports the loading of SCAR 3 bitmap strings. Several methods were added to TBitmap and TSCARBitmap was added to Legacy.SCAR3.Bitmap to support all of the current TBitmap functionality with a SCAR 3 front-end.
  10. 1 point
    This gave me a chuckle. I'm sitting with a stack of MacBook Pros on my desk I have to configure and distribute. (Dear God I hate Macs) It was decided we would all get the same laptop to make my life easier for maintenance. What laptop to buy was by consensus. When I presented several options to the group (detailing how each stacks up) the fanboys (in the majority) voted for the MacBook even though we could have gotten a kick ass laptop with double the computing power, double the ram, larger screen, longer battery life, etc. for the same price. Our office cell phones (again by consensus): iPhones. Bit dated (iPhone 4 launch) but so on topic (caution: excessive swearing):
  11. 1 point
    This is Bresenham's circle drawing algorithm for SCAR 3.22. I rediscovered it myself; only after writing it did I look it up on Wikipedia. I reinvented the wheel, kind of. I got the idea from my calculus 2 classes and from Bresenham's line drawing algorithm, which I still don't understand completely. program New; const WHITE = 16777215; BLACK = 0; RED = 209910; BMPSIZE = 499; COSPIFOURTH = 0.7071068; var bmp,qq,y,m,k,j: integer; procedure drawevencircle2(offsetx,offsety,radius:integer); //radius includes the outer pixel var radiussquared,Y0,pixelstodo,count: integer; temp1,temp2,temp3,temp4: integer; begin pixelstodo:=round(radius*COSPIFOURTH); radiussquared:= radius*radius; radiussquared:=radiussquared + radius div 2; Y0:=radius; for count:=0 to pixelstodo do begin temp1:=offsetx+count+1; temp2:=offsety-Y0; temp3:=offsetx-count; temp4:=offsety+Y0+1; fastsetpixel(bmp, temp1,temp2 , RED);//second octant fastsetpixel(bmp, temp3,temp2 , RED);//third octant fastsetpixel(bmp, temp1,temp4 , RED);//seventh octant temp1:= offsetx-Y0; temp2:=offsety+count+1; fastsetpixel(bmp, temp3,temp4 , RED);//sixth octant temp3:=offsety-count; temp4:= offsetx+Y0+1; fastsetpixel(bmp, temp1, temp2, RED);//fifth octant fastsetpixel(bmp, temp1, temp3, RED);//fourth octant fastsetpixel(bmp, temp4, temp2, RED);//eighth octant fastsetpixel(bmp, temp4, temp3, RED);//first octant if((Y0*Y0+count*count)>radiussquared) then Y0:=Y0-1; radiussquared:=radiussquared-1; end; end; procedure drawevencircleopt(offsetx,offsety,radius:integer); //radius includes the outer pixel var radiussquared,Y0,pixelstodo,count,Y0squared,countsquared: integer; temp1,temp2,temp3,temp4: integer; begin pixelstodo:=round(radius*COSPIFOURTH); radiussquared:= radius*radius; Y0squared:=radiussquared; radiussquared:=radiussquared + radius div 2; Y0:=radius; countsquared:=0; for count:=0 to pixelstodo do begin temp1:=offsetx+count+1; temp2:=offsety-Y0; temp3:=offsetx-count; temp4:=offsety+Y0+1; fastsetpixel(bmp, temp1,temp2 , WHITE);//second octant fastsetpixel(bmp, temp3,temp2 , WHITE);//third octant fastsetpixel(bmp, temp1,temp4 , WHITE);//seventh octant temp1:= offsetx-Y0; temp2:=offsety+count+1; fastsetpixel(bmp, temp3,temp4 , WHITE);//sixth octant temp3:=offsety-count; temp4:= offsetx+Y0+1; fastsetpixel(bmp, temp1, temp2, WHITE);//fifth octant fastsetpixel(bmp, temp1, temp3, WHITE);//fourth octant fastsetpixel(bmp, temp4, temp2, WHITE);//eighth octant fastsetpixel(bmp, temp4, temp3, WHITE);//first octant if((Y0squared+countsquared)>radiussquared) then begin Y0squared:=Y0squared-(Y0*2)+1; Y0:=Y0-1; end; countsquared:=countsquared+(count*2)+1; radiussquared:=radiussquared-1; end; end; begin displayDebugImgWindow(BMPSIZE+1,BMPSIZE+1); wait(100); qq := GetDebugCanvas; bmp := BitmapFromString(BMPSIZE, BMPSIZE, ''); y:=getbitmapcanvas(bmp); m:=1; j:=getsystemtime; for k:=1 to 20 do begin m:=m+2+2*k; drawevencircle2(m,22,k); end; for k:=4 to 200 do begin drawevencircle2(250,250,k); k:=k+2; end; writeln(getsystemtime-j); m:=1; j:=getsystemtime; for k:=1 to 20 do begin m:=m+2+2*k; drawevencircleopt(m,22,k); end; for k:=4 to 200 do begin drawevencircleopt(250,250,k); k:=k+2; end; writeln(getsystemtime-j); SafeCopyCanvas(y, qq, 0, 0, BMPSIZE, BMPSIZE, 0, 0, BMPSIZE, BMPSIZE); freebitmap(bmp); end. In this program, ironically, the optimized version is consistently slower than the non-optimized one. EDIT: I messed up the squaring code for the optimized version earlier. It is correct now.
  12. 1 point
    OSRS07 - Stringer v0.1 Saw a few people ask about a stringer for Amberleaf's script over here.. All credit is to Amberleaf, just updated it to do to just STRINGS. If you want to fletch use Amberleafs script found here. I am not responsible for anything happens to your account. Instructions This is a list of banks supported, you must change these values to the bank of your choice on line 64 & line 177 in order for this script to run correctly, use either the number of the bank or its entire name. RS07_BANK_DRAYNOR = 0; RS07_BANK_VARROCK_EAST = 1; RS07_BANK_VARROCK_WEST = 2; RS07_BANK_EDGEVILLE = 3; RS07_BANK_FALADOR_EAST = 4; RS07_BANK_FALADOR_WEST = 5; RS07_BANK_AL_KHARID = 6; RS07_BANK_TZHAAR = 7; RS07_BANK_CATHERBY = 8; RS07_BANK_SEERS_VILLAGE = 9; RS07_BANK_ARDOUGNE_EAST = 10; RS07_BANK_ARDOUGNE_WEST = 11; RS07_BANK_YANILLE = 12; RS07_BANK_FISHING_GUILD = 13; RS07_BANK_PEST_CONTROL = 14; RS07_BANK_LUMBRIDGE = 15; All you need is your logs and strings in the first two slots of your bank (far left). Its currently set for pest control bank. Download stringerV02.scar
  13. 1 point
    Well, as I had nothing else to do I figured I could give a short "tutor" about measuring the distance between points, and how different implementations works. It's not a lot of reading and shit, mostly just straight forward. I'm going to walk trough the few methods that are normal to use in different context's. ================================================= Euclidean distance: This is the `line of sight` version of distance, which uses Pythagorean theorem. Stretch out your arm, and turn 360 degrees, no matter direction, you always reach `so far`. Euclidean distance will always return a floating-point value due to a call to square-root. Math formula: dist(q,p) = sqrt((px-qx)^2 + (py-qy)^2) Pascal implementation: function Euclidean(pt1,pt2:TPoint): Double; begin Result := Sqrt(Sqr(pt1.x - pt2.x) + Sqr(pt1.y - pt2.y)); end; Thoughts: It's a bit slow for performance applications, mostly due to complecities of computing square root. This can be be avoided to a degree with Squared Euclidean distance. Take for example if your just computing difference between two Euclidean distances, and it's just too slow with Sqrt, then you can do this without any losses: function SqEuclidean(pt1,pt2:TPoint): Double; begin Result := Sqr(pt1.x - pt2.x) + Sqr(pt1.y - pt2.y); end; Now the resulting number will differ as we are not calculating the square root, but it's a faster algorithm for comparing, which is almost always the case. Edit: Replaced Power(.., 2) with Sqr(): Sqr(pt1.x - pt2.x) is the same as Power((pt1.x - pt2.x), 2), but in compiled code Sqr(x) translates to the same as x*x, a IMUL or FMUL instruction, which is faster then whatever long asm code Power translates to. To use Squared Euclidean as a distance test, it's needed to square the radius on the other side of the comparison-operator (<,=,>), example: function InRadius(pt1,pt2:TPoint; Distance:Extended): Double; begin Result := Sqr(pt1.x - pt2.x) + Sqr(pt1.y - pt2.y) <= Sqr(Distance) end; ================================================= City Block .. or as some might know it as: Manhattan distance. This is much more friendly to performance. Now think about the pixels on the screen, you can see that it's IMPOSSIBLE to draw a straight 45 degree line, there will be a gap between each point/pixel, it's like walking in the City, you cant drive over the buildings, you need to drive around. This algorithm walks around each pixel/building (unlike Euclidean, which flies over am in a straight line). Math formula: dist(q,p) = |px - qx| + |py - qy| Pascal implementation: function Manhattan(pt1,pt2:TPoint): Double; begin Result := abs(pt1.x - pt2.x) + abs(pt1.y - pt2.y); end; Thoughts: As it's a different algorithm, its uses are not always the same as Euclidean-distance. The result area of a distance of EG. `8` can be visualized as a tilted square at 45 degrees, with far fewer points (or pixels if you like) within the same distance compared to Euclidean, and Chebyshev (see next). ================================================= Chebyshev distance This is one I find my self using very often. It's a quick way to measure distance, it's also the simplest to understand by just looking at it. This time you can imagine a chessboard (assuming you know the game), the King can walk one step in any direction, including one step at 45 degrees: That is Chebyshev distance = 1. Math formula: dist(q,p) = max(|px - qx|, |py - qy|) Pascal implementation: function Chebyshev(pt1,pt2:TPoint): Double; begin Result := max(abs(pt1.x - pt2.x), abs(pt1.y - pt2.y)); end; Thoughts: It's similar to Manhattan distance. It also results in a square, but you can think of it as aligned with the horiz. and vertical axes. The amount of points within an area of the distance `8` contains many more points than ether of the other methods. ================================================= Now that's those... But I bet you can't yet visualize the result, so I will give you this image just to demonstrate the result after using each algorithm to draw each there area/block given a distance of 5: This picture also shows you that the distance in vertical and horizontal directions are the same no matter algorithm. PS: I can only hope that the pascal examples work, haven't touched pascal in quite some time, and I'm not able to test it now... This is also the result of me not having anything better to do.
  14. 1 point
    I added some things to Toby1's code to prevent it form getting stuck after Runescape's most recent update. I don't know how to upload a file because I'm very new with Scar but here's the code! Just copy and paste it! Any tips/suggestions to improve the code is encouraged although I'm not sure how much time I will have with school. Warning: Does NOT support randoms although they are very rare. A Runescape ban could result in using this bot. program RS07_FightCaveFighter; {$DEFINE RS07} {$I MSSL\MSSL.scar} var X, Y: Integer; const USERNAME = ''; PASSWORD = ''; procedure EnterCave; begin Wait(2000 + Random(1700)); if (FindColorTol(X, Y, 10921906, RS07_GameActionBx.X1, RS07_GameActionBx.Y1, RS07_GameActionBx.X2, RS07_GameActionBx.Y2, 5)) then begin RS07_ClickMouse(X, Y, mbLeft); MSSL_Wait(800 + Random(3000)); end; end; begin MSSL_Setup; ClearDebug; // RS07_SetScreenBrightness(RS07_SCREEN_BRIGHTNESS_VERY_BRIGHT); ColorToleranceSpeed(2); SetColorSpeed2Modifiers(0.28, 0.17); repeat RS07_AutoRetaliate; MSSL_Wait(500); // if not RS07_LoggedIn then // begin // RS07_LogIn(username, password); // MSSL_Wait(3000 + Random(43)); // RS07_SetCompassDir('S'); // end; if RS07_LoggedIn then begin EnterCave; MSSL_Wait(10000 + Random(5000)); end; if FindColorTol(x, y, 16711680, 81, 369, 480, 459, 2) then RS07_ClickMouse(300 + Random(15), 446 + Random(7), mbLeft); MSSL_Wait(600 + Random(500)); until False; end. You can change the waiting times if you know what you are doing! 1000 = 1 second Enjoy! Exatox's Fight Caves 1.0.scar
  15. 1 point
    Found it! Keep in mind this is pretty outdated and only works with Scar 3.15 This will only solve the "correct color" question. This is completely untouched since it was made back in '07 except for I added a wait in the main loop. Other than that... and the fact that it was my first or second script.. Edit it as needed and try to update it so it's 3.38+ compatible. {.Script Info: # ScriptName = AfkStork # Author = Tyler aka *retracted* # Description = # Version = 2.0 Added Mod Protection & Screenshots # Date = Saturday, Dec 3rd, 2007 # Comments = Lags a bit with the bitmaps. (added a wait at end of main loop April 10th, 2013) /Script Info} // SETUP'S ON LINES 58 AND 59 -- Screenshots are saved to your main scar folder(C:\Program Files\Scar***) {~~READ THE FUCKING COMMENTS & KNOWN BUGS IF YOUR HAVING PROBLEMS~~} //////////////////// Known Bugs ///////////////////////// /////////////////////// LAG /////////////////////////////// //Lag, yep lag, caused by bitmap images within the script//// //It was the only way I could find out how to actually have// //the script select a specific color/image.(bitmap)////////// /////////////////////////////////////////////////////////// ///////////////////// "White" /////////////////////////////// //When any white text or white image is placed ontop of the// //StorkPk window it will click on the white and you will get//////// //A read out in the debug box saying "Found White, Clicking White"// //If you want to fix this, string your own images. Or just don't//// //Put any windows ontop of the stork pk window!/////////////////// //////////////////////////////////////////////////////////////// //////////////////// Other Colors //////////////////////////////// //Some of the colors such as Dark Red and Green are not selected/////////// //If they are the correct word & at the top of the list of colored words.// /////////////////////////////////////////////////////////////////////////// ////////////////// Hazelmere ////////////////////////////// //If you notice you are not selecting him quick enough or/// //If it's to quick change the Waits on line 223 and 235 to// //Whatever you want, faster or slower, 1000 = 1 second////// ////////////////////////////////////////////////////////// //IMPORTANT: Have your map set up so it looks like this: // If you dont understand the drawing below go here: // http://img139.imageshack.us/my.php?image=mapix9.png // OR // *retracted* // N // ' , // , . //W______,_____E // . , // , // , ' // S //The reason this is done is so that Hazelmere's body is still visible even if he's under you, most of the time. program AfkStork; const Hazel=8437792; //The color of Hazelmere's legs seem to work the best, Try his green arms if you want. WaitToLogin=20000; //Set a wait time to login, dont make it to short or else it's obvious you have autologin. var a, x, y: Integer; // A is used to stop the repeat if mod's are detected. login, loginOk, TalkToHazel, Blue, DarkRed, Green, Magenta, Orange, Red, White, Yellow, Stork, Tob3, Tia, Xpheus, Ddr, S_1_u_r_r_y, Ukpka: Integer; procedure loadBmps; begin { 'Click here to login' button } login := BitmapFromString(63, 10, 'beNrVkkEKwlAMRD2uoihWK4p' + 'ijyCKiCL2rH4MhpBJ5telIYuXyUx+F+360afGzcn26FsoWiBm3Gap' + 'LIgPYUp5sjpLu+e4npl/SoVBtWWnSk3bi4LjcJVtceQ2cnbI68Kzz' + 'VVB2ZVdCVfNaMvGUEE9TM23N9ELKLuyK+GqGW3ZGCqoh6nF7i56Ac' + 'eucUXMxDb8Dv+wMi73D9ELKLsRuWpGG09Vg2GqOTwVpN1v4HQduTn' + 'zhCkezN4qtT6+FLTt1olWIeaqx30DSYV3RG+7/l/7De14NTY='); { 'Ok' button } loginOk := BitmapFromString(70, 18, 'beNrtlN8HAkEQx++P7KGXe0lO+u' + 'Wcc9Y5R5KuSOJEEkmk/7Jh+Jpmt/exWp+H787Mw3xYm7rRrAPJ9/F' + 'bsmKNYdYNUkeMF3smCR3VxdUgMMryAwEFvvqVX9kOMJoUR4KX5Axk' + 'ETk4aQEYTcsTwXtyBrIon6IaMwKM5lVP8KqcgSxKIzVmBBgt3ZngV' + 'TkDWVQ/hpq0AIzy+kJgVb76FWQ1ZgcYFc2VCf7equtnO8CobG9A6f' + 'gtP9sBRtXqHgcwcutHHMCo3jzjAEbN9hUHMGp37ziAEYVoYKM/1vk' + 'ARwaenA=='); { 'Blue' Color & Word } Blue := BitmapFromString(19, 6, 'beNpjYGBg+A9GWBn4BYlRg0sj8' + 'TZiIpJsxCWFaQuRfiTCawAD6Ea6'); { 'DarkRed' Color & Word } DarkRed := BitmapFromString(48, 7, 'beNqtUkEOADAE6/9f5Wlbto' + 'sMrcTEqYSqAjvs5A1zmSKx5ONB+GSosbKT4Gg3R9DomUSQ6sy0Wq2' + 'QUnfIVxuJPtWz+nwk+OVfmIkmLfrXP0YNMOSTLmWEF97dgoE='); { 'Green' Color & Word } Green := BitmapFromString(31, 9, 'beNpjYEAB/5EQLhE8yhgwVGIa' + 'jpWLVTuaIC4F/6lhOH4X4vE+piP/U8Nw/EHHQA3DyQsWPJaSkVrwJ' + '5ihAgCo3W+R'); { 'Magenta' Color & Word } Magenta := BitmapFromString(43, 8, 'beNq9UkEKACAI2/8/bQcvYu' + 'lYRkNiyJyKAQbzAOCvIyYjSUkqSMrdP/HoQ3upyaM/LeyXlUadr9D' + 'sJZXf9Xp4F8qrG1XKoX+P6uv+hDqzgAWQjDTa'); { 'Orange' Color & Word } Orange := BitmapFromString(36, 8, 'beNpjYPg/wQGIGBgQDAhAYyO' + 'rQVOPXxaPSgZUANdOjAnEC2LahV8NMYK4nIoZhlTxAprjMQ2nJGTw' + 'qMRqOGZk4TcBjwKsHiQb4AoNGgGivAAAY+Plsg=='); { 'Red' Color & Word } Red := BitmapFromString(20, 9, 'beNpjYICA/2CEzEYWQVaAJo5LCl' + 'PwPw5bGIjQy4DbPWgOJkYvfu+Qp5egf3FpJz6c6Q0AfclIuA=='); { 'White' Color & Word } White := BitmapFromString(26, 7, 'beNpjYPj//z8DA4hEZmAVRGbg' + 'YhOjnm6mIQM0r5HtNjigimnkuQ2PZxmoDgCv5g//'); { 'Yellow' Color & Word } Yellow := BitmapFromString(35, 9, 'beNpjYACC//9BCAIgbEwR4pV' + 'B2FgF8bPxMPDIYlUJB3S2CC1YyLAImSToI0xB/BZh9Qua4VQJOpIs' + 'oiTVYRqONXyGDwAAocgNAg=='); {Selects the 'Talk-To Hazelmere' option} TalkToHazel := BitmapFromString(91, 8, 'beNrtleEKwCAIhH3/l2' + '6wWEm7O0UK9mP+sjDEz9PMurXbvLP4w9pjyxFFmr/zx+6zmzAMOix' + 'jPu+oCAKBNQpi73gGhFFiJQsOzA+fsx4xIIxGAQhsPWyNaHdeGEeB' + 'HFJIQfBlIOy5TBGPjOezZWR0LWyaygrJ9Mh3vLBUtwMRy+QLIyOAM' + 'PGUfxmo8PwvE/pChGyV/TbtAhs59Cg='); {Kills Client if Stork talks} Stork := BitmapFromString(42, 9, 'beNqtU9EOACAE9P8/rbcmh46' + 'y1hZxHEQyUT2O1fPifJ2J9NrPIloLHYsaeCE5ToMmvnbMIYuWkVPo' + '7W3jFH2foTPdD/+QTDLorYEJCf/FfGtW39FnCYT7fp15Fn0BKIQc8' + 'g=='); {Kills Client if Tob3 Talks} Tob3 := BitmapFromString(38, 9, 'beNpjYPj/H4SQATEimACrGmRB' + 'NAVwLoSBSxZNBKuBuJyHqRjNEDw24rEIq6W43IbJJsNGYkJ45NiIJ' + 'xIpiUeC0YeZSilPq1gTP678RRMAADBhHvA='); {Kills Client if Tia Talks} Tia := BitmapFromString(28, 8, 'beNr7zwAH//+jIGSAJgWRxVSGB' + 'nCZg18Ev4FourA6GA8XUz2mOciGEzQTUxAzcDCtI+hOrNFBoZmYgU' + 'ahmVgDlpjAJMFMAEvV1Ss='); {Kills Client if Xpheus Talks} Xpheus := BitmapFromString(54, 7, 'beNqtUkEKACAI6/+fNiIIcW' + '4aJR1kpc41GzvM1vHhEczDY1b4K5DJocGubkHdk4ngkYD7KViV6on' + 'bve+VtsIcRdBO+AKGKR2GQsOruU1Z8B+bDMu2TU9qHzKepQmZN94t' + 'p4SdG92OgA=='); {Kills Client if Ddr Talks} Ddr := BitmapFromString(30, 8, 'beNpjYACC//9BCBkgi+Bi41KPL' + 'IgmC2GgcfFbilUvVhG4IB6TMfUS6QziTcYlOKRNxhrIxKQTPOGMSx' + 'lWe/HoQjEZAFeI/QM='); {Kills Client if S1urry Talks} S_1_u_r_r_y := BitmapFromString(63, 7, 'beNrNlFkKACAIRLv/p' + 'S1/YnAZI2iRPkrNXoPV2jARHWjoMVGfjP4wdM485MTAZVkkgyc6kI' + '3E7ytjMjo5mKm5DZ+pQaQODzVzrwO/wgV4w1zCl73xPzwv+xY+bPj' + '136aEJw9zQyKNdkxUNtg='); {Kills Client if Ukpka Talks} Ukpka := BitmapFromString(46, 8, 'beNqtUlsKACAI6/6XtiII0a3' + 'WQ/ownTpbVpqZ9ePNR0J2XnMVMxGZJw6HTYTxHGS7ZN+XhCBMLZjA' + '5gpS3E5kwrJbJHuWRyZrISDyVNM7dR6R8JPc/ViFgM6Kqflr/di2A' + 'taFjII='); end; procedure StorkScan; begin if (findbitmap(Stork, x, y)) then begin SaveScreenShot(AppPath+'StorkWasNear.bmp'); wait(2000); A := 0; writeln('Stork Was Near, Killing Client, ScreenShot Saved'); wait(1000); MoveMouseSmooth(497, 16); wait(1000); ClickMouse(497, 16, true); end; end; procedure Tob3Scan; begin if (findbitmap(Tob3, x, y)) then begin SaveScreenShot(AppPath+'Tob3WasNear.bmp'); wait(2000); A := 0; writeln('Tob3 Was Near, Killing Client, ScreenShot saved'); wait(1000); MoveMouseSmooth(497, 16); wait(1000); ClickMouse(497, 16, true); end; end; procedure UkpkaScan; begin if (findbitmap(Ukpka, x, y)) then begin SaveScreenShot(AppPath+'UkpkaWasNear.bmp'); wait(2000); A := 0; writeln('Ukpka Was Near, Killing Client, ScreenShot Saved'); wait(1000); MoveMouseSmooth(497, 16); wait(1000); ClickMouse(497, 16, true); end; end; procedure TiaScan; begin if (findbitmap(Tia, x, y)) then begin SaveScreenShot(AppPath+'TiaWasNear.bmp'); wait(2000); A := 0; writeln('Tia Was Near, Killing Client, ScreenShot saved'); wait(1000); MoveMouseSmooth(497, 16); wait(1000); ClickMouse(497, 16, true); end; end; procedure XpheusScan; begin if (findbitmap(Xpheus, x, y)) then begin SaveScreenShot(AppPath+'XpheusWasNear.bmp'); wait(2000); A := 0; writeln('Xpheus Was Near, Killing Client, ScreenShot Saved'); wait(1000); MoveMouseSmooth(497, 16); wait(1000); ClickMouse(497, 16, true); end; end; procedure DdrScan; begin if (findbitmap(Ddr, x, y)) then begin SaveScreenShot(AppPath+'DdrWasNear.bmp'); wait(2000); A := 0; writeln('Ddr Was Near, Killing Client, ScreenShot Saved'); wait(1000); MoveMouseSmooth(497, 16); wait(1000); ClickMouse(497, 16, true); end; end; procedure S1urryScan; begin if (findbitmap(S_1_u_r_r_y, x, y)) then begin SaveScreenShot(AppPath+'S1urryWasNear.bmp'); wait(2000); A := 0; writeln('S1urry Was Near, Killing Client, ScreenShot Saved'); wait(1000); MoveMouseSmooth(497, 16); wait(1000); ClickMouse(497, 16, true); end; end; procedure logoutScan; begin if (findbitmap(login, x, y)) then begin wait(WaitToLogin+random(2000)); writeln('Logged out - Found login box'); MoveMouseSmooth(x, y); wait(1000); clickmouse(x, y, true); wait(100); end; end; procedure okScan; begin if (findbitmap(loginOk, x, y)) then begin writeln('Found ok box'); MoveMouseSmooth(x, y); wait(1000); clickmouse(x, y, true); wait(5000); moveMouseSmooth(133,133) end; end; procedure FindHazelScan; begin if (findcolorspiral(x,y,Hazel,20,20,500,350)) then begin moveMouseSmooth(x, y); wait(100); clickmouse(x, y, false); //false = right click wait(1000); end; end; procedure TalkToScan; begin if (findbitmap(TalkToHazel, x, y)) then begin writeln('Found Hazelmere trying to Talk-To the Nigger'); moveMouseSmooth(x, y); wait(100); clickmouse(x, y, true); //Clicks on the Talk-To Hazelmere wait(1000); end; end; procedure BlueWordScan; begin if (findbitmap(Blue, x, y)) then begin writeln('Found Blue, Clicking Blue'); moveMouseSmooth(x, y); wait(2000); clickmouse(x, y, true); wait(10000); end; end; procedure DarkRedWordScan; begin if (findbitmap(DarkRed, x, y)) then begin writeln('Found Dark Red, Clicking Dark Red'); moveMouseSmooth(x, y); wait(2000); clickmouse(x, y, true); wait(10000); end; end; procedure GreenWordScan; begin if (findbitmap(Green, x, y)) then begin writeln('Found Green, Clicking Green'); moveMouseSmooth(x, y); wait(2000); clickmouse(x, y, true); wait(10000); end; end; procedure MagentaWordScan; begin if (findbitmap(Magenta, x, y)) then begin writeln('Found Magenta/Pink, Clicking Magenta/Pink'); moveMouseSmooth(x, y); wait(2000); clickmouse(x, y, true); wait(10000); end; end; procedure OrangeWordScan; begin if (findbitmap(Orange, x, y)) then begin writeln('Found Orange, Clicking Orange'); moveMouseSmooth(x, y); wait(2000); clickmouse(x, y, true); wait(10000); end; end; procedure RedWordScan; begin if (findbitmap(Red, x, y)) then begin writeln('Found Red, Clicking Red'); moveMouseSmooth(x, y); wait(2000); clickmouse(x, y, true); wait(10000); end; end; procedure WhiteWordScan; begin if (findbitmap(White, x, y)) then begin writeln('Found White, Clicking White'); moveMouseSmooth(x, y); wait(2000); clickmouse(x, y, true); wait(10000); end; end; procedure YellowWordScan; begin if (findbitmap(Yellow, x, y)) then begin writeln('Found Yellow, Clicking Yellow'); moveMouseSmooth(x, y); wait(2000); clickmouse(x, y, true); wait(10000); end; end; begin loadBmps; A := 1; repeat DdrScan; TiaScan; Tob3Scan; StorkScan; UkpkaScan; XpheusScan; S1urryScan; logoutScan; okScan; BlueWordScan; DarkRedWordScan; GreenWordScan; MagentaWordScan; OrangeWordScan; RedWordScan; WhiteWordScan; YellowWordScan; FindHazelScan; TalkToScan; wait(1000); until(A=0); end. {Var x, y : Integer; Kane : Boolean; Extra bit of code I found intresting. Begin If(getcolor(x, y)=0)then Kane := True Else Kane := False; If(Kane=True)Then Writeln('Found The Color!'); End.}
  16. 1 point
    Hi guys, I am currently working on some Warrior guild stuff.. There are 4 minigames in Warriors guild. To enter the warriors guild, a player must either have Attack and Strength levels that add up to at least 130. I decided I would not make a seperate thread for each minigame, so keep up with this one! I will update it constantly with the new minigames Shotput minigame(str) Script finished. Start in 18lb Shotput area ( http://oi49.tinypic.com/2v28jl0.jpg)Run script! (V2 Recommended!) Catapult minigame(def) Script in progress. To be finished. Dummy room(atk) Script not started. To be finished. Animation room(combat) Script not started. To be finished. (This may take weeks) RS07_Shotput SMART.scar RS07_Shotput SMART v2.scar
  17. 1 point
    Is there a way to do that in scar, would be perfect if I could run an exe, pass some parameters and recieve the output to scar, if that is not possible then opening a batch script will do too. Ok finally got it after a few hours of googling, it's hard when you're a noob . If anyone else is interested then here it is: program New; var hwnd:Longint; function ShellExecute(hwnd:integer; lpOperation:string; lpFile:string; lpParameters:string; lpDirectory:string; nShowCmd:integer):Longint;external'ShellExecuteA@C:\WINDOWS\system32\shell32.dll stdcall'; begin ShellExecute(hwnd,'open','C:\WINDOWS\notepad.exe','','',5) ; end. api calls must be enabled
  18. 1 point
    This script is now discontinued. Please use my universal buyer : http://forums.scar-divi.com/showthread.php?2186-Buyer-2007-Shop-N-Hop-A-Universal-Buyer
  19. 1 point
    https://github.com/OfficialSCARInclude/OSI2/commit/fd7a359d64e584842093beb701e1552c4b6b89d0 [sCAR]{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Official SCAR Include Runescape 07 Login Routines -------------------------------------------------------------------------------- * function WelcomeScreen: Boolean; By: Wanted * function LoginScreen: Boolean; By: Wanted * function HowToPlayScreen: Boolean; By: Wanted * function MessageScreen: Boolean; By: Wanted * function LoggedIn: Boolean; By: Wanted * function RSReady: Boolean; By: Wanted * function LoginSoundDisabled: Boolean; By: Wanted * function ToggleLoginMusic(Enable: Boolean): Boolean; By: Wanted * function PressNewUser(CheckWS: Boolean): Boolean; By: Wanted * function PressCancelHowToPlay(CheckHTPS: Boolean): Boolean; By: Wanted * function PressExistingUser(CheckWS: Boolean): Boolean; By: Wanted * function PressLogin(CheckLS: Boolean): Boolean; By: Wanted * function PressCancelLogin(CheckLS: Boolean): Boolean; By: Wanted * function TypeInUsername(Username: string; CheckLS: Boolean): Boolean; By: Wanted * function TypeInPassword(Password: string; HitEnter, CheckLS: Boolean): Boolean; By: Wanted * function FindLoginMessageTextEx(Text: string; TPA: TPointArray): Boolean; By: Wanted * function FindLoginMessageText(Text: string): Boolean; By: Wanted * function ClickToPlay(CheckMS: Boolean): Boolean; By: Wanted * function ActivePlayers: Integer; By: Wanted * function AllPlayersInActive: Boolean; By: Wanted * function NextPlayerIndex: Integer; By: Wanted * function NextActivePlayerIndex: Integer; By: Wanted * function Login: Boolean; By: Wanted * function LogOut: Boolean; By: Wanted * function SwitchToPlayer(Player: Integer; Active: Boolean): Boolean; By: Wanted * function NextPlayer(Active: Boolean): Boolean; By: Wanted * function RandomNextPlayer(Active: Boolean): Boolean; By: Wanted =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}[/sCAR] [sCAR]{$DEFINE RS07} {$DEFINE OSI_RS07_Color_Anti_Randoms} {$I OSI\OSI.scar} procedure ScriptTerminate; begin FreeOSI; end; begin SetUpOSI; Players[0].Name := 'Zezima'; Players[0].Pass := 'isanoob'; Players[0].Active := True; WriteLn(BoolToStr(Login)); end.[/sCAR] [sCAR]begin // Response Wait Trys Action [CurrentPlayer].Loc Modified By Build # Status Inc(Attempts); if (Attempts < 2) then begin SetLength(Actions, 9); Actions[0] := ['Your account is already logged in.', 15000, 10, 'PlayerTrue', 'Already logged in']; // March 11, 2013 Wanted ??? Unconfirmed Actions[1] := ['Error connecting to server.', 20000, 10, 'Exit', 'Error Connecting']; // March 11, 2013 Wanted ??? Unconfirmed Actions[2] := ['Invalid username/email or password.', 0, 2, 'PlayerFalse', 'Wrong User/Pass']; // March 11, 2013 Wanted ??? Confirmed Actions[3] := ['Your account has been disabled.', 0, 1, 'PlayerFalse', 'Acc Disabled']; // March 11, 2013 Wanted ??? Unconfirmed Actions[4] := ['You need to vote to play!', 0, 1, 'PlayerFalse', 'Needs to vote before play']; // March 11, 2013 Wanted ??? Unconfirmed Actions[5] := ['Too many incorrect logins from your address.', 5 * 60500, 2, 'PlayerFalse', 'Too many incorrect logins']; // March 11, 2013 Wanted ??? Confirmed Actions[6] := ['The server is being updated.', 0, 1, 'Exit', 'Server updated']; // March 11, 2013 Wanted ??? Unconfirmed Actions[7] := ['RuneScape has been updated!', 0, 1, 'Exit', 'RS updated']; // March 11, 2013 Wanted ??? Unconfirmed Actions[8] := ['This world is full.', 5000, 20, 'PlayerTrue', 'Desired world full']; // March 11, 2013 Wanted ??? Unconfirmed H := High(Actions); end;[/sCAR] [sCAR]begin WriteLn('Unknown login error!'); Players[CurrentPlayer].Loc := 'Unknown login error'; SaveScreenShot(OSI_Path + 'RS07\Core\Database\Login\' + TheDate(1) + TheTime); NextPlayer(False); Exit; end;[/sCAR] [sCAR]type TRS07Player = record Name: string; // In-game handle Login: string; // Login handle Pass: string; // Login password Pin: string; // Bank Pin Loc: string; // Player location Status: string; // Player status LampSkill: string; // Skill for lamp/exp randoms Rand: string; // Current Random Worked: Integer; // Time player has worked Banked: Integer; // Number of times player banked Trips: Integer; // Number of trips player has made World: Integer; // Preferred world Level: array[0..Skill_Count] of Integer; // Levels of all skills Active: Boolean; // Player active Booleans: array of Boolean; // Boolean records Integers: array of Integer; // Integer records Strings: array of string; // String records Extendeds: array of Extended; // Extended records Arrays: array of TVariantArray; // Custom records TIA: T2DIntArray; // TIA records end;[/sCAR] Also fixed some center points for MC, MB, MD. TPAExtractPoints is gone out of TPA.scar and now in SCAR More good stuff on the way soon Bank, the rest of Map, Chat, Anti-randoms, Worldswitcher. I decide to add back WorldSwitcher because it's more complicated than I anticipated (not as bad as RS2 though) and Login.scar is already pretty big Cheers -Wanted
  20. 1 point
    I'm impressed! You R doing a fine job, Janilabo! You're right up my ***, on my python-based ( project06 )-library. But your ChooseOption-stuff seems to be better then what I got so far, I bet it's faster as well. I'll remake mine soon enough, without using bitmap this time Regarding PRS06_SetCompass() : >> You cant simply calculate diffireanse like abs(angle1 - angle2);... Then differanse between 359.9 and 0 will be 359.9... Not a big problem, but it will result in setting the compas further off then it already is, and unneeded rotating.
  21. 1 point
    I am surprised no one else has posted this, but I am having issues with fight mode. If you set it to controlled it goes to strength. If you set it to defense it goes to strength. The only modes that work correctly are attack and strength. It's impossible to set controlled or defense.
  22. 1 point
    LJ, can't you do something like this (doesn't really require terminating): {$IFNDEF SCAR336_UP} begin TaskMessageDlg('Please Update SCAR Divi', 'OSI: Please update SCAR Divi to version 3.37 or higher to run this script!', mtWarning, [mbClose], 0); end. {$ENDIF} begin WriteLn('Yay, SCAR Divi 3.37[+]!'); end. I do this in MSSL: http://svn.scar-divi.com/mssl/trunk/MSSL.scar (although I use $ERROR, but I could replace it with mainloop + MessageDlg)
  23. 1 point
    Yes but change the color in the FindColor function. e.g. FindColor(X, Y, 1529539, 0, 0, CBox.X2, CBox.Y2) to: FindColor(X, Y, Whatever color here, 0, 0, CBox.X2, CBox.Y2) Also by "Selecting" a client I mean this in SCAR: So for instance here is full code for multiple colors second color i added was (16777215): [scar] program AutoSelectNPC; var CBox: TBox; procedure SetupClient; begin GetClient.Activate; CBox := GetClient.ImageArea; end; procedure MainLoop; var X, Y: Integer; begin repeat if FindColor(X, Y, 1529539, 0, 0, CBox.X2, CBox.Y2) then begin ClickMouse(X, Y, mbLeft); ClickMouse(X, Y, mbLeft); end; if FindColor(X, Y, 16777215, 0, 0, CBox.X2, CBox.Y2) then begin ClickMouse(X, Y, mbLeft); ClickMouse(X, Y, mbLeft); end; wait(5000); until False; end; begin SetupClient; MainLoop; end.[/scar]
  24. 1 point
    Yep, what LJ said: //By turner850 program RSCCaptchaSolver; var captchaBmp: TSCARBitmap; begin captchaBmp := GetClient.CaptureEx(128, 229, 384, 270); try CaptchaBmp.SaveToBmp(ScreenPath + 'captcha.bmp'); finally CaptchaBmp.Free; end; end. Wiki is not yet updated to TSCARBitmap. -Jani
  25. 1 point
    The All-In-One Beginners Guide to SCAR Divi! If nothing else you should definetly read this - http://wiki.scar-divi.com/index.php?title=The_Official_SCAR_Scripting_Guide Table Of Contents 1. What is SCAR Divi 2. A Brief History of SCAR Divi 3. What can SCAR Divi do 4. Getting SCAR Divi on your computer 5. Hello World! 6. The SCAR Divi Interface/Macroing Development Environment 7. SCAR Divi's Include Manager & Current Includes 8. SCAR Divi's AutoCompletion/Code Hints and Selecting a Client 9. SCAR Divi's Advanced Debugging 10. SCAR Divi Full Scripting/Coding Tutorial 11. Resource Links for SCAR Divi and the forums, Tuts/Resources/etc. 1. What is SCAR Divi SCAR Divi is a powerful macroing environment that allows users to write scripts with the goal of automating repetitive tasks on a windows based machine. SCAR Divi supports Windows Systems only mostly being: Windows XP, Windows Vista, Windows 7, and Windows 8. 2. A Brief History of SCAR Divi "SCAR was originally created by Kaitnieks (Aivars Irmejs) in 2003 with the purpose of replacing his previous creation AutoRune, a program designed to automate tasks in RuneScape. The program rapidly evolved into a very powerful color based macroing application and was used not only for RuneScape, but also to automate other games and tasks not related to gaming. Late 2006 Kaitnieks retired from the scene and passed on the task of developing SCAR to Freddy1990 (Frédéric Hannes), who up to this day still develops SCAR. When the development was passed on, SCAR was renamed to SCAR Divi. Divi is the Latvian word for "two", as now 2 people had developed the program." So SCAR is like 10+ years old! It is very stable! 3. What can SCAR Divi do The links provided may be outdated, because SCAR Divi's wiki and tutorials/guides may not be totally up to date or complete. But I provided the ones that when "I checked", they were correct/up to date mostly. - Uses a Pascal/Delphi syntax language that has support for Arrays, and more (See the Official SCAR Scripting Guide) - Defines for the compiler (SCAR Divi's defines) - Use your Keyboard and Mouse to do things for you (Mouse & Keyboard functions) - Find images/colors on your computer screen (Bitmap/Color/dtm/etc functions) - It has a Window API for Finding/Interacting with Windows/Programs (Window/Client functions) - Text/font (GetTextAt/load font functions) (not documented in wiki yet) - Integer/Boolean/Extended (decimal)/Box/Point/Colors (like clBlack)/other Types (type functions) (Arrays with these types, functions) - Strings (String functions) - Interact with SQLite3 databases (Database functions) - Math (Math functions) - ZLib Compression (Compression functions) - Supports the use of Forms (form functions) - MD5 Hashing (Hashing functions) - Various Conversions for Types and Colors (Conversion functions) - Internet, TCP, HTTP, and proxy (Internet functions) - Hex, & Base64 Encoding (Encoding functions) - Clipboard copy & paste (Clipboard functions) - Time/Date/etc (Time functions) - INI files (INI functions) - Rewrite/Create/Delete Files/Folders (File functions) - Regex matching (Regex functions) - Some Sound usage (Sound functions) - Settings (Not SCAR Divi's settings) (Settings functions) - Command line access (See Command Line paramters) - System (Not much) (System functions) - Debugging (Debug functions) These are the ones just listed from the wiki. There is still a lot of undocumented/not up to date things SCAR Divi can do! - Auto completion of code with (CTRL+Spacebar) - Code hints - Functions to minimize, set as top, minimize to tray, and others for SCAR Divi's window - Use functions from Windows through API Calls - Make your own plugins (Delphi, C++, other) to extend SCAR Divi's functionality - Print your code - Grab colors/bitmaps from the screen with a tool - Change the client (targeted) window's title - Save screenshots - Has changeable hotkeys, change image to string conversion for use in your code - Debug & messages box, color history, function list, and target client information - Form & DTM Editor - Find & replace code - Step by Step debugging has variable list - Up to date coordinates in the bottom left hand corner based on the client (targeted) window - go to line numbers, change highlighted colors - Updating - Built in Firewall And much more to offer. 4. Getting SCAR Divi on your computer No SCAR Divi does not contain any malware, or viruses and anything that says so is a false positive. I've had SCAR Divi for a long time, I've had no problems, and usually my anti virus has no problems with it either. You might have to add it to your "exceptions" list if it bothers you or doesn't allow you to use SCAR Divi. First download SCAR Divi from http://www.scar-divi.com or http://www.scar-divi.com/?page=download then install it on your windows based system. If you need help follow my tutorial on Downloading & Installing SCAR Divi. Or watch Freddy's (the creator of SCAR Divi) 5. Hello World! Run this code in SCAR Divi to produce your first Hello World for SCAR Divi!: [scar] program New; begin WriteLn('Hello World!'); end. [/scar] You should see Hello World! in the Debug Box: 6. The SCAR Divi Interface/Macroing Development Environment Click to enlarge the image and learn all the parts to the SCAR Divi interface! That covers most of the basics. But then we have the menu bar (File, View, Tools) and all of those buttons. I will only cover the buttons under the Tools tab as the rest should be self explanatory The Tools menu offers a variety of things to help you out. 1. You can Redefine SCAR's built in keyboard shortcuts (or hotkeys) 2. Save a screenshot 3. Pick Color and Pick Bitmap, again as seen on SCAR's toolbar 4. Convert a Picture to string (only Bitmap pictures I think to a String for use in your script) 5. String to Picture (a string from SCAR, not sure if legacy strings from SCAR 3.34 or before are supported?) 6. Update Bitmaps, I think this updates your bitmap strings to the new string method (better) 7. DTM Editor, this is for use with using DTM functions such as FindDTM, and etc. 8. Form Editor, to make forms for use with SCAR Divi 9. Explore all the folders inside the SCAR Divi Root folder 10. Associate .scar files with SCAR Divi 11. Export the script to an HTML web page 12. Options (these are the options for SCAR Divi) SCAR Divi's Hotkeys (shortcuts): CTRL + N : New Script CTRL + O : Open Script CTRL + S : Save Script CTRL + T : New Tab CTRL + W : Close Tab CTRL + Alt + W : Close All Tabs CTRL + F : Find text F3 : Find next F7 - Step Into (debugging) F8 - Step Over (debugging) CTRL + R : Replace text Shift + Control + i : Indent text Shift + Control + u : Un-Indent text CTRL + G : Go to line number CTRL + M : Minimize SCAR to system tray CTRL + C : Copy text CTRL + X : Cut text CTRL + V : Paste text F1 : To open the SCAR Divi Online Manual (wiki.scar-divi.com) The rest of the hotkeys you can redefine yourself, here are the defaults: Settings box for SCAR Divi In there you can change settings for 1. The Editor and its highlighting 2. The Firewall 3. Use API Calls in SCAR Divi 4. misc, and more stuff 7. SCAR Divi's Include Manager & Current Includes SCAR Divi's Include Manager reachable by (File->Include Manager in SCAR Divi): You can Install/Remove/Update Includes that will install themselves into SCAR Divi's Includes folder which is reachable by going to Tools->Explore->Includes Folder. Once Installed you can use some of the functions provided by these includes. But you need to include the files in your script. This is why they are called includes because you include them into your script on SCAR Divi to use that include or library. In order to learn about this, and use this. Go to the SCAR Divi Full Scripting/Coding Tutorial section on this page. Freddy's tutorial on using the Includes Manager. Current Includes offered and what they provide: OSI - Official SCAR Include: This provides tons of functionality & tools for SCAR Divi! But this is mainly geared toward automation of a popular game called Runescape®. Created By: Wanted. OSI Wiki: wiki.scar-divi.com/osi OSI Repository on Github: https://github.com/OSI1/OSI1 OSI Repository on SCAR Divi website: http://svn.scar-divi.com/osi/ MSSL - Massive SCAR Scripting Library: This provides tons of functionality for SCAR Divi as well. Much more than OSI but it still needs more documentation, and hasn't reached version 1 yet. Needs some work. Created By: Janilabo SVN Repository located here: http://svn.scar-divi.com/mssl/ GMRL - Game Macro Resource Library: Has some nice plugins for SCAR Divi to extend functionality but its main proponent SPS is currently not working. Created By: ShadowRecon SVN Repository: http://subversion.assembla.com/svn/gmrl/ There's others, but most aren't updated/worth mentioning. 8. SCAR Divi's AutoCompletion/Code Hints and Selecting a Client In SCAR Divi you have one way to auto complete code, and give Code hints to you about parameters. Place your cursor and click inside of the editor. Code hints are seen when you put the first left parentheses when using a function/procedure, and the parameters of the function will be shown. Shortcuts: CTRL+Space: Brings up the auto completion list - Up and Down Arrows: will move up and down the list for you - Enter: With the auto completion list open, hit Enter to auto type the highlighted item for you - . A period to open an Objects list of variables/functions/other Bringing up the auto completion list with CTRL+Space, using Enter and Up and Down arrows: Using a period to open Objects list of variables with Auto completion: Using Code Hints: Selecting a client with the crosshairs in SCAR Divi: 9. SCAR Divi's Advanced Debugging If you pause your script while it is running with the Pause Script button - Your SCAR Divi should look like this. SCAR Divi Debugging Interface: Click to enlarge the image and learn all the parts to the SCAR Divi Debugging Interface! When your Script in SCAR Divi is paused the Pause button will be dimmed because the Script cannot be paused again if it is already paused! StepInto and StepOver, will move the blue line down, so you can go through your script a Step at a time. StepInto will go into functions and procedure if it runs into them on the blue line. StepOver will go over the functions and procedures called and not go into them. There is also a way to set Break Points. Where your script will automatically stop at that break point! You can have several Break Points as well. How to make a break point: Also note if you right click inside the editor you can add Bookmarks to specific lines: If you need help, check out Freddy's (the creator of SCAR Divi) 10. SCAR Divi Full Scripting/Coding Tutorial Read The Official SCAR Scripting Guide! This is an error from SCAR Divi! You need to know what the errors are and what they mean. Freddy's FAQ on Errors Things Not Covered in the Official SCAR Scripting Guide: - Tons of things including procedures, and functions - Including files, and Compiler Directives - forwarding, and API calls - etc. Procedures: [scar] program New; procedure WriteIt(Text: string); begin WriteLn(Text); end; begin WriteIt('Passing a string into writeIt''s text parameter!'); end. [/scar] Procedures always start with the procedure bolded keyword. So format: procedure NameOfProcedure(Parameter declarations); Format without params: procedure NameOfProcedure; Procedures always go in the head of the script. (Before the main loop or the begin end. block) But when you want to use a procedure, you call it and you might have to pass params into it. You can do this inside of other procedures/functions after that procedure or in the main loop. Functions: [scar] program New; function WriteIt(Text: string): string; begin WriteLn(Text); Result := 'stringgggggggggggggg result'; end; begin WriteIt('booooooooo'); end. [/scar] Functions always start with the function bolded keyword. So format: function NameOfFunction(Parameters): TypeOfResult; Format without params: function NameOfProcedure: TypeOfResult; Functions always go in the head of the script. (Before the main loop or the begin end. block) But when you want to use a function, you call it and you might have to pass params into it. You can do this inside of other procedures/functions after that function or in the main loop. Note: The Result variable is set to a string. We said that the result of the function would be a string! So thus the result variable has to be set to a string in this case! You don't have to use the Result variable if you don't want to. But then your function would be just like a procedure, it would return no value! Functions return a value or values set by the result variable inside of the function! So I could set a string variable to store the value returned by the WriteIt function! Just remember that in the head section of the script. The order of things matters! If something tries to call a function that isn't declared until later in the script. It will throw an error! Including files and using Defines (Compiler Directives): You can include SCAR files into your script as libraries of code. Inside of the include file Just remember that in the head section of the script. The order of things matters! If something tries to call a function that isn't declared until later in the script. It will throw an error!. There is no begin end. block inside an include, because they are meant to be included for use in your script not to run a script! [sCAR] program New; {$DEFINE Testing} {$I Test/Test.scar} function WriteIt(Text: string): string; begin WriteLn(Text); end; begin WriteIt('booooooooo'); end. [/scar] {$DEFINE NameOfDefine} This is the format for defining something! Like Freddy has defines for SCAR Divi, for different versions! Freddy's defines for SCAR though are already active depending on your SCAR version Then you have {$IFDEF} {$ENDIF} {$ELSE} and others to use like you could do: {$IFDEF Testing}. Note: that compiler defines can go just about anywhere in the script including the Main Loop! {$I Test/Testing.scar} This line will look to see if there is a folder inside SCAR Divi's includes folder called Test. And tries to include the functions and procedures from the Testing.scar file. Remember this goes by what SCAR Divi has set for its includes folder: SCAR Divi's Includes Folder/Test/Testing.scar Same rules of ordering apply to including files as well! -- Will add more to this later 11. Resource Links for SCAR Divi and the forums, Tuts/Resources/etc. SCAR Divi Forums: 1. SCAR Divi Forum Rules 2. BB Code List 3. Tutorial Section SCAR Divi: 1. SCAR Divi Wiki page 2. The Official SCAR Scripting Guide 3. SCAR Divi Change Log 4. SCAR Divi Development Roadmap 5. SCAR Divi Bug Tracker 6. SCAR Divi SVN 7. SCAR Titan SVN 8. SCAR Divi Download Page 9. SCAR Divi Current Download Archive (some) 10. SCAR Old Website before SCAR-Divi.com 11. Old SCAR Divi Download archive (pre~3.23) 12. List of Virtual Key Codes -- Will add more to this later ~WIP If any of the links are broken, or you need help, feel free to private message me, and I might help you, but I will definitely private message you back. ~LordJashin
  26. 0 points
    - rejoins bms - plays on every zoom every bm phoenix bmbot 3.5 .scar
  27. 0 points
    It is like learning something new on your own which is actually not possible. Even by trial and error, if you dont have a clue, you cant move further.... Found this http://www.scar-divi.com/oldmanual/ Scroll down till the end and there is an example. Freddy also states somewhere above the following "For more help on properties and methods of individual classes consult Delphi help or internet search" So this may be the reason that there is no documentation for these. I will search the whole thing and answer back if i find something. (2 noobs = 1 pro )
  28. 0 points
    I've been struggling with that as well. I did find 2 tutorials with a small amount of information that you might find helpful. Unfortunately things seem to have pretty much died down here and there isn't much information that isn't woefully outdated or lacking of in depth explanations. Here are those links. Hope they help. https://villavu.com/forum/showthread.php?t=5165 http://www.freddy1990.com/forums/index.php?topic=69.0;wap2
  29. 0 points
    If you want to expand on your script and have it set the compass you can do something simple like... procedure rotatesouth; begin while not(findbitmap(south,x,y)) and (a = 1) and not(findbitmap(okbutton,x,y)) do //While the map isn't South-facing-North then do: begin movemouse(460,40); //Moves mouse to map tab wait(100); SendArrowWait(1, 10); //This is what Scar 3.15 used I believe it's VK_Arrowleft/right? Or something similar now. if(findbitmap(south,x,y)) then //The bitmap used here was just south being your "new" north. movemouse(141,121); clickherescan; //procedures used to get out of loop incase of logout during map rotation. okscan; //primitive but worked. closewindowscan; end; end; This is from a script I wrote as a refresher course to scar. It was part of my Guild Fisher on "# Comments = Tested on Piru(Tewl's Version)." Ofcourse this is very... primitive but it worked at the time. Took maybe 1-5 full map rotations to get it centered properly.
  30. 0 points
    As you might have noticed by now, we have a new forum skin! Some of you may of course not like the new skin, as it's hard to please everyone, but you are free to go back to the old skin by selecting it at the bottom-left of the forums. The skin is also available in different colors if you don't like the default one.
  31. 0 points
    Needs to be something like this: var RedTitle, RedRocka: Integer; procedure Mining; var x, y: Integer; begin if FindDTM(RedTitle, x, y, 558, 620, 792, 780) then begin // to spot the message warning about special rock in chat(it s the only red message so easy) VKeyDown(68) //key "D" caracter runs to the left looking for rock case FindDTM(RedRocka, x, y, 945, 545, 1055, 641) of //the special rock(red) is under caracter feet True: begin VKeyUp(68); // Movement key is released, caracter stop Wait(1000); //pause MoveMouse(943, 333); //move mouse to the " Mine" button Wait(500); //pause ClickMouse(943, 333, True); // CLick "Mine" button Wait(180000); // Rock stay for 3 minutes so it mine there 3 minutes VKeyDown(65); ///running back to initial pos. border of screen (key A) Wait(10000); /// take ~ 10 seconds of running) VKeyup(65); ///Caracter Stop MoveMouse(943, 333); /// and start mining regular rocks until new special rock ,clicking th e "Mine" button Wait(500); /// pause ClickMouse(943, 333, True); /// click mine button end; False: begin VKeyUp(68); // Movement key is released, caracter stop Wait(1000) //pause end; end; end; end; begin RedTitle := DTMFromString('78DA63E461606060634001CFA034238CE6C35' + '4F3015D8D2090604755F3195D8D30A639D7989951D40000201304' + '05'); RedRocka := DTMFromString('78DA6354616060D0654001FF7372C0342394C' + 'FA88AA966AB83038A1A00922503B4'); repeat // need to loop forever Mining; until False; end. It may not work the way you need, but that at least compiles the code. But yeah, I am unsure if this is logically what you needed, though. NOTE: You may have to recreate the DTMs, the datastrings had some weird spaces on em - so they might be invalid. -Jani
  32. 0 points
  33. 0 points
    I don't get this with "MSSL version" have tryed it all...need help to get my scar to work!
  34. 0 points
    You can use the functions: Wait, FindColor, MoveMouse, or ClickMouse. I'll make a script example for you when I get the chance. I suggest you check out the tutorials section, and the wiki.
  35. 0 points
  36. 0 points
    Kills chickens inside the pen at Lumbridge, drag the target onto the RSC client and push play. You'll need OSI to run this script download it by going to File>>Includes Manager. Tap F6 to stop the script. v0.2 Now loots bones/feathers/chicken meat/eggs. It drops the meat and eggs. Burys bones TODO: add eating //AmberRSCFighter {.include OSI\OSI.scar} var i, r, xp: Integer; procedure ScriptTerminate; begin FreeOSI; end; procedure FindTarget; var x, y: Integer; begin If FindColorSpiral(x, y, x, y, 41957, 0, 0, 509, 327) then // You can replace this color 41957 with another color from a different enemy. begin MoveMouse(x, y); Wait(100); Mouse(x, y, 0, 0, False); end; end; procedure Atttack; var x, y: Integer; begin If FindColor(x, y, 65280, 23, 28, 490, 301) then begin MMouse(x, y, 0, 0); GetMousePos(x, y); Mouse(x, y+5, 0, 0, false); Wait(2500); xp := xp + 100; // Replace the 100 with the amount of XP from that given enemy Writeln('XP so far...'); Writeln(xp); end else begin MMouse(401, 181, 75, 75); Wait(100 + Random(1000)); end; end; procedure InCombat; var x, y: Integer; begin repeat If FindColorTol(x, y, 16777215, 57, 21, 126, 32, 4) then begin WriteLn('In Combat...'); MoveMouse(100 + Random(100), 100 + Random(100)); Wait(2000); end; until (FindColorTol(x, y, 16777215, 57, 21, 126, 32, 4) = False); end; procedure Loot; var x, y: Integer; begin If FindColorSpiral(x, y, x, y, 16579836, 23, 28, 490, 301) then begin repeat Mouse(x, y, 0, 0, False); If FindColor(x, y, 4231423, 23, 28, 490, 301) then begin Mouse(x, y, 0, 0, True); Wait(1500 + Random(1000)); end; until (FindColor(x, y, 4231423, 23, 28, 490, 301) = False); end; end; procedure BuryBones; var x, y: Integer; begin MMouse(498, 19, 3, 3); repeat If FindColor(x, y, 16775143, 267, 36, 504, 236) then begin Mouse(x, y, 0, 0, True); Wait(250); end; until (FindColor(x, y, 16775143, 267, 36, 504, 236) = False); repeat If FindColor(x, y, 2848472, 267, 36, 504, 236) then begin Mouse(x, y, 0, 0, False); Wait(100); Mouse(x, y+25, 0, 0, True); Wait(100); MMouse(498, 19, 3, 3); Wait(250); end; until (FindColor(x, y, 2848472, 267, 36, 504, 236) = False); MMouse(137, 216, 20, 20); end; begin SetupOSI; repeat FindTarget; Atttack; InCombat; Loot; i := Random(15); If i = 1 then begin BuryBones; end; until GetKeyState(VK_F6); end.
  37. 0 points
    Get SCAR 2.03 here (THE INCLUDES STILL DOWNLOAD TOO ) http://freddy1990.com/index.php?page=service&name=archive&pagenum=4 I have uploaded the scripts here EDIT: i guess these are RS2 scripts... sorry I thought they were RSC... mod can delete this thread Scar_Scripts.rar
  38. 0 points
    I know a byte is 8 bits. I think an Integer is like 16-32? What would extended be?
  39. 0 points
    There's nothing preventing you from doing that, but afaik there isn't much of a use for it due to the way floating point numbers are structured. The only use I can think of is to take the number apart and individual expose the components. But I think there's little or any practical use for bitwise operations with floating point numbers.
  40. 0 points
    Rep me sometime , I'm tired of having one green bar Hit this button under my post: and I just might fix your script for uuuuzzz officially known as LJ now?! <<
  41. 0 points
  42. 0 points
    ************************************************************************ ENGLISH ************************************************************************ If you get an error when opening the bot or during the login check if you have installed .NET Framework 4.0 If it is installed and the bot crash, uninstall it. Now download the full version of .NET Framework here: http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe Windows installer 3.1 at least (for Windows XP users).Download >> http://download.microsoft.com/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/WindowsInstaller-KB893803-v2-x86.exe Install it.. Now the bot should works. ************************************************************************ GERMAN ************************************************************************ Wenn sie mit der .NET Framework 4.0 einen Error beim öffnen des Bots oder während des Login Checks bekommen, deeinstaliere alles und lade die Vollversion runter. http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe Windows installer 3.1 at least (for Windows XP users).Download >> http://download.microsoft.com/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/WindowsInstaller-KB893803-v2-x86.exe Nun müsste der Bot funktionieren. ************************************************************************ ITALIAN ************************************************************************ Se si verifica un errore all'apertura del bot o durante il login verificate di avere installato il .NET Framework 4.0 Nel caso in cui sia già installato ma crasha durante il login disinstallatelo. Dopodichè scaricate la versione completa del .NET Framework da qui: http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe Windows installer 3.1 at least (for Windows XP users).Download >> http://download.microsoft.com/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/WindowsInstaller-KB893803-v2-x86.exe Installatela.. Ora non dovreste più avere problemi ************************************************************************ BetaBot-en v.2.0.rar
  43. 0 points
    GMRL - Game Macro Resource Library. My plan is to support multiple games. Right now there are only a few available functions. Some of the most useful functions are for animation. The core animation functions can be used for any game, to detect animation. Available animation functions: [scar] {=============================================================================== Core Animation Functions -------------------------------------------------------------------------------- * function PixelShiftMulti(B: TBoxArray; Skip: TPointArray; T: Integer): TIntArray; By: ShadowRecon, marpis. * function PixelShift(B: TBox; Time: Integer; Skip: TPointArray): Integer; By: ShadowRecon, marpis. ' * function AveragePixelShift(B: TBox; waitPerLoop, maxTime: integer; Skip: TPointArray): integer; By: ShadowRecon, Coh3n. * function AnimatingMulti(B: TBoxArray; Time, MinCount: Integer; Skip: TPointArray): TBooleanArray; By: ShadowRecon, marpis. * function Animating(B: TBox; Time, MinCount: Integer): Boolean; By: ShadowRecon, marpis. ===============================================================================} {=============================================================================== RS2 Player Animation Detection System (PADS) -------------------------------------------------------------------------------- * Function RS2_IsAnimating: Boolean; RS2_IsMoving: Boolean; By: ShadowRecon. * Function RS2_IsMoving: Boolean; By: ShadowRecon. ===============================================================================} [/scar] The plugin also has a bunch of pixel detection methods, which are loaded when the the GMRL include is loaded. Along with some bitmap conversion routines, to change the bitmaps brightness and contrast, ect. [scar] {****************************************************************************** GMRL Plugin ________________________________________________________________________________ *~~~~~~~~~~~~~~~~~~~~~~ Bitmap Functions ~~~~~~~~~~~~~~~~~~~~~~* Function GMRL_GetBitmapRGB(Const BMP:Integer): T2DRGBArray; Def: Gets all of the RGB values of a bitmap Function GMRL_CalculatePixelShiftSkipTol(Const BMP1, BMP2, Tol: Integer; Skip: TPointArray): Integer; Def: Calculates pixelshift skipping the points in the skip TPA, with the feature of using tolerance of then pixels to determine if a pixel shift has happened. Function GMRL_CalculatePixelShiftSkip(Const BMP1, BMP2: Integer; Skip: TPointArray): Integer; Def: Calculates pixelshift skipping the points in the skip TPA. The Skip TPA origin is 0,0 so dont use client points use points from the bitmap. Function GMRL_CalculatePixelShift(Const BMP1,BMP2: Integer): Integer; Def: Calculates pixel shift from 2 bitmaps Function GMRL_CalculatePixelShiftTol(Const BMP1, BMP2, Tol: Integer): Integer; Def: Calculates pixel shift with tolerance Function GMRL_CalculatePixelShiftTPA(Const BMP1,BMP2: Integer; Points: TPointArray): Integer; Def: Calculates pixel shift only checking the points within TPA, points are relative to 0,0 so dont use client points. Procedure GMRL_SetBitmapBrightness(Const BMP, Bright: Integer); Def: Changes the bitmaps brightness Procedure GMRL_SetBitmapContrast(Const BMP: Integer; Contrast: Extended); Def: Changes bitmaps Contrast Function GMRL_OverlayBitmaps(Const Foreground, Background: Integer; percent: Extended): Integer; Def: Overlays foreground on-top of background with a percent of the background showing. Function GMRL_CreateBitmapOpacity(Const BMP, BGColor: Integer; percent: Extended): Integer; Def: Creates and bitmap with a percent of the BGcolor showing through. Function GMRL_CreateTPAFromBMP(Const BMP, SkipColor, SX, SY: Integer): TPointArray; Def: Creates a TPA of all the points on the bitmap that do not contain the skip color. SX,SY are so you can move the origin of the bitmap, so the points match up with the clients points, or just set them to 0,0 and all points will be relative to the origin 0,0. Function GMRL_BitmapFromJPEG(Path: AnsiString): Integer; Def: Returns a normal bitmap from a JPEG. Function GMRL_BitmapFromPNG(Path: AnsiString): Integer; Def: Returns a normal bitmap from a png file. Function GMRL_BitmapToPNG(BMP: Integer; Path: AnsiString); Def: Turns a bitmap into a PNG file and saves it to the path. *~~~~~~~~~~~~~~~~~~~~~~ TPA Functions ~~~~~~~~~~~~~~~~~~~~~~* procedure GMRL_OffsetATPA(var ATPA : T2DPointArray; const Offset : TPoint); Def: Offsets an entire ATPA by the Offset point. procedure GMRL_OffsetTPA(var TPA : TPointArray; const Offset : TPoint); Def: OffSets an entire TPA by the offset point. procedure GMRL_SortTPAByX(var a: TPointArray; const LowToHi: Boolean); Def: Sorts a TPA by the X value, either low first of high first. procedure GMRL_SortTPAByY(var a: TPointArray; const LowToHi: Boolean); Def: Sorts a TPA by the Y value, either low first of high first. function GMRL_FindTPARows(a: TPointArray): T2DPointArray; Def: Finds rows of points and groups them into seprate TPA's in an ATPA. function GMRL_FindTPAColumns(a: TPointArray): T2DPointArray; Def: Finds columns of points and groups them into seprate TPA's in an ATPA. procedure GMRL_SortTPAFrom(var a: TPointArray; const From: TPoint); Def: Sorts TPA from the "From" point. procedure GMRL_SortATPAFromFirstPoint(var a: T2DPointArray; const From: TPoint); Def: Sorts ATPA from the "From" Point. procedure GMRL_SortATPAFromMidPoint(var a: T2DPointArray; const From: TPoint); Def: Sorts ATPA from the "From" Point. function GMRL_MiddleTPAEx(const TPA: TPointArray; var x, y: Integer): Boolean; Def: Finds the middle of a TPA, returns the points in x,y. procedure GMRL_FilterPointsPie(var Points: TPointArray; const SD, ED, MinR, MaxR: Extended; Mx, My: Integer); Def: Filters points not in the circle defined. procedure GMRL_FilterPointsDist(var Points: TPointArray; const MinDist,MaxDist: Extended; Mx, My: Integer); Def: Filters points not in the circle defined using distance. procedure GMRL_FilterPointsLine(var Points: TPointArray; Radial: Extended; Radius, MX, MY: Integer); Def: Filters points into lines. procedure GMRL_FilterTPADist(var TPA: TPointArray; maxDist: integer); Def: Filters outpoints that are out side of the max distance. function GMRL_RemoveDistTPointArray(x, y, dist: Integer;const ThePoints: TPointArray; RemoveHigher: Boolean): TPointArray; Def: Removes points that are either to close or to far away determined by dist. function GMRL_GetATPABounds(const ATPA: T2DPointArray): TBox; Def: Gets the bounds of an ATPA. function GMRL_GetTPABounds(const TPA: TPointArray): TBox; Def: Gets the bound of an TPA. function GMRL_FindTPAinTPA(SearchTPA: TPointArray; const TotalTPA: TPointArray; var Matches: TPointArray): Boolean; Def: Finds TPA in a TPA. function GMRL_TPAFromBox(const Box : TBox) : TPointArray; Def: Makes TPA from a Box. function GMRL_TPAFromEllipse(const CX, CY, XRadius, YRadius : Integer): TPointArray; Def: Makes TPA from Ellipse. function GMRL_TPAFromCircle(const CX, CY, Radius: Integer): TPointArray; Def: Makes TPA from Circle. function GMRL_FindTPAEdges(const p: TPointArray): TPointArray; Def: Returns all the points in the edges of a TPA. function GMRL_ReturnPointsNotInTPA(Const TotalTPA: TPointArray; const Box: TBox): TPointArray; Def: Returns point not contained in the TPA with a box as reference. *******************************************************************************} [/scar] The newest addition is the SPS plugin. I ported over the whole SPS walking system from SRL and as of now it works fairly well. Once the final tweaks are made on this then the development on the main RS2 functions will begin. If anyone would like to be apart of or help with development for RS2 or any game just PM me and we will talk.
  44. 0 points
    Its just an example using made up functions/procedures, in order to achieve the code I posted above, you'd have to use either Color Finding, etc, or walking methods. Sorry, but I'm not going to code this for you, just think logically, this isn't a hard concept. Or just Rewrite your script entirely, so its more readable. I don't script for RS anyway. Check out the Scar Divi wiki - http://wiki.scar-divi.com http://wiki.scar-divi.com/index.php?title=The_Official_SCAR_Scripting_Guide Tutorials section - http://forums.scar-divi.com/forumdisplay.php?24-Tutorials-and-FAQ Read all that then you might be able to do what your asking for easily.
  45. 0 points
    800 x 600 30% zoom chat activated Buton: Logout everything out the sea map If you have windows 7 or vista... you need to deactivate Clear type effect If you don't work ...var1, try ...var2 Enjoy! ice floe 0.3 - 30% - var1.scar ice floe 0.3 - 30% - var2.scar configuration button.bmp
  46. 0 points
    It is updated... not at this website though. UnitedBots.net You can find support at the UB forums, just post. Though.. Missing the button? thats not really any bug ive ever heard of because thats hard coded, I could fix this though if it is happening to you, im sure your not lieing lol. Ill get an update for you later today.
  47. 0 points
    this is a scar script running in background while you play if fire button is allowing fire - the script sends fire key automatically if enter button is allowing enter - the script sends enter key if rocket button allows fire ... (rockets must be in fastswitch menue) setup which function you use in the script-> use_feuern:=1; , // 1 automatic fire is on - 0 is off be careful with scrolling with your mouse !
  48. 0 points
    it is now updated, re download it, its alot easier to set up. No dont do anything, the smart window will load, and your guy will walk to trees and start cutting, what is your woodcut lvl?
  49. 0 points
    Forum Rules 1. Forbidden Content You will not post any content of the following nature on these forums: copyrighted material, warez, pornography and anything that could be considered illegal. 2. Behave You must abide by the forum rules at all times and respect others on the forums. Flaming people will not be tolerated and you should be respectful when addressing staff members. 3. Merchanting Unless sections of the forums explicitly allow the merchanting of various goods, scar scripts or in-game items, there will be no merchanting of any sorts on the forums. This includes the posting of advertisements which will not be tolerated. 4. Spam You are not allowed to post spam. This includes short messages like "great", "cool", "ok" and so on. If you can't formulate a full sentence, then don't post. 5. Double Posting Double posting threads is not allowed. Double posting in a thread is allowed limitless as long as the posts are automatically merged by the system. 24 hours after the previous post, this will no longer happen, then you can still double post, however, only once, triple posting will not be allowed. 6. Language The official language of these forums is English. It is therefore not allowed to make public posts on it in any different language unless you include an English translation. If you can't translate to English well yourself, you can use a translator to do so. Failing to do so will get you warned or after a repeated offence banned from the forums! One exception are the language specific subforums, if you can find your language in this subcategory, you may speak it in there. 7. Section Post in the correct section. If you have a question about a script, post it in the script's thread or make a thread in the "Script Help" section. Script sections are for posting scripts only. Every section could also contain an individual stickied topic with additional rules, make sure you read these before posting in the section. If there is no topic, these are the only rules that apply to the section. 8. Accounts You can only have one account on these forums, should you create more, all of your accounts will be permanently banned. 9. Think Before you post anything, make sure you really want to post it. 10. Mail If you have a personal message for another user that could be construed as "mail", use the private messaging system to contact them. Do NOT post it on the forums. 11. Private Messaging Topics and posts about selling/exchanging things are not permitted and will result in an instant ban from the forums. This rule was added to prevent scamming on the forums and merchanting as prohibited by rule 3. ~~~ Scripts Section Rules 1. Scripts All threads posted in a scripts section need to have a script included, either with code tags or preferably as a .scar file attachment. Threads that do not have this will be removed. 2. Prefixes If prefixes are provided to categorize scripts in the section you're posting in, you should always use the most fitting prefix unless there's no fitting prefix available for your script. 3. Advertising Advertising in a scripts section is NOT allowed, advertising a website is only allowed in it's parent section if this is a game related scripts section and if given the site's purpose is to distribute or sell SCAR scripts related to the game. 4. Removing scripts Please do not remove scripts. If a script is outdated, other people can still learn from it, you should change the thread's prefix to Outdated. If for some reason you insist on deleting a script, please contact an administrator. Failure to comply with this rule means you will probably end up breaking rule 1 by removing the script yourself. ~~~ If you break any of the rules above on your first post on these forums, you will receive a 1 day ban instantly.
×
×
  • Create New...