; shared instructions:
[macro name="talk"]
[er]
[iscript]
// ** name:
// check if it is defined, if not - leave empty:
mp.name = mp.name || "";
// check font color, if not defined - set white:
$(".new_name_area").css({
color: (mp.name_color && mp.name_color.match(/^(0x|#)(\w{3}$|\w{6}$)/)) ? mp.name_color.replace(/^(0x|#)(\w{3}$|\w{6}$)/, '#$2') : "#FFF",
});
// ** message:
// check font color, if not defined - set white:
mp.message_color = mp.message_color || "0xFFF";
//check if screams:
mp.font_size = String(mp.screams).toLowerCase() === 'true' ? 40 : 26;
// should say or remain silent:
mp.message = mp.message || "";
// message with fading:
if(mp.message.startsWith('{\\fad')){
mp.message = mp.message.replace(/^\{\\fad\(\d{1,4},\d{1,4}\)\}/, '');
}
// multiline message:
if(mp.message.match(/\\N/)){
mp.multiline = true;
var split = mp.message.split('\\N');
// make message to have max two lines
if(split.length > 2){
for(var i = 0, len = Math.floor(split.length / 2); i < len; i++){
var one1 = split.shift();
var end1 = split.pop();
var one2 = split.shift();
var end2 = split.pop();
split.unshift(one1 + (one2 ? ("\u00A0" + one2) : ""));
split.push((end2 ? (end2 + "\u00A0") : "") + end1);
}
}
mp.msg_split = split;
}
[endscript]
; font setup:
[font size="&mp.font_size" color="&mp.message_color" bold=true]
; ** send it:
#&mp.name
[if exp="mp.multiline"]
[emb exp="mp.msg_split[0]"]
[r]
[emb exp="mp.msg_split[1]"]
[else]
[emb exp="mp.message"]
[endif]
;
[endmacro]