Compare commits
	
		
			2 Commits
		
	
	
		
			5574e905a7
			...
			6e2b99b4f8
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 6e2b99b4f8 | |||
| 9e7f168956 | 
| @ -871,6 +871,10 @@ action | ||||
|     |   disableShop_s | ||||
|     |   follow_s | ||||
|     |   unfollow_s | ||||
|     |   setanimate_s | ||||
|     |   deleteanimate_s | ||||
|     |   playanimate_s | ||||
|     |   clearanimate_s | ||||
|     |   animate_s | ||||
|     |   animate_1_s | ||||
|     |   stopAnimate_s | ||||
| @ -2221,6 +2225,136 @@ var code = '{"type": "vibrate", "direction": "'+Vibrate_List_0+'", "time": '+Int | ||||
| 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 | ||||
|     :   '显示动画' EvalString '位置' 'x' PosString? 'y' PosString? '相对窗口坐标' Bool '不等待执行完毕' Bool Newline | ||||
|      | ||||
|  | ||||
| @ -703,6 +703,85 @@ MotaActionParser = function () { | ||||
|           this.next, | ||||
|         ]); | ||||
|         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": | ||||
|         var buildanimationDrawableimage = function (obj) { | ||||
|           obj = MotaActionFunctions.processanimationDrawableimage(obj || []); | ||||
| @ -2876,7 +2955,44 @@ MotaActionParser = function () { | ||||
|     }); | ||||
|     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) { | ||||
|     var floorstr = ""; | ||||
|     if (EvalString_0 && EvalString_1) { | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| { | ||||
|   "viewportLoc": [0, 0], | ||||
|   "editorLastFloorId": "yiqu2", | ||||
|   "editorLastFloorId": "jiedao", | ||||
|   "lastUsed": [ | ||||
|     { | ||||
|       "idnum": 210, | ||||
|  | ||||
| @ -57,7 +57,6 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = | ||||
| 			"dl.webp", | ||||
| 			"dlr.webp", | ||||
| 			"dr.webp", | ||||
| 			"dragon.webp", | ||||
| 			"eve_010102.webp", | ||||
| 			"eve_010203.webp", | ||||
| 			"eve_010304.webp", | ||||
| @ -406,14 +405,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = | ||||
| 			], | ||||
| 			"font": "pala" | ||||
| 		}, | ||||
| 		"splitImages": [ | ||||
| 			{ | ||||
| 				"name": "dragon.webp", | ||||
| 				"width": 384, | ||||
| 				"height": 96, | ||||
| 				"prefix": "dragon_" | ||||
| 			} | ||||
| 		] | ||||
| 		"splitImages": null | ||||
| 	}, | ||||
| 	"firstData": { | ||||
| 		"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}, | ||||
| 	"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]}, | ||||
| 	"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}, | ||||
| 	"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}, | ||||
| @ -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}, | ||||
| 	"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}, | ||||
| 	"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}, | ||||
| 	"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}, | ||||
|  | ||||
| @ -1071,7 +1071,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = | ||||
| 	// TODO:增加自己的一些读档处理
 | ||||
| 	core.ui.statusBar.clearItemInfo() | ||||
| 	core.ui.statusBar.update(); | ||||
| 
 | ||||
| 	core.plugin.playing.clear() | ||||
| 	// 切换到对应的楼层
 | ||||
| 	core.changeFloor(data.floorId, null, data.hero.loc, 0, function () { | ||||
| 		// TODO:可以在这里设置读档后播放BGM
 | ||||
| @ -1387,68 +1387,68 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = | ||||
| 			}; | ||||
| 		}, | ||||
|         "moveOneStep": function (callback) { | ||||
| 			// 勇士每走一步后执行的操作。callback为行走完毕后的回调
 | ||||
| 			// 这个函数执行在“刚走完”的时候,即还没有检查该点的事件和领域伤害等。
 | ||||
| 			// 请注意:瞬间移动不会执行该函数。如果要控制能否瞬间移动有三种方法:
 | ||||
| 			// 1. 将全塔属性中的cannotMoveDirectly这个开关勾上,即可在全塔中全程禁止使用瞬移。
 | ||||
| 			// 2, 将楼层属性中的cannotMoveDirectly这个开关勾上,即禁止在该层楼使用瞬移。
 | ||||
| 			// 3. 将flag:cannotMoveDirectly置为true,即可使用flag控制在某段剧情范围内禁止瞬移。
 | ||||
| 	// 勇士每走一步后执行的操作。callback为行走完毕后的回调
 | ||||
| 	// 这个函数执行在“刚走完”的时候,即还没有检查该点的事件和领域伤害等。
 | ||||
| 	// 请注意:瞬间移动不会执行该函数。如果要控制能否瞬间移动有三种方法:
 | ||||
| 	// 1. 将全塔属性中的cannotMoveDirectly这个开关勾上,即可在全塔中全程禁止使用瞬移。
 | ||||
| 	// 2, 将楼层属性中的cannotMoveDirectly这个开关勾上,即禁止在该层楼使用瞬移。
 | ||||
| 	// 3. 将flag:cannotMoveDirectly置为true,即可使用flag控制在某段剧情范围内禁止瞬移。
 | ||||
| 
 | ||||
| 			// 增加步数
 | ||||
| 			core.status.hero.steps++; | ||||
| 			// 更新跟随者状态,并绘制
 | ||||
| 			core.updateFollowers(); | ||||
| 			core.drawHero(); | ||||
| 			// 检查中毒状态的扣血和死亡
 | ||||
| 			if (core.hasFlag('poison')) { | ||||
| 				core.status.hero.statistics.poisonDamage += core.values.poisonDamage; | ||||
| 				core.status.hero.hp -= core.values.poisonDamage; | ||||
| 				if (core.status.hero.hp <= 0) { | ||||
| 					core.status.hero.hp = 0; | ||||
| 					core.updateStatusBar(false, true); | ||||
| 					core.events.lose(); | ||||
| 					return; | ||||
| 				} else { | ||||
| 					core.updateStatusBar(false, true); | ||||
| 				} | ||||
| 			} | ||||
| 	// 增加步数
 | ||||
| 	core.status.hero.steps++; | ||||
| 	// 更新跟随者状态,并绘制
 | ||||
| 	core.updateFollowers(); | ||||
| 	core.drawHero(); | ||||
| 	// 检查中毒状态的扣血和死亡
 | ||||
| 	if (core.hasFlag('poison')) { | ||||
| 		core.status.hero.statistics.poisonDamage += core.values.poisonDamage; | ||||
| 		core.status.hero.hp -= core.values.poisonDamage; | ||||
| 		if (core.status.hero.hp <= 0) { | ||||
| 			core.status.hero.hp = 0; | ||||
| 			core.updateStatusBar(false, true); | ||||
| 			core.events.lose(); | ||||
| 			return; | ||||
| 		} else { | ||||
| 			core.updateStatusBar(false, true); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 			// 从v2.7开始,每一步行走不会再刷新状态栏。
 | ||||
| 			// 如果有特殊要求(如每走一步都加buff之类),可手动取消注释下面这一句:
 | ||||
| 			// core.updateStatusBar(true, true);
 | ||||
| 	// 从v2.7开始,每一步行走不会再刷新状态栏。
 | ||||
| 	// 如果有特殊要求(如每走一步都加buff之类),可手动取消注释下面这一句:
 | ||||
| 	// core.updateStatusBar(true, true);
 | ||||
| 
 | ||||
| 			// 检查自动事件
 | ||||
| 			core.checkAutoEvents(); | ||||
| 	// 检查自动事件
 | ||||
| 	core.checkAutoEvents(); | ||||
| 
 | ||||
| 			// ------ 检查目标点事件 ------ //
 | ||||
| 			// 无事件的道具(如血瓶)需要优先于阻激夹域判定
 | ||||
| 			var nowx = core.getHeroLoc('x'), | ||||
| 				nowy = core.getHeroLoc('y'); | ||||
| 			var block = core.getBlock(nowx, nowy); | ||||
| 			var hasTrigger = false; | ||||
| 			if (block != null && block.event.trigger == 'getItem' && | ||||
| 				!core.floors[core.status.floorId].afterGetItem[nowx + "," + nowy]) { | ||||
| 				hasTrigger = true; | ||||
| 				core.trigger(nowx, nowy, callback); | ||||
| 			} | ||||
| 			// 执行目标点的阻激夹域事件
 | ||||
| 			core.checkBlock(); | ||||
| 	// ------ 检查目标点事件 ------ //
 | ||||
| 	// 无事件的道具(如血瓶)需要优先于阻激夹域判定
 | ||||
| 	var nowx = core.getHeroLoc('x'), | ||||
| 		nowy = core.getHeroLoc('y'); | ||||
| 	var block = core.getBlock(nowx, nowy); | ||||
| 	var hasTrigger = false; | ||||
| 	if (block != null && block.event.trigger == 'getItem' && | ||||
| 		!core.floors[core.status.floorId].afterGetItem[nowx + "," + nowy]) { | ||||
| 		hasTrigger = true; | ||||
| 		core.trigger(nowx, nowy, callback); | ||||
| 	} | ||||
| 	// 执行目标点的阻激夹域事件
 | ||||
| 	core.checkBlock(); | ||||
| 
 | ||||
| 			// 执行目标点的script和事件
 | ||||
| 			if (!hasTrigger) | ||||
| 				core.trigger(nowx, nowy, callback); | ||||
| 	// 执行目标点的script和事件
 | ||||
| 	if (!hasTrigger) | ||||
| 		core.trigger(nowx, nowy, callback); | ||||
| 
 | ||||
| 			// 检查该点是否是滑冰
 | ||||
| 			if (core.onSki()) { | ||||
| 				// 延迟到事件最后执行,因为这之前可能有阻激夹域动画
 | ||||
| 				core.insertAction({ "type": "moveAction" }, null, null, null, true); | ||||
| 			} | ||||
| 	// 检查该点是否是滑冰
 | ||||
| 	if (core.onSki()) { | ||||
| 		// 延迟到事件最后执行,因为这之前可能有阻激夹域动画
 | ||||
| 		core.insertAction({ "type": "moveAction" }, null, null, null, true); | ||||
| 	} | ||||
| 
 | ||||
| 			// ------ 检查目标点事件 END ------ //
 | ||||
| 	// ------ 检查目标点事件 END ------ //
 | ||||
| 
 | ||||
| 			// 如需强行终止行走可以在这里条件判定:
 | ||||
| 			// core.stopAutomaticRoute();
 | ||||
| 		}, | ||||
| 	// 如需强行终止行走可以在这里条件判定:
 | ||||
| 	// core.stopAutomaticRoute();
 | ||||
| }, | ||||
|         "moveDirectly": function (x, y, ignoreSteps) { | ||||
| 	// 瞬间移动;x,y为要瞬间移动的点;ignoreSteps为减少的步数,可能之前已经被计算过
 | ||||
| 	// 返回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