您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Поменять никнейм и куклу персонажа в бою и в личной информации. Ники персов в коде
// ==UserScript== // @name Deface ur enemies // @namespace http://tampermonkey.net/ // @version 0.5 // @description Поменять никнейм и куклу персонажа в бою и в личной информации. Ники персов в коде // @author Something begins // @license none // @match https://www.heroeswm.ru/* // @match https://my.lordswm.com/* // @match https://www.lordswm.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=lordswm.com // @grant unsafeWindow // ==/UserScript== const nbsp = '\u00A0'; const creatureImageSubstitute = "https://cdn.discordapp.com/emojis/1061075162717487145.webp?size=128&quality=lossless"; const achievementImageSubstitute = "https://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Dildo.png/800px-Dildo.png"; const names = { "Something begins": { name: "повелитель клитора", imgLink: 'https://i.mycdn.me/videoPreview?id=227376106025&type=32&idx=3&tkn=PvHXgc_MjLK8ZXllPZlVPC8AwKQ&fn=external_7', BM: "нет" }, "сюда оригинальный ник": { name: "сюда ник на который поменять", imgLink: 'сюда ссылку на пикчу, без пикчи оставлять эту переменную пустой, вот так: imgLink: ""', BM: "тут `да` или `нет`, чтобы заменить ачивки и существа в личной информации" }, "сюда оригинальный ник": { name: "сюда ник на который поменять", imgLink: 'сюда ссылку на пикчу, без пикчи оставлять эту переменную пустой, вот так: imgLink: ""', BM: "тут `да` или `нет`, чтобы заменить ачивки и существа в личной информации" }, "сюда оригинальный ник": { name: "сюда ник на который поменять", imgLink: 'сюда ссылку на пикчу, без пикчи оставлять эту переменную пустой, вот так: imgLink: ""', BM: "тут `да` или `нет`, чтобы заменить ачивки и существа в личной информации" }, "сюда оригинальный ник": { name: "сюда ник на который поменять", imgLink: 'сюда ссылку на пикчу, без пикчи оставлять эту переменную пустой, вот так: imgLink: ""', BM: "тут `да` или `нет`, чтобы заменить ачивки и существа в личной информации" }, "сюда оригинальный ник": { name: "сюда ник на который поменять", imgLink: 'сюда ссылку на пикчу, без пикчи оставлять эту переменную пустой, вот так: imgLink: ""', BM: "тут `да` или `нет`, чтобы заменить ачивки и существа в личной информации" }, "сюда оригинальный ник": { name: "сюда ник на который поменять", imgLink: 'сюда ссылку на пикчу, без пикчи оставлять эту переменную пустой, вот так: imgLink: ""', BM: "тут `да` или `нет`, чтобы заменить ачивки и существа в личной информации" }, "сюда оригинальный ник": { name: "сюда ник на который поменять", imgLink: 'сюда ссылку на пикчу, без пикчи оставлять эту переменную пустой, вот так: imgLink: ""', BM: "тут `да` или `нет`, чтобы заменить ачивки и существа в личной информации" }, "сюда оригинальный ник": { name: "сюда ник на который поменять", imgLink: 'сюда ссылку на пикчу, без пикчи оставлять эту переменную пустой, вот так: imgLink: ""', BM: "тут `да` или `нет`, чтобы заменить ачивки и существа в личной информации" }, "сюда оригинальный ник": { name: "сюда ник на который поменять", imgLink: 'сюда ссылку на пикчу, без пикчи оставлять эту переменную пустой, вот так: imgLink: ""', BM: "тут `да` или `нет`, чтобы заменить ачивки и существа в личной информации" }, "сюда оригинальный ник": { name: "сюда ник на который поменять", imgLink: 'сюда ссылку на пикчу, без пикчи оставлять эту переменную пустой, вот так: imgLink: ""', BM: "тут `да` или `нет`, чтобы заменить ачивки и существа в личной информации" }, "сюда оригинальный ник": { name: "сюда ник на который поменять", imgLink: 'сюда ссылку на пикчу, без пикчи оставлять эту переменную пустой, вот так: imgLink: ""', BM: "тут `да` или `нет`, чтобы заменить ачивки и существа в личной информации" }, "сюда оригинальный ник": { name: "сюда ник на который поменять", imgLink: 'сюда ссылку на пикчу, без пикчи оставлять эту переменную пустой, вот так: imgLink: ""', BM: "тут `да` или `нет`, чтобы заменить ачивки и существа в личной информации" }, "сюда оригинальный ник": { name: "сюда ник на который поменять", imgLink: 'сюда ссылку на пикчу, без пикчи оставлять эту переменную пустой, вот так: imgLink: ""', BM: "тут `да` или `нет`, чтобы заменить ачивки и существа в личной информации" }, } for (const key of Object.keys(names)){ names[key.replace(/ /g, nbsp)] = names[key]; } function getImgLink(nickname) { if (Object.keys(names).includes(nickname)) return names[nickname].imgLink; for (const dict of Object.values(names)) { if (dict.name === nickname) return dict.imgLink; } return false; } function getRandomChoice(arr) { var randomIndex = Math.floor(Math.random() * arr.length); return arr[randomIndex]; } let replaceName = (string, name) => { if (!string) return ""; const pattern = /\*(.*)\*/; const botName = string.match(pattern); if (!botName) return string; else { string = string.replace(botName[1], name); return string; } } const namesDict = {}; function changeNames() { for (const cre of Object.values(stage.pole.obj)) { if (cre.hero !== 1 || !Object.keys(names).includes(cre.nametxt)) continue; console.log(cre.nametxt); inf[cre.obj_index] = inf[cre.obj_index].replace(cre.nametxt, names[cre.nametxt].name); cre.nametxt = cre.nametxt.replace(cre.nametxt, names[cre.nametxt].name); if (cre.command) cre.command = cre.command.replace(lordName, switchToName); if (cre.command_new) cre.command_new = cre.command_new.replace(lordName, switchToName); } } function stringIncludesArrEle(string, arr) { for (const ele of arr) { if (string.includes(ele)) return true; } return false; } function handlePLInfo() { const allB = document.querySelectorAll("b"); const allH1 = document.querySelectorAll("h1"); const allFont = document.querySelectorAll("font"); const combinedArray = [...allB, ...allH1, ...allFont]; const nickEles = combinedArray.filter(ele => { return stringIncludesArrEle(ele.textContent.trim(), Object.keys(names)) }); const nickKeys = combinedArray.filter(ele => { return Object.keys(names).includes(ele.textContent.trim()) }); let nickKey; if (nickKeys.length === 0) return; else nickKey = nickKeys[0].textContent; console.log(nickKey); console.log(nickEles); // const nickKey = nickEles[0].textContent.trim(); const allImgs = document.querySelectorAll("img"); const kuklaImgs = Array.from(allImgs).filter(img => { return img.src.includes("kukla_png") }); for (const img of kuklaImgs) { img.src = names[nickKey].imgLink; } for (const ele of nickEles) { console.log("before", ele.textContent, ele); ele.textContent = ele.textContent.replace(nickKey, names[nickKey].name); console.log(ele.textContent, ele); } // kuklaEle.src = names[nickKey].imgLink; if (names[nickKey].BM === "да") { const allTables = document.querySelectorAll("table"); const creTables = Array.from(allTables).filter(table => { return table.querySelector("tbody > tr > td > b") && table.querySelector("tbody > tr > td > b").textContent.includes("Гильдии Лидеров") }); const achievementsTables = Array.from(allTables).filter(table => { return table.querySelector("tbody > tr > td > b") && table.querySelector("tbody > tr > td > b").textContent.includes("Достижения") }); if (creTables.length !== 0) { console.log(creTables[0]) const allCre = creTables[0].querySelectorAll(".cre_mon_image1"); for (const img of allCre) { img.src = creatureImageSubstitute; } } if (achievementsTables.length !== 0) { console.log(achievementsTables[0]) for (const img of achievementsTables[0].querySelectorAll(".cre_mon_image2")) { img.src = achievementImageSubstitute; } } } } function monitorFonts() { for (const font of document.querySelectorAll("font")) { // font.textContent if (Object.keys(names).includes(font.textContent)) { font.textContent = names[font.textContent].name; } } for (const div of document.querySelectorAll(".window_relative")) { if (div.style.display === "none") continue; //console.log(div); let name = div.querySelector(".info_head_name > a"); //console.log(name); if (!name) continue; name = name.textContent; const imgLink = getImgLink(name); if (!imgLink) continue; //console.log(imgLink); const imgElement = div.querySelector("#inv_kukla"); //console.log(imgElement); if (!imgElement) continue; if (imgElement.src === imgLink || imgLink === "") continue; imgElement.src = imgLink; } } if (location.pathname.startsWith("/war")) { setInterval(monitorFonts, 300); let settings_interval = setInterval(() => { if (Object.keys(unsafeWindow.stage.pole.obj).length !== 0) { clearInterval(settings_interval); changeNames(); } }, 300) } else if (location.pathname.startsWith("/pl_")) { handlePLInfo(); }