◆少前百科是非盈利性、非官方的少女前线维基百科。 ◆如果您发现某些内容错误/空缺,请勇于修正/添加!参与进来其实很容易!点这里 加入少前百科。 ◆有任何意见、建议、纠错,欢迎在 GFwiki:反馈与建议 提出和讨论。编辑事务讨论QQ群:597764980,微博@GFwiki少前百科 ◆To foreigners,You can use twitter to contact us. |
“Widget:AVGplayer/js”的版本间的差异
(测试) |
小 |
||
(未显示3个用户的32个中间版本) | |||
第1行: | 第1行: | ||
<includeonly><script type="text/javascript">(window.RLQ=window.RLQ||[]).push(function(){ | <includeonly><script type="text/javascript">(window.RLQ=window.RLQ||[]).push(function(){ | ||
− | var dollarray | + | var dollarray, bgarray, bgmarray, searray; |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | 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_doll.send(); | ||
− | var | + | var xmlhttp_bg = new XMLHttpRequest(); |
− | + | xmlhttp_bg.onreadystatechange = function() { | |
− | |||
if (this.readyState == 4 && this.status == 200) { | if (this.readyState == 4 && this.status == 200) { | ||
bgarray = JSON.parse(this.responseText.replace(/\/\*\s{1,4}\d{1,4}\s{1,4}\*\//g,"").replace(",\n}", "\n}"));} | bgarray = JSON.parse(this.responseText.replace(/\/\*\s{1,4}\d{1,4}\s{1,4}\*\//g,"").replace(",\n}", "\n}"));} | ||
}; | }; | ||
− | + | xmlhttp_bg.open("GET", "/index.php?title=JSON:AVGBGCG&action=raw", true); | |
− | + | xmlhttp_bg.send(); | |
− | var | + | var xmlhttp_bgm = new XMLHttpRequest(); |
− | + | xmlhttp_bgm.onreadystatechange = function() { | |
− | + | if (this.readyState == 4 && this.status == 200) { | |
− | + | bgmarray = JSON.parse(this.responseText.replace(/\/\*\s{1,4}\d{1,4}\s{1,4}\*\//g,"").replace(",\n}", "\n}"));} | |
− | + | }; | |
− | + | xmlhttp_bgm.open("GET", "/index.php?title=JSON:AVGBGM&action=raw", true); | |
− | + | xmlhttp_bgm.send(); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | var xmlhttp_se = new XMLHttpRequest(); | |
− | + | xmlhttp_se.onreadystatechange = function() { | |
− | + | if (this.readyState == 4 && this.status == 200) { | |
− | + | searray = JSON.parse(this.responseText.replace(/\/\*\s{1,4}\d{1,4}\s{1,4}\*\//g,"").replace(",\n}", "\n}"));} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
}; | }; | ||
+ | xmlhttp_se.open("GET", "/index.php?title=JSON:AVGSE&action=raw", true); | ||
+ | xmlhttp_se.send(); | ||
− | var | + | 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 = { | var effarray = { | ||
− | "%%code=AVG_ink1%%":" | + | "%%code=AVG_ink1%%":"/images/Video/AVG/AVG_ink1.mp4", |
− | "%%code=AVG_ink2%%":" | + | "%%code=AVG_ink2%%":"/images/Video/AVG/AVG_ink2.mp4", |
− | "%%code=AVG_ink3%%":" | + | "%%code=AVG_ink3%%":"/images/Video/AVG/AVG_ink3.mp4", |
− | "%%code=AVG_ink4%%":" | + | "%%code=AVG_ink4%%":"/images/Video/AVG/AVG_ink4.mp4", |
− | "%%code=AVG_ink5%%":" | + | "%%code=AVG_ink5%%":"/images/Video/AVG/AVG_ink5.mp4", |
− | "%%code=AVG_ink6%%":" | + | "%%code=AVG_ink6%%":"/images/Video/AVG/AVG_ink6.mp4", |
− | "%%code=NPC_TV_0%%":" | + | |
− | "%%code=NPC_TV_1%%":" | + | "%%code=NPC_TV_0%%":"/images/2/2c/NPC-news%280%29.png", |
− | "%%code=NPC_TV_2%%":" | + | "%%code=NPC_TV_1%%":"/images/2/2e/NPC-news%281%29.png", |
− | "%%code=NPC_TV_3%%":" | + | "%%code=NPC_TV_2%%":"/images/8/81/NPC-news%282%29.png", |
− | "%%code=NPC_TV_4%%":" | + | "%%code=NPC_TV_3%%":"/images/b/bc/NPC-news%283%29.png", |
− | "%%code=NPC_TV_5%%":" | + | "%%code=NPC_TV_4%%":"/images/3/37/NPC-news%284%29.png", |
− | "%%code=NPC_TV_6%%":" | + | "%%code=NPC_TV_5%%":"/images/7/76/NPC-news%285%29.png", |
− | "%%code=NPC_TV_7%%":" | + | "%%code=NPC_TV_6%%":"/images/6/69/NPC-news%286%29.png", |
− | "%%code=NPC_TV_8%%":" | + | "%%code=NPC_TV_7%%":"/images/1/1f/NPC-news%287%29.png", |
− | "%%code=NPC_TV_9%%":" | + | "%%code=NPC_TV_8%%":"/images/f/f4/NPC-news%288%29.png", |
− | "%%code=NPC_TV_10%%":" | + | "%%code=NPC_TV_9%%":"/images/f/f2/NPC-news%289%29.png", |
− | "%%code=NPC_TV_11%%":" | + | "%%code=NPC_TV_10%%":"/images/4/40/NPC-news%2810%29.png", |
− | "%%code=NPC_TV_12%%":" | + | "%%code=NPC_TV_11%%":"/images/0/05/NPC-news%2811%29.png", |
− | "%%code=NPC_TV_13%%":" | + | "%%code=NPC_TV_12%%":"/images/a/af/NPC-news%2812%29.png", |
− | "%%code=NPC_TV_14%%":" | + | "%%code=NPC_TV_13%%":"/images/1/13/NPC-news%2813%29.png", |
− | "%%code=NPC_TV_15%%":" | + | "%%code=NPC_TV_14%%":"/images/7/70/NPC-news%2814%29.png", |
− | "%%code=NPC_TV_16%%":" | + | "%%code=NPC_TV_15%%":"/images/8/8c/NPC-news%2815%29.png", |
− | "%%code=NPC_TV_17%%":" | + | "%%code=NPC_TV_16%%":"/images/d/df/NPC-news%2816%29.png", |
− | "%%code=NPC_TV_18%%":" | + | "%%code=NPC_TV_17%%":"/images/d/dc/NPC-news%2817%29.png", |
− | "%%code=NPC_TV_19%%":" | + | "%%code=NPC_TV_18%%":"/images/c/c6/NPC-news%2818%29.png", |
+ | "%%code=NPC_TV_19%%":"/images/c/cf/NPC-news%2819%29.png", | ||
+ | |||
+ | "%%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" | ||
} | } | ||
第257行: | 第100行: | ||
var branchblock = 0; | var branchblock = 0; | ||
var branchchosen = 0; | var branchchosen = 0; | ||
+ | |||
+ | var flash_block = 0; | ||
var autosign = 0; /* 是否开启自动模式 */ | var autosign = 0; /* 是否开启自动模式 */ | ||
第271行: | 第116行: | ||
var loadingfin = {doll:0, bg:0, bgm:0, eff:0}; | var loadingfin = {doll:0, bg:0, bgm:0, eff:0}; | ||
var loadingnow = {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(){ | function avgcreat(){ | ||
$(".avgchoice").click(function(){ | $(".avgchoice").click(function(){ | ||
+ | if (window.pauseMainBgm) window.pauseMainBgm(); | ||
+ | bgmEnd = false; | ||
var xmlhttp = new XMLHttpRequest(); | var xmlhttp = new XMLHttpRequest(); | ||
xmlhttp.onreadystatechange = function() { | xmlhttp.onreadystatechange = function() { | ||
第290行: | 第158行: | ||
$("#avgtitle").html($(this).children("span.avgname").html().replace(/<span class="subsign">/g, "").replace(/<\/span>/g, "")); | $("#avgtitle").html($(this).children("span.avgname").html().replace(/<span class="subsign">/g, "").replace(/<\/span>/g, "")); | ||
console.log($(this).children("span.avgname").html().replace(/<span class="subsign">/g, "").replace(/<\/span>/g, "") + " : " + $(this).attr("link")); | console.log($(this).children("span.avgname").html().replace(/<span class="subsign">/g, "").replace(/<\/span>/g, "") + " : " + $(this).attr("link")); | ||
− | $("#avgbgm").attr("src", ""); | + | $("#avgbgm").attr("src", ""); $(".avgsound").remove(); |
$("#avgbackground").html(""); | $("#avgbackground").html(""); | ||
$(".avgdollpic").remove(); | $(".avgdollpic").remove(); | ||
第301行: | 第169行: | ||
function divcreat(){ | function divcreat(){ | ||
var html_string = ` | var html_string = ` | ||
− | <div id="avgtitle"><\/div> | + | <div id="avgtitle">请选择剧情<\/div> |
<div id="avgsettings"> | <div id="avgsettings"> | ||
第308行: | 第176行: | ||
<div id="avgsound" state="off" class="avgsmallbtn">▢)<\/div> | <div id="avgsound" state="off" class="avgsmallbtn">▢)<\/div> | ||
<div id="avgsoundminus" class="avgsmallbtn avgpushbutton">-<\/div> | <div id="avgsoundminus" class="avgsmallbtn avgpushbutton">-<\/div> | ||
− | <div id="avgsoundwidth" state=" | + | <div id="avgsoundwidth" state="4"><\/div> |
<div id="avgsoundplus" class="avgsmallbtn avgpushbutton">+<\/div> | <div id="avgsoundplus" class="avgsmallbtn avgpushbutton">+<\/div> | ||
<\/div> | <\/div> | ||
第328行: | 第196行: | ||
<div id="avgtobegin" class="avgbutton avgpushbutton">返回开始<\/div> | <div id="avgtobegin" class="avgbutton avgpushbutton">返回开始<\/div> | ||
+ | <div id="avgtonext" class="avgbutton avgpushbutton">下一章节<\/div> | ||
<div id="avgchose" state="off" class="avgbutton">选择剧情<\/div> | <div id="avgchose" state="off" class="avgbutton">选择剧情<\/div> | ||
− | <div id="avgload">加载进度: PIC[0/0] CG[0/0] BGM[0/0] | + | <div id="avgload">加载进度: PIC[0/0] CG[0/0] BGM[0/0] SE[0/0] E[0/0]<\/div> |
<\/div> | <\/div> | ||
第346行: | 第215行: | ||
$(".avgpushbutton").mousedown(function(){ | $(".avgpushbutton").mousedown(function(){ | ||
− | $(this).css({"background-color":"# | + | $(this).css({"background-color":"#eaeaea88","color":"black"}); |
}); | }); | ||
$(".avgpushbutton").mouseup(function(){ | $(".avgpushbutton").mouseup(function(){ | ||
第361行: | 第230行: | ||
$("div#content").css("cssText","margin-left:11em; border:;"); | $("div#content").css("cssText","margin-left:11em; border:;"); | ||
$("#avgdiv").css({"margin-left":"0px", "margin-top":"0px"}); | $("#avgdiv").css({"margin-left":"0px", "margin-top":"0px"}); | ||
− | $(" | + | $(".avgnavigationtitle").css({"margin-left":"0px"}); |
+ | $(".avgnavigation").css({"margin-left":"0px"}); | ||
+ | $(window).scrollTop(340); | ||
} else if($(this).attr("state") == "off"){ | } else if($(this).attr("state") == "off"){ | ||
$(this).attr("state", "on"); | $(this).attr("state", "on"); | ||
− | $(this).css({"background-color":"# | + | $(this).css({"background-color":"#eaeaea","color":"black"}); |
$("#mw-page-base").hide();$("#mw-head-base").hide();$("#mw-navigation").hide(); | $("#mw-page-base").hide();$("#mw-head-base").hide();$("#mw-navigation").hide(); | ||
$("#footer").hide();$(".comment-replybox").hide();$("#siteNotice").hide();$("#firstHeading").hide();$("#contentSub").hide(); | $("#footer").hide();$(".comment-replybox").hide();$("#siteNotice").hide();$("#firstHeading").hide();$("#contentSub").hide(); | ||
第370行: | 第241行: | ||
$("div#content").css("cssText","margin-left:0em !important; border:none;"); | $("div#content").css("cssText","margin-left:0em !important; border:none;"); | ||
$("#avgdiv").css({"margin-left":(window.innerWidth - 1202)/2 + "px", "margin-top":"100px"}); | $("#avgdiv").css({"margin-left":(window.innerWidth - 1202)/2 + "px", "margin-top":"100px"}); | ||
− | $(" | + | $(".avgnavigationtitle").css({"margin-left":(window.innerWidth - 1202)/2 + "px"}); |
+ | $(".avgnavigation").css({"margin-left":(window.innerWidth - 1202)/2 + "px"}); | ||
+ | $(window).scrollTop(0); | ||
} | } | ||
}); | }); | ||
第379行: | 第252行: | ||
$(this).css({"background-color":"transparent","color":"#eaeaea"}); | $(this).css({"background-color":"transparent","color":"#eaeaea"}); | ||
$("#avgbgm")[0].muted = true; | $("#avgbgm")[0].muted = true; | ||
+ | for(let i in $(".avgsound")) $(".avgsound")[i].muted = true; | ||
} else if($(this).attr("state") == "off"){ | } else if($(this).attr("state") == "off"){ | ||
$(this).attr("state", "on"); | $(this).attr("state", "on"); | ||
− | $(this).css({"background-color":"# | + | $(this).css({"background-color":"#eaeaea","color":"black"}); |
$("#avgbgm")[0].muted = false; | $("#avgbgm")[0].muted = false; | ||
+ | for(let i in $(".avgsound")) $(".avgsound")[i].muted = false; | ||
} | } | ||
}); | }); | ||
第389行: | 第264行: | ||
if(sound_num > 0) sound_num = sound_num - 1; | if(sound_num > 0) sound_num = sound_num - 1; | ||
let back_text = String(sound_num) + "0%"; | let back_text = String(sound_num) + "0%"; | ||
− | $("#avgbgm")[0].volume = sound_num / 10; | + | $("#avgbgm")[0].volume = sound_num / 20; |
− | $("#avgsoundwidth").css("cssText","background-image: linear-gradient(90deg, # | + | for(let i in $(".avgsound")) $(".avgsound")[i].volume = sound_num / 10; |
+ | $("#avgsoundwidth").css("cssText","background-image: linear-gradient(90deg, #eaeaea " + back_text + ", transparent " + back_text + ");"); | ||
$("#avgsoundwidth").attr("state",sound_num); | $("#avgsoundwidth").attr("state",sound_num); | ||
}); | }); | ||
第397行: | 第273行: | ||
if(sound_num < 10) sound_num = sound_num + 1; | if(sound_num < 10) sound_num = sound_num + 1; | ||
let back_text = String(sound_num) + "0%"; | let back_text = String(sound_num) + "0%"; | ||
− | $("#avgbgm")[0].volume = sound_num / 10; | + | $("#avgbgm")[0].volume = sound_num / 20; |
− | $("#avgsoundwidth").css("cssText","background-image: linear-gradient(90deg, # | + | for(let i in $(".avgsound")) $(".avgsound")[i].volume = sound_num / 10; |
+ | $("#avgsoundwidth").css("cssText","background-image: linear-gradient(90deg, #eaeaea " + back_text + ", transparent " + back_text + ");"); | ||
$("#avgsoundwidth").attr("state",sound_num); | $("#avgsoundwidth").attr("state",sound_num); | ||
}); | }); | ||
第405行: | 第282行: | ||
autosign = 1; | autosign = 1; | ||
setTimeout(function(){ autoreadline(); }, 4000 / autospeed); | setTimeout(function(){ autoreadline(); }, 4000 / autospeed); | ||
− | $(this).css({"background-color":"# | + | $(this).css({"background-color":"#eaeaea","color":"black"}); |
$("#avghand").css({"background-color":"#111111","color":"#eaeaea"}); | $("#avghand").css({"background-color":"#111111","color":"#eaeaea"}); | ||
}); | }); | ||
$("#avghand").click(function(){ | $("#avghand").click(function(){ | ||
autosign = 0; | autosign = 0; | ||
− | $(this).css({"background-color":"# | + | $(this).css({"background-color":"#eaeaea","color":"black"}); |
$("#avgauto").css({"background-color":"#111111","color":"#eaeaea"}); | $("#avgauto").css({"background-color":"#111111","color":"#eaeaea"}); | ||
}); | }); | ||
第433行: | 第310行: | ||
} else if($(this).attr("state") == "off"){ | } else if($(this).attr("state") == "off"){ | ||
$(this).attr("state", "on"); | $(this).attr("state", "on"); | ||
− | $(this).css({"background-color":"# | + | $(this).css({"background-color":"#eaeaea","color":"black"}); |
$("#avgbox").fadeOut(300); | $("#avgbox").fadeOut(300); | ||
setTimeout(function(){ $("#avglogbox").fadeIn(300); }, 300); | setTimeout(function(){ $("#avglogbox").fadeIn(300); }, 300); | ||
第440行: | 第317行: | ||
}); | }); | ||
$("#avglognow").click(function(){ | $("#avglognow").click(function(){ | ||
− | $(this).css({"background-color":"# | + | $(this).css({"background-color":"#eaeaea","color":"black"}); |
$("#avglogall").css({"background-color":"#111111","color":"#eaeaea"}); | $("#avglogall").css({"background-color":"#111111","color":"#eaeaea"}); | ||
logallsign = 0; | logallsign = 0; | ||
第446行: | 第323行: | ||
}); | }); | ||
$("#avglogall").click(function(){ | $("#avglogall").click(function(){ | ||
− | $(this).css({"background-color":"# | + | $(this).css({"background-color":"#eaeaea","color":"black"}); |
$("#avglognow").css({"background-color":"#111111","color":"#eaeaea"}); | $("#avglognow").css({"background-color":"#111111","color":"#eaeaea"}); | ||
logallsign = 1; | logallsign = 1; | ||
第458行: | 第335行: | ||
$(".avgefect").remove(); | $(".avgefect").remove(); | ||
readline(); | readline(); | ||
+ | }); | ||
+ | |||
+ | $("#avgtonext").click(function(){ | ||
+ | let chosen_element = document.querySelectorAll(".avgchoice"); | ||
+ | for(let i = 0; i < chosen_element.length; i ++){ | ||
+ | if($(chosen_element[i]).attr("link") == loadingfile && (i + 1 < chosen_element.length)) { $(chosen_element[i + 1]).click(); return;} | ||
+ | } | ||
}); | }); | ||
第464行: | 第348行: | ||
$(this).attr("state", "off"); | $(this).attr("state", "off"); | ||
$(this).css({"background-color":"#111111","color":"#eaeaea"}); | $(this).css({"background-color":"#111111","color":"#eaeaea"}); | ||
− | $(" | + | $(".avgnavigationtitle").css("display","none"); |
+ | $(".avgnavigationtitle").attr("state","coll-off"); | ||
+ | $(".avgnavigation").css("display","none"); | ||
} else if($(this).attr("state") == "off"){ | } else if($(this).attr("state") == "off"){ | ||
$(this).attr("state", "on"); | $(this).attr("state", "on"); | ||
− | $(this).css({"background-color":"# | + | $(this).css({"background-color":"#eaeaea","color":"black"}); |
− | $(" | + | $(".avgnavigationtitle").css("display","block"); |
avglogcreat(); | avglogcreat(); | ||
} | } | ||
}); | }); | ||
− | $("#avgsound").click() | + | $("#avgsound").click(); |
+ | $("#avgsoundminus").click(); | ||
$("#avghand").click(); | $("#avghand").click(); | ||
$("#avglognow").click(); | $("#avglognow").click(); | ||
第486行: | 第373行: | ||
else readline(); | 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(){ | function readline(){ | ||
− | if(blacksign == 1 || branchblock == 1) return; | + | if(blacksign == 1 || branchblock == 1 || flash_block == 1) return; |
− | if(endsign == 1) { | + | if(endsign == 1 && !avgnextline) { |
− | $("#avgline"). | + | $("#avgline").html(`<div class="endsigndiv">${$("#avgtitle").html()} END</div>`); |
+ | if (!bgmEnd) { | ||
+ | $('#avgbox')[0].addEventListener('click', endBgm); | ||
+ | } | ||
return; | return; | ||
} | } | ||
第506行: | 第405行: | ||
if(avgbranches.length != 0){ | if(avgbranches.length != 0){ | ||
− | let html_string = `<div id="avgbranchdiv">`; | + | let isCg = avgbranches.every(opt => opt.startsWith('cg')); |
− | for(i in avgbranches) html_string += `<div class="avgbranch" index="${i}">${ | + | 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+'"' : ''}>${isCg ? '' : optionText}<\/div>`; | ||
+ | } | ||
html_string += `<\/div>`; | html_string += `<\/div>`; | ||
第533行: | 第443行: | ||
// black | // black | ||
− | if(thisline.indexOf("<黑屏2>") != -1 && blacksign == 0){ | + | if((thisline.indexOf("<黑屏2>") != -1 || thisline.indexOf("<黑点2>") != -1) && blacksign == 0){ |
$(".avgdollpic").fadeOut(1000 / autospeed); $(".avgefect").fadeOut(1000 / autospeed); | $(".avgdollpic").fadeOut(1000 / autospeed); $(".avgefect").fadeOut(1000 / autospeed); | ||
$("#avgbackground").fadeOut(1000 / autospeed); $("#avgword").fadeOut(1000 / autospeed); | $("#avgbackground").fadeOut(1000 / autospeed); $("#avgword").fadeOut(1000 / autospeed); | ||
setTimeout(function(){ | setTimeout(function(){ | ||
− | $(".avgefect").remove(); | + | $(".avgefect").remove(); $(".avgsound").remove(); |
− | $(".avgdollpic").remove(); $("#avgbackground").html(""); $("#avgbgm").attr("src", ""); | + | $(".avgdollpic").remove(); $("#avgbackground").html(""); //$("#avgbgm").attr("src", ""); |
$("#avgspeaker").html(""); $("#avgline").html(""); | $("#avgspeaker").html(""); $("#avgline").html(""); | ||
setTimeout(function(){ | setTimeout(function(){ | ||
第550行: | 第460行: | ||
} else if(blacksign == 2){ | } else if(blacksign == 2){ | ||
blacksign = 0; | blacksign = 0; | ||
+ | if(!$("#avgbgm").attr("src") && $("#avgbgm")[0].paused){ | ||
+ | $("#avgbgm").attr("src", $("#avgbgm").attr("src-save")); // this black is for ending mp4 | ||
+ | $("#avgbgm")[0].play(); | ||
+ | } | ||
} | } | ||
第555行: | 第469行: | ||
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>"))]); | ||
+ | $("#avgbgm").attr("src-save", bgmarray[thisline.slice(thisline.indexOf("<BGM>") + ("<BGM>").length, thisline.indexOf("</BGM>"))]); | ||
$("#avgbgm")[0].play(); | $("#avgbgm")[0].play(); | ||
+ | } | ||
+ | |||
+ | // sound effect | ||
+ | if(thisline.indexOf("<SE1>") != -1){ | ||
+ | while(thisline.indexOf("<SE1>") != -1){ | ||
+ | sound = thisline.slice(thisline.indexOf("<SE1>") + ("<SE1>").length, thisline.indexOf("</SE1>")); | ||
+ | thisline = thisline.replace("<SE1>" + sound + "</SE1>", ""); | ||
+ | |||
+ | let audio = new Audio(); | ||
+ | audio.addEventListener("ended", function(){ $(this).remove();}); | ||
+ | $(audio).attr({"src":searray[sound], "preload":"preload", "controls":"controls"}); | ||
+ | $(audio).addClass(".avgsound"); | ||
+ | audio.play(); | ||
+ | |||
+ | if($("#avgsound").attr("state") == "off") audio.muted = true; | ||
+ | audio.volume = Number($("#avgsoundwidth").attr("state")) / 10; | ||
+ | } | ||
} | } | ||
第570行: | 第502行: | ||
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 + `" 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>`); | 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("<闪屏>") != -1){ | ||
+ | let flash_str = thisline.slice(thisline.indexOf("<闪屏>") + ("<闪屏>").length, thisline.indexOf("</闪屏>")); | ||
+ | let background_array = flash_str.slice(flash_str.indexOf("<CG>") + ("<CG>").length, flash_str.indexOf("</CG>")).split(","); | ||
+ | let control_parament = { | ||
+ | "duration":Number(flash_str.slice(flash_str.indexOf("<duration>") + ("<duration>").length, flash_str.indexOf("</duration>"))), | ||
+ | "rate":Number(flash_str.slice(flash_str.indexOf("<rate>") + ("<rate>").length, flash_str.indexOf("</rate>"))), | ||
+ | "delay":Number(flash_str.slice(flash_str.indexOf("<delay>") + ("<delay>").length, flash_str.indexOf("</delay>"))), | ||
+ | }; | ||
+ | flash_block = 1; | ||
+ | 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); | ||
+ | |||
+ | for(let i = 0; i < background_array.length; i ++){ | ||
+ | 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); | ||
+ | setTimeout(function(){ | ||
+ | $("#avgbackground").children("img").fadeOut(control_parament.rate * 5); | ||
+ | }, time_start + (control_parament.rate + control_parament.duration) * 5); | ||
+ | } | ||
} | } | ||
//doll pic | //doll pic | ||
if(thisline.indexOf("<Speaker>") != -1){ | if(thisline.indexOf("<Speaker>") != -1){ | ||
− | + | let avgpicstr = thisline.slice(0, thisline.indexOf("||")); | |
− | + | let newavgdoll = {left:0,center:0,right:0}; | |
− | + | let the_speaker = "center"; | |
// center | // center | ||
第588行: | 第546行: | ||
else if(avgpicstr.indexOf("<Speaker>") < avgpicstr.indexOf(";")){ | else if(avgpicstr.indexOf("<Speaker>") < avgpicstr.indexOf(";")){ | ||
the_speaker = "left"; | the_speaker = "left"; | ||
+ | let avgpicstr_righ = avgpicstr.slice(avgpicstr.indexOf(";") + 1, avgpicstr.length); | ||
avgpicleft = avgpicstr.slice(0, avgpicstr.indexOf("<Speaker>")); | avgpicleft = avgpicstr.slice(0, avgpicstr.indexOf("<Speaker>")); | ||
− | avgpicrigh = | + | avgpicrigh = avgpicstr_righ.slice(0, ((avgpicstr_righ.indexOf("<") != -1) ? avgpicstr_righ.indexOf("<") : avgpicstr_righ.legth)); |
− | newavgdoll = {left: avgpicleft,center:0,right: avgpicrigh}; | + | newavgdoll = {left: avgpicleft, center: 0, right: avgpicrigh}; |
} | } | ||
// speaker = right | // speaker = right | ||
第598行: | 第557行: | ||
avgpicleft = avgpicstr_left.slice(0, ((avgpicstr_left.indexOf("<") < avgpicstr_left.indexOf(";")) ? avgpicstr_left.indexOf("<") : avgpicstr_left.indexOf(";"))); | avgpicleft = avgpicstr_left.slice(0, ((avgpicstr_left.indexOf("<") < avgpicstr_left.indexOf(";")) ? avgpicstr_left.indexOf("<") : avgpicstr_left.indexOf(";"))); | ||
avgpicrigh = avgpicstr.slice(avgpicstr.indexOf(";") + 1, avgpicstr.indexOf("<Speaker>")); | avgpicrigh = avgpicstr.slice(avgpicstr.indexOf(";") + 1, avgpicstr.indexOf("<Speaker>")); | ||
− | newavgdoll = {left: avgpicleft,center:0,right: avgpicrigh}; | + | newavgdoll = {left: avgpicleft, center: 0, right: avgpicrigh}; |
} | } | ||
// the same - none - changed | // the same - none - changed | ||
− | if(newavgdoll == avgdoll) { | + | if(newavgdoll == avgdoll) { |
− | else if(newavgdoll == {left:0,center:0,right:0}) { | + | } else if(newavgdoll == {left:0,center:0,right:0}) { |
$(".avgdollpic").fadeOut(150); | $(".avgdollpic").fadeOut(150); | ||
setTimeout(function(){ $(".avgdollpic").remove();}, 150); | setTimeout(function(){ $(".avgdollpic").remove();}, 150); | ||
第643行: | 第602行: | ||
if(cen_sign){ | if(cen_sign){ | ||
setTimeout(function(){ | setTimeout(function(){ | ||
− | let the_center = `<div class="avgdollpic" name-data=" | + | let the_center = `<div class="avgdollpic" name-data="${newavgdoll.center}" style="z-index:6; display:none;`; |
− | the_center += `<img src="` + dollarray[newavgdoll.center] + `" style="`; | + | |
+ | if((avgpicstr.indexOf("<Position>") != -1) && (avgpicstr.indexOf("<Position>") > avgpicstr.indexOf(";"))){ | ||
+ | let position_str = avgpicstr.slice(avgpicstr.indexOf("<Position>") + ("<Position>").length, avgpicstr.indexOf("</Position>")); | ||
+ | let position_array = position_str.split(","); | ||
+ | the_center += `left:${152 - Number(position_array[0])/2}px; top:${110 - Number(position_array[1])/2}px; height:${565 + Number(position_array[1])/2}px;">`; | ||
+ | } else the_center += `left:152px;">`; | ||
+ | |||
+ | the_center += `<img draggable="false" 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( | + | 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_center += `"/><\/div>`; | } else the_center += `"/><\/div>`; | ||
+ | |||
$("#avgbox").append(the_center); | $("#avgbox").append(the_center); | ||
$(".avgdollpic").fadeIn(150); | $(".avgdollpic").fadeIn(150); | ||
第712行: | 第679行: | ||
if(left_sign){ | if(left_sign){ | ||
setTimeout(function(){ | setTimeout(function(){ | ||
− | let the_left = `<div class="avgdollpic" name-data=" | + | let the_left = `<div class="avgdollpic" name-data="${newavgdoll.left}" style="z-index:` + ((the_speaker == "left") ? "4" : "2") + ";"; |
− | the_left += `<img src="` + dollarray[newavgdoll.left] + `" style="`; | + | |
+ | if((avgpicstr.indexOf("<Position>") != -1) && (avgpicstr.indexOf("<Position>") < avgpicstr.indexOf(";"))){ | ||
+ | let position_str = avgpicstr.slice(avgpicstr.indexOf("<Position>") + ("<Position>").length, avgpicstr.indexOf("</Position>")); | ||
+ | let position_array = position_str.split(","); | ||
+ | the_left += `left:${-20 - Number(position_array[0])/2}px; top:${110 - Number(position_array[1])/2}px; height:${565 + Number(position_array[1])/2}px;">`; | ||
+ | } else the_left += `left:-20px;">`; | ||
+ | |||
+ | the_left += `<img draggable="false" 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( | + | 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_left += `"/><\/div>`; | } else the_left += `"/><\/div>`; | ||
$("#avgbox").append(the_left); | $("#avgbox").append(the_left); | ||
第723行: | 第697行: | ||
if(right_sign){ | if(right_sign){ | ||
setTimeout(function(){ | setTimeout(function(){ | ||
− | let the_right = `<div class="avgdollpic" name-data=" | + | let the_right = `<div class="avgdollpic" name-data="${newavgdoll.right}" style="z-index:` + ((the_speaker == "right") ? "4" : "2") + ";"; |
− | the_right += `<img src="` + dollarray[newavgdoll.right] + `" style="`; | + | |
+ | if((avgpicstr.indexOf("<Position>") != -1) && (avgpicstr.indexOf("<Position>") > avgpicstr.indexOf(";"))){ | ||
+ | let position_str = avgpicstr.slice(avgpicstr.indexOf("<Position>") + ("<Position>").length, avgpicstr.indexOf("</Position>")); | ||
+ | let position_array = position_str.split(","); | ||
+ | the_right += `left:${324 - Number(position_array[0])/2}px; top:${110 - Number(position_array[1])/2}px; height:${565 + Number(position_array[1])/2}px;">`; | ||
+ | } else the_right += `left:324px;">`; | ||
+ | |||
+ | the_right += `<img draggable="false" 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( | + | 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>`; |
} else the_right += `"/><\/div>`; | } else the_right += `"/><\/div>`; | ||
$("#avgbox").append(the_right); | $("#avgbox").append(the_right); | ||
第749行: | 第730行: | ||
//word line - color & size handler | //word line - color & size handler | ||
if(thisline.indexOf(":") != -1){ | if(thisline.indexOf(":") != -1){ | ||
− | let keyword = (thisline.indexOf("+") != -1) ? "+" : ((thisline.indexOf("<c>") != -1) ? "<c>" : "\n"); | + | 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); | let line = thisline.slice(thisline.indexOf(":") + 1, thisline.length); | ||
// color & size | // color & size | ||
第774行: | 第755行: | ||
avgbranches = line_temp.split("<c>"); | avgbranches = line_temp.split("<c>"); | ||
console.log(avgbranches); | 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 { | } else { | ||
第816行: | 第801行: | ||
log_string += `<div style="border-top:1px #8886 dashed; padding:7px 4px;"><table style="width:100%;"><tr><td avgpos="` + logpos + `"`; | log_string += `<div style="border-top:1px #8886 dashed; padding:7px 4px;"><table style="width:100%;"><tr><td avgpos="` + logpos + `"`; | ||
− | if(thisline.indexOf("<黑屏2>") != -1) log_string += ` class="avglogtd" style="border:1px dashed #f4c430; cursor:zoom-in;`; | + | if(thisline.indexOf("<黑屏2>") != -1 || thisline.indexOf("<黑点2>") != -1) log_string += ` class="avglogtd" style="border:1px dashed #f4c430; cursor:zoom-in;`; |
else log_string += ` style="border:none;`; | else log_string += ` style="border:none;`; | ||
log_string += `width:5%; text-align:center; vertical-align:baseline;">` + logline + `<\/td>`; | log_string += `width:5%; text-align:center; vertical-align:baseline;">` + logline + `<\/td>`; | ||
第822行: | 第807行: | ||
log_string += `<\/td><td style="width:80%; vertical-align:baseline;">` + ((thisline.indexOf("<分支") != -1) ? ("分支" + thisline[thisline.indexOf("<分支") + 4] + "<br>") : ""); | 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(/<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; | if(avgtxt.indexOf("\n", logpos) == -1) break; | ||
第843行: | 第829行: | ||
/*------ first load, preload, display loading information ------*/ | /*------ first load, preload, display loading information ------*/ | ||
function firstloading(){ | function firstloading(){ | ||
− | loadingfin = {doll:0, bg:0, bgm:0, eff:0}; | + | loadingfin = {doll:0, bg:0, bgm:0, se:0, eff:0}; |
− | loadingnow = {doll:0, bg:0, bgm:0, eff:0}; | + | loadingnow = {doll:0, bg:0, bgm:0, se:0, eff:0}; |
var logpos = 0; | var logpos = 0; | ||
− | var loading = {doll:[], bg:[], bgm:[], eff:[]}; | + | var loading = {doll:[], bg:[], bgm:[], se:[], eff:[]}; |
/*--------------------------- key word query, console that not in the array ---------------------------*/ | /*--------------------------- key word query, console that not in the array ---------------------------*/ | ||
− | var sekeyword = ["Speaker", "BIN", "BGM", "SE1", "SE2", "color", "Size", "通讯框", "黑屏1", "黑屏2", "common_effect", "关闭蒙版", "CGDelay", "回忆"]; | + | var sekeyword = ["Speaker", "BIN", "BGM", "SE1", "SE2", "color", "Size", "通讯框", "黑屏1", "黑屏2", "黑点1", "黑点2", "common_effect", "关闭蒙版", "CGDelay", "回忆", "Position", "Night"]; |
var the_words = avgtxt.replace(/<color=#[A-Za-z0-9]{6}>/g, "<color>").replace(/<Size=\d{2}>/g, "<Size>"); | var the_words = avgtxt.replace(/<color=#[A-Za-z0-9]{6}>/g, "<color>").replace(/<Size=\d{2}>/g, "<Size>"); | ||
while(the_words.indexOf("<") != -1 && the_words.length != 0){ | while(the_words.indexOf("<") != -1 && the_words.length != 0){ | ||
第859行: | 第845行: | ||
let sign = 1; | let sign = 1; | ||
for(i in sekeyword) if(("<" + sekeyword[i] + ">") == this_word) { sign = 0; break;} | for(i in sekeyword) if(("<" + sekeyword[i] + ">") == this_word) { sign = 0; break;} | ||
− | if(sign) console.log(this_word); | + | if(sign) console.log("need effect -- " + this_word); |
if(sign) sekeyword.push(this_word.slice(1, this_word.length - 1)); | if(sign) sekeyword.push(this_word.slice(1, this_word.length - 1)); | ||
} | } | ||
第865行: | 第851行: | ||
while(1){ | while(1){ | ||
var thisline = (avgtxt.indexOf("\n", logpos) == -1) ? avgtxt.slice(logpos, avgtxt.length) : avgtxt.slice(logpos, avgtxt.indexOf("\n", logpos)); | 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){ | if(thisline.indexOf("<Speaker>") != -1 && thisline.indexOf("()<Speaker>") == -1){ | ||
第873行: | 第860行: | ||
} else if(thisline.indexOf(";") == -1 && thisline.indexOf("()") != -1){ | } else if(thisline.indexOf(";") == -1 && thisline.indexOf("()") != -1){ | ||
} else if(avgpicstr.indexOf("<Speaker>") < avgpicstr.indexOf(";")){ | } else if(avgpicstr.indexOf("<Speaker>") < avgpicstr.indexOf(";")){ | ||
+ | let avgpic_righ = avgpicstr.slice(avgpicstr.indexOf(";") + 1, avgpicstr.length); | ||
newavgdoll.push(avgpicstr.slice(0, avgpicstr.indexOf("<Speaker>"))); | newavgdoll.push(avgpicstr.slice(0, avgpicstr.indexOf("<Speaker>"))); | ||
− | newavgdoll.push( | + | newavgdoll.push((avgpic_righ.indexOf("<") == -1) ? avgpic_righ : avgpic_righ.slice(0, avgpic_righ.indexOf("<"))); |
} else if(avgpicstr.indexOf("<Speaker>") > avgpicstr.indexOf(";")){ | } else if(avgpicstr.indexOf("<Speaker>") > avgpicstr.indexOf(";")){ | ||
− | + | newavgdoll.push(avgpicstr.slice(0, ((avgpicstr.indexOf("<") > avgpicstr.indexOf(";")) ? avgpicstr.indexOf(";") : avgpicstr.indexOf("<")))); | |
newavgdoll.push(avgpicstr.slice(avgpicstr.indexOf(";") + 1, avgpicstr.indexOf("<Speaker>"))); | newavgdoll.push(avgpicstr.slice(avgpicstr.indexOf(";") + 1, avgpicstr.indexOf("<Speaker>"))); | ||
} | } | ||
第893行: | 第881行: | ||
if(a == loading.bgm[i].ID){ sign = 0; break; } | if(a == loading.bgm[i].ID){ sign = 0; break; } | ||
} if(sign) loading.bgm.push({"ID":a, "URL":bgmarray[a]}); | } if(sign) loading.bgm.push({"ID":a, "URL":bgmarray[a]}); | ||
+ | } | ||
+ | if(thisline.indexOf("<SE1>") != -1){ | ||
+ | while(thisline.indexOf("<SE1>") != -1){ | ||
+ | let sign = 1; | ||
+ | let a = thisline.slice(thisline.indexOf("<SE1>") + ("<SE1>").length, thisline.indexOf("</SE1>")); | ||
+ | thisline = thisline.replace("<SE1>" + a + "</SE1>", ""); | ||
+ | for(let i = 0; i < loading.se.length; i++){ | ||
+ | if(a == loading.se[i].ID){ sign = 0; break; } | ||
+ | } if(sign) loading.se.push({"ID":a, "URL":searray[a]}); | ||
+ | } | ||
} | } | ||
if(thisline.indexOf("<BIN>") != -1){ | if(thisline.indexOf("<BIN>") != -1){ | ||
第900行: | 第898行: | ||
if(a == loading.bg[i].ID){ sign = 0; break; } | if(a == loading.bg[i].ID){ sign = 0; break; } | ||
} if(sign) loading.bg.push({"ID":a, "URL":bgarray[a]}); | } if(sign) loading.bg.push({"ID":a, "URL":bgarray[a]}); | ||
+ | } | ||
+ | if(thisline.indexOf("<闪屏>") != -1){ | ||
+ | let a = thisline.slice(thisline.indexOf("<闪屏>") + ("<闪屏>").length, thisline.indexOf("</闪屏>")); | ||
+ | if(a.indexOf("<CG>") != -1){ | ||
+ | let b = a.slice(a.indexOf("<CG>") + ("<CG>").length, a.indexOf("</CG>")).split(","); | ||
+ | for(let j = 0; j < b.length; j ++){ | ||
+ | let sign = 1; | ||
+ | for(let i = 0; i < loading.bg.length; i++){ | ||
+ | if(b[j] == loading.bg[i].ID){ sign = 0; break; } | ||
+ | } if(sign) loading.bg.push({"ID":b[j], "URL":bgarray[b[j]]}); | ||
+ | } | ||
+ | } | ||
} | } | ||
if(thisline.indexOf("<common_effect>") != -1){ | if(thisline.indexOf("<common_effect>") != -1){ | ||
第914行: | 第924行: | ||
/*----------------- console loading urls ---------------*/ | /*----------------- console loading urls ---------------*/ | ||
− | console.log("Character Image | + | console.log("Character Image", loading.doll); |
− | console.log("Background CG | + | console.log("Background CG", loading.bg); |
− | console.log("Background Music | + | console.log("Background Music", loading.bgm); |
− | console.log("Common Effect | + | console.log("Sound Effect", loading.se); |
+ | console.log("Common Effect", loading.eff); | ||
console.log("********* Console end *********"); | console.log("********* Console end *********"); | ||
loadingfin.doll = loading.doll.length; | loadingfin.doll = loading.doll.length; | ||
loadingfin.bg = loading.bg.length; | loadingfin.bg = loading.bg.length; | ||
loadingfin.bgm = loading.bgm.length; | loadingfin.bgm = loading.bgm.length; | ||
+ | loadingfin.se = loading.se.length; | ||
loadingfin.eff = loading.eff.length; | loadingfin.eff = loading.eff.length; | ||
loading_sub(); | loading_sub(); | ||
第948行: | 第960行: | ||
}); | }); | ||
$(audio).attr({"src":bgmarray[loading.bgm[i].ID], "file":loadingfile, "preload":"preload", "controls":"controls"}); | $(audio).attr({"src":bgmarray[loading.bgm[i].ID], "file":loadingfile, "preload":"preload", "controls":"controls"}); | ||
+ | } | ||
+ | for(i in loading.se){ | ||
+ | let audio = new Audio(); | ||
+ | audio.addEventListener("canplaythrough", function(){ | ||
+ | if($(this).attr("file") == loadingfile) loadingnow.se ++; | ||
+ | loading_sub(); $(this).remove(); | ||
+ | }); | ||
+ | $(audio).attr({"src":searray[loading.se[i].ID], "file":loadingfile, "preload":"preload", "controls":"controls"}); | ||
} | } | ||
for(i in loading.eff){ | for(i in loading.eff){ | ||
let target_url = effarray[loading.eff[i].ID]; | let target_url = effarray[loading.eff[i].ID]; | ||
+ | if(!target_url) {loadingnow.eff ++; continue;} | ||
let target_type = target_url.slice(target_url.length - 3, target_url.length); | let target_type = target_url.slice(target_url.length - 3, target_url.length); | ||
let new_element = (target_type == "png") ? document.createElement('img') : document.createElement('video'); | let new_element = (target_type == "png") ? document.createElement('img') : document.createElement('video'); | ||
第970行: | 第991行: | ||
function loading_sub(){ | function loading_sub(){ | ||
− | $("#avgload").html(`加载进度: PIC[${loadingnow.doll}/${loadingfin.doll}] CG[${loadingnow.bg}/${loadingfin.bg}] BGM[${loadingnow.bgm}/${loadingfin.bgm}] | + | $("#avgload").html(`加载进度: PIC[${loadingnow.doll}/${loadingfin.doll}] CG[${loadingnow.bg}/${loadingfin.bg}] BGM[${loadingnow.bgm}/${loadingfin.bgm}] SE[${loadingnow.se}/${loadingfin.se}] E[${loadingnow.eff}/${loadingfin.eff}]`); |
} | } | ||
/*---------------------------特效code 创建---------------------------*/ | /*---------------------------特效code 创建---------------------------*/ | ||
function effect_creat(effect_name){ | function effect_creat(effect_name){ | ||
− | if(effect_name == "%%code= | + | if(effect_name.slice(0, ("%%code=AVG_ink").length) == "%%code=AVG_ink") { |
let new_element = document.createElement('video'); | let new_element = document.createElement('video'); | ||
$(new_element).attr({"class":"avgefect", "autoplay":"autoplay", "preload":"auto", "src":effarray[effect_name]}); | $(new_element).attr({"class":"avgefect", "autoplay":"autoplay", "preload":"auto", "src":effarray[effect_name]}); | ||
$(new_element).css({"position":"absolute", "width":"1200px", "height":"675px", "top":"0px", "left":"0px", "overflow":"hidden", "z-index":"1"}); | $(new_element).css({"position":"absolute", "width":"1200px", "height":"675px", "top":"0px", "left":"0px", "overflow":"hidden", "z-index":"1"}); | ||
− | $(new_element).bind('ended', function(){ $(this).remove(); }); | + | $(new_element).bind('ended', function(){ $(this).remove();}); |
$("#avgbox").append(new_element); | $("#avgbox").append(new_element); | ||
+ | $("#avgbgm")[0].pause(); | ||
} else if(effect_name.slice(0, ("%%code=NPC_TV").length) == "%%code=NPC_TV"){ | } else if(effect_name.slice(0, ("%%code=NPC_TV").length) == "%%code=NPC_TV"){ | ||
let new_element = document.createElement('img'); | let new_element = document.createElement('img'); | ||
第986行: | 第1,008行: | ||
$(new_element).css({"position":"absolute", "width":"1200px", "top":"-262.5px", "z-index":"1"}); | $(new_element).css({"position":"absolute", "width":"1200px", "top":"-262.5px", "z-index":"1"}); | ||
$("#avgbox").append(new_element); | $("#avgbox").append(new_element); | ||
+ | } else if(effect_name == "%%code=changjing_huafen%%"){ | ||
+ | return; | ||
} | } | ||
} | } | ||
− | |||
}) | }) | ||
</script></includeonly> | </script></includeonly> |