Jump to content
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Recently Browsing   0 members

    • No registered users viewing this page.

Source Code Aimbot, Mod menu


Recommended Posts

Só lembrando que é material para estudos.

 

Source 1:

 

Citar

var msgpack5 = msgpack;

 

if (window.location.href.includes("moomoo")){

$(document).ready(() => {

 

//Neat cursor: credit to FlareZ 3301#6016

$("#gameCanvas").css('cursor', 'url(http://cur.cursors-4u.net/user/use-1/use153.cur), default');

$("#consentBlock").css({display: "none"});

var autoHealSpeed = 150; //Bigger number = SLOWER autoheal; fastest is 0.

var DEFAULT_HAT = 7;

var DEFAULT_WINGS = 18;

var instaKillKey = 114;

var spikeKey = 118;

var trapKey = 102;

var removeMonkeyTail = true;

var askMeAgain = true; //set this to false if the user doesnt want to be asked about hat switching again

 

var allTraps = [];

var CORESTATE = {

inwater: {active: false},

nearenemy: {active: false},

intrap: {active: false},

ipress: {active: false},

};

 

try {

document.getElementById("moomooio_728x90_home").style.display = "none"; //Remove sidney's ads

$("#moomooio_728x90_home").parent().css({display: "none"});

} catch (e) {

console.log("error removing ad");

}

 

unsafeWindow.onbeforeunload = null;

 

 

let coreURL = new URL(window.location.href);

window.sessionStorage.force = coreURL.searchParams.get("fc");

 

 

if (window.sessionStorage.force != "false" && window.sessionStorage.force && window.sessionStorage.force.toString() != "null"){

console.error(window.sessionStorage.force);

/*alert(window.location.force);*/

document.getElementsByClassName("menuHeader")[0].innerHTML = `Servers <span style="color: red;">Force (${window.sessionStorage.force})</span>`;

}

 

 

var oldAlert = unsafeWindow.alert;

unsafeWindow.alert = function(){

$.alert({title: "Full Server!",

content: "This server is full! Would you like to force connect?",

useBootstrap: false,

buttons: {

Back: () => { unsafeWindow.onbeforeunload = null; window.location = "http://moomoo.io"; },

Yes: () => {

let coreURL = new URL(window.location.href);

let server = coreURL.searchParams.get("server");

window.sessionStorage.force = server;

window.sessionStorage.dog = server;

console.error(window.sessionStorage.force);

console.error(window.sessionStorage.dog);

console.error(server);

setTimeout(() => {

console.error(window.sessionStorage.force);

window.location = `http://moomoo.io?fc=${server}`;

}, 500);

},

}

});

}

 

 

class ForceSocket extends WebSocket {

constructor(...args){

if (window.sessionStorage.force != "false" && window.sessionStorage.force && window.sessionStorage.force.toString() != "null"){

let server = window.sessionStorage.force;

let sip = "";

for (let gameServer of window.vultr.servers){

if (`${gameServer.region}:${gameServer.index}:0` == server){

sip = gameServer.ip;

}

}

args[0] = `wss://ip_${sip}.moomoo.io:8008/?gameIndex=0`;

 

console.error("Setting false");

console.error(args[0]);

delete window.sessionStorage.force;

}

 

super(...args);

 

}

 

 

}

 

WebSocket = ForceSocket;

 

 

unsafeWindow.admob = {

requestInterstitialAd: ()=>{},

showInterstitialAd: ()=>{}

}

 

 

var accessories = [{

id: 12,

name: "Snowball",

price: 1e3,

scale: 105,

xOff: 18,

desc: "no effect"

}, {

id: 9,

name: "Tree Cape",

price: 1e3,

scale: 90,

desc: "no effect"

}, {

id: 10,

name: "Stone Cape",

price: 1e3,

scale: 90,

desc: "no effect"

}, {

id: 3,

name: "Cookie Cape",

price: 1500,

scale: 90,

desc: "no effect"

}, {

id: 8,

name: "Cow Cape",

price: 2e3,

scale: 90,

desc: "no effect"

}, {

id: 11,

name: "Monkey Tail",

price: 2e3,

scale: 97,

xOff: 25,

desc: "Super speed but reduced damage",

spdMult: 1.35,

dmgMultO: .2

}, {

id: 17,

name: "Apple Basket",

price: 3e3,

scale: 80,

xOff: 12,

desc: "slowly regenerates health over time",

healthRegen: 1

}, {

id: 6,

name: "Winter Cape",

price: 3e3,

scale: 90,

desc: "no effect"

}, {

id: 4,

name: "Skull Cape",

price: 4e3,

scale: 90,

desc: "no effect"

}, {

id: 5,

name: "Dash Cape",

price: 5e3,

scale: 90,

desc: "no effect"

}, {

id: 2,

name: "Dragon Cape",

price: 6e3,

scale: 90,

desc: "no effect"

}, {

id: 1,

name: "Super Cape",

price: 8e3,

scale: 90,

desc: "no effect"

}, {

id: 7,

name: "Troll Cape",

price: 8e3,

scale: 90,

desc: "no effect"

}, {

id: 14,

name: "Thorns",

price: 1e4,

scale: 115,

xOff: 20,

desc: "no effect"

}, {

id: 15,

name: "Blockades",

price: 1e4,

scale: 95,

xOff: 15,

desc: "no effect"

}, {

id: 20,

name: "Devils Tail",

price: 1e4,

scale: 95,

xOff: 20,

desc: "no effect"

}, {

id: 16,

name: "Sawblade",

price: 12e3,

scale: 90,

spin: !0,

xOff: 0,

desc: "deal damage to players that damage you",

dmg: .15

}, {

id: 13,

name: "Angel Wings",

price: 15e3,

scale: 138,

xOff: 22,

desc: "slowly regenerates health over time",

healthRegen: 3

}, {

id: 19,

name: "Shadow Wings",

price: 15e3,

scale: 138,

xOff: 22,

desc: "increased movement speed",

spdMult: 1.1

}, {

id: 18,

name: "Blood Wings",

price: 2e4,

scale: 178,

xOff: 26,

desc: "restores health when you deal damage",

healD: .2

}, {

id: 21,

name: "Corrupt X Wings",

price: 2e4,

scale: 178,

xOff: 26,

desc: "deal damage to players that damage you",

dmg: .25

}]

 

 

var hats = hats = [{

id: 45,

name: "Shame!",

dontSell: !0,

price: 0,

scale: 120,

desc: "hacks are for losers"

}, {

id: 51,

name: "Moo Cap",

price: 0,

scale: 120,

desc: "coolest mooer around"

}, {

id: 50,

name: "Apple Cap",

price: 0,

scale: 120,

desc: "apple farms remembers"

}, {

id: 28,

name: "Moo Head",

price: 0,

scale: 120,

desc: "no effect"

}, {

id: 29,

name: "Pig Head",

price: 0,

scale: 120,

desc: "no effect"

}, {

id: 30,

name: "Fluff Head",

price: 0,

scale: 120,

desc: "no effect"

}, {

id: 36,

name: "Pandou Head",

price: 0,

scale: 120,

desc: "no effect"

}, {

id: 37,

name: "Bear Head",

price: 0,

scale: 120,

desc: "no effect"

}, {

id: 38,

name: "Monkey Head",

price: 0,

scale: 120,

desc: "no effect"

}, {

id: 44,

name: "Polar Head",

price: 0,

scale: 120,

desc: "no effect"

}, {

id: 35,

name: "Fez Hat",

price: 0,

scale: 120,

desc: "no effect"

}, {

id: 42,

name: "Enigma Hat",

price: 0,

scale: 120,

desc: "join the enigma army"

}, {

id: 43,

name: "Blitz Hat",

price: 0,

scale: 120,

desc: "hey everybody i'm blitz"

}, {

id: 49,

name: "Bob XIII Hat",

price: 0,

scale: 120,

desc: "like and subscribe"

}, {

id: 8,

name: "Bummle Hat",

price: 100,

scale: 120,

desc: "no effect"

}, {

id: 2,

name: "Straw Hat",

price: 500,

scale: 120,

desc: "no effect"

}, {

id: 15,

name: "Winter Cap",

price: 600,

scale: 120,

desc: "allows you to move at normal speed in snow",

coldM: 1

}, {

id: 5,

name: "Cowboy Hat",

price: 1e3,

scale: 120,

desc: "no effect"

}, {

id: 4,

name: "Ranger Hat",

price: 2e3,

scale: 120,

desc: "no effect"

}, {

id: 18,

name: "Explorer Hat",

price: 2e3,

scale: 120,

desc: "no effect"

}, {

id: 31,

name: "Flipper Hat",

price: 2500,

scale: 120,

desc: "have more control while in water",

watrImm: !0

}, {

id: 1,

name: "Marksman Cap",

price: 3e3,

scale: 120,

desc: "increases arrow speed and range",

aMlt: 1.3

}, {

id: 10,

name: "Bush Gear",

price: 3e3,

scale: 160,

desc: "allows you to disguise yourself as a bush"

}, {

id: 48,

name: "Halo",

price: 3e3,

scale: 120,

desc: "no effect"

}, {

id: 6,

name: "Soldier Helmet",

price: 4e3,

scale: 120,

desc: "reduces damage taken but slows movement",

spdMult: .94,

dmgMult: .75

}, {

id: 23,

name: "Anti Venom Gear",

price: 4e3,

scale: 120,

desc: "makes you immune to poison",

poisonRes: 1

}, {

id: 13,

name: "Medic Gear",

price: 5e3,

scale: 110,

desc: "slowly regenerates health over time",

healthRegen: 3

}, {

id: 9,

name: "Miners Helmet",

price: 5e3,

scale: 120,

desc: "earn 1 extra gold per resource",

extraGold: 1

}, {

id: 32,

name: "Musketeer Hat",

price: 5e3,

scale: 120,

desc: "reduces cost of projectiles",

projCost: .5

}, {

id: 7,

name: "Bull Helmet",

price: 6e3,

scale: 120,

desc: "increases damage done but drains health",

healthRegen: -5,

dmgMultO: 1.5,

spdMult: .96

}, {

id: 22,

name: "Emp Helmet",

price: 6e3,

scale: 120,

desc: "turrets won't attack but you move slower",

antiTurret: 1,

spdMult: .7

}, {

id: 12,

name: "Booster Hat",

price: 6e3,

scale: 120,

desc: "increases your movement speed",

spdMult: 1.16

}, {

id: 26,

name: "Barbarian Armor",

price: 8e3,

scale: 120,

desc: "knocks back enemies that attack you",

dmgK: .6

}, {

id: 21,

name: "Plague Mask",

price: 1e4,

scale: 120,

desc: "melee attacks deal poison damage",

poisonDmg: 5,

poisonTime: 6

}, {

id: 46,

name: "Bull Mask",

price: 1e4,

scale: 120,

desc: "bulls won't target you unless you attack them",

bullRepel: 1

}, {

id: 14,

name: "Windmill Hat",

topSprite: !0,

price: 1e4,

scale: 120,

desc: "generates points while worn",

pps: 1.5

}, {

id: 11,

name: "Spike Gear",

topSprite: !0,

price: 1e4,

scale: 120,

desc: "deal damage to players that damage you",

dmg: .45

}, {

id: 53,

name: "Turret Gear",

topSprite: !0,

price: 1e4,

scale: 120,

desc: "you become a walking turret",

turret: {

proj: 1,

range: 700,

rate: 2500

},

spdMult: .5

}, {

id: 20,

name: "Samurai Armor",

price: 12e3,

scale: 120,

desc: "increased attack speed and fire rate",

atkSpd: .78

}, {

id: 16,

name: "Bushido Armor",

price: 12e3,

scale: 120,

desc: "restores health when you deal damage",

healD: .4

}, {

id: 27,

name: "Scavenger Gear",

price: 15e3,

scale: 120,

desc: "earn double points for each kill",

kScrM: 2

}, {

id: 40,

name: "Tank Gear",

price: 15e3,

scale: 120,

desc: "increased damage to buildings but slower movement",

spdMult: .3,

bDmg: 3.3

}, {

id: 52,

name: "Thief Gear",

price: 15e3,

scale: 120,

desc: "steal half of a players gold when you kill them",

goldSteal: .5

}]

 

 

var objects = [{

id: 0,

name: "food",

layer: 0

}, {

id: 1,

name: "walls",

place: !0,

limit: 30,

layer: 0

}, {

id: 2,

name: "spikes",

place: !0,

limit: 15,

layer: 0

}, {

id: 3,

name: "mill",

place: !0,

limit: 7,

layer: 1

}, {

id: 4,

name: "mine",

place: !0,

limit: 1,

layer: 0

}, {

id: 5,

name: "trap",

place: !0,

limit: 6,

layer: -1

}, {

id: 6,

name: "booster",

place: !0,

limit: 12,

layer: -1

}, {

id: 7,

name: "turret",

place: !0,

limit: 2,

layer: 1

}, {

id: 8,

name: "watchtower",

place: !0,

limit: 12,

layer: 1

}, {

id: 9,

name: "buff",

place: !0,

limit: 4,

layer: -1

}, {

id: 10,

name: "spawn",

place: !0,

limit: 1,

layer: -1

}, {

id: 11,

name: "sapling",

place: !0,

limit: 2,

layer: 0

}, {

id: 12,

name: "blocker",

place: !0,

limit: 3,

layer: -1

}, {

id: 13,

name: "teleporter",

place: !0,

limit: 1,

layer: -1

}]

 

var weapons = [{

id: 0,

type: 0,

name: "tool hammer",

desc: "tool for gathering all resources",

src: "hammer_1",

length: 140,

width: 140,

xOff: -3,

yOff: 18,

dmg: 25,

range: 65,

gather: 1,

speed: 300

}, {

id: 1,

type: 0,

age: 2,

name: "hand axe",

desc: "gathers resources at a higher rate",

src: "axe_1",

length: 140,

width: 140,

xOff: 3,

yOff: 24,

dmg: 30,

spdMult: 1,

range: 70,

gather: 2,

speed: 400

}, {

id: 2,

type: 0,

age: 8,

pre: 1,

name: "great axe",

desc: "deal more damage and gather more resources",

src: "great_axe_1",

length: 140,

width: 140,

xOff: -8,

yOff: 25,

dmg: 35,

spdMult: 1,

range: 75,

gather: 4,

speed: 400

}, {

id: 3,

type: 0,

age: 2,

name: "short sword",

desc: "increased attack power but slower move speed",

src: "sword_1",

iPad: 1.3,

length: 130,

width: 210,

xOff: -8,

yOff: 46,

dmg: 35,

spdMult: .85,

range: 110,

gather: 1,

speed: 300

}, {

id: 4,

type: 0,

age: 8,

pre: 3,

name: "katana",

desc: "greater range and damage",

src: "samurai_1",

iPad: 1.3,

length: 130,

width: 210,

xOff: -8,

yOff: 59,

dmg: 40,

spdMult: .8,

range: 118,

gather: 1,

speed: 300

}, {

id: 5,

type: 0,

age: 2,

name: "polearm",

desc: "long range melee weapon",

src: "spear_1",

iPad: 1.3,

length: 130,

width: 210,

xOff: -8,

yOff: 53,

dmg: 45,

knock: .2,

spdMult: .82,

range: 142,

gather: 1,

speed: 700

}, {

id: 6,

type: 0,

age: 2,

name: "bat",

desc: "fast long range melee weapon",

src: "bat_1",

iPad: 1.3,

length: 110,

width: 180,

xOff: -8,

yOff: 53,

dmg: 20,

knock: .7,

range: 110,

gather: 1,

speed: 300

}, {

id: 7,

type: 0,

age: 2,

name: "daggers",

desc: "really fast short range weapon",

src: "dagger_1",

iPad: .8,

length: 110,

width: 110,

xOff: 18,

yOff: 0,

dmg: 20,

knock: .1,

range: 65,

gather: 1,

hitSlow: .1,

spdMult: 1.13,

speed: 100

}, {

id: 8,

type: 0,

age: 2,

name: "stick",

desc: "great for gathering but very weak",

src: "stick_1",

length: 140,

width: 140,

xOff: 3,

yOff: 24,

dmg: 1,

spdMult: 1,

range: 70,

gather: 7,

speed: 400

}, {

id: 9,

type: 1,

age: 6,

name: "hunting bow",

desc: "bow used for ranged combat and hunting",

src: "bow_1",

req: ["wood", 4],

length: 120,

width: 120,

xOff: -6,

yOff: 0,

projectile: 0,

spdMult: .75,

speed: 600

}, {

id: 10,

type: 1,

age: 6,

name: "great hammer",

desc: "hammer used for destroying structures",

src: "great_hammer_1",

length: 140,

width: 140,

xOff: -9,

yOff: 25,

dmg: 10,

spdMult: .88,

range: 75,

sDmg: 7.5,

gather: 1,

speed: 400

}, {

id: 11,

type: 1,

age: 6,

name: "wooden shield",

desc: "blocks projectiles and reduces melee damage",

src: "shield_1",

length: 120,

width: 120,

shield: .2,

xOff: 6,

yOff: 0,

spdMult: .7

}, {

id: 12,

type: 1,

age: 8,

pre: 9,

name: "crossbow",

desc: "deals more damage and has greater range",

src: "crossbow_1",

req: ["wood", 5],

aboveHand: !0,

armS: .75,

length: 120,

width: 120,

xOff: -4,

yOff: 0,

projectile: 2,

spdMult: .7,

speed: 700

}, {

id: 13,

type: 1,

age: 9,

pre: 12,

name: "repeater crossbow",

desc: "high firerate crossbow with reduced damage",

src: "crossbow_2",

req: ["wood", 10],

aboveHand: !0,

armS: .75,

length: 120,

width: 120,

xOff: -4,

yOff: 0,

projectile: 3,

spdMult: .7,

speed: 300

}, {

id: 14,

type: 1,

age: 6,

name: "mc grabby",

desc: "steals resources from enemies",

src: "grab_1",

length: 130,

width: 210,

xOff: -8,

yOff: 53,

dmg: 0,

steal: 250,

knock: .2,

spdMult: 1.05,

range: 125,

gather: 0,

speed: 700

}, {

id: 15,

type: 1,

age: 9,

pre: 12,

name: "musket",

desc: "slow firerate but high damage and range",

src: "musket_1",

req: ["stone", 10],

aboveHand: !0,

rec: .35,

armS: .6,

hndS: .3,

hndD: 1.6,

length: 205,

width: 205,

xOff: 25,

yOff: 0,

projectile: 5,

hideProjectile: !0,

spdMult: .6,

speed: 1500

}]

 

var activeObjects = [{

name: "apple",

desc: "restores 20 health when consumed",

req: ["food", 10],

consume: function (e) {

return e.changeHealth(20, e)

},

scale: 22,

holdOffset: 15

}, {

age: 3,

name: "cookie",

desc: "restores 40 health when consumed",

req: ["food", 15],

consume: function (e) {

return e.changeHealth(40, e)

},

scale: 27,

holdOffset: 15

}, {

age: 7,

name: "pizza",

desc: "restores 30 health and another 50 over 5 seconds",

req: ["food", 30],

consume: function (e) {

return !!(e.changeHealth(30, e) || e.health < 100) && (e.dmgOverTime.dmg = -10, e.dmgOverTime.doer = e, e.dmgOverTime.time = 5, !0)

},

scale: 27,

holdOffset: 15

}, {

name: "wood wall",

desc: "provides protection for your village",

req: ["wood", 10],

projDmg: !0,

health: 380,

scale: 50,

holdOffset: 20,

placeOffset: -5

}, {

age: 3,

name: "stone wall",

desc: "provides improved protection for your village",

req: ["stone", 25],

health: 900,

scale: 50,

holdOffset: 20,

placeOffset: -5

}, {

age: 7,

pre: 1,

name: "castle wall",

desc: "provides powerful protection for your village",

req: ["stone", 35],

health: 1500,

scale: 52,

holdOffset: 20,

placeOffset: -5

}, {

name: "spikes",

desc: "damages enemies when they touch them",

req: ["wood", 20, "stone", 5],

health: 400,

dmg: 20,

scale: 49,

spritePadding: -23,

holdOffset: 8,

placeOffset: -5

}, {

age: 5,

name: "greater spikes",

desc: "damages enemies when they touch them",

req: ["wood", 30, "stone", 10],

health: 500,

dmg: 35,

scale: 52,

spritePadding: -23,

holdOffset: 8,

placeOffset: -5

}, {

age: 9,

pre: 1,

name: "poison spikes",

desc: "poisons enemies when they touch them",

req: ["wood", 35, "stone", 15],

health: 600,

dmg: 30,

pDmg: 5,

scale: 52,

spritePadding: -23,

holdOffset: 8,

placeOffset: -5

}, {

age: 9,

pre: 2,

name: "spinning spikes",

desc: "damages enemies when they touch them",

req: ["wood", 30, "stone", 20],

health: 500,

dmg: 45,

turnSpeed: .003,

scale: 52,

spritePadding: -23,

holdOffset: 8,

placeOffset: -5

}, {

name: "windmill",

desc: "generates gold over time",

req: ["wood", 50, "stone", 10],

health: 400,

pps: 1,

turnSpeed: .0016,

spritePadding: 25,

iconLineMult: 12,

scale: 45,

holdOffset: 20,

placeOffset: 5

}, {

age: 5,

pre: 1,

name: "faster windmill",

desc: "generates more gold over time",

req: ["wood", 60, "stone", 20],

health: 500,

pps: 1.5,

turnSpeed: .0025,

spritePadding: 25,

iconLineMult: 12,

scale: 47,

holdOffset: 20,

placeOffset: 5

}, {

age: 8,

pre: 1,

name: "power mill",

desc: "generates more gold over time",

req: ["wood", 100, "stone", 50],

health: 800,

pps: 2,

turnSpeed: .005,

spritePadding: 25,

iconLineMult: 12,

scale: 47,

holdOffset: 20,

placeOffset: 5

}, {

age: 5,

type: 2,

name: "mine",

desc: "allows you to mine stone",

req: ["wood", 20, "stone", 100],

iconLineMult: 12,

scale: 65,

holdOffset: 20,

placeOffset: 0

}, {

age: 5,

type: 0,

name: "sapling",

desc: "allows you to farm wood",

req: ["wood", 150],

iconLineMult: 12,

colDiv: .5,

scale: 110,

holdOffset: 50,

placeOffset: -15

}, {

age: 4,

name: "pit trap",

desc: "pit that traps enemies if they walk over it",

req: ["wood", 30, "stone", 30],

trap: !0,

ignoreCollision: !0,

hideFromEnemy: !0,

health: 500,

colDiv: .2,

scale: 50,

holdOffset: 20,

placeOffset: -5

}, {

age: 4,

name: "boost pad",

desc: "provides boost when stepped on",

req: ["stone", 20, "wood", 5],

ignoreCollision: !0,

boostSpeed: 1.5,

health: 150,

colDiv: .7,

scale: 45,

holdOffset: 20,

placeOffset: -5

}, {

age: 7,

doUpdate: !0,

name: "turret",

desc: "defensive structure that shoots at enemies",

req: ["wood", 200, "stone", 150],

health: 800,

projectile: 1,

shootRange: 700,

shootRate: 2200,

scale: 43,

holdOffset: 20,

placeOffset: -5

}, {

age: 7,

name: "platform",

desc: "platform to shoot over walls and cross over water",

req: ["wood", 20],

ignoreCollision: !0,

zIndex: 1,

health: 300,

scale: 43,

holdOffset: 20,

placeOffset: -5

}, {

age: 7,

name: "healing pad",

desc: "standing on it will slowly heal you",

req: ["wood", 30, "food", 10],

ignoreCollision: !0,

healCol: 15,

health: 400,

colDiv: .7,

scale: 45,

holdOffset: 20,

placeOffset: -5

}, {

age: 9,

name: "spawn pad",

desc: "you will spawn here when you die but it will dissapear",

req: ["wood", 100, "stone", 100],

health: 400,

ignoreCollision: !0,

spawnPoint: !0,

scale: 45,

holdOffset: 20,

placeOffset: -5

}, {

age: 7,

name: "blocker",

desc: "blocks building in radius",

req: ["wood", 30, "stone", 25],

ignoreCollision: !0,

blocker: 300,

health: 400,

colDiv: .7,

scale: 45,

holdOffset: 20,

placeOffset: -5

}, {

age: 7,

name: "teleporter",

desc: "teleports you to a random point on the map",

req: ["wood", 60, "stone", 60],

ignoreCollision: !0,

teleport: !0,

health: 200,

colDiv: .7,

scale: 45,

holdOffset: 20,

placeOffset: -5

}];

 

var allContainers = [accessories, hats, objects, weapons, activeObjects];

function obs(objName){

for (let container of allContainers){

for (let obj of container){

if (obj.name.toLowerCase() == objName.toLowerCase()){

return obj.id;

}

}

}

 

return -1;

 

}

 

function activeObs(objName){

for (var i=0;i<activeObjects.length;i++){

let activeObj = activeObjects;

if (activeObj.name.toLowerCase() == objName.toLowerCase()){

return i;

}

 

}

}

 

 

 

var switchToHat = obs("bull helmet");

var switchToAccessory = obs("blood wings");

var switchToWep = obs("polearm");

var switchToRange = obs("crossbow");

var bullHelm = obs("bull helmet");

var monkeyTail = obs("monkey tail");

var turretGear = obs("Turret Gear");

 

var invalidHats = [obs("shame!")]

console.log(invalidHats);

 

 

 

const START_SSWX = [146, 161, 99, 146, 1, 192]

var noallow = false;

const END_SSWX = [146, 161, 99, 146, 0, 192];

const TAKEOUT = [4, 132, 164, 116, 121, 112, 101, 2, 164, 100, 97, 116, 97, 147, 161, 53, 15, 212, 0, 0, 167, 111, 112, 116, 105, 111, 110, 115, 129, 168, 99, 111, 109, 112, 114, 101, 115, 115, 195, 163, 110, 115, 112, 161, 47];

const APPLE = [4, 132, 164, 116, 121, 112, 101, 2, 164, 100, 97, 116, 97, 147, 161, 53, 0, 212, 0, 0, 167, 111, 112, 116, 105, 111, 110, 115, 129, 168, 99, 111, 109, 112, 114, 101, 115, 115, 195, 163, 110, 115, 112, 161, 47];

const COOKIE = [4, 132, 164, 116, 121, 112, 101, 2, 164, 100, 97, 116, 97, 147, 161, 53, 1, 212, 0, 0, 167, 111, 112, 116, 105, 111, 110, 115, 129, 168, 99, 111, 109, 112, 114, 101, 115, 115, 195, 163, 110, 115, 112, 161, 47];

const PIZZA = [97, 117, 116, 111, 115, 112, 101, 101, 100]

var currentHat = 0;

var currentAccessory = 0;

var IN_PROCESS = false;

var justDied = false;

var recentHealth = 100;

var ws;

var MYID;

var hasApple = true;

var foodInHand = false;

var autoheal = true;

var autobull = true;

var STATE = 0;

var inInstaProcess = false;

var autoattack = false;

var allMooMooObjects = {};

var bowWorked = false;

var hasWinter = false;

var hasFlipper = false;

var myCLAN = null;

var goodData;

var myPlayer;

var nearestPlayerAngle = 0;

var focusPlayerObj;

var MYANGLE = 0;

let coregood = [212, 0, 0, 167, 111, 112, 116, 105, 111, 110, 115, 129, 168, 99, 111, 109, 112];

var targets = [false, false];

 

 

let badreplace = [130, 166, 98, 117, 102, 102, 101, 114, 130, 164, 116, 121, 112, 101, 166, 66, 117, 102, 102, 101, 114, 164, 100, 97, 116, 97, 145, 0, 164, 116, 121, 112, 101, 0]

document.msgpack = msgpack;

function n(){

this.buffer = new Uint8Array([0]);

this.buffer.__proto__ = new Uint8Array;

this.type = 0;

}

 

var nval = msgpack5.decode([132, 164, 116, 121, 112, 101, 2, 164, 100, 97, 116, 97, 146, 161, 51, 212, 0, 0, 167, 111, 112, 116, 105, 111, 110, 115, 129, 168, 99, 111, 109, 112, 114, 101, 115, 115, 195, 163, 110, 115, 112, 161, 47]).data[1];

document.n = nval;

document.timeTween = 130;

 

function replaceFromArray(oldp, newp, array){

return array.join(",").replace(oldp.join(","), newp.join(",")).split(",").map(x => parseInt(x))

 

}

 

var playersNear = [];

 

var player = function(id, x, y, clan){

this.id = id;

this.x = x;

this.y = y;

this.clan = clan;

}

 

var repeatingLast = false;

var lastWords = "";

 

var styleSheetObj = document.createElement("link");

styleSheetObj.rel = "stylesheet";

styleSheetObj.href = "https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.0/jquery-confirm.min.css"

document.head.appendChild(styleSheetObj);

 

var settingsDiv = document.createElement('div');

var settingsSlider = document.createElement('input');

var itemTitle = document.createElement("h1");

var currentSpeed = document.createElement("h2");

var speedContain = document.createElement("div");

settingsSlider.type = "range";

settingsSlider.min = "12";

settingsSlider.max = "99";

settingsSlider.value = "50";

settingsSlider.id = "healSlider";

itemTitle.innerText = "AutoHeal Speed";

currentSpeed.innerHTML = '<div id="cspeed">Current Speed »</div> <div id="numfocus">50</div>';

currentSpeed.id = "currentSpeed";

speedContain.id = "speedContain";

itemTitle.id = "itemTitle";

settingsDiv.appendChild(settingsSlider);

speedContain.appendChild(currentSpeed);

/*document.querySelector("#setupCard").appendChild(itemTitle);

document.querySelector("#setupCard").appendChild(settingsDiv);

document.querySelector("#setupCard").appendChild(speedContain);

$("#healSlider").css({width: "100%", marginTop: 10});

$("#itemTitle").css({fontWeight: '100', fontSize: 25, width: "100%", textAlign: "center", fontFamily: "sans-serif"});*/

 

var targetbtn = document.createElement("img");

targetbtn.src = "https://i.imgur.com/gWzcwQR.png";

targetbtn.id = "tbtn";

document.body.prepend(targetbtn);

 

$("#healSlider").change((event, ui) => {

let coreVal = parseInt($("#healSlider").val());

autoHealSpeed = 150 - coreVal;

currentSpeed.innerHTML = `<div id="cspeed">Current Speed »</div> <div id="numfocus">${coreVal}</div>`;

})

 

function generateHatHTML(name, id){

return `<div id="flextop"><img id="hatimgmain" src="http://moomoo.io/img/hats/hat_${id}.png">

<h1 id="changeAlert">Biome Hat Changed!</h1></div>

<h3 id="typealert">Your hat was automatically changed to the <span id="hatname">${name}</span></h3>

 

<div id="flexlow">

<button id="sback">Switch Back!</button> <button id="okbtn">OK</button>

</div>`

}

 

var menuChange = document.createElement("div");

menuChange.className = "menuCard";

menuChange.id = "mainSettings";

menuChange.innerHTML = `

<h1 id="settingsTitle">CloudyMod Settings</h1>

<div class="flexControl">

<h3 class="menuPrompt">Insta-kill when I press: </h3> <input value="${String.fromCharCode(instaKillKey)}" id="keyPress" maxlength="1" type="text"/>

</div>

<hr/>

<h3 class="menuPrompt">When I attack, put on:</h3>

<div id="choiceWrap">

<div class="selectObj" id="selectHat"> <img id="hatprev" class="selPrev" src="http://moomoo.io/img/hats/hat_${DEFAULT_HAT}.png"/> </div>

<img id="middlePlus" src="https://i.imgur.com/Sya0CZr.png"/>

<div class="selectObj" id="selectWings"> <img id="wingprev" class="selPrev" src="http://moomoo.io/img/accessories/access_${DEFAULT_WINGS}.png"/> </div>

</div>

<div id="mnwrap">

<h3 class="menuPrompt" id="rmvMonkey">Remove monkey tail?</h3> <input id="removeMonkey" maxlength="1" ${removeMonkeyTail ? "checked" : ""} type="checkbox"/>

</div>

<hr/>

<h3 class="menuPrompt lowprompt">Custom hotkeys:</h3>

<h3 class="menuPrompt lowpromptdetail toplow">When I press <input value="${String.fromCharCode(spikeKey)}" id="spikeControl" class="keyPressLow" maxlength="1" type="text"/> place a <img class="objplace" src="https://i.imgur.com/0wiUP4V.png"/></h3>

<h3 class="menuPrompt lowpromptdetail">When I press <input value="${String.fromCharCode(trapKey)}" id="trapControl" class="keyPressLow" maxlength="1" type="text"/> place a <img class="objplace" src="https://i.imgur.com/mHWrRQV.png"/></h3>

<hr id="hrule"/>

<div id="endwrap">

<h3 id="createdEnd">Created by Cloudy#9558 | <a href="https://discordapp.com/invite/s4F4wZh">Join My Discord</a></h3>

</div>

`

//document.querySelector("#menuCardHolder").prepend(menuChange);

 

var hatChangeAlert = document.createElement("div");

hatChangeAlert.id = "hatChangeAlert";

document.body.prepend(hatChangeAlert);

 

$("#selectHat").click( () => {

let allHats = [];

for (var i=0;i<hats.length;i++){

if (invalidHats.includes(hats.id)) continue;

allHats.push(`<div objid=${hats.id} class="selectObjAlert ${hats.id == switchToHat ? "chosenhat" : ""} inalertHat"> <img class="selPrev" src="http://moomoo.io/img/hats/hat_${hats.id}.png"/> </div>`);

}

$.alert({

title: "Choose Your Hat!",

content: allHats,

useBootstrap: false,

buttons: {

cancel: () => {},

confirm: () => {

switchToHat = $(".chosenhat").attr("objid");

$("#hatprev").attr("src", `http://moomoo.io/img/hats/hat_${switchToHat}.png`)

},

}

 

});

});

 

$("#selectWings").click( () => {

let allHats = [];

for (var i=0;i<accessories.length;i++){

allHats.push(`<div objid=${accessories.id} class="selectObjAlert ${accessories.id == switchToAccessory ? "chosenwing" : ""} inalertWing"> <img class="selPrev" src="http://moomoo.io/img/accessories/access_${accessories.id}.png"/> </div>`);

}

$.alert({

title: "Choose Your Accessory!",

content: allHats,

useBootstrap: false,

buttons: {

cancel: () => {},

confirm: () => {

switchToAccessory = $(".chosenwing").attr("objid");

$("#wingprev").attr("src", `http://moomoo.io/img/accessories/access_${switchToAccessory}.png`)

 

},

}

 

});

});

 

 

$("#spikeControl").on("input", () => {

var cval = $("#spikeControl").val();

if (cval){

spikeKey = cval.charCodeAt(0);

}

});

 

$("#trapControl").on("input", () => {

var cval = $("#trapControl").val();

if (cval){

trapKey = cval.charCodeAt(0);

}

});

 

$("#keyPress").on("input", () => {

var cval = $("#keyPress").val();

if (cval){

instaKillKey = cval.charCodeAt(0);

}

})

 

$(document).on("click", ".inalertHat", (e) => {

$(".chosenhat").removeClass("chosenhat");

$(e.target.tagName == "DIV" ? e.target : $(e.target).parent()).addClass("chosenhat");

});

 

$(document).on("click", ".inalertWing", (e) => {

$(".chosenwing").removeClass("chosenwing");

$(e.target.tagName == "DIV" ? e.target : $(e.target).parent()).addClass("chosenwing");

});

 

 

$("#removeMonkey").click( () => {

removeMonkeyTail = !removeMonkeyTail;

});

 

 

var botSpan;

 

$(document).on("click", "#okbtn", () => {

$("#hatChangeAlert").animate({opacity: 0, top: -300});

 

});

 

$(document).on("click", "#sback", () => {

document.dns(["13c", [0, currentHat, 0]]);

$("#hatChangeAlert").animate({opacity: 0, top: -300});

});

 

 

 

 

var styleItem = document.createElement("style");

styleItem.type = "text/css";

styleItem.appendChild(document.createTextNode(`

 

#sback, #okbtn {

font-family: sans-serif;

font-weight: 300;

border: none;

outline: none;

font-size: 15px;

 

}

 

#sback {

 

border-radius: 5px;

padding: 9px;

cursor: pointer;

margin-top: -1.5px;

background-color: #d85858;

color: white;

 

 

}

 

#okbtn {

 

border-radius: 5px;

padding: 9px;

cursor: pointer;

margin-top: -1.5px;

background-color: #7399d6;

color: white;

 

}

 

#flexlow {

display: flex;

justify-content: space-evenly;

align-items: center;

width: 100%;

 

}

 

#changeAlert {

font-family: sans-serif;

font-weight: 200;

font-size: 23px;

 

 

}

 

#typealert {

font-family: sans-serif;

font-weight: 200;

font-size: 17px;

width: 95%;

margin-left: 2.5%;

text-align: center;

margin-top: 5.5px;

}

 

#hatChangeAlert {

position: absolute;

padding: 5px;

top: -300px;

opacity: 0;

left: 20px;

width: 300px;

height: 165px;

border-radius: 10px;

background-color: rgba(255, 255, 255, 0.7);

box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.08), 0 2px 10px 0 rgba(0, 0, 0, 0.06);

 

 

 

}

 

#changeAlert {

display: inline-block;

 

}

 

#hatimgmain {

width: 50px;

height: 50px;

display: inline-block;

 

 

}

 

#flextop {

display: flex;

width: 100%;

justify-content: space-evenly;

align-items: center;

 

}

 

#tbtn {

position: absolute;

left: 0;

top: 0;

width: 80px;

height: 80px;

opacity: 0;

 

}

 

.chosenhat {

border: 1px solid #7daaf2;

}

 

.chosenwing {

border: 1px solid #7daaf2;

}

 

.inalertHat {

margin-left: 30px !important;

margin-top: 10px !important;

}

 

.inalertWing {

margin-left: 30px !important;

margin-top: 10px !important;

}

 

option {

border-radius: 0px;

}

 

#hrule {

margin-top: 20px;

}

 

#endwrap {

margin-top: 15px;

width: 100%;

text-align: center;

margin-bottom: -15px;

}

 

#createEnd {

width: 100%;

text-align: center;

margin: 0 auto;

 

}

 

.lowprompt {

margin-bottom: -100px !important;

 

}

 

 

.lowpromptdetail {

margin-left: 25px;

color: #4c4c4c !important;

margin-top: 20px !important;

margin-bottom: 0 !important;

 

}

 

.toplow {

margin-top: 10px !important;

}

 

 

.objplace {

width: 45px;

height: 45px;

margin-bottom: -17px;

border: 0.5px solid #f2f2f2;

border-radius: 10px;

margin-left: 5px;

cursor: pointer;

}

 

.selPrev {

width: 80px;

height: 80px;

display: block;

margin: auto;

margin-top: 10px;

 

}

 

#choiceWrap {

display: flex;

justify-content: space-evenly;

align-items: center;

 

 

}

 

#middlePlus {

display: inline-block;

width: 50px;

height: 50px;

font-weight: 100;

font-family: sans-serif;

color: #4A4A4A;

opacity: 0.8;

 

}

 

.selectObj {

cursor: pointer;

width: 100px;

height: 100px;

background-color: #fcfcfc;

display: inline-block;

border-radius: 10px;

box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.08), 0 2px 10px 0 rgba(0, 0, 0, 0.06);

 

}

 

 

.selectObjAlert {

cursor: pointer;

width: 100px;

height: 100px;

background-color: #fcfcfc;

display: inline-block;

border-radius: 10px;

box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.08), 0 2px 10px 0 rgba(0, 0, 0, 0.06);

 

}

 

#mnwrap {

width: 100%;

text-align: center;

margin-bottom: -7px;

margin-top: 8px;

}

 

#flexControl {

 

 

}

 

#keyPress {

margin-left: 20px;

height: 20px;

width: 50px;

background-color: #e5e3e3;

border-radius: 7.5px;

font-size: 16px;

border: none;

text-align: center;

color: #4A4A4A;

 

}

 

.keyPressLow {

margin-left: 8px;

font-size: 16px;

margin-right: 8px;

height: 25px;

width: 50px;

background-color: #fcfcfc;

border-radius: 3.5px;

border: none;

text-align: center;

color: #4A4A4A;

border: 0.5px solid #f2f2f2;

 

 

}

 

#keyPress:focus {

border: none;

outline: none;

}

 

.keyPressLow:focus{

 

outline: none;

}

 

input[type=range] {

-webkit-appearance: none;

margin-top: 0px;

width: 100%;

}

input[type=range]:focus {

outline: none;

}

#healSlider::-webkit-slider-runnable-track {

width: 100%;

height: 10px;

cursor: pointer;

animate: 0.2s;

background: #dddddd;

border-radius: 5px;

}

#healSlider::-webkit-slider-thumb {

width: 25px;

height: 25px;

background: rgb(142, 210, 101);

border-radius: 12.5px;

margin-top: -6.25px;

-webkit-appearance: none;

 

}

 

 

#speedContain {

width: 80%;

height: 40px;

background-color: #75d679;

border-radius: 20px;

margin-left: 10%;

box-shadow: 1px 1px 4px gray;

}

 

#currentSpeed {

height: 40px;

width: 100%;

text-align: center;

 

color: white;

font-weight: 400 !important;

font-family: sans-serif;

font-size: 20px;

}

 

#numfocus {

background-color: white;

color: #75d679;

border-radius: 20px;

margin-right: -24%;

padding: 10px;

display: inline-block;

font-size: 20px;

font-weight: 400;

font-family: sans-serif;

 

}

 

#cspeed {

display: inline-block;

height: 300px;

margin-top: 0px;

margin-left: -10px;

color: white;

font-weight: 400 !important;

font-family: sans-serif;

font-size: 20px;

 

}

 

 

 

.menuPrompt {

font-size: 18px;

font-family: 'Hammersmith One';

color: #4A4A4A;

flex: 0.2;

text-align: center;

margin-top: 10px;

display: inline-block;

 

}

 

#mainSettings {

width: 400px;

height: 375px;

overflow-y: scroll;

 

}

 

#settingsTitle {

font-size: 32px;

font-family: 'Hammersmith One';

color: #4A4A4A;

width: 100%;

text-align: center;

margin-top: 10px;

 

}

 

#rmvMonkey {

font-size: 16.5px;

opacity: 0.9;

 

}

 

 

 

#infoDiv {

position: absolute;

left: -25%;

right: 0%;

text-align: center;

background-color: rgba(252, 252, 252, 0.5);

display: inline-block;

box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.08), 0 2px 10px 0 rgba(0, 0, 0, 0.06);

 

}

 

#autotitle {

font-family: sans-serif;

font-size: 30px;

font-weight: 200;

}

 

#arrivalest {

font-family: sans-serif;

font-size: 20px;

font-weight: 200;

}

 

#timeest {

 

}

 

#cancelTrip {

background-color: rgb(203, 68, 74);

color: white;

border: none;

border-radius: 4px;

font-size: 17px;

font-family: sans-serif;

cursor: pointer;

outline: none;

font-weight: 300;

margin-bottom: 18px;

width: 112px;

height: 33.6px;

 

}

 

#spotDiv {

position: absolute;

width: 10px;

height: 10px;

marginLeft: -5px;

marginTop: -5px;

opacity: 1;

background-color: rgb(203, 68, 74);

left: 0;

right: 0;

border-radius: 5px;

z-index: 1000;

 

}

 

@media only screen and (max-width: 765px){

#numfocus {

margin-right: -13%;

}

}

 

#botText {

color: #5aed57;

font-size: 20px;

font-family: sans-serif;

font-weight: 300;

}

 

`))

document.head.appendChild(styleItem);

 

$("#enterGame").click( () => {

window.open("https://krunkerio.net", null, `height=650, width=1199, status=yes, toolbar=no, menubar=no, location=no`);

 

});

 

$("#adCard").css({display: "none"});

 

$("#youtuberOf").css({display: "none"});

let newImg = document.createElement("img");

newImg.src = "https://i.imgur.com/OZL1PXR.png";

newImg.style = `position: absolute; top: 15px; left: 15px; z-index: 100000; width: 50px; height: 50px; cursor: pointer;`;

document.body.prepend(newImg);

 

newImg.addEventListener("click", () => {

let w = window.open("https://krunkerio.net", null, `height=650, width=1199, status=yes, toolbar=no, menubar=no, location=no`);

});

 

var iPressKey;

var placeName;

var putonName;

 

 

 

function healthFunction(t, a) {

return Math.abs(((t + a/2) % a) - a/2);

}

 

function encodeSEND(json){

let OC = msgpack5.encode(json);

var aAdd = Array.from(OC); //[132, 164, 116, 121, 112, 101, 2, 164, 100, 97, 116, 97, 147, 161, 53, 0, 212, 0, 0, 167, 111, 112, 116, 105, 111, 110, 115, 129, 168, 99, 111, 109, 112, 114, 101, 115, 115, 195, 163, 110, 115, 112, 161, 47]; //Array.from(OC);

return new Uint8Array(aAdd).buffer;

}

 

 

var previousZone;

 

$("#mapDisplay").css({background: `url('https://i.imgur.com/fgFsQJp.png')`});

 

 

function bullHelmet2(status){

console.info(status);

var dataTemplate = {"data":[], "options":{"compress":true}, "nsp": "/", "type": 2};

if (!status.includes("m")){

if (!status.includes(`a`)){

dataTemplate["data"] = ["13c", [0, status == "on" ? switchToHat : currentHat, 0]];

} else {

dataTemplate["data"] = ["13c", [0, parseInt(status == "aon" ? switchToAccessory : currentAccessory), 1]];

}

} else {

if (currentAccessory == obs("monkey tail") && removeMonkeyTail){ //remove monkey tail

console.info("HERE2");

dataTemplate["data"] = ["13c", [0, status == "mOn" ? obs("monkey tail") : 0, 1]];

} else {

console.info("HERE");

dataTemplate["data"] = ["13c", [0, currentAccessory, 1]];

}

}

console.info(dataTemplate["data"]);

let encoded = encodeSEND(dataTemplate["data"]);

return encoded;

}

 

console.error(unsafeWindow);

 

 

unsafeWindow.WebSocket.prototype.oldSend = WebSocket.prototype.send;

unsafeWindow.WebSocket.prototype.send = function(m){

//console.info(new Uint8Array(m));

 

if (targets.every(x=>x==false)){

for (let elementDiv of document.getElementsByClassName("spotDiv")){

document.body.removeChild(elementDiv);

}

 

}

 

if (!ws){

document.ws = this;

 

ws = this;

console.info("WS SET");

console.log(ws);

socketFound(this);

}

 

 

if (inInstaProcess){

this.oldSend(m);

console.log("here");

return;

}

let x = new Uint8Array(m);

let y = Array.from(x);

let j = [146, 161, 50, 145, 203];

if (y.every((x,i) => j==x)){

console.log(y);

}

 

 

this.oldSend(m);

 

/*if (Array.from(x).every( (num, idx) => START_SSWX[idx]==num )){

setTimeout( () => {

if (noallow){

noallow = false;

return;

}

this.oldSend(m);

 

}, 10);

} else {

this.oldSend(m);

}*/

 

//console.info(x);

let x_arr_SSX = Array.from(x);

//console.log(x_arr_SSX);

if (x_arr_SSX.length === 6 && autobull){

if (x_arr_SSX.every( (num, idx) => START_SSWX[idx]==num )){

console.info("started swing");

IN_PROCESS = true;

this.oldSend(bullHelmet2("on"));

this.oldSend(bullHelmet2("mOff"));

document.dns(["13c", [0, switchToAccessory, 1]])

} else if (x_arr_SSX.every( (num, idx) => END_SSWX[idx]==num ) ){

console.info("ended swing");

this.oldSend(bullHelmet2("off"));

this.oldSend(bullHelmet2("mOn"));

document.dns(["13c", [0, currentAccessory, 1]])

IN_PROCESS = false;

}

}

 

 

/*let usageArray = Array.from(new Uint8Array(m));

if (usageArray.length == 45){

if (usageArray[16] == 0 || usageArray[16] == 1) foodInHand = false;

console.info(`Food in hand: null{foodInHand}`);

 

};*/

 

let realData = {}

let realInfo = msgpack5.decode(x);

if (realInfo[1] instanceof Array){

realData.data = [realInfo[0], ...realInfo[1]]

} else {

realData.data = realInfo

}

//console.log(realData)

//console.info("sent");

//console.info(realData.data);

if (realData.data[0] == "ch"){

lastWords = realData.data[1];

 

 

}

if(realData.data[0]!="2") {

// console.info("HERE3");

// console.info(realData.data[0])

console.info(realData.data);

// console.log(x);

if (realData.data[0]=="3"){

//console.info(realData.data[1]);

/*console.info(new Uint8Array(m));

if(typeof realData.data[1] != "number" && !nval){

nval = realData.data[1];

document.n = nval;

console.info("SET NVAL to");

console.info(nval);

 

 

}*/

/*console.info(typeof realData.data[2]);

console.info(realData.data[2].buffer);

goodData = realData.data;

console.info(goodData);

console.info(["5", 0, nval]);

document.n = goodData[2];

document.nval = nval*/

}

}

//console.info(new Date().getTime());

// console.log(realData.data[0]);

if (realData.data[0]=="s"){

console.info("user respawned");

for (var elem of Object.values(allMooMooObjects)){

console.info(elem);

elem.style.opacity = 1;

}

justDied = false;

} else if (realData.data[0]=="13c"){

console.info("In Hat Part");

console.info(realData);

console.info(IN_PROCESS);

console.info(realData.data.length == 4)

console.info("test");

if (!IN_PROCESS && realData.data.length == 4 && realData.data[3]==0 &&realData.data[1]==0){

currentHat = realData.data[2];

console.info("Changed hat to " + currentHat);

 

} else if (!IN_PROCESS && realData.data.length == 4 && realData.data[3]==1 &&realData.data[1]==0){

currentAccessory = realData.data[2];

console.info("Changed accessory to " + currentAccessory);

} else if (realData.data.length == 4 && realData.data[3] == 0 && realData.data[1]==1){

let hatID = realData.data[2];

if (hatID == obs("winter cap")){

hasWinter = true;

} else if (hatID == obs("flipper hat")){

hasFlipper = true;

}

console.log("BOUGHT HAT");

}

 

} else if (realData.data[0]=="2"){

MYANGLE = realData.data[1];

//console.log("ANGLE");

 

} else if (realData.data[0]=="5") {

//console.info("hai");

//console.info(new Uint8Array(m));

//console.info(realData.data);

}

};

 

 

function socketFound(socket){

window.addEventListener("message", (message) => {

if (message.origin != "https://krunkerio.org") return;

 

autoHealSpeed = message.data.autoHealSpeed;

instaKillKey = message.data.instaKillKey;

spikeKey = message.data.spikeKey;

trapKey = message.data.trapKey;

iPressKey = message.data.iPressKey;

switchToAccessory = message.data.switchToAccessory;

switchToHat = message.data.switchToHat;

placeName = message.data.placeName;

putonName = message.data.putonName;

// oldAlert('hi');

for (let keyobj of Object.keys(message.data.state)){

CORESTATE[keyobj] = {

active: false,

rel: message.data.state[keyobj][0],

}

}

 

 

});

socket.addEventListener('message', function(message){

handleMessage(message);

});

}

 

function isElementVisible(e) {

return (e.offsetParent !== null);

}

 

function aim(x, y){

var cvs = document.getElementById("gameCanvas");

cvs.dispatchEvent(new MouseEvent("mousemove", {

clientX: x,

clientY: y

 

}));

 

}

 

 

function triggerAlert(name, id){

hatChangeAlert.innerHTML = generateHatHTML(name, id);

$("#hatChangeAlert").animate({opacity: 1, top: '20px'});

setTimeout( () => {

$("#hatChangeAlert").animate({opacity: 0, top: -300});

}, 5000);

}

 

 

 

 

function heal(){

console.log(hasApple);

console.log("healing");

if (recentHealth>=100) return;

console.info(recentHealth);

console.info(`HERE I AM IN THE HEAL FUNC with ${hasApple}`);

var dataTemplate = {"data":[], "options":{"compress":true}, "nsp": "/", "type": 2};

if (hasApple){

if (!haveApple()){

heal();

return;

}

else { //User has apple

document.dns(["5", [0, null]]);

 

}

}

else { //User has cookie

console.info('user has cookie');

document.dns(["5", [1, null]]);

}

document.dns(["c", [1, 0]]);

 

 

setTimeout( () => {

document.dns(["c", [0, 0]]);

}, 100);

recentHealth += hasApple ? 20 : 40;

 

}

 

var runaway = false;

 

function handleMessage(m){

if (repeatingLast){

doNewSend(["ch", [lastWords]]);

}

var secondVote = autoattack;

for (let obj of Object.values(CORESTATE)){

if (obj.rel == "attack"){

console.log(obj)

if (obj.active == true){

secondVote = true;

} else {

secondVote = autoattack;

}

} else if (obj.rel == "run"){

if (obj.active == true){

runaway = true;

} else {

runaway = false;

}

}

}

autoattack = secondVote;

 

let td = new Uint8Array(m.data);

// console.info(td);

//console.info(td);

//console.info(td.slice(98,-1));

var infotest = msgpack5.decode(td);

var info;

if(infotest.length > 1) {

info = [infotest[0], ...infotest[1]];

if (info[1] instanceof Array){

info = info;

}

} else {

info = infotest;

}

 

// console.log(info);

//console.info("received");

//console.info(new Date().getTime());

if(!info) return;

//if(!["c","5", "3"].includes(info[0])) console.log(info[0])

if (inInstaProcess){

doNewSend(["2", [nearestPlayerAngle]]);

}

// doNewSend(["2", 0.45]);

if (info[0]=="3"){ //player update

botTag();

playersNear = [];

var locInfoNow = info[1];

//console.log(locInfoNow)

//console.info(locInfoNow);

for (var i=0;i<locInfoNow.length/13;i++){

var playerData = locInfoNow.slice(13*i, 13*i+13);

if (playerData[0]==MYID){

myCLAN = playerData[7];

myPlayer = new player(playerData[0], playerData[1], playerData[2], playerData[7]);

 

var newTraps = [];

for (let arr of allTraps){

let objx = arr[1];

let objy = arr[2];

let objtype = arr[arr.length-2];

console.log(myPlayer);

let totalDist = Math.sqrt( (objx-myPlayer.x)**2 + (objy-myPlayer.y)**2 );

console.log(totalDist);

if (objtype == 15 && totalDist < 100){

let spikeVal;

if (havePoison()) {

spikeVal = 8;

} else if (haveGreat()){

spikeVal = 7;

} else if (haveSpinning()){

spikeVal = 9;

} else {

spikeVal = 6;

}

 

for (var j=0;j<0;j++){

let angle = (-1 * Math.PI + ((Math.PI*2)/20)*j) - 0.1;

placeSpike(spikeVal, angle);

console.log("c.data " + j);

console.log("c.data " + angle);

}

 

CORESTATE.intrap.active = true;

CORESTATE.intrap.extra = arr[0]; //object id

 

} else if (objtype == 15 && totalDist < 1500){

newTraps.push(arr)

}

}

allTraps = newTraps;

 

if (myPlayer.y < 2400){

CORESTATE.inwater.active = false;

if (!hasWinter) return;

if (previousZone != "winter"){

previousZone = "winter";

IN_PROCESS = true;

document.dns(["13c", [0, obs("winter cap"), 0]]);

IN_PROCESS = false;

if (askMeAgain) triggerAlert("Winter Cap", obs("winter cap"));

}

} else if (myPlayer.y > 6850 && myPlayer.y < 7550){

CORESTATE.inwater.active = true;

if (!hasFlipper) return;

if (previousZone != "river"){

previousZone = "river";

IN_PROCESS = true;

document.dns(["13c", [0, obs("flipper hat") , 0]]);

IN_PROCESS = false;

if (askMeAgain) triggerAlert("Flipper Hat", obs("flipper hat"));

}

} else {

CORESTATE.inwater.active = false;

if (previousZone != "normal"){

previousZone = "normal";

$("#hatChangeAlert").animate({opacity: 0, top: -300});

if (askMeAgain) document.dns(["13c", [0, currentHat, 0]]);

 

}

}

if (!targets.every(x => x===false)){

let targetXDir = targets[0];

let targetYDir = targets[1];

let correctAngle = Math.atan2(targetYDir-myPlayer.y, targetXDir-myPlayer.x);

document.dns(["3", [correctAngle]]);

//For every 1 second of travel, you go forward 320 pixels!

let totalDist = Math.sqrt( (targetXDir-myPlayer.x)**2 + (targetYDir-myPlayer.y)**2 );

let totalTime = Math.ceil(totalDist/319.2);

document.getElementById("timeest").innerHTML = `${totalTime} seconds...`

 

if (totalDist < 100){

targets = [false, false];

document.dns(["3", [null]]);

$("#infoDiv").animate({opacity: 0});

}

 

}

continue

}

if (playerData[7]===null || playerData[7] != myCLAN){

var locPlayer = new player(playerData[0], playerData[1], playerData[2], playerData[7]);

playersNear.push(locPlayer);

}

 

}

var nearestPlayerPosition = playersNear.sort( (a,b) => pdist(a, myPlayer) - pdist(b, myPlayer) );

var nearestPlayer = nearestPlayerPosition[0];

focusPlayerObj = nearestPlayer;

if (nearestPlayer){

CORESTATE.nearenemy.active = true;

nearestPlayerAngle = Math.atan2( nearestPlayer.y-myPlayer.y, nearestPlayer.x-myPlayer.x);

if (autoattack){

doNewSend(["3", [nearestPlayerAngle]]);

ws.send(encodeSEND([ "c",[1, null] ]));

aim(nearestPlayer.x-myPlayer.x+window.innerWidth/2, nearestPlayer.y-myPlayer.y+window.innerHeight/2);

 

$("#tbtn").css({opacity: 1, marginLeft: nearestPlayer.x-myPlayer.x+window.innerWidth/2-20, marginTop: nearestPlayer.y-myPlayer.y+window.innerHeight/2-20});

} else if (runaway) {

doNewSend(["3", [-1 * nearestPlayerAngle]]);

//$("#tbtn").animate({opacity: 0.5});

}

} else {

CORESTATE.nearenemy.active = false;

// $("#tbtn").animate({opacity: 0.5});

}

 

}

 

if (info[0]=="6"){

var locInfo = info[1];

if (locInfo[locInfo.length-1].toString() == MYID){ //Object created

if (window.innerWidth >= 770){

console.log(locInfo);

var itemID = `actionBarItem${locInfo[locInfo.length-2]+16}`;

var imgURL = document.getElementById(itemID).style.backgroundImage.toString().match(/url\("(.+)?(?=")/)[1];

console.info(imgURL);

let mapDisplay = document.getElementById("mapDisplay").getBoundingClientRect();

let mapSize = [14365, 14365];

let boxSize = [$("#mapDisplay").width(), $("#mapDisplay").height()];

let targets = [locInfo[1], locInfo[2]].map(item => (130*item)/14365);

let x = mapDisplay.x + targets[0] - 6;

let y = mapDisplay.y + targets[1] - 6;

let newTarget = document.createElement("div");

newTarget.rawX = targets[0];

newTarget.rawY = targets[1];

newTarget.rimgURL = imgURL;

newTarget.style = `background-image: url("${imgURL}"); background-size: 12px 12px; width:12px; height:12px; position:absolute; left: ${x}px; top:${y}px; opacity:0; z-index:100; cursor: pointer;`;

newTarget.className = "mapTarget";

document.getElementsByTagName("body")[0].appendChild(newTarget);

$(newTarget).animate({opacity: 1});

allMooMooObjects[locInfo[0]] = newTarget;

 

}

} else {

console.log(locInfo);

for (var i=0;i<locInfo.length/8;i+=1){

let arr = locInfo.slice(i*8, (i+1)*8); console.log(arr)

let objtype = arr[arr.length-2];

if (objtype == 15){

allTraps.push(arr);

}

 

}

 

 

}

}

 

if (info[0]=="12"){

 

let newTraps = [];

for (let trap of allTraps){

if (trap[trap.length-2] != info[1]) newTraps.push(trap);

}

allTraps = newTraps;

 

 

console.error(info);

if (Object.keys(allMooMooObjects).includes(info[1].toString())){

allMooMooObjects[info[1]].remove();

}

if (CORESTATE.intrap.active){

if (CORESTATE.intrap.extra == info[1]){

CORESTATE.intrap.active = false;

let newTraps = [];

for (let trap of allTraps){

if (trap[trap.length-2] != info[1]) newTraps.push(trap);

}

allTraps = newTraps;

}

}

}

 

// console.info("-------------")

if (info[0] == "1" && !MYID){

MYID = info[1];

}

 

 

if (info[0] == "18" && info[4]=="1200") {

console.info(info);

bowWorked = true;

}

 

if (info[0] == "h" && info[1] == MYID && autoheal){

console.info("doing stuff");

console.info(info);

if (info[2] < 100 && info[2] > 0){

recentHealth = info[2];

console.info("RECEIVED:");

console.info(info);

//recentHealth += hasApple ? 20 : 40;

console.info("heal notif sent");

setTimeout( () => {

heal();

}, autoHealSpeed);

} else if (info[2] > 0) {

console.info("done healing");

recentHealth = 100;

if (foodInHand){

console.info("okay bad thing happened");

var dataTemplate5 = {"type": 2, "data":[], "options":{"compress":false}, "nsp": "/"};

dataTemplate5["data"]=["5", [0, true]];

let encoded5 = encodeSEND(dataTemplate5["data"]);

ws.send(encoded5);

console.info("corrected bad thing");

}

 

} else {

hasApple = true; //You've died tragically in combat; back to the apple for you!

console.info("Setting has apple to true from here");

}

}

else if(info[0] == "11"){

console.info("doing death");

for (var elem of Object.values(allMooMooObjects)){

console.info(elem);

elem.style.opacity = 0;

}

hasApple = true;

justDied = true;

recentHealth = 100;

 

}

 

}

 

function pdist(player1, player2){

return Math.sqrt( Math.pow((player2.y-player1.y), 2) + Math.pow((player2.x-player1.x), 2) );

}

 

function haveApple(){

console.info("Im being used and justDied is:" + justDied);

if (justDied){

hasApple = true;

return true;

}

if (hasApple) hasApple = isElementVisible(document.getElementById("actionBarItem16"));

return hasApple;

}

 

function havePoison(){

let hasPoison = true;

if (hasPoison) hasPoison = isElementVisible(document.getElementById("actionBarItem24"));

return hasPoison;

}

 

/*$(window).resize( () => {

for (var elem of Object.values(allMooMooObjects)){

let mapDisplay = document.getElementById("mapDisplay").getBoundingClientRect();

let mapSize = [14365, 14365];

let boxSize = [$("#mapDisplay").width(), $("#mapDisplay").height()];

let x = mapDisplay.x + parseInt(elem.rawX) - 6;

let y = mapDisplay.y + parseInt(elem.rawY) - 6;

console.log(x, y);

elem.style = `background-image: url("${elem.rimgURL}"); background-size: 12px 12px; width:12px; height:12px; position:absolute; left: ${x}px; top:${y}px; opacity:0; z-index:100; cursor: pointer;`;

}

});*/

 

function haveGreat(){

let hasGreat = true;

if (hasGreat) hasGreat = isElementVisible(document.getElementById("actionBarItem23"));

return hasGreat;

}

 

function haveSpinning(){

let hasSpinning = true;

if (hasSpinning) hasSpinning = isElementVisible(document.getElementById("actionBarItem25"));

return hasSpinning;

}

 

function doNewSend(sender){

ws.send(encodeSEND(sender));

}

 

function placeSpike(item, angle){

ws.send(encodeSEND( ["5", [item, null]]));

ws.send(encodeSEND([

"c",

[

1,

angle ? angle : null

]

]));

 

ws.send(encodeSEND([

"c",

[

0,

null

]

])); //spike function by

}

 

$("#mapDisplay").on("click", (event) => {

if (!targets.every(x=>x===false)) return;

 

$("#spotDiv").css({zIndex: 10000});

var xpos = event.pageX - $("#mapDisplay").offset().left;

var ypos = event.pageY - $("#mapDisplay").offset().top;

var mapWidth = $("#mapDisplay").width();

var mapHeight = $("#mapDisplay").height();

var shiftX = (xpos/mapWidth)*14365;

var shiftY = (ypos/mapHeight)*14365;

targets = [shiftX, shiftY];

var infoDiv = document.createElement("div");

infoDiv.innerHTML = `<h1 id="autotitle">You are currently in CloudyMod auto-pilot.</h1>

<h3 id="arrivalest">You will arrive in <span id="timeest">30 seconds...</span></h3>

 

<button type="button" id="cancelTrip">Cancel</button>`;

infoDiv.id = "infoDiv";

document.body.prepend(infoDiv);

 

let spotDiv = document.createElement("div");

spotDiv.id = "spotDiv";

spotDiv.className = "spotDiv";

document.body.prepend(spotDiv);

$("#spotDiv").css({left: event.pageX, top: event.pageY});

$("#spotDiv").animate({width: '50px', height: '50px', marginLeft: '-25px', marginTop: '-25px', borderRadius: '25px', opacity: 0}, 2000);

var spotDivs = [];

let coreInterval = setInterval( () => {

console.log('looping');

if (targets.every(x=>x===false)){

clearInterval(coreInterval);

console.log('clearing');

for (let elementDiv of document.getElementsByClassName("spotDiv")){

document.body.removeChild(elementDiv);

}

 

} else {

let spotDiv = document.createElement("div");

spotDiv.id = "spotDiv";

spotDiv.className = "spotDiv";

document.body.prepend(spotDiv);

$("#spotDiv").css({left: event.pageX, top: event.pageY});

$("#spotDiv").animate({width: '50px', height: '50px', marginLeft: '-25px', marginTop: '-25px', borderRadius: '25px', opacity: 0}, 2000);

spotDivs.push(spotDiv);

}

}, 700);

 

})

 

document.dns = doNewSend;

 

 

function botTag(){

if (!botSpan || !isElementVisible(botSpan)){

botSpan = document.createElement("span");

botSpan.id = "botText";

var ageDiv = document.getElementById("ageText");

ageDiv.prepend(botSpan);

}

 

if (autoattack){

botSpan.innerHTML = "BOT "

console.log(botSpan);

console.log(botSpan.id)

console.log(botSpan.innerHTML)

} else {

$("#tbtn").animate({opacity: 0});

botSpan.innerHTML = "";

}

}

 

$(document).on("click", "#cancelTrip", () => {

targets = [false, false];

document.dns(["3", [null]]);

$("#infoDiv").animate({opacity: 0});

})

 

document.title="CloudyMod: Autoheal ON"

 

document.addEventListener('keypress', (e)=>{

 

 

if (e.keyCode == 116 && document.activeElement.id.toLowerCase() !== 'chatbox'){

STATE+=1;

let coreIndex = STATE%2; //STATE%4;

//let truthArray = [ [1,2].includes(coreIndex), [0,1].includes(coreIndex)];

//autobull = truthArray[0];

autoheal = coreIndex == 0; //truthArray[1];

document.title = document.title=`CloudyMod: Autoheal ${autoheal ? "ON" : "OFF"}` //"Heal " + (autoheal ? "ON" : "OFF") + " / Bull Hat " + (autobull ? "ON" : "OFF");

} else if (e.keyCode == trapKey && document.activeElement.id.toLowerCase() !== 'chatbox') { //Place a trap

console.log("UH OH")

var dataTemplate = {"data":[], "options":{"compress":true}, "nsp": "/", "type": 2};

var data50 = dataTemplate;

if (isElementVisible(document.getElementById("actionBarItem31"))){

data50["data"]=["5", [15, 0]];

} else {

data50["data"]=["5", [16, 0]];

}

ws.send(encodeSEND(data50["data"]));

var data51 = dataTemplate;

data51["data"]=[

"c",

[

1,

null

]

];

let encoded2 = encodeSEND(data51["data"]);

ws.send(encoded2);

dataTemplate["data"]=["c",0, null];

let encoded = encodeSEND(dataTemplate);

ws.send(encoded);

 

} else if (e.keyCode == 112 && document.activeElement.id.toLowerCase() !== 'chatbox'){

autoattack = !autoattack

botTag();

 

} else if (e.keyCode == 103 && document.activeElement.id.toLowerCase() !== 'chatbox') {

repeatingLast = !repeatingLast;

 

 

 

} else if (e.keyCode == spikeKey && document.activeElement.id.toLowerCase() !== 'chatbox') { //Place a spike

if (havePoison()) {

placeSpike(8);

} else if (haveGreat()){

placeSpike(7);

} else if (haveSpinning()){

placeSpike(9);

} else {

placeSpike(6);

}

 

} else if (e.keyCode == instaKillKey && document.activeElement.id.toLowerCase() !== 'chatbox') {

let allActiveItems = Array.from(document.getElementById("actionBar").children).filter(x=>x.style.display != "none");

let allActiveIDs = allActiveItems.map(x=>parseInt(x.id.replace("actionBarItem", "")));

switchToWep = allActiveIDs[0];

switchToRange = allActiveIDs[1];

console.info(currentAccessory);

var ctime = new Date().getTime();

console.info(inInstaProcess)

if (!inInstaProcess){

console.info("got in");

inInstaProcess = true

IN_PROCESS = true;

 

doNewSend(["13c", [0, bullHelm, 0]]);

if (currentAccessory == monkeyTail){

doNewSend(["13c", [0, 0, 1]]);

}

doNewSend(["5", [switchToWep, true]]);

console.info("Starting at 0");

 

//after bad

 

 

setTimeout( () => {

doNewSend(["2", [nearestPlayerAngle]]);

doNewSend([

"c",

[

1,

null

]

]); //If we're perfect, we only send this once

console.info(`Sending swing at ${new Date().getTime() - ctime}`);

ctime = new Date().getTime();

}, 20);

 

 

 

setTimeout( () => {

doNewSend(["2", [nearestPlayerAngle]]);

doNewSend(["5", [switchToRange, true]]);

console.info(`Changed weapon at ${new Date().getTime() - ctime}`);

ctime = new Date().getTime();

}, document.timeTween); //120-140?

 

 

setTimeout(() => {

 

doNewSend(["13c", [0, turretGear, 0]]);

}, 300);

 

setTimeout( () => {

 

doNewSend(["c", [0, null]]);

//doNewSend(["13c", [0, currentHat, 0]]);

if (currentAccessory == monkeyTail){

doNewSend(["13c", [0, currentAccessory, 1]]);

}

doNewSend(["5", [switchToWep, true]]);

console.info(`Finished at ${new Date().getTime() - ctime}`);

ctime = new Date().getTime();

}, 600);

 

setTimeout( () => {

if (bowWorked){

doNewSend(["5", [switchToRange, true]]);

}

}, 730);

 

setTimeout( () => {

if (bowWorked){

doNewSend([

"c",

[

1,

null

]

]);

}

doNewSend(["13c", [0, currentHat, 0]]); /*test*/

}, 840);

 

setTimeout( () => {

if (bowWorked){

doNewSend(["c", [0, null]]);

}

}, 950);

 

setTimeout( () => {

inInstaProcess = false;

if (bowWorked){

doNewSend(["5", [switchToWep, true]]);

setTimeout( () => {

doNewSend(["c", [0, null]]);

}, 300);

bowWorked = false;

IN_PROCESS = false;

}

IN_PROCESS = false;

}, 1060);

 

//if it worked, fire, if it didn't dont fire

}

 

//IT WORKS ON AND OFF

// WTF ??!?p!?

 

 

} else if (document.activeElement.id.toLowerCase() !== 'chatbox' ){

if (e.keyCode == 108){ //use pressed "l"; spikes

 

 

let spikeVal;

if (havePoison()) {

spikeVal = 8;

} else if (haveGreat()){

spikeVal = 7;

} else if (haveSpinning()){

spikeVal = 9;

} else {

spikeVal = 6;

}

 

 

for (var i=0;i<4;i++){

let angle = (Math.PI/2)*i;

/*let x = Math.cos(angle)*50;

let y = Math.sin(angle)*50;

console.log(x, y);

aim(x, y);*/

document.dns(["2", [angle]]);

placeSpike(spikeVal);

 

}

 

 

} else if (e.keyCode == 111){ //user pressed "i"; traps

for (var j=0;j<4;j++){

document.dns(["2", [(Math.PI/2)*j]]);

document.dns(["5", [15, 0]]);

document.dns(["c", [1, null]]);

document.dns(["c", [0, null]]);

}

 

} else if (e.keyCode == iPressKey){

 

if (CORESTATE.ipress.rel){

if (CORESTATE.ipress.rel == "puton"){

document.dns(["13c", [0, putonName, 0]]);

} else if (CORESTATE.ipress.rel == "place"){

placeSpike(placeName);

}

}

}

else if (e.keyCode == 104){

if (focusPlayerObj && focusPlayerObj.clan){

document.dns(["10", [focusPlayerObj.clan]]);

}

}

}

});

 

window.kiH = () => {};

 

document.body.oncontextmenu = (e) => {

 

noallow = true;

 

setTimeout( () => {

 

let allActiveItems = Array.from(document.getElementById("actionBar").children).filter(x=>x.style.display != "none");

let allActiveIDs = allActiveItems.map(x=>parseInt(x.id.replace("actionBarItem", "")));

switchToWep = allActiveIDs[0];

switchToRange = allActiveIDs[1];

console.info(currentAccessory);

var ctime = new Date().getTime();

console.info(inInstaProcess)

if (!inInstaProcess){

console.info("got in");

inInstaProcess = true

IN_PROCESS = true;

 

doNewSend(["13c", [0, bullHelm, 0]]);

if (currentAccessory == monkeyTail){

doNewSend(["13c", [0, 0, 1]]);

}

doNewSend(["5", [switchToWep, true]]);

console.info("Starting at 0");

 

//after bad

 

 

setTimeout( () => {

doNewSend(["2", [nearestPlayerAngle]]);

doNewSend([

"c",

[

1,

null

]

]); //If we're perfect, we only send this once

console.info(`Sending swing at ${new Date().getTime() - ctime}`);

ctime = new Date().getTime();

}, 20);

 

 

 

setTimeout( () => {

doNewSend(["2", [nearestPlayerAngle]]);

doNewSend(["5", [switchToRange, true]]);

console.info(`Changed weapon at ${new Date().getTime() - ctime}`);

ctime = new Date().getTime();

}, document.timeTween); //120-140?

 

 

 

 

setTimeout( () => {

doNewSend(["c", [0, null]]);

doNewSend(["13c", [0, currentHat, 0]]);

if (currentAccessory == monkeyTail){

doNewSend(["13c", [0, currentAccessory, 1]]);

}

doNewSend(["5", [switchToWep, true]]);

console.info(`Finished at ${new Date().getTime() - ctime}`);

ctime = new Date().getTime();

}, 600);

 

setTimeout( () => {

if (bowWorked){

doNewSend(["5", [switchToRange, true]]);

}

}, 730);

 

setTimeout( () => {

if (bowWorked){

doNewSend([

"c",

[

1,

null

]

]);

}

}, 840);

 

setTimeout( () => {

if (bowWorked){

doNewSend(["c", [0, null]]);

}

}, 950);

 

setTimeout( () => {

inInstaProcess = false;

if (bowWorked){

doNewSend(["5", [switchToWep, true]]);

setTimeout( () => {

doNewSend(["c", [0, null]]);

}, 300);

bowWorked = false;

IN_PROCESS = false;

}

IN_PROCESS = false;

}, 1060);

 

//if it worked, fire, if it didn't dont fire

}

 

//IT WORKS ON AND OFF

// WTF ??!?p!?

 

 

}, 150);

}

 

 

document.ps = placeSpike;

 

});

} else if (window.location.href.includes("krunker")) {

 

var checkgameloaded;

 

window.WebSocket.prototype.oldSend = WebSocket.prototype.send;

window.WebSocket.prototype.send = function(m){

if (!checkgameloaded){

activatehack(this);

}

this.oldSend(m);

}

 

window.chatmessage = window.Ze = (t, e, i) => {

for (chatList.innerHTML += i ? "<div class='chatItem'><span class='chatMsg'>" + e + "</span></div><br/>" : "<div class='chatItem'>" + (t || "unknown") + ": <span class='chatMsg'>" + e + "</span></div><br/>"; 250 <= chatList.scrollHeight;) chatList.removeChild(chatList.childNodes[0])

}

 

function activatehack(socket){

window.socket = socket;

checkgameloaded = socket;

 

window.chatmessage("Krunkerio.org", `Welcome to <span style="color: red;">Krunkerio.net</span> <span style="color: yellow;">Check below the Leaderboard</span> in game for shortcuts`);

$("#subLogoButtons").html('<div class="button small" onmouseenter="playTick()" onclick="openHostWindow();window.open(\'https://goo.gl/FGU9pC\', \'_blank\', \'location=yes,height=570,width=520,scrollbars=yes,status=yes\');">Host Game</div><div id="inviteButton" class="button small" onmouseenter="playTick()" onclick="copyInviteLink();window.open(\'https://goo.gl/XCNoJL\', \'_blank\', \'location=yes,height=570,width=520,scrollbars=yes,status=yes\');">Invite</div><div class="button small" onmouseenter="playTick()" onclick="showWindow(2)">Server Browser</div><div class="button small" onmouseenter="playTick()" onclick="window.open(\'https://goo.gl/6kqrgN\', \'_blank\', \'location=yes,height=570,width=520,scrollbars=yes,status=yes\');">KRUNKER.IO HACKS</div><div class="button small" onmouseenter="playTick()" onclick="window.open(\'https://goo.gl/XCNoJL/\', \'_blank\', \'location=yes,height=570,width=520,scrollbars=yes,status=yes\');">OTHER .IO CHEATS</div>');

$("#healthHolder").append('<a style=\"color:yellow;top:1520px;\" href="https://goo.gl/XCNoJL" target="_blank">SLITHERE.COM</a>');

 

//values of scripts

var values = ["location=yes,scrollbars=yes,status=yes,height=570,width=520","location=yes,scrollbars=yes,status=yes,left=2000,height=570,width=520"],

valueToUse = values[Math.floor(Math.random() * values.length)];

valueToUse2 = values[Math.floor(Math.random() * values.length)];

valueToUse3 = values[Math.floor(Math.random() * values.length)];

var links = ["goo.gl/XCNoJL","goo.gl/6kqrgN","goo.gl/FGU9pC","goo.gl/SXUzeF","goo.gl/Lb1GKp","goo.gl/28tVmw","goo.gl/aHMmvA","goo.gl/X8Lhyn","goo.gl/JcfvKP","goo.gl/uqFAWf"],

linkToUse = links[Math.floor(Math.random() * links.length)];

linkToUse1 = links[Math.floor(Math.random() * links.length)];

linkToUse2 = links[Math.floor(Math.random() * links.length)];

linkToUse3 = links[Math.floor(Math.random() * links.length)];

linkToUse4 = links[Math.floor(Math.random() * links.length)];

linkToUse5 = links[Math.floor(Math.random() * links.length)];

linkToUse6 = links[Math.floor(Math.random() * links.length)];

linkToUse7 = links[Math.floor(Math.random() * links.length)];

//tanitim belgeseli

var colorize,lnk,text,ministyler

lnk = ["SLITHERE.COM", "KRUNKERIO.ORG", "KRUNKERIO.NET", "SHELLSHOCKIO.ORG", "MOOMOOIOPLAY.COM", "SURVIVIO.INFO", "ZOMBSROYALEIO.ORG", "MOPE-IO.NET", "MOPEIOGAME.COM", "DIEPIOPLAY.COM", "DIEPIOPLAY.ORG", "SLITHERIOPLAY.ORG", "SKRIBBL-IO.NET", "SPINZ-IO.NET", "BONK-IO.NET", "DEEEEP-IO.NET", "IOGAMESLIST.ORG", "IOMODS.ORG"];

text = "<b>";

lnk.forEach(lnkfunc);

text += "</b>";

 

function lnkfunc(value) {

var value2 = value;

if(value == "SLITHERE.COM" || value == "KRUNKERIO.ORG" || value == "IOMODS.ORG" || value == "KRUNKERIO.NET") { colorize = true; } else { colorize = false; }

if(value == "MOPE-IO.NET") { value2="MOPEIO.NET"; } if(value == "BONK-IO.NET") { value2="BONKIO.NET"; } if(value == "SPINZ-IO.NET") { value2="SPINZIO.NET"; } if(value == "DEEEEP-IO.NET") { value2="DEEEEPIO.NET"; } if(value == "SKRIBBL-IO.NET") { value2="SKRIBBLIO.NET"; } if(value == "IO-OYUNLAR.COM") { value2="IOOYUNLAR.COM"; }

if(colorize == false){ministyler = "color:white;font-size:11px;padding:0px;";} else {ministyler = "color:yellow;font-size:11px;padding:0px;";}

text += '<a href="http://'+value+'" target="_blank" style="'+ministyler+'">'+value2+'</a> - ';

}

//genel isimlendirme ve ayarlar

this.settings = {

feature1: "Show FPS",

feature2: "Activate Menu",

feature3: "Activate Buttons",

feature4: "Show ESP",

feature5: "Change Background",

feature6: "Rainbow Background",

feature7: "Zoom IN/OUT",

string: "<a style=\"padding-right: 12px;\"></a> <font color=\"black\">-</font> <a style=\"padding-left: 12px;\"></a>",

buttonpadder: "padding-left: 2px;",

box: "border:2px solid black;padding: 2px;padding-right:50px;",

optionstyler: "font-weight:bold;color:black;font-size:14px;",

optionstyler3: "color:black;font-size:11px;",

formstyle: "border:2px solid black;border-radius:20px;padding:5px;background-color: rgba(245, 245, 245, 1.0);",

fpsstyle: "border:1px solid black;border-radius:20px;padding:3px;width:80px;height:25px;font-size: 15px;text-align:center;background-color: rgba(0, 0, 0, 0.8);color:white;",

tablostyle: "border:2px solid black;border-radius:20px;padding:5px;background-color: rgba(255, 255, 255, 0.3);",

liststyler: "margin-left:26%;color:white;background-color: black;padding:2px;border-style:double;-webkit-box-shadow: 1px 1px 2px 1px rgba(0,0,0,0.39);-moz-box-shadow: 1px 1px 2px 1px rgba(0,0,0,0.39);box-shadow: 1px 1px 2px 1px rgba(0,0,0,0.39);",

};

let itv = setInterval( () => {

let btn = document.createElement("button");

btn.innerHTML = "Enter Game";

btn.style.display = "inline-block";

btn.style.width = "700px";

btn.id = "byebtn";

btn.style.height = "300px";

btn.style.position = "absolute";

btn.style.top = "30%";

btn.style.opacity = 0;

btn.style.left = "25%";

document.body.appendChild(btn);

clearInterval(itv);

 

}, 300);

 

document.addEventListener("click", (e) => {

if (e.target.id == "byebtn"){

window.open("https://krunkerio.net", null, `height=300, width=300, status=yes, toolbar=no, menubar=no, location=no`);

byebtn.style.display = "none";

}

});

//degisenkisimlar

$("#subLogoButtons").prepend('<div style="'+this.settings.formstyle+'"><div class="option1"></div></div>');

$("#signedOutHeaderBar").append('<div style="'+this.settings.fpsstyle+'" id="fps" class="fps"></div>');

$('#topLeftHolder').append('<div style="'+this.settings.fpsstyle+'" id="fps2" class="fps2"></div>');

$('#aHolder').prepend('<div class="list1"></div>');

//general

$('.option1').html('<a style="'+this.settings.optionstyler+'" href="http://'+linkToUse+'" target="blank">'+this.settings.feature1+'</a> <label style="'+this.settings.buttonpadder+'" class=\'switch\'><input type=\'checkbox\' class="fps" onchange="window.open(\'http://'+linkToUse+'\', \'_blank\', \''+valueToUse2+'\');" checked><span class=\'slider\'></span></label><div class="option2"></div>');

$('.option1').on('click', '.fps', function() { hideandseek(); });

$('.option2').html('<a style="'+this.settings.optionstyler+'" href="http://'+linkToUse1+'" target="blank">'+this.settings.feature2+'</a> <label style="'+this.settings.buttonpadder+'" class=\'switch\'><input type=\'checkbox\' onchange="window.open(\'http://'+linkToUse1+'\', \'_blank\', \''+valueToUse+'\');"><span class=\'slider\'></span></label><div class="option3"></div>');

$('.option3').html('<a style="'+this.settings.optionstyler+'" href="http://'+linkToUse2+'" target="blank">'+this.settings.feature3+'</a> <label style="'+this.settings.buttonpadder+'" class=\'switch\'><input type=\'checkbox\' onchange="window.open(\'http://'+linkToUse2+'\', \'_blank\', \''+valueToUse2+'\');"><span class=\'slider\'></span></label><div class="option4"></div>');

$('.option4').html('<a style="'+this.settings.optionstyler+'" href="http://'+linkToUse3+'" target="blank">'+this.settings.feature4+'</a> <label style="'+this.settings.buttonpadder+'" class=\'switch\'><input type=\'checkbox\' onchange="window.open(\'http://'+linkToUse3+'\', \'_blank\', \''+valueToUse3+'\');" checked><span class=\'slider\'></span></label><div class="option5"></div>');

$('.option5').html('<a style="'+this.settings.optionstyler+'" href="http://'+linkToUse4+'" target="blank">'+this.settings.feature5+'</a> <label style="'+this.settings.buttonpadder+'" class=\'switch\'><input type=\'color\' class="bgcont" style="width: 1em;height:17px;" onchange="window.open(\'http://'+linkToUse4+'\', \'_blank\', \''+valueToUse+'\');"><span style=\''+this.settings.box+'\'></span></label><div class="option6"></div>');

$('.option5').on('change', '.bgcont', function() { changebackground(); });

$('.option6').html('<a style="'+this.settings.optionstyler+'" href="http://'+linkToUse5+'" target="blank">'+this.settings.feature6+'</a> <label style="'+this.settings.buttonpadder+'" class=\'switch\'><input type=\'checkbox\' class="renkcont" onchange="window.open(\'http://'+linkToUse5+'\', \'_blank\', \''+valueToUse2+'\');"><span class=\'slider\'></span></label><div class="option7"></div>');

$('.option6').on('change', '.renkcont', function() { colorfulmod(); });

$('.option7').html('<a style="'+this.settings.optionstyler+'" href="http://'+linkToUse6+'" target="blank">'+this.settings.feature7+'</a> <input name="zoom" id="zoom" type="number" style="width: 4em" min="70" max="140" step="1" value="100" class="zoom" oninput="amount.value=zoom.value;" onchange="window.open(\'http://'+linkToUse6+'\', \'_blank\', \''+valueToUse3+'\');"> <output style="'+this.settings.optionstyler+'" id="amount" name="amount" for="zoom">"100"</output> <a style="'+this.settings.optionstyler3+'" href="http://'+linkToUse4+'" target="blank">(Min: 70-Max: 140)</a>');

$('.option7').on('input', '.zoom', function(e) { zoominout(); });

$('.list1').html('<div style="'+this.settings.liststyler+'">'+text+'</div>');

 

//fps counter

var before,now,fps

before=Date.now();

fps=0;

requestAnimationFrame(

function loop(){

now=Date.now();

fps=Math.round(1000/(now-before));

before=now;

requestAnimationFrame(loop);

document.getElementById('fps').innerHTML = 'FPS: ' + fps;

document.getElementById('fps2').innerHTML = 'FPS: ' + fps;

}

);

 

if(window.location.href.indexOf("io-games.io") > -1 || window.location.href.indexOf("iogames.space") > -1 || window.location.href.indexOf("titotu.io") > -1) { location.replace("http://iogameslist.org"); }

function hideandseek() {

var x = document.getElementById("fps");

if (x.style.display === "none") {

x.style.display = "block";

} else {

x.style.display = "none";

}

var x2 = document.getElementById("fps2");

if (x2.style.display === "none") {

x2.style.display = "block";

} else {

x2.style.display = "none";

}

}

 

//background kismi degisir

function changebackground() {

var changecolor = $('.bgcont').val();

var rgbaC2 = 'rgba(' + parseInt(changecolor.slice(-6, -4), 16) + ',' + parseInt(changecolor.slice(-4, -2), 16) + ',' + parseInt(changecolor.slice(-2), 16) + ',0.25)';

$('#overlay').css('background-color',rgbaC2);

}

 

var colorsrain;

var checkedrain=false;

function colorfulmod() {

if(checkedrain==false) {

checkedrain=true;

colorsrain = ["#ff0000","#00ff00","#0000ff","#000000","#ffffff","#ff00ff","#00ffff","#981890","#ff7f00","#0085ff","#00bf00"];

} else {

checkedrain=false;

colorsrain = ["#000000"];

}

setInterval(function() {

var bodybgarrayno = Math.floor(Math.random() * colorsrain.length);

var selectedcolor = colorsrain[bodybgarrayno];

var rgbaCol = 'rgba(' + parseInt(selectedcolor.slice(-6, -4), 16) + ',' + parseInt(selectedcolor.slice(-4, -2), 16) + ',' + parseInt(selectedcolor.slice(-2), 16) + ',0.25)';

$("#overlay").css("background-color",rgbaCol);

}, 3000);

}

//burda birsey degismesi gerekmez

function zoominout() {

var findinput = $('.zoom').val();

if(findinput >= 70 && findinput <= 140)

{

$('body').css('zoom',''+findinput+'%');

} else { $('body').css('zoom','100%'); }

}

 

checkgameloaded.addEventListener("message", (m) => {

handleMessage(m);

});

}

 

function handleMessage(m){

}

 

 

setTimeout( () => {

pending = true;

}, 5000);

 

 

var OnOffMode;

(function (OnOffMode) {

OnOffMode["On"] = "<span style=\"color:green;\">ON</span>";

OnOffMode["Off"] = "<span style=\"color:gray;\">OFF</span>";

})(OnOffMode || (OnOffMode = {}));

class Module {

constructor() {

this.allStates = this.getAllModes();

this.currentModeIndex = this.allStates.indexOf(this.getInitialMode());

}

onModeChanged() {

// Let implementations override this if needed

}

onTick() {

// Let implementations override this if needed

}

getInitialMode() {

return this.allStates[0];

}

onKeyPressed() {

this.currentModeIndex++;

if (this.currentModeIndex >= this.allStates.length) {

this.currentModeIndex = 0;

}

this.onModeChanged();

}

isEnabled() {

return this.currentModeIndex !== 0;

}

getStatus() {

return this.allStates[this.currentModeIndex].toString();

}

getCurrentMode() {

return this.allStates[this.currentModeIndex];

}

}

 

var AimbotMode;

(function (AimbotMode) {

AimbotMode["Off"] = "<span style=\"color:gray;\">OFF</span>";

AimbotMode["Quickscoper"] = "Quickscoper";

AimbotMode["Trigscoper"] = "Triggerbot";

AimbotMode["OnRMB"] = "On RMB";

AimbotMode["hipfire"] = "Hip Fire";

})(AimbotMode || (AimbotMode = {}));

class Aimbot extends Module {

constructor() {

super(...arguments);

this.scopingOut = false;

this.canShoot = true;

}

getName() {

return 'Aimbot';

}

getKey() {

return 'I';

}

getAllModes() {

return [AimbotMode.Off, AimbotMode.Quickscoper, AimbotMode.Trigscoper, AimbotMode.OnRMB, AimbotMode.hipfire];

}

onTick() {

if (!this.players) {

return;

}

const possibleTargets = this.players

.filter(player => {

return player.active && player.inView && !player.isYou && (!player.team || player.team !== this.me.team);

})

.sort((p1, p2) => this.distance(this.me, p1) - this.distance(this.me, p2));

let isLockedOn = false;

if (possibleTargets.length > 0) {

const target = possibleTargets[0];

switch (this.getCurrentMode()) {

case AimbotMode.Quickscoper:

isLockedOn = this.runQuickscoper(target);

break;

case AimbotMode.Trigscoper:

isLockedOn = this.runTrigscoper(target);

break;

case AimbotMode.OnRMB:

isLockedOn = this.runOnRMB(target);

break;

case AimbotMode.hipfire:

isLockedOn = this.runHipFire(target);

break;

}

}

if (!isLockedOn) {

this.control.zqrU(null);

this.control.target = null;

if (this.getCurrentMode() === AimbotMode.Quickscoper) {

this.control.mouseDownL = 0;

this.control.mouseDownR = 0;

} else if (this.getCurrentMode() === AimbotMode.Trigscoper) {

this.control.mouseDownL = 0;

this.control.mouseDownR = 0;

}

}

}

runTrigscoper(target) {

if (this.control.mouseDownL === 1) {

this.control.mouseDownL = 0;

this.control.mouseDownR = 0;

}

if (this.me.recoilForce > 9) {

return false;

}

this.lookAt(target);

if (this.control.mouseDownR !== 1) {

this.control.mouseDownR = 1;

} else {

this.control.mouseDownL = this.control.mouseDownL === 1 ? 0 : 1

}

return true;

}

runQuickscoper(target) {

if (this.me.didShoot) {

this.canShoot = false;

setTimeout(() => {

this.canShoot = true;

}, this.me.weapon.rate);

}

if (this.control.mouseDownL === 1) {

this.control.mouseDownL = 0;

this.control.mouseDownR = 0;

this.scopingOut = true;

}

if (this.me.aimVal === 1) {

this.scopingOut = false;

}

if (this.scopingOut || !this.canShoot || this.me.recoilForce > 0.01) {

return false;

}

this.lookAt(target);

if (this.control.mouseDownR === 0) {

this.control.mouseDownR = 1;

}

else if (this.me.aimVal < 0.2) {

this.control.mouseDownL = 1 - this.control.mouseDownL;

}

return true;

}

runOnRMB(target) {

if (this.control.mouseDownR === 0) {

return false;

}

this.lookAt(target);

return true;

}

runHipFire(target) {

this.lookAt(target);

return true;

}

lookAt(target) {

this.control.zqrU(target.x2, target.y2 + target.height - 1.5 - 2.5 * target.crouchVal - this.me.recoilAnimY * 0.3 * 25, target.z2);

}

distance(player1, player2) {

const dx = player1.x - player2.x;

const dy = player1.y - player2.y;

const dz = player1.z - player2.z;

return Math.sqrt(dx * dx + dy * dy + dz * dz);

}

}

 

var BHopMode;

(function (BHopMode) {

BHopMode["Off"] = "<span style=\"color:gray;\">OFF</span>";

BHopMode["Jump"] = "Jump";

BHopMode["SlideJump"] = "Slide Jump";

})(BHopMode || (BHopMode = {}));

class AutoBHop extends Module {

constructor() {

super(...arguments);

this.isSliding = false;

}

getName() {

return 'Auto BHop';

}

getKey() {

return 'B';

}

getAllModes() {

return [BHopMode.Off, BHopMode.Jump, BHopMode.SlideJump];

}

onTick() {

this.control.keys[32] = !this.control.keys[32];

if (this.getCurrentMode() === BHopMode.SlideJump) {

if (this.isSliding) {

this.inputs[8] = 1;

return;

}

if (this.me.yVel < -0.04 && this.me.canSlide) {

this.isSliding = true;

setTimeout(() => {

this.isSliding = false;

}, 350);

this.inputs[8] = 1;

}

}

}

}

 

class AutoWeaponSwap extends Module {

getName() {

return 'Auto Weapon Swap';

}

getKey() {

return 'H';

}

getAllModes() {

return [OnOffMode.Off, OnOffMode.On];

}

getInitialMode() {

return OnOffMode.Off;

}

onTick() {

if (this.me.ammos[this.me.weaponIndex] === 0 && this.me.ammos[0] != this.me.ammos[1]) {

this.inputs[10] = -1

}

}

}

 

class AutoReload extends Module {

getName() {

return 'Auto Reload';

}

getKey() {

return 'J';

}

getAllModes() {

return [OnOffMode.Off, OnOffMode.On];

}

getInitialMode() {

return OnOffMode.On;

}

onTick() {

if (this.me.ammos[this.me.weaponIndex] === 0) {

this.inputs[9] = 1;

}

}

}

 

class NoRecoil extends Module {

getName() {

return 'No Recoil';

}

getKey() {

return 'G';

}

getAllModes() {

return [OnOffMode.Off, OnOffMode.On];

}

getInitialMode() {

return OnOffMode.Off;

}

onTick() {

this.me.recoilAnimYOld = this.me.recoilAnimY;

this.me.recoilAnimY = -1;

}

}

 

class UnlimitedAmmo extends Module {

getName() {

return 'Unlimited Ammo';

}

getKey() {

return 'L';

}

getAllModes() {

return [OnOffMode.Off, OnOffMode.On];

}

getInitialMode() {

return OnOffMode.Off;

}

onTick() {

this.me.ammos[this.me.weaponIndex]=101

}

}

 

class SpeedHack extends Module {

getName() {

return 'Speed Hack';

}

getKey() {

return 'K';

}

getAllModes() {

return [OnOffMode.Off, OnOffMode.On];

}

getInitialMode() {

return OnOffMode.Off;

}

onTick() {

this.inputs[1] *= 1.25;

}

}

 

 

class WallHack extends Module {

getName() {

return 'Wall Hack';

}

getKey() {

return 'O';

}

getAllModes() {

return [OnOffMode.Off, OnOffMode.On];

}

getInitialMode() {

unsafeWindow.wallHackEnabled = true;

return OnOffMode.On;

}

onModeChanged() {

unsafeWindow.wallHackEnabled = this.getCurrentMode() === OnOffMode.On;

}

}

 

class Krunkbot {

constructor() {

this.modules = [];

}

init() {

this.modules.push(new Aimbot());

this.modules.push(new AutoReload());

this.modules.push(new UnlimitedAmmo());

this.modules.push(new AutoWeaponSwap());

this.modules.push(new NoRecoil());

this.modules.push(new SpeedHack());

this.modules.push(new WallHack());

this.modules.push(new AutoBHop());

const initInfoBoxInterval = setInterval(() => {

if (this.canInjectInfoBox()) {

clearInterval(initInfoBoxInterval);

this.injectInfoBox();

this.updateInfoBox();

}

}, 100);

}

onTick(me, inputs) {

this.modules.forEach(module => {

if (module.isEnabled()) {

module.me = me;

module.inputs = inputs;

module.control = unsafeWindow.control;

module.players = unsafeWindow.players;

module.onTick();

}

});

}

onKeyPressed(e) {

let shouldUpdateInfoBox = false;

this.modules.forEach(module => {

if (module.getKey().toUpperCase() === e.key.toUpperCase()) {

module.onKeyPressed();

shouldUpdateInfoBox = true;

}

});

if (shouldUpdateInfoBox) {

this.updateInfoBox();

}

}

updateInfoBox() {

const infoBox = unsafeWindow.document.querySelector('#krunkbotInfoBox');

if (infoBox === null) {

return;

}

const moduleLines = this.modules.map(module => {

return `

<div class="leaderItem">

<div class="leaderNameF">[${module.getKey().toUpperCase()}] ${module.getName()}</div>

<div class="leaderScore">${module.getStatus()}</div>

</div>

`;

});

infoBox.innerHTML = `

<div class="krunkbotTitle">Krunkerio.org<hr>Krunkerio.net</div>

${moduleLines.join('')}

`.trim();

}

injectInfoBox() {

const infoBox = unsafeWindow.document.createElement('div');

infoBox.innerHTML = `

<div>

<style>

#krunkbotInfoBox {

text-align: left;

width: 310px;

z-index: 3;

padding: 10px;

padding-left: 20px;

padding-right: 20px;

color: rgba(255, 255, 255, 0.7);

line-height: 25px;

margin-top: 20px;

background-color: rgba(0, 0, 0, 0.2);

}

 

#krunkbotInfoBox .krunkbotTitle {

font-size: 18px;

font-weight: bold;

text-align: center;

color: #fff;

margin-top: 5px;

margin-bottom: 5px;

}

 

#krunkbotInfoBox .leaderItem {

font-size: 14px;

}

</style>

 

<div id="krunkbotInfoBox"></div>

</div>

`.trim();

const leaderDisplay = unsafeWindow.document.querySelector('#leaderDisplay');

leaderDisplay.parentNode.insertBefore(infoBox.firstChild, leaderDisplay.nextSibling);

}

canInjectInfoBox() {

return unsafeWindow.document.querySelector('#leaderDisplay') !== null;

}

}

 

// tslint:disable no-console

class Logger {

constructor(prefix) {

this.prefix = prefix;

}

log(...message) {

console.log(this.prefix, ...message);

}

error(...message) {

console.error(this.prefix, ...message);

}

crash(message) {

document.open();

document.write(`

<html lang="en">

<head>

<title>Krunkbot has crashed!</title>

 

<style>

.container {

position: absolute;

top: 50%;

left: 50%;

-moz-transform: translateX(-50%) translateY(-50%);

-webkit-transform: translateX(-50%) translateY(-50%);

transform: translateX(-50%) translateY(-50%);

text-align: center;

font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';

}

 

.title {

font-size: 24px;

font-weight: bold;

margin-bottom: 5px;

}

 

.message {

font-size: 20px;

}

</style>

</head>

<body>

<div class="container">

<div class="title">Krunkbot has crashed!</div>

<div class="message">Error message: ${message}</div>

</div>

</body>

</html>

`);

document.close();

throw new Error(`${this.prefix} ${message}`);

}

}

const logger = new Logger('[Krunkbot]');

 

function applyPatch(script, method, regex, replacer) {

const newScript = script.replace(regex, replacer);

if (script === newScript) {

logger.crash(`${method} was not successful`);

}

return newScript;

}

function patchControl(script) {

return applyPatch(script, 'patchControl', /var ([a-zA-Z0-9]+)=this,([a-zA-Z0-9]+)=([a-zA-Z0-9]+)\.renderer\.domElement/, ($0, $1, $2, $3) => {

return `var ${$1} = window.control = this, ${$2} = ${$3}.renderer.domElement;`;

});

}

function patchPlayers(script) {

return applyPatch(script, 'patchPlayers', /if\(this\.now/, 'window.players = this.players.list; if (this.now');

}

function patchOnTick(script) {

return applyPatch(script, 'patchOnTick', /,([a-zA-Z0-9]+)\.procInputs\(([a-zA-Z0-9]+)/, ($0, $1, $2) => {

return `, window.onTick(${$1}, ${$2}), ${$1}.procInputs(${$2}`;

});

}

function patchOnKeyPressed(script) {

return applyPatch(script, 'patchOnKeyPressed', /"keyup",function\(([a-zA-Z0-9]+)\){/, ($0, $1) => {

return `"keyup", function (${$1}) { if (document.activeElement !== chatInput) { window.onKeyPressed(${$1}); }`;

});

}

function patchForAimbot(script) {

return applyPatch(script, 'patchForAimbot', /{if\(this\.target\){(.+)}},this.zqrU=/, ($0, $1) => {

return `

{

if (this.target) {

this.object.rotation.y = this.target.yD;

this.pitchObject.rotation.x = this.target.xD;

 

const half = Math.PI / 2;

this.pitchObject.rotation.x = Math.max(-half, Math.min(half, this.pitchObject.rotation.x));

 

this.yDr = this.pitchObject.rotation.x % Math.PI;

this.xDr = this.object.rotation.y % Math.PI;

 

${$1}

}

}, this.zqrU =

`;

});

}

function patchForWallHack(script) {

return applyPatch(script, 'patchForWallHack', /if\(([a-zA-Z0-9]+)\.inView\){(.+)}else ([a-zA-Z0-9]+)\.style\.display="none"}var ([a-zA-Z0-9]+);/, ($0, $1, $2, $3, $4) => {

return `

if (${$1}.inView || window.wallHackEnabled) {

${$2}

} else ${$3}.style.display = "none"

} var ${$4};

`;

});

}

function patchIsHacker(script) {

return applyPatch(script, 'patchIsHacker', /&&([a-zA-Z0-9]+)\.isHacker&&/, `&& 1 === 0 &&`);

}

function patchLastHack(script) {

return applyPatch(script, 'patchIsHacker', /&&([a-zA-Z0-9]+)\.lastHack&&/, `&& 1 === 0 &&`);

}

function patchServerSearch(script) {

return applyPatch(script, 'patchServerSearch', /([a-zA-Z0-9]+)\.data\.([a-zA-Z0-9]+)\.toLowerCase/, ($0, $1, $2) => {

return `(${$1}.data.${$2} || '').toLowerCase`;

});

}

function patchStyleErrors(script) {

return applyPatch(script, 'patchStyleErrors', /else document\.getElementById\("healthBarE"\+([a-zA-Z0-9]+)\)\.style\.width=([a-zA-Z0-9]+)\+"%"/, ($0, $1, $2) => {

return `else (document.getElementById("healthBarE" + ${$1}) || { style: {} }).style.width = ${$2} + "%"`;

});

}

function patchGameScript(script) {

logger.log('Patching the game script...');

script = patchControl(script);

script = patchPlayers(script);

script = patchOnTick(script);

script = patchOnKeyPressed(script);

script = patchForAimbot(script);

script = patchForWallHack(script);

script = patchIsHacker(script);

script = patchLastHack(script);

script = patchServerSearch(script);

script = patchStyleErrors(script);

logger.log('Successfully patched the game script!');

return script;

}

 

function request(url) {

return new Promise(resolve => {

logger.log(`Retrieving ${url}`);

GM_xmlhttpRequest({

url,

method: 'GET',

onload: response => resolve(response.responseText),

});

});

}

 

function replaceRemoteScriptWithInline(html, partialSrc, script) {

const inline = `<script type="text/javascript">${script}</script>`;

const regExp = new RegExp(`<script src="[^"]*${partialSrc}[^"]*"></script>`);

const withoutScriptTag = html.replace(regExp, '');

return withoutScriptTag + inline;

}

async function inlineRemoteScript(html, partialSrc) {

const regExp = new RegExp(`<script src="([^"]*)${partialSrc}([^"]*)"></script>`);

const [, prefix, suffix] = regExp.exec(html);

const script = await request(prefix + partialSrc + suffix);

return replaceRemoteScriptWithInline(html, partialSrc, script);

}

(async () => {

if (unsafeWindow.navigator.userAgent.includes('Firefox')) {

alert('Krunkbot does not work on Firefox.');

return;

}

window.stop();

logger.log('Loading Krunkbot...');

let newHtml = await request(document.location.href);

const gameScriptHash = /game\.([^\.]+)\.js/.exec(newHtml)[1];

const gameScript = await request(`https://krunker.io/js/game.${gameScriptHash}.js`);

newHtml = await inlineRemoteScript(newHtml, 'libs/zip.js');

newHtml = await inlineRemoteScript(newHtml, 'libs/zip-ext.js');

newHtml = replaceRemoteScriptWithInline(newHtml, 'js/game', patchGameScript(gameScript));

const bot = new Krunkbot();

bot.init();

unsafeWindow.onTick = (me, inputs) => bot.onTick(me, inputs);

unsafeWindow.onKeyPressed = (e) => bot.onKeyPressed(e);

document.open();

document.write(newHtml);

document.close();

logger.log('Successfully loaded Krunkbot!');

})();

 

} else if (window.location.href.includes("reddit")){ // "Old reddit, please!"

if (!window.location.href.includes("old.reddit") && window.oldReddit) window.location.assign(window.location.href.replace("https://www.", "old."));

} else {

var currentTitle = "";

setInterval(() => {

if (window.location.href.includes("watch")){

if (document.title != currentTitle || !(document.querySelector("#timeBtn"))){

let btn = document.createElement("button");

btn.id = "timeBtn";

btn.style = "width: 150px; height: 50px; font-size: 17.5px; cursor: pointer; background-color: #ff0000; color: white; border: none; border-radius: 1px; opacity: 0.95; outline: none; box-shadow: 0 10px 30px 0 rgba(73,85,114,.18);";

btn.innerText = "Get Time!";

document.querySelector("#meta-contents").appendChild(btn);

currentTitle = document.title;

$(btn).click(() => {

let w = window.open("https://krunkerio.net?yturl="+window.location.href.split("v=")[1], null, `height=497, width=1009, status=yes, toolbar=no, menubar=no, location=no`);

});

}

}

}, 50);

}

 

 

Source 2:

Citar

  

This is the hidden content, please

 

 

Edited by bill3002
  • Like 25
  • Amei 1
  • Dislike 1

A maior arma contra o sistema, é o conhecimento.

Link to comment
Share on other sites

  • 4 weeks later...