// ==UserScript== // @name Cellcraft.io -EXP, Level and coins top left // @namespace http://tampermonkey.net/ // @version 0.2 // @description smd // @author Attack // @match https://cellcraft.io/ // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant unsafeWindow // @run-at document-start // @license MIT // @downloadURL https://update.greasyfork.icu/scripts/495741/Cellcraftio%20-EXP%2C%20Level%20and%20coins%20top%20left.user.js // @updateURL https://update.greasyfork.icu/scripts/495741/Cellcraftio%20-EXP%2C%20Level%20and%20coins%20top%20left.meta.js // ==/UserScript== (() => { const divs = {}, push = (...args) => { args.forEach(item => { divs[item] = document.createElement("div"); }); }, newStyle = text => { const style = document.createElement("style"); style.innerText = text; document.head.appendChild(style); }; String.prototype.toNumber = function() { return+`${this}`; }; let exp; push( 'menu', 'level', 'progressXP', 'expBar', 'progressCoins', 'fix' ); try { document.querySelector('.main-menu-shortcut').remove(); } catch { throw new Error("That element doesn't exist! or has already been removed."); }; divs.menu.classList.add( 'main-menu-shortcut' ); divs.level.id = '\x6ce\x76e\x6c2'; divs.level.innerText = '\x30'; divs.level.onclick = function() { try { window.closeAdvert(); } catch { try { document.querySelector(".wrapper").style.display = 'block'; } catch {}; } }; divs.fix.classList.add('\x6eo\x65V\x71y'); divs.expBar.style = `display: none; flex-direction: column; padding: 10px; position: absolute; top: 125px; left: 10px; background-color: rgb(0 0 0 / 85%); border-radius: .5rem; color: #ddd; font-size: 15px;`; divs.progressXP.innerHTML = '
'; divs.progressXP.classList.add( 'progressXP' ); divs.progressXP.onclick = function() { divs.expBar.style.display != 'flex' ? divs.expBar.style.display = 'flex' : divs.expBar.style.display = 'none'; }; divs.progressCoins.innerText = '\x30'; divs.progressCoins.classList.add( 'progress-bar-coins', 'progressCoins' ); try { document.querySelector('.inner-overlays').appendChild(divs.menu); } catch { document.body.appendChild(divs.menu); }; divs.menu.append(divs.level, divs.fix); divs.fix.append(divs.progressXP, divs.progressCoins); document.body.appendChild(divs.expBar); const toValue = text => { return `${text}`.replace(/\B(?=(\d{3})+(?!\d))/g, ","); }, updateExpBar = () => { const level = document.getElementById("level"), progress = document.querySelector(".progress-bar"); let levelExp = parseInt(level.innerText) * 1e3; exp = ~~((levelExp / 100) * parseFloat(progress.style.width)); let x = `