bw-auto-monster

http://www.bloodyworld.com

  1. // ==UserScript==
  2. // @name bw-auto-monster
  3. // @description http://www.bloodyworld.com
  4. // @include http://www.bloodyworld.com/*
  5. // @exclude http://www.bloodyworld.com/xfn*
  6. // @version 0.0.1.20150604003654
  7. // @namespace https://greasyfork.org/users/12000
  8. // ==/UserScript==
  9. // (c) Anton Fedorov aka DataCompBoy, 2006-2007
  10. // Clan <The Keepers of Balance>.
  11. // improved by maxwell
  12.  
  13. kobamAntiMobComplect = 0; // Put fast-menu item count to re-wear complect
  14. kobamHealerBottle = 0; // Put fast-menu item count to drink bottle
  15.  
  16. if (document.location.href.match("http://www.bloodyworld.com/index.php\\?file=menu")) {
  17. kob_am_state = 0; // 0=off, 1=wait max, 2=fight, 3=rewear
  18. function kob_do_am(){
  19. if (kob_am_state==0) { // Start automonster
  20. kob_am_state = 1;
  21. } else {
  22. kob_am_state = 0;
  23. }
  24. kob_do_am_step();
  25. };
  26.  
  27. function kob_do_am_step() {
  28. if (kob_am_state==0) {
  29. kob_do_am_step0();
  30. } else
  31. if (kob_am_state==1) {
  32. kob_do_am_step1();
  33. } else
  34. if (kob_am_state==2) {
  35. kob_do_am_step2();
  36. } else
  37. { document.getElementById('kob_am_i').innerHTML = "bug"; }
  38. return kob_am_state;
  39. };
  40. function kob_do_am_step0() {
  41. document.getElementById('kob_am_i').innerHTML = "disabled";
  42. };
  43. function kob_do_am_step1() {
  44. document.getElementById('kob_am_i').innerHTML = "wait for life";
  45. if (parent.frames.main.realLife >= document.getElementById('kob_am_lb').value) {
  46. kob_am_state = 2;
  47. kob_do_am_step();
  48. }
  49. };
  50. function kob_do_am_step2() {
  51. document.getElementById('kob_am_i').innerHTML = "...fight...";
  52. if (parent.frames.main.realLife <= document.getElementById('kob_am_lf').value) {
  53. kob_am_state = 1;
  54. kob_do_am_step();
  55. } else {
  56. MoveTime = (3+Math.random()*7)*1000;
  57. setTimeout("parent.frames.main.openMenu();",MoveTime);
  58. if (kobamAntiMobComplect) {
  59. MoveTime += (1+Math.random()*3)*1000;
  60. setTimeout("parent.frames.main.RP_useSlot("+kobamAntiMobComplect+");",MoveTime);
  61. MoveTime += (1+Math.random()*3)*1000;
  62. setTimeout("parent.frames.main.RP_useSubmit();",MoveTime);
  63. }
  64. if (kobamHealerBottle) {
  65. MoveTime += (1+Math.random()*3)*1000;
  66. setTimeout("parent.frames.main.RP_useSlot("+kobamHealerBottle+");",MoveTime);
  67. MoveTime += (1+Math.random()*3)*1000;
  68. setTimeout("parent.frames.main.RP_useSubmit();",MoveTime);
  69. }
  70. MoveTime += (1+Math.random()*3)*1000;
  71. setTimeout("parent.frames.main.ShowH('confirmImg',null,'"+document.getElementById('kob_am_m').value+"');",MoveTime);
  72. }
  73. };
  74.  
  75. window.opera.addEventListener('AfterEvent.load',function(e){
  76. if(e.event.target instanceof Document) {
  77. kobb = document.getElementById('kob_tbl');
  78. if (!kobb) { // Create special menu
  79. var newdiv = document.createElement('div');
  80. newdiv.setAttribute('id','kob_conf');
  81. newdiv.innerHTML = '<hr><table border=1><tr id=kob_tbl><td>&nbsp;</td></tr></table>';
  82. document.body.appendChild(newdiv);
  83. kobb = document.getElementById('kob_tbl');
  84. }
  85. newtd=document.createElement('td');
  86. var plevel = parent.frames.main.document.body.innerHTML.match(/TD-HeroName-TXT[^\[]+[\[]([0-9?]+)[\]]/)[1];
  87. newtd.innerHTML = "<table border=0><tr>"
  88. +"<td>Auto-monster: <select id=kob_am_m>"
  89. +"<option value='traglodit' "+(plevel==1?"selected":"")+">Traglodit[1]</option>"
  90. +"<option value='skeleton' "+(plevel==2?"selected":"")+">Skeleton[2]</option>"
  91. +"<option value='centaur' "+(plevel==3?"selected":"")+">Centaur[3]</option>"
  92. +"<option value='golem' "+(plevel==4?"selected":"")+">Golem[4]</option>"
  93. +"<option value='harpy' "+(plevel==5?"selected":"")+">Harpy[5]</option>"
  94. +"<option value='gargoyle' "+(plevel==6?"selected":"")+">Gargoyle[6]</option>"
  95. +"<option value='troll' "+(plevel==7?"selected":"")+">Troll[7]</option>"
  96. +"<option value='dendroid' "+(plevel==8?"selected":"")+">Dendroid[8]</option>"
  97. +"<option value='unicorn' "+(plevel==9?"selected":"")+">Unicorn[9]</option>"
  98. +"<option value='wyvern' "+(plevel==10?"selected":"")+">Wyvern[10]</option>"
  99. +"<option value='griffin' "+(plevel==11?"selected":"")+">Griffin[11]</option>"
  100. +"<option value='cyclop' "+(plevel==12?"selected":"")+">Cyclop[12]</option>"
  101. +"<option value='rocthunderbird' "+(plevel==13?"selected":"")+">Rocthunderbird[13]</option>"
  102. +"</select><br>"
  103. +"Life to start: <input id=kob_am_lb cols=5 size=5 value="+parent.frames.main.maxLife+"><br>"
  104. +"Life to stop: <input id=kob_am_lf cols=5 size=5 value="+Math.round(parent.frames.main.maxLife*2/5)+"><br>"
  105. +"<td><input id=kob_am type=submit value='Fight' onclick='kob_do_am(); return false;'><br>"
  106. +"<span id=kob_am_i></span>"
  107. +"</table>"
  108. ;
  109. kobb.appendChild(newtd);
  110. }
  111. },false);
  112. } else {
  113. // Stand in portal
  114. if (document.location.href.match(/[?&]file=plato/) ||
  115. document.location.href.match(/[?&]file=declare_battlemonstr/)) {
  116. var kob_am_started = 0;
  117. window.opera.addEventListener('AfterEvent.load',function(e){
  118. if(e.event.target instanceof Document) {
  119. if (parent.frames.menu.kob_am_state == 1) {
  120. parent.frames.menu.kob_do_am_step();
  121. } else
  122. if (parent.frames.menu.kob_am_state == 2 && !kob_am_started) {
  123. kob_am_started = 1;
  124. parent.frames.menu.kob_do_am_step();
  125. }; // Add life timer
  126. }
  127. },false);
  128. window.opera.defineMagicFunction(
  129. 'increaseLife',
  130. function(real, thisObject) {
  131. var ret = real.apply( thisObject, arguments.slice(2) );
  132. if (parent.frames.menu.kob_am_state == 1) {
  133. parent.frames.menu.kob_do_am_step();
  134. } else
  135. if (parent.frames.menu.kob_am_state == 2 && !kob_am_started) {
  136. kob_am_started = 1;
  137. parent.frames.menu.kob_do_am_step();
  138. }
  139. return ret;
  140. }
  141. );
  142. }
  143. // Add fight-close
  144. if (parent.frames.menu.kob_am_state > 0) {
  145. window.opera.addEventListener('AfterEvent.load',function(e){
  146. if(e.event.target instanceof Document) {
  147. /* Step 1: find out popup */
  148. var popup = document.getElementById('alertForm');
  149. if (popup) {
  150. PressMsg('no');
  151. }
  152.  
  153. var eb = document.body.innerHTML.match(/(index.php[?]file=endbattle[&][^"]+)"/);
  154. if(eb) {
  155. MoveTime = (1+Math.random()*3)*1000;
  156. setTimeout("document.location='index.php?file=endbattle&cls=close';",MoveTime);
  157. }
  158. }
  159. }, false);
  160. }
  161. }