diff --git a/_server/MotaAction.g4 b/_server/MotaAction.g4 index 0ce9be2..b8cc76b 100644 --- a/_server/MotaAction.g4 +++ b/_server/MotaAction.g4 @@ -1065,7 +1065,7 @@ return code+',\n'; over_s : '旁白文字' ':' EvalString BGNL? Newline - '背景' EvalString? '持续帧数' Int? '渐入渐出帧数' Int? '音频文件' EvalString? BGNL? Newline + '背景' EvalString? '回忆滤镜' Bool? '持续帧数' Int? '渐入渐出帧数' Int? '音频文件' EvalString? BGNL? Newline '文字颜色' ColorString? Colour '描边颜色' ColorString? Colour '字体信息' EvalString? Newline /*over_s tooltip : over:这段话将出现在屏幕中心 @@ -1073,20 +1073,20 @@ helpUrl : /_docs/#/instruction allImages : ['EvalString_1'] allSounds : ['EvalString_2'] default : ["这段话将在屏幕中心","bg_5043.png",50,30,"","255,255,255,1",'rgba(255,255,255,1)',"0,0,0,1",'rgba(0,0,0,1)','bold 48px Verdana'] -var code = '{"type": "over", "text": "'+EvalString_0+'","image":"'+EvalString_1+'","time":'+Int_0+',"hidetime":'+Int_1+',"sound":"'+EvalString_2+'","textColor": ['+ColorString_0+'], "boldColor": ['+ColorString_1+'], "font": "'+EvalString_3+'"},\n'; +var code = '{"type": "over", "text": "'+EvalString_0+'","image":"'+EvalString_1+'","memory":'+Bool_0+',"time":'+Int_0+',"hidetime":'+Int_1+',"sound":"'+EvalString_2+'","textColor": ['+ColorString_0+'], "boldColor": ['+ColorString_1+'], "font": "'+EvalString_3+'"},\n'; return code; */; overlist_s - : '背景' EvalString? '每句渐入渐出帧数' Int? BGNL? Newline + : '背景' EvalString? '回忆滤镜' Bool? '每句渐入渐出帧数' Int? BGNL? Newline overtextList+? Newline /*overlist_s tooltip : overlist:多行滚动旁白 helpUrl : /_docs/#/instruction allImages : ['EvalString_0'] -default : ["bg_5043.png",30,[{ "text":"" ,"sound":"","time":50,"textColor":"255,255,255,1","boldColor":"0,0,0,1","font":"bold 48px Verdana","frame":0}]] +default : ["bg_5043.png",false,30,[{ "text":"" ,"sound":"","time":50,"textColor":"255,255,255,1","boldColor":"0,0,0,1","font":"bold 48px Verdana","frame":0}]] var list=',"list": [\n'+overtextList_0.slice(0,-1)+'\n]' -var code = '{"type": "overlist", "image": "'+EvalString_0+'","hidetime":'+Int_0+''+list+' },\n'; +var code = '{"type": "overlist", "image": "'+EvalString_0+'","memory":'+Bool_0+',"hidetime":'+Int_0+''+list+' },\n'; return code; */; @@ -1117,7 +1117,7 @@ return code; */; cgtext_s - : '背景' EvalString? '移除对话框' Bool? '头像' EvalString?'名字' EvalString?'坐标PX' Number'打字间隔' Int? BGNL? Newline + : '背景' EvalString? '回忆滤镜' Bool? '移除对话框' Bool? '头像' EvalString?'名字' EvalString?'坐标PX' Number'打字间隔' Int? BGNL? Newline '自动等待时长' Int '音频文件(需在全塔属性——使用音效注册)'EvalString? BGNL? Newline EvalString? BGNL? Newline textcgDrawingList+? Newline @@ -1127,10 +1127,10 @@ tooltip : cgtext:显示一段包含cg的文字(剧情) helpUrl : /_docs/#/instruction allImages : ['EvalString_0','EvalString_1'] allSounds : ['EvalString_3'] -default : ["bg_5043.png","face_050445.png",false,"菲奥奈",-300,0,2000,"","这句话显示在对话框内",[{ "name":"tati_050145a.png" , "px": 100,"filter":false }]] +default : ["bg_5043.png",false,"face_050445.png",false,"菲奥奈",-300,0,2000,"","这句话显示在对话框内",[{ "name":"tati_050145a.png" , "px": 100,"filter":false }]] var head ='{ "name": "'+EvalString_1+'", "px": '+Number_0+' }' var list=',"bodyList": [\n'+textcgDrawingList_0.slice(0,-1)+'\n]' -var code = '{"type": "cgtext", "bg":"'+EvalString_0+'","WindowSkin":'+Bool_0+',"head":'+head+' ,"name":"'+EvalString_2+'","time":'+Int_0+',"wait":'+Int_1+',"sound":"'+EvalString_3+'","text": "'+EvalString_4+'"'+list+' },\n'; +var code = '{"type": "cgtext", "bg":"'+EvalString_0+'","memory":'+Bool_0+',"WindowSkin":'+Bool_1+',"head":'+head+' ,"name":"'+EvalString_2+'","time":'+Int_0+',"wait":'+Int_1+',"sound":"'+EvalString_3+'","text": "'+EvalString_4+'"'+list+' },\n'; return code; */; textcgDrawingList @@ -1931,16 +1931,16 @@ return code; */; changebg_s - : '上一个背景' EvalString? '下一个背景' EvalString? '切换帧数' Int '转场方式' Changebg_List Newline + : '上一个背景' EvalString? '回忆滤镜' Bool? '下一个背景' EvalString? '回忆滤镜' Bool? '切换帧数' Int '转场方式' Changebg_List Newline /* changebg_s tooltip : changebg: 剧情转场 helpUrl : /_docs/#/instruction -default : ["","",30,"引入"] +default : ["",false,"",false,30,"引入"] colour : this.soundColor allImages : ['EvalString_0','EvalString_1'] -var code = '{"type": "changebg", "img1": "'+EvalString_0+'","img2": "'+EvalString_1+'","time": '+Int_0+',"style": "'+Changebg_List_0+'"},\n'; +var code = '{"type": "changebg", "img1": "'+EvalString_0+'","memory1":'+Bool_0+',"img2": "'+EvalString_1+'","memory2":'+Bool_1+',"time": '+Int_0+',"style": "'+Changebg_List_0+'"},\n'; return code; */; diff --git a/_server/MotaActionParser.js b/_server/MotaActionParser.js index 85d6349..fc46ea2 100644 --- a/_server/MotaActionParser.js +++ b/_server/MotaActionParser.js @@ -558,6 +558,7 @@ MotaActionParser = function () { }; this.next = MotaActionBlocks["cgtext_s"].xmlText([ data.bg, + data.memory, data.WindowSkin, data.head.name, data.name || "", @@ -663,6 +664,7 @@ MotaActionParser = function () { this.next = MotaActionBlocks["over_s"].xmlText([ data.text ?? "", data.image ?? "", + data.memory ?? false, data.time ?? 3000, data.hidetime ?? 100, data.sound ?? "", @@ -695,6 +697,7 @@ MotaActionParser = function () { }; this.next = MotaActionBlocks["overlist_s"].xmlText([ data.image, + data.memory, data.hidetime, buildovertext(data.list), this.next, @@ -1851,7 +1854,9 @@ MotaActionParser = function () { case "changebg": // 等待多少毫秒 this.next = MotaActionBlocks["changebg_s"].xmlText([ data.img1 ?? "", + data.memory1 ?? false, data.img2 ?? "", + data.memory2 ?? false, data.time ?? 30, data.style, this.next, diff --git a/project/events.js b/project/events.js index 1f4ddf4..8094f62 100644 --- a/project/events.js +++ b/project/events.js @@ -3202,13 +3202,16 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "changebg", "img1": "", + "memory1": false, "img2": "bg_3601.png", + "memory2": false, "time": 30, "style": "引入" }, { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020106.png", @@ -3230,6 +3233,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020141.png", @@ -3251,6 +3255,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020157.png", @@ -3272,6 +3277,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -3293,6 +3299,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020107.png", @@ -3314,6 +3321,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -3335,6 +3343,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -3356,6 +3365,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -3377,6 +3387,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -3398,6 +3409,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020157.png", @@ -3419,6 +3431,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020157.png", @@ -3440,6 +3453,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -3461,6 +3475,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020111.png", @@ -3482,6 +3497,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -3503,6 +3519,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020101.png", @@ -3524,6 +3541,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -3545,6 +3563,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020107.png", @@ -3566,6 +3585,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -3587,6 +3607,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020157.png", @@ -3608,6 +3629,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -3629,6 +3651,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -3650,6 +3673,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020125.png", @@ -3671,6 +3695,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -3692,6 +3717,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020121.png", @@ -3713,6 +3739,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -3734,6 +3761,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -3755,6 +3783,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020105.png", @@ -3776,6 +3805,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020103.png", @@ -3797,6 +3827,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020141.png", @@ -3818,6 +3849,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -3839,6 +3871,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020105.png", @@ -3860,6 +3893,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -3881,6 +3915,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020105.png", @@ -3902,6 +3937,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020107.png", @@ -3923,6 +3959,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -3944,6 +3981,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "face_020141.png", @@ -3965,6 +4003,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -3986,6 +4025,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "bg_3601.png", + "memory": false, "WindowSkin": false, "head": { "name": "", @@ -4007,7 +4047,9 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "changebg", "img1": "bg_3601.png", + "memory1": false, "img2": "", + "memory2": false, "time": 30, "style": "引出" } diff --git a/project/floors/street01.js b/project/floors/street01.js index 77b5313..79600f8 100644 --- a/project/floors/street01.js +++ b/project/floors/street01.js @@ -42,6 +42,7 @@ main.floors.street01= { "type": "overlist", "image": "bg_5043.png", + "memory": true, "hidetime": 30, "list": [ { diff --git a/project/plugins.js b/project/plugins.js index 565d261..895df80 100644 --- a/project/plugins.js +++ b/project/plugins.js @@ -89,6 +89,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = if (!main.replayChecking && !core.isReplaying()) { core.over( image, + data.memory, time, hidetime, sound, @@ -103,7 +104,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = }); core.registerEvent("changebg", function (data) { if (!main.replayChecking && !core.isReplaying()) { - core.changebg(data.img1, data.img2, data.time, data.style); + core.changebg(data.img1, data.memory1, data.img2, data.memory2, data.time, data.style); } else { core.doAction(); } @@ -111,6 +112,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = core.registerEvent("overlist", function (data) { core.overlist( data.image, + data.memory, data.hidetime || 30, data.list || [{ text: "", @@ -127,6 +129,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = core.registerEvent("cgtext", function (data) { if (!main.replayChecking && !core.isReplaying()) { core.ui.cgText.image = data.bg; + core.ui.cgText.memory = data.memory; core.ui.cgText.head = core.clone(data.head); core.ui.cgText.name = data.name; core.ui.cgText.text = data.text; @@ -9191,6 +9194,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = MotaActionFunctions.actionParser.parseList([{ type: "overlist", image: "bg_5043.png", + memory: false, hidetime: 30, list: [ { text: "", sound: "", time: 50, textColor: "255,255,255,1", boldColor: "0,0,0,1", font: "bold 48px Verdana", frame: 0 } @@ -9199,6 +9203,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = MotaActionFunctions.actionParser.parseList([{ type: "cgtext", bg: "bg_5043.png", + memory: false, WindowSkin: false, head: { name: "face_050445.png", px: -300 }, name: "菲奥奈", @@ -13025,6 +13030,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = this.sound = ""; this.beforeSound = 0; this.wait = 200; + this.memory = false; } click(px, py) { //点击效果 @@ -13305,7 +13311,9 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = if (img) { //绘制背景 + if (this.memory) ctx.filter = "sepia(50%)" ctx.drawImage(img, 0, 0, 2028, 1248); + ctx.filter = "none"; } else { core.fillRect(ctx, 0, 0, 2028, 1248); } @@ -13453,6 +13461,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = this.over = function ( image, + memory, time = 100, hidetime = 30, sound = "", @@ -13483,7 +13492,9 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx.globalAlpha = 1; if (img) { //绘制背景 + if (memory) ctx.filter = "sepia(50%)" ctx.drawImage(img, 0, 0, 676 * 3, 416 * 3); + ctx.filter = "none" } else { core.fillRect(ctx, 0, 0, 676 * 3, 416 * 3); } @@ -13517,6 +13528,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = this.overlist = function ( image, + memory, hidetime = 30, list = [{ text: "", @@ -13550,7 +13562,9 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx.globalAlpha = 1; if (img) { //绘制背景 + if (memory) ctx.filter = "sepia(50%)" ctx.drawImage(img, 0, 0, 676 * 3, 416 * 3); + ctx.filter = "none" } else { core.fillRect(ctx, 0, 0, 676 * 3, 416 * 3); } @@ -13564,6 +13578,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = dy = 624; if (i === 0 && !list[1]) { core.over(image, + memory, a.time, hidetime, a.sound, @@ -13572,10 +13587,10 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = a.font, a.text) } else { - const numa = parseInt(a?.font?.replace(/[^\d]/g, " ").trim()) || 48; - const numb = parseInt(b?.font?.replace(/[^\d]/g, " ").trim()) || 48; - const numc = parseInt(c?.font?.replace(/[^\d]/g, " ").trim()) || 48; - const numd = parseInt(d?.font?.replace(/[^\d]/g, " ").trim()) || 48; + const numa = parseInt(a?.font?.match(/\s*[\d.-]+[a-zA-Z%]*\s*/)?.[0].trim()) || 48; + const numb = parseInt(b?.font?.match(/\s*[\d.-]+[a-zA-Z%]*\s*/)?.[0].trim()) || 48; + const numc = parseInt(c?.font?.match(/\s*[\d.-]+[a-zA-Z%]*\s*/)?.[0].trim()) || 48; + const numd = parseInt(d?.font?.match(/\s*[\d.-]+[a-zA-Z%]*\s*/)?.[0].trim()) || 48; // 绘制 if (a) { @@ -13746,7 +13761,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = }); }; - this.changebg = function (img1, img2, time, style) { + this.changebg = function (img1, memory1, img2, memory2, time, style) { let globalAlpha1 = 0; let globalAlpha2 = time; img1 = core.material.images.images?.[img1]; @@ -13769,7 +13784,9 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx.globalAlpha = globalAlpha1 / time; if (img2) { //绘制背景 + if (memory2) ctx.filter = "sepia(50%)" ctx.drawImage(img2, 0, 0, 676 * 3, 1248); + ctx.filter = "none" } else { core.fillRect(ctx, 0, 0, 676 * 3, 1248); } @@ -13799,9 +13816,12 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx.globalAlpha = globalAlpha2 / time; if (img1) { //绘制背景 + if (memory1) ctx.filter = "sepia(50%)" ctx.drawImage(img1, 0, 0, 676 * 3, 1248); + ctx.filter = "none" } else { core.fillRect(ctx, 0, 0, 676 * 3, 1248); + } globalAlpha2--; ctx.restore(); @@ -13831,14 +13851,18 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx.globalAlpha = globalAlpha2 / time; if (img1) { //绘制背景 + if (memory1) ctx.filter = "sepia(50%)" ctx.drawImage(img1, 0, 0, 676 * 3, 1248); + ctx.filter = "none" } else { core.fillRect(ctx, 0, 0, 676 * 3, 1248); } ctx.globalAlpha = globalAlpha1 / time; if (img2) { //绘制背景 + if (memory2) ctx.filter = "sepia(50%)" ctx.drawImage(img2, 0, 0, 676 * 3, 1248); + ctx.filter = "none"; } else { core.fillRect(ctx, 0, 0, 676 * 3, 1248); }