24,691
个编辑
更改
更新
var dollarray = {
var bgmarray = {
var bgarray = {
var linepos = 0;
var avgtxt = ""; //avg文本
var avgdoll = {left:0,center:0,right:0}; // 当前立绘
var avgnextline = ""; //当一个场景有多个+台词时
var blacksign = 0; //黑幕的标志
var loadingfin = {doll:0, bg:0, bgm:0};var loadingnow = {doll:0, bg:0, bgm:0};
function avgcreat(){
<div class="avgchoice" link="http://www.gfwiki.org/images/0/04/AVG-31-1A2-1.txt">幻影的和平 Ⅱ</div>
<div class="avgchoice" link="http://www.gfwiki.org/images/6/6a/AVG-44-B0-1.txt">测试2</div>`;
$("#avgchosebox").html(output);
$(".avgchoice").css({"border":"1px #8886 solid", "padding":"6px 4px"});
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) { avgtxt = (this.responseText); readline(); firstloading(); }
};
xmlhttp.open("GET", $(this).attr("link"), true);
$("#avgbgm").attr("src", "");
$("#avgbackground").html("");
$("#avgdollcent").html(""); $("#avgdollleft").html(""); $("#avgdollrigh").html(""); $("#avgdollleftmask").css("display","none"); $("#avgdollrighmaskavgdollpic").cssremove("display","none"); $("#avgbackground").html("");
linepos = 0;
avgnextline = 0;
<div id="avgtobegin" class="avgpushbutton" style="display:inline-block; user-select:none; border:1px #eaeaea solid; padding:5px 10px; cursor:pointer;">返回开始</div>
<div id="avgchose" state="off" class="avgpushbutton" style="display:inline-block; user-select:none; border:1px #eaeaea solid; padding:5px 10px; cursor:pointer;">选择剧情</div>
<div id="avgload" style="display:inline-block; border-bottom:1px #eaeaea solid; font-size:12px; vertical-align:bottom; margin-left:12px;">加载进度: PIC[0/0] CG[0/0] BGM[0/0]</div>
</div>
<div id="avgbox" style="width:1200px; height:675px; user-select:none; background-color:#111; border:1px #8888 solid;">
<div id="avgbackground" style="position:absolute; width:1200px; height:675px; overflow:hidden; background-color:#111; z-index:1;"></div>
<div id="avgword" style="width:600px; height:120px; position:absolute; top:584px; left:300px; z-index:7; background-image:url(http://www.gfwiki.org/images/3/3e/Avglinebg.png); background-size:7px; border: 1px #8888 solid; box-shadow: 0px 0px 3px #8888;">
<div id="avgspeaker" style="margin:2px 8px; font-size:120%;"></div>
$(this).css({"border":"1px #eaeaea solid","padding":"5px 10px"});
});
$(".avgpushbutton").mousedown(function(){
$(this).css({"background-color":"#f4c430aa","color":"black"});
//black
if(thisline.indexOf("<黑屏2>") != -1 && blacksign == 0){
$("#avgdollcent").html(""); $("#avgdollleftavgdollpic").htmlremove(""); $("#avgdollleftmask").css("display","none"); $("#avgdollrigh").html(""); $("#avgdollrighmask").css("display","none");
$("#avgspeaker").html(""); $("#avgline").html("");
$("#avgbackground").html(""); $("#avgbgm").attr("src", "");
$("#avgbackground").fadeOut(1000 / autospeed); $("#avgword").fadeOut(1000 / autospeed);
blacksign = 1;
if(thisline.indexOf("<Speaker>") != -1){
var avgpicstr = thisline.slice(0, thisline.indexOf("||"));
var newavgdoll = {left:0,center:0,right:0};
var the_speaker = "center";
// center if(avgpicstr.indexOf(";") == -1 && avgpicstr.indexOf("()") == -1){ avgpiccen newavgdoll.center = avgpicstr.slice(0, avgpicstr.indexOf("<Speaker>")); $("#avgdollcent").html(`<img name-data="` + avgpiccen + `"src="` + dollarray[avgpiccen] + `" style="width:675px; overflow:hidden;" //>`); $("#avgdollleft").html(""); $("#avgdollleftmask").css({"display":"none"}); $("#avgdollrigh").html(""); $("#avgdollrighmask").css({"display":"none"}); }
else if(thisline.indexOf(";") == -1 && thisline.indexOf("()") != -1){}
// speaker = left else if((avgpicstr.indexOf("<Speaker>") < avgpicstr.indexOf(";"))){ the_speaker = "left";
avgpicleft = avgpicstr.slice(0, avgpicstr.indexOf("<Speaker>"));
avgpicrigh = avgpicstr.slice(avgpicstr.indexOf(";") + 1, avgpicstr.length);
}
// speaker = right
else if(avgpicstr.indexOf("<Speaker>") > avgpicstr.indexOf(";")){
the_speaker = "right";
avgpicleft = avgpicstr.slice(0, avgpicstr.indexOf(";"));
avgpicrigh = avgpicstr.slice(avgpicstr.indexOf(";") + 1, avgpicstr.indexOf("<Speaker>"));
}
}
if(thisline.indexOf("<Speaker>") != -1){
var speaker = thisline.slice(thisline.indexOf("<Speaker>") + ("<Speaker>").length , thisline.indexOf("</Speaker>"));
setTimeout(function(){ $("#avgspeaker").html(speaker); }, 500300);
}
else setTimeout(function(){ $("#avgspeaker").html(" "); }, 500300);
//word line
var fontcolor = (printwordstr.indexOf("color") == -1) ? "#EAEAEA" : printwordstr.slice(7, 14);
$("#avgword").fadeOut(500300); setTimeout(function(){ $("#avgline").html(""); $("#avgword").fadeIn(500300);}, 500300); setTimeout(function(){ printword(); $("#avgline").css("color", fontcolor);}, 800400);
if(printwordstr.indexOf("color") != -1) printwordstr = printwordstr.slice("<color=#00CCFF>".length, printwordstr.indexOf("</color>"));
printwordnum = 1;
if((thisline.indexOf("+") != -1)) avgnextline = thisline.slice(thisline.indexOf("+") + 1, thisline.length);
} else {
$("#avgword").fadeOut(500300); setTimeout(function(){ $("#avgline").html(""); $("#avgword").fadeIn(500300);}, 500300);
}
if(blacksign == 1){
$("#avgdollcent").fadeIn(3200 / autospeed); $("#avgdollleft").fadeIn(3200 / autospeed); $("#avgdollrighavgdollpic").fadeIn(3200 / autospeed); $("#avgbackground").fadeIn(2000 / autospeed); $("#avgword").fadeIn(4000 / autospeed);
blacksign = 0;
}
var logline = 1;
var output = ``;
while(1){
var thisline = (avgtxt.indexOf("\n", logpos) == -1) ? avgtxt.slice(logpos, avgtxt.length) : avgtxt.slice(logpos, avgtxt.indexOf("\n", logpos));
output += `<div style="border:1px #8886 solid; padding:6px 4px;"><table style="width:100%;"><tr>`; output += `<td avgpos="` + logpos + `" `; if(thisline.indexOf("<黑屏2>") != -1) output += ` class="avglogtd" style="background-color: #eaeaeaaa; color:black; cursor:alias;`; else output += ` style="background-color: inherit; color:inherit;`; output += `width:5%; text-align:center; vertical-align:baseline; cursor:alias;">` + logline + `</td>`;
output += `<td style="width:15%; text-align:center; vertical-align:baseline;">` + ((thisline.indexOf("<Speaker>") != -1) ? thisline.slice(thisline.indexOf("<Speaker>") + ("<Speaker>").length , thisline.indexOf("</Speaker>")) : "");
output += `</td><td style="width:80%; vertical-align:baseline;">` + thisline.slice(thisline.indexOf(":") + 1, thisline.length).replace(/\+/g, "<br>") + `</td></tr></table></div>`;
if(avgtxt.indexOf("\n", logpos) == -1) break;
logpos = avgtxt.indexOf("\n", logpos) + 1;
readline();
});
} function firstloading(){ $loadingfin = {doll:0, bg:0, bgm:0}; loadingnow = {doll:0, bg:0, bgm:0}; var logpos = 0; var loading = {doll:[], bg:[], bgm:[]}; while(1){ var thisline = (avgtxt.indexOf("\n", logpos) == -1) ? avgtxt.slice(logpos, avgtxt.length) : avgtxt.slice(logpos, avgtxt.indexOf("\n", logpos)); if(thisline.indexOf("<Speaker>") != -1){ let avgpicstr = thisline.slice(0, thisline.indexOf("||")); let newavgdoll = []; if(avgpicstr.indexOf(";") == -1 && avgpicstr.indexOf("()") == -1){ newavgdoll.push(avgpicstr.slice(0, avgpicstr.indexOf("<Speaker>"))); } else if(thisline.indexOf(";") == -1 && thisline.indexOf("()") != -1){ } else if(avgpicstr.indexOf("<Speaker>") < avgpicstr.indexOf(";")){ newavgdoll.push(avgpicstr.slice(0, avgpicstr.indexOf("<Speaker>"))); newavgdoll.push(avgpicstr.slice(avgpicstr.indexOf(";") + 1, avgpicstr.length)); } else if(avgpicstr.indexOf("<Speaker>") > avgpicstr.indexOf(";")){ newavgdoll.push(avgpicstr.slice(0, avgpicstr.indexOf(";"))); newavgdoll.push(avgpicstr.slice(avgpicstr.indexOf(";") + 1, avgpicstr.indexOf("<Speaker>"))); } for(let i = 0; i < newavgdoll.length; i++){ let sign = 1; for(let j = 0; j < loading.doll.length; j++){ if(newavgdoll[i] == loading.doll[j]){ sign = 0; break; } } if(sign) loading.doll.push(newavgdoll[i]); } } if(thisline.indexOf("<BGM>") != -1){ let sign = 1; let a = thisline.slice(thisline.avglogtdindexOf("<BGM>") + ("<BGM>").mouseoverlength, thisline.indexOf(function"</BGM>")); for(let i = 0; i < loading.bgm.length; i++){ if(a == loading.bgm[i]){sign = 0; break; } } if(sign) loading.bgm.push(a); } $if(thisline.indexOf("<BIN>") != -1){ let sign = 1; let a = thisline.slice(thisline.indexOf("<BIN>") + (this"<BIN>").csslength, thisline.indexOf("</BIN>")); for(let i = 0; i < loading.bg.length; i++){ if(a == loading.bg[i]){ sign = 0; break; } } if(sign) loading.bg.push(a); } if(avgtxt.indexOf("background\n", logpos) == -color1) break; logpos = avgtxt.indexOf("\n", logpos) + 1; } console.log(loading); loadingfin.doll = loading.doll.length; loadingfin.bg = loading.bg.length; loadingfin.bgm = loading.bgm.length; $("#avgload").html("加载进度:PIC[" + loadingnow.doll + "/" + loadingfin.doll + "] CG[" + loadingnow.bg + "/" + loadingfin.bg + "] BGM[" + loadingnow.bgm + "/" + loadingfin.bgm + "]"); for(i in loading.doll){ var img = new Image(); $(img).load(function(){ loadingnow.doll ++; $("#eaeaeaaaavgload").html("加载进度: PIC[" + loadingnow.doll + "/" + loadingfin.doll + "] CG[" + loadingnow.bg + "/" + loadingfin.bg + ",] BGM[" + loadingnow.bgm + "color/":+ loadingfin.bgm + "black]"); $(this).remove(); }); $(img).attr("src", dollarray[loading.doll[i]]); } for(i in loading.bg){ var img = new Image(); $(img).load(function(){ loadingnow.bg ++; $("#avgload").html("加载进度: PIC[" + loadingnow.doll + "/" + loadingfin.doll + "] CG[" + loadingnow.bg + "/" + loadingfin.bg + "] BGM[" + loadingnow.bgm + "/" + loadingfin.avglogtdbgm + "]"); $(this).mouseoutremove(); }); $(img).attr("src", bgarray[loading.bg[i]]); } for(i in loading.bgm){ var audio = new Audio(); $(audio).load(function(){ loadingnow.bgm ++; $("#avgload").html("加载进度: PIC[" + loadingnow.doll + "/" + loadingfin.doll + "] CG[" + loadingnow.bg + "/" + loadingfin.bg + "] BGM[" + loadingnow.bgm + "/" + loadingfin.bgm + "]"); $(this).remove(); }); $(thisaudio).cssattr({"background-colorsrc":bgmarray[loading.bgm[i]], "preload":"inheritpreload","colorcontrols":"inheritcontrols"}); });
}
})</script></includeonly><noinclude>{{#Widget:AVGplayer}}</noinclude>