您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Cool. Check greasyfork description.
// ==UserScript== // @name Zombs.io Script // @namespace - // @version v1 // @description Cool. Check greasyfork description. // @author Nudo#3310 // @match *://zombs.io/* // @require http://code.jquery.com/jquery-3.3.1.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.0/jquery-confirm.min.js // @grant none // ==/UserScript== // let cvs = document.querySelector('canvas') /* let elm = document.getElementsByTagName('*') for(let i = 0; i < elm.length; ++i) { elm[i].oncontextmenu = null } */ let openMenu = ` <div class="hud-spell-icon" data-type="SettingsHack"></div> <div class="hack-info-holder"> <div class="hack-inner"> <div> <h4>Settings</h4> <h5>Hack</h5> </div> <div> <p>Here you can enable hacks ;3</p> </div> <div> <p style="color: #8ecc51">Click</p> </div> </div> </div> <style> .hack-inner h4 { display: block; margin: 0; color: #d0d0d0; } .hack-inner p { margin: 10px 0 0; color: #eeeeee; white-space: nowrap; font-size: 14px; } .hack-inner h5 { display: block; margin: 0; color: rgba(255, 255, 255, 0.6); } .hack-inner { display: flex; flex-direction: column; background: rgba(0, 0, 0, 0.4); padding: 10px; border-radius: 4px; } .hack-inner::after { content: ' '; display: block; position: absolute; top: 50%; right: 100%; margin-top: -6px; border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-right: 6px solid rgba(0, 0, 0, 0.4); } .hack-info-holder { display: none; position: absolute; left: 76px; top: -25px; } .hud-spell-icons .hud-spell-icon[data-type=SettingsHack]::before { background-image: url(https://media.discordapp.net/attachments/776127909651808276/945227208602046524/settings-ico.png); } </style> ` $("#hud-spell-icons").prepend(openMenu) $('[data-type="SettingsHack"]').hover(() => { $('.hack-info-holder').css("display", "block") }, () => { $('.hack-info-holder').css("display", "none") }) let menu = ` <div class="menu-holder"> <div class="menu-wrapper"> <div class="menu-title"> <h3>Settings</h3> <a class="menu-close" id="closeSettings"></a> </div> <div class="menu-navbar"> <div class="nav-btns"> <div id="mainBtn" style="background: rgba(0, 0, 0, 0.4); color: rgba(255, 255, 255, 0.4)">Main</div> <div id="miscBtn">Misc</div> <div id="sellBtn">Sell</div> <div id="botsBtn">Bots</div> <div id="upgradesBtn">Upgrades</div> <div id="autobaseBtn">AutoBase</div> </div> </div> <div class="menu-content" id="main" style="display: block;"></div> <div class="menu-content" id="misc"></div> <div class="menu-content" id="bots"></div> <div class="menu-content" id="sell"></div> <div class="menu-content" id="upgrades"></div> <div class="menu-content" id="autobase" style="width: 530px"></div> <div class="menu-footer"> <span>Made by Nudo#3310</span> </div> </div> </div> <style> .toggler-mark { display: none; width: 6px; height: 12px; border: solid #777; border-width: 0 3px 3px 0; transform: rotate(45deg); border-radius: 2px; margin-left: 4.2px; } .toggler-checkbox { margin-right: 10px; margin-top: 2px; background: rgba(0, 0, 0, .4); width: 15px; border-radius: 2px; height: 15px; } .toggler-action { color: rgba(255, 255, 255, 0.4); font-size: 14px; } .toggler-active { display: block; } .toggler-display { margin-top: 5px; padding: 10px; background: #444; border-radius: 4px; height: 35px; display: flex; cursor: pointer; align-items: center; justify-content: space-between; } .toggler-info { display: flex; flex-direction: column; } .toggler-info #toggler-name { font-weight: 1000; color: #eee; font-size: 16px; } .toggler-info #toggler-desc { color: rgba(255, 255, 255, 0.4); font-size: 14px; } .toggler-container { width: -webkit-fill-available; padding: 10px; margin: 2px; background: rgba(255, 255, 255, 0.1); border-radius: 3px; color: #eee; display: flex; justify-content: space-between; } .toggler-display { transition: all 0.15s ease-in-out; } .toggler-display:hover { background-color: #555; color: #fff; } /* .menu-navbar #autobaseBtn::after { content: 'BETA'; display: inline-block; vertical-align: middle; height: 16px; line-height: 16px; margin: 0 0 0 6px; padding: 0 4px; font-size: 10px; background: #c9523c; color: #eee; text-shadow: 0 1px 3px rgb(0 0 0 / 20%); border-radius: 2px; } */ .menu-content { display: none; flex-direction: column; height: 300px; padding: 10px; background: rgba(0, 0, 0, 0.2); overflow-y: auto; border-radius: 0 3px 3px 3px; } .menu-footer { position: relative; bottom: -5px; } .menu-footer span { font-weight: 1000; font-size: 18px; color: #d0d0d0; } .menu-navbar { width: 100%; } .nav-btns { display: flex; } .nav-btns div { cursor: pointer; display: flex; padding: 0 14px; margin: 0 1px 0 0; font-size: 14px; background: rgba(0, 0, 0, 0.4); color: rgba(255, 255, 255, 0.4); transition: all 0.15s ease-in-out; justify-content: center; align-items: center; width: 75px; height: 35px; } .nav-btns div:first-child { border-radius: 3px 0 0; } .nav-btns div:last-child { border-radius: 0 3px 0 0; } /*.nav-btns div:active, .nav-btns div:hover { background: rgba(0, 0, 0, 0.2); color: #eee; }*/ .menu-title { width: 100%; height: auto; display: flex; justify-content: space-between; } .menu-wrapper h3 { display: block; margin: 0; line-height: 20px; } .menu-close::after { transform: rotate( 320deg); } .menu-close { cursor: pointer; width: 30px; height: 30px; opacity: 0.2; transition: all 0.15s ease-in-out; } .menu-close::before { transform: rotate(45deg); } .menu-close::before, .menu-close::after { content: ' '; position: absolute; height: 30px; width: 2px; background: #eee; } .menu-close:hover, .menu-close:active { opacity: 0.4; } .menu-wrapper { width: 600px; height: 420px; padding: 20px; background: rgba(0, 0, 0, 0.6); color: #eee; border-radius: 4px; z-index: 15; } .menu-holder { display: none; position: absolute; width: 100%; top: 0; height: 100%; align-items: center; justify-content: center; } </style> ` $("#hud").append(menu) $('[data-type="SettingsHack"]').click(() => { cvs.style.filter = "blur(8px)" $(".menu-holder").css(`display`, `flex`) }) $("#closeSettings").click(() => { cvs.style.filter = "none" $(".menu-holder").css(`display`, `none`) }) $(document).mouseup((e) => { if ($(".menu-holder").has(e.target).length === 0){ $(".menu-holder").hide() cvs.style.filter = "none" } }) let btns = ["mainBtn", "miscBtn", "autobaseBtn", "sellBtn", "upgradesBtn", "botsBtn"] $(`#${btns[0]}`).css({"background": "rgba(0, 0, 0, 0.2)", "color": "#eee"}) function activeButton(e) { for (let i = 0; i < btns.length; i++) { if (e.target.id == btns[i]) $(`#${btns[i]}`).css({"background": "rgba(0, 0, 0, 0.2)", "color": "#eee"}) else $(`#${btns[i]}`).css({"background": "rgba(0, 0, 0, 0.4)", "color": "rgba(255, 255, 255, 0.4)"}) } } $("#mainBtn").click((e) => { activeButton(e) $("#main").css("display", "flex") $("#misc").css("display", "none") $("#upgrades").css("display", "none") $("#sell").css("display", "none") $("#autobase").css("display", "none") $("#bots").css("display", "none") }) $("#miscBtn").click((e) => { activeButton(e) $("#misc").css("display", "flex") $("#main").css("display", "none") $("#upgrades").css("display", "none") $("#sell").css("display", "none") $("#autobase").css("display", "none") $("#bots").css("display", "none") }) $("#autobaseBtn").click((e) => { activeButton(e) $("#autobase").css("display", "flex") $("#main").css("display", "none") $("#misc").css("display", "none") $("#upgrades").css("display", "none") $("#sell").css("display", "none") $("#bots").css("display", "none") }) $("#sellBtn").click((e) => { activeButton(e) $("#sell").css("display", "flex") $("#main").css("display", "none") $("#misc").css("display", "none") $("#autobase").css("display", "none") $("#upgrades").css("display", "none") $("#bots").css("display", "none") }) $("#upgradesBtn").click((e) => { activeButton(e) $("#upgrades").css("display", "flex") $("#main").css("display", "none") $("#misc").css("display", "none") $("#autobase").css("display", "none") $("#sell").css("display", "none") $("#bots").css("display", "none") }) $("#botsBtn").click((e) => { activeButton(e) $("#bots").css("display", "flex") $("#upgrades").css("display", "none") $("#main").css("display", "none") $("#misc").css("display", "none") $("#autobase").css("display", "none") $("#sell").css("display", "none") }) let packets = { 0: "PACKET_ENTITY_UPDATE", 1: "PACKET_PLAYER_COUNTER_UPDATE", 2: "PACKET_SET_WORLD_DIMENSIONS", 3: "PACKET_INPUT", 4: "PACKET_ENTER_WORLD", 7: "PACKET_PING", 9: "PACKET_RPC", PACKET_ENTER_WORLD: 4, PACKET_ENTITY_UPDATE: 0, PACKET_INPUT: 3, PACKET_PING: 7, PACKET_PLAYER_COUNTER_UPDATE: 1, PACKET_RPC: 9, PACKET_SET_WORLD_DIMENSIONS: 2 } let ar = [null, Infinity]; class Handler { constructor() { this.msg = null this.uid = null this.players = {} this.buildings = {} this.entities = {} this.myPlayer = null this.myPet = null this.alive = false this.visibleModel = null this.myStash = null this.uaDate = Date.now() this.myPartyKey = null this.bossWaves = [9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97, 105, 121] this.proc = { health: { player: 100, pet: 100 } } } updateUid() { if (this.msg.uid) { this.uid = this.msg.uid this.players = {} this.buildings = {} this.entities = {} window.msg = 0 } } buyItem(e) { Game.currentGame.network.sendRpc({ "name": "BuyItem", "itemName": e, "tier": 1 }) } equipItem(e) { Game.currentGame.network.sendRpc({ "name": "EquipItem", "itemName": e, "tier": 1 }) } useItem(e) { this.buyItem(e) this.equipItem(e) } entitiesAction(model, action) { this.entities = Game.currentGame.world.entities for (let ind in this.entities) { if (!this.entities.hasOwnProperty(ind)) continue let obj = this.entities[ind] action(obj, model) } } updateMyStash() { this.entitiesAction("GoldStash", (e, m) => { if (e.fromTick.model == m) { this.myStash = e } }) } upgradeAll() { this.entitiesAction("GoldStash", (e, m) => { if (e.fromTick.model != m) { Game.currentGame.network.sendRpc({ name: "UpgradeBuilding", uid: e.fromTick.uid }) } }) } /*revivePets() { for(let idn in game.world.entities) { if(game.world.entities[idn].fromTick.model == "PetCARL" || game.world.entities[idn].fromTick.model == "PetMiner") { Game.currentGame.network.sendRpc({ name: "purchaseItem", itemName: "PetRevive", uid: game.world.entities[idn].fromTick.uid }); } } }*/ sellPets() { for(let idn in game.world.entities) { if(game.world.entities[idn].fromTick.model == "PetCARL" || game.world.entities[idn].fromTick.model == "PetMiner") { Game.currentGame.network.sendRpc({ name: "DeleteBuilding", uid: game.world.entities[idn].fromTick.uid }); } } } delAction(model) { this.entities = Game.currentGame.world.entities for (let ind in this.entities) { if (!this.entities.hasOwnProperty(ind)) continue; if (this.entities[ind].fromTick.model == model) { Game.currentGame.network.sendRpc({ name: "DeleteBuilding", uid: this.entities[ind].fromTick.uid }); } } } sellBuilding(model, {verify, content}) { if (verify) { Game.currentGame.ui.getComponent("PopupOverlay").showConfirmation(content, 1e4, () => { this.delAction(model) }) } else { this.delAction(model) } } sellAll() { Game.currentGame.ui.getComponent("PopupOverlay").showConfirmation("Are you sure?", 1e4, () => { this.entities = Game.currentGame.world.entities for (let ind in this.entities) { if (!this.entities.hasOwnProperty(ind)) continue; if (this.entities[ind].fromTick.model != "GoldStash") { Game.currentGame.network.sendRpc({ name: "DeleteBuilding", uid: this.entities[ind].fromTick.uid }); } } }) } ahrc() { let depTier = [0.07, 0.11, 0.17, 0.22, 0.25, 0.28, 0.42, 0.65] this.entitiesAction("Harvester", (e) => { if (e.fromTick.deposit > 0) { Game.currentGame.network.sendRpc({ name: "CollectHarvester", uid: e.fromTick.uid }); } for (let i = 0; i < depTier.length; i++) { let tc = i + 1 if (e.fromTick.tier == tc) { if (e.fromTick.deposit <= 0) { Game.currentGame.network.sendRpc({ name: "AddDepositToHarvester", uid: e.fromTick.uid, deposit: depTier[i] }); } } } }) } heal(type) { switch (type) { case "proc": if (this.myPlayer) { this.proc.health.player = (this.myPlayer.health / this.myPlayer.maxHealth) * 100 if (this.myPet) { this.proc.health.pet = (this.myPet.health / this.myPet.maxHealth) * 100 } } window.proc = this.proc break case "player": if (this.myPlayer) { if (this.proc.health.player <= 35) { this.useItem("HealthPotion") } } break case "pet": if (this.myPet) { if (this.proc.health.pet <= 35) { this.useItem("PetHealthPotion") } } break } } waveInfo() { if ($("#hud-day-night-overlay").css("opacity") < 0.5) { if (!scoreLog.n || Date.now() - scoreLog.n >= 1000) { if ($("#hud-day-night-overlay").css("opacity") < 0.5) { scoreLog.night = true scoreLog.day = false } scoreLog.n = Date.now() } } if ($("#hud-day-night-overlay").css("opacity") > 0.5) { if (!scoreLog.d || Date.now() - scoreLog.d >= 1000) { if ($("#hud-day-night-overlay").css("opacity") > 0.5) { scoreLog.night = false scoreLog.day = true } scoreLog.d = Date.now() } } if (scoreLog.timer.enabled) { if (!scoreLog.timer.dateS || Date.now() - scoreLog.timer.dateS >= 1000) { scoreLog.timer.sec -= 1 scoreLog.timer.dateS = Date.now() } $("#wave-timer").text(scoreLog.timer.sec + "s") document.getElementById("waveBarInner").style.width = 100 * (scoreLog.timer.sec / scoreLog.timer.max) + "%" } } autoRespawn() { if (document.querySelector('.hud-respawn').style.display == "none") return game.inputPacketScheduler.scheduleInput({ respawn: 1 }) document.querySelector('.hud-respawn').style.display = "none" } clickImitation(e) { switch (e) { case "space": game.network.sendInput({space: 0}) game.network.sendInput({space: 1}) break case "up": Game.currentGame.network.sendInput({ up: 1 }) break case "down": Game.currentGame.network.sendInput({ down: 1 }) break case "left": Game.currentGame.network.sendInput({ left: 1 }) break case "right": Game.currentGame.network.sendInput({ right: 1 }) break } } putBuilding(x, y, model, yaw = 180) { Game.currentGame.network.sendRpc({ name: "MakeBuilding", x: x, y: y, type: model, yaw: yaw }) } findNearPlayer(ourUID, ourX, ourY) { ar[0] = null; ar[1] = Infinity; for(let key in Game.currentGame.world.entities) { const entity = Game.currentGame.world.entities[key]; if(!entity || entity.targetTick.uid == ourUID || !entity.targetTick || entity.entityClass !== "PlayerEntity" || game.world.localPlayer.entity.targetTick.partyId == entity.targetTick.partyId) continue; const position = entity.targetTick.position; const dist = (ourX - position.x) ** 2 + (ourY - position.y) ** 2; if(dist < ar[1]){ ar[1] = dist; ar[0] = entity; } } return ar; } setMouseMoved(e) { game.network.sendInput({ mouseMoved: e }) } lookYaw({x1, x2}, {y1, y2}) { return game.inputPacketCreator.screenToYaw((-x1 + x2) * 100, (-y1 + y2) * 100) } autoAim() { if (this.players.uid) { const [target, distSqrd] = this.findNearPlayer( game.world.localPlayer.entity.targetTick.uid, game.world.localPlayer.entity.targetTick.position.x, game.world.localPlayer.entity.targetTick.position.y); if (target) { this.setMouseMoved(this.lookYaw({ x1: game.world.localPlayer.entity.targetTick.position.x, x2: target.targetTick.position.x }, { y1: game.world.localPlayer.entity.targetTick.position.y, y2: target.targetTick.position.y })) console.log(target.targetTick) document.querySelector(".player-info-holder").innerHTML += ` <div class="box"> <div id="name" style="color: #cc5151">Aim at: ${target.targetTick.name}</div> </div>` } } } buySpear() { let getTierText = $("[data-item='Spear'] > .hud-shop-item-tier").text() let getTier = getTierText.split(" ")[1] if (getTier == 1 && this.myPlayer.gold > 1400) { this.useItem("Spear") } } update() { if (tgl.autorespawn) this.autoRespawn() this.waveInfo() this.updateUid() this.alive = game.world.inWorld if (this.msg.entities) { if (window.msg == 0) { game.world.replicator.onEntityUpdate(this.msg); } if (this.msg.entities[this.uid].name) { this.myPlayer = this.msg.entities[this.uid]; } for (let ind in this.myPlayer) { if (this.myPlayer[ind] !== this.msg.entities[this.uid][ind] && this.msg.entities[this.uid][ind] !== undefined) { this.myPlayer[ind] = this.msg.entities[this.uid][ind]; } } if (this.myPlayer.petUid) { if (this.msg.entities[this.myPlayer.petUid]) { if (this.msg.entities[this.myPlayer.petUid].model) { this.myPet = this.msg.entities[this.myPlayer.petUid]; } } for (let ind in this.myPet) { if (this.msg.entities[this.myPlayer.petUid]) { if (this.myPet[ind] !== this.msg.entities[this.myPlayer.petUid][ind] && this.msg.entities[this.myPlayer.petUid][ind] !== undefined) { this.myPet[ind] = this.msg.entities[this.myPlayer.petUid][ind] } } } } } if (this.alive) { //this.revivePets() updatePlayerInfo() this.updateMyStash() this.myPartyKey = Game.currentGame.ui.getPlayerPartyShareKey() this.heal("proc") if (tgl.autoaim) { this.autoAim() } if (tgl.autobuyspear) { this.buySpear() } if (lockYaw.active) { this.setMouseMoved(lockYaw.yaw) } if (tgl.autospacebar) { this.clickImitation("space") } if (tgl.autoheal) { this.heal("player") } if (tgl.petheal) { this.heal("pet") } if (tgl.ahrc) { this.ahrc() } if (tgl.upgradesall) { // Anti lag night if (scoreLog.night) { if (!this.uaDate || Date.now() - this.uaDate >= 1000) { this.upgradeAll() this.uaDate = Date.now() } } else { this.upgradeAll() } } if (tgl.bsbase) { BSBase() } } } } let handler = new Handler() game.network.addPacketHandler = (e, cb) => { game.network.emitter.on(packets[e], cb) } game.network.emitter.removeListener('PACKET_ENTITY_UPDATE', game.network.emitter._events.PACKET_ENTITY_UPDATE) game.network.addPacketHandler(0, e => { handler.msg = e handler.update() }) for (let i = 0; i < 10; i++) { game.network.addPacketHandler(i, function(e) { handler.msg = e handler.update() }) } window.sendBot = () => { console.log("Send bot") // connect(game.options.servers[game.options.serverId].hostname, "8000") } let playerInfo = ` <div class="player-info-holder"> </div> <style> .box { font-weight: 1000; color: white; display: flex; foxt-size: 14px; } .box #name { color: #a79aef; text-shadow: 0px 0px 5px blue, 0px 0px 5px blue; } .player-info-holder { pointer-events: none; position: absolute; display: flex; flex-direction: column; top: 290px; left: 76px; } </style> ` $("#hud").append(playerInfo) function addPlayer(name, res, party) { document.querySelector(".player-info-holder").innerHTML += ` <div class="box"> <div id="name" style="color: ${handler.myPlayer.partyId == party ? "#8ecc51" : "#a79aef"}">${name} </div> <div id="res">[${res}]</div> </div> ` } function updatePlayerInfo() { document.querySelector(".player-info-holder").innerHTML = "" Object.entries(Game.currentGame.world.entities).forEach((stuff => { if (stuff[1].targetTick.entityClass == "PlayerEntity" && ((stuff[1].targetTick.uid !== Game.currentGame.world.entities[Game.currentGame.world.getMyUid()].targetTick.uid) || window.useSamePI)) { let rr = Game.currentGame.world.entities[stuff[1].targetTick.uid].targetTick handler.players = rr let hp = (rr.health / rr.maxHealth) * 100 let res = `Gold: ${rr.gold}, Wood: ${rr.wood}, Stone: ${rr.stone}, Hp: ${~~(hp)}%` addPlayer(stuff[1].targetTick.name, res, rr.partyId) } })) } let dimension = 1; const onWindowResize = () => { const renderer = Game.currentGame.renderer; let canvasWidth = window.innerWidth * window.devicePixelRatio; let canvasHeight = window.innerHeight * window.devicePixelRatio; let ratio = Math.max(canvasWidth / (1920 * dimension), canvasHeight / (1080 * dimension)); renderer.scale = ratio; renderer.entities.setScale(ratio); renderer.ui.setScale(ratio); renderer.renderer.resize(canvasWidth, canvasHeight); renderer.viewport.width = renderer.renderer.width / renderer.scale + 2 * renderer.viewportPadding; renderer.viewport.height = renderer.renderer.height / renderer.scale + 2 * renderer.viewportPadding; } onWindowResize() window.addEventListener("resize", () => { onWindowResize() }) window.dpr = (e) => { window.devicePixelRatio = e onWindowResize() } function disableEvent() { let els = [".menu-holder", "#hud-menu-party", "#hud-menu-shop", "#hud-menu-settings"] for (let i = 0; i < els.length; i++) { if ($(els[i]).css("display") != "none") { return true } return false } } window.addEventListener("wheel", function(e, t = 1.003) { if (disableEvent() || !tgl.wheelzoom || $("#hud-chat").hasClass("is-focused")) return if (e.deltaY > 0) { for(let i = 0; i < 50; i++) { setTimeout(() => { dimension = dimension * t onWindowResize() }, i * 5) }; } else if(e.deltaY <= 1){ for(let i = 0; i < 50; i++) { setTimeout(() => { dimension = dimension / t onWindowResize() }, i * 5) }; } }); let lockYaw = { active: false, yaw: 0 } let clearChat = { cmd: "!clear", active: false } function checkChat() { if ($(".hud-chat-input").val() == clearChat.cmd) { clearChat.active = true } } document.addEventListener("keydown", e => { if (e.code == "Enter") { checkChat() if (clearChat.active) { document.querySelector(".hud-chat-messages").innerHTML = "" clearChat.active = false setTimeout(() => { document.querySelector(".hud-chat-messages").innerHTML = "" }, 500) } } if (e.code == "KeyX") { lockYaw.active = !lockYaw.active if (lockYaw.active) { lockYaw.yaw = game.world.localPlayer.entity.targetTick.yaw } else { lockYaw.yaw = null } } }) let dni = ` <div class="dni-holder"> <div id="lastscore">Score for last night: 0</div> <div class="waveBar"> <div class="timer-holder"> <span id="wave-timer">0s</span> </div> <div id="waveBarInner"></div> </div> </div> <style> .timer-holder { position: absolute; width: 200px; height: 30px; display: flex; margin-left: -3px; margin-top: -3px; justify-content: center; align-items: center; } .timer-holder span { font-size: 20px; font-weight: 1000; color: #2d2d2d; } #waveBarInner { width: 0%; height: 100%; background: rgba(255, 255, 255, 0.4); border-radius: 6px; } .waveBar { margin: 5px; padding: 3px; width: 200px; height: 30px; background: rgb(0 0 0 / 20%); border-radius: 6px; } #lastscore { font-weight: 1000; font-size: 25px; color: #d0d0d0; } .dni-holder { position: absolute; top: 0; left: 0; width: 100%; display: flex; justify-content: center; align-items: center; flex-direction: column; } </style> ` $("#hud").append(dni) let scoreLog = { night: false, day: false, d: Date.now(), n: Date.now(), new: null, old: null, last: null, date: Date.now(), timer: { sec: 0, dateS: Date.now(), enabled: false, max: 59 } } Game.currentGame.network.addRpcHandler("DayCycle", () => { if (scoreLog.night) { scoreLog.timer.sec = scoreLog.timer.max document.getElementById("waveBarInner").style.width = "100%" scoreLog.timer.enabled = true scoreLog.old = Game.currentGame.ui.playerTick.score $("#lastscore").text(`Score for last night: ...`) } if (scoreLog.day) { document.getElementById("waveBarInner").style.background = "rgba(255, 255, 255, 0.4)" $("#wave-timer").text("0s") document.getElementById("waveBarInner").style.width = "0%" scoreLog.timer.enabled = false scoreLog.new = Game.currentGame.ui.playerTick.score scoreLog.last = (scoreLog.new - scoreLog.old) $("#lastscore").text(`Score for last night: ${scoreLog.last}`) } }) let checkbMAIN = [{ name: "AutoPlayerHeal", desc: "Auto uses heal potion", id: "autoheal", action: "Enabled", active: true, button: false },{ name: "AutoPetHeal", desc: "Auto uses pet heal potion", id: "petheal", action: "Enabled", active: true, button: false },{ name: "AHRC", desc: "Auto collect resources from harvester", id: "ahrc", action: "Disabled", active: false, button: false },{ name: "AutoSpear", desc: "Auto buy spear [tier: 1]", id: "autobuyspear", action: "Disabled", active: false, button: false },{ name: "AutoSpaceBar", desc: "Automatically clicks on the space bar", id: "autospacebar", action: "Disabled", active: false, button: false },{ name: "AutoAim", desc: "you will look at the enemy, but you will not turn around", id: "autoaim", action: "Disabled", active: false, button: false }] let checkbMISC = [{ name: "WheelZoom", desc: "Changes the visible part of the game", id: "wheelzoom", action: "Enabled", active: true, button: false },{ name: "LeaveFromClan", desc: "You will leave the clan you are in", id: "leaveclan", action: "Leave", button: true },{ name: "AutoRespawn", desc: "Respawn you after death", id: "autorespawn", action: "Enabled", active: true, button: false }] let checkbSELL = [{ name: "SellPets", desc: "Remove your pet", id: "sellpets", action: "Sell", button: true },{ name: "All", desc: "Sell everything", id: "sellall", action: "Sell", button: true },{ name: "Walls", desc: "Sell walls", id: "sellwalls", action: "Sell", button: true },{ name: "Doors", desc: "Sell doors", id: "selldoors", action: "Sell", button: true },{ name: "Traps", desc: "Sell traps", id: "selltraps", action: "Sell", button: true },{ name: "ArrowTowers", desc: "Sell arrow towers", id: "sellarrows", action: "Sell", button: true },{ name: "CannonTowers", desc: "Sell cannon towers", id: "sellcannons", action: "Sell", button: true },{ name: "MeleeTowers", desc: "Sell melee towers", id: "sellmelees", action: "Sell", button: true },{ name: "BombTowers", desc: "Sell bomb towers", id: "sellbombs", action: "Sell", button: true },{ name: "MageTowers", desc: "Sell mage towers", id: "sellmages", action: "Sell", button: true },{ name: "GoldMines", desc: "Sell gold mines", id: "sellgoldmines", action: "Sell", button: true },{ name: "Harvesters", desc: "Sell harvesters", id: "sellharvesters", action: "Sell", button: true },{ name: "GoldStash", desc: "Sell gold stash", id: "sellgoldstash", action: "Sell", button: true }] let checkbBOTS = [{ name: "SendBot", desc: "Send one bot", id: "sendbot", action: "Send", button: true }] let checkbUPGRADES = [{ name: "UpgradesAll", desc: "Improves all buildings", id: "upgradesall", action: "Disabled", active: false, button: false }] let checkbAUTOBASE = [{ name: "BSBase", desc: "[BryanSmithBase] Hack will create a base for you by itself", id: "bsbase", action: "Disabled", active: false, button: false }] let tgl = { autoheal: true, petheal: true, ahrc: false, wheelzoom: true, upgradesall: false, autorespawn: true, autospacebar: false, autoaim: false, bsbase: false, autobuyspear: false } function addTogglerHTML(loc, button, name, desc, id, action, active) { if (!button) { document.getElementById(loc).innerHTML += ` <div class="toggler-container"> <div class="toggler-info"> <div id="toggler-name">${name}</div> <div id="toggler-desc">${desc}</div> </div> <div class="toggler-display" id="${id}"> <span class="toggler-checkbox"><span class="toggler-mark ${active ? "toggler-active" : ""}" id="${id}-checkbox"></span></span> <span class="toggler-action" id="${id}-action">${action}</span> </div> </div> ` } else { document.getElementById(loc).innerHTML += ` <div class="toggler-container"> <div class="toggler-info"> <div id="toggler-name">${name}</div> <div id="toggler-desc">${desc}</div> </div> <div class="toggler-display" id="${id}"> <span class="toggler-action">${action}</span> </div> </div> ` } } function checkboxGenerator() { for (let i = 0; i < checkbMAIN.length; i++) { if (checkbMAIN[i].name) addTogglerHTML("main", checkbMAIN[i].button, checkbMAIN[i].name, checkbMAIN[i].desc, checkbMAIN[i].id, checkbMAIN[i].action || null, checkbMAIN[i].active || null) } for (let i = 0; i < checkbMISC.length; i++) { if (checkbMISC[i].name) addTogglerHTML("misc", checkbMISC[i].button, checkbMISC[i].name, checkbMISC[i].desc, checkbMISC[i].id, checkbMISC[i].action || null, checkbMISC[i].active || null) } for (let i = 0; i < checkbSELL.length; i++) { if (checkbSELL[i].name) addTogglerHTML("sell", checkbSELL[i].button, checkbSELL[i].name, checkbSELL[i].desc, checkbSELL[i].id, checkbSELL[i].action || null, checkbSELL[i].active || null) } for (let i = 0; i < checkbBOTS.length; i++) { if (checkbBOTS[i].name) addTogglerHTML("bots", checkbBOTS[i].button, checkbBOTS[i].name, checkbBOTS[i].desc, checkbBOTS[i].id, checkbBOTS[i].action, checkbBOTS[i].active) } for (let i = 0; i < checkbUPGRADES.length; i++) { if (checkbUPGRADES[i].name) addTogglerHTML("upgrades", checkbUPGRADES[i].button, checkbUPGRADES[i].name, checkbUPGRADES[i].desc, checkbUPGRADES[i].id, checkbUPGRADES[i].action || null, checkbUPGRADES[i].active || null) } for (let i = 0; i < checkbAUTOBASE.length; i++) { if (checkbAUTOBASE[i].name) addTogglerHTML("autobase", checkbAUTOBASE[i].button, checkbAUTOBASE[i].name, checkbAUTOBASE[i].desc, checkbAUTOBASE[i].id, checkbAUTOBASE[i].action || null, checkbAUTOBASE[i].active || null) } } checkboxGenerator() function updateCheckBox(n, e) { if (e) { $(`#${n}-action`).text("Enabled") $(`#${n}-checkbox`).addClass("toggler-active") } else { $(`#${n}-action`).text("Disabled") $(`#${n}-checkbox`).removeClass("toggler-active") } } $("#autoheal").click(() => (tgl.autoheal = !tgl.autoheal, updateCheckBox("autoheal", tgl.autoheal))) $("#petheal").click(() => (tgl.petheal = !tgl.petheal, updateCheckBox("petheal", tgl.petheal))) $("#ahrc").click(() => (tgl.ahrc = !tgl.ahrc, updateCheckBox("ahrc", tgl.ahrc))) $("#wheelzoom").click(() => (tgl.wheelzoom = !tgl.wheelzoom, updateCheckBox("wheelzoom", tgl.wheelzoom))) $("#leaveclan").click(() => Game.currentGame.network.sendRpc({name: "LeaveParty"})) $("#upgradesall").click(() => (tgl.upgradesall = !tgl.upgradesall, updateCheckBox("upgradesall", tgl.upgradesall))) $("#sendbot").click(() => window.sendBot()) $("#autorespawn").click(() => (tgl.autorespawn = !tgl.autorespawn, updateCheckBox("autorespawn", tgl.autorespawn))) $("#autospacebar").click(() => (tgl.autospacebar = !tgl.autospacebar, updateCheckBox("autospacebar", tgl.autospacebar))) $("#autoaim").click(() => (tgl.autoaim = !tgl.autoaim, updateCheckBox("autoaim", tgl.autoaim))) $("#sellpets").click(() => handler.sellPets()) $("#bsbase").click(() => (tgl.bsbase = !tgl.bsbase, updateCheckBox("bsbase", tgl.bsbase))) $("#autobuyspear").click(() => (tgl.autobuyspear = !tgl.autobuyspear, updateCheckBox("autobuyspear", tgl.autobuyspear))) $("#sellall").click(() => handler.sellAll()) $("#sellwalls").click(() => handler.sellBuilding("Wall", {verify: false, content: ""})) $("#selldoors").click(() => handler.sellBuilding("Door", {verify: false, content: ""})) $("#selltraps").click(() => handler.sellBuilding("SlowTrap", {verify: false, content: ""})) $("#sellarrows").click(() => handler.sellBuilding("ArrowTower", {verify: false, content: ""})) $("#sellcannons").click(() => handler.sellBuilding("ConnonTower", {verify: false, content: ""})) $("#sellmelees").click(() => handler.sellBuilding("MeleeTower", {verify: false, content: ""})) $("#sellbombs").click(() => handler.sellBuilding("BombTower", {verify: false, content: ""})) $("#sellmages").click(() => handler.sellBuilding("MageTower", {verify: false, content: ""})) $("#sellgoldmines").click(() => handler.sellBuilding("GoldMine", {verify: false, content: ""})) $("#sellharvesters").click(() => handler.sellBuilding("Harvester", {verify: false, content: ""})) $("#sellgoldstash").click(() => handler.sellBuilding("GoldStash", {verify: true, content: "Are you sure?"})) function OWBase() { if (!handler.myStash.targetTick) return let stash = handler.myStash.targetTick let stashPosition = { x: stash.position.x, y: stash.position.y } } function BSBase() { if (!handler.myStash.targetTick) return let stash = handler.myStash.targetTick let stashPosition = { x: stash.position.x, y: stash.position.y } handler.putBuilding(stashPosition.x + 0, stashPosition.y + 0, 'GoldStash', 0); handler.putBuilding(stashPosition.x + -192, stashPosition.y + -48, 'GoldMine', 0); handler.putBuilding(stashPosition.x + -192, stashPosition.y + 48, 'GoldMine', 0); handler.putBuilding(stashPosition.x + -48, stashPosition.y + -192, 'GoldMine', 0); handler.putBuilding(stashPosition.x + 48, stashPosition.y + -192, 'GoldMine', 0); handler.putBuilding(stashPosition.x + 192, stashPosition.y + -48, 'GoldMine', 0); handler.putBuilding(stashPosition.x + 192, stashPosition.y + 48, 'GoldMine', 0); handler.putBuilding(stashPosition.x + -48, stashPosition.y + 192, 'GoldMine', 0); handler.putBuilding(stashPosition.x + 48, stashPosition.y + 192, 'GoldMine', 0); handler.putBuilding(stashPosition.x + -144, stashPosition.y + 288, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + -48, stashPosition.y + 288, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + 48, stashPosition.y + 288, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + 144, stashPosition.y + 288, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + -288, stashPosition.y + -48, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + -288, stashPosition.y + 48, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + -288, stashPosition.y + 144, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + -48, stashPosition.y + -288, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + 48, stashPosition.y + -288, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + 288, stashPosition.y + -144, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + 288, stashPosition.y + -48, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + 288, stashPosition.y + 48, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + 288, stashPosition.y + 144, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + 384, stashPosition.y + 144, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + 480, stashPosition.y + 144, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + 336, stashPosition.y + 240, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + 432, stashPosition.y + 240, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + 384, stashPosition.y + 336, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + 144, stashPosition.y + 384, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + 144, stashPosition.y + 480, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + 48, stashPosition.y + 576, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + 240, stashPosition.y + 432, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + -288, stashPosition.y + -144, 'CannonTower', 0); handler.putBuilding(stashPosition.x + -384, stashPosition.y + -144, 'CannonTower', 0); handler.putBuilding(stashPosition.x + -480, stashPosition.y + -144, 'CannonTower', 0); handler.putBuilding(stashPosition.x + -432, stashPosition.y + -240, 'CannonTower', 0); handler.putBuilding(stashPosition.x + -336, stashPosition.y + -240, 'CannonTower', 0); handler.putBuilding(stashPosition.x + -336, stashPosition.y + 240, 'CannonTower', 0); handler.putBuilding(stashPosition.x + -144, stashPosition.y + 384, 'CannonTower', 0); handler.putBuilding(stashPosition.x + -240, stashPosition.y + 432, 'CannonTower', 0); handler.putBuilding(stashPosition.x + -144, stashPosition.y + -288, 'CannonTower', 0); handler.putBuilding(stashPosition.x + -144, stashPosition.y + -384, 'CannonTower', 0); handler.putBuilding(stashPosition.x + -144, stashPosition.y + -480, 'CannonTower', 0); handler.putBuilding(stashPosition.x + -240, stashPosition.y + -432, 'CannonTower', 0); handler.putBuilding(stashPosition.x + -336, stashPosition.y + -384, 'CannonTower', 0); handler.putBuilding(stashPosition.x + 144, stashPosition.y + -288, 'CannonTower', 0); handler.putBuilding(stashPosition.x + 144, stashPosition.y + -384, 'CannonTower', 0); handler.putBuilding(stashPosition.x + 144, stashPosition.y + -480, 'CannonTower', 0); handler.putBuilding(stashPosition.x + 240, stashPosition.y + -432, 'CannonTower', 0); handler.putBuilding(stashPosition.x + 336, stashPosition.y + -384, 'CannonTower', 0); handler.putBuilding(stashPosition.x + 336, stashPosition.y + -240, 'CannonTower', 0); handler.putBuilding(stashPosition.x + 432, stashPosition.y + -240, 'CannonTower', 0); handler.putBuilding(stashPosition.x + 528, stashPosition.y + -240, 'CannonTower', 0); handler.putBuilding(stashPosition.x + 480, stashPosition.y + -144, 'CannonTower', 0); handler.putBuilding(stashPosition.x + 576, stashPosition.y + -144, 'CannonTower', 0); handler.putBuilding(stashPosition.x + 384, stashPosition.y + -144, 'BombTower', 0); handler.putBuilding(stashPosition.x + 384, stashPosition.y + -48, 'BombTower', 0); handler.putBuilding(stashPosition.x + 384, stashPosition.y + 48, 'BombTower', 0); handler.putBuilding(stashPosition.x + 480, stashPosition.y + -48, 'BombTower', 0); handler.putBuilding(stashPosition.x + 480, stashPosition.y + 48, 'BombTower', 0); handler.putBuilding(stashPosition.x + 576, stashPosition.y + -48, 'BombTower', 0); handler.putBuilding(stashPosition.x + 576, stashPosition.y + 48, 'BombTower', 0); handler.putBuilding(stashPosition.x + 528, stashPosition.y + 240, 'MagicTower', 0); handler.putBuilding(stashPosition.x + 480, stashPosition.y + 336, 'MagicTower', 0); handler.putBuilding(stashPosition.x + 240, stashPosition.y + 528, 'MagicTower', 0); handler.putBuilding(stashPosition.x + 144, stashPosition.y + 576, 'MagicTower', 0); handler.putBuilding(stashPosition.x + 48, stashPosition.y + 384, 'BombTower', 0); handler.putBuilding(stashPosition.x + -48, stashPosition.y + 384, 'BombTower', 0); handler.putBuilding(stashPosition.x + 48, stashPosition.y + 480, 'BombTower', 0); handler.putBuilding(stashPosition.x + -48, stashPosition.y + 480, 'BombTower', 0); handler.putBuilding(stashPosition.x + -48, stashPosition.y + 576, 'BombTower', 0); handler.putBuilding(stashPosition.x + -144, stashPosition.y + 480, 'BombTower', 0); handler.putBuilding(stashPosition.x + -144, stashPosition.y + 576, 'MagicTower', 0); handler.putBuilding(stashPosition.x + -240, stashPosition.y + 528, 'MagicTower', 0); handler.putBuilding(stashPosition.x + -336, stashPosition.y + 480, 'MagicTower', 0); handler.putBuilding(stashPosition.x + -384, stashPosition.y + -48, 'BombTower', 0); handler.putBuilding(stashPosition.x + -384, stashPosition.y + 48, 'BombTower', 0); handler.putBuilding(stashPosition.x + -384, stashPosition.y + 144, 'BombTower', 0); handler.putBuilding(stashPosition.x + -480, stashPosition.y + -48, 'BombTower', 0); handler.putBuilding(stashPosition.x + -480, stashPosition.y + 48, 'BombTower', 0); handler.putBuilding(stashPosition.x + -480, stashPosition.y + 144, 'BombTower', 0); handler.putBuilding(stashPosition.x + -432, stashPosition.y + 240, 'CannonTower', 0); handler.putBuilding(stashPosition.x + -384, stashPosition.y + 336, 'MagicTower', 0); handler.putBuilding(stashPosition.x + 336, stashPosition.y + 480, 'MagicTower', 0); handler.putBuilding(stashPosition.x + -480, stashPosition.y + 336, 'MagicTower', 0); handler.putBuilding(stashPosition.x + -528, stashPosition.y + 240, 'MagicTower', 0); handler.putBuilding(stashPosition.x + 480, stashPosition.y + -336, 'MagicTower', 0); handler.putBuilding(stashPosition.x + -48, stashPosition.y + -480, 'BombTower', 0); handler.putBuilding(stashPosition.x + -48, stashPosition.y + -384, 'BombTower', 0); handler.putBuilding(stashPosition.x + 48, stashPosition.y + -384, 'BombTower', 0); handler.putBuilding(stashPosition.x + 48, stashPosition.y + -480, 'BombTower', 0); handler.putBuilding(stashPosition.x + 48, stashPosition.y + -576, 'BombTower', 0); handler.putBuilding(stashPosition.x + 144, stashPosition.y + -576, 'MagicTower', 0); handler.putBuilding(stashPosition.x + 240, stashPosition.y + -528, 'MagicTower', 0); handler.putBuilding(stashPosition.x + 336, stashPosition.y + -480, 'MagicTower', 0); handler.putBuilding(stashPosition.x + -48, stashPosition.y + -576, 'MagicTower', 0); handler.putBuilding(stashPosition.x + -144, stashPosition.y + -576, 'MagicTower', 0); handler.putBuilding(stashPosition.x + -240, stashPosition.y + -528, 'MagicTower', 0); handler.putBuilding(stashPosition.x + -336, stashPosition.y + -480, 'MagicTower', 0); handler.putBuilding(stashPosition.x + -576, stashPosition.y + 48, 'ArrowTower', 0); handler.putBuilding(stashPosition.x + -576, stashPosition.y + 144, 'MagicTower', 0); handler.putBuilding(stashPosition.x + -576, stashPosition.y + -48, 'MagicTower', 0); handler.putBuilding(stashPosition.x + -576, stashPosition.y + -144, 'MagicTower', 0); handler.putBuilding(stashPosition.x + -528, stashPosition.y + -240, 'MagicTower', 0); handler.putBuilding(stashPosition.x + -480, stashPosition.y + -336, 'MagicTower', 0); handler.putBuilding(stashPosition.x + -144, stashPosition.y + -192, 'Harvester', 0); handler.putBuilding(stashPosition.x + 144, stashPosition.y + -192, 'Harvester', 0); handler.putBuilding(stashPosition.x + 144, stashPosition.y + 192, 'Harvester', 0); handler.putBuilding(stashPosition.x + -144, stashPosition.y + 192, 'Harvester', 0); handler.putBuilding(stashPosition.x + -648, stashPosition.y + -168, 'Wall', 0); handler.putBuilding(stashPosition.x + -648, stashPosition.y + -120, 'Wall', 0); handler.putBuilding(stashPosition.x + -648, stashPosition.y + -72, 'Wall', 0); handler.putBuilding(stashPosition.x + -648, stashPosition.y + -24, 'Wall', 0); handler.putBuilding(stashPosition.x + -648, stashPosition.y + 24, 'Wall', 0); handler.putBuilding(stashPosition.x + -648, stashPosition.y + 72, 'Wall', 0); handler.putBuilding(stashPosition.x + -648, stashPosition.y + 120, 'Wall', 0); handler.putBuilding(stashPosition.x + -648, stashPosition.y + 168, 'Wall', 0); handler.putBuilding(stashPosition.x + -696, stashPosition.y + -120, 'Wall', 0); handler.putBuilding(stashPosition.x + -696, stashPosition.y + -72, 'Wall', 0); handler.putBuilding(stashPosition.x + -696, stashPosition.y + -24, 'Wall', 0); handler.putBuilding(stashPosition.x + -696, stashPosition.y + 24, 'Wall', 0); handler.putBuilding(stashPosition.x + -696, stashPosition.y + 72, 'Wall', 0); handler.putBuilding(stashPosition.x + -696, stashPosition.y + 120, 'Wall', 0); handler.putBuilding(stashPosition.x + 600, stashPosition.y + 120, 'Door', 0); handler.putBuilding(stashPosition.x + 552, stashPosition.y + 120, 'Door', 0); handler.putBuilding(stashPosition.x + 552, stashPosition.y + 168, 'Door', 0); handler.putBuilding(stashPosition.x + 600, stashPosition.y + 168, 'Door', 0); handler.putBuilding(stashPosition.x + 648, stashPosition.y + -168, 'Wall', 0); handler.putBuilding(stashPosition.x + 648, stashPosition.y + -120, 'Wall', 0); handler.putBuilding(stashPosition.x + 648, stashPosition.y + -72, 'Wall', 0); handler.putBuilding(stashPosition.x + 648, stashPosition.y + -24, 'Wall', 0); handler.putBuilding(stashPosition.x + 648, stashPosition.y + 24, 'Wall', 0); handler.putBuilding(stashPosition.x + 648, stashPosition.y + 72, 'Wall', 0); handler.putBuilding(stashPosition.x + 648, stashPosition.y + 120, 'Wall', 0); handler.putBuilding(stashPosition.x + 648, stashPosition.y + 168, 'Wall', 0); handler.putBuilding(stashPosition.x + 696, stashPosition.y + -120, 'Wall', 0); handler.putBuilding(stashPosition.x + 696, stashPosition.y + -72, 'Wall', 0); handler.putBuilding(stashPosition.x + 696, stashPosition.y + -24, 'Wall', 0); handler.putBuilding(stashPosition.x + 696, stashPosition.y + 24, 'Wall', 0); handler.putBuilding(stashPosition.x + 696, stashPosition.y + 72, 'Wall', 0); handler.putBuilding(stashPosition.x + 696, stashPosition.y + 120, 'Wall', 0); handler.putBuilding(stashPosition.x + -168, stashPosition.y + -648, 'Wall', 0); handler.putBuilding(stashPosition.x + -120, stashPosition.y + -648, 'Wall', 0); handler.putBuilding(stashPosition.x + -72, stashPosition.y + -648, 'Wall', 0); handler.putBuilding(stashPosition.x + -24, stashPosition.y + -648, 'Wall', 0); handler.putBuilding(stashPosition.x + 24, stashPosition.y + -648, 'Wall', 0); handler.putBuilding(stashPosition.x + 72, stashPosition.y + -648, 'Wall', 0); handler.putBuilding(stashPosition.x + 120, stashPosition.y + -648, 'Wall', 0); handler.putBuilding(stashPosition.x + 168, stashPosition.y + -648, 'Wall', 0); handler.putBuilding(stashPosition.x + -120, stashPosition.y + -696, 'Wall', 0); handler.putBuilding(stashPosition.x + -72, stashPosition.y + -696, 'Wall', 0); handler.putBuilding(stashPosition.x + -24, stashPosition.y + -696, 'Wall', 0); handler.putBuilding(stashPosition.x + 24, stashPosition.y + -696, 'Wall', 0); handler.putBuilding(stashPosition.x + 72, stashPosition.y + -696, 'Wall', 0); handler.putBuilding(stashPosition.x + 120, stashPosition.y + -696, 'Wall', 0); handler.putBuilding(stashPosition.x + -168, stashPosition.y + 648, 'Wall', 0); handler.putBuilding(stashPosition.x + -120, stashPosition.y + 648, 'Wall', 0); handler.putBuilding(stashPosition.x + -72, stashPosition.y + 648, 'Wall', 0); handler.putBuilding(stashPosition.x + -24, stashPosition.y + 648, 'Wall', 0); handler.putBuilding(stashPosition.x + 24, stashPosition.y + 648, 'Wall', 0); handler.putBuilding(stashPosition.x + 72, stashPosition.y + 648, 'Wall', 0); handler.putBuilding(stashPosition.x + 120, stashPosition.y + 648, 'Wall', 0); handler.putBuilding(stashPosition.x + 168, stashPosition.y + 648, 'Wall', 0); handler.putBuilding(stashPosition.x + -120, stashPosition.y + 696, 'Wall', 0); handler.putBuilding(stashPosition.x + -72, stashPosition.y + 696, 'Wall', 0); handler.putBuilding(stashPosition.x + -24, stashPosition.y + 696, 'Wall', 0); handler.putBuilding(stashPosition.x + 24, stashPosition.y + 696, 'Wall', 0); handler.putBuilding(stashPosition.x + 72, stashPosition.y + 696, 'Wall', 0); handler.putBuilding(stashPosition.x + 120, stashPosition.y + 696, 'Wall', 0); handler.putBuilding(stashPosition.x + 216, stashPosition.y + 312, 'Door', 0); handler.putBuilding(stashPosition.x + 216, stashPosition.y + 360, 'Door', 0); handler.putBuilding(stashPosition.x + 264, stashPosition.y + 360, 'Door', 0); handler.putBuilding(stashPosition.x + 216, stashPosition.y + -120, 'Door', 0); handler.putBuilding(stashPosition.x + -216, stashPosition.y + -120, 'Door', 0); handler.putBuilding(stashPosition.x + -216, stashPosition.y + 120, 'Door', 0); handler.putBuilding(stashPosition.x + 216, stashPosition.y + 120, 'Door', 0); handler.putBuilding(stashPosition.x + 216, stashPosition.y + -312, 'Door', 0); handler.putBuilding(stashPosition.x + 216, stashPosition.y + -360, 'Door', 0); handler.putBuilding(stashPosition.x + 264, stashPosition.y + -360, 'Door', 0); handler.putBuilding(stashPosition.x + -216, stashPosition.y + -360, 'Door', 0); handler.putBuilding(stashPosition.x + -216, stashPosition.y + -312, 'Door', 0); handler.putBuilding(stashPosition.x + -264, stashPosition.y + -360, 'Door', 0); handler.putBuilding(stashPosition.x + -216, stashPosition.y + 312, 'Door', 0); handler.putBuilding(stashPosition.x + -216, stashPosition.y + 360, 'Door', 0); handler.putBuilding(stashPosition.x + -264, stashPosition.y + 360, 'Door', 0); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址