◆少前百科是非盈利性、非官方的少女前线维基百科。
◆如果您发现某些内容错误/空缺,请勇于修正/添加!参与进来其实很容易!点这里 加入少前百科
◆有任何意见、建议、纠错,欢迎在 GFwiki:反馈与建议 提出和讨论。编辑事务讨论QQ群:597764980,微博@GFwiki少前百科
◆To foreigners,You can use twitter to contact us.
Icon Nyto Silver.png

更改

跳转至: 导航搜索

Widget:AVGplayer/js

添加3,260字节2023年6月13日 (二) 22:38
无编辑摘要
var xmlhttp_doll = new XMLHttpRequest();
xmlhttp_doll.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) { dollarray = JSON.parse(this.responseText.replace(/\/\*\s{1,4}\d{1,4}\s{1,4}\*\//g,"").replace(",\n}", "\n}")); getdollarrays(); }
};
xmlhttp_doll.open("GET", "/index.php?title=JSON:AVGDOLL&action=raw", true);
xmlhttp_se.open("GET", "/index.php?title=JSON:AVGSE&action=raw", true);
xmlhttp_se.send();
 
function getdollarrays() {
mw.loader.using('ext.gadget.md5hasher', function() {
const prefabcodes = [0, 2, 3, 4, 5, 6, 7, 8, 9].concat([...Array(26)].map((_, i) => String.fromCharCode(i + 97)));
for (const c of prefabcodes) {
var newXhr = new XMLHttpRequest();
newXhr.responseType = 'json';
newXhr.onload = function() {
dollarray = Object.assign(dollarray, this.response);
}
const prefab = 'AVG_Pic_' + c + '.txt';
newXhr.open('GET', '/images/' + window.gfUtils.createWikiPathPart(prefab) + '/' + prefab);
newXhr.send();
}
});
}
var effarray = {
"%%code=changjing_huafen%%":"",
"%%code=DoomsdayClock01%%wait=1%%":"/images/Video/AVG/DoomsdayClock01.mp4",
"%%code=DoomsdayClock02%%wait=1%%":"/images/Video/AVG/DoomsdayClock02.mp4",
"%%code=DoomsdayClock03%%wait=1%%":"/images/Video/AVG/DoomsdayClock03.mp4",
"%%code=DoomsdayClock04%%wait=1%%":"/images/Video/AVG/DoomsdayClock04.mp4",
"%%code=DoomsdayClock05%%wait=1%%":"/images/Video/AVG/DoomsdayClock05.mp4",
"%%code=DoomsdayClock06%%wait=1%%":"/images/Video/AVG/DoomsdayClock06.mp4",
"%%code=DoomsdayClock07%%wait=1%%":"/images/Video/AVG/DoomsdayClock07.mp4"
}
var loadingfin = {doll:0, bg:0, bgm:0, eff:0};
var loadingnow = {doll:0, bg:0, bgm:0, eff:0};
 
var bgmEnd = false;
 
window.playAvgGlobal = function(text, title) {
if (typeof text != 'string') {
console.warn('AVGplayer interface called with parameter of invalid type: must be string.');
return;
}
bgmEnd = false;
avgtxt = text;
endsign = 0;
avgnextline = "";
linepos = 0;
$("#avgbgm").attr("src", ""); $(".avgsound").remove();
$("#avgbackground").html("");
$(".avgdollpic").remove();
$(".avgefect").remove();
readline();
firstloading();
$('#avgtitle').html(title||'');
}
function avgcreat(){
$(".avgchoice").click(function(){
if (window.pauseMainBgm) window.pauseMainBgm();
bgmEnd = false;
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
else readline();
});
 
function endBgm() {
bgmEnd = true;
$('#avgbgm')[0].pause();
setTimeout(function() {
if (endsign == 1 && window.canPlayMainBgm && window.resumeMainBgm) window.resumeMainBgm();
}, 2000);
$('#avgbox')[0].removeEventListener('click', endBgm);
}
function readline(){
if(blacksign == 1 || branchblock == 1 || flash_block == 1) return;
if(endsign == 1&& !avgnextline) {
$("#avgline").html(`<div class="endsigndiv">${$("#avgtitle").html()} END</div>`);
if (!bgmEnd) {
$('#avgbox')[0].addEventListener('click', endBgm);
}
return;
}
if(avgbranches.length != 0){
let isCg = avgbranches.every(opt => opt.startsWith('cg')); let html_string = `<div id="avgbranchdiv"${isCg ? ' class="cg-options"' : ''}>`; for(i in avgbranches) { let optionText = avgbranches[i]; let xpos = '', ypos = ''; if (isCg) { optionText = optionText.slice(2); let poses = optionText.split(','); xpos = `calc(50% + ${poses[0]*0.625}px)`; ypos = `calc(50% - ${poses[1]*0.625}px)`; } html_string += `<div class="avgbranch" index="${i}"${isCg ? ' style="left:'+xpos+';top:'+ypos+'"' : ''}>${avgbranches[i]isCg ? '' : optionText}<\/div>`; }
html_string += `<\/div>`;
setTimeout(function(){
$(".avgefect").remove(); $(".avgsound").remove();
$(".avgdollpic").remove(); $("#avgbackground").html(""); //$("#avgbgm").attr("src", "");
$("#avgspeaker").html(""); $("#avgline").html("");
setTimeout(function(){
if(thisline.indexOf("<BIN>") != -1){
var bgsrc = bgarray[thisline.slice(thisline.indexOf("<BIN>") + ("<BIN>").length, thisline.indexOf("</BIN>"))];
$("#avgbackground").html(`<img src="` + bgsrc + `" draggable="false"/>`);
if(thisline.indexOf("<Night>") != -1) $("#avgbackground").append(`<div style="width:1200px; height:675px; position:absolute; backdrop-filter:saturate(0.6) brightness(0.4) hue-rotate(15deg)"><\/div>`);
}
setTimeout(function(){
flash_block = 0;
$("#avgbackground").html(`<img src="${bgarray[background_array[background_array.length - 1]]}" style="display:none;" draggable="false"/>`);
$("#avgbackground").children("img").fadeIn(control_parament.rate * 5);
}, background_array.length * (control_parament.delay + control_parament.rate * 2 + control_parament.duration) * 5);
let time_start = ((i + 1) * control_parament.delay + i * control_parament.rate * 2 + i * control_parament.duration) * 5;
setTimeout(function(){
$("#avgbackground").html(`<img src="${bgarray[background_array[i]]}" style="display:none;" draggable="false"/>`);
$("#avgbackground").children("img").fadeIn(control_parament.rate * 5);
}, time_start);
} else the_center += `left:152px;">`;
the_center += `<img draggable="false" src="` + dollarray[newavgdoll.center] + `" style="`;
if((avgpicstr.indexOf("<通讯框>") != -1) && (avgpicstr.indexOf("<通讯框>") > avgpicstr.indexOf(";"))){
the_center += `background-color:#12131d; -webkit-mask-image:url(/images/d/d0/Mask.png); -webkit-mask-position-x: 28px; -webkit-mask-size: 850px;"/>` + telemask + `<\/div>`;
} else the_left += `left:-20px;">`;
the_left += `<img draggable="false" src="` + dollarray[newavgdoll.left] + `" style="`;
if((avgpicstr.indexOf("<通讯框>") != -1) && (avgpicstr.indexOf("<通讯框>") < avgpicstr.indexOf(";"))){
the_left += `background-color:#12131d; -webkit-mask-image:url(/images/d/d0/Mask.png); -webkit-mask-position-x: 28px; -webkit-mask-size: 850px;"/>` + telemask + `<\/div>`;
} else the_right += `left:324px;">`;
the_right += `<img draggable="false" src="` + dollarray[newavgdoll.right] + `" style="`;
if((avgpicstr.indexOf("<通讯框>") != -1) && (avgpicstr.indexOf("<通讯框>") > avgpicstr.indexOf(";"))){
the_right += `background-color:#12131d; -webkit-mask-image:url(/images/d/d0/Mask.png); -webkit-mask-position-x: 28px; -webkit-mask-size: 850px;"/>` + telemask + `<\/div>`;
//word line - color & size handler
if(thisline.indexOf(":") != -1){
let keyword = (thisline.indexOf("+") != -1) ? "+" : ((thisline.indexOf("<c>") != -1) ? "<c>" : (thisline.indexOf('<cg>') != -1 ? '<cg>' : "\n"));
let line = thisline.slice(thisline.indexOf(":") + 1, thisline.length);
// color & size
avgbranches = line_temp.split("<c>");
console.log(avgbranches);
} else if (line.indexOf('<cg>') != -1) {
let line_temp = line.slice(line.indexOf('<cg>') + 4, line.length).replace('\r', '');
avgbranches = line_temp.split('<cg>').map(opt => 'cg' + opt);
console.log(avgbranches);
}
} else {
log_string += `<\/td><td style="width:80%; vertical-align:baseline;">` + ((thisline.indexOf("<分支") != -1) ? ("分支" + thisline[thisline.indexOf("<分支") + 4] + "<br>") : "");
log_string += thisline.slice(thisline.indexOf(":") + 1, thisline.length).replace(/\+/g, "<br>").replace(/<c>/g, " 分支") + `<\/td><\/tr><\/table><\/div>`;
log_string += thisline.slice(thisline.indexOf(":") + 1, thisline.length).replace(/\+/g, "<br>").replace(/<cg>/g, " 分支") + `<\/td><\/tr><\/table><\/div>`;
if(avgtxt.indexOf("\n", logpos) == -1) break;
while(1){
var thisline = (avgtxt.indexOf("\n", logpos) == -1) ? avgtxt.slice(logpos, avgtxt.length) : avgtxt.slice(logpos, avgtxt.indexOf("\n", logpos));
thisline = thisline.replace(/\<Position\>[0-9]{1,3},[0-9]{1,3}\<\/Position\>/g, '');
if(thisline.indexOf("<Speaker>") != -1 && thisline.indexOf("()<Speaker>") == -1){

导航菜单