Greasy Fork 还支持 简体中文。

Oib Hackz

Hello

  1. // ==UserScript==
  2. // @name Oib Hackz
  3. // @namespace http://tampermonkey.net/
  4. // @version 4.0
  5. // @description Hello
  6. // @author You
  7. // @match http://oib.io/
  8. // @grant none
  9. // ==/UserScript==
  10. //player.army.v
  11. //
  12. (function(){
  13. window.onload = function() { // Set some stuff to make the game look nicer
  14. window.DRAW.EASE_DELAY = 0.25;
  15. window.DRAW.GROUND_COLOR_DARKER = "#000022";
  16. window.DRAW.BORDER_MINIMAP_COLOR = "#261A49";
  17. window.DRAW.GAUGE_QUEEN_DISPLAY = 0.9999999999999999;
  18. window.DRAW.GAUGE_WIDTH = 64;
  19. }
  20. //Decode Lapa
  21. var decodeVar = [];
  22. var ArmyMaxLvl = 5;
  23. var MinLvlHeal = 3;
  24. var PPstage = 0;
  25. var PPotherstage = 0;
  26. var PPlvl1 = 6;
  27. var PPlvl2 = 5;
  28. var MinPPlvl = 3;
  29. var MediumPPlvl = 5;
  30. var Oib2PPlvl = 4;
  31. var PPnewlvl = 5;
  32. var Wait = 160;
  33. for (var l = 0; 40000 > l; l++){
  34. var decode = "lapa" + l + "mauve";
  35. try {
  36. if (typeof window[decode] != "undefined"){
  37. decodeVar.push(window[decode]);
  38. console.log(decode);
  39. }
  40. }
  41. catch (err){
  42. console.log(err.message);
  43. }
  44. }
  45.  
  46. function loop (){
  47. player.select.split = true;
  48. player.select.feed = true;
  49. player.select.regroup = true;
  50. for (var k = 0; decodeVar[9].units.length > k; k++){
  51. decodeVar[9].units[k].info_delay = 9;
  52. }
  53. }
  54. setInterval(loop);
  55. // Control Keys
  56. var spawn = 49; //1
  57. var regroup = 50; //2
  58. var split = 51; //3
  59. var feed = 52; //4
  60. var spell = 53; //5
  61. var camera = 82; //r
  62. var select_oibs = 86; //v
  63. var select_queen = 66; //b
  64. var clearactions = 46; //space
  65. var healiobs = 85;
  66. var xPos = 0; //Mouse Position
  67. var yPos = 0; //Mouse Position
  68. var mPos = {
  69. x: xPos,
  70. y: yPos,
  71. };
  72. var MyQueen = new Object();
  73. //Script Keys
  74. var ScrptKeys = {
  75. MakeArmy: 76,
  76. FeedQueen: 48,
  77. SplitIobs: 33,
  78. ClearActions: 32,
  79. CleanActions: 46,
  80. MoveAll: 34,
  81. HealIobs: 85,
  82. PPbot: 75,
  83. PPbot2: 73,
  84. RegroupIobs: 55,
  85. AutoHeal: 57,
  86. MaxArmyLvlPlus: 187,
  87. MaxArmyLvlMinus: 189,
  88. StackIobs: 69,
  89. HorizontalLine: 81,
  90. Spawndown: 49,
  91. MakeBase: 113,
  92. };
  93. var flag_PPbot1 = false;
  94. var flag_ClearActions = false;
  95. var flag_FeedQueen = false;
  96. var flag_HealIobs = false;
  97. var flag_MakeArmy = false;
  98. var flag_MoveAll = false;
  99. var flag_SplitIobs = false;
  100. var flag_RegroupIobs = true;
  101. var flag_PPbot2 = false;
  102. var flag_Autoheal = false;
  103. var MaxArmyLvlplus = false;
  104. var MaxArmyLvlMinus = false;
  105. var StackIobs = false;
  106. var HorizontalLine = false;
  107. var Make_Base = false;
  108. var IntervalKeyHandle = setInterval(function(){
  109. if (flag_Autoheal == true){
  110. SendKey(spell);
  111. }
  112. if (flag_MakeArmy == true){
  113. var k = 0;
  114. var iobarray = [];
  115. setTimeout( () =>
  116. {
  117. SendKey(select_queen);
  118. }, 1 );
  119. //aquire my units
  120. for (k = 0; decodeVar[9].units.length > k; k++){
  121. if (decodeVar[9].units[k].id == player.id && decodeVar[9].units[k].queen == false && decodeVar[9].units[k].life > 0){
  122. iobarray.push(decodeVar[9].units[k]);
  123. }
  124. }
  125. //separate low level ones
  126. for (k = 0; k < iobarray.length; k++){
  127. if (iobarray[k].level < ArmyMaxLvl){
  128. player.select.units.push(iobarray[k]);
  129. }
  130. }
  131. decodeVar[1]["regroup"]();
  132. }
  133. if (flag_RegroupIobs == true)
  134. {
  135. SendKey(select_oibs);
  136. SendKey(regroup);
  137. SendKey(select_queen);
  138. }
  139. if (flag_FeedQueen == true)
  140. {
  141. SendKey(select_oibs);
  142. SendKey(feed);
  143. SendKey(select_queen);
  144. }
  145. if (flag_MoveAll == true)
  146. {
  147. SendKey(select_oibs);
  148. SendRButton(xPos, yPos);
  149. SendKey(select_queen);
  150. SendRButton(xPos, yPos);
  151. }
  152. if (flag_HealIobs == true)
  153. {
  154. var MinHealth = Infinity;
  155. var MinLevel = Infinity;
  156. //split bigger
  157. var MyIobs = [];
  158. var IobIndexMinLife = -1;
  159. var IobIndexMinLevel = -1;
  160. //Get My Iobs
  161. for (k = 0; decodeVar[9].units.length > k; k++){
  162. if (decodeVar[9].units[k].id == player.id && decodeVar[9].units[k].queen == false && decodeVar[9].units[k].life > 0){
  163. MyIobs.push(decodeVar[9].units[k]);
  164. }
  165. }
  166. // - determine min health
  167. for (let index = 0; index < MyIobs.length; index++){
  168. if (MinHealth > MyIobs[index].life && MyIobs[index].level >= MinLvlHeal){
  169. MinHealth = MyIobs[index].life;
  170. IobIndexMinLife = index;
  171. }
  172. }
  173. player.select.clean();
  174. for (let index = 0; index < MyIobs.length; index++){
  175. if (MyIobs[index].level < MinLvlHeal){
  176. player.select.units.push(MyIobs[index]);
  177. }
  178. }
  179. player.select.units.push(MyIobs[IobIndexMinLife]);
  180. decodeVar[1]["regroup"]();
  181. }
  182. if (HorizontalLine == true)
  183. {
  184. SendKey(spawn);
  185. SendKey(select_oibs);
  186. SendKey(xPos = 1, yPos);
  187. }
  188. if (flag_PPbot1 == true)
  189. {
  190. PPstage++;
  191. if (PPstage == 1){
  192. if (player.army.v > 2){
  193. SelectHighLevelPP();
  194. deocodeVar[1]["split"]();
  195. flag_HealIobs = true;
  196. SendRButton(798, 558);
  197. flag_HealIobs = false;
  198. }
  199. if (player.army.v > 1){
  200. PPstage++;
  201. }
  202. }
  203. if (PPstage == 2){
  204. if (player.army.v > 3){
  205. SelectMinLevelPP();
  206. decodeVar[1]["regroup"]();
  207. }
  208. if (player.army.v > 2){
  209. PPstage++;
  210. }
  211. }
  212. if (PPstage == 3){
  213. if (player.army.v > 4){
  214. SelectNewLevelPP();
  215. }
  216. if (player.army.v > 3){
  217. SendKey(select_oibs);
  218. decodeVar[1]["regroup"]();
  219. PPstage++;
  220. }
  221. if (PPstage == 4){
  222. if (player.army.v > 3){
  223. flag_HealIobs = true;
  224. flag_HealIobs = false;
  225. }
  226. if (player.army.v > 2){
  227. flag_HealIobs = true;
  228. flag_HealIobs = false;
  229. }
  230. PPstage = 1;
  231. }
  232. }
  233. }
  234. /*
  235. if (player.army.v > 2)
  236. {
  237. SelectMinLevelPP();
  238. decodeVar[1]["regroup"]();
  239. SelectOibLevelPP();
  240. SendRButton(258, 322);
  241. }
  242. if (player.army.v > 4)
  243. {
  244. SelectNewLevelPP(1);
  245. }
  246. */
  247. //Vars
  248. /*
  249. var PPstage1 = false;
  250. var Movequeen = true;
  251. var Moveoib = false;
  252. var Moveoib2 = false;
  253. //Move uints
  254. if (Movequeen == true)
  255. {
  256. SendKey(select_queen);
  257. SendRButton(1, 4999);
  258. Movequeen = false;
  259. Moveoib = true;
  260. }
  261. if (Moveoib == true)
  262. {
  263. SelectHighLevelPP();
  264. SendRButton(208, 558);
  265. Moveoib = false;
  266. PPstage1 = true;
  267. }
  268. //PP sstages
  269. if (PPstage1 == true)
  270. {
  271. player.army.m = "PP stage 1";
  272. SelectHighLevelPP(1);
  273. decodeVar[1]["split"]();
  274. flag_HealIobs = true;
  275. SendRButton (798, 558);
  276. decodeVar[1]["split"](3);
  277. flag_HealIobs = false;
  278. PPstage1 = false;
  279. }
  280. }*/
  281. if (flag_PPbot2 == true)
  282. {
  283. PPotherstage++;
  284. if (PPotherstage == 1){
  285. if (player.army.v > 3){
  286. SelectMinLevelPP();
  287. decodeVar[1]["regroup"]();
  288. }
  289. if (player.army.v > 2){
  290. PPotherstage++;
  291. }
  292. if (PPotherstage == 2){
  293. SelectOibLevelPP();
  294. if (player.army.v > 1){
  295. PPotherstage++;
  296. }
  297. }
  298. if (PPotherstage == 3){
  299. if (player.army.v > 3){
  300. SelectMinLevelPP();
  301. decodeVar[1]["regroup"]();
  302. }
  303. if (player.army.v > 2){
  304. SelectHighLevelPP();
  305. }
  306. if (player.army.v > 1){
  307. PPotherstage++;
  308. }
  309. }
  310. if (PPotherstage == 4){
  311. if (player.army.v > 3){
  312. SendKey(select_oibs);
  313. SendKey(regroup);
  314. }
  315. if (player.army.v > 2){
  316. SendKey(select_oibs);
  317. SendKey(regroup);
  318. }
  319. if (player.army.v > 1){
  320. PPotherstage++;
  321. }
  322. }
  323. }
  324. /*
  325. if (player.army.v > 2)
  326. {
  327. SelectMinLevelPP();
  328. decodeVar[1]["regroup"]();
  329. SelectOibLevelPP(1);
  330. SendRButton(554, 311);
  331. }
  332. var PPothstage1 = true;
  333. var Moveothqueen = true;
  334. var Moveothoib = false;
  335. var Moveothoib2 = false;
  336. if (Moveothqueen == true)
  337. {
  338. SendKey(select_queen);
  339. SendRButton(808, 4999);
  340. Moveothqueen = false;
  341. Moveothoib = true;
  342. }
  343. if (Moveothoib == true)
  344. {
  345. SendKey(select_oibs);
  346. SendRButton(798, 558);
  347. Moveothoib = false;
  348. PPothstage1 = true;
  349. }
  350. if (PPothstage1 == true)
  351. {
  352. player.army.m = "PP other stage 1";
  353. if (player.army.v >= 3)
  354. {
  355. SelectMinLevelPP();
  356. decodeVar[1]["regroup"]();
  357. SendRButton(554, 311);
  358. }
  359. SelectHighLevelPP(9);
  360. decodeVar[1]["split"](1);
  361. flag_HealIobs = true;
  362. SendRButton(208, 558);
  363. decodeVar[1]["split"](7);
  364. flag_HealIobs = false;
  365. PPothstage1 = false;
  366. }*/
  367. }
  368. if (Make_Base == true)
  369. {
  370. SelectHighLevel();
  371. SendRButton(250, 499);
  372. }
  373. }, 1 );
  374.  
  375. function CaptureKeyPress ( a )
  376. {
  377. if(a.keyCode == ScrptKeys.MakeBase)
  378. {
  379. flag_ClearActions = false;
  380. flag_FeedQueen = false;
  381. flag_HealIobs = false;
  382. flag_MakeArmy = false;
  383. flag_MoveAll = false;
  384. flag_SplitIobs = false;
  385. flag_PPbot1 = false;
  386. flag_RegroupIobs = false;
  387. flag_PPbot2 = false;
  388. StackIobs = false;
  389. HorizontalLine = false;
  390. if (Make_Base == true)
  391. {
  392. player.army.m = "1";
  393. Make_Base = false;
  394. return
  395. }
  396. if (Make_Base == false)
  397. {
  398. player.army.m = "Make base";
  399. Make_Base = true;
  400. return
  401. }
  402. }
  403. if (a.keyCode == ScrptKeys.MaxArmyLvlPlus)
  404. {
  405. ArmyMaxLvl++;
  406. MinLvlHeal++;
  407. player.army.m = "Army lvl " + ArmyMaxLvl + " ( Min lvl heal " + MinLvlHeal + " )";
  408. if (flag_MakeArmy == true)
  409. {
  410. player.army.m = "Make army ( level " + ArmyMaxLvl + " )";
  411. }
  412. if (flag_HealIobs == true)
  413. {
  414. player.army.m = "Heal oibs ( Min lvl " + MinLvlHeal + " )";
  415. }
  416. }
  417. if (a.keyCode == ScrptKeys.MaxArmyLvlMinus)
  418. {
  419. ArmyMaxLvl--;
  420. MinLvlHeal--;
  421. player.army.m = "Army lvl " + ArmyMaxLvl + " ( Min lvl heal " + MinLvlHeal + " )";
  422. if (ArmyMaxLvl <= 4) {
  423. ArmyMaxLvl = 4;
  424. }
  425. if (MinLvlHeal <= 2)
  426. {
  427. MinLvlHeal = 2;
  428. }
  429. if (flag_MakeArmy == true)
  430. {
  431. player.army.m = "Make army ( level " + ArmyMaxLvl + " )";
  432. }
  433. if (flag_HealIobs == true)
  434. {
  435. player.army.m = "Heal oibs ( Min lvl " + MinLvlHeal + " )";
  436. }
  437. }
  438. if (a.keyCode == ScrptKeys.HorizontalLine)
  439. {
  440. flag_ClearActions = false;
  441. flag_FeedQueen = false;
  442. flag_HealIobs = false;
  443. flag_MakeArmy = false;
  444. flag_MoveAll = false;
  445. flag_SplitIobs = false;
  446. flag_PPbot1 = false;
  447. flag_RegroupIobs = false;
  448. flag_PPbot2 = false;
  449. if (HorizontalLine == true)
  450. {
  451. HorizontalLine = false;
  452. player.army.m = "1";
  453. return
  454. }
  455. if (HorizontalLine == false)
  456. {
  457. HorizontalLine = true;
  458. player.army.m = "Horizontal line";
  459. return
  460. }
  461. }
  462. if (a.keyCode == ScrptKeys.AutoHeal)
  463. {
  464. if ( flag_Autoheal == true )
  465. {
  466. flag_Autoheal = false;
  467. player.army.m = "Auto heal or auto spell oibs off";
  468. return
  469. }
  470. if ( flag_Autoheal == false )
  471. {
  472. flag_Autoheal = true;
  473. player.army.m = "Auto heal oibs (angel)/ auto spell oibs (witch) on";
  474. return
  475. }
  476. }
  477. if ( a.keyCode == ScrptKeys.RegroupIobs )
  478. {
  479. flag_ClearActions = false;
  480. flag_HealIobs = false;
  481. flag_MakeArmy = false;
  482. flag_MoveAll = false;
  483. flag_SplitIobs = false;
  484. flag_PPbot1 = false;
  485. flag_FeedQueen = false;
  486. StackIobs = false;
  487. HorizontalLine = false;
  488. if ( flag_RegroupIobs == true )
  489. {
  490. flag_RegroupIobs = false;
  491. player.army.m = "1";
  492. return
  493. }
  494. if ( flag_RegroupIobs == false )
  495. {
  496. flag_RegroupIobs = true;
  497. player.army.m = "Regroup oibs";
  498. return
  499. }
  500. }
  501. if ( a.keyCode == ScrptKeys.PPbot2 )
  502. {
  503. flag_ClearActions = false;
  504. flag_FeedQueen = false;
  505. flag_HealIobs = false;
  506. flag_MakeArmy = false;
  507. flag_MoveAll = false;
  508. flag_SplitIobs = false;
  509. flag_RegroupIobs = false;
  510. flag_PPbot1 = false;
  511. StackIobs = false;
  512. HorizontalLine = false;
  513. if ( flag_PPbot2 == true )
  514. {
  515. flag_PPbot2 = false;
  516. player.army.m = "1";
  517. return
  518. }
  519. if ( flag_PPbot2 == false )
  520. {
  521. player.select.clean();
  522. flag_PPbot2 = true;
  523. player.army.m = "PP bot 2 turned on"
  524. return
  525. }
  526. }
  527. if ( a.keyCode == ScrptKeys.PPbot )
  528. {
  529. flag_ClearActions = false;
  530. flag_FeedQueen = false;
  531. flag_HealIobs = false;
  532. flag_MakeArmy = false;
  533. flag_MoveAll = false;
  534. flag_SplitIobs = false;
  535. flag_RegroupIobs = false;
  536. flag_PPbot2 = false;
  537. StackIobs = false;
  538. HorizontalLine = false;
  539. if ( flag_PPbot1 == true )
  540. {
  541. flag_PPbot1 = false;
  542. player.army.m = "1";
  543. return
  544. }
  545. if ( flag_PPbot1 == false )
  546. {
  547. player.select.clean();
  548. flag_PPbot1 = true;
  549. player.army.m = "PP bot turned on"
  550. return
  551. }
  552. }
  553. if ( a.keyCode == ScrptKeys.MakeArmy )
  554. {
  555. flag_ClearActions = false;
  556. flag_FeedQueen = false;
  557. flag_HealIobs = false;
  558. flag_MoveAll = false;
  559. flag_SplitIobs = false;
  560. flag_PPbot1 = false;
  561. flag_RegroupIobs = false;
  562. flag_PPbot2 = false;
  563. StackIobs = false;
  564. HorizontalLine = false;
  565. if ( flag_MakeArmy == true )
  566. {
  567. flag_MakeArmy = false;
  568. player.army.m = "1";
  569. return
  570. }
  571. if ( flag_MakeArmy == false )
  572. {
  573. player.select.clean();
  574. flag_MakeArmy = true;
  575. player.army.m = "Make army ( level " + ArmyMaxLvl + " )";
  576. return
  577. }
  578. }
  579. if ( a.keyCode == ScrptKeys.HealIobs )
  580. {
  581. flag_ClearActions = false;
  582. flag_FeedQueen = false;
  583. flag_MakeArmy = false;
  584. flag_MoveAll = false;
  585. flag_SplitIobs = false;
  586. flag_PPbot1 = false;
  587. flag_RegroupIobs = false;
  588. flag_PPbot2 = false;
  589. StackIobs = false;
  590. HorizontalLine = false;
  591. if ( flag_HealIobs == true )
  592. {
  593. flag_HealIobs = false;
  594. player.army.m = "1";
  595. return
  596. }
  597. if ( flag_HealIobs == false )
  598. {
  599. player.select.clean();
  600. flag_HealIobs = true;
  601. player.army.m = "Heal oibs ( Min lvl " + MinLvlHeal + " )"
  602. return
  603. }
  604. }
  605. if ( a.keyCode == ScrptKeys.FeedQueen )
  606. {
  607. flag_ClearActions = false;
  608. flag_HealIobs = false;
  609. flag_MakeArmy = false;
  610. flag_MoveAll = false;
  611. flag_SplitIobs = false;
  612. flag_PPbot1 = false;
  613. flag_RegroupIobs = false;
  614. flag_PPbot2 = false;
  615. StackIobs = false;
  616. HorizontalLine = false;
  617. if ( flag_FeedQueen == true )
  618. {
  619. flag_FeedQueen = false;
  620. player.army.m = "1";
  621. return
  622. }
  623. if ( flag_FeedQueen == false )
  624. {
  625. flag_FeedQueen = true;
  626. player.army.m = "Feed queen";
  627. return
  628. }
  629. }
  630. if ( a.keyCode == ScrptKeys.SplitIobs )
  631. {
  632. flag_ClearActions = false;
  633. flag_FeedQueen = false;
  634. flag_HealIobs = false;
  635. flag_MakeArmy = false;
  636. flag_MoveAll = false;
  637. flag_SplitIobs = false;
  638. flag_PPbot1 = false;
  639. flag_RegroupIobs = false;
  640. flag_PPbot2 = false;
  641. StackIobs = false;
  642. HorizontalLine = false;
  643. player.army.m = "Split bigger"
  644. player.select.clean();
  645. SelectHighLevel();
  646. decodeVar[ 1 ][ "split" ]();
  647. SelectHighLevel();
  648. decodeVar[ 1 ][ "split" ]();
  649. }
  650. if ( a.keyCode == ScrptKeys.ClearActions )
  651. {
  652. flag_ClearActions = false;
  653. flag_FeedQueen = false;
  654. flag_HealIobs = false;
  655. flag_MakeArmy = false;
  656. flag_MoveAll = false;
  657. flag_SplitIobs = false;
  658. flag_PPbot1 = false;
  659. flag_RegroupIobs = false;
  660. flag_PPbot2 = false;
  661. StackIobs = false;
  662. HorizontalLine = false;
  663. player.army.m = "1";
  664. return
  665. }
  666. if ( a.keyCode == ScrptKeys.CleanActions )
  667. {
  668. flag_ClearActions = false;
  669. flag_FeedQueen = false;
  670. flag_HealIobs = false;
  671. flag_MakeArmy = false;
  672. flag_MoveAll = false;
  673. flag_SplitIobs = false;
  674. flag_PPbot1 = false;
  675. flag_RegroupIobs = false;
  676. flag_PPbot2 = false;
  677. StackIobs = false;
  678. HorizontalLine = false;
  679. player.army.m = "1";
  680. return
  681. }
  682. if ( a.keyCode == ScrptKeys.MoveAll )
  683. {
  684. flag_ClearActions = false;
  685. flag_FeedQueen = false;
  686. flag_HealIobs = false;
  687. flag_MakeArmy = false;
  688. flag_SplitIobs = false;
  689. flag_PPbot1 = false;
  690. flag_RegroupIobs = false;
  691. flag_PPbot2 = false;
  692. StackIobs = false;
  693. HorizontalLine = false;
  694. if ( flag_MoveAll == true )
  695. {
  696. flag_MoveAll = false;
  697. player.army.m = "1";
  698. return
  699. }
  700. if ( flag_MoveAll == false )
  701. {
  702. flag_MoveAll = true;
  703. player.army.m = "Move all";
  704. return
  705. }
  706. }
  707. }
  708. var captureMousePos = function ( event )
  709. {
  710. xPos = event.clientX;
  711. yPos = event.clientY;
  712. }
  713. /*
  714. var onMousedown = function ( e )
  715. {
  716. if ( e.which === 1 ) //LeftMouse
  717. {
  718. SendKey( select_queen );
  719. SendRButton( xPos, yPos );
  720. SendKey( camera );
  721. }
  722. else if ( e.which === 3 ) // RightMouse
  723. {
  724. SendKey( select_oibs );
  725. SendRButton( xPos, yPos );
  726. SendKey( camera );
  727. }
  728. }
  729. */
  730. //stop action
  731. function stopDefAction(evt){
  732. evt.preventdefault();
  733. }
  734. //PP functions
  735. //select high level pp
  736. function SelectHighLevelPP ()
  737. {
  738. player.select.clean();
  739. var k = 0;
  740. var iobarray = [];
  741. var selectiob = [];
  742. for ( k = 0; decodeVar[ 9 ].units.length > k; k++ )
  743. {
  744. if ( decodeVar[ 9 ].units[ k ].id == player.id && decodeVar[ 9 ].units[ k ].queen == false && decodeVar[ 9 ].units[ k ].life > 0 )
  745. {
  746. iobarray.push( decodeVar[ 9 ].units[ k ] );
  747. }
  748. }
  749. for ( k = 0; k < iobarray.length; k++ )
  750. {
  751. if ( iobarray[ k ].level >= PPlvl1 )
  752. {
  753. selectiob.push( iobarray[ k ] );
  754. }
  755. }
  756. if ( selectiob.length == 0 )
  757. {
  758. return false
  759. }
  760. else
  761. {
  762. for ( k = 0; k < selectiob.length; k++ )
  763. {
  764. if ( selectiob[ k ].level >=PPlvl1 )
  765. {
  766. player.select.units.push( selectiob[ k ] );
  767. }
  768. }
  769. return true
  770. }
  771. }
  772. //select medium lvl pp
  773.  
  774. function SelectMediumLevelPP ()
  775. {
  776. player.select.clean();
  777. var k = 0;
  778. var iobarray = [];
  779. var selectiob = [];
  780. for ( k = 0; decodeVar[ 9 ].units.length > k; k++ )
  781. {
  782. if ( decodeVar[ 9 ].units[ k ].id == player.id && decodeVar[ 9 ].units[ k ].queen == false && decodeVar[ 9 ].units[ k ].life > 0 )
  783. {
  784. iobarray.push( decodeVar[ 9 ].units[ k ] );
  785. }
  786. }
  787. for ( k = 0; k < iobarray.length; k++ )
  788. {
  789. if ( iobarray[ k ].level == MediumPPlvl )
  790. {
  791. selectiob.push( iobarray[ k ] );
  792. }
  793. }
  794. if ( selectiob.length == 0 )
  795. {
  796. return false
  797. }
  798. else
  799. {
  800. for ( k = 0; k < selectiob.length; k++ )
  801. {
  802. if ( selectiob[ k ].level == MediumPPlvl )
  803. {
  804. player.select.units.push( selectiob[ k ] );
  805. }
  806. }
  807. }
  808. }
  809. //select min lvl pp
  810. function SelectMinLevelPP ()
  811. {
  812. player.select.clean();
  813. var k = 0;
  814. var iobarray = [];
  815. var selectiob = [];
  816. for ( k = 0; decodeVar[ 9 ].units.length > k; k++ )
  817. {
  818. if ( decodeVar[ 9 ].units[ k ].id == player.id && decodeVar[ 9 ].units[ k ].queen == false && decodeVar[ 9 ].units[ k ].life > 0 )
  819. {
  820. iobarray.push( decodeVar[ 9 ].units[ k ] );
  821. }
  822. }
  823. for ( k = 0; k < iobarray.length; k++ )
  824. {
  825. if ( iobarray[ k ].level <= MinPPlvl )
  826. {
  827. selectiob.push( iobarray[ k ] );
  828. }
  829. }
  830. if ( selectiob.length == 0 )
  831. {
  832. return false
  833. }
  834. else
  835. {
  836. for ( k = 0; k < selectiob.length; k++ )
  837. {
  838. if ( selectiob[ k ].level <= MinPPlvl )
  839. {
  840. player.select.units.push( selectiob[ k ] );
  841. }
  842. }
  843. return true
  844. }
  845. }
  846. //select new lvl pp
  847. function SelectOibLevelPP ()
  848. {
  849. player.select.clean();
  850. var k = 0;
  851. var iobarray = [];
  852. var selectiob = [];
  853. for ( k = 0; decodeVar[ 9 ].units.length > k; k++ )
  854. {
  855. if ( decodeVar[ 9 ].units[ k ].id == player.id && decodeVar[ 9 ].units[ k ].queen == false && decodeVar[ 9 ].units[ k ].life > 0 )
  856. {
  857. iobarray.push( decodeVar[ 9 ].units[ k ] );
  858. }
  859. }
  860. for ( k = 0; k < iobarray.length; k++ )
  861. {
  862. if ( iobarray[ k ].level == Oib2PPlvl )
  863. {
  864. selectiob.push( iobarray[ k ] );
  865. }
  866. }
  867. if ( selectiob.length == 0 )
  868. {
  869. return false
  870. }
  871. else
  872. {
  873. for ( k = 0; k < selectiob.length; k++ )
  874. {
  875. if ( selectiob[ k ].level == Oib2PPlvl )
  876. {
  877. player.select.units.push( selectiob[ k ] );
  878. }
  879. }
  880. return true
  881. }
  882. }
  883. //select new level
  884. function SelectNewLevelPP ()
  885. {
  886. player.select.clean();
  887. var k = 0;
  888. var iobarray = [];
  889. var selectiob = [];
  890. for ( k = 0; decodeVar[ 9 ].units.length > k; k++ )
  891. {
  892. if ( decodeVar[ 9 ].units[ k ].id == player.id && decodeVar[ 9 ].units[ k ].queen == false && decodeVar[ 9 ].units[ k ].life > 0 )
  893. {
  894. iobarray.push( decodeVar[ 9 ].units[ k ] );
  895. }
  896. }
  897. for ( k = 0; k < iobarray.length; k++ )
  898. {
  899. if ( iobarray[ k ].level == PPnewlvl )
  900. {
  901. selectiob.push( iobarray[ k ] );
  902. }
  903. }
  904. if ( selectiob.length == 0 )
  905. {
  906. return false
  907. }
  908. else
  909. {
  910. for ( k = 0; k < selectiob.length; k++ )
  911. {
  912. if ( selectiob[ k ].level == PPnewlvl )
  913. {
  914. player.select.units.push( selectiob[ k ] );
  915. }
  916. }
  917. return true
  918. }
  919. }
  920. //end
  921. function SelectHighLevel ()
  922. {
  923. player.select.clean();
  924. //split bigger
  925. var k = 0;
  926. var iobarray = [];
  927. var splitiob = [];
  928. for ( k = 0; decodeVar[ 9 ].units.length > k; k++ )
  929. {
  930. if ( decodeVar[ 9 ].units[ k ].id == player.id && decodeVar[ 9 ].units[ k ].queen == false && decodeVar[ 9 ].units[ k ].life > 0 )
  931. {
  932. iobarray.push( decodeVar[ 9 ].units[ k ] );
  933. }
  934. }
  935. for ( k = 0; k < iobarray.length; k++ )
  936. {
  937. if ( iobarray[ k ].level > ArmyMaxLvl )
  938. {
  939. splitiob.push( iobarray[ k ] );
  940. }
  941. }
  942. if ( splitiob.length == 0 )
  943. {
  944. return false
  945. }
  946. else
  947. {
  948. for ( k = 0; k < splitiob.length; k++ )
  949. {
  950. if ( splitiob[ k ].level > ArmyMaxLvl )
  951. {
  952. player.select.units.push( splitiob[ k ] );
  953. }
  954. }
  955. return true
  956. }
  957. }
  958. //move oibs to queen
  959. function MoveOibToQueen(r){
  960. xPos = MyQueen;
  961. yPos = MyQueen;
  962. SendRButton(xPos, yPos);
  963. }
  964.  
  965. function SendKey ( k )
  966. {
  967. var ev = new KeyboardEvent( 'keydown',
  968. {
  969. 'keyCode': k,
  970. 'which': k
  971. } );
  972. window.dispatchEvent( ev );
  973. ev = new KeyboardEvent( 'keyup',
  974. {
  975. 'keyCode': k,
  976. 'which': k
  977. } );
  978. window.dispatchEvent( ev );
  979. }
  980.  
  981. function SendRButton ( x, y )
  982. {
  983. var ev = new window.MouseEvent( "mouseup",
  984. {
  985. clientX: x,
  986. clientY: y,
  987. button: 2
  988. } );
  989. window.dispatchEvent( ev );
  990. }
  991.  
  992. function SendLButton ( x, y )
  993. {
  994. var ev = new window.MouseEvent( "mouseup",
  995. {
  996. clientX: x,
  997. clientY: y,
  998. button: 1
  999. } );
  1000. window.dispatchEvent( ev );
  1001. }
  1002. window.addEventListener( "keydown", CaptureKeyPress );
  1003. window.addEventListener( "mousemove", captureMousePos );
  1004. var linesize = 10;
  1005. function MoveOibLine(r, k)
  1006. {
  1007. var a = {
  1008. x: player.cam.rx,
  1009. y: player.cam.ry
  1010. };
  1011. var b = {
  1012. x: r.x - (player.army.v * (linesize / 2)) + (k * linesize),
  1013. y: r.y
  1014. };
  1015. var PosBackUp = {
  1016. x: b.x.toString(),
  1017. y: b.y.toString()
  1018. };
  1019. SendRButton({
  1020. x: parseInt(PosBackUp.x, 10),
  1021. y: parseInt(PosBackUp.y, 10)
  1022. });
  1023. }
  1024. //window.addEventListener( "mousedown", onMousedown );
  1025. } )();
  1026. var ifrm = document.createElement("iframe");
  1027. ifrm.setAttribute("src", "about:blank");
  1028. ifrm.style.width = window.outerWidth-10;
  1029. ifrm.style.height = window.outerHeight/3*2;
  1030. ifrm.style.display = 'none';
  1031. document.body.appendChild(ifrm);
  1032. var win = ifrm.contentWindow;
  1033. window.de = win.dispatchEvent;
  1034. var spawn = setKey(49); //1
  1035. var regroup = setKey(50); //2
  1036. var split = setKey(51); //3
  1037. var feed = setKey(52); //4
  1038. var spell = setKey(53); //5
  1039. var select_oibs = setKey(86); //v
  1040. var select_queen = setKey(66);//b
  1041. var automine = false;
  1042. var autospawn= false;
  1043. var autospell = false;
  1044. var autofuse = false;
  1045. var oibminecnt = false;
  1046. var f = 220;
  1047. var backslash = 70;
  1048. var autofeed = false;
  1049. var autosplit = false;
  1050. var x = 1, y = 1;
  1051. var Keys = {interval:80,autospawn:54,mine:70,setkey:27,split:200}
  1052. var tima = setInterval(autoing, Keys.interval);
  1053. var rainbow = 100000
  1054. var rainbowtick = setInterval(rainbowxp, 100);
  1055. function rainbowxp(){
  1056. rainbow += 1111;
  1057. LOADER.COLOR_BAR = "#" + rainbow;
  1058. DRAW.XP_COLOR = "#" + rainbow;
  1059. DRAW.XP_REST_COLOR = "#080808";
  1060. if (rainbow >= 161616){
  1061. rainbow = 100000;
  1062. }}
  1063. function autoing(){
  1064. if(autospawn) action(spawn);
  1065. if(automine){
  1066. automine = false;
  1067. action(select_oibs);
  1068. action(feed);
  1069. action(select_queen);
  1070. mouseClick();
  1071. }
  1072. function split(){
  1073. if(autosplit){
  1074. autosplit = false;
  1075. action(select_oibs);
  1076. action(split);
  1077. mouseClick();
  1078. }
  1079. }
  1080. }
  1081. function KeyCheck(a){
  1082. if(a.keyCode==Keys.autospawn){
  1083. autospawn = !autospawn;
  1084. }
  1085. if(a.keyCode==Keys.mine){
  1086. automine = true;
  1087. }
  1088. if(a.KeyCode==Keys.split){
  1089. autosplit = true;
  1090. }
  1091. if(a.keyCode==Keys.setkey){
  1092. if (!a.metaKey) {
  1093. a.preventDefault();
  1094. }
  1095. setKeys();
  1096. }
  1097. // }
  1098. }
  1099. window.addEventListener("keydown",KeyCheck,true);
  1100. var captureMousePos = function(event){
  1101. x = event.clientX;
  1102. y = event.clientY;
  1103. }
  1104. window.addEventListener("mousemove", captureMousePos, true)
  1105. function setKeys(){
  1106. try{
  1107. var keys = prompt("Change Keys, values in keycodes",JSON.stringify(Keys).replace(/^\7{+|\}+$/g, ''));
  1108. if(keys === null) return;
  1109. JSON.parse('{'+keys+'}');
  1110. if(k.interval){
  1111. Keys.interval = k.interval;
  1112. clearInterval(tima);
  1113. tima = setInterval(ohno, Keys.interval);
  1114. }
  1115. if(k.autospawn)
  1116. Keys.autospawn = k.autospawn;
  1117. if(k.mine)
  1118. Keys.mine = k.mine;
  1119. if(k.split)
  1120. Keys.split = k.split;
  1121. if(k.setkey)
  1122. Keys.setkey = k.setkey;
  1123. }
  1124. catch(err){confirm("Error" + err.message);}
  1125. }
  1126. function setKey(k){
  1127. var ev = new win.Event("keydown");
  1128. ev.keyCode = k;
  1129. return ev;
  1130. }
  1131. function action(a){
  1132. window.de(a);
  1133. }
  1134. function mouseClick(){
  1135. var ev = new win.MouseEvent("mouseup",{clientX:x,clientY:y,button:2})
  1136. action(ev);
  1137. }
  1138.  
  1139. alert('nControls :n6 - autospawn ,n\ - automine')