diff --git a/_server/MotaAction.g4 b/_server/MotaAction.g4 index be6a618..2c0efb1 100644 --- a/_server/MotaAction.g4 +++ b/_server/MotaAction.g4 @@ -952,6 +952,7 @@ action | removeMouse_s | drawWarning_s | addPop_s + | over_s | playStereo_s | moveStereo_s | pass_s @@ -1060,8 +1061,23 @@ if (block.isCollapsed() || !block.isEnabled() || pos || Int_0 || Bool_0) { return code+',\n'; */; +over_s + : '旁白文字' ':' EvalString BGNL? Newline + '背景' EvalString? '持续时长' Int? '渐入渐出时长' Int? '音频文件' EvalString? BGNL? Newline + '文字颜色' ColorString? Colour '描边颜色' ColorString? Colour '字体信息' EvalString? Newline +/*over_s +tooltip : over:这段话将出现在屏幕中心 +helpUrl : /_docs/#/instruction +allImages : ['EvalString_1'] +allSounds : ['EvalString_2'] +default : ["这段话将在屏幕中心","bg_5043.png",3000,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'; +return code; + */; + cgtext_s : '背景' EvalString? '移除对话框' Bool? '头像' EvalString?'名字' EvalString?'坐标PX' Number'打字间隔' Int? BGNL? Newline + '音频文件(需在全塔属性——使用音效注册)'EvalString? BGNL? Newline EvalString? BGNL? Newline textcgDrawingList*? Newline @@ -1069,10 +1085,11 @@ cgtext_s tooltip : cgtext:显示一段包含cg的文字(剧情) helpUrl : /_docs/#/instruction allImages : ['EvalString_0','EvalString_1'] -default : ["bg_5043.png","face_050445.png",false,"菲奥奈",-300,0,"这句话显示在对话框内",[{ "name":"tati_050145a.png" , "px": 100,"filter":false }]] +allSounds : ['EvalString_3'] +default : ["bg_5043.png","face_050445.png",false,"菲奥奈",-300,0,"","这句话显示在对话框内",[{ "name":"tati_050145a.png" , "px": 100,"filter":false }]] var head ='{ "name": "'+EvalString_1+'", "px": '+Number_0+' }' var list=',"bodyList": [\n'+textcgDrawingList_0+'\n]' -var code = '{"type": "cgtext", "bg":"'+EvalString_0+'","WindowSkin":'+Bool_0+',"head":'+head+' ,"name":"'+EvalString_2+'","time":'+Int_0+',"text": "'+EvalString_3+'"'+list+' },\n'; +var code = '{"type": "cgtext", "bg":"'+EvalString_0+'","WindowSkin":'+Bool_0+',"head":'+head+' ,"name":"'+EvalString_2+'","time":'+Int_0+',"sound":"'+EvalString_3+'","text": "'+EvalString_4+'"'+list+' },\n'; return code; */; textcgDrawingList @@ -1285,6 +1302,7 @@ IdString_0 = IdString_0 && (', "icon": "' + IdString_0 + '"'); var code = '{"type": "tip", "text": "'+EvalString_0+'"'+IdString_0+'},\n'; return code; */; + addPop_s : '弹出弹幕' ':' EvalString BGNL? Newline '出现像素位置px' Int 'py' Int '文字颜色' ColorString? Colour '描边颜色' ColorString? Colour BGNL? Newline diff --git a/_server/MotaActionParser.js b/_server/MotaActionParser.js index 0df5eed..8cbbef1 100644 --- a/_server/MotaActionParser.js +++ b/_server/MotaActionParser.js @@ -315,7 +315,7 @@ ActionParser.prototype.parseAction = function() { return res; } this.next = MotaActionBlocks['cgtext_s'].xmlText([ - data.bg,data.WindowSkin,data.head.name, data.name||"", data.head.px||-300,data.time, data.text,buildcgDrawing(data.bodyList), this.next]); + data.bg,data.WindowSkin,data.head.name, data.name||"", data.head.px||-300,data.time, data.sound,data.text,buildcgDrawing(data.bodyList), this.next]); break; case "moveTextBox": // 移动对话框 @@ -352,6 +352,10 @@ ActionParser.prototype.parseAction = function() { this.next = MotaActionBlocks['addPop_s'].xmlText([ data.value,data.px, data.py, data.color,'rgba('+data.color+')', data.boldColor,'rgba('+data.boldColor+')', data.left, data.jump, data.time, data.show, data.font, data.speed,this.next]); break; + case "over": + this.next = MotaActionBlocks['over_s'].xmlText([ + data.text??"",data.image??"", data.time??3000, data.hidetime??100,data.sound??"", data.textColor,'rgba('+data.textColor+')', data.boldColor,'rgba('+data.boldColor+')', data.font??"bold 48px Verdana",this.next]); + break; case "tip": this.next = MotaActionBlocks['tip_s'].xmlText([ data.text,data.icon||"",this.next]); diff --git a/project/bgms/Blind_Alley.mp3 b/project/bgms/Blind_Alley.mp3 new file mode 100644 index 0000000..ad5510c Binary files /dev/null and b/project/bgms/Blind_Alley.mp3 differ diff --git a/project/bgms/Crawler.mp3 b/project/bgms/Crawler.mp3 new file mode 100644 index 0000000..befdc68 Binary files /dev/null and b/project/bgms/Crawler.mp3 differ diff --git a/project/data.js b/project/data.js index ec26917..abf263d 100644 --- a/project/data.js +++ b/project/data.js @@ -31,12 +31,16 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = "bg_2011.png", "bg_2521.png", "bg_3042.png", + "bg_3531.png", "bg_3551.png", + "bg_3563.png", "bg_3571.png", + "bg_3601.png", "bg_3721.png", "bg_5033.png", "bg_5043.png", "bg_5044.png", + "bg_6004.png", "brave.png", "cao.png", "d.png", @@ -101,6 +105,10 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = "maba.png", "now.png", "null.png", + "other_0001.png", + "other_0002.png", + "other_0003.png", + "other_0004.png", "r.png", "status.png", "statusBackground.jpg", @@ -157,9 +165,22 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = ], "bgms": [ "Asphodelus_Ceui.mp3", + "Blind_Alley.mp3", + "Crawler.mp3", "theme.mp3" ], "sounds": [ + "aiy010000010.mp3", + "aiy010000020.mp3", + "aiy010000030.mp3", + "aiy310000010.mp3", + "aiy310000020.mp3", + "aiy710000010.mp3", + "aiy710000020.mp3", + "aiy710000030.mp3", + "aiy710000040.mp3", + "aiy710000050.mp3", + "aiy710000060.mp3", "attack.mp3", "bomb.mp3", "cancel.mp3", diff --git a/project/events.js b/project/events.js index 9dd428a..c7ac860 100644 --- a/project/events.js +++ b/project/events.js @@ -144,6 +144,11 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = } ], "chapter0": [ + { + "type": "playBgm", + "name": "Crawler.mp3", + "keep": true + }, { "type": "setText", "time": 50 @@ -177,17 +182,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "other_0001.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "这些天,街道不曾下雨。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -195,17 +202,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "other_0001.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "所以,那浸湿地面的,定是那些女孩们流落的鲜血无疑。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -213,17 +222,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "other_0001.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "我蹲在充斥着铁锈味般恶臭的小巷中,悠闲地如是想着。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -231,17 +242,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "bg_3563.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "扑哧。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -249,17 +262,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "bg_3563.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "耳旁再次响起象征着某个女孩子死去的声音。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -267,17 +282,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "bg_3563.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "再一次——", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -285,17 +302,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "bg_3563.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "再一次。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -303,17 +322,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "bg_3563.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "女子们被肢解成单纯的肉块。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -321,17 +342,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "bg_3563.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "我任由流下的血浸满全身,屏住自己的呼吸。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -339,17 +362,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "bg_3563.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "祈求自己能拥有从猎人手中逃脱的幸运。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -357,17 +382,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "bg_3563.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "扑哧。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -375,17 +402,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "other_0002.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "直到刚才,我们还坐在去往娼馆的马车的路上。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -393,17 +422,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "other_0002.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "而在这之中的某些人,已经不在这个世上了。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -411,17 +442,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "other_0002.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "不,应该把“某些”换成“几乎所有”才更为恰当吧。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -429,17 +462,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "other_0002.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "恐怕,不久之后我也会变成小巷中血腥的装饰品。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -447,17 +482,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "other_0002.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "我是为了得到这种死法,才辛苦苟活至今的吗?", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -465,17 +502,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "other_0002.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "来个人告诉我啊——", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -483,17 +522,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "other_0002.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "谁都好。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -501,17 +542,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "other_0002.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "来人啊!!", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -519,17 +562,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "other_0001.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "少女", "time": 50, + "sound": "aiy010000010.mp3", "text": "「呃······!?」", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -537,17 +582,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "other_0003.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "漆黑的物体充斥了我的整个视野", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -555,17 +602,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "other_0003.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "我很快意识到,那是只很大的脚。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -574,16 +623,18 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "必须要出声求救。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -591,17 +642,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "other_0003.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "可是,耳中却只能听到自己的牙关不停交战的声音。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -609,17 +662,19 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "other_0003.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "我是如此的无助。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -628,16 +683,18 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "逃跑也好,道歉也罢。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -646,16 +703,18 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "就连抬头看一眼将要杀掉我的人的面孔都做不到。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -664,16 +723,18 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "少女", "time": 50, + "sound": "aiy010000020.mp3", "text": "「······被杀」", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -682,16 +743,18 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "会被杀。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -700,16 +763,18 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "会被杀!!", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -718,16 +783,18 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "", "time": 50, + "sound": "", "text": "来自内心深处的冰冷预感,渐渐地在体内蔓延开来。", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -736,16 +803,1943 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = { "type": "cgtext", "bg": "", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "少女", "time": 50, + "sound": "aiy010000030.mp3", "text": "「不,不要······」", "bodyList": [ { - "name": " ", + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "playBgm", + "name": "Blind_Alley.mp3", + "keep": true + }, + { + "type": "cgtext", + "bg": "bg_6004.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "浮游都市,《诺瓦斯·艾蒂尔》。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_6004.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "《特别受灾地区》——", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_6004.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "通称,《牢狱》", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_6004.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "是被险峻的峭壁环绕,与世隔绝的,都市的最底部。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_6004.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "年轻人", + "time": 50, + "sound": "aiy710000010.mp3", + "text": "「放开我!」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_6004.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "年轻人", + "time": 50, + "sound": "aiy710000020.mp3", + "text": "「我只是在帮那个女人而已!」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "other_0004.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "年轻人", + "time": 50, + "sound": "aiy710000030.mp3", + "text": "「你们没听到吗!?」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "other_0004.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "年轻人", + "time": 50, + "sound": "aiy710000040.mp3", + "text": "「她是被受骗才会被卖到娼馆来的」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "other_0004.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "年轻人", + "time": 50, + "sound": "aiy710000050.mp3", + "text": "「用肮脏的手段把钱借给她父母的,就是你们这些家伙吧!?」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "年轻人", + "time": 50, + "sound": "aiy710000060.mp3", + "text": "「给我说些什么啊」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "男人声嘶力竭地叫着。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "作为对他的回应,我在他身上把麻绳又缠了一圈。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "真有精神啊。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "明明被抓前还只能害怕地颤抖,在被抓的现在就又喧闹起来了。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "再怎么说,这也是个想和娼妇私奔的男人啊······", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "嘛,那种事怎么都好。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "凯伊姆", + "time": 50, + "sound": "aiy310000010.mp3", + "text": "「这些话等到了娼馆再说吧」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "凯伊姆", + "time": 50, + "sound": "aiy310000020.mp3", + "text": "「我来抓你,只是受雇于人而已」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "我走进娼馆《莉莉乌姆》的接待室。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "正在桌旁整理账簿的奥兹停下手头的工作,抬起头向我看来。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「这不是凯伊姆先生吗,辛苦了」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「委托已经完成了吗?」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "凯伊姆", + "time": 50, + "sound": "", + "text": "「啊啊,是这家伙没错吧」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "奥兹用只要接触到就能杀人般的眼神在男人脸上搜过。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「没错,就是这个人」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "凯伊姆", + "time": 50, + "sound": "", + "text": "「是么」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "我把男人交给了奥兹。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "这样委托就完成了。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "毫无新意,司空见惯的委托。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "年轻人", + "time": 50, + "sound": "", + "text": "「你,你们要对我做什么」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「······」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "奥兹用一个眼神,就让男人闭上了嘴。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "然后,向我这边转过身来。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「抱歉啊,总是麻烦你去做这些无聊的事」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「都怪我们这边的年轻人太没用」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "凯伊姆", + "time": 50, + "sound": "", + "text": "「客套话就免了」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「这还真是失礼了」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「喂,来个人」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "很快,一个手下便应声就从娼馆内部走出。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "光头男人", + "time": 50, + "sound": "", + "text": "「是」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「凯伊姆先生做完工作回来了」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "光头男人", + "time": 50, + "sound": "", + "text": "「是,是,那个······」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「我是要你拿些酒来,这个蠢材!」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "喀!", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "奥兹扔出的烟灰缸砸中了手下的额头。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "鲜血四溅。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "凯伊姆", + "time": 50, + "sound": "", + "text": "「不用这么麻烦」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "凯伊姆", + "time": 50, + "sound": "", + "text": "「我接下来要去《菲诺列塔》」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「喔唷」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「既然如此,我就不留您在这里喝难饮的劣质酒了」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "奥兹斜眼看着正捂住额头呻吟的手下,轻描淡写地说道。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "凯伊姆", + "time": 50, + "sound": "", + "text": "「用这些钱去买药」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "我将几枚铜钱仍在那个手下的身前。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「凯伊姆先生,不用对他们这么好」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "凯伊姆", + "time": 50, + "sound": "", + "text": "「无妨」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "凯伊姆", + "time": 50, + "sound": "", + "text": "「话说回来,那个要落跑的女人呢?」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「我把她交给那些年轻人了,现在应该正在体会人生的严苛吧」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「正好,趁此机会凯伊姆先生也来享受一番如何?」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "奥兹脸上露出阴惨的笑容。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "这个男人虽说很优秀,但也有这种施虐的嗜好。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "年轻人", + "time": 50, + "sound": "", + "text": "「你,你们这些家伙,要对她做什么!?」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "沉默的男人触电般猛地开口说道。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "咣!", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "奥兹给了他一拳。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "一击即倒。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "喀,咚,咯!", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "奥兹毫不留情地向男人的脸上踩去。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "年轻人", + "time": 50, + "sound": "", + "text": "「咕······呃咳······」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "折断的牙齿伴着血泡被吐出。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "这份白色在鲜红色的液体中格外显眼。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "年轻人", + "time": 50, + "sound": "", + "text": "「你们以为做出这种事······卫兵会坐视不理吗······」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「啊啊,不会坐视不理的」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「应该会拿出你的钱包,和我们商量如何瓜分吧」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "年轻人", + "time": 50, + "sound": "", + "text": "「那,那种事······」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "这在牢狱是理所当然的事。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「怎么,头一回来牢狱么?」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "男人点了点头。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「为了被骗的女人而来到牢狱,真是个规矩人啊」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「······前提是,被骗的人不是你」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "年轻人", + "time": 50, + "sound": "", + "text": "「你说······我被骗了?」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "年轻人", + "time": 50, + "sound": "", + "text": "「那,那是怎么回事!?」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「不用急,今天晚上会好好告诉你的」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "奥兹抓起男人的脸。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "为引诱客人的怜悯之心而装纯,是娼妇的惯用手段。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "双亲被骗而借钱,结果作为抵押而将自己卖到这里,这是典型的说法。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "如果只是头脑发热而成为常客也就罢了,这次的男人热血过头,居然想出了要带女人私奔的计划。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "虽然女人半开玩笑地予以拒绝,但不知天高地厚的这家伙还是拉着她逃跑了。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "不过,想要逃脱追击本来就是不可能的任务。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "但即便如此,这种事情还是会一再的出现。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "说谎的女人和被骗的男人。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "在娼馆街,这是令人看到生厌的日常的风景。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "凯伊姆", + "time": 50, + "sound": "", + "text": "「我要走了」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「好的,下次再麻烦您」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "奥兹", + "time": 50, + "sound": "", + "text": "「之后吉克先生会将谢礼交给您的」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "凯伊姆", + "time": 50, + "sound": "", + "text": "「啊啊」", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "我背向奥兹走出娼馆。", + "bodyList": [ + { + "name": "", "px": 100, "filter": false } @@ -753,309 +2747,23 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "comment", - "text": "总而言之放一个注释分割" + "text": "删除了一部分剧情(上面改为可以用地图演出会好一点)\n(下方广场有圣女部分好像也能快进一下,直接以地图演出和艾莉斯见面)" }, { "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "浮游都市,《诺瓦斯·艾蒂尔》。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "《特别受灾地区》——", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "通称,《牢狱》", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "是被险峻的峭壁环绕,与世隔绝的,都市的最底部。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "年轻人", - "time": 50, - "text": "「放开我!」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "年轻人", - "time": 50, - "text": "「我只是在帮那个女人而已!」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "年轻人", - "time": 50, - "text": "「你们没听到吗!?」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "年轻人", - "time": 50, - "text": "「她是被受骗才会被卖到娼馆来的」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "年轻人", - "time": 50, - "text": "「用肮脏的手段把钱借给她父母的,就是你们这些家伙吧!?」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "年轻人", - "time": 50, - "text": "「给我说些什么啊」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "男人声嘶力竭地叫着。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "作为对他的回应,我在他身上把麻绳又缠了一圈。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "真有精神啊。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "明明被抓前还只能害怕地颤抖,在被抓的现在就又喧闹起来了。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "再怎么说,这也是个想和娼妇私奔的男人啊······", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "嘛,那种事怎么都好。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", + "bg": "bg_3531.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "凯伊姆", "time": 50, - "text": "「这些话等到了娼馆再说吧」", + "sound": "", + "text": "「······?」", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } @@ -1063,651 +2771,227 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = }, { "type": "cgtext", - "bg": "", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "从远方传来微弱的歌声。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "是关卡广场的方向。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "对了。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "今天有觐见圣女的仪式。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "当代的圣女伊莲——", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "俗称《盲眼之圣女》,据说即使在历代的圣女中,人气也是数一数二的。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "广场上的人估计相当多吧。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "虽然我也想去看看她长什么样,不过要在人潮中挤来挤去就免了。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "还是老老实实去菲诺列塔喝烧酒吧。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3601.png", + "WindowSkin": false, + "head": { + "name": "", + "px": -300 + }, + "name": "", + "time": 50, + "sound": "", + "text": "正当我这样想着的时候,一个身影自小巷的那头走来。", + "bodyList": [ + { + "name": "", + "px": 100, + "filter": false + } + ] + }, + { + "type": "cgtext", + "bg": "bg_3531.png", + "WindowSkin": false, "head": { "name": "", "px": -300 }, "name": "凯伊姆", "time": 50, - "text": "「我来抓你,只是受雇于人而已」", + "sound": "", + "text": "「艾莉斯」", "bodyList": [ { - "name": " ", + "name": "", "px": 100, "filter": false } ] }, { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "我走进娼馆《莉莉乌姆》的接待室。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "正在桌旁整理账簿的奥兹停下手头的工作,抬起头向我看来。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "奥兹", - "time": 50, - "text": "「这不是凯伊姆先生吗,辛苦了」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "奥兹", - "time": 50, - "text": "「委托已经完成了吗?」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "凯伊姆", - "time": 50, - "text": "「啊啊,是这家伙没错吧」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "奥兹用只要接触到就能杀人般的眼神在男人脸上搜过。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "奥兹", - "time": 50, - "text": "「没错,就是这个人」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "凯伊姆", - "time": 50, - "text": "「是么」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "我把男人交给了奥兹。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "这样委托就完成了。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "毫无新意,司空见惯的委托。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "年轻人", - "time": 50, - "text": "「你,你们要对我做什么」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "奥兹", - "time": 50, - "text": "「······」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "奥兹用一个眼神,就让男人闭上了嘴。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "然后,向我这边转过身来。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "奥兹", - "time": 50, - "text": "「抱歉啊,总是麻烦你去做这些无聊的事」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "奥兹", - "time": 50, - "text": "「都怪我们这边的年轻人太没用」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "凯伊姆", - "time": 50, - "text": "「客套话就免了」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "奥兹", - "time": 50, - "text": "「这还真是失礼了」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "奥兹", - "time": 50, - "text": "「喂,来个人」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "很快,一个手下便应声就从娼馆内部走出。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "光头男人", - "time": 50, - "text": "「是」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "奥兹", - "time": 50, - "text": "「凯伊姆先生做完工作回来了」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "光头男人", - "time": 50, - "text": "「是,是,那个······」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "奥兹", - "time": 50, - "text": "「我是要你拿些酒来,这个蠢材!」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "喀!", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "奥兹扔出的烟灰缸砸中了手下的额头。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "鲜血四溅。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "凯伊姆", - "time": 50, - "text": "「不用这么麻烦」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "凯伊姆", - "time": 50, - "text": "「我接下来要去《菲诺列塔》」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "奥兹", - "time": 50, - "text": "「喔唷」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "奥兹", - "time": 50, - "text": "「既然如此,我就不留您在这里喝难饮的劣质酒了」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "奥兹斜眼看着正捂住额头呻吟的手下,轻描淡写地说道。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "凯伊姆", - "time": 50, - "text": "「用这些钱去买药」", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] - }, - { - "type": "cgtext", - "bg": "", - "head": { - "name": "", - "px": -300 - }, - "name": "", - "time": 50, - "text": "我将几枚铜钱仍在那个手下的身前。", - "bodyList": [ - { - "name": " ", - "px": 100, - "filter": false - } - ] + "type": "comment", + "text": "好多立绘,先更这点(吐槽一下)" } ] }, diff --git a/project/floors/Caimhome.js b/project/floors/Caimhome.js index 0dbea33..f93c9a3 100644 --- a/project/floors/Caimhome.js +++ b/project/floors/Caimhome.js @@ -1,7 +1,7 @@ main.floors.Caimhome= { "floorId": "Caimhome", - "title": "主塔 11 层", + "title": "主塔11层", "name": "11", "width": 13, "height": 13, diff --git a/project/floors/jiuguan.js b/project/floors/jiuguan.js index c917085..7574b22 100644 --- a/project/floors/jiuguan.js +++ b/project/floors/jiuguan.js @@ -1,7 +1,7 @@ main.floors.jiuguan= { "floorId": "jiuguan", - "title": "主塔 11 层", + "title": "主塔11层", "name": "11", "width": 13, "height": 13, @@ -26,6 +26,29 @@ main.floors.jiuguan= ], "direction": "down" } + ], + "4,10": [ + { + "type": "over", + "text": "这段话将在屏幕中心", + "image": "bg_5043.png", + "time": 3000, + "hidetime": 30, + "sound": "", + "textColor": [ + 255, + 255, + 255, + 1 + ], + "boldColor": [ + 0, + 0, + 0, + 1 + ], + "font": "bold 48px Verdana" + } ] }, "changeFloor": {}, diff --git a/project/functions.js b/project/functions.js index d04bd4e..734237f 100644 --- a/project/functions.js +++ b/project/functions.js @@ -177,6 +177,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = if (!core.hasVisitedFloor(floorId)) { core.insertAction(core.floors[floorId].firstArrive); core.visitFloor(floorId); + core.plugin.bfs(); } } }, diff --git a/project/images/bg_3531.png b/project/images/bg_3531.png new file mode 100644 index 0000000..e461f12 Binary files /dev/null and b/project/images/bg_3531.png differ diff --git a/project/images/bg_3563.png b/project/images/bg_3563.png new file mode 100644 index 0000000..91970d7 Binary files /dev/null and b/project/images/bg_3563.png differ diff --git a/project/images/bg_3601.png b/project/images/bg_3601.png new file mode 100644 index 0000000..d30ed7e Binary files /dev/null and b/project/images/bg_3601.png differ diff --git a/project/images/bg_6004.png b/project/images/bg_6004.png new file mode 100644 index 0000000..d176eae Binary files /dev/null and b/project/images/bg_6004.png differ diff --git a/project/images/other_0001.png b/project/images/other_0001.png new file mode 100644 index 0000000..7ce6a14 Binary files /dev/null and b/project/images/other_0001.png differ diff --git a/project/images/other_0002.png b/project/images/other_0002.png new file mode 100644 index 0000000..c54928e Binary files /dev/null and b/project/images/other_0002.png differ diff --git a/project/images/other_0003.png b/project/images/other_0003.png new file mode 100644 index 0000000..b21e210 Binary files /dev/null and b/project/images/other_0003.png differ diff --git a/project/images/other_0004.png b/project/images/other_0004.png new file mode 100644 index 0000000..4b27c0e Binary files /dev/null and b/project/images/other_0004.png differ diff --git a/project/plugins.js b/project/plugins.js index 3527a36..6e81618 100644 --- a/project/plugins.js +++ b/project/plugins.js @@ -40,6 +40,21 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = } core.doAction() }) + core.registerEvent("over", function (data) { + let image = data.image ?? ""; + let time = data.time ?? 3000; + let sound = data.sound ?? ""; + let textColor = data.textColor ?? "#FFFFFF"; + let boldColor = data.boldColor ?? "#000000"; + let font = data.font ?? "bold 48px Verdana"; + let text = data.text ?? ""; + let hidetime = data.hidetime ?? 100; + if (!main.replayChecking && !core.isReplaying()) { + core.over(image, time, hidetime, sound, textColor, boldColor, font, text) + } else { + core.doAction() + } + }) core.registerEvent("cgtext", function (data) { if (!main.replayChecking && !core.isReplaying()) { core.ui.cgText.image = data.bg; @@ -48,8 +63,10 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = core.ui.cgText.text = data.text; core.ui.cgText.time = data.time; core.ui.cgText.WindowSkin = data.WindowSkin + core.ui.cgText.sound = data.sound || ""; core.ui.cgText.bodyList = core.clone(data.bodyList); main.dom.cgText.style.display = 'block'; + core.lockControl(); core.ui.cgText.update() } else { @@ -2005,6 +2022,8 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = main.dom.CGUI.style.height = obj.totalHeight + 'px'; main.dom.cgText.style.width = obj.totalWidth + 'px'; main.dom.cgText.style.height = obj.totalHeight + 'px'; + main.dom.over.style.width = obj.totalWidth + 'px'; + main.dom.over.style.height = obj.totalHeight + 'px'; const innerSize = (obj.canvasWidth * core.domStyle.scale) + "px"; for (let i = 0; i < core.dom.gameCanvas.length; ++i) @@ -2053,7 +2072,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = globalAlphafloor += globalAlphafloorStatus; if (globalAlphafloor === 100) globalAlphafloorStatus = -4 if (globalAlphafloor === 0) globalAlphafloorStatus = 4 - + if (core.status.event.id === 'viewMaps') { core.ui.statusBar._update_map(core.status.event.data.floorId) } else { core.ui.statusBar._update_map() } if (core.domStyle.isVertical) { core.clearMap(uictx, MAP_BLOCK_LEFT_VERTICAL, MAP_BLOCK_TOP_VERTICAL, 340, 360) uictx.drawImage(floorVertical, 0, 0) @@ -2834,80 +2853,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = } return; } - actions.prototype._sys_keyDownCtrl = function () { - if (core.status.event.id == 'text') { - core.drawText(); - return true; - } - if (core.status.event.id == 'action' && (core.status.event.data.type == 'text' || core.status.event.data.type == 'cgtext')) { - let time = 0 - core.registerAnimationFrame("ctrlDown", true, (timestamp) => { - if (timestamp > time + 100) { - time = timestamp - if (core.status.event.id == 'action' && (core.status.event.data.type == 'text' || core.status.event.data.type == 'cgtext')) { - main.dom.cgText.style.display = "none" - core.doAction() - } - } - }) - return true; - } - if (core.status.event.id == 'action' && core.status.event.data.type == 'sleep' && - !core.status.event.data.current.noSkip) { - if (core.timeout.sleepTimeout && !core.hasAsync()) { - clearTimeout(core.timeout.sleepTimeout); - core.timeout.sleepTimeout = null; - core.doAction(); - } - return true; - } - } - actions.prototype.keyDownCtrl = function () { - this.doRegisteredAction('keyDownCtrl'); - } - core.registerAction('keyDownCtrl', '_sys_keyDownCtrl', core.actions._sys_keyDownCtrl, 0); - actions.prototype._keyUpAction = function (keycode) { - if (keycode == 17) { - core.unregisterAnimationFrame("ctrlDown") - return - } - if (core.status.event.data.type == 'text' && (keycode == 13 || keycode == 32 || keycode == 67)) { - return this._clickAction_text(); - } - if (core.status.event.data.type == 'wait') { - var timeout = Math.max(0, core.status.event.timeout - new Date().getTime()) || 0; - core.setFlag('type', 0); - core.setFlag('keycode', keycode); - core.setFlag('timeout', timeout); - var executed = core.events.__action_wait_afterGet(core.status.event.data.current); - if (executed || !core.status.event.data.current.forceChild) { - core.status.route.push("input:" + (1e8 * timeout + keycode)); - clearTimeout(core.status.event.interval); - delete core.status.event.timeout; - core.doAction(); - } - return; - } - if (core.status.event.data.type == 'choices') { - var data = core.status.event.data.current; - var choices = data.choices; - if (choices.length > 0) { - this._selectChoices(choices.length, keycode, this._clickAction); - } - return; - } - if (core.status.event.data.type == 'confirm' && (keycode == 13 || keycode == 32 || keycode == 67)) { - var timeout = Math.max(0, core.status.event.timeout - new Date().getTime()) || 0; - delete core.status.event.timeout; - core.setFlag('timeout', timeout); - core.status.route.push("choices:" + (100 * timeout + core.status.event.selection)); - if (core.status.event.selection == 0) - core.insertAction(core.status.event.ui.yes); - else core.insertAction(core.status.event.ui.no); - core.doAction(); - return; - } - } + ////// 执行当前自定义事件列表中的下一个事件 ////// events.prototype.doAction = function () { // 清空boxAnimate和UI层 @@ -2934,7 +2880,10 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = data = { "type": "text", "text": data }; // 该事件块已经被禁用 if (data._disabled) return core.doAction(); - if (data.type !== 'cgtext') core.unregisterAnimationFrame("skip") + if (data.type !== 'cgtext') { + core.unregisterAnimationFrame("skip") + core.setFlag("skip", false) + } data.floorId = data.floorId || floorId; core.status.event.data.type = data.type; this.doEvent(data, x, y, prefix); @@ -7350,6 +7299,7 @@ core.plugin.animate = { MotaActionBlocks['text_0_s'].xmlText(), MotaActionBlocks['text_1_s'].xmlText(), MotaActionFunctions.actionParser.parseList("\t[小妖精,fairy]\f[fairy.png,0,0]欢迎使用事件编辑器(双击方块可直接预览)"), + MotaActionBlocks['over_s'].xmlText(), MotaActionFunctions.actionParser.parseList([{ "type": "cgtext", "bg": "bg_5043.png", @@ -7357,6 +7307,7 @@ core.plugin.animate = { "head": { "name": "face_050445.png", "px": -300 }, "name": "菲奥奈", "time": 0, + "sound": "", "text": "这句话显示在对话框内", "bodyList": [ { "name": "tati_050145a.png", "px": 100, "filter": false } @@ -8106,8 +8057,7 @@ core.plugin.animate = { let allChangeEntries = Object.entries(defaultChange); const reset = core.events.resetGame; - core.events.resetGame = function () { - reset.apply(core.events, arguments); + this.bfs = function () { areas = []; // 获取所有分区,使用异步函数,保证不会卡顿 // 原理是用bfs扫,将所有连在一起的地图合并成一个区域 @@ -8133,6 +8083,10 @@ core.plugin.animate = { } })(); } + core.events.resetGame = function () { + reset.apply(core.events, arguments); + core.plugin.bfs() + } /** * 广度优先搜索搜索地图路径 * @param {string} center 中心地图的id @@ -8233,6 +8187,7 @@ core.plugin.animate = { * @param {string[]} order 遍历顺序 * @returns {MapDrawInfo} 地图的绘制信息 */ + function getDrawInfo(map, center, order) { // 先根据地图id分类,从而确定每个地图连接哪些地图,同时方便处理 const links = {}; @@ -8321,6 +8276,37 @@ core.plugin.animate = { core.animateFrame.globalAlphaFloor = 0 core.animateFrame.globalAlphaFloorStatus = 1 + const tesk = document.createElement('canvas') + tesk.width = 300; + tesk.height = 300; + const teskctx = tesk.getContext("2d"); + + let line = 50 + teskctx.strokeStyle = 'green' + teskctx.fillStyle = 'green' + + core.registerAnimationFrame('tesk', true, function () { + core.clearMap(teskctx) + teskctx.lineWidth = 150 - line; + + + if (line <= 150) { + teskctx.beginPath(); + teskctx.arc(150, 150, line, 0, Math.PI * 2) + line += 2 + teskctx.stroke() + } else { + teskctx.beginPath(); + teskctx.arc(150, 150, line - 150, 0, Math.PI * 2) + line += 2 + teskctx.fill() + if (line >= 250) line = 50 + } + + + }) + + /** * 绘制小地图 * @param {MapDrawInfo} info 地图绘制信息 @@ -8353,6 +8339,7 @@ core.plugin.animate = { core.drawImage(ctx, img, 0, 0, 60, 60, fx, fy, w, h) const layer = info.upOrDown[id]; const min = Math.min(w, h); + if (core.getFlag("任务地点") && core.getFlag("任务地点") === id) ctx.drawImage(tesk, fx + min / 4, fy + min / 4, min / 2, min / 2) if (layer?.includes('upFloor')) core.drawIcon(ctx, defaultChange.upFloor, fx + min / 4, fy + min / 4, min / 2, min / 2); if (layer?.includes('downFloor')) @@ -8420,7 +8407,7 @@ core.plugin.animate = { let size = core.__PIXELS__ * 3 / 4; //312 const areas = core.getFlag('areas') - const i = areas.findIndex(v => v.name === core.status.maps[floorId].areas) + let i = areas.findIndex(v => v.maps.includes(floorId)) core.fillRoundRect('ui', 15 - 2, 15 - 2, 35 + 4, 35 + 4, 4, '#444444'); core.strokeRoundRect('ui', 15 - 4, 15 - 4, 35 + 8, 35 + 8, 4, "#444444", 1) core.fillBoldText('ui', '当前', 13 + 20, 17 + 20, '#FFFFFF', '#000000', this._buildFont(18, true)) @@ -8482,9 +8469,9 @@ core.plugin.animate = { core.fillRoundRect('ui', 15 - 2, 60 - 2 + size - 4, 35 + 4, 35 + 4, 4, '#444444'); core.strokeRoundRect('ui', 15 - 4, 60 - 4 + size - 4, 35 + 8, 35 + 8, 4, "#444444", 1) if (i === 0) { - core.fillBoldText('ui', '◀', 35, 17 + 65 + size - 4, '#909090', '#000000', this._buildFont(18, true)) + core.fillBoldText('ui', '◀', 30, 17 + 65 + size - 4, '#909090', '#000000', this._buildFont(18, true)) } else { - core.fillBoldText('ui', '◀', 35, 17 + 65 + size - 4, '#FFFFFF', '#000000', this._buildFont(18, true)) + core.fillBoldText('ui', '◀', 30, 17 + 65 + size - 4, '#FFFFFF', '#000000', this._buildFont(18, true)) } core.fillRoundRect('ui', 15 - 2 + size - 4, 60 - 2 + size - 4, 35 + 4, 35 + 4, 4, '#444444'); core.strokeRoundRect('ui', 15 - 4 + size - 4, 60 - 4 + size - 4, 35 + 8, 35 + 8, 4, "#444444", 1) @@ -8513,7 +8500,7 @@ core.plugin.animate = { core.strokeRoundRect('ui', 15 - 4 + size - 4 + 35 + 8, 60 - 4, 37 + 8, (size - 58) / 2 + 8, 4, "#444444", 1) const title = core.status.maps[floorId].title //const length = title.length - fillTextVertical("ui", title, 15 - 4 + size - 4 + 45, 85, '#FFFFFF', 18) + fillTextVertical("ui", title, 15 - 4 + size - 4 + 45, 85, '#FFFFFF', '#000000', 18) //const uictx = main.dom.gameCanvas.ui.getContext('2d') core.fillRoundRect('ui', 15 - 2 + size - 4 + 35 + 8, 60 - 2 + (size - 58) / 2 + 8, 37 + 4, 119 + 4, 4, '#444444'); core.strokeRoundRect('ui', 15 - 4 + size - 4 + 35 + 8, 60 - 4 + (size - 58) / 2 + 8, 37 + 8, 119 + 8, 4, "#444444", 1) @@ -8534,7 +8521,7 @@ core.plugin.animate = { if (!ctx) return; const canvas = document.createElement('canvas'); const context = canvas.getContext("2d"); - + fontsize *= 3; const length = text.length canvas.width = fontsize * 2 canvas.height = fontsize * length * 2 @@ -8578,6 +8565,7 @@ core.plugin.animate = { context.textAlign = 'center'; context.textBaseline = 'middle'; + context.lineWidth = 6 // 开始逐字绘制 @@ -8585,18 +8573,6 @@ core.plugin.animate = { // 确定下一个字符的纵坐标位置 - var letterWidth = arrWidth[index]; - - - - if (index > 0 && text.charCodeAt(index - 1) < 256) { - - // y修正 - - sy = sy + arrWidth[index - 1] / 2; - - } - context.strokeText(letter, sx, sy); context.fillText(letter, sx, sy); // 旋转坐标系还原成初始态 @@ -8605,7 +8581,7 @@ core.plugin.animate = { // 确定下一个字符的纵坐标位置 - var letterWidth = arrWidth[index]; + var letterWidth = 54; sy = sy + letterWidth; @@ -8618,7 +8594,7 @@ core.plugin.animate = { context.textBaseline = baseline; //绘制到目标位置 - ctx.drawImage(canvas, x, y - fontsize * length) + ctx.drawImage(canvas, x, y - fontsize / 3 * length, canvas.width / 3, canvas.height / 3) }; ////// 点击楼层传送器时的打开操作 ////// @@ -8741,7 +8717,7 @@ core.plugin.animate = { } const areas = core.getFlag('areas') - let i = areas.findIndex(v => v.name === core.status.maps[floorId].areas) + let i = areas.findIndex(v => v.maps.includes(floorId)) if (px >= 11 && px <= 54 && py >= 11 && py <= 54) { core.ui._drawViewMaps(core.floorIds.indexOf(core.status.floorId)) @@ -9759,7 +9735,17 @@ core.plugin.animate = { cg.onmouseup = function (e) { //鼠标抬起 try { + if (!core.isPlaying()) return false; core.unregisterAnimationFrame("skip") + let a = core.getFlag("skip", false) + core.setFlag("skip", false) + if (a) { + const data = core.clone(core.status.event.data.current); + + core.insertAction(data); + core.unlockControl(); + core.doAction() + } } catch (ee) { console.error(ee); } @@ -9782,6 +9768,16 @@ core.plugin.animate = { if (!core.isPlaying()) return false; core.unregisterAnimationFrame("skip") + core.setFlag("skip", false) + let a = core.getFlag("skip", false) + core.setFlag("skip", false) + if (a) { + const data = core.clone(core.status.event.data.current); + + core.insertAction(data); + core.unlockControl(); + core.doAction() + } } catch (ee) { console.error(ee); } @@ -9799,6 +9795,7 @@ core.plugin.animate = { main.log(ee); } } + let auto = false; class cgText { constructor() { //绘制需要的变量 this.image = "" @@ -9808,6 +9805,8 @@ core.plugin.animate = { this.text = '' this.time = 0; this.WindowSkin = false; + this.sound = ""; + this.beforeSound = 0; } click(px, py) { //点击效果 @@ -9828,47 +9827,76 @@ core.plugin.animate = { const saveboxVertical = makeBox([52, 1700], [96, 192]) const skipbox = makeBox([1400, 1100], [192, 96]); const skipboxVertical = makeBox([52, 1400], [96, 192]) + const autobox = makeBox([1700, 900], [192, 96]); + const autoboxVertical = makeBox([256, 1700], [96, 192]) if ((core.domStyle.isVertical && inRect(pos, skipboxVertical) && !this.WindowSkin) || (!core.domStyle.isVertical && !this.WindowSkin && inRect(pos, skipbox))) { + auto = false; let time = 0 + core.stopSound(this.beforeSound); core.registerAnimationFrame("skip", true, (timestamp) => { if (timestamp > time + 100) { time = timestamp if (core.status.event.id == 'action' && core.status.event.data.type == 'cgtext') { + core.setFlag("skip", true) main.dom.cgText.style.display = "none" + core.unlockControl(); core.doAction() } } }) + } else if ((core.domStyle.isVertical && inRect(pos, autoboxVertical) && !this.WindowSkin) || (!core.domStyle.isVertical && !this.WindowSkin && inRect(pos, autobox))) { + auto = !auto; + + const data = core.clone(core.status.event.data.current); + data.showAll = true; + data.time = 0 + data.text = data.text.replace(/(\\(z))(\[.*?])?/g, ""); //去除打字机暂停效果 + data.sound = "" + core.insertAction(data); + core.unlockControl(); + core.doAction() + } else if ((core.domStyle.isVertical && inRect(pos, saveboxVertical) && !this.WindowSkin) || (!core.domStyle.isVertical && !this.WindowSkin && inRect(pos, savebox))) { //存档 + auto = false; if (core.status.event.animateUI) return; if (core.status.event.interval != null) return; const current = core.clone(core.status.event.data.current) current.showAll = true; current.time = 0 + current.sound = "" current.text = current.text.replace(/(\\(z))(\[.*?])?/g, ""); //去除当前事件所有打字机效果 cg.style.display = "none" const data = [{ 'type': 'callSave' }, current] //插入存档事件 core.insertAction(data) + core.unlockControl(); core.doAction(); } else { + // 正在淡入淡出的话不执行 if (core.status.event.animateUI) return; + auto = false; + const data = core.clone(core.status.event.data.current); - var data = core.clone(core.status.event.data.current); // 打字机效果显示全部文字 if (core.status.event.interval != null) { data.showAll = true; data.time = 0 data.text = data.text.replace(/(\\(z))(\[.*?])?/g, ""); //去除打字机暂停效果 - + data.sound = ""; core.insertAction(data); + core.unlockControl(); core.doAction(); return; + } else { + core.stopSound(this.beforeSound); } cg.style.display = "none" - core.ui._animateUI('hide', null, core.doAction); + core.ui._animateUI('hide', null, () => { + core.unlockControl(); + core.doAction() + }); } @@ -9965,12 +9993,26 @@ core.plugin.animate = { if (config.time == 0) { while (_drawNext()); + if (auto && !this.WindowSkin && !core.ui.cgText.sound || (core.ui.cgText.sound && !core.musicStatus.soundStatus)) { + setTimeout(() => { + if (auto) { + core.unlockControl(); + core.doAction() + } + }, 2000) + } } else { clearInterval(core.status.event.interval); core.status.event.interval = setInterval(function () { if (!_drawNext()) { clearInterval(core.status.event.interval); core.status.event.interval = null; + if (auto && !this.WindowSkin && !core.ui.cgText.sound || (core.ui.cgText.sound && !core.musicStatus.soundStatus)) setTimeout(() => { + if (auto) { + core.unlockControl(); + core.doAction() + } + }, 2000) } }, config.time); } @@ -9983,6 +10025,7 @@ core.plugin.animate = { } background() { const img = core.material.images.images?.[this.image] + if (core.domStyle.isVertical) { ctx.canvas.width = 1248; ctx.canvas.height = 2028; @@ -10018,9 +10061,25 @@ core.plugin.animate = { core.fillBoldText(ctx, '存 档', 1736, 1166, '#FFFFFF', '#000000', "bold 48px Verdana") core.drawWindowSkin("winskin.png", ctx, 1400, 1100, 192, 96) core.fillBoldText(ctx, '▶▶', 1456, 1166, '#FFFFFF', '#000000', "bold 48px Verdana") + core.drawWindowSkin("winskin.png", ctx, 1700, 900, 192, 96) + let autoText = "AUTO"; + if (auto) autoText = "STOP"; + core.fillBoldText(ctx, autoText, 1722, 966, '#FFFFFF', '#000000', "bold 48px Verdana") } if (this.name) core.fillBoldText(ctx, `【${this.name}】`, 500, 880, '#FFFFFF', '#000000', "bold 48px Verdana") //绘制名字 - if (this.text) { //绘制对话 + if (this.sound && core.material.sounds[this.sound] && !core.getFlag("skip", false) && core.musicStatus.soundStatus) { + this.beforeSound = core.playSound(this.sound, null, () => { + if (this.sound && auto && !this.WindowSkin && core.musicStatus.soundStatus) { + setTimeout(() => { + if (auto) { + core.unlockControl(); + core.doAction() + } + }, 2000) + } + }) + } + if (this.text && !core.getFlag("skip", false)) { //绘制对话 this.drawTextContent(ctx, this.text, { left: 500, top: 950, @@ -10042,128 +10101,258 @@ core.plugin.animate = { } core.ui.cgText = new cgText() - }, - "属性映射": function () { - // 在此增加新插件 - this.statusEquip = function () { - const hero = core.status.hero; - //装备具体效果在这里写,道具填写道具类型为equip并选择装备类型,道具的装备属性中装备类型遵循以下填写方式: - //固定装备孔的填写0/1/2/3,分别对应主手、副手、防具、饰品 - //主副手同时可使用的,填写 武器 - //具体的换装时装备切换操作写在新道具栏/物品栏插件 - //当前仅完善法杖、单手剑、双手剑、匕首、盾牌的多孔切换操作 - //主武器效果 - if (core.getEquip[0]) { - switch (core.getEquip[0]) { - case "sword1": - hero.atk = hero.str + hero.agi; - hero.magic = false; - break; - } - } - //副手效果 - if (core.getEquip[1]) { - switch (core.getEquip[1]) { - case "sword1": - hero.atk += hero.agi; - break; - } - } - //防具效果 - if (core.getEquip[2]) { - switch (core.getEquip[2]) { - case "sword1": - hero.def = hero.con + hero.agi; - hero.hpmax = 2.5 * hero.con; - break; - } - } - //饰品效果 - if (core.getEquip[3]) { - switch (core.getEquip[3]) { - case "sword1": - hero.speed += 0.4 * hero.int + 0.6 * hero.agi; - break; - } - } - } - this.updateStatus = function () { - const hero = core.status.hero; - //默认映射关系 - hero.hpmax = hero.str * 50 + hero.con * 50; - hero.atk = hero.str * 0.5 + hero.int * 0.5; - hero.manamax = hero.agi * 0.5 + hero.int * 0.5; - hero.def = hero.con * 0.5 + hero.agi * 0.5; - hero.mdef = hero.con * 0.5 + hero.int * 0.5; - hero.speed = hero.str * 0.5 + hero.agi * 0.5; - hero.magic = false; - this.statusEquip(); //处理装备效果 - for (let v in hero) { //归整 - if (typeof hero[v] === 'number') { - hero[v] = Math.floor(hero[v]) - } - } - hero.hp = Math.min(hero.hp, hero.hpmax) - hero.mana = Math.min(hero.mana, hero.manamax) - core.status.hero = hero +"旁白": function () { +// 在此增加新插件 +const over = document.createElement('canvas'); //over画布设置 +over.style.position = 'absolute'; +over.style.zIndex = 310; +over.style.display = "none" +over.id = 'over'; +main.dom.gameGroup.insertAdjacentElement('afterend', over) +over.style.top = "50%" +over.style.left = "50%" +over.style.transform = "translate(-50%,-50%)" +const ctx = over.getContext("2d"); +main.dom.over = over; +this.over = function (image, time = 3000, hidetime = 100, sound = "", textColor = "#FFFFFF", boldColor = "#000000", font = "bold 48px Verdana", text = "") { + if (!core.isPlaying()) { return core.doAction() } + const img = core.material.images.images?.[image] + core.lockControl(); + over.style.display = "block"; + let globalAlpha = 0 + core.registerAnimationFrame("overshow", true, () => { - } - -}, - "回合制boss战": function () { - // 在此增加新插件 - const boss = document.createElement('canvas'); //boss战画布设置 - boss.style.position = 'absolute'; - boss.style.zIndex = 300; - boss.style.display = "none" - boss.id = 'boss'; - main.dom.gameGroup.insertAdjacentElement('afterend', boss) - boss.style.top = "50%" - boss.style.left = "50%" - boss.style.transform = "translate(-50%,-50%)" - const ctx = boss.getContext("2d"); - main.dom.boss = boss; - boss.onclick = function (e) { - try { - e.preventDefault(); - if (core.isPlaying()) return false; - const left = core.dom.gameGroup.offsetLeft; - const top = core.dom.gameGroup.offsetTop; - const px = Math.floor((e.clientX - left) / core.domStyle.scale), - py = Math.floor((e.clientY - top) / core.domStyle.scale); - core.ui.boss.onclick(px * 3, py * 3); - } catch (ee) { - main.log(ee); + core.clearMap(ctx) + if (core.domStyle.isVertical) { + ctx.canvas.width = 1248; + ctx.canvas.height = 2028; + ctx.save(); //保存设置 + ctx.translate(1248, 0) //重新定位右上角为基准 + ctx.rotate(Math.PI / 2) //旋转90度 + } else { + ctx.canvas.width = 2028; + ctx.canvas.height = 1248; } - } - class boss1 { - constructor() { - this.bg = "" - } - cavans() { - if (core.domStyle.isVertical) { - ctx.canvas.width = 1248; - ctx.canvas.height = 2028; + ctx.globalAlpha = 1 - core.setTextAlign(ctx, 'center'); + if (img) { //绘制背景 + ctx.drawImage(img, 0, 0, 2028, 1248) + + } else { + core.fillRect(ctx, 0, 0, 2028, 1248) + } + globalAlpha++ + ctx.globalAlpha = globalAlpha / hidetime + core.setTextAlign(ctx, 'center'); + core.fillBoldText(ctx, text, 1014, 624, textColor, boldColor, font) + + ctx.restore(); + if (globalAlpha >= hidetime) { + core.unregisterAnimationFrame("overshow") + if (sound && core.material.sounds[sound] && core.musicStatus.soundStatus) { + core.playSound(sound, null, () => { + core.registerAnimationFrame("overhide", true, () => { + + core.clearMap(ctx) + if (core.domStyle.isVertical) { + ctx.canvas.width = 1248; + ctx.canvas.height = 2028; + ctx.save(); //保存设置 + ctx.translate(1248, 0) //重新定位右上角为基准 + ctx.rotate(Math.PI / 2) //旋转90度 + } else { + ctx.canvas.width = 2028; + ctx.canvas.height = 1248; + } + ctx.globalAlpha = 1 + if (img) { //绘制背景 + ctx.drawImage(img, 0, 0, 2028, 1248) + + } else { + core.fillRect(ctx, 0, 0, 2028, 1248) + } + globalAlpha-- + ctx.globalAlpha = globalAlpha / hidetime + core.setTextAlign(ctx, 'center'); + core.fillBoldText(ctx, text, 1014, 624, textColor, boldColor, font) + + ctx.restore(); + if (globalAlpha <= 0) { + over.style.display = 'none' + core.unregisterAnimationFrame("overhide") + core.unlockControl(); + core.doAction() + } + }) + }) } else { - ctx.canvas.width = 2028; - ctx.canvas.height = 1248; + setTimeout(() => { + core.registerAnimationFrame("overhide", true, () => { - core.setTextAlign(ctx, 'center'); + core.clearMap(ctx) + if (core.domStyle.isVertical) { + ctx.canvas.width = 1248; + ctx.canvas.height = 2028; + ctx.save(); //保存设置 + ctx.translate(1248, 0) //重新定位右上角为基准 + ctx.rotate(Math.PI / 2) //旋转90度 + } else { + ctx.canvas.width = 2028; + ctx.canvas.height = 1248; + } + ctx.globalAlpha = 1 + if (img) { //绘制背景 + ctx.drawImage(img, 0, 0, 2028, 1248) + + } else { + core.fillRect(ctx, 0, 0, 2028, 1248) + } + globalAlpha-- + ctx.globalAlpha = globalAlpha / hidetime + core.setTextAlign(ctx, 'center'); + core.fillBoldText(ctx, text, 1014, 624, textColor, boldColor, font) + + ctx.restore(); + + if (globalAlpha <= 0) { + + over.style.display = 'none' + core.unregisterAnimationFrame("overhide") + core.unlockControl(); + core.doAction(); + } + }) + }, time) } - } - start() { + }) - } - onclick(px, py) { +} +}, +"属性映射": function () { +// 在此增加新插件 +this.statusEquip = function () { + const hero = core.status.hero; + //装备具体效果在这里写,道具填写道具类型为equip并选择装备类型,道具的装备属性中装备类型遵循以下填写方式: + //固定装备孔的填写0/1/2/3,分别对应主手、副手、防具、饰品 + //主副手同时可使用的,填写 武器 + //具体的换装时装备切换操作写在新道具栏/物品栏插件 + //当前仅完善法杖、单手剑、双手剑、匕首、盾牌的多孔切换操作 + //主武器效果 + if (core.getEquip[0]) { + switch (core.getEquip[0]) { + case "sword1": + hero.atk = hero.str + hero.agi; + hero.magic = false; + break; } } - core.ui.boss = new boss1() + //副手效果 + if (core.getEquip[1]) { + switch (core.getEquip[1]) { + case "sword1": + hero.atk += hero.agi; + break; + } + } + //防具效果 + if (core.getEquip[2]) { + switch (core.getEquip[2]) { + case "sword1": + hero.def = hero.con + hero.agi; + hero.hpmax = 2.5 * hero.con; + break; + } + } + //饰品效果 + if (core.getEquip[3]) { + switch (core.getEquip[3]) { + case "sword1": + hero.speed += 0.4 * hero.int + 0.6 * hero.agi; + break; + } + } +} +this.updateStatus = function () { + const hero = core.status.hero; + //默认映射关系 + hero.hpmax = hero.str * 50 + hero.con * 50; + hero.atk = hero.str * 0.5 + hero.int * 0.5; + hero.manamax = hero.agi * 0.5 + hero.int * 0.5; + hero.def = hero.con * 0.5 + hero.agi * 0.5; + hero.mdef = hero.con * 0.5 + hero.int * 0.5; + hero.speed = hero.str * 0.5 + hero.agi * 0.5; + hero.magic = false; + this.statusEquip(); //处理装备效果 + for (let v in hero) { //归整 + if (typeof hero[v] === 'number') { + hero[v] = Math.floor(hero[v]) + } + } + hero.hp = Math.min(hero.hp, hero.hpmax) + hero.mana = Math.min(hero.mana, hero.manamax) + core.status.hero = hero + + +} + +}, +"回合制boss战": function () { +// 在此增加新插件 +const boss = document.createElement('canvas'); //boss战画布设置 +boss.style.position = 'absolute'; +boss.style.zIndex = 300; +boss.style.display = "none" +boss.id = 'boss'; +main.dom.gameGroup.insertAdjacentElement('afterend', boss) +boss.style.top = "50%" +boss.style.left = "50%" +boss.style.transform = "translate(-50%,-50%)" +const ctx = boss.getContext("2d"); +main.dom.boss = boss; +boss.onclick = function (e) { + try { + e.preventDefault(); + if (core.isPlaying()) return false; + const left = core.dom.gameGroup.offsetLeft; + const top = core.dom.gameGroup.offsetTop; + const px = Math.floor((e.clientX - left) / core.domStyle.scale), + py = Math.floor((e.clientY - top) / core.domStyle.scale); + core.ui.boss.onclick(px * 3, py * 3); + } catch (ee) { + main.log(ee); + } +} +class boss1 { + constructor() { + this.bg = "" + } + cavans() { + if (core.domStyle.isVertical) { + ctx.canvas.width = 1248; + ctx.canvas.height = 2028; + + core.setTextAlign(ctx, 'center'); + } else { + ctx.canvas.width = 2028; + ctx.canvas.height = 1248; + + core.setTextAlign(ctx, 'center'); + } + + } + start() { + + } + onclick(px, py) { + + } +} +core.ui.boss = new boss1() + } } \ No newline at end of file diff --git a/project/sounds/aiy010000010.mp3 b/project/sounds/aiy010000010.mp3 new file mode 100644 index 0000000..4389b53 Binary files /dev/null and b/project/sounds/aiy010000010.mp3 differ diff --git a/project/sounds/aiy010000020.mp3 b/project/sounds/aiy010000020.mp3 new file mode 100644 index 0000000..77111c6 Binary files /dev/null and b/project/sounds/aiy010000020.mp3 differ diff --git a/project/sounds/aiy010000030.mp3 b/project/sounds/aiy010000030.mp3 new file mode 100644 index 0000000..c2b47e7 Binary files /dev/null and b/project/sounds/aiy010000030.mp3 differ diff --git a/project/sounds/aiy310000010.mp3 b/project/sounds/aiy310000010.mp3 new file mode 100644 index 0000000..d6bf306 Binary files /dev/null and b/project/sounds/aiy310000010.mp3 differ diff --git a/project/sounds/aiy310000020.mp3 b/project/sounds/aiy310000020.mp3 new file mode 100644 index 0000000..84ad00e Binary files /dev/null and b/project/sounds/aiy310000020.mp3 differ diff --git a/project/sounds/aiy710000010.mp3 b/project/sounds/aiy710000010.mp3 new file mode 100644 index 0000000..6e08794 Binary files /dev/null and b/project/sounds/aiy710000010.mp3 differ diff --git a/project/sounds/aiy710000020.mp3 b/project/sounds/aiy710000020.mp3 new file mode 100644 index 0000000..d025b23 Binary files /dev/null and b/project/sounds/aiy710000020.mp3 differ diff --git a/project/sounds/aiy710000030.mp3 b/project/sounds/aiy710000030.mp3 new file mode 100644 index 0000000..ad200f2 Binary files /dev/null and b/project/sounds/aiy710000030.mp3 differ diff --git a/project/sounds/aiy710000040.mp3 b/project/sounds/aiy710000040.mp3 new file mode 100644 index 0000000..dbdbbd2 Binary files /dev/null and b/project/sounds/aiy710000040.mp3 differ diff --git a/project/sounds/aiy710000050.mp3 b/project/sounds/aiy710000050.mp3 new file mode 100644 index 0000000..f304d67 Binary files /dev/null and b/project/sounds/aiy710000050.mp3 differ diff --git a/project/sounds/aiy710000060.mp3 b/project/sounds/aiy710000060.mp3 new file mode 100644 index 0000000..1366af4 Binary files /dev/null and b/project/sounds/aiy710000060.mp3 differ