Guest User

Untitled

a guest
Jan 28th, 2016
60
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. program SSPoweThiever; //(gem)
  2.  
  3. {$I srl/srl.simba}
  4.  
  5. var
  6. x, y, stall, shark, count: integer;
  7. Status:String;
  8.  
  9. const
  10.  
  11. USERNAME = '';
  12. PASSWORD = '';
  13.  
  14. procedure proggy;
  15. begin
  16. cleardebug;
  17. writeln('JStemper ~~ SS3 Thiever');
  18. writeln(' Time Running: '+ MsToTime(GetTimeRunning,3))
  19. Writeln(' Status: ' + Status)
  20. exit;
  21. end;
  22. function IsLoggedIn: boolean;
  23. begin
  24. if findcolortolerance(x, y, 1911085, 740, 130, 762, 161, 20) then
  25. begin
  26. result := true
  27. //writeln('we are logged in');
  28. wait(200)
  29. end
  30. else
  31. begin
  32. result := false
  33. //writeln('we are not logged in');
  34. wait(200)
  35. end;
  36. end;
  37.  
  38. procedure Login;
  39. begin
  40. wait(3000)
  41. begin
  42. movemouse(484, 338);
  43. Status := 'Entering Username';
  44. proggy;
  45. Wait(200);
  46. clickmouse(x, y, mouse_left);
  47. count := 0;
  48. repeat
  49. Inc(count);
  50. PressKey(VK_Back);
  51. until count > 25;
  52. Wait(250);
  53. sendkeys(USERNAME, 0, 0);
  54. Wait(1000);
  55. Status := ('Entering Password');
  56. proggy;
  57. movemouse(480, 385);
  58. Wait(200);
  59. clickmouse(x, y, Mouse_left);
  60. Wait(200);
  61. count := 0;
  62. repeat
  63. PressKey(VK_Back);
  64. Inc(count);
  65. until count > 25
  66. sendkeys(PASSWORD, 50, 25);
  67. Status := ('logging in');
  68. proggy;
  69. Wait(1000);
  70. movemouse(491, 417);
  71. Wait(1000);
  72. ClickMouse(x, y, mouse_left);
  73. Wait(4000);
  74. writeln('logged in! (?)')
  75. end;
  76. end;
  77.  
  78. procedure setmeup;
  79. begin
  80. writeln('setting up....');
  81. writeln('putting angle right');
  82. sleep(5000)
  83. count := 0
  84. repeat
  85. inc(count);
  86. presskey(38);
  87. until count > 25;
  88. sleep(1000);
  89. writeln('completed');
  90. writeln('open inventory');
  91. movemouse(654, 186);
  92. sleep(200);
  93. clickmouse(x, y, mouse_left);
  94. sleep(1000);
  95. writeln('completed');
  96. writeln('set up completed!');
  97. end;
  98.  
  99. procedure teleport;
  100. var
  101. x, tele, y:integer;
  102. begin
  103. tele := DTMFromString('mbQAAAHicY2VgYLBkYmAwA2JbIDYFYjsgfg8UfwXEbxgg7I9A/O/fP4aqqh9gbGqSB6aVgeLomBELBgMAFesQHQ==');
  104.  
  105.  
  106. Status := 'Teleporting home';
  107. proggy;
  108. presskey(115)
  109. wait(400)
  110. presskey(115)
  111. wait(500)
  112. if findDTM(tele, x, y, 552, 221, 590, 252) then
  113. mmouse(x, y, 1, 1);
  114. wait(randomrange(300, 600));
  115. clickmouse2(mouse_Left);
  116. clickmouse(x, y, mouse_left);
  117. freedtm(tele);
  118. terminatescript;
  119. end;
  120. function DebugTPA(Points: TPointArray; BmpName: string): Boolean;
  121. var
  122. Bmp: integer;
  123. Box : TBox;
  124. TempTPA : TPointArray;
  125. begin
  126. Box := GetTPABounds(Points);
  127. Bmp := BitmapFromClient(Box.x1,Box.y1,Box.x2,Box.y2);
  128. TempTPA := CopyTPA(Points);
  129. OffsetTPA(TempTPA,Point(-box.x1,-box.y1));
  130. DrawTPABitmap(Bmp,TempTPA,clRed);
  131. DisplayDebugImgWindow(box.x2-Box.x1 + 1, box.y2-box.y1 + 1);
  132. DrawBitmapDebugImg(Bmp);
  133. if bmpname <> '' then
  134. SaveBitmap(Bmp, ScriptPath + BmpName +'.bmp');
  135. FreeBitmap(Bmp);
  136. Result := True;
  137. end;
  138. function rsps_getUpText:string;
  139. var
  140. blueTPA: tpointarray;
  141. blueATPA: t2dpointarray;
  142. begin
  143. FindColorsTolerance(blueTPA, 14080518, 0, 0, 194, 25, 40);
  144. if (length(blueTPA) > 1) then
  145. blueATPA := splitTPAEx(blueTPA, 1, 10);
  146. sortATPAFromFirstPointX(blueATPA, point(0, 0));
  147. result:= getTextATPA(blueATPA, 5, 'UpChars07');
  148. //DebugTPA(blueTPA, 'bmp');
  149. end;
  150.  
  151. Function rspsIsUpTextMultiCustom(Text: TStringArray): Boolean;
  152. Var
  153. TheText: String;
  154. i, n: Integer;
  155. Begin
  156. TheText := rsps_getUpText;
  157. n := High(Text);
  158. For i := 0 to n do
  159. If (Pos(Text[i], TheText) > 0) then
  160. Begin
  161. Result := True;
  162. Exit;
  163. End;
  164. End;
  165. Function InCombat: boolean;
  166. begin
  167. if findcolortolerance(x, y, 45647, 254, 135, 268, 162, 45) or
  168. findcolortolerance(x, y, 330180, 254, 135, 268, 162, 45) then
  169. Begin
  170. Status := ('We are being attacked');
  171. proggy;
  172. Begin
  173. Result:=True
  174. End
  175. End Else
  176. wait(100);
  177. exit;
  178. End;
  179. procedure thief; //Edited from hoodz
  180. Var
  181. TPAA: T2DPointArray;
  182. TPA: TPointArray;
  183. CTS, I: Integer;
  184. Begin
  185. CTS := GetColorToleranceSpeed;
  186. ColorToleranceSpeed(2);
  187. setcolorspeed2modifiers(0.25, 0.12);
  188. FindColorsSpiralTolerance(216, 125, TPA, 1522522, 216, 113, 296, 199, 25);
  189. ColorToleranceSpeed(CTS);
  190. TPAA := TPAToATPAEx(TPA, 40, 40); //Put the Width and Heigh here
  191. SortATPASize(TPAA, True);
  192. For I := 0 To High(TPAA) Do
  193. If GetArraylength(TPAA[i]) > 50 Then // Set How Much Points you need for your function to take Ation
  194. Begin
  195. MiddleTPAEx(TPAA[i], x, y);
  196. MMouse(X, Y, 2, 2);
  197. Status := 'Thieving';
  198. proggy;
  199. KeyUp(37);
  200. If (rspsIsUpTextMultiCustom(['Scimitar'])) Then
  201. clickmouse(x, y, mouse_left);
  202. sleep(20)
  203. exit;
  204. end
  205. else
  206. begin
  207. KeyDown(37);
  208. Status := ('Rotating Screen')
  209. proggy;
  210. exit;
  211. end;
  212. end;
  213. function Lowish_HP(): Boolean;
  214. var
  215. x, y, i: Integer;
  216. colours: TIntegerArray;
  217. begin
  218. colours := [1912114, 3886164]
  219.  
  220. for i := 0 to High(colours) do
  221. begin
  222. if FindColorTolerance(x, y, colours[i], 712, 30, 718, 35, 20) then
  223. begin
  224. WriteLn('Health Point is low');
  225. Result := True
  226. end else
  227. WriteLn('Health point not low');
  228. end;
  229. end;
  230.  
  231. function VeryLowHp(): Boolean;
  232. var
  233. x, y, i: Integer;
  234. colours: TIntegerArray;
  235. begin
  236. colours := [3426899]
  237.  
  238. for i := 0 to High(colours) do
  239. begin
  240. if FindColorTolerance(x, y, colours[i], 697, 36, 715, 40, 25) then
  241. begin
  242. WriteLn('Health Point is very low, teleporting');
  243. Result := True
  244. end else
  245. // WriteLn('Health point not low');
  246. end;
  247. end;
  248. function Restore: Boolean;
  249. var
  250. x, y, i: Integer;
  251. potDTMs: TIntegerarray;
  252. begin
  253. potDTMs := [
  254. DTMFromString('mbQAAAHicY2VgYNjPhMDHgHgnEC9iZGCYC8TTGSHsZUC8RieaYb1uDMM2vUSGUFFdhuVaEQySQP3omBELBgMAqUMM4Q=='),
  255. DTMFromString('mggAAAHicY2NgYJjAxMAwFYjnAvFMKHsaEC9ghOCFQDwHiKdA6SVa4WAcKqrL0KHkzlBeUckwVyOYQRJoFjbMiANDAAC3tw46'),
  256. DTMFromString('mggAAAHicY2NgYMhlYmDIBOJCIM4B4gwgTgfiuYwMDAuheDoQzwPiJUC8oKCVYYlWOEOmlDlDWVk5w9GmOWC+JNAsbJgRB4YAAK3KDs4='),
  257. DTMFromString('mggAAAHicY2NgYDjAxMBwBIhPQvE5KP85IwPDHSC+DcQPgPgJFO+pnspQUFDEEB4RwxARGcsQ4RzIML+sg0ESaBY2zIgDQwAAMiMSYw==')
  258.  
  259.  
  260. ];
  261.  
  262. for i := 0 to High(potDTMs) do
  263. if FindDTM(potDTMs[i], x, y, 548, 206, 737, 467) then
  264. begin
  265. Wait(100 + Random(200));
  266. Status := ('Drinking ' + toStr(i + 1) + ' dose restore');
  267. proggy;
  268. MMouse(x, y, 2, 2);
  269. Mouse(x, y, 2, 2, True);
  270. clickmouse(x, y, mouse_left);
  271. Wait(1200);
  272. Result := True;
  273. exit;
  274. end; //else
  275. // WriteLn('Can''t drink Restore');
  276.  
  277. for i := 0 to high(potDTMs) do
  278. FreeDTM(potDTMs[i]);
  279. end;
  280. function Brew: Boolean;
  281. var
  282. x, y, i: Integer;
  283. potDTMs: TIntegerArray;
  284. begin
  285. if (not Lowish_HP()) then
  286. exit;
  287. //else
  288. potDTMs := [
  289. DTMFromString('mggAAAHicY2NgYJjGxMAwFYhnA3E/EM8E4klA/BYo9wSIPwDxZyB+CcTvgPjwQVOG40cCGebP0wTyGBlmzdRgOHrEg0ESyMOGGXFgCAAA4SsR4g=='),
  290. DTMFromString('mbQAAAHicY2VgYMhiguACIM4F4jQgrmNkYCgB4nogrgDiWiA+ctiJoba2jmHjel2GwweNwHxJoH50zIgFgwEAb8YNYQ=='),
  291. DTMFromString('mWAAAAHicY2FgYMhlYmBIZ4LQ2UCsw8jAoAfEhkBsBsQFBUUM5eUVDEVFxQwP7k9jkATqQcaMaBgEANvdCUo='),
  292. DTMFromString('mggAAAHicY2NgYHBkgmB3ILYEYhcgdgLiGkYGhkIgroXiEiBuBOIjh+wZamvrGObP02TYuF6XIS0tk+HIYScGSaBZ2DAjDgwBAEgfDkc=')
  293.  
  294. ];
  295.  
  296. for i := 0 to High(potDTMs) do
  297. if FindDTM(potDTMs[i], x, y, 548, 206, 737, 467) then
  298. begin
  299. Status := ('Drinking ' + toStr(i + 1) + ' dose Brew ');
  300. proggy;
  301. MMouse(x, y, 2, 2);
  302. Mouse(x, y, 2, 2, True);
  303. clickmouse(x, y, mouse_left);
  304. Wait(1200);
  305. Result := True;
  306. if (i >= 2) then
  307. begin
  308. // writeln ('Drank 3 or more brews so restoring');
  309. restore;
  310. break;
  311. end;
  312. end; //else
  313. // WriteLn('Can''t drink brew');
  314. for i := 0 to high(potDTMs) do
  315. FreeDTM(potDTMs[i]);
  316. end;
  317.  
  318.  
  319. begin
  320. setupsrl();
  321. mouseresetclientarea;
  322. imageresetclientarea;
  323. cleardebug;
  324. writeln('JStemper ~~ SS3 Thiever');
  325. repeat
  326. if (not isloggedin) then
  327. begin
  328. login;
  329. SetMeUp;
  330. end;
  331. if (isloggedin) then
  332. begin
  333. if (not incombat) then
  334. begin
  335. repeat
  336. thief;
  337. If VeryLowHp then teleport;
  338. until(not isloggedin) or (incombat)
  339. end;
  340. If (incombat) then
  341. begin
  342. wait(100);
  343. If lowish_Hp then
  344. begin
  345. brew;
  346. end;
  347. If VeryLowHp then teleport;
  348. end;
  349. end;
  350. until(false)
  351. end.
RAW Paste Data