您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Améliore le chat de Dreadcast.
当前为
// ==UserScript== // @name Dreadcast Chat Enhancer // @namespace https://greasyfork.org/scripts/21359-dreadcast-chat-enhancer/ // @version 1.2 // @description Améliore le chat de Dreadcast. // @author MockingJay // @match http://www.dreadcast.net/Main // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @grant GM_listValues // ==/UserScript== //Lit les variables dans GM à la demande. A utiliser pour chaque déclaration de variable qui est copiée en mémoire. //initValue: Valeur par défaut de la variable, qu'on lui donne à la déclaration et qu'elle garde si pas d'équivalent en mémoire. localVarName: Valeur GM locale. function initLocalMemory(initValue, localVarName) { if (GM_getValue(localVarName) === undefined) { GM_setValue(localVarName, initValue); return initValue; } else { return GM_getValue(localVarName); } } $(document).ready(function() { //Initialisation variables de préférences var autoScroll = initLocalMemory(false, "DCCE_autoScroll"); var scrollBar = initLocalMemory(true, "DCCE_scrollBar"); var typePredict = initLocalMemory(true, "DCCE_typePredict"); //Initialiser le CSS et scroller en bas à l'initialisation. $("#zone_chat .zone_infos .msg").css({ width: '290px', }); $("#chatContent").css({ "overflow-x": 'hidden', "overflow-y": 'scroll', height: '313px', width: '308px', }); //Applique la barre de défilement en fonction des préférences. function setChatContentScroll() { if(scrollBar) $("#chatContent").css({"padding-right": '0px'}); else $("#chatContent").css({"padding-right": '15px'}); } setChatContentScroll(); //Appliquer à l'initialisation. //Initialisation du bouton d'alerte, utilisé quand l'autoScroll est désactivé. var $newMessageAlert = $('<div />').appendTo($('#zone_chat')); $newMessageAlert.text("⚠ Nouveau message! ⚠"); $newMessageAlert.css({ display: 'none', top: '45px', "text-align": 'center', cursor: 'pointer', background: '#fff', border: '1px solid #fff', color: '#0296bb', "margin-top": '2px', "-webkit-box-shadow": '0 0 4px 2px #329bc2', }); $newMessageAlert.attr('onmouseover', 'this.style.backgroundColor=\"#0b9bcb\";this.style.color=\"#FFFFFF\";'); $newMessageAlert.attr('onmouseout', 'this.style.backgroundColor=\"#FFFFFF\";this.style.color=\"#0296bb\";'); //Initialisation bandeau latéral var $toggleAutoScroll = $('<li id="toggleAutoScroll" class="couleur5" ></li>'+'<li class="separator"></li>').prependTo($('#bandeau ul.menus')); if(autoScroll) { $("#toggleAutoScroll").text("AS on"); } else { $("#toggleAutoScroll").text("AS off"); } $("#toggleAutoScroll").css({ cursor: 'pointer', }); $("#toggleAutoScroll").attr('onmouseover', 'this.style.color=\"#0073d5\";'); $("#toggleAutoScroll").attr('onmouseout', 'this.style.color=\"#999\";'); //Changer l'autoscroll au clic sur le bandeau latéral. $("#toggleAutoScroll").click(function(){ if(autoScroll) { autoScroll = false; $("#toggleAutoScroll").text("AS off"); } else { autoScroll = true; $("#toggleAutoScroll").text("AS on"); } GM_setValue("DCCE_autoScroll", autoScroll); }); //Fait défiler le chat jusqu'en bas. function scrollChat(){ $('#chatContent').stop().animate({ scrollTop: $('#chatContent')[0].scrollHeight }, 800); $newMessageAlert.stop().fadeOut(500); } //********************************************** //INTERFACE DE CONFIGURATION UTILISATEUR //********************************************** var $databox = $('#zone_dataBox'); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //Constructeur de fenêtre de configuration //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var DCCE_ConfigurationWindow = function () { var window_width = '560px'; var window_height = '450px'; var $config_window = $('<div id="dcce_configwindow" onclick="engine.switchDataBox(this)"/>'); $config_window.draggable(); $config_window.addClass('dataBox focused ui-draggable'); $config_window.css({ width: window_width, "margin-left": '-185px', display: 'block', position: 'absolute', "z-index": '2', }); for (var i = 1; i <= 8; i++) { $('<div class="dbfond' + i + '" />').appendTo($config_window); } var $config_head = $('<div class="head ui-draggable-handle" ondblclick="$(\'#dcce_configwindow\').toggleClass(\'reduced\');" />').appendTo($config_window); $('<div title="Fermer la fenêtre (Q)" class="info1 link close" onclick="engine.closeDataBox($(this).parent().parent().attr(\'id\'));" />').appendTo($config_head); $('<div title="Reduire/Agrandir la fenêtre" class="info1 link reduce" onclick="$(\'#dcce_configwindow\').toggleClass(\'reduced\');" />').appendTo($config_head); $('<div class="title">Configuration DC Enhanced Chat</div>').appendTo($config_head); $('<div class="dbloader" />').appendTo($config_window); var $config_content = $('<div class="content" style="height:' + window_height + '; overflow: auto"/>').appendTo($config_window); //---------------------------------------- //Widgets internes //---------------------------------------- var $config_interface = $('<div />').appendTo($config_content); $config_interface.css({ "margin-left": '3px', "font-variant": 'small-caps', color: '#fff', height: '100%', width: '98%', }); //---------------------------------------- //Configuration du défilement, auto-scroll //---------------------------------------- var $autoconfig = $('<div />').appendTo($config_interface); var $autoconfig_title = $('<h2 class="couleur4" />').appendTo($autoconfig); $autoconfig_title.text('Options de défilement du texte'); $autoconfig_title.css({ "margin-bottom": '5px', "border-bottom": '1px solid', display: 'block', "font-size": '17px', "-webkit-margin-before": '0.83em', "-webkit-margin-after": '0.83em', "-webkit-margin-start": '0px', "-webkit-margin-end": '0px', "font-weight": 'bold', position: 'relative', }); var $autoconfig_container = $('<div class="ligne"/>').appendTo($config_interface); $autoconfig_container.text('Défilement automatique : '); $autoconfig_container.css({ display: 'inline-block', "margin-bottom": '15px', }); var $autoconfig_radio_activate = $('<input type="radio" name="typeAutoRadio" value="false">Activer</input>').appendTo($autoconfig_container); $autoconfig_radio_activate.css({ margin: '0 5px', }); $autoconfig_radio_activate.attr('checked', autoScroll); $autoconfig_radio_activate.change(function(){ autoScroll = true; GM_setValue("DCCE_autoScroll", autoScroll); $("#toggleAutoScroll").text("AS on"); }); var $autoconfig_radio_deactivate = $('<input type="radio" name="typeAutoRadio" value="true">Désactiver</input>').appendTo($autoconfig_container); $autoconfig_radio_deactivate.css({ margin: '0px 5px 0 25px', "padding-left": '20px', }); $autoconfig_radio_deactivate.attr('checked', !autoScroll); $autoconfig_radio_deactivate.change(function(){ autoScroll = false; GM_setValue("DCCE_autoScroll", autoScroll); $("#toggleAutoScroll").text("AS off"); }); //---------------------------------------- //Configuration de l'affichage de la barre de défilement //---------------------------------------- var $scrconfig_container = $('<div class="ligne"/>').appendTo($config_interface); $scrconfig_container.text('Barre de défilement : '); $scrconfig_container.css({ display: 'inline-block', "margin-bottom": '15px', }); var $scrconfig_radio_activate = $('<input type="radio" name="typeScrRadio" value="false">Afficher</input>').appendTo($scrconfig_container); $scrconfig_radio_activate.css({ margin: '0 5px', }); $scrconfig_radio_activate.attr('checked', scrollBar); $scrconfig_radio_activate.change(function(){ scrollBar = true; GM_setValue("DCCE_scrollBar", scrollBar); setChatContentScroll(); }); var $scrconfig_radio_deactivate = $('<input type="radio" name="typeScrRadio" value="true">Masquer</input>').appendTo($scrconfig_container); $scrconfig_radio_deactivate.css({ margin: '0px 5px 0 25px', "padding-left": '20px', }); $scrconfig_radio_deactivate.attr('checked', !scrollBar); $scrconfig_radio_deactivate.change(function(){ scrollBar = false; GM_setValue("DCCE_scrollBar", scrollBar); setChatContentScroll(); }); //---------------------------------------- //Configuration de l'affichage de la barre de défilement //---------------------------------------- var $predconfig_container = $('<div class="ligne"/>').appendTo($config_interface); $predconfig_container.text('Défiler le chat à l\'écriture : '); $predconfig_container.css({ display: 'inline-block', "margin-bottom": '15px', }); var $predconfig_radio_activate = $('<input type="radio" name="typePredRadio" value="false">Oui</input>').appendTo($predconfig_container); $predconfig_radio_activate.css({ margin: '0 5px', }); $predconfig_radio_activate.attr('checked', typePredict); $predconfig_radio_activate.change(function(){ typePredict = true; GM_setValue("DCCE_typePredict", typePredict); }); var $predconfig_radio_deactivate = $('<input type="radio" name="typePredRadio" value="true">Non</input>').appendTo($predconfig_container); $predconfig_radio_deactivate.css({ margin: '0px 5px 0 25px', "padding-left": '20px', }); $predconfig_radio_deactivate.attr('checked', !typePredict); $predconfig_radio_deactivate.change(function(){ typePredict = false; GM_setValue("DCCE_typePredict", typePredict); }); this.$window = $config_window; }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //FIN Constructeur de fenêtre de configuration //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //--------------------------------------------------- //Ajout d'un item au menu bandeau "Paramètres" de DC //--------------------------------------------------- var $params_menu = $('.menus > .parametres > ul'); var $dcce_config = $('<li />').appendTo($params_menu); $dcce_config.text("Configuration du Chat"); $dcce_config.addClass('link couleur2 separator'); $dcce_config.click(function () { //Fermeture des autres instances de paramétrage ouvertes engine.closeDataBox('dcce_configwindow'); var $config_window = new DCCE_ConfigurationWindow(); $databox.append($config_window.$window); }); //********************************************** // FIN INTERFACE DE CONFIGURATION UTILISATEUR //********************************************** $newMessageAlert.click(scrollChat); scrollChat(); //Place le chat au chargement du jeu. $(".text_chat").keydown(function(key){ //Si en préférence, scroller le chat automatiquement quand on commence à écrire. if(typePredict && key != 13) scrollChat(); //Ne pas le faire avec la touche entrée car déjà fait quand la ligne apparaît dans le chat. }); var lastChat = $('#chatContent').text(); //Sert à comparer pour voir si le chat a changé. //Scrolle ou alerte à la réception d'un message. setInterval(function(){ if(lastChat != $('#chatContent').text()) { lastChat = $('#chatContent').text(); //Actualiser la copie local du chat. if(autoScroll) { scrollChat(); } else { $newMessageAlert.stop().fadeIn(500); } } }, 1000); });