0-40层剧情改动,大部分应适配了新的跳过剧情效果(群主改的)

删除H5获得道具的自动提示
删除开局送的手册和楼传(保持与RM一致,手册和楼传在1楼获得)
优化打不过怪物时的效果(还原RM)
调大了字号
修复跳过剧情插件一个BUG:未跳过剧情时闪烁特效未删除
打不过怪物效果同步为RM
对话框标题微调
开场剧情选项优化
对话字体大小调整
新增两个插件:
1.移动怪物渐变消失
2.对话框偏移
对话框往左偏移27像素(还原RM)
怪物显伤右对齐(还原RM)
This commit is contained in:
爱的天使Erdnase 2023-01-03 00:17:24 +08:00
parent 0f35465f08
commit 0d277a0b28
21 changed files with 8642 additions and 8241 deletions

View File

@ -380,6 +380,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"winskin.png",
"winskin2.png",
"winskin3.png",
"winskin4.png",
"wupin.png",
"xialouti.png",
"xianzi.png",
@ -898,7 +899,13 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"startText": [
{
"type": "setText",
"background": "winskin2.png"
"background": "winskin2.png",
"textfont": 22
},
{
"type": "setValue",
"name": "flag:textOffset",
"value": "-27"
},
{
"type": "sleep",

View File

@ -188,9 +188,6 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 =
],
"time": 500
},
{
"type": "waitAsync"
},
{
"type": "hideImage",
"code": 50,

View File

@ -27,11 +27,23 @@ main.floors.MT0=
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
],
"firstArrive": [
{
"type": "setText",
"background": "winskin.png"
},
{
"type": "setValue",
"name": "flag:juqing",
"operator": "+=",
"value": "5"
},
{
"type": "function",
"function": "function(){\ncore.addItem('book',-1);\n}"
},
{
"type": "function",
"function": "function(){\ncore.addItem('fly',-1);\n}"
}
],
"events": {
@ -1000,15 +1012,6 @@ main.floors.MT0=
}
],
"8,11": [
{
"type": "if",
"condition": "flag:debug",
"true": [
{
"type": "setValue",
"name": "status:hp",
"value": "1"
},
{
"type": "setValue",
"name": "status:atk",
@ -1036,10 +1039,10 @@ main.floors.MT0=
},
{
"type": "changeFloor",
"floorId": "jiange",
"floorId": "MT22",
"loc": [
12,
11
11,
5
]
},
{
@ -1048,8 +1051,11 @@ main.floors.MT0=
1,
0
]
}
]
},
{
"type": "if",
"condition": "flag:debug",
"true": []
}
],
"7,11": [
@ -1326,11 +1332,6 @@ main.floors.MT0=
"type": "hideImage",
"code": 1,
"time": 0
},
{
"type": "setValue",
"name": "item:book",
"value": "item:book+1"
}
],
"1,0": [
@ -1345,6 +1346,39 @@ main.floors.MT0=
],
"time": 500
}
],
"0,0": [
{
"type": "if",
"condition": "(core.isReplaying()||flag:SkipThePlot)",
"true": [
{
"type": "setValue",
"name": "flag:SkipThePlot",
"value": "false"
}
],
"false": [
{
"type": "function",
"function": "function(){\ncore.Confirmskip_On();\n}"
},
{
"type": "setValue",
"name": "flag:useS_PASS",
"value": "false"
},
{
"type": "setValue",
"name": "flag:useS_PASS",
"value": "true"
},
{
"type": "function",
"function": "function(){\ncore.Confirmskip_Off();\n}"
}
]
}
]
},
"changeFloor": {

View File

@ -56,6 +56,14 @@ main.floors.MT15=
"enable": false,
"noPass": null,
"displayDamage": true,
"opacity": 1,
"filter": {
"blur": 0,
"hue": 0,
"grayscale": 0,
"invert": false,
"shadow": 0
},
"data": [
{
"type": "showImage2",
@ -80,7 +88,10 @@ main.floors.MT15=
"type": "hideImage",
"code": 1,
"time": 0
}
]
},
"8,11": [
{
"type": "if",
"condition": "(flag:221==1)",
@ -89,11 +100,8 @@ main.floors.MT15=
"type": "hide",
"remove": true
}
]
}
]
},
"8,11": [
],
"false": [
{
"type": "if",
"condition": "(flag:15f==1)",
@ -125,27 +133,20 @@ main.floors.MT15=
],
"false": [
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
{
"text": "是",
"action": [
"type": "if",
"condition": "(flag:SkipThePlot||core.isReplaying())",
"true": [
{
"type": "setValue",
"name": "flag:15f",
"value": "1"
},
{
"type": "setValue",
"name": "flag:juqing",
"value": "flag:juqing+1"
"name": "flag:SkipThePlot",
"value": "false"
}
]
},
],
"false": [
{
"text": "否",
"action": [
"type": "function",
"function": "function(){\ncore.Confirmskip_On();\n}"
},
{
"type": "showImage2",
"code": 1,
@ -209,16 +210,20 @@ main.floors.MT15=
"time": 0
},
{
"type": "setValue",
"name": "flag:15f",
"value": "1"
"type": "function",
"function": "function(){\ncore.Confirmskip_Off();\n}"
}
]
},
{
"type": "setValue",
"name": "flag:juqing",
"value": "flag:juqing+1"
}
]
},
{
"type": "setValue",
"name": "flag:15f",
"value": "1"
}
]
}

View File

@ -1019,6 +1019,16 @@ main.floors.MT16=
}
],
"7,8": [
{
"type": "if",
"condition": "(flag:124==1)",
"true": [
{
"type": "hide",
"remove": true
}
],
"false": [
{
"type": "if",
"condition": "(flag:16f==1)",
@ -1078,22 +1088,25 @@ main.floors.MT16=
],
"false": [
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
"type": "if",
"condition": "(core.isReplaying()||flag:SkipThePlot)",
"true": [
{
"text": "是",
"action": [
"type": "setValue",
"name": "flag:SkipThePlot",
"value": "false"
},
{
"type": "setValue",
"name": "flag:16f",
"value": "1"
}
]
},
],
"false": [
{
"text": "否",
"action": [
"type": "function",
"function": "function(){\ncore.Confirmskip_On();\n}"
},
{
"type": "showImage2",
"code": 1,
@ -1453,8 +1466,10 @@ main.floors.MT16=
"type": "setValue",
"name": "flag:16f",
"value": "1"
}
]
},
{
"type": "function",
"function": "function(){\ncore.Confirmskip_Off();\n}"
}
]
},
@ -1465,6 +1480,8 @@ main.floors.MT16=
}
]
}
]
}
],
"11,7": [
{

View File

@ -43,27 +43,25 @@ main.floors.MT17=
],
"false": [
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
{
"text": "是",
"action": [
"type": "if",
"condition": "(core.isReplaying()||flag:SkipThePlot)",
"true": [
{
"type": "setValue",
"name": "flag:juqing",
"value": "flag:juqing+1"
"name": "flag:SkipThePlot",
"value": "false"
},
{
"type": "setValue",
"name": "flag:17",
"value": "1"
}
]
},
],
"false": [
{
"text": "否",
"action": [
"type": "function",
"function": "function(){\ncore.Confirmskip_On();\n}"
},
{
"type": "showImage2",
"code": 1,
@ -128,11 +126,6 @@ main.floors.MT17=
"name": "flag:17",
"value": "1"
},
{
"type": "setValue",
"name": "flag:juqing",
"value": "flag:juqing+1"
},
{
"type": "hideImage",
"code": 1,
@ -142,10 +135,17 @@ main.floors.MT17=
"type": "hideImage",
"code": 2,
"time": 0
},
{
"type": "function",
"function": "function(){\ncore.Confirmskip_Off();\n}"
}
]
}
]
},
{
"type": "setValue",
"name": "flag:juqing",
"value": "flag:juqing+1"
}
]
}

View File

@ -15,6 +15,14 @@ main.floors.MT20=
"enable": false,
"noPass": null,
"displayDamage": true,
"opacity": 1,
"filter": {
"blur": 0,
"hue": 0,
"grayscale": 0,
"invert": false,
"shadow": 0
},
"data": [
{
"type": "hide",
@ -38,12 +46,14 @@ main.floors.MT20=
"floorId": "MT0"
},
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
"type": "if",
"condition": "(core.isReplaying()||flag:SkipThePlot)",
"true": [
{
"text": "是",
"action": [
"type": "setValue",
"name": "flag:SkipThePlot",
"value": "false"
},
{
"type": "hide",
"time": 500
@ -63,11 +73,12 @@ main.floors.MT20=
0
]
}
]
},
],
"false": [
{
"text": "否",
"action": [
"type": "function",
"function": "function(){\ncore.Confirmskip_On();\n}"
},
{
"type": "showImage2",
"code": 1,
@ -658,6 +669,10 @@ main.floors.MT20=
"type": "hide",
"time": 500
},
{
"type": "function",
"function": "function(){\ncore.Confirmskip_Off();\n}"
},
{
"type": "changeFloor",
"floorId": "duwei1",
@ -677,8 +692,6 @@ main.floors.MT20=
]
}
]
}
]
},
"7,8": {
"trigger": "action",
@ -695,12 +708,14 @@ main.floors.MT20=
},
"data": [
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
"type": "if",
"condition": "(core.isReplaying()||flag:SkipThePlot)",
"true": [
{
"text": "是",
"action": [
"type": "setValue",
"name": "flag:SkipThePlot",
"value": "false"
},
{
"type": "if",
"condition": "((flag:hard==1)||(flag:hard==5))",
@ -736,11 +751,12 @@ main.floors.MT20=
{
"type": "hide"
}
]
},
],
"false": [
{
"text": "否",
"action": [
"type": "function",
"function": "function(){\ncore.Confirmskip_On();\n}"
},
{
"type": "showImage2",
"code": 1,
@ -1027,6 +1043,11 @@ main.floors.MT20=
"code": 1,
"time": 0
},
{
"type": "setValue",
"name": "flag:useS_PASS",
"value": "false"
},
{
"type": "move",
"time": 500,
@ -1046,8 +1067,15 @@ main.floors.MT20=
]
],
"time": 500
}
]
},
{
"type": "setValue",
"name": "flag:useS_PASS",
"value": "true"
},
{
"type": "function",
"function": "function(){\ncore.Confirmskip_Off();\n}"
}
]
}
@ -1418,29 +1446,27 @@ main.floors.MT20=
"time": 500,
"keep": true,
"steps": [
"up",
"up",
"right",
"right",
"right",
"up",
"up",
"left",
"left",
"left"
"up:2",
"right:3",
"up:2",
"left:3"
]
},
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
"type": "if",
"condition": "(core.isReplaying()||flag:SkipThePlot)",
"true": [
{
"text": "是",
"action": []
"type": "setValue",
"name": "flag:SkipThePlot",
"value": "false"
}
],
"false": [
{
"type": "function",
"function": "function(){\ncore.Confirmskip_On();\n}"
},
{
"text": "否",
"action": [
{
"type": "showImage2",
"code": 1,
@ -1722,8 +1748,10 @@ main.floors.MT20=
"type": "hideImage",
"code": 2,
"time": 0
}
]
},
{
"type": "function",
"function": "function(){\ncore.Confirmskip_Off();\n}"
}
]
},
@ -1761,8 +1789,7 @@ main.floors.MT20=
"time": 500,
"keep": true,
"steps": [
"up",
"up"
"up:2"
]
},
{
@ -1790,9 +1817,7 @@ main.floors.MT20=
],
"time": 500,
"steps": [
"up",
"up",
"up"
"up:3"
]
},
{

View File

@ -54,12 +54,14 @@ main.floors.MT21=
"loc": "hero"
},
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
"type": "if",
"condition": "(core.isReplaying()||flag:SkipThePlot)",
"true": [
{
"text": "是",
"action": [
"type": "setValue",
"name": "flag:SkipThePlot",
"value": "false"
},
{
"type": "hide",
"loc": [
@ -130,11 +132,12 @@ main.floors.MT21=
]
]
}
]
},
],
"false": [
{
"text": "否",
"action": [
"type": "function",
"function": "function(){\ncore.Confirmskip_On();\n}"
},
{
"type": "showImage2",
"code": 1,
@ -189,6 +192,10 @@ main.floors.MT21=
"\t[夜兽人甲]哼!乖乖受死吧!",
"\t[蓝衣老者]哈哈哈哈!真是不知好歹!老夫果然没有看错,魔物果然只是一群嗜杀暴虐之徒!",
"\t[夜兽人甲]妈的,废话真多!",
{
"type": "function",
"function": "function(){\ncore.Confirmskip_Off();\n}"
},
{
"type": "move",
"loc": [
@ -796,8 +803,6 @@ main.floors.MT21=
]
}
]
}
]
},
{
"type": "setValue",
@ -830,6 +835,14 @@ main.floors.MT21=
"enable": false,
"noPass": null,
"displayDamage": true,
"opacity": 1,
"filter": {
"blur": 0,
"hue": 0,
"grayscale": 0,
"invert": false,
"shadow": 0
},
"data": [
{
"type": "if",
@ -837,7 +850,9 @@ main.floors.MT21=
"true": [
{
"type": "show"
},
}
],
"false": [
{
"type": "if",
"condition": "(flag:140==1)",
@ -878,35 +893,6 @@ main.floors.MT21=
}
],
"false": [
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
{
"text": "是",
"action": []
},
{
"text": "否",
"action": [
{
"type": "showImage2",
"code": 1,
"image": "jiekedajiao.png",
"sloc": [
0,
0,
null
],
"loc": [
330,
70,
"289.6",
"376.8"
],
"opacity": 1,
"time": 0
},
"\t[杰克]老子存货不多了,靠!",
"\t[杰克]要是耽误我帮老大清塔以后就没这事了!",
{
@ -969,10 +955,6 @@ main.floors.MT21=
"type": "hideImage",
"code": 3,
"time": 0
}
]
}
]
},
{
"type": "setValue",
@ -988,11 +970,6 @@ main.floors.MT21=
}
]
}
],
"false": [
{
"type": "hide"
}
]
}
]

View File

@ -365,10 +365,6 @@ main.floors.MT22=
"name": "flag:juqing",
"value": "flag:juqing+1"
},
{
"type": "hide",
"remove": true
},
{
"type": "show",
"loc": [
@ -378,6 +374,10 @@ main.floors.MT22=
]
],
"floorId": "MT15"
},
{
"type": "hide",
"remove": true
}
],
"4,4": [
@ -425,17 +425,6 @@ main.floors.MT22=
}
],
"false": [
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
{
"text": "是",
"action": []
},
{
"text": "否",
"action": [
{
"type": "showImage2",
"code": 2,
@ -547,10 +536,6 @@ main.floors.MT22=
"type": "hideImage",
"code": 5,
"time": 0
}
]
}
]
},
{
"type": "setValue",

View File

@ -52,12 +52,14 @@ main.floors.MT23=
},
"data": [
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
"type": "if",
"condition": "(core.isReplaying()||flag:SkipThePlot)",
"true": [
{
"text": "是",
"action": [
"type": "setValue",
"name": "flag:SkipThePlot",
"value": "false"
},
{
"type": "hide",
"loc": [
@ -92,17 +94,28 @@ main.floors.MT23=
],
"direction": "right"
}
]
],
"false": [
{
"type": "function",
"function": "function(){\ncore.Confirmskip_On();\n}"
},
{
"text": "否",
"action": [
"type": "setValue",
"name": "flag:useS_PASS",
"value": "false"
},
{
"type": "moveHero",
"steps": [
"up:1"
]
},
{
"type": "setValue",
"name": "flag:useS_PASS",
"value": "true"
},
{
"type": "animate",
"name": "gantanhao",
@ -394,6 +407,10 @@ main.floors.MT23=
"code": 10,
"time": 0
},
{
"type": "function",
"function": "function(){\ncore.Confirmskip_Off();\n}"
},
{
"type": "move",
"loc": [
@ -934,8 +951,6 @@ main.floors.MT23=
"keep": true
}
]
}
]
},
{
"type": "setValue",

View File

@ -39,12 +39,14 @@ main.floors.MT24=
"events": {
"1,0": [
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
"type": "if",
"condition": "(core.isReplaying()||flag:SkipThePlot)",
"true": [
{
"text": "是",
"action": [
"type": "setValue",
"name": "flag:SkipThePlot",
"value": "false"
},
{
"type": "hide",
"loc": [
@ -55,11 +57,12 @@ main.floors.MT24=
],
"remove": true
}
]
},
],
"false": [
{
"text": "否",
"action": [
"type": "function",
"function": "function(){\ncore.Confirmskip_On();\n}"
},
{
"type": "showImage2",
"code": 1,
@ -282,6 +285,11 @@ main.floors.MT24=
"code": 8,
"time": 0
},
{
"type": "setValue",
"name": "flag:useS_PASS",
"value": "false"
},
{
"type": "move",
"loc": [
@ -291,9 +299,8 @@ main.floors.MT24=
"time": 500,
"keep": true,
"steps": [
"right",
"down",
"down"
"right:1",
"down:2"
]
},
{
@ -332,8 +339,7 @@ main.floors.MT24=
"time": 500,
"keep": true,
"steps": [
"left",
"left"
"left:2"
]
},
{
@ -345,8 +351,15 @@ main.floors.MT24=
]
],
"remove": true
}
]
},
{
"type": "setValue",
"name": "flag:useS_PASS",
"value": "true"
},
{
"type": "function",
"function": "function(){\ncore.Confirmskip_Off();\n}"
}
]
},
@ -399,16 +412,20 @@ main.floors.MT24=
],
"false": [
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
"type": "if",
"condition": "(core.isReplaying()||flag:SkipThePlot)",
"true": [
{
"text": "是",
"action": []
"type": "setValue",
"name": "flag:SkipThePlot",
"value": "false"
}
],
"false": [
{
"type": "function",
"function": "function(){\ncore.Confirmskip_On();\n}"
},
{
"text": "否",
"action": [
{
"type": "showImage2",
"code": 1,
@ -577,8 +594,10 @@ main.floors.MT24=
"type": "hideImage",
"code": 7,
"time": 0
}
]
},
{
"type": "function",
"function": "function(){\ncore.Confirmskip_Off();\n}"
}
]
},

View File

@ -106,16 +106,20 @@ main.floors.MT27=
],
"false": [
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
"type": "if",
"condition": "(core.isReplaying()||flag:SkipThePlot)",
"true": [
{
"text": "是",
"action": []
"type": "setValue",
"name": "flag:SkipThePlot",
"value": "false"
}
],
"false": [
{
"type": "function",
"function": "function(){\ncore.Confirmskip_On();\n}"
},
{
"text": "否",
"action": [
{
"type": "showImage2",
"code": 3,
@ -545,8 +549,10 @@ main.floors.MT27=
"type": "hideImage",
"code": 19,
"time": 0
}
]
},
{
"type": "function",
"function": "function(){\ncore.Confirmskip_Off();\n}"
}
]
},

View File

@ -52,12 +52,14 @@ main.floors.MT28=
"false": []
},
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
"type": "if",
"condition": "(core.isReplaying()||flag:SkipThePlot)",
"true": [
{
"text": "是",
"action": [
"type": "setValue",
"name": "flag:SkipThePlot",
"value": "false"
},
{
"type": "hide",
"loc": [
@ -83,11 +85,12 @@ main.floors.MT28=
],
"direction": "left"
}
]
},
],
"false": [
{
"text": "否",
"action": [
"type": "function",
"function": "function(){\ncore.Confirmskip_On();\n}"
},
{
"type": "pauseBgm"
},
@ -96,6 +99,11 @@ main.floors.MT28=
"name": "shengqishi.mp3",
"keep": true
},
{
"type": "setValue",
"name": "flag:useS_PASS",
"value": "false"
},
{
"type": "moveHero",
"time": 500,
@ -115,6 +123,11 @@ main.floors.MT28=
"up:2"
]
},
{
"type": "setValue",
"name": "flag:useS_PASS",
"value": "true"
},
{
"type": "animate",
"name": "sangang",
@ -245,6 +258,11 @@ main.floors.MT28=
"code": 4,
"time": 0
},
{
"type": "setValue",
"name": "flag:useS_PASS",
"value": "false"
},
{
"type": "moveHero",
"steps": [
@ -259,6 +277,11 @@ main.floors.MT28=
],
"direction": "right"
},
{
"type": "setValue",
"name": "flag:useS_PASS",
"value": "true"
},
{
"type": "showImage2",
"code": 5,
@ -360,6 +383,11 @@ main.floors.MT28=
"code": 8,
"time": 0
},
{
"type": "setValue",
"name": "flag:useS_PASS",
"value": "false"
},
{
"type": "move",
"loc": [
@ -372,6 +400,11 @@ main.floors.MT28=
"left:3"
]
},
{
"type": "setValue",
"name": "flag:useS_PASS",
"value": "true"
},
{
"type": "showImage2",
"code": 9,
@ -421,6 +454,11 @@ main.floors.MT28=
"code": 10,
"time": 0
},
{
"type": "setValue",
"name": "flag:useS_PASS",
"value": "false"
},
{
"type": "hide",
"loc": [
@ -439,6 +477,11 @@ main.floors.MT28=
],
"direction": "left"
},
{
"type": "setValue",
"name": "flag:useS_PASS",
"value": "true"
},
{
"type": "animate",
"name": "shenglvehao",
@ -467,8 +510,10 @@ main.floors.MT28=
"type": "hideImage",
"code": 11,
"time": 0
}
]
},
{
"type": "function",
"function": "function(){\ncore.Confirmskip_Off();\n}"
}
]
},

View File

@ -40,12 +40,14 @@ main.floors.MT30=
"10,1": [],
"9,3": [
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
"type": "if",
"condition": "(core.isReplaying()||flag:SkipThePlot)",
"true": [
{
"text": "是",
"action": [
"type": "setValue",
"name": "flag:SkipThePlot",
"value": "false"
},
{
"type": "battle",
"loc": [
@ -316,11 +318,12 @@ main.floors.MT30=
],
"remove": true
}
]
},
],
"false": [
{
"text": "否",
"action": [
"type": "function",
"function": "function(){\ncore.Confirmskip_On();\n}"
},
{
"type": "changePos",
"loc": [
@ -572,6 +575,10 @@ main.floors.MT30=
"code": 9,
"time": 0
},
{
"type": "function",
"function": "function(){\ncore.Confirmskip_Off();\n}"
},
{
"type": "showImage2",
"code": 10,
@ -1661,6 +1668,18 @@ main.floors.MT30=
]
}
]
},
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
{
"text": "是",
"action": []
},
{
"text": "否",
"action": []
}
]
}

View File

@ -63,17 +63,6 @@ main.floors.MT37=
}
],
"false": [
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
{
"text": "是",
"action": []
},
{
"text": "否",
"action": [
{
"type": "showImage",
"code": 2,
@ -90,10 +79,6 @@ main.floors.MT37=
"type": "hideImage",
"code": 2,
"time": 0
}
]
}
]
},
{
"type": "setValue",

View File

@ -47,16 +47,20 @@ main.floors.MT39=
"events": {
"3,4": [
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
"type": "if",
"condition": "(core.isReplaying()||flag:SkipThePlot)",
"true": [
{
"text": "是",
"action": []
"type": "setValue",
"name": "flag:SkipThePlot",
"value": "false"
}
],
"false": [
{
"type": "function",
"function": "function(){\ncore.Confirmskip_On();\n}"
},
{
"text": "否",
"action": [
{
"type": "showImage",
"code": 1,
@ -162,6 +166,10 @@ main.floors.MT39=
"code": 6,
"time": 0
},
{
"type": "function",
"function": "function(){\ncore.Confirmskip_Off();\n}"
},
{
"type": "pauseBgm"
},
@ -312,8 +320,6 @@ main.floors.MT39=
"time": 0
}
]
}
]
},
{
"type": "animate",

View File

@ -90,12 +90,14 @@ main.floors.MT40=
"text": "开打",
"action": [
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
"type": "if",
"condition": "(core.isReplaying()||flag:SkipThePlot)",
"true": [
{
"text": "是",
"action": [
"type": "setValue",
"name": "flag:SkipThePlot",
"value": "false"
},
{
"type": "showImage",
"code": 27,
@ -219,11 +221,12 @@ main.floors.MT40=
]
]
}
]
},
],
"false": [
{
"text": "否",
"action": [
"type": "function",
"function": "function(){\ncore.Confirmskip_On();\n}"
},
{
"type": "pauseBgm"
},
@ -412,6 +415,10 @@ main.floors.MT40=
"code": 35,
"time": 0
},
{
"type": "function",
"function": "function(){\ncore.Confirmskip_Off();\n}"
},
{
"type": "animate",
"name": "shenglvehao",
@ -1462,6 +1469,18 @@ main.floors.MT40=
"remove": true
}
]
},
{
"type": "choices",
"text": "是否跳过剧情",
"choices": [
{
"text": "是",
"action": []
},
{
"text": "否",
"action": []
}
]
},

View File

@ -11,6 +11,16 @@ main.floors.MT7=
"firstArrive": [],
"events": {
"5,1": [
{
"type": "if",
"condition": "(flag:221==1)",
"true": [
{
"type": "hide",
"remove": true
}
],
"false": [
{
"type": "if",
"condition": "(flag:7fduihua==0)",
@ -293,6 +303,8 @@ main.floors.MT7=
]
}
]
}
]
},
"changeFloor": {
"7,6": {

View File

@ -202,7 +202,7 @@ main.floors.nandu=
"true": [
{
"type": "function",
"function": "function(){\ncore.insertAction([{\n\t\"type\": \"choices\",\n\t\"text\": \"\\\\c[21]是否选择\" + [\"\\r[#ffff80]作弊\", \"\\r[#80ff80]简单\", \"\\r[#8080ff]普通\", \"\\r[#ff80ff]困难\", \"\\r[#ff8080]噩梦\", \"\\r[#ffff80]作弊\"][flags.hard] + \"\\r难度\",\n\t\"choices\": [{\n\t\t\t\"text\": \"是\",\n\t\t\t\"action\": [\n\t\t\t\t{ \"type\": \"break\" },\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"text\": \"否\",\n\t\t\t\"action\": [\n\t\t\t\t{ \"type\": \"setValue\", \"name\": \"fla\" + \"g:xuanzhong\", \"value\": \"0\" },\n\t\t\t]\n\t\t},\n\t]\n}, ])\n}"
"function": "function(){\ncore.insertAction([{\n\t\"type\": \"choices\",\n\t\"text\": \"\\\\c[21] 是否选择\" + [\"\\u000d[#ffff80]作弊\", \"\\u000d[#80ff80]简单\", \"\\u000d[#8080ff]普通\", \"\\u000d[#ff80ff]困难\", \"\\u000d[#ff8080]噩梦\", \"\\u000d[#ffff80]作弊\"][flags.hard] + \"\\u000d难度\",\n\t\"choices\": [{\n\t\t\t\"text\": \"是\",\n\t\t\t\"action\": [\n\t\t\t\t{ \"type\": \"break\" },\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"text\": \"否\",\n\t\t\t\"action\": [\n\t\t\t\t{ \"type\": \"setValue\", \"name\": \"fla\" + \"g:xuanzhong\", \"value\": \"0\" },\n\t\t\t]\n\t\t},\n\t]\n}, ])\n}"
}
],
"false": [
@ -234,7 +234,6 @@ main.floors.nandu=
255,
1
],
"background": "winskin2.png",
"time": 20
},
{
@ -249,13 +248,29 @@ main.floors.nandu=
"type": "function",
"function": "function(){\ncore.dom.wholeCtx.fillRect(0, 0, core.dom.whole.width, core.dom.whole.height);\n}"
},
{
"type": "function",
"function": "function(){\ncore.createCanvas('shifoutiaoguo',0,0,480,480,200);\n}"
},
{
"type": "function",
"function": "function(){\ncore.drawTextContent('shifoutiaoguo', '是否跳过开始剧情,直接进入游戏?', { \t\t\t\tleft: 150, \t\t\t\ttop: 180, \t\t\t\tmaxWidth: 400, \t\t\t\tfontSize: 20, \t\t\t\tlineHeight: 20, \t\t\t\tbold: false, \t\t\t});\n}"
},
{
"type": "setText",
"background": "winskin4.png"
},
{
"type": "choices",
"text": "是否跳过开始剧情",
"text": " ",
"choices": [
{
"text": "是",
"action": [
{
"type": "function",
"function": "function(){\ncore.clearMap('shifoutiaoguo');\n}"
},
{
"type": "playBgm",
"name": "xingkong.mp3",
@ -291,6 +306,10 @@ main.floors.nandu=
{
"text": "否",
"action": [
{
"type": "function",
"function": "function(){\ncore.clearMap('shifoutiaoguo');\n}"
},
{
"type": "changeFloor",
"floorId": "QISHI",

BIN
project/images/winskin4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -381,7 +381,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
core.setAutoHeroMove();
}
////// 绘制一个对话框 //////
core.ui.drawTextBox = function (content, config) {
/*core.ui.drawTextBox = function (content, config) {
config = config || {};
this.clearUI();
@ -424,13 +424,13 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
if (titleInfo.title) {
let titlefont = core.status.textAttribute.titlefont,
titleStyle = core.arrayToRGBA(core.status.textAttribute.title);
let tf = this._buildFont(titlefont, true),
let tf = this._buildFont(titlefont, false),
width = this.calWidth(ctx, titleInfo.title, tf);
this.drawBackground(hPos.left, vPos.top - titlefont - 12, hPos.left + width + 30, vPos.top, posInfo);
this.drawBackground(hPos.left, vPos.top - titlefont - 12 - 10, hPos.left + width + 30, vPos.top, posInfo);
ctx.save();
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
core.fillText(ctx, titleInfo.title, hPos.left + (width + 30) / 2, vPos.top - (titlefont + 12) / 2, titleStyle, tf);
core.fillText(ctx, titleInfo.title, hPos.left + (width + 30) / 2 - 5, vPos.top - (titlefont + 12) / 2 - 5, titleStyle, tf);
ctx.restore();
}
titleInfo.title = null;
@ -462,10 +462,56 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
return config;
}
*/
ui.prototype._drawChoices_drawChoices = function (choices, isWindowSkin, hPos, vPos, ctx) {
var hasCtx = ctx != null;
ctx = ctx || 'ui';
// 选项
core.setTextAlign(ctx, 'left');
core.setFont(ctx, this._buildFont(17, true));
for (var i = 0; i < choices.length; i++) {
var color = core.arrayToRGBA(choices[i].color || core.status.textAttribute.text);
if (main.mode == 'play' && choices[i].need != null && choices[i].need != '' && !core.calValue(choices[i].need)) color = '#999999';
core.setFillStyle(ctx, color);
var offset = core._PX_ / 2;
if (choices[i].icon) {
var iconInfo = this._getDrawableIconInfo(choices[i].icon),
image = iconInfo[0],
icon = iconInfo[1];
if (image != null) {
core.drawImage(ctx, image, 0, 32 * icon, 32, 32,
core._PX_ / 2 - choices[i].width / 2, vPos.choice_top + 32 * i - 17, 22, 22);
offset += 14;
}
}
core.fillText(ctx, choices[i].text, offset - 70, vPos.choice_top + 32 * i, color, ui.prototype._buildFont(22, false));
}
if (choices.length > 0 && core.status.event.selection != 'none') {
core.status.event.selection = core.status.event.selection || 0;
while (core.status.event.selection < 0) core.status.event.selection += choices.length;
while (core.status.event.selection >= choices.length) core.status.event.selection -= choices.length;
var len = choices[core.status.event.selection].width;
if (isWindowSkin) {
if (hasCtx) {
this._drawSelector(ctx, core.status.textAttribute.background,
len + 10, 28, core._PX_ / 2 - len / 2 - 5, vPos.choice_top + 32 * core.status.event.selection - 20);
} else {
this._drawWindowSelector(core.status.textAttribute.background,
core._PX_ / 2 - len / 2 - 5 - 60, vPos.choice_top + 32 * core.status.event.selection - 20, len + 10, 28);
}
} else
core.strokeRoundRect(ctx, core._PX_ / 2 - len / 2 - 5, vPos.choice_top + 32 * core.status.event.selection - 20,
len + 10, 28, 6, core.status.globalAttribute.selectColor, 2);
}
}
core.ui._drawSettings = function () {
core.status.event.id = 'settings';
this.drawChoices(null, [
"系统设置", "虚拟键盘", "浏览地图", "存档笔记", "同步存档", "游戏信息", "返回标题", "返回游戏", "数值显示: " + (core.getFlag("itemDetail") ? "[ON]" : "[OFF]"), "RM样式楼传 " + (core.getFlag("isRmFly") ? "[ON]" : "[OFF]")
"系统设置", "虚拟键盘", "浏览地图", "存档笔记", "同步存档", "游戏信息", "返回标题", "返回游戏", "数值显示: " + (core.getFlag("itemDetail") ? "[ON]" : "[OFF]"), "RM楼传: " + (core.getFlag("isRmFly") ? "[ON]" : "[OFF]")
]);
}
core.actions._clickSettings = function (x, y) {
@ -535,7 +581,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
var text = '获得 ' + core.material.items[id].name;
if (num > 1) text += "x" + num;
if (itemCls === 'items' && num == 1) text += core.items.getItemEffectTip(id);
core.drawTip(text, id);
//core.drawTip(text, id);
// --- 首次获得道具的提示
if (!core.hasFlag("__itemHint__")) core.setFlag("__itemHint__", []);
@ -918,48 +964,31 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
}
}
/*core.ui.drawFly = function (page) {/////已在别处仿RM楼传复写
core.status.event.data = page;
var floorId = core.floorIds[page];
var title = core.status.maps[floorId].title;
core.clearMap('ui');
core.setAlpha('ui', 0.85);
core.fillRect('ui', 0, 0, core._PX_, core._PY_, '#000000');
core.setAlpha('ui', 1);
core.setTextAlign('ui', 'center');
core.fillText('ui', '楼层跳跃', core._PX_ / 2, 48, '#FFFFFF', this._buildFont(28, true));
core.fillText('ui', '返回游戏', core._PX_ / 2, core._PY_ - 13, null, this._buildFont(15, true))
core.setTextAlign('ui', 'right');
core.fillText('ui', '浏览地图时也', core._PX_ - 10, core._PY_ - 23, '#aaaaaa', this._buildFont(10, false));
core.fillText('ui', '可楼层跳跃!', core._PX_ - 10, core._PY_ - 11, null, this._buildFont(10, false));
core.setTextAlign('ui', 'center');
var middle = core._PY_ / 2 + 39;
// 换行
var lines = core.splitLines('ui', title, 120, this._buildFont(19, true));
var start_y = middle - (lines.length - 1) * 11;
for (var i in lines) {
core.fillText('ui', lines[i], core._PX_ - 53, start_y, '#FFFFFF', this._buildFont(17, true));
start_y += 22;
////// 战斗 //////
events.prototype.battle = function (id, x, y, force, callback) {
core.saveAndStopAutomaticRoute();
id = id || core.getBlockId(x, y);
if (!id) return core.clearContinueAutomaticRoute(callback);
// 非强制战斗
if (!core.enemys.canBattle(id, x, y) && !force && !core.status.event.id) {
core.stopSound();
core.playSound('操作失败');
//core.drawTip("你打不过此怪物!", id);
core.drawAnimate('jingu', x, y);
core.drawText('你的能力不足以战胜这个对手。\n\n\n');
return core.clearContinueAutomaticRoute(callback);
}
if (core.actions._getNextFlyFloor(1) != page) {
core.fillText('ui', '▲', core._PX_ - 60, middle - 64, null, this._buildFont(17, false));
core.fillText('ui', '▲', core._PX_ - 60, middle - 96);
core.fillText('ui', '▲', core._PX_ - 60, middle - 96 - 7);
// 自动存档
if (!core.status.event.id) core.autosave(true);
// 战前事件
if (!this.beforeBattle(id, x, y))
return core.clearContinueAutomaticRoute(callback);
// 战后事件
this.afterBattle(id, x, y);
if (callback) callback();
}
if (core.actions._getNextFlyFloor(-1) != page) {
core.fillText('ui', '▼', core._PX_ - 60, middle + 64, null, this._buildFont(17, false));
core.fillText('ui', '▼', core._PX_ - 60, middle + 96);
core.fillText('ui', '▼', core._PX_ - 60, middle + 96 + 7);
}
var size = 0.75;
core.strokeRect('ui', 16, 64, size * core._PX_, size * core._PY_, '#FFFFFF', 2);
core.drawThumbnail(floorId, null, { ctx: 'ui', x: 16, y: 64, size: size, damage: true, all: true });
}*/
},
"drawLight": function () {
@ -2928,7 +2957,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
// *** 下一句话可以更改你想要的显示字体
core.setFont(ctx, "bold 11px Arial");
// ***
core.setTextAlign(ctx, 'left');
core.setTextAlign(ctx, "right");
core.status.damage.data.forEach(function (one) {
var px = one.px,
py = one.py;
@ -2938,7 +2967,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
if (px < -32 * 2 || px > core.__PX__ + 32 || py < -32 || py > core.__PY__ + 32)
return;
}
core.fillBoldText(ctx, one.text, px, py, one.color);
core.fillBoldText(ctx, one.text, px + 32, py, one.color);
});
core.setTextAlign(ctx, 'center');
core.status.damage.extraData.forEach(function (one) {
@ -3764,8 +3793,188 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
core.status.hero.flags.useS_PASS = false;
core.insertCommonEvent('跳过事件图片');
core.status.hero.flags.tiaojuqing_black = 0; ///闪烁开关归0
core.clearMap('tiaojuqing_black') /////清除特效画布
}
},
"移动怪物渐变消失": function () {
///AD NB小声bb
// 在此增加新插件
this.moveHidingBlock = function (x, y, steps, time, keep, callback) {
flags._moveHide = 1;
core.moveBlock(x, y, steps, time, keep, callback);
delete flags._moveHide;
}
core.maps.moveBlock = function (x, y, steps, time, keep, callback) {
if (core.status.replay.speed == 24) time = 1;
time = time || 500;
var blockArr = this._getAndRemoveBlock(x, y);
if (blockArr == null) {
if (callback) callback();
return;
}
var block = blockArr[0],
blockInfo = blockArr[1];
var moveSteps = (steps || []).map(function (t) {
return [t.split(':')[0], parseInt(t.split(':')[1] || "1")];
}).filter(function (t) {
return ['up', 'down', 'left', 'right', 'forward', 'backward', 'leftup', 'leftdown', 'rightup', 'rightdown', 'speed'].indexOf(t[0]) >= 0 &&
!(t[0] == 'speed' && t[1] < 16)
});
var canvases = this._initDetachedBlock(blockInfo, x, y, block.event.animate !== false);
this._moveDetachedBlock(blockInfo, 32 * x, 32 * y, 1, canvases);
const calStep = (step) => {
if (["up", "down", "left", "right", "forward", "backward"].includes(step[0])) {
return step[1];
}
return 0;
}
let stepSum = 0;
moveSteps.forEach((s) => stepSum += calStep(s));
var moveInfo = {
sx: x,
sy: y,
x: x,
y: y,
px: 32 * x,
py: 32 * y,
opacity: 1,
keep: keep,
lastDirection: null,
offset: 1,
moveSteps: moveSteps,
stepSum: stepSum * 16,
movedStep: 0,
withHiding: flags._moveHide,
step: 0,
per_time: time / 16 / core.status.replay.speed
}
this._moveBlock_doMove(blockInfo, canvases, moveInfo, callback);
}
core.maps._moveBlock_moving = function (blockInfo, canvases, moveInfo) {
if (moveInfo.step == 0) {
if (!this._moveBlock_updateDirection(blockInfo, moveInfo)) return;
}
var curr = moveInfo.moveSteps[0];
moveInfo.step++;
moveInfo.movedStep++;
moveInfo.px += core.utils.scan2[curr[0]].x * 2 * moveInfo.offset;
moveInfo.py += core.utils.scan2[curr[0]].y * 2 * moveInfo.offset;
if (moveInfo.withHiding) {
let o = moveInfo.movedStep / moveInfo.stepSum;
let op = 1 - o * o;
moveInfo.opacity = op;
}
this._moveDetachedBlock(blockInfo, moveInfo.px, moveInfo.py, moveInfo.opacity, canvases);
if (moveInfo.step == 16) {
moveInfo.step = 0;
moveInfo.moveSteps[0][1]--;
if (moveInfo.moveSteps[0][1] <= 0) {
moveInfo.moveSteps.shift();
}
}
}
},
"对话框偏移": function () {
// 在此增加新插件
core.dom.gameDraw.style.overflow = "visible";
////// 绘制一个对话框 //////
core.ui.drawTextBox = function (content, config) {
config = config || {};
this.clearUI();
content = core.replaceText(content);
let ctx = core.getContextByName(config.ctx || 'ui');
if (ctx && main.mode == 'play') {
core.createCanvas(ctx, 0, 0, core._PX_, core._PY_, 141);
ctx = core.getContextByName(ctx);
}
let off = flags.textOffset || 0;
if (!config.ctx || config.ctx == 'ui') {
core.relocateCanvas("ui", off, 0);
}
// Step 1: 获得标题信息和位置信息
var textAttribute = core.status.textAttribute;
var titleInfo = this._getTitleAndIcon(content);
var posInfo = this._getPosition(titleInfo.content);
if (posInfo.position != 'up' && posInfo.position != 'down') posInfo.px = posInfo.py = null;
if (!posInfo.position) posInfo.position = textAttribute.position;
content = this._drawTextBox_drawImages(posInfo.content, config.ctx);
if (config.pos) {
delete posInfo.px;
delete posInfo.py;
posInfo.pos = config.pos;
}
posInfo.ctx = ctx;
// Step 2: 计算对话框的矩形位置
var hPos = this._drawTextBox_getHorizontalPosition(content, titleInfo, posInfo);
var vPos = this._drawTextBox_getVerticalPosition(content, titleInfo, posInfo, hPos.validWidth);
posInfo.xoffset = hPos.xoffset;
posInfo.yoffset = vPos.yoffset - 4;
if (ctx && main.mode == 'play') {
ctx.canvas.setAttribute('_text_left', hPos.left);
ctx.canvas.setAttribute('_text_top', vPos.top);
}
// Step 3: 绘制背景图
var isWindowSkin = this.drawBackground(hPos.left, vPos.top, hPos.right, vPos.bottom, posInfo);
if (titleInfo.title) {
let titlefont = core.status.textAttribute.titlefont,
titleStyle = core.arrayToRGBA(core.status.textAttribute.title);
let tf = this._buildFont(titlefont, true),
width = this.calWidth(ctx, titleInfo.title, tf);
this.drawBackground(hPos.left, vPos.top - titlefont - 12 - 10, hPos.left + width + 30, vPos.top, posInfo);
ctx.save();
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
core.fillText(ctx, titleInfo.title, hPos.left + (width + 30) / 2 - 5, vPos.top - (titlefont + 12) / 2 - 5, titleStyle, tf);
ctx.restore();
}
titleInfo.title = null;
var alpha = isWindowSkin ? this._drawWindowSkin_getOpacity() : textAttribute.background[3];
// Step 4: 绘制标题、头像、动画
var content_top = this._drawTextBox_drawTitleAndIcon(titleInfo, hPos, vPos, alpha, config.ctx);
// Step 5: 绘制正文
var config = this.drawTextContent(config.ctx || 'ui', content, {
left: hPos.content_left,
top: content_top,
maxWidth: hPos.validWidth,
lineHeight: vPos.lineHeight,
time: (config.showAll || config.async || textAttribute.time <= 0 || core.status.event.id != 'action') ? 0 : textAttribute.time
});
// Step 6: 绘制光标
if (main.mode == 'play') {
main.dom.next.style.display = 'block';
main.dom.next.style.borderRightColor = main.dom.next.style.borderBottomColor = core.arrayToRGB(textAttribute.text);
main.dom.next.style.top = (vPos.bottom - 20) * core.domStyle.scale + "px";
var left = (hPos.left + hPos.right) / 2;
left += off;
if (posInfo.position == 'up' && !posInfo.noPeak && posInfo.px != null && Math.abs(posInfo.px * 32 + 16 - left) < 50)
left = hPos.right - 64;
main.dom.next.style.left = left * core.domStyle.scale + "px";
}
return config;
}
const _doa = core.events.doAction;
core.events.doAction = function () {
core.relocateCanvas('ui', 0, 0);
_doa.call(core.events);
}
}
}