您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Автоответы для RP Биографий, RP Ситуаций и Неофициальных RP организаций на форуме Black Russia
// ==UserScript== // @name Форум Кураторов CHEREPOVETS by E.Sailauov // @namespace https://forum.blackrussia.online/ // @version 1.0.0 // @description Автоответы для RP Биографий, RP Ситуаций и Неофициальных RP организаций на форуме Black Russia // @author E.Sailauov // @match https://forum.blackrussia.online/threads/* // @grant none // ==/UserScript== (function() { 'use strict'; const UNACCEPT_PREFIX = 4; // отказано const ACCEPT_PREFIX = 8; // одобрено const REVIEW_PREFIX = 9; // на рассмотрение const CLOSE_PREFIX = 7; // закрыто const photoURL = "https://i.postimg.cc/2SXx0xNt/RLwzo.png"; // одно фото для всех ответов // Приветствие и вставка ника function getGreeting(nick) { return `[CENTER][url=https://postimages.org/][img]${photoURL}[/img][/url][/CENTER] [CENTER][COLOR=rgb(0,127,255)][FONT=times new roman][SIZE=4][I][ICODE]Здравствуйте, уважаемый ${nick}[/ICODE][/I][/SIZE][/FONT][/COLOR][/CENTER]<br><br>`; } // Мотивационные цитаты для всех ответов const quotes = [ "«Терпение и упорство всегда вознаграждаются — играйте с умом и честностью!»", "«Каждое RP событие — это шанс показать свой талант и креативность в Black Russia»", "«Стремление к совершенству в RP биографии делает игру ярче и интереснее»", "«Помните: уважение к правилам форума — путь к признанию и успеху»" ]; function getRandomQuote() { return `[CENTER][I][COLOR=rgb(0,127,255)][FONT=times new roman][SIZE=3]${quotes[Math.floor(Math.random()*quotes.length)]}[/SIZE][/FONT][/COLOR][/I][/CENTER]`; } // Шаблоны ответов const templates = { "Одобрено": { prefix: ACCEPT_PREFIX, color: "#00cc44", content: "[I][CENTER][COLOR=rgb(152,251,152)][FONT=times new roman][SIZE=4]Ваша RolePlay заявка одобрена[/SIZE][/FONT][/COLOR][/CENTER][/I]" }, "Отказано": { prefix: UNACCEPT_PREFIX, color: "#ff3300", content: "[I][CENTER][COLOR=rgb(255,0,0)][FONT=times new roman][SIZE=4]Ваша заявка отклонена. Обратите внимание на примечания и исправьте ошибки[/SIZE][/FONT][/COLOR][/CENTER][/I]" }, "На рассмотрение": { prefix: REVIEW_PREFIX, color: "#ff9900", content: "[I][CENTER][COLOR=rgb(255,165,0)][FONT=times new roman][SIZE=4]Ваша заявка находится на рассмотрении[/SIZE][/FONT][/COLOR][/CENTER][/I]" }, "Закрыто": { prefix: CLOSE_PREFIX, color: "#999999", content: "[I][CENTER][COLOR=rgb(128,128,128)][FONT=times new roman][SIZE=4]Тема закрыта[/SIZE][/FONT][/COLOR][/CENTER][/I]" } }; // Отказы для RP Биографии const rpBioDenies = [ "От 3-го лица: RP биография должна быть написана от первого лица", "Нейросеть: RP биография должна быть написана игроком вручную", "Не по теме/флуд: Тема не соответствует разделу, нельзя писать не по теме", "Мало информации: Добавьте больше подробностей о персонаже", "Суперспособности: Персонаж не должен обладать сверхспособностями", "Скопирована: RP биография не должна копировать других игроков", "NonRP NickName: Используется некорректный ник", "Дата рождения не совпадает с возрастом", "Семья не полностью", "Грамматические/пунктуационные ошибки" ]; // Отказы для RP Ситуаций const rpSituationsDenies = [ "Не по правилам: RP ситуация нарушает правила форума", "Сверхъестественное: RP ситуация не должна включать сверхъестественные события", "Нет доказательств: Требуются скриншоты/видео", "Мало информации: RP ситуация описана слишком кратко", "Копирование: RP ситуация скопирована у другого игрока" ]; // Отказы для Неофициальных RP организаций const rpOrgDenies = [ "Не по правилам: Организация нарушает правила форума", "Мало участников: Минимум 3 человека", "Мало информации: Описание организации слишком краткое", "Копирование: Организация скопирована с другой", "Гос. фракция: Нельзя создавать организации в форме государственных фракций", "Нет фото/видео: Требуется медиа материалы" ]; // Создаем контейнер кнопок const container = document.createElement("div"); container.style.position = "fixed"; container.style.top = "100px"; container.style.right = "20px"; container.style.width = "200px"; container.style.zIndex = "9999"; container.style.backgroundColor = "#222"; container.style.padding = "10px"; container.style.borderRadius = "10px"; container.style.boxShadow = "0 0 10px rgba(0,0,0,0.5)"; document.body.appendChild(container); // Функция для вставки ответа function insertResponse(template, denies=[]) { const nick = prompt("Введите ник игрока:"); if(!nick) return; let content = getGreeting(nick) + template.content + "<br><br>"; if(denies.length > 0) { content += "<LIST>"; denies.forEach(d => { content += `[*][LEFT][FONT=book antiqua][COLOR=rgb(255,0,0)][SIZE=4]Примечание: [/SIZE][/COLOR][COLOR=rgb(0,127,255)][SIZE=4]${d}[/SIZE][/COLOR][/FONT][/LEFT]<br>`; }); content += "</LIST><br>"; } content += getRandomQuote(); // Вставка в текстовое поле ответа (предположим id="message") const textarea = document.querySelector("#message"); if(textarea) textarea.value = content; // Смена префикса темы (имитация) console.log(`Префикс темы изменен на: ${template.prefix}`); } // Создаем кнопки function createButton(title, color, func) { const btn = document.createElement("button"); btn.textContent = title; btn.style.width = "100%"; btn.style.marginBottom = "5px"; btn.style.backgroundColor = color; btn.style.color = "#fff"; btn.style.border = "none"; btn.style.padding = "5px"; btn.style.borderRadius = "5px"; btn.style.cursor = "pointer"; btn.onclick = func; container.appendChild(btn); } // Кнопки главного меню createButton("На рассмотрение", "#ff9900", () => insertResponse(templates["На рассмотрение"])); createButton("Отказано", "#ff3300", () => insertResponse(templates["Отказано"], rpBioDenies)); createButton("Одобрено", "#00cc44", () => insertResponse(templates["Одобрено"])); createButton("Закрыто", "#999999", () => insertResponse(templates["Закрыто"])); // Кнопка Ответы с подменю const answersBtn = document.createElement("button"); answersBtn.textContent = "Ответы ▼"; answersBtn.style.width = "100%"; answersBtn.style.marginBottom = "5px"; answersBtn.style.backgroundColor = "#3399ff"; answersBtn.style.color = "#fff"; answersBtn.style.border = "none"; answersBtn.style.padding = "5px"; answersBtn.style.borderRadius = "5px"; answersBtn.style.cursor = "pointer"; container.appendChild(answersBtn); const subMenu = document.createElement("div"); subMenu.style.display = "none"; subMenu.style.marginTop = "5px"; container.appendChild(subMenu); answersBtn.onclick = () => subMenu.style.display = subMenu.style.display === "none" ? "block" : "none"; createButton("———RP БИОГРАФИЯ———", "#ff6600", () => insertResponse(templates["Отказано"], rpBioDenies)); createButton("———RP СИТУАЦИИ———", "#ff6600", () => insertResponse(templates["Отказано"], rpSituationsDenies)); createButton("———Неофициальные RP организации———", "#ff6600", () => insertResponse(templates["Отказано"], rpOrgDenies)); })();