add a readme for all theme points, add a method for showing images in whole window, fix starting theme

This commit is contained in:
bdf1 2022-10-25 05:13:37 +13:00
parent 5d28314e7a
commit 955f17c684
76 changed files with 571 additions and 289 deletions

View File

@ -3963,6 +3963,10 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [
"!doc": "显示一张图片<br/>例如core.showImage(1, core.material.images.images['winskin.png'], [0,0,128,128], [0,0,416,416], 0.5, 1000); // 裁剪winskin.png的最左边128×128px放大到铺满整个视野1秒内淡入到50%透明编号为1<br/>code: 图片编号为不大于50的正整数加上100后就是对应画布层的z值较大的会遮罩较小的注意色调层的z值为125UI层为140<br/>image: 图片文件名(可以是全塔属性中映射前的中文名)或图片对象(见上面的例子)<br/>sloc: 一行且至多四列的数组,表示从原图裁剪的左上角坐标和宽高,可选<br/>loc: 一行且至多四列的数组,表示图片在视野中的左上角坐标和宽高,可选<br/>opacityVal: 不透明度为小于1的正数。不填视为1<br/>time: 淡入时间单位为毫秒。不填视为0<br/>callback: 图片完全显示出来后的回调函数,可选", "!doc": "显示一张图片<br/>例如core.showImage(1, core.material.images.images['winskin.png'], [0,0,128,128], [0,0,416,416], 0.5, 1000); // 裁剪winskin.png的最左边128×128px放大到铺满整个视野1秒内淡入到50%透明编号为1<br/>code: 图片编号为不大于50的正整数加上100后就是对应画布层的z值较大的会遮罩较小的注意色调层的z值为125UI层为140<br/>image: 图片文件名(可以是全塔属性中映射前的中文名)或图片对象(见上面的例子)<br/>sloc: 一行且至多四列的数组,表示从原图裁剪的左上角坐标和宽高,可选<br/>loc: 一行且至多四列的数组,表示图片在视野中的左上角坐标和宽高,可选<br/>opacityVal: 不透明度为小于1的正数。不填视为1<br/>time: 淡入时间单位为毫秒。不填视为0<br/>callback: 图片完全显示出来后的回调函数,可选",
"!type": "fn(code: number, image: string|image, sloc?: [number], loc?: [number], opacityVal?: number, time?: number, callback?: fn())" "!type": "fn(code: number, image: string|image, sloc?: [number], loc?: [number], opacityVal?: number, time?: number, callback?: fn())"
}, },
"showImage2": {
"!doc": "显示一张图片,可以在状态栏显示<br/>例如core.showImage(1, core.material.images.images['winskin.png'], [0,0,128,128], [0,0,416,416], 0.5, 1000); // 裁剪winskin.png的最左边128×128px放大到铺满整个视野1秒内淡入到50%透明编号为1<br/>code: 图片编号为不大于50的正整数加上100后就是对应画布层的z值较大的会遮罩较小的注意色调层的z值为125UI层为140<br/>image: 图片文件名(可以是全塔属性中映射前的中文名)或图片对象(见上面的例子)<br/>sloc: 一行且至多四列的数组,表示从原图裁剪的左上角坐标和宽高,可选<br/>loc: 一行且至多四列的数组,表示图片在视野中的左上角坐标和宽高,可选<br/>opacityVal: 不透明度为小于1的正数。不填视为1<br/>time: 淡入时间单位为毫秒。不填视为0<br/>callback: 图片完全显示出来后的回调函数,可选",
"!type": "fn(code: number, image: string|image, sloc?: [number], loc?: [number], opacityVal?: number, time?: number, callback?: fn())"
},
"getItem": { "getItem": {
"!doc": "获得道具并提示,如果填写了坐标就会删除该点的该道具<br/>例如core.getItem('book'); // 获得敌人手册并提示<br/>id: 道具id必填<br/>num: 获得的数量不填视为1填了就别填坐标了<br/>x: 道具的横坐标,可选<br/>y: 道具的纵坐标,可选<br/>callback: 回调函数,可选", "!doc": "获得道具并提示,如果填写了坐标就会删除该点的该道具<br/>例如core.getItem('book'); // 获得敌人手册并提示<br/>id: 道具id必填<br/>num: 获得的数量不填视为1填了就别填坐标了<br/>x: 道具的横坐标,可选<br/>y: 道具的纵坐标,可选<br/>callback: 回调函数,可选",
"!type": "fn(id: string, num?: number, x?: number, y?: number, callback?: fn())" "!type": "fn(id: string, num?: number, x?: number, y?: number, callback?: fn())"

View File

@ -874,6 +874,8 @@ action
| vibrate_s | vibrate_s
| showImage_s | showImage_s
| showImage_1_s | showImage_1_s
| showImage2_s
| showImage2_1_s
| hideImage_s | hideImage_s
| showTextImage_s | showTextImage_s
| moveImage_s | moveImage_s
@ -2196,6 +2198,52 @@ var code = '{"type": "showImage", "code": '+NInt_0+', "image": "'+EvalString_0+'
return code; return code;
*/; */;
showImage2_s
: '全局显示图片' '图片编号' NInt '图片' EvalString '翻转' Reverse_List BGNL?
'绘制的起点像素' 'x' PosString 'y' PosString '不透明度' Number '时间' Int '不等待执行完毕' Bool Newline
/* showImage2_s
tooltip : showImage2全局显示图片
helpUrl : /_docs/#/instruction
default : [1,"bg.jpg","null","0","0",1,0,false]
allImages : ['EvalString_0']
menu : [['选择图片','editor_blockly.selectMaterial(block, ["./project/images/:images", "EvalString_0"])']]
previewBlock : true
colour : this.imageColor
if (Reverse_List_0 && Reverse_List_0 != 'null') {
Reverse_List_0 = ', "reverse": "' + Reverse_List_0 + '"';
} else Reverse_List_0 = '';
var async = Bool_0?', "async": true':'';
var code = '{"type": "showImage2", "code": '+NInt_0+', "image": "'+EvalString_0+'"'+Reverse_List_0+', "loc": ['+PosString_0+','+PosString_1+'], "opacity": '+Number_0+', "time": '+Int_0+async+'},\n';
return code;
*/;
showImage2_1_s
: '全局显示图片' '图片编号' NInt '图片' EvalString '翻转' Reverse_List BGNL?
'裁剪的起点像素' 'x' PosString 'y' PosString '宽' PosString? '高' PosString? '不透明度' Number BGNL?
'绘制的起点像素' 'x' PosString 'y' PosString '宽' PosString? '高' PosString? '时间' Int '不等待执行完毕' Bool Newline
/* showImage2_1_s
tooltip : showImage2_1全局显示图片
helpUrl : /_docs/#/instruction
default : [1,"bg.jpg","null","0","0","","",1,"0","0","","",0,false]
allImages : ['EvalString_0']
menu : [['选择图片','editor_blockly.selectMaterial(block, ["./project/images/:images", "EvalString_0"])']]
previewBlock : true
colour : this.imageColor
if (Reverse_List_0 && Reverse_List_0 != 'null') {
Reverse_List_0 = ', "reverse": "' + Reverse_List_0 + '"';
} else Reverse_List_0 = '';
var async = Bool_0?', "async": true':'';
var code = '{"type": "showImage2", "code": '+NInt_0+', "image": "'+EvalString_0+'"'+Reverse_List_0+', '+
'"sloc": ['+PosString_0+','+PosString_1+','+PosString_2+','+PosString_3+'], '+
'"loc": ['+PosString_4+','+PosString_5+','+PosString_6+','+PosString_7+'], '+
'"opacity": '+Number_0+', "time": '+Int_0+async+'},\n';
return code;
*/;
showTextImage_s showTextImage_s
: '显示图片化文本' EvalString_Multi BGNL? : '显示图片化文本' EvalString_Multi BGNL?
'图片编号' NInt '起点像素' 'x' PosString 'y' PosString '行距' Number '翻转' Reverse_List '不透明度' Number '时间' Int '不等待执行完毕' Bool Newline '图片编号' NInt '起点像素' 'x' PosString 'y' PosString '行距' Number '翻转' Reverse_List '不透明度' Number '时间' Int '不等待执行完毕' Bool Newline

View File

@ -593,6 +593,19 @@ ActionParser.prototype.parseAction = function() {
data.code,data.image||data.name,data.reverse,data.loc[0],data.loc[1],data.opacity,data.time||0,data.async||false,this.next]); data.code,data.image||data.name,data.reverse,data.loc[0],data.loc[1],data.opacity,data.time||0,data.async||false,this.next]);
} }
break; break;
case "showImage2": // 显示图片
data.loc=data.loc||['','']
if (data.sloc) {
this.next = MotaActionBlocks['showImage2_1_s'].xmlText([
data.code,data.image||data.name,data.reverse,data.sloc[0],data.sloc[1],data.sloc[2],data.sloc[3],data.opacity,
data.loc[0],data.loc[1],data.loc[2],data.loc[3],data.time||0,data.async||false,this.next
]);
}
else {
this.next = MotaActionBlocks['showImage2_s'].xmlText([
data.code,data.image||data.name,data.reverse,data.loc[0],data.loc[1],data.opacity,data.time||0,data.async||false,this.next]);
}
break;
case "hideImage": // 清除图片 case "hideImage": // 清除图片
this.next = MotaActionBlocks['hideImage_s'].xmlText([ this.next = MotaActionBlocks['hideImage_s'].xmlText([
data.code,data.time||0,data.async||false,this.next]); data.code,data.time||0,data.async||false,this.next]);

View File

@ -1 +1 @@
{"viewportLoc":[0,0],"editorLastFloorId":"QISHI"} {"viewportLoc":[0,0],"editorLastFloorId":"nandu"}

View File

@ -349,6 +349,23 @@ editor_blockly = function () {
]); ]);
} }
break; break;
case 'showImage2_s': // 显示图片
case 'showImage2_1_s':
if (obj.sloc) {
editor.uievent.previewUI([
{ type: "setAttribute", alpha: obj.opacity },
{
type: "drawImage", image: obj.image, x: obj.sloc[0] , y: obj.sloc[1], w: obj.sloc[2], h: obj.sloc[3],
x1: obj.loc[0] - 160, y1: obj.loc[1], w1: obj.loc[2], h1: obj.loc[3], reverse: obj.reverse
}
]);
} else {
editor.uievent.previewUI([
{ type: "setAttribute", alpha: obj.opacity },
{ type: "drawImage", image: obj.image, x: obj.loc[0] - 160, y: obj.loc[1], w: obj.loc[2], h: obj.loc[3], reverse: obj.reverse }
]);
}
break;
case 'showGif_s': // 显示动图 case 'showGif_s': // 显示动图
if (obj.name && obj.loc) { if (obj.name && obj.loc) {
editor.uievent.previewUI([{ type: "drawImage", image: obj.name, x: obj.loc[0], y: obj.loc[1] }]); editor.uievent.previewUI([{ type: "drawImage", image: obj.name, x: obj.loc[0], y: obj.loc[1] }]);

View File

@ -220,6 +220,8 @@ editor_blocklyconfig=(function(){
'音像处理':[ '音像处理':[
MotaActionBlocks['showImage_s'].xmlText(), MotaActionBlocks['showImage_s'].xmlText(),
MotaActionBlocks['showImage_1_s'].xmlText(), MotaActionBlocks['showImage_1_s'].xmlText(),
MotaActionBlocks['showImage2_s'].xmlText(),
MotaActionBlocks['showImage2_1_s'].xmlText(),
MotaActionBlocks['hideImage_s'].xmlText(), MotaActionBlocks['hideImage_s'].xmlText(),
MotaActionBlocks['showTextImage_s'].xmlText(), MotaActionBlocks['showTextImage_s'].xmlText(),
MotaActionBlocks['moveImage_s'].xmlText(), MotaActionBlocks['moveImage_s'].xmlText(),

View File

@ -256,6 +256,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"bg.jpg", "bg.jpg",
"bg2.jpg", "bg2.jpg",
"biaoti.png", "biaoti.png",
"black.png",
"brave.png", "brave.png",
"caidan.png", "caidan.png",
"cheating.png", "cheating.png",

View File

@ -6,19 +6,16 @@ main.floors.QISHI=
"canFlyTo": false, "canFlyTo": false,
"canUseQuickShop": true, "canUseQuickShop": true,
"cannotViewMap": true, "cannotViewMap": true,
"images": [ "images": [],
{
"name": "yinyuecun.jpg",
"canvas": "bg",
"x": 0,
"y": 0
}
],
"item_ratio": 1, "item_ratio": 1,
"firstArrive": [], "firstArrive": [],
"events": { "events": {
"7,7": null, "7,7": null,
"1,0": [ "1,0": [
{
"type": "function",
"function": "function(){\ncore.dom.wholeCtx.fillRect(0,0,core.dom.whole.width,core.dom.whole.height)\n}"
},
{ {
"type": "playBgm", "type": "playBgm",
"name": "mianmian.mp3", "name": "mianmian.mp3",
@ -35,19 +32,17 @@ main.floors.QISHI=
], ],
"time": 20 "time": 20
}, },
"................公、公主殿下!!", "公、公主殿下!!",
"..............呼...呼...........", "...呼...呼........",
"...........公主殿下...........您等等我.............", "公主殿下......您等等我......",
{ {
"type": "setCurtain", "type": "function",
"color": [ "function": "function(){\nvar time = 500;\ntime /= Math.max(core.status.replay.speed, 1)\nvar per_time = 50,\n\tstep = 0,\n\tsteps = parseInt(time / per_time);\nvar animate = setInterval(function () {\n\tstep++;\n\tcore.dom.wholeCtx.globalAlpha = 1;\n\tcore.dom.wholeCtx.fillRect(0, 0, core.dom.whole.width, core.dom.whole.height);\n\tcore.dom.wholeCtx.globalAlpha = step / steps;\n\tcore.drawImage(core.dom.wholeCtx, core.material.images.images['yinyuecun.jpg'], 0, 0);\n\tif (step == steps) {\n\t\tclearInterval(animate);\n\t}\n}, per_time);\n}"
0, },
0, {
0, "type": "sleep",
0
],
"time": 500, "time": 500,
"keep": true "noSkip": true
}, },
{ {
"type": "setText", "type": "setText",
@ -67,76 +62,65 @@ main.floors.QISHI=
"background": "winskin.png", "background": "winskin.png",
"time": 20 "time": 20
}, },
"\\c[25]怎、怎么又是你邵护卫!烦死啦你!", "\\c[25]怎、怎么又是你邵护卫烦死啦你!",
{ {
"type": "setText", "type": "setText",
"position": "down", "position": "down",
"text": [ "text": [
250, 255,
250, 255,
250, 255,
1 1
], ],
"background": "winskin.png", "background": "winskin.png",
"time": 20 "time": 20
}, },
{ {
"type": "showImage", "type": "showImage2",
"code": 1, "code": 1,
"image": "gongzhuzhending.png", "image": "gongzhuzhending.png",
"sloc": [
0,
0,
null
],
"loc": [ "loc": [
160, 330,
50 90,
319,
390
], ],
"opacity": 1, "opacity": 1,
"time": 0 "time": 500
}, },
"\t[公主]一天到晚总是跟着我!烦不烦啊你!", "\t[公主]一天到晚总是跟着我烦不烦啊你!",
{ {
"type": "showImage", "type": "showImage2",
"code": 2, "code": 2,
"image": "shaohuzixin.png", "image": "shaohuzixin.png",
"loc": [ "sloc": [
-30, 0,
20 0,
null
], ],
"opacity": 1,
"time": 0
},
"\t[邵虎]公主下请不要再任性了。你看看你都跑多远了。",
"\t[公主]不用你管!",
{
"type": "showImage",
"code": 5,
"image": "yinyuecunheibai.jpg",
"loc": [ "loc": [
0, 0,
0 50,
291,
466
], ],
"opacity": 1, "opacity": 1,
"time": 0 "time": 500
},
"\t[邵虎]公主下请不要再任性了。你看看你都跑多远了。",
"\t[公主]不用你管。",
{
"type": "function",
"function": "function(){\nvar time = 500;\ntime /= Math.max(core.status.replay.speed, 1)\nvar per_time = 50,\n\tstep = 0,\n\tsteps = parseInt(time / per_time);\nvar animate = setInterval(function () {\n\tstep++;\n\timage101.style.filter = 'saturate(' + (100 - 100 * step / steps) + '%)'\n\timage102.style.filter = 'saturate(' + (100 - 100 * step / steps) + '%)'\n\twhole.style.filter = 'saturate(' + (100 - 100 * step / steps) + '%)'\n\tif (step == steps) {\n\t\tclearInterval(animate);\n\t\timage101.style.filter = 'saturate(0%)'\n\t\timage102.style.filter = 'saturate(0%)'\n\t\twhole.style.filter = 'saturate(0%)'\n\t}\n}, per_time);\n}"
}, },
{ {
"type": "showImage", "type": "sleep",
"code": 6, "time": 500
"image": "shaohuzixinheibai.png",
"loc": [
-30,
20
],
"opacity": 1,
"time": 0
},
{
"type": "showImage",
"code": 7,
"image": "gongzhuzhendingheibai.png",
"loc": [
160,
50
],
"opacity": 1,
"time": 0
}, },
{ {
"type": "setText", "type": "setText",
@ -145,28 +129,136 @@ main.floors.QISHI=
"time": 20 "time": 20
}, },
"我叫邵虎。是天枢帝国萧涵公主的亲卫队长。", "我叫邵虎。是天枢帝国萧涵公主的亲卫队长。",
"身居要职,我的唯一职责就是保护公主殿下的安全", "身居要职我的唯一职责就是保护公主殿下的安全",
"但公主殿下偏偏是个不让人省心的主", "但公主殿下偏偏是个不让人省心的主",
"而今天,公主殿下又吵着要去城外的天塔观光。", "而今天,公主殿下又吵嚷着要去城外的天塔观光。",
"据说天塔是一百年前天枢与邻国的圣战争夺之后,天枢皇帝为了纪念战争的胜利而修建。", "据说天塔是一百年前天枢与邻国的圣战争夺之后天枢皇帝为了纪念战争的胜利而修建。",
"时隔多年,天塔已经成为了妖兽以及魔怪的栖息地", "时隔多年天塔已经成为了妖兽以及魔怪的栖息地",
"但令人不解的是,魔怪只栖息在塔的内部,却没有怪外出伤人的事例。", "但是令人不解的是,魔怪只栖息在塔的内部,却没有魔怪外出伤人的事例。",
"但毕是魔怪的栖息地,由于担心公主会出现危险,我极力反对公主的这次出行", "但毕竟是魔怪的栖息地,由于担心公主会出现危险,我极力反对公主这次出行。",
"可是在我的极力劝阻之下,公主却自己一个人跑出了皇城。", "可是在我的极力劝阻之下公主却自己一个人跑出了皇城。",
{ {
"type": "hideImage", "type": "setText",
"code": 6, "position": "down",
"time": 0 "background": "winskin.png",
"time": 20
}, },
{ {
"type": "hideImage", "type": "function",
"code": 5, "function": "function(){\nvar time = 500;\ntime /= Math.max(core.status.replay.speed, 1)\nvar per_time = 50,\n\tstep = 0,\n\tsteps = parseInt(time / per_time);\nvar animate = setInterval(function () {\n\tstep++;\n\timage101.style.filter = 'saturate(' + (100 * step / steps) + '%)'\n\timage102.style.filter = 'saturate(' + (100 * step / steps) + '%)'\n\twhole.style.filter = 'saturate(' + (100 * step / steps) + '%)'\n\tif (step == steps) {\n\t\tclearInterval(animate);\n\t\timage101.style.filter = 'saturate(100%)'\n\t\timage102.style.filter = 'saturate(100%)'\n\t\twhole.style.filter = ''\n\t}\n}, per_time);\n}"
"time": 0
}, },
{ {
"type": "hideImage", "type": "sleep",
"code": 7, "time": 500
"time": 0 },
"\t[邵虎]公主殿下快回去吧,要是在半路迷路了怎么办?",
{
"type": "showImage2",
"code": 1,
"image": "gongzhuheihua.png",
"sloc": [
0,
0,
null
],
"loc": [
330,
90,
319,
390
],
"opacity": 1,
"time": 500
},
"\t[公主]烦死了烦死了烦死了~~~~~~",
"\t[公主]邵护卫你有完没完!!!!",
"\t[公主]本公主就是要出来!!!!你能把我怎么着吧!!",
"\t[公主]你就是要跟我对着干!!!就是跟我唱反调!!!我告诉你!!跟我对着干的人都没有好下场!!没有没有没有!!!!!",
{
"type": "showImage2",
"code": 2,
"image": "shaohujinzhang.png",
"sloc": [
0,
0,
null
],
"loc": [
0,
50,
291,
466
],
"opacity": 1,
"time": 500
},
"\t[邵虎]公主殿下您别生气....我没有要和您做对的意思..",
"\t[公主]那你是什么?你是什么!!",
"\t[邵虎]公主殿下消消气......要不......您跟紧我,我带你去天塔附近看一看好吗......至于上天塔里面玩什么的.....太危险了......",
{
"type": "showImage2",
"code": 1,
"image": "gongzhuxiao.png",
"sloc": [
0,
0,
null
],
"loc": [
330,
90,
319,
390
],
"opacity": 1,
"time": 500
},
"\t[公主]这可是你说的~~~!不许反悔了!~",
{
"type": "showImage2",
"code": 2,
"image": "shaohuxiao.png",
"sloc": [
0,
0,
null
],
"loc": [
0,
50,
291,
466
],
"opacity": 1,
"time": 500
},
"\t[邵虎]你开心就好......那我们走吧......",
{
"type": "function",
"function": "function(){\nvar time = 500;\ntime /= Math.max(core.status.replay.speed, 1)\nvar per_time = 50,\n\tstep = 0,\n\tsteps = parseInt(time / per_time);\nvar animate = setInterval(function () {\n\tstep++;\n\timage101.style.filter = 'saturate(' + (100 - 100 * step / steps) + '%)'\n\timage102.style.filter = 'saturate(' + (100 - 100 * step / steps) + '%)'\n\twhole.style.filter = 'saturate(' + (100 - 100 * step / steps) + '%)'\n\tif (step == steps) {\n\t\tclearInterval(animate);\n\t\timage101.style.filter = 'saturate(0%)'\n\t\timage102.style.filter = 'saturate(0%)'\n\t\twhole.style.filter = 'saturate(0%)'\n\t}\n}, per_time);\n}"
},
{
"type": "sleep",
"time": 500
},
{
"type": "setText",
"position": "center",
"background": "winskin.png",
"time": 20
},
"这就是那个任性的公主。",
"也是那个开朗的笑容能让平常冷漠的自己也开心的笑起来的公主。",
"是我每天都要保护的人。",
"也是我日日夜夜都想要打心里惦记的人。",
"只是她恋慕的心早已经有了明确的指向......",
{
"type": "function",
"function": "function(){\nvar time = 500;\ntime /= Math.max(core.status.replay.speed, 1)\nvar per_time = 50,\n\tstep = 0,\n\tsteps = parseInt(time / per_time);\nvar animate = setInterval(function () {\n\tstep++;\n\timage101.style.filter = 'saturate(' + (100 * step / steps) + '%)'\n\timage102.style.filter = 'saturate(' + (100 * step / steps) + '%)'\n\twhole.style.filter = 'saturate(' + (100 * step / steps) + '%)'\n\tif (step == steps) {\n\t\tclearInterval(animate);\n\t\timage101.style.filter = 'saturate(100%)'\n\t\timage102.style.filter = 'saturate(100%)'\n\t\twhole.style.filter = ''\n\t}\n}, per_time);\n}"
},
{
"type": "sleep",
"time": 500
}, },
{ {
"type": "setText", "type": "setText",
@ -174,233 +266,141 @@ main.floors.QISHI=
"background": "winskin.png", "background": "winskin.png",
"time": 20 "time": 20
}, },
"\t[邵虎]公主殿下快回去吧,要是在半途迷路了怎么办?",
{ {
"type": "showImage", "type": "showImage2",
"code": 1,
"image": "gongzhuheihua.png",
"loc": [
160,
50
],
"opacity": 1,
"time": 0
},
"\t[公主]烦死了烦死了烦死了~~~~~~",
"\t[公主]邵护卫你有完没完!!!!",
"\t[公主]本公主就是要出来!!!!你能把我怎么着吧!",
"\t[公主]你就是要跟我对着干!!!就是跟我唱反调!!!我告诉你!!跟我对着干的人都没有好下场!!没有没有没有!!!!!",
{
"type": "showImage",
"code": 2,
"image": "shaohujinzhang.png",
"loc": [
-30,
20
],
"opacity": 1,
"time": 0
},
"\t[邵虎]公主殿下您别生气.......我没有要和您做对的意思........",
"\t[公主]那你是什么?你是什么!",
"\t[邵虎]公主殿下消消气........要不.........您跟紧我,我带你去天塔附近看一看好吗.......至于上天塔里面玩什么的........太危险了.....",
{
"type": "showImage",
"code": 1,
"image": "gongzhuxiao.png",
"loc": [
160,
50
],
"opacity": 1,
"time": 0
},
"\t[公主]这可是你说的~~~!不许反悔了!~",
{
"type": "showImage",
"code": 2,
"image": "shaohuxiao.png",
"loc": [
-30,
20
],
"opacity": 1,
"time": 0
},
"\t[邵虎]你开心就好........那我们走吧.......",
{
"type": "showImage",
"code": 5,
"image": "yinyuecunheibai.jpg",
"loc": [
0,
0
],
"opacity": 1,
"time": 0
},
{
"type": "showImage",
"code": 6,
"image": "gongzhuxiaoheibai.png",
"loc": [
160,
50
],
"opacity": 1,
"time": 0
},
{
"type": "showImage",
"code": 7,
"image": "shaohuxiaoheibai.png",
"loc": [
-30,
20
],
"opacity": 1,
"time": 0
},
"这就是那个任性的公主。",
"也是那个开朗的笑容能让平常冷漠的自己也开心的笑起来的公主。",
"是我每天都要保护的人。",
"也是我日日夜夜都想要打心里惦记的人。",
"只是她恋慕的心早已经有了明确的指向....",
{
"type": "hideImage",
"code": 5,
"time": 0
},
{
"type": "hideImage",
"code": 6,
"time": 0
},
{
"type": "hideImage",
"code": 7,
"time": 0
},
{
"type": "showImage",
"code": 1, "code": 1,
"image": "gongzhupinghe.png", "image": "gongzhupinghe.png",
"sloc": [
0,
0,
null
],
"loc": [ "loc": [
160, 330,
50 90,
319,
390
], ],
"opacity": 1, "opacity": 1,
"time": 0 "time": 500
}, },
"\t[公主]对了对了,汪护卫呢?不是应该跟你在一起吗?", "\t[公主]对了对了,汪护卫呢?不是应该跟你在一起吗?",
{ {
"type": "showImage", "type": "showImage2",
"code": 2, "code": 2,
"image": "shaohuzixin.png", "image": "shaohuzixin.png",
"loc": [ "sloc": [
-30, 0,
20 0,
null
], ],
"opacity": 1,
"time": 0
},
"\t[邵虎]他和我分头来找你,大概就在附近吧。",
{
"type": "showImage",
"code": 1,
"image": "gongzhuzhending.png",
"loc": [
160,
50
],
"opacity": 1,
"time": 0
},
"\t[公主]怎么不是汪大哥先来找到我呢............唉,真讨厌......",
"\t[邵虎].......................",
{
"type": "showImage",
"code": 5,
"image": "yinyuecunheibai.jpg",
"loc": [ "loc": [
0, 0,
0 50,
291,
466
], ],
"opacity": 1, "opacity": 1,
"time": 0 "time": 500
}, },
"\t[邵虎]他......和我分头来找你,大概就在附近吧。",
{ {
"type": "showImage", "type": "showImage2",
"code": 6, "code": 1,
"image": "gongzhuzhendingheibai.png", "image": "gongzhuzhending.png",
"sloc": [
0,
0,
null
],
"loc": [ "loc": [
160, 330,
50 90,
319,
390
], ],
"opacity": 1, "opacity": 1,
"time": 0 "time": 500
},
"\t[公主]怎么不是汪大哥先来找到我呢......唉,真讨厌..",
"\t[邵虎].............",
{
"type": "function",
"function": "function(){\nvar time = 500;\ntime /= Math.max(core.status.replay.speed, 1)\nvar per_time = 50,\n\tstep = 0,\n\tsteps = parseInt(time / per_time);\nvar animate = setInterval(function () {\n\tstep++;\n\timage101.style.filter = 'saturate(' + (100 - 100 * step / steps) + '%)'\n\timage102.style.filter = 'saturate(' + (100 - 100 * step / steps) + '%)'\n\twhole.style.filter = 'saturate(' + (100 - 100 * step / steps) + '%)'\n\tif (step == steps) {\n\t\tclearInterval(animate);\n\t\timage101.style.filter = 'saturate(0%)'\n\t\timage102.style.filter = 'saturate(0%)'\n\t\twhole.style.filter = 'saturate(0%)'\n\t}\n}, per_time);\n}"
}, },
{ {
"type": "showImage", "type": "sleep",
"code": 7, "time": 500
"image": "shaohuzixinheibai.png",
"loc": [
-30,
20
],
"opacity": 1,
"time": 0
},
"汪洋,我的剑术老师,我的大哥,我最好的兄弟。",
"他比我有风度,比我武功高,比我人缘好。我敬佩他,他很完美,让人感到无法超越。",
"他首经有过一段恋情,和我相依为命的姐姐。",
{
"type": "hideImage",
"code": 5,
"time": 0
}, },
{ {
"type": "hideImage", "type": "setText",
"code": 6, "position": "center",
"time": 0 "background": "winskin.png",
"time": 20
},
"汪洋,我的剑术老师,我的大哥,我最好的兄弟。",
"他比我有风度,比我武功高,比我人缘好。我敬佩他,他很完美,让人感到无法超越。",
"他曾经有过一段恋情,和我相依为命的姐姐。",
{
"type": "function",
"function": "function(){\nvar time = 500;\ntime /= Math.max(core.status.replay.speed, 1)\nvar per_time = 50,\n\tstep = 0,\n\tsteps = parseInt(time / per_time);\nvar animate = setInterval(function () {\n\tstep++;\n\timage101.style.filter = 'saturate(' + (100 * step / steps) + '%)'\n\timage102.style.filter = 'saturate(' + (100 * step / steps) + '%)'\n\twhole.style.filter = 'saturate(' + (100 * step / steps) + '%)'\n\tif (step == steps) {\n\t\tclearInterval(animate);\n\t\timage101.style.filter = 'saturate(100%)'\n\t\timage102.style.filter = 'saturate(100%)'\n\t\twhole.style.filter = ''\n\t}\n}, per_time);\n}"
}, },
{ {
"type": "hideImage", "type": "sleep",
"code": 7, "time": 500
"time": 0
}, },
"\t[公主]话说前面是一个村子了呢......没听说过这附近有村子啊?",
"\t[公主]喂!姓邵的,你知不知道这里是哪啊?",
"\t[邵虎]这里是镇天谷,是汪大哥的家乡。",
{ {
"type": "showImage", "type": "setText",
"position": "down",
"background": "winskin.png",
"time": 20
},
"\t[公主]话说前面是一个村子了呢......没听说过这附近有村子啊......",
"\t[公主]喂、、姓邵的,你知不知道这里是哪啊?",
"\t[邵虎]这里是镇天谷,是汪大哥的家乡。",
{
"type": "showImage2",
"code": 1, "code": 1,
"image": "gongzhujiao.png", "image": "gongzhujiao.png",
"sloc": [
0,
0,
null
],
"loc": [ "loc": [
160, 330,
50 90,
319,
390
], ],
"opacity": 1, "opacity": 1,
"time": 0 "time": 500
}, },
"\t[公主]诶诶!!??", "\t[公主]诶诶",
"\t[公主]汪大哥........啊不...汪护卫是出身在这里的么?", "\t[公主]汪大哥...啊不...汪护卫是出身在这里的么!",
"\t[公主]我竟然完全都不知道啊...........", "\t[公主]我竟然完全都不知道啊......",
{ {
"type": "showImage", "type": "showImage2",
"code": 1, "code": 1,
"image": "gongzhupinghe.png", "image": "gongzhupinghe.png",
"sloc": [
0,
0,
null
],
"loc": [ "loc": [
160, 330,
50 90,
319,
390
], ],
"opacity": 1, "opacity": 1,
"time": 0 "time": 500
}, },
"\t[公主]好吧~~~那我们就去汪护卫的家乡看一看好了~~~!", "\t[公主]好吧~~~~那我们就去汪护卫的家乡看一看好了~~",
"\t[邵虎]诶~~~~诶!!?", "\t[邵虎]诶.~~~~~诶!!?",
"\t[邵虎](也好,这里肯定是比天塔安全得多........)", "\t[邵虎](也好,这里肯定是比天塔安全得多......",
"\t[邵虎]那我们走吧公主殿下,会碰上汪大哥也说不定。", "\t[邵虎]那我们走吧公主殿下会碰上汪大哥也说不定。",
{ {
"type": "hideImage", "type": "hideImage",
"code": 1, "code": 1,

View File

@ -216,17 +216,6 @@ main.floors.nandu=
} }
] ]
}, },
{
"type": "setCurtain",
"color": [
0,
0,
0,
1
],
"time": 0,
"keep": true
},
{ {
"type": "hideImage", "type": "hideImage",
"code": 6, "code": 6,
@ -246,6 +235,10 @@ main.floors.nandu=
"type": "function", "type": "function",
"function": "function(){\nswitch(core.getFlag(\"hard\")){\n\tcase 1 :core.status.hard=\"简单\";\n\t\tbreak;\n\tcase 2 :core.status.hard=\"中等\";\n\t\tbreak;\t\n\tcase 3 :core.status.hard=\"困难\";\n\t\tbreak;\t\n\tcase 4 :core.status.hard=\"噩梦\";\n\t\tbreak;\t\n\tcase 5 :core.status.hard=\"作弊\";\n\t\tbreak;\n}\n}" "function": "function(){\nswitch(core.getFlag(\"hard\")){\n\tcase 1 :core.status.hard=\"简单\";\n\t\tbreak;\n\tcase 2 :core.status.hard=\"中等\";\n\t\tbreak;\t\n\tcase 3 :core.status.hard=\"困难\";\n\t\tbreak;\t\n\tcase 4 :core.status.hard=\"噩梦\";\n\t\tbreak;\t\n\tcase 5 :core.status.hard=\"作弊\";\n\t\tbreak;\n}\n}"
}, },
{
"type": "function",
"function": "function(){\ncore.dom.wholeCtx.fillRect(0, 0, core.dom.whole.width, core.dom.whole.height);\n}"
},
{ {
"type": "choices", "type": "choices",
"text": "是否跳过开始剧情", "text": "是否跳过开始剧情",
@ -253,17 +246,6 @@ main.floors.nandu=
{ {
"text": "否", "text": "否",
"action": [ "action": [
{
"type": "setCurtain",
"color": [
0,
0,
0,
1
],
"time": 0,
"keep": true
},
{ {
"type": "changeFloor", "type": "changeFloor",
"floorId": "QISHI", "floorId": "QISHI",

BIN
project/images/black.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 KiB

After

Width:  |  Height:  |  Size: 318 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

After

Width:  |  Height:  |  Size: 306 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 166 KiB

After

Width:  |  Height:  |  Size: 261 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 B

View File

@ -138,6 +138,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
gameGroup.style.height = totalHeight + "px"; gameGroup.style.height = totalHeight + "px";
gameGroup.style.left = (obj.clientWidth - totalWidth) / 2 + "px"; gameGroup.style.left = (obj.clientWidth - totalWidth) / 2 + "px";
gameGroup.style.top = (obj.clientHeight - totalHeight) / 2 + "px"; gameGroup.style.top = (obj.clientHeight - totalHeight) / 2 + "px";
gameGroup.style.overflow = "hidden";
var whole = core.dom.whole; var whole = core.dom.whole;
whole.style.width = totalWidth + "px"; whole.style.width = totalWidth + "px";
whole.style.height = totalHeight + "px"; whole.style.height = totalHeight + "px";
@ -223,6 +224,84 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
core.animateFrame.globalTime = timestamp; core.animateFrame.globalTime = timestamp;
} }
core.control.registerAnimationFrame("globalAnimate", true, core.control._animationFrame_globalAnimate); core.control.registerAnimationFrame("globalAnimate", true, core.control._animationFrame_globalAnimate);
core.ui.createCanvas2 = function (name, x, y, width, height, z) {
// 如果画布已存在则直接调用
if (core.dymCanvas[name]) {
core.deleteCanvas(name);
}
var newCanvas = document.createElement("canvas");
newCanvas.id = name;
newCanvas.style.display = 'block';
newCanvas.setAttribute("_left", x);
newCanvas.setAttribute("_top", y);
newCanvas.style.width = width * core.domStyle.scale + 'px';
newCanvas.style.height = height * core.domStyle.scale + 'px';
newCanvas.style.left = x * core.domStyle.scale + 'px';
newCanvas.style.top = y * core.domStyle.scale + 'px';
newCanvas.style.zIndex = z;
newCanvas.style.position = 'absolute';
newCanvas.style.pointerEvents = 'none';
core.dymCanvas[name] = newCanvas.getContext('2d');
core.maps._setHDCanvasSize(core.dymCanvas[name], width, height);
core.dom.gameGroup.appendChild(newCanvas);
return core.dymCanvas[name];
}
core.ui.deleteCanvas = function (name) {
if (name instanceof Function) {
Object.keys(core.dymCanvas).forEach(function (one) {
if (name(one)) core.deleteCanvas(one);
});
return;
}
if (!core.dymCanvas[name]) return null;
var temp = core.dymCanvas[name].canvas.parentElement.id;
if (temp == "gameDraw") core.dom.gameDraw.removeChild(core.dymCanvas[name].canvas);
if (temp == "gameGroup") core.dom.gameGroup.removeChild(core.dymCanvas[name].canvas);
delete core.dymCanvas[name];
}
core.events.showImage2 = function (code, image, sloc, loc, opacityVal, time, callback) {
var imageName = null;
if (typeof image == 'string') {
imageName = image;
if (image.endsWith(':x') || image.endsWith(':y') || image.endsWith(':o')) {
image = image.substring(0, image.length - 2);
}
image = core.getMappedName(image);
image = core.material.images.images[image];
}
if (!image) {
if (callback) callback();
return;
}
sloc = sloc || [];
var sx = core.calValue(sloc[0]) || 0, sy = core.calValue(sloc[1]) || 0;
var sw = core.calValue(sloc[2]), sh = core.calValue(sloc[3]);
if (sw == null) sw = image.width;
if (sh == null) sh = image.height;
loc = loc || [];
var x = core.calValue(loc[0]) || 0, y = core.calValue(loc[1]) || 0;
var w = core.calValue(loc[2]), h = core.calValue(loc[3]);
if (w == null) w = sw;
if (h == null) h = sh;
var zIndex = code + 100;
time = time || 0;
var name = "image" + zIndex;
var ctx = core.ui.createCanvas2(name, x, y, w, h, zIndex);
core.drawImage(ctx, imageName == null ? image : imageName, sx, sy, sw, sh, 0, 0, w, h);
if (time == 0) {
core.setOpacity(name, opacityVal);
if (callback) callback();
return;
}
core.setOpacity(name, 0);
this.moveImage(code, null, opacityVal, null, time, callback);
}
core.events._action_showImage2 = function (data, x, y, prefix) {
if (core.isReplaying()) data.time = 0;
this.__action_doAsyncFunc(data.async || data.time == 0, core.events.showImage2,
data.code, data.image + (data.reverse || ''), data.sloc, data.loc, data.opacity, data.time);
}
}, },
"drawLight": function () { "drawLight": function () {

136
readme.md Normal file
View File

@ -0,0 +1,136 @@
# 我的魔塔我做主之天塔
作者:凿神兽 原样板7822 新样板2.10
复刻者和测试:
| | 名字 | uid | QQ |
| ------ | ------------ | ----- | ---------- |
| 发起者 | 北海小羊 | 3356 | 792953816 |
| 开发者 | 影法师 | 5289 | 1398341065 |
| 开发者 | bdf | 3823 | 1534039306 |
| 技术 | 见见 | 1009 | 513152205 |
| 测试 | 萌新一阶 | 12322 | 1289156007 |
| 测试 | StarInShadow | 9994 | 602651749 |
| 测试 | 袜子精Boris | 6653 | 1114752215 |
| 测试 | 米格 | 9050 | 2109192368 |
| 测试 | 复读机 | 18425 | 1591852880 |
| 测试 | 灵梦 | 1058 | 1132979514 |
# 全163剧情点攻略
0. 开始剧情 5剧情点
1. 0层
1.1 刚进入时领取3点
1.2 仙子在10层战斗完毕后20层战斗完毕前1点
1.3 黄钥匙处57F完毕后60F完毕前1点
2. 1层
2.1 老头1点 无限制时间
3. 5层
3.1 杰克 刚进入时3点
4. 6层
4.1 左上老头1点
5. 7层
5.1 左上商人57F完毕前1点
6. 9层
6.1 刚进入时1点
7. 10层
7.1 打BOSS前5点
8. 神海
8.1 右边仙子-28F完毕前2点
9. 13层
9.1 进入时遇杰克2点
9.2 左侧和杰克相遇5点
10. 15层
10.1 下侧商人57F完毕前1点
11. 16层
11.1 杰克20F完毕前1点
12. 17层
12.1 左上老头1点
13. 20层
13.1 打完boss5点
13.2 打完boss遇到杰克1点
14. 侧台
14.1 左边仙子20层后30层前1点
14.2 右侧媚骑士-20层后-10层前3点
14.3 右侧杰克30层后39层前1点
15. 21层
15.1 刚进入时杰克2点
15.2 28层后30层前右下侧杰克1点
16. 22层
16.1 商人1+1=2点
16.2 左侧杰克26层后28层前1点
17. 23层
17.1 刚进入时杰克2点
18. 24层
18.1 刚进入时杰克1点
18.2 左侧蓝衣老人57层前1点
19. 26层
19.1 刚进入时杰克2点
20. 27层
20.1 访问22层左侧杰克 (16.2) 后30层前1点
21. 28层
21.1 刚进入时圣骑士2点
22. 30层
22.1 打腐翼前5点
23. 37层
23.1 蓝衣老人57层前1点
24. 39层
24.1 杰克2点
25. 40层
25.1 40层打腐翼剧情完毕后5点
26. 42层
26.1 进入后1点
27. 44层
27.1 右侧媚骑士4点
28. 48层
28.1 48层上楼后剧情5点
28.2 48层上楼后下楼右侧杰克57层前2点
29. 51层
29.1 进入后蓝衣老人5点
30. 57层
30.1 进入后剧情5点
31. 60层
31.1 杀死弑剑出现一大堆怪7点
32. 61层
32.1 杰克(媚骑士)前3点
33. 63层
33.1 进入后上面剧情3点
34. 68层
34.1 进入后戾骑士剧情3点
35. 剑阁
35.1 进入后蓝弑剑剧情5点
36. 78层
36.1 进入杰克区3点
37. 塔顶
37.1 初次进入后剧情10点并进入地下区
37.2 -28F后-20F前公主2点
38. -40层
38.1 初次进入后公主2点
39. -41层
39.1 初次进入后公主2点
40. -43层
40.1 初次进入后角尊1点
41. -44层
41.1 初次进入后杰克1点
42. -32层
42.1 初次进入后业命1点
42.2 进入怪物区后2点
43. -30层
43.1 初次进入后业命1点
44. 一重天
44.1 初次进入后业命和龙1点
45. 六重天
45.1 打龙-10F后3点
46. -28层
46.1 boss打完后杰克剧情5点
47. -27层
47.1 boss打完后2点
48. -25层
48.1 初次进入后2点
49. -20层
49.1 打完媚骑士3点
50. -10层
50.1 打完圣骑士3点
51. 真炎
51.1 打完戾骑士3点