Compare commits
2 Commits
5574e905a7
...
6e2b99b4f8
Author | SHA1 | Date | |
---|---|---|---|
6e2b99b4f8 | |||
9e7f168956 |
@ -871,6 +871,10 @@ action
|
|||||||
| disableShop_s
|
| disableShop_s
|
||||||
| follow_s
|
| follow_s
|
||||||
| unfollow_s
|
| unfollow_s
|
||||||
|
| setanimate_s
|
||||||
|
| deleteanimate_s
|
||||||
|
| playanimate_s
|
||||||
|
| clearanimate_s
|
||||||
| animate_s
|
| animate_s
|
||||||
| animate_1_s
|
| animate_1_s
|
||||||
| stopAnimate_s
|
| stopAnimate_s
|
||||||
@ -2221,6 +2225,136 @@ var code = '{"type": "vibrate", "direction": "'+Vibrate_List_0+'", "time": '+Int
|
|||||||
return code;
|
return code;
|
||||||
*/;
|
*/;
|
||||||
|
|
||||||
|
setanimate_s
|
||||||
|
: '新建 帧动画/特效' '名称' EvalString '参照点偏移像素x' IntString? 'y' IntString? '动画大小 宽' IntString '高' IntString '总帧数' IntString BGNL?Newline
|
||||||
|
'图片序列(同一帧后面覆盖先前的,默认起始帧为0,结束帧为最后一帧)'BGNL?Newline
|
||||||
|
'(剪裁区域不填写为全图,绘制区域不填写为全画面)'BGNL?Newline
|
||||||
|
'(透明度100为不透明,默认为不透明,结束透明度默认与开始透明度相同)'BGNL?Newline
|
||||||
|
animateDrawableimage+? Newline
|
||||||
|
'音频序列(到达对应帧进行播放)'BGNL?Newline
|
||||||
|
animateDrawablesound+? Newline
|
||||||
|
|
||||||
|
/* setanimate_s
|
||||||
|
tooltip : setanimate:设置帧动画/特效(此项仅储存,不播放)
|
||||||
|
helpUrl : /_docs/#/instruction
|
||||||
|
default : ["sword","","",192,192,60]
|
||||||
|
colour : this.soundColor
|
||||||
|
IntString_0 = IntString_0 ? (', "px": '+IntString_0+'') : '';
|
||||||
|
IntString_1 = IntString_1 ? (', "py": '+IntString_1+'') : '';
|
||||||
|
var imageList=animateDrawableimage_0?',"imageList": [\n'+animateDrawableimage_0.slice(0,-1)+'\n]':''
|
||||||
|
var soundList=animateDrawablesound_0?',"soundList": [\n'+animateDrawablesound_0.slice(0,-1)+'\n]':''
|
||||||
|
var code = '{"type": "setanimate", "name": "'+EvalString_0+'",'+IntString_0+IntString_1+' "width": '+IntString_2+', "height": '+IntString_3+', "allFarme": '+IntString_4+imageList+soundList+'},\n';
|
||||||
|
return code;
|
||||||
|
*/;
|
||||||
|
|
||||||
|
animateDrawableList
|
||||||
|
: animateDrawableimage
|
||||||
|
| animateDrawablesound
|
||||||
|
| animateDrawabletextEmpty;
|
||||||
|
|
||||||
|
animateDrawableimage
|
||||||
|
: '图片' EvalString? '起始帧' IntString? '起始透明度' IntString? BGNL? Newline
|
||||||
|
'剪裁坐标cx' IntString? 'cy' IntString? '宽' IntString? '高' IntString? '绘制坐标x'IntString? 'y' IntString? '宽' IntString? '高' IntString?'旋转角度'IntString? BGNL? Newline
|
||||||
|
'结束帧' IntString? '结束透明度' IntString? '剪裁坐标cx' IntString? 'cy' IntString? '宽' IntString? '高' IntString? '绘制坐标x'IntString? 'y' IntString? '宽' IntString? '高' IntString?'旋转角度'IntString? Newline
|
||||||
|
/* animateDrawableimage
|
||||||
|
tooltip : 帧动画图片列表
|
||||||
|
helpUrl : /_docs/#/instruction
|
||||||
|
default : ["","","","","","","","","","","","","","","","","","","","","","",""]
|
||||||
|
colour : this.subColor
|
||||||
|
allImages : ['EvalString_0']
|
||||||
|
if (IntString_1&&(IntString_1 < 0||IntString_1>100)) throw new Error('透明度范围为0-100,0为透明,100为不透明,不填默认为不透明')
|
||||||
|
if (IntString_12&&(IntString_12 < 0||IntString_12>100)) throw new Error('透明度范围为0-100,0为透明,100为不透明,不填默认为不透明')
|
||||||
|
IntString_0 = IntString_0 ? (', "beforefarme": '+IntString_0+'') : '';
|
||||||
|
IntString_1 = IntString_1 ? (', "globalAlpha": '+IntString_1+'') : '';
|
||||||
|
IntString_2 = IntString_2 ? (', "cx": '+IntString_2+'') : '';
|
||||||
|
IntString_3 = IntString_3 ? (', "cy": '+IntString_3+'') : '';
|
||||||
|
IntString_4 = IntString_4 ? (', "cw": '+IntString_4+'') : '';
|
||||||
|
IntString_5 = IntString_5 ? (', "ch": '+IntString_5+'') : '';
|
||||||
|
IntString_6 = IntString_6 ? (', "x": '+IntString_6+'') : '';
|
||||||
|
IntString_7 = IntString_7 ? (', "y": '+IntString_7+'') : '';
|
||||||
|
IntString_8 = IntString_8 ? (', "w": '+IntString_8+'') : '';
|
||||||
|
IntString_9 = IntString_9 ? (', "h": '+IntString_9+'') : '';
|
||||||
|
IntString_10 = IntString_10 ? (', "angle": '+IntString_10+'') : '';
|
||||||
|
|
||||||
|
IntString_11 = IntString_11 ? (', "afterfarme": '+IntString_11+'') : '';
|
||||||
|
IntString_12 = IntString_12 ? (', "aglobalAlpha": '+IntString_12+'') : '';
|
||||||
|
IntString_13 = IntString_13 ? (', "acx": '+IntString_13+'') : '';
|
||||||
|
IntString_14 = IntString_14 ? (', "acy": '+IntString_14+'') : '';
|
||||||
|
IntString_15 = IntString_15? (', "acw": '+IntString_15+'') : '';
|
||||||
|
IntString_16 = IntString_16 ? (', "ach": '+IntString_16+'') : '';
|
||||||
|
IntString_17 = IntString_17 ? (', "ax": '+IntString_17+'') : '';
|
||||||
|
IntString_18 = IntString_18 ? (', "ay": '+IntString_18+'') : '';
|
||||||
|
IntString_19 = IntString_19 ? (', "aw": '+IntString_19+'') : '';
|
||||||
|
IntString_20 = IntString_20 ? (', "ah": '+IntString_20+'') : '';
|
||||||
|
IntString_21 = IntString_21 ? (', "aangle": '+IntString_21+'') : '';
|
||||||
|
return '{ "image":"'+EvalString_0+'"'+IntString_0+IntString_1+IntString_2+IntString_3+IntString_4+IntString_5+IntString_6+IntString_7+IntString_8+IntString_9+IntString_10+IntString_11+IntString_12+IntString_13+IntString_14+IntString_15+IntString_16+IntString_17+IntString_18+IntString_19+IntString_20+IntString_21+'},'
|
||||||
|
*/;
|
||||||
|
|
||||||
|
animateDrawablesound
|
||||||
|
: '音效' EvalString? '起始帧' IntString '是否停止其他音效'Bool Newline
|
||||||
|
|
||||||
|
/* animateDrawablesound
|
||||||
|
tooltip : 帧动画配音
|
||||||
|
helpUrl : /_docs/#/instruction
|
||||||
|
default : ["",0,false]
|
||||||
|
colour : this.subColor
|
||||||
|
allSounds : ['EvalString_0']
|
||||||
|
|
||||||
|
return '{ "sound":"'+EvalString_0+'","startfarme":'+IntString_0+',"stopbefore":'+Bool_0+'},'
|
||||||
|
*/;
|
||||||
|
|
||||||
|
animateDrawabletextEmpty
|
||||||
|
: Newline
|
||||||
|
|
||||||
|
/* animateDrawabletextEmpty
|
||||||
|
var code = [];
|
||||||
|
return code;
|
||||||
|
*/;
|
||||||
|
|
||||||
|
deleteanimate_s
|
||||||
|
: '删除 帧动画/特效' '名称' EvalString Newline
|
||||||
|
|
||||||
|
/* deleteanimate_s
|
||||||
|
tooltip : deleteanimate:删除储存的帧动画
|
||||||
|
helpUrl : /_docs/#/instruction
|
||||||
|
default : [""]
|
||||||
|
|
||||||
|
colour : this.soundColor
|
||||||
|
|
||||||
|
var code = '{"type": "deleteanimate", "name": "'+EvalString_0+'"},\n';
|
||||||
|
return code;
|
||||||
|
*/;
|
||||||
|
|
||||||
|
playanimate_s
|
||||||
|
: '播放 帧动画/特效' '名称' EvalString '像素x' IntString? 'y' IntString? '跟随勇士' Bool 'x方向缩放' IntString? 'y方向缩放'IntString? Newline
|
||||||
|
|
||||||
|
/* playanimate_s
|
||||||
|
tooltip : playanimate:播放帧动画,选择跟随勇士后x、y将失效改为勇士中心坐标
|
||||||
|
helpUrl : /_docs/#/instruction
|
||||||
|
default : ["zone","","",false,"",""]
|
||||||
|
|
||||||
|
colour : this.soundColor
|
||||||
|
IntString_0 = IntString_0 ? (', "x": '+IntString_0+'') : '';
|
||||||
|
IntString_1 = IntString_1 ? (', "y": '+IntString_1+'') : '';
|
||||||
|
IntString_2 = IntString_2 ? (', "scalex": '+IntString_2+'') : '';
|
||||||
|
IntString_3 = IntString_3 ? (', "scaley": '+IntString_3+'') : '';
|
||||||
|
var code = '{"type": "playanimate", "name": "'+EvalString_0+'"'+IntString_0+IntString_1+',"hero":'+Bool_0+IntString_2+IntString_3+'},\n';
|
||||||
|
return code;
|
||||||
|
*/;
|
||||||
|
|
||||||
|
clearanimate_s
|
||||||
|
: '清空正在播放的帧动画/特效'
|
||||||
|
|
||||||
|
/* clearanimate_s
|
||||||
|
tooltip : clearanimate:清空正在播放的帧动画
|
||||||
|
helpUrl : /_docs/#/instruction
|
||||||
|
|
||||||
|
colour : this.soundColor
|
||||||
|
|
||||||
|
var code = '{"type": "clearanimate"},\n';
|
||||||
|
return code;
|
||||||
|
*/;
|
||||||
|
|
||||||
animate_s
|
animate_s
|
||||||
: '显示动画' EvalString '位置' 'x' PosString? 'y' PosString? '相对窗口坐标' Bool '不等待执行完毕' Bool Newline
|
: '显示动画' EvalString '位置' 'x' PosString? 'y' PosString? '相对窗口坐标' Bool '不等待执行完毕' Bool Newline
|
||||||
|
|
||||||
|
@ -703,6 +703,85 @@ MotaActionParser = function () {
|
|||||||
this.next,
|
this.next,
|
||||||
]);
|
]);
|
||||||
break;
|
break;
|
||||||
|
case "setanimate":
|
||||||
|
var buildanimateDrawableimage = function (obj) {
|
||||||
|
obj = MotaActionFunctions.processanimateDrawableimage(obj || []);
|
||||||
|
var res = null;
|
||||||
|
for (var ii = obj.length - 1, one; (one = obj[ii]); ii--) {
|
||||||
|
res = MotaActionBlocks["animateDrawableimage"].xmlText([
|
||||||
|
one[0],
|
||||||
|
one[1],
|
||||||
|
one[2],
|
||||||
|
one[3],
|
||||||
|
one[4],
|
||||||
|
one[5],
|
||||||
|
one[6],
|
||||||
|
one[7],
|
||||||
|
one[8],
|
||||||
|
one[9],
|
||||||
|
one[10],
|
||||||
|
one[11],
|
||||||
|
one[12],
|
||||||
|
one[13],
|
||||||
|
one[14],
|
||||||
|
one[15],
|
||||||
|
one[16],
|
||||||
|
one[17],
|
||||||
|
one[18],
|
||||||
|
one[19],
|
||||||
|
one[20],
|
||||||
|
one[21],
|
||||||
|
one[22],
|
||||||
|
res,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
};
|
||||||
|
var buildanimateDrawablesound = function (obj) {
|
||||||
|
obj = MotaActionFunctions.processanimateDrawablesound(obj || []);
|
||||||
|
var res = null;
|
||||||
|
for (var ii = obj.length - 1, one; (one = obj[ii]); ii--) {
|
||||||
|
res = MotaActionBlocks["animateDrawablesound"].xmlText([
|
||||||
|
one[0],
|
||||||
|
one[1],
|
||||||
|
one[2],
|
||||||
|
res,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
};
|
||||||
|
this.next = MotaActionBlocks["setanimate_s"].xmlText([
|
||||||
|
data.name,
|
||||||
|
data.px,
|
||||||
|
data.py,
|
||||||
|
data.width,
|
||||||
|
data.height,
|
||||||
|
data.allFarme,
|
||||||
|
buildanimateDrawableimage(data.imageList),
|
||||||
|
buildanimateDrawablesound(data.soundList),
|
||||||
|
this.next,
|
||||||
|
]);
|
||||||
|
break;
|
||||||
|
case "clearanimate":
|
||||||
|
this.next = MotaActionBlocks["clearanimate_s"].xmlText([this.next]);
|
||||||
|
break;
|
||||||
|
case "deleteanimate":
|
||||||
|
this.next = MotaActionBlocks["deleteanimate_s"].xmlText([
|
||||||
|
this.name,
|
||||||
|
this.next,
|
||||||
|
]);
|
||||||
|
break;
|
||||||
|
case "playanimate":
|
||||||
|
this.next = MotaActionBlocks["playanimate_s"].xmlText([
|
||||||
|
this.name,
|
||||||
|
this.x,
|
||||||
|
this.y,
|
||||||
|
this.hero,
|
||||||
|
this.scalex,
|
||||||
|
this.scaley,
|
||||||
|
this.next,
|
||||||
|
]);
|
||||||
|
break;
|
||||||
case "animationDrawable":
|
case "animationDrawable":
|
||||||
var buildanimationDrawableimage = function (obj) {
|
var buildanimationDrawableimage = function (obj) {
|
||||||
obj = MotaActionFunctions.processanimationDrawableimage(obj || []);
|
obj = MotaActionFunctions.processanimationDrawableimage(obj || []);
|
||||||
@ -2876,7 +2955,44 @@ MotaActionParser = function () {
|
|||||||
});
|
});
|
||||||
return list;
|
return list;
|
||||||
};
|
};
|
||||||
|
MotaActionFunctions.processanimateDrawableimage = function (overList) {
|
||||||
|
var list = [];
|
||||||
|
overList.forEach(function (one) {
|
||||||
|
list.push([
|
||||||
|
one.image,
|
||||||
|
one.beforefarme,
|
||||||
|
one.globalAlpha,
|
||||||
|
one.cx,
|
||||||
|
one.cy,
|
||||||
|
one.cw,
|
||||||
|
one.ch,
|
||||||
|
one.x,
|
||||||
|
one.y,
|
||||||
|
one.w,
|
||||||
|
one.h,
|
||||||
|
one.angle,
|
||||||
|
one.afterfarme,
|
||||||
|
one.aglobalAlpha,
|
||||||
|
one.acx,
|
||||||
|
one.acy,
|
||||||
|
one.acw,
|
||||||
|
one.ach,
|
||||||
|
one.ax,
|
||||||
|
one.ay,
|
||||||
|
one.aw,
|
||||||
|
one.ah,
|
||||||
|
one.aangle,
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
return list;
|
||||||
|
};
|
||||||
|
MotaActionFunctions.processanimateDrawablesound = function (overList) {
|
||||||
|
var list = [];
|
||||||
|
overList.forEach(function (one) {
|
||||||
|
list.push([one.sound, one.startfarme, one.stopbefore]);
|
||||||
|
});
|
||||||
|
return list;
|
||||||
|
};
|
||||||
MotaActionFunctions.processMultiLoc = function (EvalString_0, EvalString_1) {
|
MotaActionFunctions.processMultiLoc = function (EvalString_0, EvalString_1) {
|
||||||
var floorstr = "";
|
var floorstr = "";
|
||||||
if (EvalString_0 && EvalString_1) {
|
if (EvalString_0 && EvalString_1) {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"viewportLoc": [0, 0],
|
"viewportLoc": [0, 0],
|
||||||
"editorLastFloorId": "yiqu2",
|
"editorLastFloorId": "jiedao",
|
||||||
"lastUsed": [
|
"lastUsed": [
|
||||||
{
|
{
|
||||||
"idnum": 210,
|
"idnum": 210,
|
||||||
|
@ -57,7 +57,6 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
|||||||
"dl.webp",
|
"dl.webp",
|
||||||
"dlr.webp",
|
"dlr.webp",
|
||||||
"dr.webp",
|
"dr.webp",
|
||||||
"dragon.webp",
|
|
||||||
"eve_010102.webp",
|
"eve_010102.webp",
|
||||||
"eve_010203.webp",
|
"eve_010203.webp",
|
||||||
"eve_010304.webp",
|
"eve_010304.webp",
|
||||||
@ -406,14 +405,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
|||||||
],
|
],
|
||||||
"font": "pala"
|
"font": "pala"
|
||||||
},
|
},
|
||||||
"splitImages": [
|
"splitImages": null
|
||||||
{
|
|
||||||
"name": "dragon.webp",
|
|
||||||
"width": 384,
|
|
||||||
"height": 96,
|
|
||||||
"prefix": "dragon_"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"firstData": {
|
"firstData": {
|
||||||
"title": "秽翼的尤斯蒂娅",
|
"title": "秽翼的尤斯蒂娅",
|
||||||
|
@ -35,7 +35,7 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
|
|||||||
"whiteHornSlime": {"name":"尖角怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
"whiteHornSlime": {"name":"尖角怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
||||||
"redSwordsman": {"name":"剑王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
"redSwordsman": {"name":"剑王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
||||||
"poisonZombie": {"name":"绿兽人","hp":100,"atk":120,"def":0,"money":13,"exp":0,"point":0,"special":[12]},
|
"poisonZombie": {"name":"绿兽人","hp":100,"atk":120,"def":0,"money":13,"exp":0,"point":0,"special":[12]},
|
||||||
"octopus": {"name":"血影","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"bigImage":"dragon_1.webp"},
|
"octopus": {"name":"血影","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"bigImage":null},
|
||||||
"princessEnemy": {"name":"假公主","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
"princessEnemy": {"name":"假公主","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
||||||
"angel": {"name":"天使","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
"angel": {"name":"天使","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
||||||
"elemental": {"name":"元素生物","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
"elemental": {"name":"元素生物","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
||||||
@ -52,7 +52,7 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
|
|||||||
"magicMaster": {"name":"黑暗大法师","hp":100,"atk":120,"def":0,"money":12,"exp":0,"point":0,"special":11,"value":0.3333333333333333,"add":true,"notBomb":true},
|
"magicMaster": {"name":"黑暗大法师","hp":100,"atk":120,"def":0,"money":12,"exp":0,"point":0,"special":11,"value":0.3333333333333333,"add":true,"notBomb":true},
|
||||||
"devilWarrior": {"name":"魔神武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
"devilWarrior": {"name":"魔神武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
||||||
"fairyEnemy": {"name":"仙子","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
"fairyEnemy": {"name":"仙子","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
||||||
"dragon": {"name":"魔龙","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"bigImage":"dragon_0.webp"},
|
"dragon": {"name":"魔龙","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"bigImage":null},
|
||||||
"skeletonKnight": {"name":"骷髅武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
"skeletonKnight": {"name":"骷髅武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
||||||
"skeletonPresbyter": {"name":"骷髅巫师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
"skeletonPresbyter": {"name":"骷髅巫师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
||||||
"ironRock": {"name":"铁面人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
"ironRock": {"name":"铁面人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
||||||
|
@ -1071,7 +1071,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
|||||||
// TODO:增加自己的一些读档处理
|
// TODO:增加自己的一些读档处理
|
||||||
core.ui.statusBar.clearItemInfo()
|
core.ui.statusBar.clearItemInfo()
|
||||||
core.ui.statusBar.update();
|
core.ui.statusBar.update();
|
||||||
|
core.plugin.playing.clear()
|
||||||
// 切换到对应的楼层
|
// 切换到对应的楼层
|
||||||
core.changeFloor(data.floorId, null, data.hero.loc, 0, function () {
|
core.changeFloor(data.floorId, null, data.hero.loc, 0, function () {
|
||||||
// TODO:可以在这里设置读档后播放BGM
|
// TODO:可以在这里设置读档后播放BGM
|
||||||
@ -1387,68 +1387,68 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
"moveOneStep": function (callback) {
|
"moveOneStep": function (callback) {
|
||||||
// 勇士每走一步后执行的操作。callback为行走完毕后的回调
|
// 勇士每走一步后执行的操作。callback为行走完毕后的回调
|
||||||
// 这个函数执行在“刚走完”的时候,即还没有检查该点的事件和领域伤害等。
|
// 这个函数执行在“刚走完”的时候,即还没有检查该点的事件和领域伤害等。
|
||||||
// 请注意:瞬间移动不会执行该函数。如果要控制能否瞬间移动有三种方法:
|
// 请注意:瞬间移动不会执行该函数。如果要控制能否瞬间移动有三种方法:
|
||||||
// 1. 将全塔属性中的cannotMoveDirectly这个开关勾上,即可在全塔中全程禁止使用瞬移。
|
// 1. 将全塔属性中的cannotMoveDirectly这个开关勾上,即可在全塔中全程禁止使用瞬移。
|
||||||
// 2, 将楼层属性中的cannotMoveDirectly这个开关勾上,即禁止在该层楼使用瞬移。
|
// 2, 将楼层属性中的cannotMoveDirectly这个开关勾上,即禁止在该层楼使用瞬移。
|
||||||
// 3. 将flag:cannotMoveDirectly置为true,即可使用flag控制在某段剧情范围内禁止瞬移。
|
// 3. 将flag:cannotMoveDirectly置为true,即可使用flag控制在某段剧情范围内禁止瞬移。
|
||||||
|
|
||||||
// 增加步数
|
// 增加步数
|
||||||
core.status.hero.steps++;
|
core.status.hero.steps++;
|
||||||
// 更新跟随者状态,并绘制
|
// 更新跟随者状态,并绘制
|
||||||
core.updateFollowers();
|
core.updateFollowers();
|
||||||
core.drawHero();
|
core.drawHero();
|
||||||
// 检查中毒状态的扣血和死亡
|
// 检查中毒状态的扣血和死亡
|
||||||
if (core.hasFlag('poison')) {
|
if (core.hasFlag('poison')) {
|
||||||
core.status.hero.statistics.poisonDamage += core.values.poisonDamage;
|
core.status.hero.statistics.poisonDamage += core.values.poisonDamage;
|
||||||
core.status.hero.hp -= core.values.poisonDamage;
|
core.status.hero.hp -= core.values.poisonDamage;
|
||||||
if (core.status.hero.hp <= 0) {
|
if (core.status.hero.hp <= 0) {
|
||||||
core.status.hero.hp = 0;
|
core.status.hero.hp = 0;
|
||||||
core.updateStatusBar(false, true);
|
core.updateStatusBar(false, true);
|
||||||
core.events.lose();
|
core.events.lose();
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
core.updateStatusBar(false, true);
|
core.updateStatusBar(false, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 从v2.7开始,每一步行走不会再刷新状态栏。
|
// 从v2.7开始,每一步行走不会再刷新状态栏。
|
||||||
// 如果有特殊要求(如每走一步都加buff之类),可手动取消注释下面这一句:
|
// 如果有特殊要求(如每走一步都加buff之类),可手动取消注释下面这一句:
|
||||||
// core.updateStatusBar(true, true);
|
// core.updateStatusBar(true, true);
|
||||||
|
|
||||||
// 检查自动事件
|
// 检查自动事件
|
||||||
core.checkAutoEvents();
|
core.checkAutoEvents();
|
||||||
|
|
||||||
// ------ 检查目标点事件 ------ //
|
// ------ 检查目标点事件 ------ //
|
||||||
// 无事件的道具(如血瓶)需要优先于阻激夹域判定
|
// 无事件的道具(如血瓶)需要优先于阻激夹域判定
|
||||||
var nowx = core.getHeroLoc('x'),
|
var nowx = core.getHeroLoc('x'),
|
||||||
nowy = core.getHeroLoc('y');
|
nowy = core.getHeroLoc('y');
|
||||||
var block = core.getBlock(nowx, nowy);
|
var block = core.getBlock(nowx, nowy);
|
||||||
var hasTrigger = false;
|
var hasTrigger = false;
|
||||||
if (block != null && block.event.trigger == 'getItem' &&
|
if (block != null && block.event.trigger == 'getItem' &&
|
||||||
!core.floors[core.status.floorId].afterGetItem[nowx + "," + nowy]) {
|
!core.floors[core.status.floorId].afterGetItem[nowx + "," + nowy]) {
|
||||||
hasTrigger = true;
|
hasTrigger = true;
|
||||||
core.trigger(nowx, nowy, callback);
|
core.trigger(nowx, nowy, callback);
|
||||||
}
|
}
|
||||||
// 执行目标点的阻激夹域事件
|
// 执行目标点的阻激夹域事件
|
||||||
core.checkBlock();
|
core.checkBlock();
|
||||||
|
|
||||||
// 执行目标点的script和事件
|
// 执行目标点的script和事件
|
||||||
if (!hasTrigger)
|
if (!hasTrigger)
|
||||||
core.trigger(nowx, nowy, callback);
|
core.trigger(nowx, nowy, callback);
|
||||||
|
|
||||||
// 检查该点是否是滑冰
|
// 检查该点是否是滑冰
|
||||||
if (core.onSki()) {
|
if (core.onSki()) {
|
||||||
// 延迟到事件最后执行,因为这之前可能有阻激夹域动画
|
// 延迟到事件最后执行,因为这之前可能有阻激夹域动画
|
||||||
core.insertAction({ "type": "moveAction" }, null, null, null, true);
|
core.insertAction({ "type": "moveAction" }, null, null, null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------ 检查目标点事件 END ------ //
|
// ------ 检查目标点事件 END ------ //
|
||||||
|
|
||||||
// 如需强行终止行走可以在这里条件判定:
|
// 如需强行终止行走可以在这里条件判定:
|
||||||
// core.stopAutomaticRoute();
|
// core.stopAutomaticRoute();
|
||||||
},
|
},
|
||||||
"moveDirectly": function (x, y, ignoreSteps) {
|
"moveDirectly": function (x, y, ignoreSteps) {
|
||||||
// 瞬间移动;x,y为要瞬间移动的点;ignoreSteps为减少的步数,可能之前已经被计算过
|
// 瞬间移动;x,y为要瞬间移动的点;ignoreSteps为减少的步数,可能之前已经被计算过
|
||||||
// 返回true代表成功瞬移,false代表没有成功瞬移
|
// 返回true代表成功瞬移,false代表没有成功瞬移
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 19 KiB |
3322
project/plugins.js
3322
project/plugins.js
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user