Tech

Для борьбы с техническими шоколадками

Pada tanggal 17 Maret 2024. Lihat %(latest_version_link).

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

Penulis
Sergey Medvedv
Nilai
0 0 0
Versi
1.1.1
Dibuat
17 Maret 2024
Diperbarui
17 Maret 2024
Size
20,7 KB
Lisensi
MIT
Berlaku untuk

// ==UserScript==
// @name Tech
// @namespace http://wh10919.web1.maze-host.ru/index.php
// @version 1.1.1
// @description Для борьбы с техническими шоколадками
// @author tech10
// @match http://wh10919.web1.maze-host.ru/index.php*
// @include http://wh10919.web1.maze-host.ru/index.php
// @grant none
// @license MIT
// @collaborator Basis of Antonio Carrizo and consultant Rosenfeld
// @icon https://icons.iconarchive.com/icons/thesquid.ink/free-flat-sample/128/support-icon.png
// @copyright 2024, MIDDLE RP
// ==/UserScript==
(function () {
'use strict';
const UNACCEPT_PREFIX = 4; // Prefix that will be set when thread closes
const ACCEPT_PREFIX = 6; // Prefix that will be set when thread solved
const PIN_PREFIX = 2; // Prefix that will be set when thread pins
const COMMAND_PREFIX = 10; // Prefix that will be set when thread send to project team
const WATCHED_PREFIX = 9;
const CLOSE_PREFIX = 7;
const buttons = [
{
title: 'Приветствие',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] @{{ user.name }}[/B]![/CENTER]

' +
'[CENTER][/CENTER]'
},
{
title: 'Правила раздела',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER]Пожалуйста, убедительная просьба, ознакомиться с назначением данного раздела в котором Вы создали тему, так как Ваш запрос никоим образом не относится к технической проблеме.[/CENTER]

" +
'[CENTER] [Color-red]Отказано, закрыто.[/CENTER]',

status: false,
},
{
title: 'Сервер не отвечает',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER]Если у Вас встречаются такие проблемы, как «Сервер не отвечает», не отображаются сервера в лаунчере, не удаётся выполнить вход на сайт/форум, попробуйте совершить следующие действия:

" +
"[LEFT]• Сменить IP-адрес любыми средствами;
" +
"[LEFT]• Переключиться на Wi-Fi/мобильный интернет или на любую доступную сеть;
"+
"[LEFT]• Использование VPN;
"+
"[LEFT]• Перезагрузка роутера.

" +

"[CENTER]Если методы выше не помогли, то переходим к следующим шагам:

" +

'[LEFT]1. Устанавливаем приложение «1.1.1.1: Faster & Safer Internet» Ссылка: https://clck.ru/ZP6Av и переходим в него.
'+
'[LEFT]2. Соглашаемся со всей политикой приложения.
'+
'[LEFT]3. Нажимаем на ползунок и ждем, когда текст изменится на «Подключено».
'+
'[LEFT]4. Проверяем: Отображаются ли серверы? Удается ли выполнить вход в игру? Работают ли другие источники (сайт, форум)?

' +

"[CENTER]📹 Включение продемонстрировано на видео: https://youtu.be/Wft0j69b9dk

" +
'[CENTER] [color=#00FF00]Рассмотрено.[/CENTER]',
},
{
title: 'Форма темы',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER]Пожалуйста, заполните форму, создав новую тему:
[CODE]01. Ваш игровой никнейм:
02. Сервер, на котором Вы играете:
03. Суть Вашей возникшей проблемы (описать максимально подробно и раскрыто):
04. Любые скриншоты, которые могут помочь в решении проблемы (если таковые имеются):
05. Дата и время произошедшей технической проблемы (постарайтесь указать максимально точно):[/CODE]

" +
'[CENTER] [color=red]Отказано, закрыто.[/CENTER]',
},
{
title: 'Восстановление аккаунта',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER]Если Вы обезопасили Ваш аккаунт и [U]привязали его к странице во ВКонтакте[/U], то сбросить пароль или пин-код Вы всегда сможете обратившись в официальное сообщество проекта - https://vk.com/blackrussia.online. Напишите «Начать» в личные сообщения группы, затем выберите нужные Вам функции.

" +
"[CENTER]Если Вы обезопасили Ваш аккаунт и [U]привязали его к почте[/U], то сбросить пароль или пин-код Вы всегда сможете при вводе пароля на сервере. Выберите кнопку «восст», затем выберите нужные Вам функции.

" +
"[CENTER]Если Вы [U]не обезопасили свой аккаунт - его невозможно вернуть[/U]. Игрок самостоятельно несет отвественность за безопаность своего аккаунта. Аккаунт будет заблокирован навсегда.

" +
'[CENTER]К сожалению, иногда решение подобных вопросов требует много времени. Надеемся, что Вы сможете восстановить доступ к аккаунту! [color=#00FF00] Рассмотрено.[/CENTER]',
},
{
title: 'Слетел аккаунт',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER]Аккаунт не может пропасть или аннулироваться просто так. Даже если Вы меняете ник, используете кнопки «починить игру» или «сброс настроек» - Ваш аккаунт не удаляется. Система работает иначе.

" +
"[CENTER]Проверьте ввод своих данных: пароль, никнейм и сервер. Зачастую игроки просто забывают ввести актуальные данные и считают, что их аккаунт был удален. Будьте внимательны! Рассмотрено.

" +
'[CENTER]Как ввести никнейм (на случай, если сменили в игре, но не поменяли в клиенте): https://youtu.be/c8rhVwkoFaU[/CENTER]'
},
{
title: 'Проблема будет исправлена',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER]Данная недоработка будет проверена и исправлена. Спасибо, ценим Ваш вклад.

" +
'[CENTER] [color=#00FF00]Рассмотрено.[/CENTER]',
},
{
title: 'Известно о проблеме',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER]Команде проекта уже известно о данной проблеме, она обязательно будет рассмотрена и исправлена. Спасибо за Ваше обращение!

" +
'[CENTER] [color=red]Закрыто.[/CENTER]',
},
{
title: 'Передано на тестирование',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER]Благодарим за уведомление о недоработке. Ваша тема находится в процессе тестирования.

" +
'[CENTER] [color=orange]На рассмотрении.[/CENTER]',
},
{
title: 'Команде проекта',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER]Ваша тема закреплена и находится на рассмотрении. Пожалуйста, ожидайте выноса вердикта команды проекта.

" +
'[CENTER]Создавать новые темы с данной проблемой — не нужно, ожидайте ответа в данной теме. Если проблема решится - Вы всегда можете уведомить нас о ее решении.[/CENTER]',
},
{
title: 'Логировщику',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER]Ваша тема закреплена и находится на проверке и выявление недоработки. Пожалуйста, ожидайте ответа в данной теме.

" +
'[CENTER]Создавать новые темы с данной проблемой — не нужно.[/CENTER]',
},
{
title: 'Компенсация',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER]Ваше игровое имущество/денежные средства будут восстановлены в течение месяца. Убедительная просьба, не менять никнейм до момента восстановления.

" +
'[CENTER]Для активации восстановления используйте команды: /roulette, /recovery.[/CENTER]

' +
'[CENTER] [color=#00FF00]Решено.[/CENTER]',
},
{
title: 'Нет доказательств',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER]Без доказательств (в частности скриншоты или видео) – решить проблему не получится. Если доказательства найдутся - создайте новую тему, приложив доказательства с фото-хостинга yapx.ru или imgur.com

" +
'[CENTER] [color=red]Отказано, закрыто.[/CENTER]',
},
{
title: 'Правила восстановления',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER]Пожалуйста, убедительная просьба, ознакомьтесь с правилами восстановлений: http://wh10919.web1.maze-host.ru/index.php?threads/Правила-восстановления-игровых-ценностей.100/unread. Вы создали тему, которая никоим образом не относится к технической проблеме. Имущество не будет восстановлено.[/CENTER]

" +
'[CENTER] [color=red]Отказано, закрыто.[/CENTER]',
},
{
title: 'Хочу стать администратором',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER]Команда технических специалистов не решает назначение на какую-либо должность, которая присутствует на проекте. Для этого существуют заявления в главном разделе Вашего игрового сервера, где Вы можете ознакомиться с открытыми должностями и формами подач. Приятной игры и желаем удачи в карьерной лестнице!

" +
'[CENTER] [color=red]Закрыто.[/CENTER]',
},
{
title: 'Жалобы на технического специалиста',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
'[CENTER]Вы получили наказание от технического специалиста Вашего сервера. Вам следует обратиться в раздел «Жалобы на технических специалистов» — в случае, если Вы не согласны с наказанием.

' +
'[CENTER]Ссылка на раздел, где можно оформить жалобу на технического специалиста: http://wh10919.web1.maze-host.ru/index.php?forums/Жалобы-на-Технических-Специалистов.14/' +
'[CENTER][color=red]Закрыто.[/CENTER]'
},
{
title: 'ППВ+',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER]Аккаунт будет заблокирован по причине Продан/Передан/Взломан(П/П/В)[/CENTER]

" +
'[CENTER][COLOR=chartreuse] [color=#00FF00]Одобрено![/COLOR] Закрыто.[/CENTER]',
},
{
title: 'ППВ-',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER] Продажи/Передачи/Взлома не найдено(П/П/В)[/CENTER]

" +
'[CENTER][COLOR=red ]Отказано![COLOR=red] Закрыто.[/CENTER]',
},
{
title: 'Сборка+',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER] Игрок будет наказан по пункту:[/CENTER]

" +
"[CENTER]2.22. Запрещено хранить / использовать / распространять стороннее программное обеспечение или любые другие средства, позволяющие получить преимущество над другими игроками | Ban 15 - 30 дней / PermBan[/CENTER]

" +
"[CENTER]Примечание: запрещено внесение любых изменений в оригинальные файлы игры.[/CENTER]

" +
"[CENTER]Исключение: разрешено изменение шрифта, его размера и длины чата (кол-во строк).[/CENTER]

" +
'[CENTER][COLOR=#00FF00]Одобрено![COLOR=red] Закрыто.[/CENTER]',
},
{
title: 'Сборки -',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER]Сборки не найдено не найдено[/CENTER]

" +
'[CENTER][COLOR=red ]Отказано![/COLOR] Закрыто.[/CENTER]',
},
{
title: 'ППИВ+',
content:
'[CENTER]{{ greeting }}, уважаемый(-ая)[B] {{ user.name }}[/B]![/CENTER]

' +
"[CENTER] Игрок будет наказан по пункту:[/CENTER]

" +
"[CENTER]2.28. Запрещена покупка/продажа внутриигровой валюты в любых ее проявлениях за реальные деньги | PermBan с обнулением аккаунта + ЧС проекта[/CENTER]

" +
"[CENTER]Примечание: любые попытки покупки/продажи, попытки поинтересоваться о ней у другого игрока и прочее - наказуемы.[/CENTER]

" +
"[CENTER]Исключение: официальная покупка через сайт.[/CENTER]

" +
'[CENTER][COLOR=#00FF00]Одобрено![COLOR=red] Закрыто.[/CENTER]',
prefix: ACCEPT_PREFIX,
status:false,
},
];

$(document).ready(() => {
// Загрузка скрипта для обработки шаблонов
$('body').append('');

// Добавление кнопок при загрузке страницы
addButton('На рассмотрении', 'pin');
addButton('КП', 'teamProject');
addButton('Отказано', 'unaccept');
addButton('Рассмотрено', 'watched');
addButton('Решено', 'accepted');
addButton('Закрыто', 'closed');
addButton('Ответы', 'selectAnswer');


// Поиск информации о теме
const threadData = getThreadData();

$('button#unaccept').click(() => editThreadData(UNACCEPT_PREFIX, false));
$('button#pin').click(() => editThreadData(PIN_PREFIX, true));
$('button#accepted').click(() => editThreadData(ACCEPT_PREFIX, false));
$('button#teamProject').click(() => editThreadData(COMMAND_PREFIX, true));
$('button#watched').click(() => editThreadData(WATCHED_PREFIX, false));
$('button#closed').click(() => editThreadData(CLOSE_PREFIX, false));

$(`button#selectAnswer`).click(() => {
XF.alert(buttonsMarkup(buttons), null, 'Добавьте ответ:');
buttons.forEach((btn, id) => {
$(`button#answers-${id}`).click(() => pasteContent(id, threadData));
});
});
});


function addButton(name, id) {
$('.button--icon--reply').before(
`${name}`,
);
}

function buttonsMarkup(buttons) {
return `

${buttons
.map(
(btn, i) =>
`${btn.title}`,
)
.join('')}

`;
}

function pasteContent(id, data = {}) {
const template = Handlebars.compile(buttons[id].content);
if ($('.fr-element.fr-view p').text() === '') $('.fr-element.fr-view p').empty();

$('span.fr-placeholder').empty();
$('div.fr-element.fr-view p').append(template(data));
$('a.overlay-titleCloser').trigger('click');
}

// Приветствие и время суток
function getThreadData() {
const authorID = $('a.username')[0].attributes['data-user-id'].nodeValue;
const authorName = $('a.username').html();
const hours = new Date().getHours();
return {
user: {
id: authorID,
name: authorName,
mention: `[USER=${authorID}]${authorName}[/USER]`,
},
greeting: () =>
4 < hours && hours <= 11
? 'Доброе утро'
: 11 < hours && hours <= 17
? 'Добрый день'
: 17 < hours && hours <= 23
? 'Добрый вечер'
: 'Доброй ночи',
};
}

function editThreadData(prefix, pin = false) {
// Получаем заголовок темы, так как он необходим при запросе
const threadTitle = $('.p-title-value')[0].lastChild.textContent;

if(pin == false){
fetch(`${document.URL}edit`, {
method: 'POST',
body: getFormData({
prefix_id: prefix,
title: threadTitle,
_xfToken: XF.config.csrf,
_xfRequestUri: document.URL.split(XF.config.url.fullBase)[1],
_xfWithData: 1,
_xfResponseType: 'json',
}),
}).then(() => location.reload());
}
if(pin == true){
fetch(`${document.URL}edit`, {
method: 'POST',
body: getFormData({
prefix_id: prefix,
title: threadTitle,
discussion_open: 1,
sticky: 1,
_xfToken: XF.config.csrf,
_xfRequestUri: document.URL.split(XF.config.url.fullBase)[1],
_xfWithData: 1,
_xfResponseType: 'json',
}),
}).then(() => location.reload());
}
if(prefix == UNACCEPT_PREFIX || prefix == ACCEPT_PREFIX || prefix == CLOSE_PREFIX || prefix == WATCHED_PREFIX) {
moveThread(prefix, 230);
}
}

function moveThread(prefix, type) {
// Перемещение темы в раздел окончательных ответов
const threadTitle = $('.p-title-value')[0].lastChild.textContent;

fetch(`${document.URL}move`, {
method: 'POST',
body: getFormData({
prefix_id: prefix,
title: threadTitle,
target_node_id: type,
redirect_type: 'none',
notify_watchers: 1,
starter_alert: 1,
starter_alert_reason: "",
_xfToken: XF.config.csrf,
_xfRequestUri: document.URL.split(XF.config.url.fullBase)[1],
_xfWithData: 1,
_xfResponseType: 'json',
}),
}).then(() => location.reload());
}

function getFormData(data) {
const formData = new FormData();
Object.entries(data).forEach(i => formData.append(i[0], i[1]));
return formData;
}
})();