Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Source Code Aimbot, Mod menu


 Compartilhar

Posts Recomendados

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

  

É necessário se cadastrar para acessar o conteúdo.

 

 

Editado por bill3002
  • Curtir 27
  • Amei 1
  • Dislike 1

A maior arma contra o sistema, é o conhecimento.

Link para o comentário
Compartilhar em outros sites

  • 4 semanas atrás...
  • 1 mês depois...

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Cadastre-se Agora para publicar com Sua Conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.