'));
var $useritems_tbody = $('').appendTo($useritems_table);
var localValues = GM_listValues();
for (var j = 0; j < localValues.length; j++) {
if(localValues[j].includes("dcce_ctb_")) {
var type_id = localValues[j];
var $row = $('
').appendTo($useritems_tbody);
$row.addClass("loaded_item");
$row.attr('id', type_id);
var item_perso = GM_getValue("dcce_name_" + localValues[j].slice(9));
var $perso_td = $('
' + item_perso + '
').appendTo($row);
var item_couleur = '';
var $couleur_td = $('
' + item_couleur + '
').appendTo($row);
$couleur_td.data('type_ID', type_id);
//Ajout d'un bouton pour la suppression
var $last_td = $('
').appendTo($row);
var $itemdel_btn = $('').appendTo($last_td);
$itemdel_btn.data('type_ID', type_id);
$itemdel_btn.text('Reset');
$itemdel_btn.css({
height: '15px',
margin: '5px 15px',
});
//Handler clic sur le bouton "Supprimer" d'une ligne du tableau
$itemdel_btn.click(function () {
if ($(this).data('confirmed')) {
//Suppression des valeurs de la ligne
var type_id = $(this).data('type_ID');
GM_deleteValue("dcce_ctb_" + type_id.slice(9));
chatChangeColor(type_id);
$(this).parent().parent().children().children("input").val(DEFAULT_CHAT_COLOR); //Reset du color picker
//Remise à zéro du bouton
$(this).text('Reset');
$(this).data('confirmed', false);
} else {
//Besoin d'un second clic, pour confirmation
$(this).text('Confirmer');
$(this).data('confirmed', true);
}
});
$itemdel_btn.mouseleave(function () {
//Annulation de la confirmation de suppression
$(this).text('Reset');
$(this).data('confirmed', false);
});
$couleur_td.children("input").change(function() {
GM_setValue($couleur_td.data('type_ID'), $(this).val());
chatChangeColor($couleur_td.data('type_ID').slice(9));
});
}
}
//Css des éléments du tableau
$useritems_table.find('td').css({
border: '1px solid white',
height: '15px'
});
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//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 = $('').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
//**********************************************
//**********************************************
// DEBUT MAIN
//**********************************************
//ALERTCHAT, Script d'Odul
(function() {
var imgUnmute = 'url(http://i.imgur.com/uvIB44X.png)';
var imgMute = 'url(http://i.imgur.com/8oV9IrJ.png)';
var audio = document.createElement('audio');
audio.id='checkchat';
document.body.appendChild(audio);
$('#checkchat').attr('src', alertChatAudioURL);
$("#checkchat").css("display","none");
$('').prependTo($('#bandeau ul.menus'));
var End = $('
').prependTo($('#bandeau ul.menus'));
End.attr("id", 'endAudiocheckchat');
End.css({
left: '5px',
height: '30px',
"z-index": '999999',
"background-size": '29px 15px',
"background-repeat": 'no-repeat',
"background-position-y": '6px',
color: '#999'
});
End.text("AC").addClass('link');
End.hover(
function(){
$(this).css("color", "#0073d5");
},
function(){
var colorAC = (activateAlertChat) ? "#999" : "#D00000";
$(this).css("color", colorAC);
}
);
End.click(function() {
activateAlertChat = (activateAlertChat) ? false : true;
GM_setValue("DCCE_activateAlertChat", activateAlertChat);
document.getElementById('endAudiocheckchat').style.backgroundImage = (activateAlertChat) ? imgUnmute : imgMute;
document.getElementById('checkchat').volume = (activateAlertChat) ? 1 : 0;
var colorAC = (activateAlertChat) ? "#999" : "#D00000";
End.css("color", colorAC);
});
//Initialisation depuis le stockage local
document.getElementById('endAudiocheckchat').style.backgroundImage = (activateAlertChat) ? imgUnmute : imgMute;
document.getElementById('checkchat').volume = (activateAlertChat) ? 1 : 0;
var colorAC = (activateAlertChat) ? "#999" : "#D00000";
End.css("color", colorAC);
})();
//MatriceRP
//Par Isilin
const FORBIDDEN_ALIASES = ["me", "y", "yme", "w", "wme", "roll"];
var commands = [
{ alias:"env", name:"Environment", color:"008000", bold:false, rp:true },
{ alias:"sis", name:"Ta soeur", color:"00FFFF", bold:false, rp:false },
{ alias:"creapy", name:"Le Monstre", color:"FF00FF", bold:false, rp:true }
];
function tagMessage(inputStr) {
let message = inputStr;
let aliasUsed = inputStr.split(" ")[0].substr(1);
if (FORBIDDEN_ALIASES.indexOf(aliasUsed) > -1) return message; //On ne modifie pas le message si l'alias utilisé est une commande du jeu
let command = commands.find(cmd => cmd.alias === aliasUsed); //On récupère les paramètres de la commande à partir de son alias
if (command === undefined) return message; //On ne modifie pas le message si l'alias utilisé n'est pas défini
message = (command.rp ? "/me " : "")
+ "[b][c=" + command.color + "]{" + command.name + "}[/c][/b]"
+ (command.bold ? "[b]" : "")
+ "[c=" + command.color + "]" + message.substr(command.alias.length + 1) + "[/c]"
+ (command.bold ? "[/b]" : "");
return message;
}
//AmeliorationTchat2.0
//Par Odul
var $chatInput = $("#chatForm .text_chat");
function beautifyMessage(inputStr) {
let message = inputStr;
if (/^\/me/i.test(message)) {
message = "/me" + message.substr(3); //Transforme /Me en /me pour que la casse soit respectée et que le chat ressorte bien une emote.
var quoteMatches = message.match(/\"/gi) || []; //Pré-calcul de la place que prendront les balises. Balisage que si ne dépasse pas 200 caractères, balises comprises.
if (message.length + (Math.floor(quoteMatches.length/2) * 14)) {
message = message.replace(/"([^\"]+)"/gi, "[c=FFFFFF]$1[/c]");
}
} else {
var starMatches = message.match(/\*/gi) || [];
if (message.length + (Math.floor(starMatches.length/2) * 21)) {
message = message.replace(/\*([^\*]+)\*/gi, "[c=58DCF9][i]$1[/i][/c]");
}
}
return message;
}
//Applique les scripts AmeliorationTchat2.0 et MatriceRP au moment de poster le message
var ameliorInput = function(e) {
if (e.keyCode==13) {
$chatInput.val(tagMessage(beautifyMessage($chatInput.val())));
}
};
$("#chatForm .text_chat").on('keypress', ameliorInput);
//HIGHLIGHT CHAT LIMIT
//Code de Ladoria, modifications de débugging et implémentation au script.
function HighlightChatLimit() {
var limitColor = 'red', //Couleurs pour chaque pallier de longueur
alertColor = 'orange',
warningColor = 'yellow',
limitLength = 200, //Palliers de longueur
alertLength = 170,
warningLength = 135;
var c1 = $("#chatForm").css('border-color'); //CSS original de la box
var c2 = $("#chatForm .text_mode").css('border-color');
var c3 = $("#chatForm .text_valider").css('background-color');
var c4 = $("#chatForm").css('box-shadow');
var animateChatInput = function(e) {
var processedInput = tagMessage(beautifyMessage($("#chatForm .text_chat").val()));
if (processedInput.length > limitLength)
highlight(limitColor); // limit reached
else if (processedInput.length >= alertLength)
highlight(alertColor); // approach limit
else if (processedInput.length >= warningLength)
highlight(warningColor); // first warning
else
originalHighlight(c1, c2, c3, c4); // far away from limit
};
function originalHighlight(formBorderColor, modeBorderColor, bgColor, bsSettings) {
$("#chatForm").css('border-color', formBorderColor);
$("#chatForm .text_mode").css('border-color', modeBorderColor);
$("#chatForm .text_valider").css('background-color', bgColor);
$("#chatForm").css('box-shadow', bsSettings);
}
function highlight(color) {
originalHighlight(color, color, color, '0px 0px 3px 2px ' + color);
}
$("#chatForm .text_chat").attr("maxlength", "200");
$("#chatForm .text_chat").on('keyup', animateChatInput);
}
HighlightChatLimit(); //Exécution du script de limite de chat.
//SCROLLING
scrollChat(); //Place le chat au chargement du jeu.
$newMessageAlert.click(scrollChat); //Scroll au clic du bouton d'alerte de nouveau message.
$(".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é.
setInterval(function(){ //Scrolle ou alerte à la réception d'un message.
if(lastChat != $('#chatContent').text()) {
lastChat = $('#chatContent').text(); //Actualiser la copie local du chat.
var audio = document.getElementById('checkchat');
audio.load();
audio.play();
if(autoScroll) {
scrollChat();
}
else if($("#chatContent .link.linkable:last").text() !== $("#txt_pseudo").text()) {
$newMessageAlert.stop().fadeIn(500); //Afficher uniquement le bouton si l'utilisateur ne vient pas de poster.
}
}
}, 1000);
//COLOR TAG
$(document).on("click", "span.perso.link", function(){
var idPerso = $(this).attr('id').slice(9);
$(document).one("ajaxSuccess", {idPerso: idPerso}, function(e){ //Permet d'attendre le chargement de la fenêtre, one() pour éviter un duplicata.
var idctb = '#colorTagBox_' + e.data.idPerso;
var colorTagBox = $('
' + 'Couleur chat: ' +
'' +
'' +
'
').appendTo($("#ib_persoBox_" + e.data.idPerso + " .fakeToolTip"));
GM_setValue("dcce_name_" + e.data.idPerso, $("#ib_persoBox_" + e.data.idPerso + " .titreinfo").contents().filter(function(){
return this.nodeType == 3;
})[0].nodeValue); //Récupère le nom du personnage, utilisé dans le nommage de la classe du pseudo.
if(GM_getValue("dcce_ctb_" + e.data.idPerso) !== undefined) { //Récupère et applique au bouton couleur la couleur enregistrée
$(idctb).val((GM_getValue("dcce_ctb_" + e.data.idPerso)));
}
$(idctb).on("change", {idPerso: e.data.idPerso}, function(e) { //Enregistre en mémoire la nouvelle couleur
GM_setValue("dcce_ctb_" + e.data.idPerso, $(this).val());
chatChangeColor(e.data.idPerso);
});
$(idctb + "_reset").on("click", {idPerso: e.data.idPerso}, function(e) { //Reset de la couleur
GM_deleteValue("dcce_ctb_" + e.data.idPerso);
$(idctb).val(DEFAULT_CHAT_COLOR);
chatChangeColor(e.data.idPerso);
});
});
});
});