// ==UserScript==
// @name CatWar Script
// @version 0.1.99C
// @description Новый мод-скрипт для браузерной игры CatWar. Обычно разработчиков скрипта держат в подвале, чтобы они хоть что-то делали.
// @author Krivodushie & Psiii
// @copyright 2024 Дурное Сновидение (https://catwar.su/cat1293224) & Заря (https://catwar.su/cat590698)
// @license MIT; https://opensource.org/licenses/MIT
// @match *://catwar.su/*
// @grant GM_xmlhttpRequest
// @grant GM.xmlHttpRequest
// @grant GM_addStyle
// @require https://code.jquery.com/jquery-3.4.1.min.js
// @namespace https://greasyfork.org/users/1354132
// ==/UserScript==
const csDefaults = {
// Шаблоны
'textTemplates': true // Шаблоны в ЛС
,'toggleTextTemplates': false // Сворачивать ли шаблоны ЛС по умолчанию
,'replaceTemplateTheme': true // Заменять ли тему сообщения названием шаблона?
// ,'chatTextTemplates': true // Шаблоны в ЧАТЕ
// ,'toggleChatTextTemplates': true // Сворачивать ли шаблоны ЧАТА по умолчанию
// ,'bloglentTextTemplates': true // Шаблоны в БЛОГОЛЕНТЕ
// ,'toggleBloglentTextTemplates': true // Сворачивать ли шаблоны БЛОГОЛЕНТЫ по умолчанию
// Часики
,'inGameClock': false // Часы в игровой
,'isClockMoscow': true // Московсике ли часы?
,'isDateShow': true // Показывать ли дату?
,'movableClocks': false // Перетаскиваемые часы
// Приколы с ЛС
,'dontReadenLS': false // Непрочитанные ЛС для себя
,'timerForLS': false // Таймер до удаления ЛС
// Дефекты
,'brightGameField': false // Яркое поле игровой
,'customDefectDelay': false // Подробная настройка отображения дефектов в Игровой
,'cstmDfctShowColors': false // Показывать ли цветные клетки при дефектах?
,'cstmDfctShowRamki': false // Выделять клетки рамкой при дефектах?
,'cstmDfctShowNum': true // Показывать ли цифры и иконки при дефектах?
,'cstmDfctWounds': '#4646ff' // Цвет ран по дефолту
,'cstmDfctBruise': '#46ffef' // Цвет ушибов от падения
,'cstmDfctFractures': '#68ff46' // Цвет переломов от утопленя
,'cstmDfctPoison': '#ff4646' // Цвет отравления
,'cstmDfctCough': '#eeff46' // Цвет кашля
,'cstmDfctDirt': '#9446ff' // Цвет грязи
,'cstmDfctPodstilki': '#79553D' // Цвет подстилок
,'cstmDfctOpacity': '0.25' // Прозрачность отображения дефектов
,'cstmDfctShowHighDirt': false // Показывать ли 3-4 стадии грязи?
,'cstmDfctShowLowDirt': false // Показывать ли 1-2 стадии грязи?
,'cstmDfctShowDivers': false // Показывать ныряющих
,'cstmDfctShowPodstilki': false // Показывать podstilki
,'cstmDfctShow34WoundBetter': true // Показывать ли 3-4 стадии ран сильнее?
,'cstmDfctShowAllBetter': false // Показывать ли 3-4 стадии ВСЕГО сильнее?
// Предметы
,'customItemsDelay': false // Подробная настройка отображения предметов в Игровой
,'cstmItmHerbDelay': false // Травы
,'cstmItmHerbClr': '#2bff75' // Травы
,'cstmItmMossDelay': false // Мох
,'cstmItmMossClr': '#2bff75' // Мох
,'cstmItmWebDelay': false // Паутина
,'cstmItmWebClr': '#2bff75' // Паутина
,'cstmItmStickDelay': false // STICKS
,'cstmItmStickClr': '#2bff75' // STICKS
,'cstmItmDustDelay': false // Звёздная пыль
,'cstmItmDustClr': '#c096e2' // Звёздная пыль
,'cstmItmMusorDelay': false // MUSOR
,'cstmItmMusorClr': '#ff2b2b' // MUSOR
,'cstmItmOpacity': '0.25' // Прозрачность отображения ресурсов
// Иная суть
,'nightLagsWarning': true // Предупреждение о ночных лагах чтобы не лезли в воды и вообще аккуратнее были
,'darkCatTooltip': false // Тёмное окошко инфы о котах
,'boneCorrectTimer': false // Таймер ношения костоправов
,'toggleBoneTimer': false // Свёрнутый таймер
,'hideWoundWarning': true // Скрыть варн о ранах везде кроме Игровой
,'cwscriptDarkTheme': false
// Боережимовые прикольчики для самых маленьких
,'phoneFightPanel': false // Переместить кнопочки боережима для телефонщиков
,'friendlyCatWar': false // Удалить кнопки захода в опасные БР
,'deleteFPTitles': false // Убрать тайтлы у кнопок боережима
,'showButterflyBots': false // Показывать бота-бабочку для прокачки бу
// Библиотека костюмов
,'costumeLibrary': true // Библиотека костюмов
,'watermarkCostumes': true // Ватермарка на костюмах из библиотеки
// Недоделанное
// ,'hideInGameBlocks': false // Скрывать в игровой при загрузке блоки: НЕТУ
// ,'isHideHistory': false // Скрывать ли историю? НЕТУ
// ,'isHideRelatives': false // Скрывать ли РС? НЕТУ
// ,'isHideParameters': false // Скрывать ли параметры/навыки? НЕТУ
// ,'fieldHideButton': true // Кнопочка "Скрыть поле" в ПК-версии игры НЕТУ
// ,'scrollDownTime': false // Время при прокрутке страницы вниз для ПК-версии игры НЕТУ
// ,'rllyImportantButton': true // РЕАЛЬНО важная кнопка НЕТУ
// Палитра наших функций в игровой. Когда доделаем кастомизацию игровой нормально будет вообще имба
// ,'sscrlClr1': '#776c5f' // scrlClr1
// ,'sscrlClr2': '#463E33' // scrlClr2
// ,'shrClr': '#463E3330' // hrClr
// ,'stxtClr1': '#C8C0BE' // txtClr1
// ,'stxtClr2': '#181510' // txtClr2
// ,'stxtClr3': '#fff' // txtClr3
// ,'sbrdrClr1': '#BD7E5C' // brdrClr1
// ,'sbrdrClr2': '#ff0' // brdrClr2
// ,'sbrdrClr3': '#000' // brdrClr3
// ,'sbckgClr1': '#463E33' // bckgClr1
// ,'sbckgClr2': '#918474' // bckgClr2
// ,'sbckgClr3': '#333' // bckgClr3
// ,'sbckgClr4': '#463E3350' // bckgClr4
// ,'selectedTheme1': 'CWScript светлая'
// Палитра наших функций ВНЕ игровой
// ,'s1scrlClr1': '#776c5f' // scrlClr1
// ,'s1scrlClr2': '#463E33' // scrlClr2
// ,'s1hrClr': '#463E3330' // hrClr
// ,'s1txtClr1': '#C8C0BE' // txtClr1
// ,'s1txtClr2': '#181510' // txtClr2
// ,'s1txtClr3': '#fff' // txtClr3
// ,'s1brdrClr1': '#BD7E5C' // brdrClr1
// ,'s1brdrClr2': '#ff0' // brdrClr2
// ,'s1brdrClr3': '#000' // brdrClr3
// ,'s1bckgClr1': '#463E33' // bckgClr1
// ,'s1bckgClr2': '#918474' // bckgClr2
// ,'s1bckgClr3': '#333' // bckgClr3
// ,'s1bckgClr4': '#463E3350' // bckgClr4
// ,'selectedTheme2': 'CWScript светлая'
};
const globals = {}; //Настройки
for (var key in csDefaults) {
let settings = getSettings(key);
if (settings === null) {
globals[key] = csDefaults[key];
}
else {
if (Array.isArray(csDefaults[key])) {
globals[key] = JSON.parse(settings);
}
else if (typeof csDefaults[key] === 'number') {
globals[key] = parseFloat(settings);
}
else {
globals[key] = settings;
}
}
}
function getSettings(key) { //Получить настройку
let setting = 'cs_n_' + key;
let val = window.localStorage.getItem(setting);
switch (val) {
case null:
return null;
case 'true':
return true;
case 'false':
return false;
default:
return val;
}
}
function setSettings(key, val) { // Задать настройку
let setting = 'cs_n_' + key;
window.localStorage.setItem(setting, String(val));
globals[key] = val; // Записываем новое значение в globals
}
function removeSettings(key) { // Удалить настройку
let setting = 'cs_n_' + key;
window.localStorage.removeItem(setting);
}
function nightLagsWarning() {
function showWarning() {
let now = new Date();
now.setHours(now.getUTCHours() + 3);
let hours = now.getHours();
let minutes = now.getMinutes();
if ((hours === 2 && minutes >= 50) || (hours === 3) || (hours === 4 && minutes <= 10)) {
if ($('#warning').length === 0) {
let warningHtml = `<div id="warning" style="background: white; font-weight: bold; text-align: justify; padding: 2px 10px; position: fixed; z-index: 1;">
Настоятельно рекомендуем Вам покинуть локации для лазания и ныряния в промежутке с 03:00 до 04:00 по МСК. В случае продолжения нахождения на них не используйте горячие клавиши при перемещении между локациями, а также не нажимайте на переходы по несколько раз. Некоторый контент может находиться под данным уведомлением. <a id="hideWarning" href="#">Скрыть</a>
</div>`;
$('body').prepend(warningHtml);
$('#hideWarning').click(function() {
$('#warning').remove();
});
}
}
else {
$('#warning').remove();
}
}
showWarning();
}
function appendToElementOrPrependFallback(primaryElement, secondaryElement, elementToAdd) {
if ($(primaryElement).length) {
$(primaryElement).append(elementToAdd);
}
else {
$(secondaryElement).before(elementToAdd);
}
}
function appendToElementOrFallback(primaryElement, secondaryElement, elementToAdd) {
if ($(primaryElement).length) {
$(primaryElement).append(elementToAdd);
}
else {
$(secondaryElement).after(elementToAdd);
}
}
const pageurl = window.location.href;
const isCW3 = (/^https:\/\/\w?\.?catwar.su\/cw3(?!(\/kns|\/jagd))/.test(pageurl));
const isSite = !(/^https:\/\/\w?\.?catwar.su\/cw3(\/kns|\/jagd)?.*/.test(pageurl));
const isDM = (/^https:\/\/\w?\.?catwar.su\/ls/.test(pageurl));
const isSett = (/^https:\/\/\w?\.?catwar.su\/settings/.test(pageurl));
const isMyCat = (/^https:\/\/\w?\.?catwar.su\/$/.test(pageurl));
const isAll = (/^https:\/\/\w?\.?catwar.su\/.*/.test(pageurl));
try {
if (isCW3) cw3();
if (isDM) dm();
if (isSite) site();
if (isSett) sett();
if (isMyCat) myCat();
if (isAll) all();
}
catch (error) {
console.error("An error occurred: ", error);
}
// ...
// ...
// ...
function sett() {
const html = `
<br><br><div id="cwsSet"><i>(c) CWScript</i><b>Настройки</b><div id="cwsSetList"><div><input class="cs-set" id="textTemplates" type="checkbox"${globals.textTemplates?' checked':''}><label for="textTemplates">Блок с шаблонами в личных сообщениях</label></div>
<div><input class="cs-set" id="toggleTextTemplates" type="checkbox"${globals.toggleTextTemplates?' checked':''}><label for="toggleTextTemplates">Изначально сворачивать блок с шаблонами</label></div>
<div><input class="cs-set" id="replaceTemplateTheme" type="checkbox"${globals.replaceTemplateTheme?' checked':''}><label for="replaceTemplateTheme">Вставлять название шаблона в тему сообщения</label></div>
<!-- <div><input class="cs-set" id="chatTextTemplates" type="checkbox"${globals.chatTextTemplates?' checked':''}><label for="chatTextTemplates">Отображать шаблоны для ЧАТОВ</label></div>
<div><input class="cs-set" id="toggleChatTextTemplates" type="checkbox"${globals.toggleChatTextTemplates?' checked':''}><label for="toggleChatTextTemplates">Сворачивать шаблоны ЧАТОВ изначально</label></div>
<div><input class="cs-set" id="bloglentTextTemplates" type="checkbox"${globals.bloglentTextTemplates?' checked':''}><label for="bloglentTextTemplates">Отображать шаблоны для БЛОГОЛЕНТЫ</label></div>
<div><input class="cs-set" id="toggleBloglentTextTemplates" type="checkbox"${globals.toggleBloglentTextTemplates?' checked':''}><label for="toggleBloglentTextTemplates">Сворачивать шаблоны БЛОГОЛЕНТЫ изначально</label></div>--><hr>
<div><input class="cs-set" id="inGameClock" type="checkbox"${globals.inGameClock?' checked':''}><label for="inGameClock">Часы в игровой</label></div>
<div><input class="cs-set" id="showDate" type="checkbox"${globals.isDateShow?' checked':''}><label for="showDate">Показывать дату</label></div>
<div><input class="cs-set" id="movableClocks" type="checkbox"${globals.movableClocks?' checked':''}><label for="movableClocks">Перетаскиваемый блок часов (на телефонах перетаскивание пока не работает)</label></div>
<table><tr><td><div><input class="cs-set" id="deviceTime" type="radio" name="timeSource"${!globals.isClockMoscow?' checked':''}><label for="deviceTime">Время с устройства</label></div></td>
<td><div><input class="cs-set" id="moscowTime" type="radio" name="timeSource"${globals.isClockMoscow?' checked':''}><label for="moscowTime">Московское время</label></div></td></tr></table><hr>
<div><input class="cs-set" id="phoneFightPanel" type="checkbox"${globals.phoneFightPanel?' checked':''}><label for="phoneFightPanel">Переместить кнопочки окошка БР для телефонщиков</label></div><hr>
<div><input class="cs-set" id="friendlyCatWar" type="checkbox"${globals.friendlyCatWar?' checked':''}><label for="friendlyCatWar">Убрать кнопки входа в опасные боережимы</label></div><hr>
<div><input class="cs-set" id="nightLagsWarning" type="checkbox"${globals.nightLagsWarning?' checked':''}><label for="nightLagsWarning">Предупреждение об осторожности на водах/лазательных локациях в период с 03:00 по 04:00 по МСК</label></div><hr>
<div id="dontRdnLS"><input class="cs-set" id="dontReadenLS" type="checkbox"${globals.dontReadenLS?' checked':''}><label for="dontReadenLS">“Непрочитанное ЛС” только для себя</label></div>
<button type="button" id="clearDontReadButton">Нажми меня!</button><label for="clearDontReadButton">Кнопка, чтобы починить (обнулить) счётчик непрочитанных ЛС</label><br><hr>
<div><input class="cs-set" id="timerForLS" type="checkbox"${globals.timerForLS?' checked':''}><label for="timerForLS">Выделение сообщений в ЛС, которые скоро удалятся (выделяет непрочитанные ЛС, которые были получены/отправлены от 6 до 14 дней назад)</label></div><hr>
<div><input class="cs-set" id="hideWoundWarning" type="checkbox"${globals.hideWoundWarning?' checked':''}><label for="hideWoundWarning">Убрать предупреждение "Вы ранены" со всех страниц сайта</label></div><hr>
<div><input class="cs-set" id="brightGameField" type="checkbox"${globals.brightGameField?' checked':''}><label for="brightGameField">Не затемнять окошко игровой</label></div><hr>
<div><input class="cs-set" id="customDefectDelay" type="checkbox"${globals.customDefectDelay?' checked':''}><label for="customDefectDelay">Выделение клеток с больными котиками в игровой</label></div>
<div><input class="cs-set" id="cstmDfctShowColors" type="checkbox"${globals.cstmDfctShowColors?' checked':''}><label for="cstmDfctShowColors">Подсветка клетки игрока с дефектом полностью</label></div>
<div><input class="cs-set" id="cstmDfctShowRamki" type="checkbox"${globals.cstmDfctShowRamki?' checked':''}><label for="cstmDfctShowRamki">Подсветка клетки игрока с дефектом рамкой</label></div>
<div><input class="cs-set" id="cstmDfctShowNum" type="checkbox"${globals.cstmDfctShowNum?' checked':''}><label for="cstmDfctShowNum">Показывать иконки болезней с цифрами</label></div>
<div><input class="cs-set" id="cstmDfctShowLowDirt" type="checkbox"${globals.cstmDfctShowLowDirt?' checked':''}><label for="cstmDfctShowLowDirt">Показывать 1-2 стадии грязи у игроков</label></div>
<div><input class="cs-set" id="cstmDfctShowHighDirt" type="checkbox"${globals.cstmDfctShowHighDirt?' checked':''}><label for="cstmDfctShowHighDirt">Показывать 3-4 стадии грязи у игроков</label></div>
<div><input class="cs-set" id="cstmDfctShow34WoundBetter" type="checkbox"${globals.cstmDfctShow34WoundBetter?' checked':''}><label for="cstmDfctShow34WoundBetter">Более выразительное выделение 3-4 стадий ран</label></div>
<div><input class="cs-set" id="cstmDfctShowAllBetter" type="checkbox"${globals.cstmDfctShowAllBetter?' checked':''}><label for="cstmDfctShowAllBetter">Более выразительное выделение 3-4 стадий всех дефектов</label></div><hr>
<div><input class="cs-set" id="cstmDfctShowDivers" type="checkbox"${globals.cstmDfctShowDivers?' checked':''}><label for="cstmDfctShowDivers">Выделять ныряющих в Игровой</label></div><hr>
<div><input class="cs-set" id="cstmDfctShowPodstilki" type="checkbox"${globals.cstmDfctShowPodstilki?' checked':''}><label for="cstmDfctShowPodstilki">Выделять заподстиленных в Игровой</label></div><hr>
<div><input class="cs-set" id="showButterflyBots" type="checkbox"${globals.showButterflyBots?' checked':''}><label for="showButterflyBots">Выделять бота-бабочку для прокачки БУ в Игровой</label></div><hr>
<div><input class="cs-set" id="darkCatTooltip" type="checkbox"${globals.darkCatTooltip?' checked':''}><label for="darkCatTooltip">Тёмное окошко информации о персонажах в Игровой</label></div><hr>
<div><input class="cs-set" id="customItemsDelay" type="checkbox"${globals.customItemsDelay?' checked':''}><label for="customItemsDelay">Подсвечивание клеток с полезными ресурсами в Игровой</label></div>
<div><input class="cs-set" id="cstmItmHerbDelay" type="checkbox"${globals.cstmItmHerbDelay?' checked':''}><label for="cstmItmHerbDelay">Подсвечивать травы, мёд и целебные водоросли</label></div>
<div><input class="cs-set" id="cstmItmMossDelay" type="checkbox"${globals.cstmItmMossDelay?' checked':''}><label for="cstmItmMossDelay">Подсвечивать мох (обычный, водяной, с желчью)</label></div>
<div><input class="cs-set" id="cstmItmWebDelay" type="checkbox"${globals.cstmItmWebDelay?' checked':''}><label for="cstmItmWebDelay">Подсвечивать паутину</label></div>
<div><input class="cs-set" id="cstmItmStickDelay" type="checkbox"${globals.cstmItmStickDelay?' checked':''}><label for="cstmItmStickDelay">Подсвечивать крепкие ветки, вьюнки, костоправы и плотные водоросли</label></div>
<div><input class="cs-set" id="cstmItmDustDelay" type="checkbox"${globals.cstmItmDustDelay?' checked':''}><label for="cstmItmDustDelay">Подсвечивать звёздную пыль</label></div>
<div><input class="cs-set" id="cstmItmMusorDelay" type="checkbox"${globals.cstmItmMusorDelay?' checked':''}><label for="cstmItmMusorDelay">Подсвечивать травящие предметы</label></div><hr>
<div><input class="cs-set" id="boneCorrectTimer" type="checkbox"${globals.boneCorrectTimer?' checked':''}><label for="boneCorrectTimer">Таймер снятия костоправов</label></div>
<div><input class="cs-set" id="toggleBoneTimer" type="checkbox"${globals.toggleBoneTimer?' checked':''}><label for="toggleBoneTimer">Изначально сворачивать блок таймера костоправов</label></div><hr>
<div><input class="cs-set" id="deleteFPTitles" type="checkbox"${globals.deleteFPTitles?' checked':''}><label for="deleteFPTitles">Убрать подписи к кнопкам боережима</label></div><hr>
<div><input class="cs-set" id="cwscriptDarkTheme" type="checkbox"${globals.cwscriptDarkTheme?' checked':''}><label for="cwscriptDarkTheme">Тёмная тема для функций из CWScript <small>(В слудующем обновлении добавим больше тем!)</small></label></div><hr>
<div><input class="cs-set" id="costumeLibrary" type="checkbox"${globals.costumeLibrary?' checked':''}><label for="costumeLibrary">Библиотека костюмов</label></div>
<div><input class="cs-set" id="watermarkCostumes" type="checkbox"${globals.watermarkCostumes?' checked':''}><label for="watermarkCostumes">Наш значок у костюмов, добавленных библиотекой</label></div>
<!--<div><select id="selectInGame"><option>CWScript светлая</option><option>CWScript тёмная</option><option>CatWar светлая</option><option>Стандартная тёмная</option><option>Стандартная светлая</option></select></div><br>
<div><select id="selectOutGame"><option>CWScript светлая</option><option>CWScript тёмная</option><option>CatWar светлая</option><option>Стандартная тёмная</option><option>Стандартная светлая</option><option>Стандартная тёмная</option></select></div>-->
</div><br></div><br></div><br>`
appendToElementOrFallback('#branch', 'a[href="del"]', html);
$('#nightLagsWarning').on('change', function() {
if (!this.checked) {
let userConfirmation = confirm("Вы уверены, что хотите отключить предупреждение о ночных лагах?");
if (!userConfirmation) {
this.checked = true;
}
else {}
}
else {}
});
let cssForSett = `
<style>
div#cwsSet>b {
display: block;
text-align: center;
font-size: 23px;
padding: 10px;
margin-top: -23px;
letter-spacing: 15px;
text-transform: uppercase;
border: 3px solid var(--brdrClr1);
margin-bottom: 10px;
background-color: var(--bckgClr1);
color: var(--txtClr1); }
div#cwsSet>i {
display: block;
text-align: right;
padding-top: 5px;
padding-right: 10px;
font-size: 11px;
color: var(--txtClr1); }
div#cwsSet {
background-color: var(--bckgClr2);
border: 3px solid var(--brdrClr1);
color: var(--txtClr2);
font-family: Montserrat; }
div#cwsSetList {
max-height: 500px;
overflow: auto;
background-color: var(--bckgClr2);
color: var(--txtClr2); }
div#cwsSetList::-webkit-scrollbar {
width: 13px; }
div#cwsSetList::-webkit-scrollbar-track {
background: var(--scrlClr1) !important; }
div#cwsSetList::-webkit-scrollbar-thumb {
background: var(--scrlClr2) !important; }
div#cwsSetList>hr {
border: 0.5px solid var(--hrClr1);
margin: 10px auto; }
div#cwsSetList>table>tbody>tr>td>div {
margin-top: 3px;
margin-right: 30px; }
table#dfctSet {
margin-left: 4px; }
table#dfctSet, table#dfctSet>tbody>tr, table#dfctSet>tbody>tr>td {
border: 3px solid var(--hrClr1);
font-weight: bold;
font-size: 13px;
text-align: center; }
table#dfctSet>tbody>tr>td {
padding: 10px; }
table#dfctSet>tbody>tr.dfctName {
background: var(--hrClr1) }
div#dfctOpacity, div#itmOpacity {
margin-left: 4px; }
div#dfctOpacity>input, div#itmOpacity>input {
margin-top: 8px;
margin-bottom: 8px; }
input#cstmDfctOpacity {
border: 3px solid var(--hrClr1);
width: 208px;
margin-left: 0.3px; }
input#cstmItmOpacity {
border: 3px solid var(--hrClr1);
width: 220px;
margin-left: 0.3px; }
button#resetDefectSettings, button#resetItemSettings {
margin-left: 4px; }
button#resetDefectSettings:hover, button#resetItemSettings:hover {
border: 1px solid var(--brdrClr2); }
button#clearDontReadButton {
background-color: var(--bckgClr3);
color: var(--txtClr3);
border: 1px solid var(--brdrClr3);
font-family: Verdana;
font-size: .9em;
margin: 0 1em;
display: inline-block;
margin-top: 6px;}
button#clearDontReadButton:hover {
border: 1px solid var(--brdrClr2);}
</style>
`
$('head').append(cssForSett);
$('.cs-set').on('change', function() {
let key = this.id;
let val = this.type === 'checkbox' ? this.checked : this.value;
setSettings(key, val);
});
let settingsToResetDfct = [
'customDefectDelay', 'cstmDfctWounds', 'cstmDfctBruise', 'cstmDfctFractures',
'cstmDfctPoison', 'cstmDfctCough', 'cstmDfctDirt', 'cstmDfctOpacity',
'cstmDfctShowColors', 'cstmDfctShowNum', 'cstmDfctShowHighDirt',
'cstmDfctShowLowDirt', 'cstmDfctShow34WoundBetter', 'cstmDfctShowAllBetter'
];
let settingsToResetItm = [
'customItemsDelay', 'cstmItmHerbDelay', 'cstmItmHerbClr', 'cstmItmMossDelay',
'cstmItmMossClr', 'cstmItmWebDelay', 'cstmItmWebClr', 'cstmItmStickDelay',
'cstmItmStickClr', 'cstmItmDustDelay', 'cstmItmDustClr', 'cstmItmOpacity', 'cstmItmMusorDelay', 'cstmItmMusorClr'
];
function resetSettings(settingsToReset) {
for (var i = 0; i < settingsToReset.length; i++) {
let key = settingsToReset[i];
removeSettings(key);
}
for (i = 0; i < settingsToReset.length; i++) {
let key = settingsToReset[i];
globals[key] = csDefaults[key];
}
$('.cs-set').each(function() {
let key = this.id;
if (settingsToReset.includes(key)) {
let val = csDefaults[key];
if (this.type === 'checkbox') {
this.checked = val;
}
else {
this.value = val;
}
}
});
}
$('#resetDefectSettings').on('click', function() {
resetSettings(settingsToResetDfct);
});
$('#resetItemSettings').on('click', function() {
resetSettings(settingsToResetItm);
});
$(document).ready(function() {
function toggleCustomDefectDelay() {
$('#cstmDfctWounds, #cstmDfctBruise, #cstmDfctShowRamki, #cstmDfctFractures, #cstmDfctPoison, #cstmDfctCough, #cstmDfctDirt, #cstmDfctOpacity, #cstmDfctShowColors, #cstmDfctShowNum, #cstmDfctShowHighDirt, #cstmDfctShowLowDirt, #cstmDfctShow34WoundBetter, #cstmDfctShowAllBetter').prop('disabled', !$('#customDefectDelay').is(':checked'));
}
$('#customDefectDelay').change(toggleCustomDefectDelay);
toggleCustomDefectDelay();
function toggleCustomItemsDelay() {
$('#cstmItmHerbDelay, #cstmItmHerbClr, #cstmItmMossDelay, #cstmItmMossClr, #cstmItmWebDelay, #cstmItmWebClr, #cstmItmStickDelay, #cstmItmStickClr, #cstmItmDustDelay, #cstmItmDustClr, #cstmItmOpacity, #cstmItmMusorDelay, #cstmItmMusorClr').prop('disabled', !$('#customItemsDelay').is(':checked'));
}
$('#customItemsDelay').change(toggleCustomItemsDelay);
toggleCustomItemsDelay();
function toggleTimeBlock() {
$('#deviceTime, #moscowTime, #showDate, #movableClocks').prop('disabled', !$('#inGameClock').is(':checked'));
}
$('#inGameClock').change(toggleTimeBlock);
toggleTimeBlock();
});
}
// ...
// ...
// ...
function dm() {
if (globals['dontReadenLS']) {
function updateDontReadCounter() {
let count = 0;
for (let i = 0; i < localStorage.length; i++) {
let key = localStorage.key(i);
if (key.startsWith('message')) {
count++;
}
}
localStorage.setItem('dontReadenCount', count);
$('#dontReadCounter').text(count > 0 ? '(' + count + ')' : '');
}
function updateDontReadenMessages() {
$('#messList tr').each(function() {
if (!$(this).hasClass('msg_notRead') && !$(this).find('.dontReadButton').length) {
$(this).append('<td><button class="dontReadButton">Н</button></td>');
let messageId = $(this).find('a.msg_open').data('id');
if (localStorage.getItem('message' + messageId)) {
$(this).addClass('dontReaden');
}
}
});
}
$(document).on('click', '.dontReadButton', function() {
let row = $(this).closest('tr');
let messageId = row.find('a.msg_open').data('id');
if (row.hasClass('dontReaden')) {
row.removeClass('dontReaden');
localStorage.removeItem('message' + messageId);
}
else {
row.addClass('dontReaden');
localStorage.setItem('message' + messageId, true);
}
updateDontReadCounter();
});
$(document).on('click', '.msg_open', function() {
let row = $(this).closest('tr');
if (row.hasClass('dontReaden')) {
let messageId = row.find('a.msg_open').data('id');
row.removeClass('dontReaden');
localStorage.removeItem('message' + messageId);
updateDontReadCounter();
}
});
setInterval(function() {
updateDontReadenMessages();
updateDontReadCounter();
}, 1000);
let dontreadencss = `<style>.dontReaden {
background-color: var(--bckgClr6); }</style>`
$('head').append(dontreadencss);
}
// Чипсеки
if (globals['textTemplates']) {
function checkForForm() {
let form = document.querySelector('#write_form');
if (form && !form.classList.contains('templates-added')) {
add_templates();
form.classList.add('templates-added');
}
}
checkForForm();
let observer = new MutationObserver((mutationsList, observer) => {
for (let mutation of mutationsList) {
if (mutation.type === 'childList') {
checkForForm();
}
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
function add_templates() {
if (window.location.href.includes("https://catwar.su/ls?new")) {
$(document).ready(function() {
setTimeout(function() {
initScript();
}, 70);
});
function initScript() {
'use strict';
let templates = localStorage.getItem('templates') ? JSON.parse(localStorage.getItem('templates')) : [];
function renderTemplates() {
let list = $('.patternlist');
list.empty();
templates.forEach(function(template, index) {
let templateText = '<div class="patternline"><a href="#" class="name" data-index="' + index + '">' + template.name + '</a> <a href="#" class="delete" data-index="' + index + '">[X]</a> <a href="#" class="edit" data-index="' + index + '">[✍]</a><hr><div>';
list.append(templateText);
});
}
let writeForm = $('form#write_form');
if (writeForm.length === 0) {
return;
}
writeForm.find('.patternblock').remove();
writeForm.prepend('<div class="patternblock"><i>(c) CWScript</i><b>Шаблоны</b><div class="patternlist"></div></div>');
let patternBlock = writeForm.find('.patternblock');
let createButton = $('<a href="#" id="createButton">Создать новый шаблон</a>').click(function(e) {
e.preventDefault();
$(this).hide();
let inputField = $('<input type="text" id="templateName" placeholder="Введите название шаблона"></input>');
let okButton = $('<button type="button" id="templateBtnOK" class="templateBtns">OK</button>').click(function() {
let templateName = inputField.val();
if (templateName) {
let currentContent = $('#text').val();
let newTemplate = {
name: templateName,
content: currentContent
};
templates.push(newTemplate);
localStorage.setItem('templates', JSON.stringify(templates));
renderTemplates();
inputField.remove();
okButton.remove();
cancelButton.remove();
createButton.show();
}
});
let cancelButton = $('<button id="templateBtnUndo" class="templateBtns">Отмена</button>').click(function() {
inputField.remove();
okButton.remove();
cancelButton.remove();
createButton.show();
});
$(this).after(inputField, okButton, ' ', cancelButton);
});
patternBlock.append(createButton);
writeForm.off('click', '.delete').on('click', '.delete', function(e) {
e.preventDefault();
let templateIndex = $(this).data('index');
let templateName = templates[templateIndex].name;
if (confirm('Точно ли вы хотите удалить шаблон "' + templateName + '"?')) {
templates.splice(templateIndex, 1);
localStorage.setItem('templates', JSON.stringify(templates));
renderTemplates();
}
});
writeForm.off('click', '.edit').on('click', '.edit', function(e) {
e.preventDefault();
let templateIndex = $(this).data('index');
let template = templates[templateIndex];
if (template) {
let templateContent = template.content;
$('#text').val(templateContent);
let saveButton = $('#templateBtnSaveChanges');
if (saveButton.length === 0) {
saveButton = $('<button id="templateBtnSaveChanges">Сохранить шаблон</button><br><br>');
writeForm.append(saveButton);
}
saveButton.off('click').click(function(e) {
e.preventDefault();
let editedContent = $('#text').val();
templates[templateIndex].content = editedContent;
localStorage.setItem('templates', JSON.stringify(templates));
renderTemplates();
$('#text').val('');
});
}
});
writeForm.on('click', '.name', function(e) {
e.preventDefault();
let templateIndex = $(this).data('index');
let template = templates[templateIndex];
if (template) {
$('#text').val(template.content);
if (globals['replaceTemplateTheme']) {
$('#subject').val(template.name);
}
}
});
renderTemplates();
function togglePatternBlock() {
$('.patternblock').slideToggle();
}
let toggleButton = $('<button id="togglePatternBlockButton" type="button">Ш</button>').click(togglePatternBlock);
$('button[data-code="b"]').before(toggleButton);
if (globals['toggleTextTemplates']) {
$('.patternblock').hide();
}
}
}
}
let css = `
<style>
button#templateBtnOK, button#templateBtnUndo, button#templateBtnSaveChanges {
background-color: var(--bckgClr3);
color: var(--txtClr3);
border: 1px solid var(--brdrClr3);
font-family: Verdana;
font-size: .9em; }
button#templateBtnOK:hover, button#templateBtnUndo:hover, button#templateBtnSaveChanges:hover {
border: 1px solid var(--brdrClr2); }
div.patternblock {
border: 3px solid var(--brdrClr1);
margin-bottom: 10px;
background-color: var(--bckgClr1);
color: var(--txtClr1);
font-family: Montserrat; }
div.patternlist {
max-height: 140px;
overflow: auto;
background-color: var(--bckgClr2);
color: var(--txtClr2); }
div.patternlist::-webkit-scrollbar {
width: 13px; }
div.patternlist::-webkit-scrollbar-track {
background: var(--scrlClr1) !important; }
div.patternlist::-webkit-scrollbar-thumb {
background: var(--scrlClr2) !important; }
div.patternline>hr {
border: 0.5px solid var(--hrClr1);
margin: 0;
margin-top: 6px; }
div.patternline:hover {
background: var(--bckgClr4) !important;
transition: 0.8s; }
div.patternline {
transition: 0.8s;
padding-top: 6px;
color: var(--txtClr2); }
div.patternline>a {
color: var(--txtClr2); }
div.patternblock>b {
border: 3px solid var(--brdrClr1);
display: block;
text-align: center;
font-size: 23px;
padding: 10px;
margin-top: -23px;
letter-spacing: 15px;
text-transform: uppercase; }
div.patternblock>i {
display: block;
text-align: right;
padding-top: 5px;
padding-right: 10px;
font-size: 11px; }
.patternline>a.name {
display: block;
margin-left: 5px; }
.patternline>a.delete {
display: block;
max-width: 80px;
margin-top: -17px;
margin-left: auto;
margin-right: 0; }
.patternline>a.edit {
display: block;
max-width: 50px;
margin-top: -19px;
margin-left: auto;
margin-right: 0; }
a#createButton {
display: block;
padding: 5px;
color: var(--txtClr1); }
button#templateBtnSaveChanges {
margin-top: 1px; }
input#templateName {
width: 20% !important;
margin: 4px auto; }
button.templateBtns {
overflow: auto; }
button.templateBtns {
margin-top: 4px; }
button#templateBtnOK {
margin-left: 10px;
margin-right: 3px; }
button#togglePatternBlockButton {
background-color: #333;
color: #fff;
border: none;
margin-right: 5px;
}
button#togglePatternBlockButton:hover {
outline: 1px solid #ff0;
}
</style>`
$('head').append(css);
}
}
// ...
// ...
// ...
function cw3() {
if (globals['inGameClock']) {
if (globals['movableClocks']) {
(function() {
function injectDateTime() {
let htmlClock = `
<div id="clockContainer">
<div id="clock"></div>
<div id="date"></div>
</div>
<style>
div#clockContainer {
position: absolute;
z-index: 9999;
cursor: move;
font-family: Montserrat;
background-color: var(--bckgClr1);
border: 3px solid var(--brdrClr1);
color: var(--txtClr1);
padding: 5px 5px 5px 10px;
font-weight: bold;
font-size: 15px;
}
</style>`
$("body").append(htmlClock);
var dateTimeContainer = document.getElementById('clockContainer');
var savedPosition = JSON.parse(localStorage.getItem('dateTimePosition'));
if (savedPosition) {
dateTimeContainer.style.left = savedPosition.left;
dateTimeContainer.style.top = savedPosition.top;
}
else {
dateTimeContainer.style.left = '0px';
dateTimeContainer.style.top = '0px';
}
let isDragging = false;
let initialX = 0;
let initialY = 0;
dateTimeContainer.addEventListener('mousedown', function(e) {
isDragging = true;
initialX = e.pageX - parseInt(dateTimeContainer.style.left);
initialY = e.pageY - parseInt(dateTimeContainer.style.top);
});
document.addEventListener('mousemove', function(e) {
if (isDragging) {
e.preventDefault();
dateTimeContainer.style.right = 'unset';
dateTimeContainer.style.left = (e.pageX - initialX) + 'px';
dateTimeContainer.style.top = (e.pageY - initialY) + 'px';
}
});
document.addEventListener('mouseup', function() {
isDragging = false;
if (dateTimeContainer) {
var currentPosition = {
left: dateTimeContainer.style.left,
top: dateTimeContainer.style.top
};
localStorage.setItem('dateTimePosition', JSON.stringify(currentPosition));
}
});
}
window.addEventListener('load', injectDateTime);
})();
}
if (!globals['movableClocks']) {
let clockHtml = `
<div id="clockContainer">
<div id="clock"></div>
<div id="date"></div>
</div>
<style>
div#clockContainer {
font-family: Montserrat;
background-color: var(--bckgClr1);
border: 3px solid var(--brdrClr1);
color: var(--txtClr1);
padding: 5px 5px 5px 10px;
font-weight: bold;
font-size: 15px; }
</style>`
$('#tr_actions').after(clockHtml);
}
}
// Сухареки
if (globals['customDefectDelay']) { // Включить отображение дефектов в игровой
let cstmDfctStyle = `<style id='cstmDfctStyle'></style>`
$('head').append(cstmDfctStyle);
if (globals['cstmDfctShowColors']) { // Включить подсветку клетки с больными
if (globals['cstmDfctShowRamki']) {
let cstmDfctRamki = `
/* ОБЩЕЕ */
ol.mouth>li>div.e>div[style*='disease'], ol.mouth>li>div.e>div[style*='trauma'], ol.mouth>li>div.e>div[style*='drown'], ol.mouth>li>div.e>div[style*='wound'], ol.mouth>li>div.e>div[style*='poisoning'], ol.mouth>li>div.e>div[style*='dirt'] {
padding-top: 0px !important; }
/* КАШЕЛЬ */
#tr_field [style*='disease'] {
outline: 5px solid rgba(232, 255, 0, .5);
outline-offset: -5px;
padding-top: 16px; }
/* СКАЛЫ */
#tr_field [style*='trauma'] {
outline: 5px solid rgba(0, 255, 232, .3);
outline-offset: -5px;
padding-top: 16px; }
/* ВОДЫ */
#tr_field [style*='drown'] {
outline: 5px solid rgba(72, 255, 0, .3);
outline-offset: -5px;
padding-top: 16px; }
/* РАНЫ */
#tr_field [style*='wound'] {
outline: 5px solid rgba(0, 0, 255, .3);
outline-offset: -5px;
padding-top: 16px; }
/* ОТРАВЛЕНИЕ */
#tr_field [style*='poisoning'] {
outline: 5px solid rgba(255, 0, 0, .3);
outline-offset: -5px;
padding-top: 16px; }`
$('#cstmDfctStyle').append(cstmDfctRamki);
}
if (!globals['cstmDfctShowRamki']) {
let cstmDfctColors = `
/* КАШЕЛЬ */
#tr_field [style*='disease'] {
background-color: rgba(238, 255, 70, .25) !important;
padding-top: 16px; }
ol.mouth>li>div.e>div[style*='disease'] {
padding-top: 0px !important; }
/* СКАЛЫ */
#tr_field [style*='trauma'] {
background-color: rgba(70, 255, 239, .25) !important;
padding-top: 16px; }
ol.mouth>li>div.e>div[style*='trauma'] {
padding-top: 0px !important; }
/* ВОДЫ */
#tr_field [style*='drown'] {
background-color: rgba(104, 255, 70, .25) !important;
padding-top: 16px; }
ol.mouth>li>div.e>div[style*='drown'] {
padding-top: 0px !important; }
/* РАНЫ */
#tr_field [style*='wound'] {
background-color: rgba(70, 70, 255, .25) !important;
padding-top: 16px; }
ol.mouth>li>div.e>div[style*='wound'] {
padding-top: 0px !important; }
/* ОТРАВЛЕНИЕ */
#tr_field [style*='poisoning'] {
background-color: rgba(255, 70, 70, .25) !important;
padding-top: 16px; }
ol.mouth>li>div.e>div[style*='poisoning'] {
padding-top: 0px !important; }`
$('#cstmDfctStyle').append(cstmDfctColors);
}
}
if (globals['cstmDfctShowNum']) { // Включить добавление иконок и цифр на клетках с больными
if (globals['cstmDfctShowRamki']) {
let cstmDfctNum1 = `
/* КАШЕЛЬ */
#tr_field [style*='disease/1']{
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Кашель%201Р.png) !important; }
/* СКАЛЫ */
#tr_field [style*='trauma/1'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Ушибы%201Р.png) !important; }
#tr_field [style*='trauma/2'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Ушибы%202Р.png) !important; }
#tr_field [style*='trauma/3'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Ушибы%203Р.png) !important; }
#tr_field [style*='trauma/4'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Ушибы%204Р.png) !important; }
/* ВОДЫ */
#tr_field [style*='drown/1'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Переломы%201Р.png) !important; }
#tr_field [style*='drown/2'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Переломы%202Р.png) !important; }
#tr_field [style*='drown/3'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Переломы%203Р.png) !important; }
#tr_field [style*='drown/4'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Переломы%204Р.png) !important; }
/* РАНЫ */
#tr_field [style*='wound/1'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Раны%201Р.png) !important; }
#tr_field [style*='wound/2'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Раны%202Р.png) !important; }
#tr_field [style*='wound/3'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Раны%203Р.png) !important; }
#tr_field [style*='wound/4'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Раны%204Р.png) !important; }
/* ОТРАВЛЕНИЕ */
#tr_field [style*='poisoning/1'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Отравление%201Р.png) !important; }
#tr_field [style*='poisoning/2'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Отравление%202Р.png) !important; }
#tr_field [style*='poisoning/3'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Отравление%203Р.png) !important; }
#tr_field [style*='poisoning/4'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Отравление%204Р.png) !important; }`
$('#cstmDfctStyle').append(cstmDfctNum1);
}
if (!globals['cstmDfctShowRamki']) {
let cstmDfctNum = `
/* КАШЕЛЬ */
#tr_field [style*='disease/1']{
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Кашель%201.png) !important; }
/* СКАЛЫ */
#tr_field [style*='trauma/1'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Ушибы%201.png) !important; }
#tr_field [style*='trauma/2'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Ушибы%202.png) !important; }
#tr_field [style*='trauma/3'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Ушибы%203.png) !important; }
#tr_field [style*='trauma/4'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Ушибы%204.png) !important; }
/* ВОДЫ */
#tr_field [style*='drown/1'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Переломы%201.png) !important; }
#tr_field [style*='drown/2'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Переломы%202.png) !important; }
#tr_field [style*='drown/3'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Переломы%203.png) !important; }
#tr_field [style*='drown/4'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Переломы%204.png) !important; }
/* РАНЫ */
#tr_field [style*='wound/1'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Раны%201.png) !important; }
#tr_field [style*='wound/2'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Раны%202.png) !important; }
#tr_field [style*='wound/3'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Раны%203.png) !important; }
#tr_field [style*='wound/4'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Раны%204.png) !important; }
/* ОТРАВЛЕНИЕ */
#tr_field [style*='poisoning/1'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Отравление%201.png) !important; }
#tr_field [style*='poisoning/2'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Отравление%202.png) !important; }
#tr_field [style*='poisoning/3'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Отравление%203.png) !important; }
#tr_field [style*='poisoning/4'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Отравление%204.png) !important; }`
$('#cstmDfctStyle').append(cstmDfctNum);
}
}
if (globals['cstmDfctShowHighDirt']) {
if (globals['cstmDfctShowColors']) { // Показывать 3-4 стадии грязи подсветкой клеток
if (globals['cstmDfctShowRamki']) {
let highDirtRamki = `
div[style*='dirt/base/1/3'], div[style*='dirt/base/2/3'], div[style*='/dirt/base/1/4.png'], div[style*='dirt/base/2/4'] {
outline: 5px solid rgba(108, 0, 255, .3);
outline-offset: -5px;
padding-top: 16px !important; }`
}
if (!globals['cstmDfctShowRamki']) {
let highDirtColors = `
div[style*='dirt/base/1/3'], div[style*='dirt/base/2/3'], div[style*='/dirt/base/1/4.png'], div[style*='dirt/base/2/4'] {
background-color: rgba(146, 70, 255, 0.25) !important;
padding-top: 16px !important;}
ol.mouth>li>div.e>div[style*='dirt/base/1/3'], ol.mouth>li>div.e>div[style*='dirt/base/2/3'], ol.mouth>li>div.e>div[style*='dirt/base/1/4'], ol.mouth>li>div.e>div[style*='dirt/base/2/4'] {
background-color: rgba(146, 70, 255, 0.25) !important;
padding-top: 0px !important;}`
$('#cstmDfctStyle').append(highDirtColors);
}
}
if (globals['cstmDfctShowNum']) { // Подсветка 3-4 стадий грязи иконкой и цифрой
if (globals['cstmDfctShowRamki']) {
let highDirtRamki = `
#tr_field [style*='/dirt/base/1/3.png'], #tr_field [style*='dirt/base/2/3'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Грязь%203Р.png) !important; }
#tr_field [style*='/dirt/base/1/4.png'], #tr_field [style*='dirt/base/2/4'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Грязь%204Р.png) !important; }`
}
if (!globals['cstmDfctShowRamki']) {
let highDirtNum = `
#tr_field [style*='/dirt/base/1/3.png'], #tr_field [style*='dirt/base/2/3'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Грязь%203.png) !important; }
#tr_field [style*='/dirt/base/1/4.png'], #tr_field [style*='dirt/base/2/4'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Грязь%204.png) !important; }`
$('#cstmDfctStyle').append(highDirtNum);
}
}
}
if (globals['cstmDfctShowLowDirt']) {
if (globals['cstmDfctShowRamki']) {
let lowDirtRamki = `
/* ГРЯЗЬ */
div[style*='dirt/base/1/1'], div[style*='dirt/base/2/1'], div[style*='/dirt/base/1/2.png'], div[style*='dirt/base/2/2'] {
outline: 5px solid rgba(108, 0, 255, .3);
outline-offset: -5px;
padding-top: 16px !important; }`
$('#cstmDfctStyle').append(lowDirtRamki);
}
if (!globals['cstmDfctShowRamki']) {
if (globals['cstmDfctShowColors']) { // Подсветка 1-2 стадий грязи подсветкой клеток
let lowDirtColors = `
div[style*='dirt/base/1/1'], div[style*='dirt/base/2/1'], div[style*='/dirt/base/1/2.png'], div[style*='dirt/base/2/2'] {
background-color: rgba(146, 70, 255, 0.25) !important;
padding-top: 16px !important;}
ol.mouth>li>div.e>div[style*='dirt/base/1/1'], ol.mouth>li>div.e>div[style*='dirt/base/2/1'], ol.mouth>li>div.e>div[style*='dirt/base/1/2'], ol.mouth>li>div.e>div[style*='dirt/base/2/2'] {
background-color: rgba(146, 70, 255, 0.25) !important;
padding-top: 0px !important;}`
$('#cstmDfctStyle').append(lowDirtColors);
}
}
if (globals['cstmDfctShowNum']) { // Подсветка 1-2 стадий грязи иконкой и цифрой
if (globals['cstmDfctShowRamki']) {
let lowDirtNum1 = `
#tr_field [style*='dirt/base/1/1'], #tr_field [style*='dirt/base/2/1'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Грязь%201Р.png) !important; }
#tr_field [style*='/dirt/base/1/2.png'], #tr_field [style*='dirt/base/2/2'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Грязь%202Р.png) !important; }`
$('#cstmDfctStyle').append(lowDirtNum1);
}
if (!globals['cstmDfctShowRamki']) {
let lowDirtNum = `
#tr_field [style*='dirt/base/1/1'], #tr_field [style*='dirt/base/2/1'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Грязь%201.png) !important; }
#tr_field [style*='/dirt/base/1/2.png'], #tr_field [style*='dirt/base/2/2'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Грязь%202.png) !important; }`
$('#cstmDfctStyle').append(lowDirtNum);
}
}
}
if (globals['cstmDfctShow34WoundBetter']) { // Лучшее отображение для раненых 3-4 стадии
if (globals['cstmDfctShowRamki']) {
let wounds341 = `
#tr_field [style*='wound/3'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Раны%203!Р.png) !important; }
#tr_field [style*='wound/4'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Раны%204!!!Р.png) !important; }`
$('#cstmDfctStyle').append(wounds341);
}
if (!globals['cstmDfctShowRamki']) {
let wounds34 = `
#tr_field [style*='wound/3'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Rany_3_33.png) !important; }
#tr_field [style*='wound/4'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Rany_4_33__33__33.png) !important; }`
$('#cstmDfctStyle').append(wounds34);
}
}
if (globals['cstmDfctShowAllBetter']) { // Лучшее отображение для всех болезней
if (globals['cstmDfctShowRamki']) {
let cstmDfctAllBetter1 = `
/* КАШЕЛЬ */
#tr_field [style*='disease/1']{
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Кашель%201Р.png) !important; }
#tr_field [style*='trauma/3'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Ушибы%203!Р.png) !important; }
#tr_field [style*='trauma/4'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Ушибы%204!!!Р.png) !important; }
/* ВОДЫ */
#tr_field [style*='drown/3'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Переломы%203!Р.png) !important; }
#tr_field [style*='drown/4'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Переломы%204!!!Р.png) !important; }
#tr_field [style*='poisoning/3'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Отравление%203!Р.png) !important; }
#tr_field [style*='poisoning/4'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/БолезниР/Отравление%204!!!Р.png) !important; }`
$('#cstmDfctStyle').append(cstmDfctAllBetter1);
}
if (!globals['cstmDfctShowRamki']) {
let cstmDfctAllBetter = `
/* КАШЕЛЬ */
#tr_field [style*='disease/1']{
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Кашель%201.png) !important; }
#tr_field [style*='trauma/3'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Ushiby_3_33.png) !important; }
#tr_field [style*='trauma/4'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Ushiby_4_33__33__33.png) !important; }
/* ВОДЫ */
#tr_field [style*='drown/3'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Perelomy_3_33.png) !important; }
#tr_field [style*='drown/4'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Perelomy_4_33__33__33.png) !important; }
#tr_field [style*='poisoning/3'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Otravlenie_3_33.png) !important; }
#tr_field [style*='poisoning/4'] {
content: url(https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/Болезни/Otravlenie_4_33__33) !important; }`
$('#cstmDfctStyle').append(cstmDfctAllBetter);
}
}
}
if (globals['cstmDfctShowDivers']) {
let cstmDfctDivers = `
<style id="dfctDivers">
#tr_field [style*='/cw3/cats/0/costume/7.png'], [style*='/cw3/cats/-1/costume/7.png'] {
content: url(https://i.ibb.co/dG6mhTj/image.png) !important;
padding-top: 16px !important;
padding-left: 1.5px !important;}
</style>`
$('head').append(cstmDfctDivers);
}
if (globals['cstmDfctShowPodstilki']) {
let cstmDfctPodstilkiDelay = `
<style id="dfctPodstilki">
#tr_field [style*='/cw3/cats/0/costume/295.png'], [style*='/cw3/cats/-1/costume/295.png'], [style*='/cw3/cats/1/costume/295.png'] {
background-color: rgba(121, 85, 61, .25) !important;
padding-top: 16px !important;}
ol.mouth>li>div.e>div[style*='/cw3/cats/0/costume/295.png'], ol.mouth>li>div.e>div[style*='/cw3/cats/-1/costume/295.png'], ol.mouth>li>div.e>div[style*='/cw3/cats/1/costume/295.png'] {
padding-top: 0px !important; }
</style>`
$('head').append(cstmDfctPodstilkiDelay);
}
// Кыр сосичка
if (globals['customItemsDelay']) { // Подсветка трав и других полезных ресурсов в Игровой
let cstmItmStyle = `<style id='cstmItmStyle'></style>`
$('head').append(cstmItmStyle);
if (globals['cstmItmHerbDelay']) { // Отображение трав
let cstmItmHerbs = `
.cage_items[style*='things/13.png'],
.cage_items[style*='things/15.png'],
.cage_items[style*='things/17.png'],
.cage_items[style*='things/19.png'],
.cage_items[style*='things/21.png'],
.cage_items[style*='things/23.png'],
.cage_items[style*='things/25.png'],
.cage_items[style*='things/26.png'],
.cage_items[style*='things/106.png'],
.cage_items[style*='things/108.png'],
.cage_items[style*='things/109.png'],
.cage_items[style*='things/110.png'],
.cage_items[style*='things/111.png'],
.cage_items[style*='things/112.png'],
.cage_items[style*='things/115.png'],
.cage_items[style*='things/116.png'],
.cage_items[style*='things/119.png'],
.cage_items[style*='things/655.png'] {
background-color: rgba(43, 255, 117, 0.25) !important;}`
$('#cstmItmStyle').append(cstmItmHerbs);
}
if (globals['cstmItmMossDelay']) { // Отображение мха
let cstmItmMoss = `
/* МОХ (обычный, водяной и желчный) */
.cage_items[style*='things/75.png'], .cage_items[style*='things/78.png'], .cage_items[style*='things/95.png'] {
background-color: rgba(43, 255, 117, 0.25) !important;}`
$('#cstmItmStyle').append(cstmItmMoss);
}
if (globals['cstmItmWebDelay']) { // Отображение паутины
let cstmItmWeb = `
/* ПАУТИНА */
.cage_items[style*='things/20.png'] {
background-color: rgba(43, 255, 117, 0.25) !important;}`
$('#cstmItmStyle').append(cstmItmWeb);
}
if (globals['cstmItmStickDelay']) { // Отображение STICKS.
let cstmItmSticks = `
/* ВЕТКИ, ВЬЮНКИ, КОСТОПРАВЫ, ПЛОТНЫЕ ВОДОРОСЛИ */
.cage_items[style*='things/565.png'], .cage_items[style*='things/566.png'], .cage_items[style*='things/562.png'], .cage_items[style*='things/563.png'], .cage_items[style*='things/3993.png'] {
background-color: rgba(43, 255, 117, 0.25) !important;}`
$('#cstmItmStyle').append(cstmItmSticks);
}
if (globals['cstmItmDustDelay']) { // Отображение Звёздной Пыли
let cstmItmDust = `
/* ПЫЛЬ */
.cage_items[style*='things/94.png'], .cage_items[style*='things/385.png'], .cage_items[style*='things/386.png'], .cage_items[style*='things/387.png'], .cage_items[style*='things/388.png'], .cage_items[style*='things/389.png'], .cage_items[style*='things/390.png'], .cage_items[style*='things/391.png'], .cage_items[style*='things/392.png'] {
background-color: rgba(192, 150, 226, 0.25) !important;}`
$('#cstmItmStyle').append(cstmItmDust);
}
if (globals['cstmItmMusorDelay']) { // Отображение muror
let cstmItmMusor = `
/* КОСТИ */
.cage_items[style*='things/985.png'], .cage_items[style*='things/986.png'], .cage_items[style*='things/987.png'], .cage_items[style*='things/988.png'], .cage_items[style*='things/989.png'] {
background-color: rgba(255, 43, 43, 0.25) !important;}
/* ПАДАЛЬ, ГНИЛЬ */
.cage_items[style*='things/44.png'], .cage_items[style*='things/180.png'] {
background-color: rgba(255, 43, 43, 0.25) !important;}
/* МОХ (испорченный) */
.cage_items[style*='things/77.png'] {
background-color: rgba(255, 43, 43, 0.25) !important;}
/* МУСОР */
.cage_items[style*='things/7801.png'], .cage_items[style*='things/7802.png'], .cage_items[style*='things/7803.png'], .cage_items[style*='things/7804.png'], .cage_items[style*='things/7805.png'], .cage_items[style*='things/7806.png'] {
background-color: rgba(255, 43, 43, 0.25) !important;}`
$('#cstmItmStyle').append(cstmItmMusor);
}
}
// Луковые колечьки
if (globals['phoneFightPanel']) { // Панелька боережима для телефонщиков
let dangerModes = $('input[value="T+1"], input[value="T+2"], input[value="T+3"]').clone();
$('input[value="T+1"], input[value="T+2"], input[value="T+3"]').remove();
$('#fightLog').after(dangerModes);
if ($('#fteams-wrap').length === 0) { // Проверка на наличие модифицированного БР
// Если элемента нет, меняем стиль окна бр
$('#fightPanel').css('height', 'auto');
}
let fightPanelStyle = `
<style id="fightPanelStyle">
[value="T+1"] {
position: relative;
bottom: 0px;
left: 0px;
width: 65px !important;}
[value="T+2"] {
position: relative;
bottom: 0px;
left: 31px;
width: 65px !important;}
[value="T+3"] {
position: relative;
bottom: 0px;
left: 62px;
width: 65px !important;}
.hotkey {
margin-left: 15px;
width: 40px;
border-radius: 2px;}
img#block {
transform: scale(105%);
position: relative;
left: 5px;
top: 1.8px;}
</style>`
$('head').append(fightPanelStyle);
}
// Френдли кетвар лучшая функция
if (globals['friendlyCatWar']) {
$('#fightPanel input[value="T+1"]').remove();
$('#fightPanel input[value="T+2"]').remove();
$('#fightPanel input[value="T+3"]').remove();
}
// Чупачупсеки
if (globals['darkCatTooltip']) {
let darkCss = `
<style>
span.cat_tooltip, span.cat_tooltip>a, span.cat_tooltip>u>a {
color: #a2abb5c7 !important; }
span.cat_tooltip {
background: #1a1d22ed !important;
border: #4f4f59 0.5px solid !important;
filter: brightness(105%); }
span.cat_tooltip>[src*="odoroj"] {
filter: brightness(70%) contrast(90%); }
span.cat_tooltip>span.online {
filter: brightness(190%) contrast(50%) opacity(95%); }
</style>`
$('head').append(darkCss);
}
// Газеровочька
if (globals['showButterflyBots']) {
let butterflyCss = `<style>
/* ОБЫЧНАЯ */
img[src*='things/990.png'] {
border: 15px solid rgba(255, 170, 0, .6); }
ol.mouth>li>img[src*='things/990.png'] {
border: none; }
ol#itemList>li>img[src*='things/990.png'] {
border: none; }
/* КРАСИВАЯ */
img[src*='things/991.png'] {
border: 15px solid rgba(255, 170, 0, .6); }
ol.mouth>li>img[src*='things/991.png'] {
border: none; }
ol#itemList>li>img[src*='things/991.png'] {
border: none; }
/* РЕДКАЯ */
img[src*='things/992.png'] {
border: 15px solid rgba(255, 170, 0, .6); }
ol.mouth>li>img[src*='things/992.png'] {
border: none; }
ol#itemList>li>img[src*='things/992.png'] {
border: none; }
</style>`
$('head').append(butterflyCss);
}
// Лимонадек
if (globals['brightGameField']) {
let brightCss = `
<style>
div#cages_div {
opacity: 1 !important; }
</style>`
$('head').append(brightCss);
}
// Чокопайчеки
if (globals['deleteFPTitles']) {
let fptitlesCss = `
<style>
div#fightPanel input.hotkey:hover {
pointer-events: none;
}
</style>`
$('head').append(fptitlesCss);
}
if (globals["costumeLibrary"]) {
(function() {
'use strict';
const githubUrl = 'https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/COSTUMES/catwarScript_Costumes.css?raw=true';
$.ajax({
url: githubUrl,
dataType: 'text',
success: function(data) {
$('head').append('<style>' + data + '</style>');
}
});
})();
if (globals["watermarkCostumes"]) {
(function() {
'use strict';
const githubUrl = 'https://raw.githubusercontent.com/CatWarScript/CatWarScript/main/COSTUMES/catwarScript_CostumesW.css?raw=true';
$.ajax({
url: githubUrl,
dataType: 'text',
success: function(data) {
$('head').append('<style>' + data + '</style>');
}});})();}}
// Эта скобка literally закрывает весь мир
}
// ...
// ...
// ...
function myCat() {
if (globals['boneCorrectTimer']) {
let boneCorrectDiv = `
<div id="timer">
<i>(c) CWScript</i><b>Костоправы</b><div id="timerMain">
<input type="number" id="days" min="0" value='0' placeholder="Days" class="templateInputs">
<label for="days">Введите дни</label><br>
<input type="number" id="hours" min="0" value='0' max="23" placeholder="Hours" class="templateInputs">
<label for="hours">Введите часы</label><br>
<input type="number" id="minutes" min="0" value='0' max="59" placeholder="Minutes" class="templateInputs">
<label for="minutes">Введите минуты</label><br></div>
<div id="buttons"> <!-- новый div для кнопок -->
<button id="start" class="boneCorrectBtns">Запустить таймер</button> <button id="reset" class="boneCorrectBtns">Отменить таймер</button>
</div>
<span id="message"></span>
</div>`
function toggleBoneTimer() {
$('#timer').slideToggle();
}
let toggleButton = $('<button id="toggleBoneCorrectButton" type="button">Калькулятор костоправов</button>').click(toggleBoneTimer);
appendToElementOrPrependFallback('#pr', '#education-show', toggleButton);
appendToElementOrPrependFallback('#pr', '#education-show', boneCorrectDiv);
let cssBoneCorrect = `
<style>
div#timer>b {
border: 3px solid var(--brdrClr1);
display: block;
text-align: center;
font-size: 23px;
padding: 10px;
padding-top: 21px;
padding-bottom: 16px;
margin-top: -22px;
letter-spacing: 15px;
text-transform: uppercase; }
div#timer {
border: 3px solid var(--brdrClr1);
margin: 5px 0;
background-color: var(--bckgClr1);
color: var(--txtClr1);
font-family: Montserrat; }
div#timer>i {
display: block;
text-align: right;
padding-top: 5px;
padding-right: 10px;
font-size: 11px; }
input.templateInputs {
background-color: var(--bckgClr3);
color: var(--txtClr3);
border: 1px solid var(--brdrClr3);
font-family: Verdana;
font-size: .9em;
width: 50px;
margin-left: 10px;
margin-bottom: 5px; }
button.boneCorrectBtns, #toggleBoneCorrectButton {
background-color: var(--bckgClr3);
color: var(--txtClr3);
border: 1px solid var(--brdrClr3);
font-family: Verdana;
font-size: .9em;
margin: 0 1em;
display: inline-block; }
button.boneCorrectBtns:hover, #toggleBoneCorrectButton:hover {
border: 1px solid var(--brdrClr2); }
div#timerMain {
max-height: 140px;
overflow: auto;
background-color: var(--bckgClr2);
color: var(--txtClr2);
padding: 7px;
padding-bottom: 1px; }
div#buttons {
border-top: 3px solid var(--brdrClr1);
padding-top: 5px;
padding-bottom: 5px;
text-align: center; }
span#message {
display: block;
text-align: center !important; }
</style>`
$('head').append(cssBoneCorrect);
if (globals['toggleBoneTimer']) {
$('#timer').hide();
}
}
}
// ...
// ...
// ...
function all() {
function addFont() {
let link = document.createElement('link');
link.href = 'https://fonts.googleapis.com/css?family=Montserrat';
link.rel = 'stylesheet';
document.head.appendChild(link);
if (!globals['cwscriptDarkTheme']) {
let cssDlyaCWScripta = `
<style id="cssPalette">
html {
--scrlClr1: #776c5f;
--scrlClr2: #463E33;
--hrClr1: #463E3330;
--txtClr1: #C8C0BE;
--txtClr2: #181510;
--txtClr3: #fff;
--brdrClr1: #BD7E5C;
--brdrClr2: #ff0;
--brdrClr3: #000;
--bckgClr1: #463E33;
--bckgClr2: #918474;
--bckgClr3: #333;
--bckgClr4: #463E3350;
--bckgClr5: #DBAEFF;
--bckgClr6: #BB8DEB; }
</style>`
$('head').append(cssDlyaCWScripta);
}
if (globals['cwscriptDarkTheme']) {
let cssDlyaCWScripta = `
<style id="cssPalette">
html {
--scrlClr1: #1f1f1f;
--scrlClr2: #383838;
--hrClr1: #29292930;
--txtClr1: #b9b9b9;
--txtClr2: #070707;
--txtClr3: #fff;
--brdrClr1: #888;
--brdrClr2: #ff0;
--brdrClr3: #000;
--bckgClr1: #282828;
--bckgClr2: #5e5e5e;
--bckgClr3: #333;
--bckgClr4: #15151550;
--bckgClr5: #DBAEFF;
--bckgClr6: #BB8DEB;}
</style>`
$('head').append(cssDlyaCWScripta);
}
};
addFont();
// Wenomechainasama
// Tumajarbisaun
if (globals['dontReadenLS']) {
function updateDontReadCounter() {
let count = localStorage.getItem('dontReadenCount');
if (count > 0) {
if ($('#newls').length) {
if ($('#dontReadCounter').length) {
$('#dontReadCounter').text('(' + count + ')');
}
else {
let counter = $('<span id="dontReadCounter">(' + count + ')</span>');
$('#newls').after(counter);
}
}
else if ($('div.kn6').length) {
if ($('#dontReadCounter').length) {
$('#dontReadCounter').text('(' + count + ')');
}
else {
let counter = $('<span id="dontReadCounter">(' + count + ')</span>');
$('div.kn6').after(counter);
}
}
}
else {
$('#dontReadCounter').remove();
}
$(document).ready(function() {
$('#dontReadCounter').click(function(e) {
e.preventDefault();
});
$('#dontReadCounter').click();
});
}
setInterval(updateDontReadCounter, 1000);
let cssDontReadLS = `
<style>
.dontReadButton:hover {
border: 1px solid var(--brdrClr2);
}
.dontReadButton {
background-color: var(--bckgClr3);
color: var(--txtClr3);
border: 1px solid var(--brdrClr3);
font-family: Verdana;
font-size: .9em;
}
#dontReadCounter {
background-color: var(--bckgClr5);
font-weight: 700;
color: var(--brdrClr3);
text-decoration: none !important;
pointer-events: none !important;
}
</style>`
$('head').append(cssDontReadLS);
}
// Wifenlooof
function updateClock() {
setInterval(() => {
const now = new Date();
let time;
if (globals['isClockMoscow']) {
time = now.toLocaleTimeString('ru-RU', {
timeZone: 'Europe/Moscow',
hour12: false
});
}
else {
time = now.toLocaleTimeString('ru-RU', {
hour12: false
});
}
$('#clock').text(time);
if (globals['isDateShow']) {
updateDate(now);
}
else {
$('#date').text('');
}
}, 1000);
}
function updateDate(now) {
const daysOfWeek = ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'];
const monthsOfYear = ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'];
const date = daysOfWeek[now.getDay()] + ', ' + now.getDate() + ' ' + monthsOfYear[now.getMonth()];
$('#date').text(date);
}
$(document).ready(function() {
$('#inGameClock').prop('checked', globals['inGameClock']);
$('#deviceTime').prop('checked', !globals['isClockMoscow']);
$('#moscowTime').prop('checked', globals['isClockMoscow']);
$('#showDate').prop('checked', globals['isDateShow']);
$('#inGameClock').on('change', function() {
setSettings('inGameClock', this.checked);
updateClock();
});
$('input[name="timeSource"]').on('change', function() {
setSettings('isClockMoscow', this.id === 'moscowTime');
});
$('#showDate').on('change', function() {
setSettings('isDateShow', this.checked);
});
$('.cs-chapter').on('click', function() {
updateClock();
});
updateClock();
});
// Eselifterbraun
if (globals['boneCorrectTimer']) {
let timerId;
function updateTimerMessage() {
let timerStart = localStorage.getItem('timerStart');
let timerDuration = localStorage.getItem('timerDuration');
if (timerStart && timerDuration) {
let timeLeft = timerDuration - (Date.now() - timerStart);
if (timeLeft > 0) {
let secondsLeft = Math.floor(timeLeft / 1000);
let minutesLeft = Math.floor(secondsLeft / 60);
let hoursLeft = Math.floor(minutesLeft / 60);
let daysLeft = Math.floor(hoursLeft / 24);
secondsLeft %= 60;
minutesLeft %= 60;
hoursLeft %= 24;
$('#message').text(`До окончания таймера осталось: ${daysLeft} дней, ${hoursLeft} часов, ${minutesLeft} минут, ${secondsLeft} секунд`);
}
else {
$('#message').text('Таймер истёк, Вы можете снять костоправ!');
localStorage.removeItem('timerStart');
localStorage.removeItem('timerDuration');
}
}
else {
$('#message').text('');
}
}
$('#start').click(function() {
if (timerId) {
clearTimeout(timerId);
}
let days = parseInt($('#days').val()) || 0;
let hours = parseInt($('#hours').val()) || 0;
let minutes = parseInt($('#minutes').val()) || 0;
let time = ((days * 24 + hours) * 60 + minutes) * 60 * 1000;
timerId = setTimeout(function() {
alert('Таймер истёк, Вы можете снять костоправ!');
localStorage.removeItem('timerStart');
localStorage.removeItem('timerDuration');
$('#message').text('Таймер истёк, Вы можете снять костоправ!');
}, time);
localStorage.setItem('timerStart', Date.now());
localStorage.setItem('timerDuration', time);
updateTimerMessage();
});
$('#reset').click(function() {
clearTimeout(timerId);
timerId = null;
$('#days').val('');
$('#hours').val('');
$('#minutes').val('');
localStorage.removeItem('timerStart');
localStorage.removeItem('timerDuration');
$('#message').text('');
});
setInterval(updateTimerMessage, 1000);
let timerStart = localStorage.getItem('timerStart');
let timerDuration = localStorage.getItem('timerDuration');
if (timerStart && timerDuration) {
let timeLeft = timerDuration - (Date.now() - timerStart);
if (timeLeft > 0) {
timerId = setTimeout(function() {
alert('Таймер истёк, Вы можете снять костоправ!');
localStorage.removeItem('timerStart');
localStorage.removeItem('timerDuration');
$('#message').text('Таймер истёк, Вы можете снять костоправ!');
}, timeLeft);
}
else {
alert('Таймер истёк, Вы можете снять костоправ!');
localStorage.removeItem('timerStart');
localStorage.removeItem('timerDuration');
}
}
updateTimerMessage();
}
// Anweculbetugtbaby
if (globals['hideWoundWarning']) {
setTimeout(function() {
$('#warningAboutWound').remove
}, 1000);
};
// Aslonskysrblu
if (globals['nightLagsWarning']) {
nightLagsWarning();
}
// Yuaksoinocenow
$('#clearDontReadButton').on('click', function() {
for (let i = 0; i < localStorage.length; i++) {
let key = localStorage.key(i);
if (key.startsWith('message')) {
localStorage.removeItem(key);
}
}
updateDontReadCounter();
$('#messList tr').removeClass('dontReaden');
});
}
// ...
// ...
// ...
function site() {
if (globals['hideWoundWarning']) {
$('#warningAboutWound').remove();
};
}