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

zippoxer

Members
  • Content Count

    91
  • Joined

  • Last visited

Community Reputation

2 Neutral

About zippoxer

  • Rank
    OSI Tester
  1. Great! Don't forget the script won't loot the Ghouls if you don't set corpseBmps[0] to some pixels from a Ghoul's corpse.
  2. I took a screenshot, selected about 8x8 pixels of the top of the monster (middle or top is better than bottom), made sure they contain none of the floor or walls in the background and saved as BMP. Then I used a tool in SCAR to convert BMP file to a string. Lastly, if you don't wanna mess with code, just edit the BMP string of another monster, like creep, and configure the script to hunt "creep". If you don't get along, send me a screenshot containing the monster you want to add and I'll add it and update the script.
  3. zippoxer

    GetWords

    That's too slow, but a good practice. I'd use the built-in Explode to get words out of a string. 1000 words ~ 0ms 5000 words ~ 78ms [sCAR] program New; var i, start: Integer; s: String; tsa: TStringArray; begin // make a 5000 word long string for i := 1 to 5000 do s := s + 'hello '; start := GetSystemTime; tsa := Explode(' ', s); WriteLn(IntToStr(Length(tsa)) + ' words ~ ' + IntToStr(GetSystemTime-start) + 'ms'); end. [/sCAR]
  4. Consider that everytime Jagex "fix it to their best ability" a lot of people might get banned. Only then, when the damage has been done, you will "step ahead of Jagex". Again, I do not resist anything. In fact, it would be nice to see Jagex busy fighting client side hacks.
  5. It would make the client send a deposit/withdraw packet when you deposit/withdraw from the illegally opened bank. And then we are back to the second detection scenario I explained here.
  6. Nobody told you to not do this. I told the possible risk of using this method from my knowledge. If anyone thinks I am wrong then correct me.
  7. Modifying the client in a way it's user interface doesn't let you, is the last thing you wanna do. For example, you can get detected in one of these cases: * The client checks your coordinates every time the bank window opens and reports if not near a bank. * You send the server a deposit/withdraw packet when it didn't send you the open bank dialog packet. Simulating human input to the game is the safest method to bot. Any inhuman client modification is easier to detect if the client creators put some work into it.
  8. I was looking for a flash MMORPG so it wouldn't have any protections like HackShield (which doesn't let SCAR input anything to the game). This is also a nice game in general. SCAR plays it faster than I do
  9. This script will: Move the mouse like a blind kid until it sees a sword cursor. Left click. Wait until the battle is over. Back to step 1. Make sure OSI is installed (in File -> Includes Manager). Copy & paste the script below to SCAR, load the game, target it (not the browser, but the area of the game) with SCAR and run. Don't forget that you should stop it with Ctrl + Alt + S, or whatever you defined it to. program New; {.include OSI/OSI.scar} var x, y, rx, ry: Integer; swordCursor1Bmp, swordCursor2Bmp, attackButtonBmp: Integer; function FindSwordCursor: Boolean; var x, y: Integer; begin Result := FindBitmapTolerance(swordCursor1Bmp, x, y, 10) or FindBitmapTolerance(swordCursor2Bmp, x, y, 10); end; function InBattle: Boolean; var x, y: Integer; begin Result := FindBitmap(attackButtonBmp, x, y); end; begin swordCursor1Bmp := BitmapFromString(3, 3, 'beNoBGwDk/+LY2+fb0+bX1+L' + 'X5/bp0ebW0ODS+P316vTp2koCF9g='); swordCursor2Bmp := BitmapFromString(4, 5, 'beNpzDYsMrm3ImZ6W3G' + 'btk1mfOj/VodbDLN3KLml51b5Sl+5gs3wH+6T6pAWpXt2+ruWGzj' + 'E+Ue2+kR0mXrkKANCxFuE='); attackButtonBmp := BitmapFromString(12, 9, 'beNoBRAG7/uPh4+bZ3dbL9e' + 'Xe/ujk/ujl7+XeztDGz9rN8+7Y9vLq6+bm3NLJ2trN3M7C/+vojl' + 'BWjk9X/+bpzcS6vs28/9vZe0RJ/9fi/tvg2tfK5crB/7vBnjlIfh' + 'Il/8PM0rux3OvX/7PIhREn/83l/9jrysK0/dvT2ICJ6GN50UZgx2' + 'Jv8svE/v/vxAEamxYuahIokiE2383A/+fkiSUt/7LI/32WmCg0/+' + 'nl3M69/6y2dhgh/93h/+To5MS84KOhpkVK/9Lg/83dgxkh35mV37' + 'iq/8e8XjYo4eze/+ja/uPdq2dkeyYmfyMjdxsbfykno1RS/8rG/8' + '+3QSwU1O7Y/+/b/9fVdCwp/9HI//Li//Hd36SXgSsn/8rP/8CnWz' + 'Qg8PLk/+LW15SUtWpo/tLAuKqIurqT/+/WijAt/3mF/8i1bCsg6s' + 'zJ/yXL35c='); ActivateClient; while True do begin while not FindSwordCursor do begin rx := Random(1000); ry := Random(540); MoveMouse(rx, ry); if WaitFunc(@FindSwordCursor, True, 0, 0, 70, 110) then break; end; ClickMouse(rx, ry, True); if not WaitFunc(@InBattle, True, 0, 0, 7000, 9000) then continue; if not WaitFunc(@InBattle, False, 0, 0, 60000, 70000) then begin WriteLn('The game is stuck at the battle screen...'); WriteLn('Terminating.'); TerminateScript; end; end; end.
  10. var PasteBinHttpClient: Integer; PasteBinDevKey, PasteBinUserKey: String; procedure PasteBinSetup(DevKey: String); begin PasteBinDevKey := DevKey; PasteBinHttpClient := InitializeHTTPClient(False, False); end; function PasteBinSuccessful(Response: String): Boolean; begin Result := (Length(Response) > 0) and not StartsWith('Bad', Response); end; function PasteBinLogin(Name, Password: String): Boolean; var Response: String; begin ClearPostData(PasteBinHttpClient); AddPostVariable(PasteBinHttpClient, 'api_dev_key', PasteBinDevKey); AddPostVariable(PasteBinHttpClient, 'api_user_name', Name); AddPostVariable(PasteBinHttpClient, 'api_user_password', Password); Response := PostHTTPPageEx(PasteBinHttpClient, 'http://pastebin.com/api/api_login.php'); if PasteBinSuccessful(Response) then begin PasteBinUserKey := Response; Result := True; end; end; procedure PasteBinLogout; begin PasteBinUserKey := ''; end; function PasteBinPostEx(Code, Name, ExpireDate, Format: String; IsPrivate: Boolean; out Url: String): Boolean; var IsPrivateStr, Response: String; begin IsPrivateStr := '0'; if IsPrivate then IsPrivateStr := '1'; ClearPostData(PasteBinHttpClient); AddPostVariable(PasteBinHttpClient, 'api_dev_key', PasteBinDevKey); AddPostVariable(PasteBinHttpClient, 'api_user_key', PasteBinUserKey); AddPostVariable(PasteBinHttpClient, 'api_option', 'paste'); AddPostVariable(PasteBinHttpClient, 'api_paste_code', Code); AddPostVariable(PasteBinHttpClient, 'api_paste_name', Name); AddPostVariable(PasteBinHttpClient, 'api_paste_expire_date', ExpireDate); AddPostVariable(PasteBinHttpClient, 'api_paste_format', Format); AddPostVariable(PasteBinHttpClient, 'api_paste_private', IsPrivateStr); Response := PostHTTPPageEx(PasteBinHttpClient, 'http://pastebin.com/api/api_post.php'); if PasteBinSuccessful(Response) then begin Url := Response; Result := True; end; end; // Posts a paste that never expires, has no format and is not private. function PasteBinPost(Code: String; out Url: String): Boolean; begin Result := PasteBinPostEx(Code, '', 'N', 'text', False, Url); end; procedure PasteBinTest; var Url: String; begin PasteBinSetup('89fd7c77653a7e05ab04010a0aba000a'); if PasteBinLogin('ScarStatistics', 'service') then begin WriteLn('Logged in to pastebin.'); if PasteBinPostEx('"omfg"', 'I have 10 minutes left to live!', '10M', 'php', True, Url) then WriteLn('Successfully posted that: ' + Url) else WriteLn('Failed to post.'); end else WriteLn('Are you kidding me?'); end; Usage sample is in the PasteBinTest procedure. You can use it to submit statistics
  11. Yes but you don't have to since I can call Windows API to do that. I can, but don't know how. If it's a public bot that wouldn't be great, but at least working.
  12. The C++ code that I've shown as the wanted functionality works. When in a game window, it helps me decide whether the cursor is sword-like or pointer-like by returning a different number for each.
  13. Mmm I'm still trying to do that API call properly :\ Can anyone help me?
  14. Interesting... Is it possible to decrease the redraw frequency of a window?
  15. I found a strange thing right now. If the client window is activated (focused) then reading a progress bar takes 4.5 seconds, if it isn't then reading the exactly same looking progress bar takes 0.2 seconds. Is it SCAR or VMWare making that huge difference? Note: I was not using Freddy's method in this test.
×
×
  • Create New...