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

“Widget:AVGplayer/js”的版本间的差异

来自少前百科GFwiki
跳转至: 导航搜索
(校对纠错)
(更新)
第26行: 第26行:
 
xmlhttp_Spot.send();
 
xmlhttp_Spot.send();
  
 +
 +
var animearray = {
 +
    "%%code=AVG_ink1%%":"http://www.gfwiki.org/images/2/26/AVG_ink1.flv",
 +
}
  
 
var linepos = 0;
 
var linepos = 0;
var endsign = 0; //该剧情是否结束的标志
+
var endsign = 0; /* 该剧情是否结束的标志 */
var avgtxt = ""; //avg文本
+
var avgtxt = ""; /* avg文本 */
var avgdoll = {left:0,center:0,right:0}; // 当前立绘
+
var avgdoll = {left:0, center:0, right:0}; /*  当前立绘 */
var avgnextline = ""; //当一个场景有多个+台词时
+
var avgnextline = ""; /* 当一个场景有多个+台词时 */
 
+
var avgbranches = [];
var autosign = 0; //是否开启自动模式
+
var branchblock = 0;
var autospeed = 4; //自动速度
+
var branchchosen = 0;
  
var logallsign = 0; //log是否展示全部的标志
+
var autosign = 0; /* 是否开启自动模式 */
 +
var autospeed = 4;  /* 自动速度 */
 +
 +
var logallsign = 0; /* log是否展示全部的标志 */
  
var printwordstr; //打印的台词
+
var printwordstr; /* 打印的台词 */
var printwordnum; //打印台词的位置
+
var printwordnum; /* 打印台词的位置 */
  
var blacksign = 0; //黑幕的标志
+
var blacksign = 0; /* 黑幕的标志 */
  
 
var loadingfile = "";
 
var loadingfile = "";
第62行: 第69行:
 
         xmlhttp.send();
 
         xmlhttp.send();
  
 +
        loadingfile = $(this).attr("link");
 
         $("#avgtitle").html($(this).children("span.avgname").html());
 
         $("#avgtitle").html($(this).children("span.avgname").html());
         loadingfile = $(this).attr("link");
+
         console.log($(this).children("span.avgname").html().replace(/<span class="subsign">/g, "").replace(/<\/span>/g, "") + " : " + $(this).attr("link"));
        console.log($(this).attr("link"));
 
 
         $("#avgbgm").attr("src", "");
 
         $("#avgbgm").attr("src", "");
 
         $("#avgbackground").html("");
 
         $("#avgbackground").html("");
第108行: 第115行:
 
         <div id="avgbox">
 
         <div id="avgbox">
 
             <div id="avgbackground"></div>
 
             <div id="avgbackground"></div>
 +
            <video id="avganime" autoplay="autoplay" preload="auto"></video>
 
             <div id="avgword">
 
             <div id="avgword">
 
                 <div id="avgspeaker"></div>
 
                 <div id="avgspeaker"></div>
第262行: 第270行:
  
 
function readline(){
 
function readline(){
     if(endsign == 1 || blacksign == 1) return;
+
     if(endsign == 1 || blacksign == 1 || branchblock == 1) return;
  
 
     if(avgnextline){
 
     if(avgnextline){
第274行: 第282行:
 
     }
 
     }
  
     var thisline = avgtxt.slice(linepos, avgtxt.indexOf("\n", linepos));
+
    if(avgbranches.length != 0){
 +
        let html_string = `<div id="avgbranchdiv">`;
 +
        for(i in avgbranches) html_string += `<div class="avgbranch" index="${i}">${avgbranches[i]}</div>`;
 +
        html_string += `</div>`;
 +
 
 +
        $("#avgbox").append(html_string);
 +
        avgbranches = [];
 +
        branchblock = 1;
 +
       
 +
        $(".avgbranch").click(function(){
 +
            branchblock = 0;
 +
            branchchosen = Number($(this).attr("index")) + 1;
 +
            $("#avgbranchdiv").remove();
 +
        });
 +
        return;
 +
    }
 +
 
 +
     var thisline = (avgtxt.indexOf("\n", linepos) == -1) ? avgtxt.slice(linepos, avgtxt.length) : avgtxt.slice(linepos, avgtxt.indexOf("\n", linepos));
 +
 
 +
    // branches
 +
    while(thisline.indexOf("<分支>") != -1 && Number(thisline[thisline.indexOf("<分支>") + 4]) != branchchosen){
 +
        if(avgtxt.indexOf("\n", linepos) == -1) { endsign = 1; return;}
 +
        linepos = avgtxt.indexOf("\n", linepos) + 1;
 +
        thisline = (avgtxt.indexOf("\n", linepos) == -1) ? avgtxt.slice(linepos, avgtxt.length) : avgtxt.slice(linepos, avgtxt.indexOf("\n", linepos));
 +
    }
 +
    if(thisline.indexOf("<分支>") == -1 && branchchosen != 0) branchchosen = 0;
  
     //black
+
     // black
 
     if(thisline.indexOf("<黑屏2>") != -1 && blacksign == 0){
 
     if(thisline.indexOf("<黑屏2>") != -1 && blacksign == 0){
 
         $(".avgdollpic").fadeOut(1000 / autospeed); $(".avgefect").fadeOut(1000 / autospeed);
 
         $(".avgdollpic").fadeOut(1000 / autospeed); $(".avgefect").fadeOut(1000 / autospeed);
第296行: 第329行:
 
     }
 
     }
  
     //bgm
+
     // bgm
 
     if(thisline.indexOf("<BGM>") != -1){
 
     if(thisline.indexOf("<BGM>") != -1){
 
         $("#avgbgm").attr("src", bgmarray[thisline.slice(thisline.indexOf("<BGM>") + ("<BGM>").length, thisline.indexOf("</BGM>"))]);
 
         $("#avgbgm").attr("src", bgmarray[thisline.slice(thisline.indexOf("<BGM>") + ("<BGM>").length, thisline.indexOf("</BGM>"))]);
第302行: 第335行:
 
     }
 
     }
  
     //background
+
     // background
 
     if(thisline.indexOf("<BIN>") != -1){
 
     if(thisline.indexOf("<BIN>") != -1){
 
         var bgsrc = bgarray[thisline.slice(thisline.indexOf("<BIN>") + ("<BIN>").length, thisline.indexOf("</BIN>"))];
 
         var bgsrc = bgarray[thisline.slice(thisline.indexOf("<BIN>") + ("<BIN>").length, thisline.indexOf("</BIN>"))];
 
         $("#avgbackground").html(`<img src="` + bgsrc + `"/>`);
 
         $("#avgbackground").html(`<img src="` + bgsrc + `"/>`);
 
         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>`);
 
         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>`);
 +
    }
 +
   
 +
    // background_mp4 common_effect
 +
    if(thisline.indexOf("<common_effect>") != -1){
 +
        var animesrc = animearray[thisline.slice(thisline.indexOf("<common_effect>") + ("<common_effect>").length, thisline.indexOf("</common_effect>"))];
 +
        $("#avganime").css("display","unset");
 +
        $("#avganime").attr("src", animesrc);
 +
        $("#avganime").bind('ended', function(){
 +
            $("#avganime").css("display","none");
 +
        });
 
     }
 
     }
  
第357行: 第400行:
 
                     if(target_name == this_name){
 
                     if(target_name == this_name){
 
                         cen_sign = 0;
 
                         cen_sign = 0;
 +
                        $(avgdoll_div[i]).stop();
 
                         $(avgdoll_div[i]).css({"z-index":"6"});
 
                         $(avgdoll_div[i]).css({"z-index":"6"});
 
                         $(avgdoll_div[i]).animate({"left":"152px"}, 300);
 
                         $(avgdoll_div[i]).animate({"left":"152px"}, 300);
第380行: 第424行:
 
                         the_center += `<img src="` + dollarray[newavgdoll.center] + `" style="`;
 
                         the_center += `<img src="` + dollarray[newavgdoll.center] + `" style="`;
 
                         if((avgpicstr.indexOf("<通讯框>") != -1) && (avgpicstr.indexOf("<通讯框>") > avgpicstr.indexOf(";"))){
 
                         if((avgpicstr.indexOf("<通讯框>") != -1) && (avgpicstr.indexOf("<通讯框>") > avgpicstr.indexOf(";"))){
                             the_center += `background-color:#12131d; -webkit-mask-image:url(http://www.gfwiki.org/images/d/d0/Mask.png);"/>` + telemask + `</div>`;
+
                             the_center += `background-color:#12131d; -webkit-mask-image:url(http://www.gfwiki.org/images/d/d0/Mask.png); -webkit-mask-position-x: 20px; -webkit-mask-size: 850px;"/>` + telemask + `</div>`;
 
                         } else the_center += `"/></div>`;
 
                         } else the_center += `"/></div>`;
 
                         $("#avgbox").append(the_center);
 
                         $("#avgbox").append(the_center);
第398行: 第442行:
 
                     if(left_name == this_name){
 
                     if(left_name == this_name){
 
                         left_sign = 0;
 
                         left_sign = 0;
 +
                        $(avgdoll_div[i]).stop();
 
                         $(avgdoll_div[i]).animate({"left":"-20px"}, 300);
 
                         $(avgdoll_div[i]).animate({"left":"-20px"}, 300);
 
                         $(avgdoll_div[i]).css({"z-index":((the_speaker == "left") ? "4" : "2")});
 
                         $(avgdoll_div[i]).css({"z-index":((the_speaker == "left") ? "4" : "2")});
第418行: 第463行:
 
                     } else if(right_name == this_name){
 
                     } else if(right_name == this_name){
 
                         right_sign = 0;
 
                         right_sign = 0;
 +
                        $(avgdoll_div[i]).stop();
 
                         $(avgdoll_div[i]).animate({"left":"324px"}, 300);
 
                         $(avgdoll_div[i]).animate({"left":"324px"}, 300);
 
                         $(avgdoll_div[i]).css({"z-index":((the_speaker == "right") ? "4" : "2")});
 
                         $(avgdoll_div[i]).css({"z-index":((the_speaker == "right") ? "4" : "2")});
第447行: 第493行:
 
                         the_left += `<img src="` + dollarray[newavgdoll.left] + `" style="`;
 
                         the_left += `<img src="` + dollarray[newavgdoll.left] + `" style="`;
 
                         if((avgpicstr.indexOf("<通讯框>") != -1) && (avgpicstr.indexOf("<通讯框>") < avgpicstr.indexOf(";"))){
 
                         if((avgpicstr.indexOf("<通讯框>") != -1) && (avgpicstr.indexOf("<通讯框>") < avgpicstr.indexOf(";"))){
                             the_left += `background-color:#12131d; -webkit-mask-image:url(http://www.gfwiki.org/images/d/d0/Mask.png);"/>` + telemask + `</div>`;
+
                             the_left += `background-color:#12131d; -webkit-mask-image:url(http://www.gfwiki.org/images/d/d0/Mask.png); -webkit-mask-position-x: 20px; -webkit-mask-size: 850px;"/>` + telemask + `</div>`;
 
                         } else the_left += `"/></div>`;
 
                         } else the_left += `"/></div>`;
 
                         $("#avgbox").append(the_left);
 
                         $("#avgbox").append(the_left);
第458行: 第504行:
 
                         the_right += `<img src="` + dollarray[newavgdoll.right] + `" style="`;
 
                         the_right += `<img src="` + dollarray[newavgdoll.right] + `" style="`;
 
                         if((avgpicstr.indexOf("<通讯框>") != -1) && (avgpicstr.indexOf("<通讯框>") > avgpicstr.indexOf(";"))){
 
                         if((avgpicstr.indexOf("<通讯框>") != -1) && (avgpicstr.indexOf("<通讯框>") > avgpicstr.indexOf(";"))){
                             the_right += `background-color:#12131d; -webkit-mask-image:url(http://www.gfwiki.org/images/d/d0/Mask.png);"/>` + telemask + `</div>`;
+
                             the_right += `background-color:#12131d; -webkit-mask-image:url(http://www.gfwiki.org/images/d/d0/Mask.png); -webkit-mask-position-x: 20px; -webkit-mask-size: 850px;"/>` + telemask + `</div>`;
 
                         } else the_right += `"/></div>`;
 
                         } else the_right += `"/></div>`;
 
                         $("#avgbox").append(the_right);
 
                         $("#avgbox").append(the_right);
第481行: 第527行:
 
     //word line - color & size handler
 
     //word line - color & size handler
 
     if(thisline.indexOf(":") != -1){
 
     if(thisline.indexOf(":") != -1){
         let keyword = (thisline.indexOf("+") != -1) ? "+" : "\n";
+
         let keyword = (thisline.indexOf("+") != -1) ? "+" : ((thisline.indexOf("<c>") != -1) ? "<c>" : "\n");
 
         let line = thisline.slice(thisline.indexOf(":") + 1, thisline.length);
 
         let line = thisline.slice(thisline.indexOf(":") + 1, thisline.length);
 
         // color & size
 
         // color & size
         line = line.replace(/<\/color>/g, "</span").replace(/<\/Size>/g, "</span");
+
         line = line.replace(/<\/color>/g, "</span>").replace(/<\/Size>/g, "</span>");
        line = line.replace(/<color=/g, "<span style=\"color:").replace(/<Size=/g, "<span style=\"font-size:1");
 
 
         for(let j = 0; j < line.length; j++){
 
         for(let j = 0; j < line.length; j++){
             if(line.slice(j - ("font-size:1").length, j) == "font-size:1") line = line.slice(0, j+2) + "%" + line.slice(j+2, line.length);
+
             if(line.slice(j - ("<Size=").length, j) == "<Size="){
 +
                let size_num = (Number(line.slice(j, j+2)) / 2.4).toFixed(0);
 +
                line = line.slice(0, j - ("<Size=").length) + "<span style=\"font-size:" + size_num + "px;\"" + line.slice(j+2, line.length);
 +
            } else if(line.slice(j - ("<color=").length, j) == "<color="){
 +
                line = line.slice(0, j - ("<color=").length) + "<span style=\"color:" + line.slice(j, j + ("#000000").length) + ";\"" + line.slice(j + ("#000000").length, line.length);
 +
            }
 
         }
 
         }
         line = line.replace(/>/g, "\">").replace(/<\/span/g, "<\/span>");
+
         printwordstr = (keyword == "\n" && line.indexOf("/n") == -1) ? line : line.slice(0, line.indexOf(keyword));
 
 
        printwordstr = line.slice(0, line.indexOf(keyword));
 
  
 +
        $("#avgword").stop();
 
         $("#avgword").animate({opacity:"0.0"}, 400, "swing");
 
         $("#avgword").animate({opacity:"0.0"}, 400, "swing");
 
         setTimeout(function(){ $("#avgline").html(""); $("#avgword").animate({opacity:"1.0"}, 400, "swing");}, 400);
 
         setTimeout(function(){ $("#avgline").html(""); $("#avgword").animate({opacity:"1.0"}, 400, "swing");}, 400);
第499行: 第548行:
  
 
         if((line.indexOf("+") != -1)) avgnextline = line.slice(line.indexOf("+") + 1, line.length);
 
         if((line.indexOf("+") != -1)) avgnextline = line.slice(line.indexOf("+") + 1, line.length);
 +
        else if(line.indexOf("<c>") != -1) {
 +
            let line_temp = line.slice(line.indexOf("<c>") + 3, line.length).replace("\r", "");
 +
            avgbranches = line_temp.split("<c>");
 +
            // branches max number 6
 +
            /*for(let k = 0; k < 6; k ++) {
 +
                if(line_temp.indexOf("<c>" == -1) || line_temp.length == 0) break;
 +
                console.log("before" + line_temp);
 +
                line_temp = line_temp.slice(line_temp.indexOf("<c>") + 3, line_temp.length);
 +
                console.log("after" + line_temp);
 +
                avgbranches.push(line_temp.slice(0, line_temp.indexOf("<c>")));
 +
                console.log("push" + line_temp.slice(0, line_temp.indexOf("<c>")));
 +
            }*/
 +
            console.log(avgbranches);
 +
        }
 
     } else {
 
     } else {
 +
        $("#avgword").stop();
 
         $("#avgword").animate({opacity:"0.0"}, 400, "swing");
 
         $("#avgword").animate({opacity:"0.0"}, 400, "swing");
 
         setTimeout(function(){ $("#avgline").html(""); $("#avgword").animate({opacity:"1.0"}, 400, "swing");}, 400);
 
         setTimeout(function(){ $("#avgline").html(""); $("#avgword").animate({opacity:"1.0"}, 400, "swing");}, 400);
第515行: 第579行:
  
 
function autoreadline(){
 
function autoreadline(){
     if(autosign == 0) return;
+
     if(autosign == 0 || branchblock == 1) return;
 
     if($("#avglog").attr("state") != "on") readline();
 
     if($("#avglog").attr("state") != "on") readline();
 
     setTimeout(function(){
 
     setTimeout(function(){
第618行: 第682行:
 
     }
 
     }
  
     console.log("Doll Image"); console.log(loading.doll);
+
     console.log("Doll Image array"); console.log(loading.doll);
     console.log("Background CG"); console.log(loading.bg);
+
     console.log("Background CG array"); console.log(loading.bg);
     console.log("Background Music"); console.log(loading.bgm);
+
     console.log("Background Music array"); console.log(loading.bgm);
 
     loadingfin.doll = loading.doll.length;
 
     loadingfin.doll = loading.doll.length;
 
     loadingfin.bg = loading.bg.length;
 
     loadingfin.bg = loading.bg.length;

2021年4月25日 (日) 12:42的版本