Advertisement
Guest User

Untitled

a guest
Jun 13th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.73 KB | None | 0 0
  1. (function(_newNpc, _heroRun, _consoleParse, _parseInput) {
  2. g.loadQueue.push({
  3. fun: () => hero.sp = hero.searchPath
  4. });
  5. const mob = localStorage.getItem('mob') || 'Władca rzek';
  6. const mobs = {
  7. 'Shae Phu':'obrazki/npc/pot/demonszef.gif',
  8. 'Władca rzek':'obrazki/npc/hum/gobmag2.gif',
  9. 'Gobbos':'obrazki/npc/hum/gobsamurai.gif',
  10. 'Razuglag Oklash':'obrazki/npc/hum/praork_mag.gif',
  11. 'Szczęt alias Gładki':'obrazki/npc/woj/rozb04.gif',
  12. 'Tarmus Wuden':'obrazki/npc/hum/klan_tarmus.gif',
  13. 'Foverk Turrim':'obrazki/npc/hum/kobold07.gif',
  14. 'Vari Kruger':'obrazki/npc/hum/gnoll11.gif',
  15. 'Furruk Kozug':'obrazki/npc/hum/gnoll12.gif',
  16. 'Tollok Atamatu':'obrazki/npc/hum/tollok-c-boss.gif',
  17. 'Tollok Utumutu':'obrazki/npc/hum/tollok-c-boss.gif',
  18. 'Goplana':'obrazki/npc/hum/rusalka.gif',
  19. 'Wyznawca ciemnych mocy ':'obrazki/npc/hum/mnich04.gif',
  20. 'Mazurnik Przybrzeżny':'obrazki/npc/hum/wodnik03.gif',
  21. 'Łowca czaszek':'obrazki/npc/hum/umarlak4.gif',
  22. 'Grabarz świątynny':'obrazki/npc/hum/magaz-grabarz.gif',
  23. 'Podły zbrojmistrz':'obrazki/npc/hum/magaz-zbrojmistrz.gif',
  24. 'Szkielet władcy żywiołów':'obrazki/npc/pot/szkiel05.gif',
  25. 'Nieumarły krzyżowiec':'obrazki/npc/pot/el_szkielet.gif',
  26. 'Morthen':'obrazki/npc/hum/krasnolud_boss.gif',
  27. 'Żelazoręki Ohydziarz':'obrazki/npc/pot/ugrape2.gif',
  28. 'Miłośnik łowców':'obrazki/npc/hum/ogr3.gif',
  29. 'Miłośnik rycerzy':'obrazki/npc/hum/ogr2.gif',
  30. 'Miłośnik magii':'obrazki/npc/hum/ogr1.gif',
  31. 'Młody Jack Truciciel':'obrazki/npc/hum/rusalka.gif',
  32. 'Wójt Fistuła':'obrazki/npc/woj/goral05.gif',
  33. 'Młody Jack Truciciel':'obrazki/npc/woj/pirat01.gif',
  34. 'Krab pustelnik':'obrazki/npc/pot/krab_big3.gif',
  35. 'Królowa śniegu':'obrazki/npc/hum/ice_queen.gif',
  36. 'Teściowa Rumcajsa':'obrazki/npc/woj/goral08.gif',
  37. 'Poskramiacz hydr':'obrazki/npc/hum/zagajnik02.gif',
  38. 'Pogromczyni Mantikor':'obrazki/npc/hum/zagajnik03.gif',
  39. 'Pogromca gryfów':'obrazki/npc/hum/zagajnik01.gif',
  40. 'Burkog Lorulk':'obrazki/npc/hum/orkczd.gif',
  41. 'Jertek Moxos':'obrazki/npc/hum/molochelita02n.gif',
  42. 'Berserker Amuno':'obrazki/npc/hum/amuno.gif',
  43. 'Stworzyciel':'obrazki/npc/pot/stworzyciel.gif',
  44. 'Fodug Zolash':'obrazki/npc/hum/fodug_zolash.gif',
  45. 'Mistrz Worundriel':'obrazki/npc/hum/worundriel02.gif',
  46. 'Goons Asterus':'obrazki/npc/hum/mechgoblin4.gif',
  47. 'Adariel':'obrazki/npc/kob/tri-adariel.gif',
  48. 'Duch władcy klanów':'obrazki/npc/hum/praork_duch1.gif',
  49. 'Ogr Stalowy Pazur':'obrazki/npc/pot/ogr_drapak.gif',
  50. 'Bragarth myśliwy dusz':'obrazki/npc/hum/praork_low_elita.gif',
  51. 'Fursharag pożeracz umysłów':'obrazki/npc/hum/praork_mag_elita.gif',
  52. 'Ziuggrael strażnik królowej':'obrazki/npc/hum/praork_woj_elita.gif',
  53. 'Lusgrathera królowa pramatka':'obrazki/npc/hum/prakrolowa.gif',
  54. 'Borgoros Garamir III':'obrazki/npc/hum/minotaur-elita.gif',
  55. 'Chryzoprenia':'obrazki/npc/hum/driada04.gif',
  56. 'Czempion Furboli':'obrazki/npc/hum/forbol03.gif',
  57. 'Torunia Ankelwald':'obrazki/npc/hum/thuz-patr01.gif',
  58. 'Breheret żelazny łeb':'obrazki/npc/hum/barbarzynca06.gif',
  59. 'Mysiur myświórowy król':'obrazki/npc/hum/krolszczur.gif',
  60. 'Sadolia nadzorczyni Hurys':'obrazki/npc/hum/dziewica_nadzor.gif',
  61. 'Bergermona krwawa hrabina':'obrazki/npc/hum/sekta_m_tortur_e2.gif',
  62. 'Sataniel skrytobójca':'obrazki/npc/hum/sekta_zabojca_e2.gif',
  63. 'Annaniel wysysacz marzeń':'obrazki/npc/hum/sekta_mag_e2.gif',
  64. 'Gothardus kolekcjoner głów':'obrazki/npc/hum/sekta_pal_e2.gif',
  65. 'Zufulus smakosz serc':'obrazki/npc/hum/sekta_wyr_serc.gif',
  66. 'Marlloth Malignitas':'obrazki/npc/pot/marlloth.gif',
  67. 'Arachniregina Colosseus':'obrazki/npc/pot/regina-e2.gif',
  68. 'Mocny Maddoks':'obrazki/npc/hum/maddok5.gif',
  69. 'Pancerny Maddok':'obrazki/npc/pot/maddok_roz.gif',
  70. 'Silvanasus':'obrazki/npc/pot/silvanasus.gif',
  71. 'Dendroculus':'obrazki/npc/pot/dendroculus.gif',
  72. 'Cuaitl Citlalin':'obrazki/npc/hum/mahop04.gif',
  73. 'Quetzalcoatl':'obrazki/npc/pot/quetzalcoatl.gif',
  74. 'Neferkar Set':'obrazki/npc/pot/szkiel_set.gif',
  75. 'Chaegd Agnrakh':'obrazki/npc/hum/bar_smokoszef.gif',
  76. 'Vaenra Charkhaam':'obrazki/npc/hum/bar_smoczyca.gif',
  77. 'Nymphemonia':'obrazki/npc/hum/driada5.gif',
  78. 'Zorin':'obrazki/npc/pot/wl-mrozu01.gif',
  79. 'Furion':'obrazki/npc/pot/wl-mrozu02.gif',
  80. 'Artenius':'obrazki/npc/pot/wl-mrozu03.gif'
  81. }
  82. const originalMobImage = new Image;
  83. originalMobImage.src = mobs[mob];
  84.  
  85. const target = {
  86. x: -1,
  87. y: -1
  88. };
  89.  
  90. function getDir(heroX, heroY, mobX, mobY) {
  91. const x = mobX - heroX,
  92. y = heroY - mobY;
  93. if(x >= 0 && y >= 0) return 1;
  94. if(x <= 0 && y >= 0) return 2;
  95. if(x <= 0 && y <= 0) return 3;
  96. if(x >= 0 && y <= 0) return 4;
  97. }
  98.  
  99. function hasTarget() {
  100. return !(target.x === -1 && target.y === -1);
  101. }
  102.  
  103. function getBase64Image(img) {
  104. var canvas = document.createElement("canvas");
  105. canvas.width = img.width;
  106. canvas.height = img.height;
  107.  
  108. var ctx = canvas.getContext("2d");
  109. ctx.drawImage(img, 0, 0);
  110. var dataURL = canvas.toDataURL("image/gif");
  111.  
  112. return dataURL.replace(/^data:image\/(png|jpg|gif);base64,/, "");
  113. }
  114.  
  115. function compareImages(image1, image2, callbackIfTrue) {
  116. console.log('here');
  117. const baseOriginal = getBase64Image(image1);
  118. const baseCopy = getBase64Image(image2);
  119. if(baseOriginal === baseCopy) callbackIfTrue();
  120. else console.log('Shit');
  121. }
  122.  
  123. function onNewNpc(npc) {
  124. if(npc.hasOwnProperty('fake')) return;
  125. console.log(hasTarget());
  126. if(npc.nick === mob && !hasTarget()) {
  127. console.log('comparing');
  128. const cloneImage = new Image;
  129. cloneImage.src = window.location + "/obrazki/npc/" + npc.icon;
  130. cloneImage.onload = function() {
  131. compareImages(originalMobImage, cloneImage, function() {
  132. target.x = npc.x;
  133. target.y = npc.y;
  134. setTimeout(() => hero.sp(target.x, target.y), 3000 + Math.random() * 1000);
  135. message('Target found!');
  136. });
  137.  
  138. };
  139. }
  140. };
  141.  
  142. function inRange(x1, y1, x2, y2) {
  143. return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2)) < 2;
  144. }
  145.  
  146. function attackNpc(nick) {
  147. Object.keys(g.npc).forEach(key => {
  148. const npc = g.npc[key];
  149. if(npc.nick === nick && inRange(hero.x, hero.y, npc.x, npc.y)) {
  150. message(`Attacking: ${npc.nick}`);
  151. setTimeout(() => _g(`fight&a=attack&id=-${npc.id}&ff=1`), 1000 + Math.random() * 1000);
  152. }
  153. })
  154. };
  155.  
  156. function onTargetReached() {
  157. target.x = -1;
  158. target.y = -1;
  159. attackNpc(mob);
  160. };
  161.  
  162. consoleParse = function(cmd) {
  163. if(cmd.indexOf('setMob') > -1) {
  164. message('Success');
  165. const arr = cmd.split(' ');
  166. arr.splice(0, 1);
  167. const mob = arr.join(' ');
  168. localStorage.setItem('mob', mob);
  169. setTimeout(() => window.location.reload(), 200);
  170. } else {
  171. _consoleParse(cmd);
  172. }
  173. }
  174.  
  175. newNpc = function(npcs) {
  176. if(arguments.length !== 0 && npcs !== undefined) {
  177. console.log('mapped');
  178. Object.keys(npcs).forEach(elem => onNewNpc(npcs[elem]));
  179. }
  180. _newNpc.apply(this, arguments);
  181. }
  182.  
  183. hero.run = function() {
  184. if(inRange(hero.x, hero.y, target.x, target.y)) {
  185. onTargetReached();
  186. }
  187. _heroRun.apply(this, arguments);
  188. }
  189.  
  190. g.loadQueue.push({
  191. fun: () => $('#nick').text(mob)
  192. });
  193. setTimeout(() => window.location.reload(), 60000 + Math.random() * 10000);
  194. setTimeout(function(){
  195. for(var i in g.npc){
  196. if ((Math.abs(hero.rx - g.npc[i].x) <= 1 && Math.abs(hero.ry - g.npc[i].y) <= 1) && (g.npc[i].type == 2 || g.npc[i].type == 3)){
  197. _g("fight&a=attack&ff=1&id=-"+i);
  198. break;
  199. }
  200. }
  201. },5000);
  202. })(newNpc, hero.run, consoleParse, parseInput);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement