🏠 返回首頁 

Territorial.io bot

Trying to create a bot for the game territorial.io


Install this script?
// ==UserScript==
// @name         Territorial.io bot
// @version      0.1
// @description  Trying to create a bot for the game territorial.io
// @author       TechAle
// @match        https://territorial.io/
// @grant        GM_xmlhttpRequest
// @run-at       document-start
// @namespace https://greasyfork.org/users/909685
// ==/UserScript==
(function() {
'use strict';
GM_xmlhttpRequest({
method: "GET",
url: document.location.origin,
onload: res => {
const toChange = {
"w && Math.floor(kQ[cJ] * x) !== B && (F = !0)": "if (window.randomTroops)\n" +
"                x = Math.random()\n" +
"            w && Math.floor(kQ[cJ] * x) !== B && (F = !0)",
"cZ.rx();" : "if (!window.freezeAI)\n" +
"            cZ.rx();"
};
let html = res.responseText;
for (const [before, after] of Object.entries(toChange)) {
debugger;
html = html.replace(before.replaceAll(" ", ""), after)
}
html += getMenu();
document.open();
document.write(html);
document.close();
}
})
function getMenu() {
return '<!--\n' +
'I have to create everything like this?! UFF\n' +
'-->\n' +
'\n' +
'<style>\n' +
'    #menu {\n' +
'        position: absolute;\n' +
'        z-index: 9;\n' +
'        background-color: deepskyblue;\n' +
'        border: 1px solid #d3d3d3;\n' +
'        text-align: center;\n' +
'        -webkit-user-select: none;\n' +
'        -webkit-touch-callout: none;\n' +
'        -moz-user-select: none;\n' +
'        -ms-user-select: none;\n' +
'        user-select: none;\n' +
'        width: 750px;\n' +
'        font-size: 25px;\n' +
'        top: 100px;\n' +
'        right: 60px\n' +
'    }\n' +
'\n' +
'    #headerMenu {\n' +
'        padding: 10px;\n' +
'        cursor: move;\n' +
'        z-index: 10;\n' +
'        background-color: dodgerblue;\n' +
'        color: black;\n' +
'    }\n' +
'\n' +
'    #modules {\n' +
'        display: flex;\n' +
'    }\n' +
'\n' +
'    #modules > * {\n' +
'        width: 80%;\n' +
'        background-color: lightgray;\n' +
'        color: black;\n' +
'        margin-bottom: 2px;\n' +
'        margin-right: 2px ;\n' +
'    }\n' +
'\n' +
'    #sections {\n' +
'        width: 20%;\n' +
'        margin-bottom: 2px;\n' +
'        margin-left: 2px;\n' +
'        margin-right: 0;\n' +
'        border-right: dodgerblue solid 1px;\n' +
'    }\n' +
'\n' +
'    #sections > * {\n' +
'        border-bottom: dodgerblue solid 1px;\n' +
'        padding-top: 2px;\n' +
'        padding-bottom: 2px;\n' +
'    }\n' +
'\n' +
'    #sections:hover {\n' +
'        cursor: pointer;\n' +
'    }\n' +
'\n' +
'    #settings {\n' +
'        overflow-y: scroll;\n' +
'        text-align: left;\n' +
'        padding-left: 15px;\n' +
'    }\n' +
'\n' +
'</style>\n' +
'\n' +
'<!-- Draggable DIV -->\n' +
'<div id="menu" oncontextmenu="return false">\n' +
'    <!-- Include a header DIV with the same name as the draggable DIV, followed by "header" -->\n' +
'    <div id="headerMenu">Console</div>\n' +
'    <div id="modules">\n' +
'        <div id="sections">\n' +
'            <div onclick="display(\'combat\')">Self</div>\n' +
'            <div onclick="display(\'render\')">Bot</div>\n' +
'            <div onclick="display(\'move\')">Lobby</div>\n' +
'            <div onclick="display(\'misc\')" style="border-bottom: none">AI</div>\n' +
'        </div>\n' +
'\n' +
'        <div id="settings">\n' +
'            <!-- self -->\n' +
'            <div id="combat">\n' +
'                <label><input type="checkbox" id="randomTroops" onclick="window.randomTroops = this.checked"> Random troops</label>\n' +
'            </div>\n' +
'\n' +
'            <!-- render -->\n' +
'            <div id="render" style="display: none">\n' +
'            </div>\n' +
'\n' +
'            <!-- lobby -->\n' +
'            <div id="move" style="display: none">\n' +
'               <label><input type="checkbox" onclick="window.freezeAI = this.checked"> Freeze AI</label>\n' +
'            </div>\n' +
'\n' +
'            <!-- AI -->\n' +
'            <div id="misc" style="display: none">\n' +
'            </div>\n' +
'        </div>\n' +
'    </div>\n' +
'</div>\n' +
'\n' +
'\n' +
'<script>\n' +
'    window.randomTroops = false;\n' +
'    window.freezeAI = false;\n' +
'    // Make the DIV element draggable:\n' +
'    dragElementModules(document.getElementById("menu"));\n' +
'\n' +
'    function dragElementModules(elmnt) {\n' +
'\n' +
'        function dragModules(e) {\n' +
'            e = e || window.event;\n' +
'            e.preventDefault();\n' +
'            // calculate the new cursor position:\n' +
'            pos1 = pos3 - e.clientX;\n' +
'            pos2 = pos4 - e.clientY;\n' +
'            pos3 = e.clientX;\n' +
'            pos4 = e.clientY;\n' +
'            // set the element\'s new position:\n' +
'            elmnt.style.top = (elmnt.offsetTop - pos2) + "px";\n' +
'            elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";\n' +
'        }\n' +
'\n' +
'        function closeModules() {\n' +
'            // stop moving when mouse button is released:\n' +
'            document.onmouseup = null;\n' +
'            document.onmousemove = null;\n' +
'        }\n' +
'\n' +
'        function modulesDown(e) {\n' +
'            e = e || window.event;\n' +
'            e.preventDefault();\n' +
'            if (e.button === 2) {\n' +
'                document.getElementById("modules").style.display = isActive ? "none" : "flex";\n' +
'                isActive = !isActive;\n' +
'            } else {\n' +
'                // get the mouse cursor position at startup:\n' +
'                pos3 = e.clientX;\n' +
'                pos4 = e.clientY;\n' +
'                document.onmouseup = closeModules;\n' +
'                // call a function whenever the cursor moves:\n' +
'                document.onmousemove = dragModules;\n' +
'            }\n' +
'        }\n' +
'\n' +
'\n' +
'        var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;\n' +
'        var isActive = true;\n' +
'        document.getElementById("headerMenu").onmousedown = modulesDown;\n' +
'    }\n' +
'\n' +
'    const everyId = ["combat", "render", "move", "misc"];\n' +
'\n' +
'    function display(name) {\n' +
'        everyId.forEach(id => {\n' +
'            document.getElementById(id).style.display = "none";\n' +
'        })\n' +
'        document.getElementById(name).style.display = "initial";\n' +
'    }\n' +
'</script>';
}
})();