Guest User

Untitled

a guest
Mar 24th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.52 KB | None | 0 0
  1. (function(){
  2. var log = window.console.log;
  3.  
  4. var EverWingHacks = {
  5. // State
  6. active : true,
  7. groupSize : 1,
  8. groupLimit : 4,
  9.  
  10. /* Load
  11. ---------------------------------------- */
  12. // Load hack
  13. load : function() {
  14. this.hacks.init(this);
  15.  
  16. // Hook ticks
  17. log("[EverWingHacks] Hooking game's ticks ...");
  18. this.ticksInterval = setInterval(() => {
  19. this.ticks();
  20. }, 1000/60);
  21.  
  22. // Check group size
  23. this.groupInterval = setInterval(() => {
  24. FBInstant.context.getPlayersAsync().then((data) => {
  25. if (data) this.groupSize = data.length;
  26. });
  27. }, 2000);
  28. },
  29.  
  30. // Handle tick
  31. ticksInterval : null,
  32. ticks : function(){
  33. this.game.resolveGame(this);
  34.  
  35. // Game play hacks
  36. if (this.active && this.game.isPlaying()) {
  37.  
  38. // On game start
  39. if(this.game.isEnteringGame()){
  40. // Lives hack
  41. this.hacks.lives.apply();
  42. // Sidekick powers hack
  43. this.hacks.sidekickPowers.apply();
  44. }
  45.  
  46. // Magnet hack
  47. this.hacks.magnet.tick();
  48. // Double shot hack
  49. this.hacks.doubleShot.tick();
  50. // Rush hack
  51. this.hacks.rush.tick();
  52. // No meteors hack
  53. this.hacks.noMeteors.tick();
  54. // Weapon hack
  55. this.hacks.weapon.tick();
  56. this.hacks.sidekickWeapon.tick();
  57. // Waves space hack
  58. this.hacks.waveSpacing.tick();
  59. // Loots hack
  60. this.hacks.lootWeights.tick();
  61. // Time hack
  62. this.hacks.timeScale.tick();
  63. }
  64. },
  65.  
  66. /* Game functions
  67. ---------------------------------------- */
  68. game : {
  69.  
  70. resolveGame : function(self){
  71. this.enteringGame_history = this.playing;
  72.  
  73. // If game has not started
  74. if(!window.GC.app.gameModel.gameStarted)
  75. this.playing = false;
  76. // If game over
  77. else if(window.GC.app.gameModel.gameOver)
  78. this.playing = false;
  79. // Game active
  80. else
  81. this.playing = true;
  82. },
  83.  
  84. playing : false,
  85. isPlaying : function(){
  86. // State
  87. return this.playing;
  88. },
  89.  
  90. enteringGame : false,
  91. enteringGame_history : false,
  92. isEnteringGame : function(){
  93. return (this.playing && this.enteringGame_history == false);
  94. }
  95. },
  96.  
  97. /* Hacks
  98. ---------------------------------------- */
  99. hacks : {
  100.  
  101. init : function(self) {
  102. this.magnet.self = self;
  103. this.magnet.tools = this.tools;
  104. this.doubleShot.self = self;
  105. this.doubleShot.tools = this.tools;
  106. this.rush.self = self;
  107. this.rush.tools = this.tools;
  108. this.noMeteors.self = self;
  109. this.noMeteors.tools = this.tools;
  110. this.lives.self = self;
  111. this.lives.tools = this.tools;
  112. this.weapon.self = self;
  113. this.weapon.tools = this.tools;
  114. this.sidekickWeapon.self = self;
  115. this.sidekickWeapon.tools = this.tools;
  116. this.sidekickPowers.self = self;
  117. this.sidekickPowers.tools = this.tools;
  118. this.waveSpacing.self = self;
  119. this.waveSpacing.tools = this.tools;
  120. this.lootWeights.self = self;
  121. this.lootWeights.tools = this.tools;
  122. this.timeScale.self = self;
  123. this.timeScale.tools = this.tools;
  124. },
  125.  
  126. /* Codes
  127. ---------------------------------------- */
  128. magnet : {
  129. // Manage
  130. name : 'hacks.magnet',
  131. active : false,
  132. history : false,
  133. // Constants
  134. reach : 500,
  135. // Tick inject
  136. tick : function() {
  137. if(this.active && this.self.groupSize <= this.self.groupLimit){
  138. this.history = true;
  139. this.tools.powerTimer.on(window.GC.app.gameModel.magnetTimer);
  140. window.GC.app.gameModel.player.magnetReach = this.reach;
  141. }
  142. else if (this.history){
  143. this.history = false;
  144. this.tools.powerTimer.off(window.GC.app.gameModel.magnetTimer);
  145. window.GC.app.gameModel.player.magnetReach = 0;
  146. }
  147. }
  148. },
  149.  
  150. doubleShot : {
  151. // Manage
  152. name : 'hacks.doubleShot',
  153. active : false,
  154. history : false,
  155. // Tick inject
  156. tick : function() {
  157. if(this.active && this.self.groupSize <= this.self.groupLimit){
  158. this.history = true;
  159. this.tools.powerTimer.on(window.GC.app.gameModel.doubleShotTimer);
  160. }
  161. else if (this.history){
  162. this.history = false;
  163. this.tools.powerTimer.off(window.GC.app.gameModel.doubleShotTimer);
  164. }
  165. }
  166. },
  167.  
  168. rush : {
  169. // Manage
  170. name : 'hacks.rush',
  171. active : false,
  172. history : false,
  173. normal : 0,
  174. // Tick inject
  175. tick : function() {
  176. if(this.active && this.self.groupSize <= this.self.groupLimit){
  177. if (!this.history){
  178. this.normal = window.GC.app.gameModel.player.vy;
  179. }
  180. this.history = true;
  181. this.tools.powerTimer.on(window.GC.app.gameModel.rushTimer);
  182. window.GC.app.gameModel.player.vy = -1.9;
  183. }
  184. else if (this.history){
  185. this.history = false;
  186. this.tools.powerTimer.off(window.GC.app.gameModel.rushTimer);
  187. window.GC.app.gameModel.player.vy = this.normal;
  188. }
  189. }
  190. },
  191.  
  192. noMeteors : {
  193. // Manage
  194. name : 'hacks.noMeteors',
  195. active : false,
  196. // Tick inject
  197. tick : function() {
  198. if(this.active && this.self.groupSize <= this.self.groupLimit){
  199. for (var i = window.GC.app.gameModel.meteors._pool._models.length - 1; i >= 0; i--) {
  200. window.GC.app.gameModel.meteors._pool._models[i].health = 0;
  201. }
  202. }
  203. }
  204. },
  205.  
  206. lives : {
  207. // Manage
  208. name : 'hacks.lives',
  209. active : false,
  210. // Variables
  211. lives : 3,
  212. // Inject
  213. apply : function() {
  214. if(this.active && this.self.groupSize <= this.self.groupLimit){
  215. window.GC.app.gameModel.extraLives = this.lives;
  216. }
  217. else if (this.active) {
  218. window.GC.app.gameModel.extraLives = 1;
  219. }
  220. }
  221. },
  222.  
  223. weapon : {
  224. // Manage
  225. name : 'hacks.weapon',
  226. active : false,
  227. // Variables
  228. damage : -1,
  229. level : -1,
  230. speed : -1,
  231. // Tick inject
  232. tick : function() {
  233. if(this.active && this.self.groupSize <= this.self.groupLimit){
  234. if(this.damage >= 0)
  235. window.GC.app.gameModel.player.damage = this.damage;
  236. if(this.level >= 0)
  237. window.GC.app.gameModel.player.bulletLevel = this.level;
  238. if(this.speed >= 0)
  239. window.GC.app.gameModel.player.shootTimeout = 101 - this.speed;
  240. }
  241. }
  242. },
  243.  
  244. sidekickWeapon : {
  245. // Manage
  246. name : 'hacks.sidekickweapon',
  247. active : false,
  248. // Variables
  249. damage : -1,
  250. level : -1,
  251. speed : -1,
  252. // Tick inject
  253. tick : function() {
  254. var sidekick;
  255. for (var i = 0; i < window.GC.app.gameModel.sidekicks.models.length; i++) {
  256. sidekick = window.GC.app.gameModel.sidekicks.models[i];
  257. if(this.active && this.self.groupSize <= this.self.groupLimit){
  258. if(this.damage >= 0)
  259. sidekick.damage = this.damage;
  260. if(this.level >= 0)
  261. sidekick.bulletLevel = this.level;
  262. if(this.speed >= 0)
  263. sidekick.shootTimeout = 101 - this.speed;
  264. }
  265. }
  266. }
  267. },
  268.  
  269. sidekickPowers : {
  270. // Manage
  271. name : 'hacks.sidekickpowers',
  272. active : false,
  273. // Constants
  274. powers : ["homing","bombs","dualShot","spreadShot","bossKiller","rushFlowers","poison","gems","itemBoost","itemSpawn","snowKiller","treasure","slowing","questing","charm","ice"],
  275. // Inject
  276. apply : function() {
  277. if (this.self.groupSize <= this.self.groupLimit){
  278. var sidekick;
  279. for (var i = 0; i < window.GC.app.gameModel.sidekicks.models.length; i++) {
  280. sidekick = window.GC.app.gameModel.sidekicks.models[i];
  281. for (var j = 0; j < this.powers.length; j++) {
  282. if(sidekick.powers.indexOf(this.powers[j]) < 0){
  283. sidekick.powers = JSON.parse(JSON.stringify(sidekick.powers));
  284. sidekick.powers.push(this.powers[j]);
  285. }
  286. }
  287. }
  288. }
  289. }
  290. },
  291.  
  292. waveSpacing : {
  293. // Manage
  294. name : 'hacks.wavespacing',
  295. active : false,
  296. // Variables
  297. space : 1,
  298. // Tick inject
  299. tick : function() {
  300. if(this.active && this.self.groupSize <= this.self.groupLimit){
  301. window.GC.app.gameModel.enemies.waveSpacing = this.space;
  302. }
  303. }
  304. },
  305.  
  306. lootWeights : {
  307. // Manage
  308. name : 'hacks.lootweights',
  309. active : false,
  310. // Variables
  311. weights : {
  312. amethyst : 0,
  313. bulletLevel : 0,
  314. coin : 0,
  315. deathRush : 0,
  316. diamond : 0,
  317. doubleShot : 0,
  318. energy : 0,
  319. laser : 0,
  320. magnet : 0,
  321. ruby : 0,
  322. rush : 0,
  323. slow : 0,
  324. trophy : 1
  325. },
  326. // Tick inject
  327. tick : function() {
  328. if(this.active && this.self.groupSize <= this.self.groupLimit){
  329. for (name in this.weights) {
  330. if (this.weights.hasOwnProperty(name)) {
  331. window.GC.app.gameModel.items.spawnChances[name] = this.weights[name];
  332. }
  333. }
  334. }
  335. }
  336. },
  337.  
  338. timeScale : {
  339. // Manage
  340. name : 'hacks.timescale',
  341. active : false,
  342. history : false,
  343. // Variables
  344. scale : 3,
  345. // Tick inject
  346. tick : function() {
  347. if(this.active && this.self.groupSize <= this.self.groupLimit){
  348. if(!this.history) this.history = true;
  349. window.GC.app.gameModel.timeMult = this.scale;
  350. }
  351. else if (this.history){
  352. this.history = false;
  353. window.GC.app.gameModel.timeMult = 1;
  354. }
  355. }
  356. },
  357.  
  358. /* Tools
  359. ---------------------------------------- */
  360. tools : {
  361. powerTimer : {
  362. on : function(obj){
  363. obj.active = true;
  364. obj.duration = 1e+10;
  365. obj.elapsed = 1e+10;
  366. },
  367. off : function(obj){
  368. obj.active = false;
  369. obj.duration = 1e+4;
  370. obj.elapsed = 1e+4;
  371. }
  372. },
  373.  
  374. getSidekicks : function(){
  375. var equiped = {};
  376. var sidekicks = window.GC.app.gameView.sidekicksModel.sidekicksList;
  377. for(var i=0; i<sidekicks.length; i++){
  378. if(sidekicks[i].state == "equippedLeft"){
  379. equiped.left = sidekicks[i];
  380. }
  381. else if(sidekicks[i].state == "equippedRight"){
  382. equiped.right = sidekicks[i];
  383. }
  384. }
  385. return equiped;
  386. },
  387.  
  388. dailyLimitUse : function(name){
  389. if(typeof this.hacks.limits.daily[name] == "undefined")
  390. return;
  391.  
  392. var value = parseInt(this.self.storage.getItem("limits.daily." + name), 10);
  393. if (!isNaN(value)) {
  394. if (value > 0){
  395. this.self.storage.setItem("limits.daily." + name, value - 1);
  396. this.hacks.limits.daily[name] = value - 1;
  397. }
  398. }
  399. else {
  400. this.self.storage.setItem("limits.daily." + name, 0);
  401. this.hacks.limits.daily[name] = 0;
  402. }
  403. },
  404.  
  405. getNow : function(){
  406. var now = new Date();
  407. return now.getDate() + "/" + (now.getMonth()+1) + "/" + (now.getYear()+1900);
  408. }
  409. },
  410.  
  411.  
  412. /* Actions Codes
  413. ---------------------------------------- */
  414. fakeGame : function(data, callback) {
  415. // Fake game data
  416. var data = data || {};
  417. data.score = data.score || 10 + Math.round(Math.random()*10);
  418. data.seconds = data.seconds || 10 + Math.round(Math.random()*10);
  419. data.coins = data.coins || 0;
  420. data.trophies = data.trophies || 0;
  421. data.energy = data.energy || 0;
  422. data.xp = data.xp || 0;
  423. data.sidekick_xp = data.sidekick_xp || 0;
  424. // Get sidekicks
  425. var sidekicks = {};
  426. var sidekicks_db = window.GC.app.gameView.sidekicksModel.sidekicksList;
  427. for(var i=0; i<sidekicks_db.length; i++){
  428. if(sidekicks_db[i].state == "equippedLeft"){sidekicks.left = sidekicks_db[i];}
  429. else if(sidekicks_db[i].state == "equippedRight"){sidekicks.right = sidekicks_db[i];}
  430. }
  431. // App reference
  432. var app = window.GC.app;
  433. // Send command
  434. app.mvc.commandMap.GamePlayedCommand.prototype.execute.apply({mvc :app.mvc,finishCommand : function(e, $){}},
  435. [{
  436. playerID : app.gameModel.player.id,
  437. secondsElapsed : data.seconds,
  438. killedBy : "Meteor SINGLE " + (Math.round(Math.random()*3) + 1),
  439. background : "ocean",
  440. score : data.score,
  441. commonEarned : data.coins,
  442. premiumEarned : data.trophies,
  443. energyEarned : data.energy,
  444. playerXP : data.xp,
  445. sidekickXP : data.sidekick_xp,
  446. sidekickLeftID : (sidekicks.left) ? sidekicks.left.id : null,
  447. sidekickRightID : (sidekicks.right) ? sidekicks.right.id : null,
  448. }]);
  449. },
  450.  
  451. unlockCharacters : function() {
  452. var names = ["fiona", "sophia", "coin", "magnet", "lenore", "jade", "arcana", "lyra", "trixie", "lucia"];
  453. for (var i = 0; i < names.length; i++) {
  454. if(GC.app.mvc.models.CharactersModel.characters[names[i]].state == "locked")
  455. GC.app.client.runFunction("purchaseCharacter", { characterID: names[i], isFree: true });
  456. }
  457. },
  458.  
  459. charactersMaxLevel : function() {
  460. var names = ["fiona", "sophia", "coin", "magnet", "lenore", "jade", "arcana", "lyra", "trixie", "lucia"];
  461. var level = 1;
  462. var maxlevel = 50;
  463. var state = null;
  464. for (var i = 0; i < names.length; i++) {
  465. if(GC.app.mvc.models.CharactersModel.characters[names[i]].state == "locked") continue;
  466. level = GC.app.mvc.models.CharactersModel.characters[names[i]].level;
  467. maxlevel = GC.app.mvc.models.CharactersModel.characters[names[i]].maxLevel;
  468. state = GC.app.mvc.models.CharactersModel.characters[names[i]].state;
  469. log("Level : " + level + " Max Level : " + maxlevel + " state : " + state);
  470. if(state == "idle" || state == "equiped") {
  471. if(state == "idle") {
  472. GC.app.client.runFunction("equipCharacter", {characterName : names[i]});
  473. log("equiping : " + names[i]);
  474. }
  475. for (x = level; x < maxlevel; x++) {
  476. log("upgrading : " + names[i] + " x : " + x);
  477. GC.app.client.runFunction("purchaseCharacterUpgrade", {characterID : names[i], isFree : true});
  478. }
  479. }
  480. }
  481. },
  482.  
  483. getRandomSideKick : function(callback) {
  484. var gacha = GC.app.client.schemaAPI.getTable("gachaConfig").rows;
  485. return this.getSideKick(gacha[Math.floor(Math.random() * gacha.length)].type, callback);
  486. },
  487.  
  488. getLegendarySideKick : function(callback) {
  489. return this.getSideKick("legendary", callback);
  490. },
  491.  
  492. getSideKick : function(id, callback) {
  493. // Get sidekick
  494. return GC.app.client.runFunction("sidekickGacha", {isFree : true, gachaType : id}).then(function(){
  495. // Get new items
  496. var items = GC.app.client.stateAPI.getNewItems();
  497. // If new items
  498. if (items.length > 0) {
  499. // Console message
  500. log("You got a \"" + items[0].model.name + "\" sidekick!");
  501. // If callback
  502. if(typeof callback == "function")
  503. callback(items[0]);
  504. }
  505. });
  506. },
  507.  
  508. getEnergy : function(x){
  509. if(GC.app.client.schemaManager.models[17]._frozen)
  510. GC.app.client.schemaManager.models[17]._frozen = false;
  511. if (GC.app.client.schemaAPI.getTable("raidEnergyShop").rows.length == 6) {
  512. GC.app.client.schemaManager.models[17].rows = JSON.parse(JSON.stringify(GC.app.client.schemaManager.models[17].rows));
  513. for(var i = 0; i < GC.app.client.schemaManager.models[17].rows.length; i++){
  514. if(GC.app.client.schemaManager.models[17].rows[i].count == x)
  515. break;
  516. }
  517. GC.app.client.schemaManager.models[17].rows.splice(i, 0, {
  518. "id" : "item-free",
  519. "icon" : "resources/images/game/base/item_energy.png",
  520. "count" : x,
  521. "cost" : 0,
  522. "currency" : "trophies",
  523. "bonus" : 0
  524. });
  525. } else {
  526. GC.app.client.schemaAPI.getTable("raidEnergyShop").getRow("item-free").count = x;
  527. }
  528. GC.app.mvc.sendNotification("PurchaseEnergyCommand",{id: "item-free"});
  529. }
  530. }
  531. };
  532.  
  533. // Wait
  534. var loaded = false;
  535. var check = function(){
  536. if(window.GC && window.GC.app && window.GC.app.gameModel && !loaded){
  537. EverWingHacks.load();
  538. loaded = true;
  539. clearInterval(wait);
  540. }
  541. };
  542.  
  543. var wait = setInterval(function(){
  544. check();
  545. }, 100);
  546.  
  547.  
  548.  
  549.  
  550. // Debug
  551. //window.EverWingHacks = EverWingHacks;
  552.  
  553.  
  554.  
  555.  
  556. // Connection
  557. var conn = {
  558.  
  559. isExt : (document.currentScript) ? false : true,
  560. event : {
  561. ext : "ext-event",
  562. page : "page-event"
  563. },
  564.  
  565. init : function(){
  566. if (this.isExt) {
  567. this.event.listen = this.event.ext;
  568. this.event.fire = this.event.page;
  569. // Inject script on page
  570. this.s = document.createElement('script');
  571. this.s.src = chrome.extension.getURL('script.js');
  572. this.s.onload = function() {this.remove();};
  573. // Listent for event
  574. this.s.addEventListener("click", () => {
  575. this.handle();
  576. }, false);
  577. // Inject on page
  578. window.addEventListener("load", () => {
  579. (document.head || document.documentElement).appendChild(this.s);
  580. }, false);
  581. }
  582. else {
  583. this.event.listen = this.event.page;
  584. this.event.fire = this.event.ext;
  585. // Save element
  586. this.s = document.currentScript;
  587. // Listent for event
  588. this.s.addEventListener("click", () => {
  589. this.handle();
  590. }, false);
  591. }
  592. },
  593.  
  594. handle : function() {
  595. if (this.s.dataset.event != this.event.listen) return;
  596. delete this.s.dataset.event;
  597. // Get data
  598. var data = {};
  599. var type = this.s.dataset.type;
  600. delete this.s.dataset.type;
  601. for (let i in this.s.dataset) {
  602. if (this.s.dataset.hasOwnProperty(i)) {
  603. console.log(i, this.s.dataset[i]);
  604. data[i] = JSON.parse(this.s.dataset[i]);
  605. }
  606. }
  607. // Clear old data
  608. for (let i in this.s.dataset) {
  609. if (this.s.dataset.hasOwnProperty(i)) {
  610. delete this.s.dataset[i];
  611. }
  612. }
  613.  
  614. // Call events
  615. for (let i = 0; i < this.list.length; i++) {
  616. let e = this.list[i];
  617. if (e.type == type) {
  618. setTimeout(() => {
  619. e.callback(JSON.parse(JSON.stringify(data)));
  620. }, 0);
  621. }
  622. }
  623. },
  624.  
  625. list : [],
  626. on : function(type, callback) {
  627. this.list.push({
  628. type : type,
  629. callback : callback
  630. });
  631. },
  632.  
  633. fire : function(type, params) {
  634. this.s.dataset.event = this.event.fire;
  635. // Set type
  636. this.s.dataset.type = type;
  637. // Dataset
  638. for (let item in params) {
  639. if (params.hasOwnProperty(item)) {
  640. this.s.dataset[item] = JSON.stringify(params[item]);
  641. }
  642. }
  643. this.s.click();
  644. }
  645. }
  646. conn.init();
  647.  
  648. var logger = function(){
  649. log.apply(null, arguments);
  650. }
  651.  
  652. // Listeners
  653. conn.on("magnet", function(data){
  654. logger("Magnet : ", !EverWingHacks.hacks.magnet.active);
  655. EverWingHacks.hacks.magnet.active = !EverWingHacks.hacks.magnet.active;
  656. });
  657. conn.on("doubleshot", function(data){
  658. logger("DoubleShot : ", !EverWingHacks.hacks.doubleShot.active);
  659. EverWingHacks.hacks.doubleShot.active = !EverWingHacks.hacks.doubleShot.active;
  660. });
  661. conn.on("rush", function(data){
  662. logger("Rush : ", !EverWingHacks.hacks.rush.active);
  663. EverWingHacks.hacks.rush.active = !EverWingHacks.hacks.rush.active;
  664. });
  665. conn.on("nometeors", function(data){
  666. logger("NoMeteors : ", !EverWingHacks.hacks.noMeteors.active);
  667. EverWingHacks.hacks.noMeteors.active = !EverWingHacks.hacks.noMeteors.active;
  668. });
  669. conn.on("timescale", function(data){
  670. logger("TimeScale : ", !EverWingHacks.hacks.timeScale.active);
  671. EverWingHacks.hacks.timeScale.active = !EverWingHacks.hacks.timeScale.active;
  672. });
  673. conn.on("wavespacing", function(data){
  674. logger("WaveSpacing : ", !EverWingHacks.hacks.waveSpacing.active);
  675. EverWingHacks.hacks.waveSpacing.active = !EverWingHacks.hacks.waveSpacing.active;
  676. });
  677. conn.on("lootweights", function(data){
  678. logger("LootWeights : ", !EverWingHacks.hacks.lootWeights.active);
  679. EverWingHacks.hacks.lootWeights.active = !EverWingHacks.hacks.lootWeights.active;
  680. });
  681.  
  682.  
  683.  
  684. conn.on("unlockcharacters", function(data){
  685. logger("UnlockCharacters fired!");
  686. EverWingHacks.hacks.unlockCharacters();
  687. });
  688. conn.on("charactersmaxlevel", function(data){
  689. logger("CharactersMaxLevel fired!");
  690. EverWingHacks.hacks.charactersMaxLevel();
  691. });
  692.  
  693. conn.on("getrandomsidekick", function(data){
  694. EverWingHacks.hacks.getRandomSideKick();
  695. });
  696. conn.on("getcoins", function(data){
  697. logger("GetCoins : ", data.amount);
  698. EverWingHacks.hacks.fakeGame({coins : data.amount});
  699. });
  700. conn.on("gettrophies", function(data){
  701. logger("GetTrophies : ", data.amount);
  702. EverWingHacks.hacks.fakeGame({trophies : data.amount});
  703. });
  704. conn.on("getxp", function(data){
  705. logger("GetXP : ", data.amount);
  706. EverWingHacks.hacks.fakeGame({xp : data.amount});
  707. });
  708. conn.on("getsidekickxp", function(data){
  709. logger("GetSidekickXP : ", data.amount);
  710. EverWingHacks.hacks.fakeGame({sidekick_xp : data.amount});
  711. });
  712.  
  713.  
  714. })();
Add Comment
Please, Sign In to add comment