Compare commits
2 Commits
7a02b3a56f
...
5cb5eb63eb
Author | SHA1 | Date | |
---|---|---|---|
5cb5eb63eb | |||
c585876d90 |
@ -873,11 +873,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
|
||||||
|
| animateResize_s
|
||||||
|
| pauseAnimate_s
|
||||||
|
| remuseAnimate_s
|
||||||
| animate_1_s
|
| animate_1_s
|
||||||
| stopAnimate_s
|
| stopAnimate_s
|
||||||
| vibrate_s
|
| vibrate_s
|
||||||
@ -964,7 +963,6 @@ action
|
|||||||
| addPop_s
|
| addPop_s
|
||||||
| setq_s
|
| setq_s
|
||||||
| setcgs_s
|
| setcgs_s
|
||||||
| animationDrawable_s
|
|
||||||
| over_s
|
| over_s
|
||||||
| overlist_s
|
| overlist_s
|
||||||
| cgtextList_s
|
| cgtextList_s
|
||||||
@ -2272,138 +2270,6 @@ 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.imageColor
|
|
||||||
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 : ["zone"]
|
|
||||||
|
|
||||||
colour : this.imageColor
|
|
||||||
|
|
||||||
var code = '{"type": "deleteanimate", "name": "'+EvalString_0+'"},\n';
|
|
||||||
return code;
|
|
||||||
*/;
|
|
||||||
|
|
||||||
playanimate_s
|
|
||||||
: '播放 帧动画/特效' '名称' EvalString '像素x' IntString? 'y' IntString? '跟随勇士' Bool 'x方向缩放' EvalString? 'y方向缩放'EvalString? Newline
|
|
||||||
|
|
||||||
/* playanimate_s
|
|
||||||
tooltip : playanimate:播放帧动画,选择跟随勇士后x、y将失效改为勇士中心坐标
|
|
||||||
helpUrl : /_docs/#/instruction
|
|
||||||
default : ["zone","","",false,"",""]
|
|
||||||
|
|
||||||
colour : this.imageColor
|
|
||||||
IntString_0 = IntString_0 ? (', "x": '+IntString_0+'') : '';
|
|
||||||
IntString_1 = IntString_1 ? (', "y": '+IntString_1+'') : '';
|
|
||||||
if(EvalString_1&&!/^(0|([1-9][0-9]*))(\.[\d]+)?$/.test(EvalString_1))throw new Error("此项仅能填写小数、整数或不填");
|
|
||||||
if(EvalString_2&&!/^(0|([1-9][0-9]*))(\.[\d]+)?$/.test(EvalString_2))throw new Error("此项仅能填写小数、整数或不填");
|
|
||||||
EvalString_1 = EvalString_1 ? (', "scalex": '+EvalString_1+'') : '';
|
|
||||||
EvalString_2 = EvalString_2 ? (', "scaley": '+EvalString_2+'') : '';
|
|
||||||
var code = '{"type": "playanimate", "name": "'+EvalString_0+'"'+IntString_0+IntString_1+',"hero":'+Bool_0+EvalString_1+EvalString_2+'},\n';
|
|
||||||
return code;
|
|
||||||
*/;
|
|
||||||
|
|
||||||
clearanimate_s
|
|
||||||
: '清空正在播放的帧动画/特效'
|
|
||||||
|
|
||||||
/* clearanimate_s
|
|
||||||
tooltip : clearanimate:清空正在播放的帧动画
|
|
||||||
helpUrl : /_docs/#/instruction
|
|
||||||
|
|
||||||
colour : this.imageColor
|
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
@ -2439,16 +2305,71 @@ var code = '{"type": "animate", "name": "'+EvalString_0+'", "loc": "hero"'+Bool_
|
|||||||
return code;
|
return code;
|
||||||
*/;
|
*/;
|
||||||
|
|
||||||
|
animateResize_s
|
||||||
|
: '显示动画(60Fps)' EvalString '编号'PosString? '中心像素' 'x' PosString? 'y' PosString?'以勇士为中心' Bool'倒放' Bool'循环'Bool'不等待执行完毕' Bool Newline
|
||||||
|
|
||||||
|
|
||||||
|
/* animateResize_s
|
||||||
|
tooltip : animateResize:显示动画并选择是否以勇士为中心及倒放(以勇士为中心时,中心像素坐标无效)
|
||||||
|
helpUrl : /_docs/#/instruction
|
||||||
|
default : ["zone","","","",false,false,false,false]
|
||||||
|
allAnimates : ['EvalString_0']
|
||||||
|
previewBlock : true
|
||||||
|
material : ["./project/animates/", "EvalString_0"]
|
||||||
|
colour : this.soundColor
|
||||||
|
|
||||||
|
PosString_0 = PosString_0?', "id":'+PosString_0:'';
|
||||||
|
Bool_0 = Bool_0?', "hero": true':'';
|
||||||
|
if(!Bool_0){
|
||||||
|
if(PosString_1===""||PosString_2==="")throw new Error("中心像素坐标或以勇士为中心必须填写一项");
|
||||||
|
|
||||||
|
Bool_0=',"centerX":'+PosString_1+', "centerY":'+PosString_2
|
||||||
|
}
|
||||||
|
if(Bool_2&&!Bool_3 )throw new Error("循环必须与不等待执行完毕同时开启,否则将陷入死循环")
|
||||||
|
Bool_1 = Bool_1?', "reverse": true':'';
|
||||||
|
Bool_2 = Bool_2?', "loop": true':'';
|
||||||
|
Bool_3 = Bool_3?', "async": true':'';
|
||||||
|
var code = '{"type": "animateResize", "name": "'+EvalString_0+'"'+PosString_0+Bool_0+Bool_1+Bool_2+Bool_3+'},\n';
|
||||||
|
return code;
|
||||||
|
*/;
|
||||||
|
|
||||||
|
pauseAnimate_s
|
||||||
|
: '暂停动画编号'PosString?'(不填写编号为暂停所有)' Newline
|
||||||
|
|
||||||
|
/* pauseAnimate_s
|
||||||
|
tooltip : pauseAnimate:暂停动画(不填写编号为暂停所有)
|
||||||
|
helpUrl : /_docs/#/instruction
|
||||||
|
default : ['']
|
||||||
|
colour : this.soundColor
|
||||||
|
PosString_0 = PosString_0?', "id":'+PosString_0:'';
|
||||||
|
var code = '{"type": "pauseAnimate"'+PosString_0+'},\n';
|
||||||
|
return code;
|
||||||
|
*/;
|
||||||
|
|
||||||
|
remuseAnimate_s
|
||||||
|
: '继续动画编号'PosString?'(不填写编号为继续所有)' Newline
|
||||||
|
|
||||||
|
/* remuseAnimate_s
|
||||||
|
tooltip : remuseAnimate:继续动画(不填写编号为继续所有)
|
||||||
|
helpUrl : /_docs/#/instruction
|
||||||
|
default : ['']
|
||||||
|
colour : this.soundColor
|
||||||
|
PosString_0 = PosString_0?', "id":'+PosString_0:'';
|
||||||
|
var code = '{"type": "remuseAnimate"'+PosString_0+'},\n';
|
||||||
|
return code;
|
||||||
|
*/;
|
||||||
|
|
||||||
stopAnimate_s
|
stopAnimate_s
|
||||||
: '停止所有动画' '执行动画回调' Bool Newline
|
: '停止动画编号'PosString?'(不填写编号为继续所有)' '执行动画回调' Bool Newline
|
||||||
|
|
||||||
/* stopAnimate_s
|
/* stopAnimate_s
|
||||||
tooltip : stopAnimate:停止所有动画
|
tooltip : stopAnimate:停止动画(不填写编号为继续所有)
|
||||||
helpUrl : /_docs/#/instruction
|
helpUrl : /_docs/#/instruction
|
||||||
default : [false]
|
default : ["",false]
|
||||||
colour : this.soundColor
|
colour : this.soundColor
|
||||||
|
PosString_0 = PosString_0?', "id":'+PosString_0:'';
|
||||||
Bool_0 = Bool_0?', "doCallback": true':'';
|
Bool_0 = Bool_0?', "doCallback": true':'';
|
||||||
var code = '{"type": "stopAnimate"'+Bool_0+'},\n';
|
var code = '{"type": "stopAnimate"'+PosString_0+Bool_0+'},\n';
|
||||||
return code;
|
return code;
|
||||||
*/;
|
*/;
|
||||||
|
|
||||||
@ -2720,95 +2641,6 @@ return code;
|
|||||||
*/;
|
*/;
|
||||||
|
|
||||||
|
|
||||||
animationDrawable_s
|
|
||||||
: '帧动画' '总显示帧数' IntString '底色' ColorString? Colour '底色不透明度' IntString? BGNL?Newline
|
|
||||||
'图片序列(同一帧后面覆盖先前的,默认起始帧为0,结束帧为最后一帧)'BGNL?Newline
|
|
||||||
'(剪裁区域不填写为全图,绘制区域不填写为全画面)'BGNL?Newline
|
|
||||||
'(不透明度100为不透明,默认为不透明,结束不透明度默认与开始透明度相同)'BGNL?Newline
|
|
||||||
animationDrawableimage+? Newline
|
|
||||||
'音频序列(到达对应帧进行播放)'BGNL?Newline
|
|
||||||
animationDrawablesound+? Newline
|
|
||||||
|
|
||||||
|
|
||||||
/* animationDrawable_s
|
|
||||||
tooltip : animationDrawable:帧动画图片叠加
|
|
||||||
helpUrl : /_docs/#/instruction
|
|
||||||
default : [30,"0, 0, 0",'rgb(0, 0, 0)',""]
|
|
||||||
allImages : ['EvalString_0']
|
|
||||||
colour : this.imageColor
|
|
||||||
if (IntString_1&&(IntString_1 < 0||IntString_1>100)) throw new Error('透明度范围为0-100,0为透明,100为不透明,不填默认为不透明')
|
|
||||||
|
|
||||||
ColorString_0 = ColorString_0 ? (', "color": ['+ColorString_0+']') : '';
|
|
||||||
IntString_1 = IntString_1 ? (', "globalAlpha": '+IntString_1+'') : '';
|
|
||||||
var imageList=animationDrawableimage_0?',"imageList": [\n'+animationDrawableimage_0.slice(0,-1)+'\n]':''
|
|
||||||
var soundList=animationDrawablesound_0?',"soundList": [\n'+animationDrawablesound_0.slice(0,-1)+'\n]':''
|
|
||||||
var code = '{"type": "animationDrawable", "allFarme": '+IntString_0+ColorString_0+IntString_1+imageList+soundList+'},\n';
|
|
||||||
return code;
|
|
||||||
*/;
|
|
||||||
|
|
||||||
animationDrawableList
|
|
||||||
: animationDrawableimage
|
|
||||||
| animationDrawablesound
|
|
||||||
| animationDrawabletextEmpty;
|
|
||||||
|
|
||||||
animationDrawableimage
|
|
||||||
: '图片' EvalString? '起始帧' IntString? '起始不透明度' IntString? BGNL? Newline
|
|
||||||
'剪裁坐标cx' IntString? 'cy' IntString? '宽' IntString? '高' IntString? '绘制坐标x'IntString? 'y' IntString? '宽' IntString? '高' IntString? BGNL? Newline
|
|
||||||
'结束帧' IntString? '结束不透明度' IntString? '剪裁坐标cx' IntString? 'cy' IntString? '宽' IntString? '高' IntString? '绘制坐标x'IntString? 'y' IntString? '宽' IntString? '高' IntString? Newline
|
|
||||||
/* animationDrawableimage
|
|
||||||
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_11&&(IntString_11 < 0||IntString_11>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 ? (', "afterfarme": '+IntString_10+'') : '';
|
|
||||||
IntString_11 = IntString_11 ? (', "aglobalAlpha": '+IntString_11+'') : '';
|
|
||||||
IntString_12 = IntString_12 ? (', "acx": '+IntString_12+'') : '';
|
|
||||||
IntString_13 = IntString_13 ? (', "acy": '+IntString_13+'') : '';
|
|
||||||
IntString_14 = IntString_14 ? (', "acw": '+IntString_14+'') : '';
|
|
||||||
IntString_15 = IntString_15 ? (', "ach": '+IntString_15+'') : '';
|
|
||||||
IntString_16 = IntString_16 ? (', "ax": '+IntString_16+'') : '';
|
|
||||||
IntString_17 = IntString_17 ? (', "ay": '+IntString_17+'') : '';
|
|
||||||
IntString_18 = IntString_18 ? (', "aw": '+IntString_18+'') : '';
|
|
||||||
IntString_19 = IntString_19 ? (', "ah": '+IntString_19+'') : '';
|
|
||||||
|
|
||||||
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+'},'
|
|
||||||
*/;
|
|
||||||
|
|
||||||
animationDrawablesound
|
|
||||||
: '音效' EvalString? '起始帧' IntString '是否停止其他音效'Bool? Newline
|
|
||||||
|
|
||||||
/* animationDrawablesound
|
|
||||||
tooltip : 帧动画配音
|
|
||||||
helpUrl : /_docs/#/instruction
|
|
||||||
default : ["",0,false]
|
|
||||||
colour : this.subColor
|
|
||||||
allSounds : ['EvalString_0']
|
|
||||||
|
|
||||||
return '{ "sound":"'+EvalString_0+'","startfarme":'+IntString_0+',"stopbefore":'+Bool_0+'},'
|
|
||||||
*/;
|
|
||||||
|
|
||||||
animationDrawabletextEmpty
|
|
||||||
: Newline
|
|
||||||
|
|
||||||
/* animationDrawabletextEmpty
|
|
||||||
var code = [];
|
|
||||||
return code;
|
|
||||||
*/;
|
|
||||||
|
|
||||||
setCurtain_0_s
|
setCurtain_0_s
|
||||||
: '更改画面色调' ColorString Colour '动画时间' IntString? BGNL? Newline '渐变方式' MoveMode_List '持续到下一个本事件' Bool '不等待执行完毕' Bool Newline
|
: '更改画面色调' ColorString Colour '动画时间' IntString? BGNL? Newline '渐变方式' MoveMode_List '持续到下一个本事件' Bool '不等待执行完毕' Bool Newline
|
||||||
|
|
||||||
|
@ -729,140 +729,6 @@ 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([
|
|
||||||
data.name,
|
|
||||||
this.next,
|
|
||||||
]);
|
|
||||||
break;
|
|
||||||
case "playanimate":
|
|
||||||
this.next = MotaActionBlocks["playanimate_s"].xmlText([
|
|
||||||
data.name,
|
|
||||||
data.x,
|
|
||||||
data.y,
|
|
||||||
data.hero,
|
|
||||||
data.scalex,
|
|
||||||
data.scaley,
|
|
||||||
this.next,
|
|
||||||
]);
|
|
||||||
break;
|
|
||||||
case "animationDrawable":
|
|
||||||
var buildanimationDrawableimage = function (obj) {
|
|
||||||
obj = MotaActionFunctions.processanimationDrawableimage(obj || []);
|
|
||||||
var res = null;
|
|
||||||
for (var ii = obj.length - 1, one; (one = obj[ii]); ii--) {
|
|
||||||
res = MotaActionBlocks["animationDrawableimage"].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],
|
|
||||||
res,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
return res;
|
|
||||||
};
|
|
||||||
var buildanimationDrawablesound = function (obj) {
|
|
||||||
obj = MotaActionFunctions.processanimationDrawablesound(obj || []);
|
|
||||||
var res = null;
|
|
||||||
for (var ii = obj.length - 1, one; (one = obj[ii]); ii--) {
|
|
||||||
res = MotaActionBlocks["animationDrawablesound"].xmlText([
|
|
||||||
one[0],
|
|
||||||
one[1],
|
|
||||||
one[2],
|
|
||||||
res,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
return res;
|
|
||||||
};
|
|
||||||
this.next = MotaActionBlocks["animationDrawable_s"].xmlText([
|
|
||||||
data.allFarme,
|
|
||||||
data.color,
|
|
||||||
"rgba(" + data.color + ")",
|
|
||||||
data.globalAlpha,
|
|
||||||
buildanimationDrawableimage(data.imageList),
|
|
||||||
buildanimationDrawablesound(data.soundList),
|
|
||||||
this.next,
|
|
||||||
]);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "tip":
|
case "tip":
|
||||||
this.next = MotaActionBlocks["tip_s"].xmlText([
|
this.next = MotaActionBlocks["tip_s"].xmlText([
|
||||||
@ -1235,8 +1101,34 @@ MotaActionParser = function () {
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case "animateResize": // 停止所有动画
|
||||||
|
this.next = MotaActionBlocks["animateResize_s"].xmlText([
|
||||||
|
data.name,
|
||||||
|
data.id||"",
|
||||||
|
data.centerX||"",
|
||||||
|
data.centerY||"",
|
||||||
|
data.hero||false,
|
||||||
|
data.reverse||false,
|
||||||
|
data.loop||false,
|
||||||
|
data.async || false,
|
||||||
|
this.next,
|
||||||
|
]);
|
||||||
|
break;
|
||||||
|
case "pauseAnimate": // 暂停所有动画
|
||||||
|
this.next = MotaActionBlocks["pauseAnimate_s"].xmlText([
|
||||||
|
data.id||"",
|
||||||
|
this.next,
|
||||||
|
]);
|
||||||
|
break;
|
||||||
|
case "remuseAnimate": // 继续所有动画
|
||||||
|
this.next = MotaActionBlocks["remuseAnimate_s"].xmlText([
|
||||||
|
data.id||"",
|
||||||
|
this.next,
|
||||||
|
]);
|
||||||
|
break;
|
||||||
case "stopAnimate": // 停止所有动画
|
case "stopAnimate": // 停止所有动画
|
||||||
this.next = MotaActionBlocks["stopAnimate_s"].xmlText([
|
this.next = MotaActionBlocks["stopAnimate_s"].xmlText([
|
||||||
|
data.id||"",
|
||||||
data.doCallback || false,
|
data.doCallback || false,
|
||||||
this.next,
|
this.next,
|
||||||
]);
|
]);
|
||||||
@ -2938,80 +2830,7 @@ MotaActionParser = function () {
|
|||||||
});
|
});
|
||||||
return list;
|
return list;
|
||||||
};
|
};
|
||||||
MotaActionFunctions.processanimationDrawableimage = 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.afterfarme,
|
|
||||||
one.aglobalAlpha,
|
|
||||||
one.acx,
|
|
||||||
one.acy,
|
|
||||||
one.acw,
|
|
||||||
one.ach,
|
|
||||||
one.ax,
|
|
||||||
one.ay,
|
|
||||||
one.aw,
|
|
||||||
one.ah,
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
return list;
|
|
||||||
};
|
|
||||||
MotaActionFunctions.processanimationDrawablesound = function (overList) {
|
|
||||||
var list = [];
|
|
||||||
overList.forEach(function (one) {
|
|
||||||
list.push([one.sound, one.startfarme, one.stopbefore]);
|
|
||||||
});
|
|
||||||
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) {
|
||||||
|
@ -354,6 +354,11 @@ editor_blockly = function () {
|
|||||||
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] }]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'animateResize_s': // 显示动画
|
||||||
|
if (obj.name && obj.centerX&&obj.centerY) {
|
||||||
|
editor.uievent.previewUI([{ type: "fillRect", x:obj.centerX-5, y: obj.centerY-5, width:10, height: 10, style:"#FF0000"}]);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 'setCurtain_0_s': // 更改色调
|
case 'setCurtain_0_s': // 更改色调
|
||||||
if (obj.color) {
|
if (obj.color) {
|
||||||
editor.uievent.previewUI([{ type: "fillRect", x: 0, y: 0, width: core.__PIXELS__, height: core.__PIXELS__, style: obj.color }]);
|
editor.uievent.previewUI([{ type: "fillRect", x: 0, y: 0, width: core.__PIXELS__, height: core.__PIXELS__, style: obj.color }]);
|
||||||
|
@ -1809,7 +1809,7 @@ events.prototype._action_animate = function (data, x, y, prefix) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
events.prototype._action_stopAnimate = function (data, x, y, prefix) {
|
events.prototype._action_stopAnimate = function (data, x, y, prefix) {
|
||||||
core.stopAnimate(null, data.doCallback);
|
core.stopAnimate(data.id, data.doCallback);
|
||||||
core.doAction();
|
core.doAction();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
File diff suppressed because one or more lines are too long
1
project/animates/jianji2.animate
Normal file
1
project/animates/jianji2.animate
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -911,6 +911,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
|||||||
"animates": [
|
"animates": [
|
||||||
"hand",
|
"hand",
|
||||||
"jianji",
|
"jianji",
|
||||||
|
"jianji2",
|
||||||
"sword",
|
"sword",
|
||||||
"thunder",
|
"thunder",
|
||||||
"yongchang",
|
"yongchang",
|
||||||
@ -1939,10 +1940,6 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
|||||||
"type": "function",
|
"type": "function",
|
||||||
"function": "function(){\ncore.getItem('book', 1);\ncore.getItem('fly', 1);\ncore.getItem('postman', 1);\ncore.getItem('I369', 1);\n}"
|
"function": "function(){\ncore.getItem('book', 1);\ncore.getItem('fly', 1);\ncore.getItem('postman', 1);\ncore.getItem('I369', 1);\n}"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "insert",
|
|
||||||
"name": "战斗动画特效注册"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "insert",
|
"type": "insert",
|
||||||
"name": "强制横屏"
|
"name": "强制横屏"
|
||||||
|
@ -7737,648 +7737,6 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 =
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"战斗动画特效注册": [
|
|
||||||
{
|
|
||||||
"type": "setanimate",
|
|
||||||
"name": "sword",
|
|
||||||
"px": 48,
|
|
||||||
"py": 48,
|
|
||||||
"width": 192,
|
|
||||||
"height": 192,
|
|
||||||
"allFarme": 15,
|
|
||||||
"imageList": [
|
|
||||||
{
|
|
||||||
"image": "jianji.webp",
|
|
||||||
"beforefarme": 0,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 192,
|
|
||||||
"cy": 2112,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 3,
|
|
||||||
"acx": 192,
|
|
||||||
"acy": 2112,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "jianji.webp",
|
|
||||||
"beforefarme": 4,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 384,
|
|
||||||
"cy": 2112,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 6,
|
|
||||||
"acx": 384,
|
|
||||||
"acy": 2112,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "jianji.webp",
|
|
||||||
"beforefarme": 7,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 576,
|
|
||||||
"cy": 2112,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 9,
|
|
||||||
"acx": 576,
|
|
||||||
"acy": 2112,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "jianji.webp",
|
|
||||||
"beforefarme": 10,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 768,
|
|
||||||
"cy": 2112,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 12,
|
|
||||||
"acx": 768,
|
|
||||||
"acy": 2112,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "jianji.webp",
|
|
||||||
"beforefarme": 13,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 0,
|
|
||||||
"cy": 2304,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 15,
|
|
||||||
"acx": 0,
|
|
||||||
"acy": 2304,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"soundList": [
|
|
||||||
{
|
|
||||||
"sound": "",
|
|
||||||
"startfarme": 0,
|
|
||||||
"stopbefore": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "setanimate",
|
|
||||||
"name": "Fire01",
|
|
||||||
"px": 48,
|
|
||||||
"py": 48,
|
|
||||||
"width": 192,
|
|
||||||
"height": 192,
|
|
||||||
"allFarme": 15,
|
|
||||||
"imageList": [
|
|
||||||
{
|
|
||||||
"image": "015-Fire01.webp",
|
|
||||||
"beforefarme": 0,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 192,
|
|
||||||
"cy": 0,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 3,
|
|
||||||
"acx": 192,
|
|
||||||
"acy": 0,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "015-Fire01.webp",
|
|
||||||
"beforefarme": 4,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 384,
|
|
||||||
"cy": 0,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 6,
|
|
||||||
"acx": 384,
|
|
||||||
"acy": 0,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "015-Fire01.webp",
|
|
||||||
"beforefarme": 7,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 576,
|
|
||||||
"cy": 0,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 9,
|
|
||||||
"acx": 576,
|
|
||||||
"acy": 0,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "015-Fire01.webp",
|
|
||||||
"beforefarme": 10,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 768,
|
|
||||||
"cy": 0,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 12,
|
|
||||||
"acx": 768,
|
|
||||||
"acy": 0,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "015-Fire01.webp",
|
|
||||||
"beforefarme": 13,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 960,
|
|
||||||
"cy": 0,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 15,
|
|
||||||
"acx": 960,
|
|
||||||
"acy": 0,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"soundList": [
|
|
||||||
{
|
|
||||||
"sound": "",
|
|
||||||
"startfarme": 0,
|
|
||||||
"stopbefore": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "setanimate",
|
|
||||||
"name": "Fire02",
|
|
||||||
"px": 48,
|
|
||||||
"py": 48,
|
|
||||||
"width": 192,
|
|
||||||
"height": 192,
|
|
||||||
"allFarme": 15,
|
|
||||||
"imageList": [
|
|
||||||
{
|
|
||||||
"image": "015-Fire01.webp",
|
|
||||||
"beforefarme": 0,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 192,
|
|
||||||
"cy": 192,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 3,
|
|
||||||
"acx": 192,
|
|
||||||
"acy": 192,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "015-Fire01.webp",
|
|
||||||
"beforefarme": 4,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 384,
|
|
||||||
"cy": 192,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 6,
|
|
||||||
"acx": 384,
|
|
||||||
"acy": 192,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "015-Fire01.webp",
|
|
||||||
"beforefarme": 7,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 576,
|
|
||||||
"cy": 192,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 9,
|
|
||||||
"acx": 576,
|
|
||||||
"acy": 192,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "015-Fire01.webp",
|
|
||||||
"beforefarme": 10,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 768,
|
|
||||||
"cy": 192,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 12,
|
|
||||||
"acx": 768,
|
|
||||||
"acy": 192,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "015-Fire01.webp",
|
|
||||||
"beforefarme": 13,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 960,
|
|
||||||
"cy": 192,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 15,
|
|
||||||
"acx": 960,
|
|
||||||
"acy": 192,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"soundList": [
|
|
||||||
{
|
|
||||||
"sound": "",
|
|
||||||
"startfarme": 0,
|
|
||||||
"stopbefore": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "setanimate",
|
|
||||||
"name": "005-Attack03",
|
|
||||||
"px": 48,
|
|
||||||
"py": 48,
|
|
||||||
"width": 192,
|
|
||||||
"height": 192,
|
|
||||||
"allFarme": 15,
|
|
||||||
"imageList": [
|
|
||||||
{
|
|
||||||
"image": "005-Attack03.webp",
|
|
||||||
"beforefarme": 0,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 0,
|
|
||||||
"cy": 0,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 3,
|
|
||||||
"acx": 0,
|
|
||||||
"acy": 0,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "005-Attack03.webp",
|
|
||||||
"beforefarme": 4,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 192,
|
|
||||||
"cy": 0,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 6,
|
|
||||||
"acx": 192,
|
|
||||||
"acy": 0,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "005-Attack03.webp",
|
|
||||||
"beforefarme": 7,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 384,
|
|
||||||
"cy": 0,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 9,
|
|
||||||
"acx": 384,
|
|
||||||
"acy": 0,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "005-Attack03.webp",
|
|
||||||
"beforefarme": 10,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 576,
|
|
||||||
"cy": 0,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 12,
|
|
||||||
"acx": 576,
|
|
||||||
"acy": 0,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "005-Attack03.webp",
|
|
||||||
"beforefarme": 13,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 768,
|
|
||||||
"cy": 0,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 15,
|
|
||||||
"acx": 768,
|
|
||||||
"acy": 0,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"soundList": [
|
|
||||||
{
|
|
||||||
"sound": "",
|
|
||||||
"startfarme": 0,
|
|
||||||
"stopbefore": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "setanimate",
|
|
||||||
"name": "012-Heal01",
|
|
||||||
"px": 48,
|
|
||||||
"py": 48,
|
|
||||||
"width": 192,
|
|
||||||
"height": 192,
|
|
||||||
"allFarme": 15,
|
|
||||||
"imageList": [
|
|
||||||
{
|
|
||||||
"image": "012-Heal01.webp",
|
|
||||||
"beforefarme": 0,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 0,
|
|
||||||
"cy": 0,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 3,
|
|
||||||
"acx": 0,
|
|
||||||
"acy": 0,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "012-Heal01.webp",
|
|
||||||
"beforefarme": 4,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 192,
|
|
||||||
"cy": 0,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 6,
|
|
||||||
"acx": 192,
|
|
||||||
"acy": 0,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "012-Heal01.webp",
|
|
||||||
"beforefarme": 7,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 384,
|
|
||||||
"cy": 0,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 9,
|
|
||||||
"acx": 384,
|
|
||||||
"acy": 0,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "012-Heal01.webp",
|
|
||||||
"beforefarme": 10,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 576,
|
|
||||||
"cy": 0,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 12,
|
|
||||||
"acx": 576,
|
|
||||||
"acy": 0,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"image": "012-Heal01.webp",
|
|
||||||
"beforefarme": 13,
|
|
||||||
"globalAlpha": 100,
|
|
||||||
"cx": 768,
|
|
||||||
"cy": 0,
|
|
||||||
"cw": 192,
|
|
||||||
"ch": 192,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 96,
|
|
||||||
"h": 96,
|
|
||||||
"afterfarme": 15,
|
|
||||||
"acx": 768,
|
|
||||||
"acy": 0,
|
|
||||||
"acw": 192,
|
|
||||||
"ach": 192,
|
|
||||||
"ax": 0,
|
|
||||||
"ay": 0,
|
|
||||||
"aw": 96,
|
|
||||||
"ah": 96
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"soundList": [
|
|
||||||
{
|
|
||||||
"sound": "",
|
|
||||||
"startfarme": 0,
|
|
||||||
"stopbefore": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"chapter06": null,
|
"chapter06": null,
|
||||||
"chapter07": null,
|
"chapter07": null,
|
||||||
"chapter000001": [
|
"chapter000001": [
|
||||||
|
@ -285,8 +285,8 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
|||||||
},
|
},
|
||||||
"afterBattle": async function (enemyId, x, y) {
|
"afterBattle": async function (enemyId, x, y) {
|
||||||
// 战斗结束后触发的事件
|
// 战斗结束后触发的事件
|
||||||
var enemy = core.getEnemyInfo(enemyId, hero, x, y)
|
var enemy = core.material.enemys[enemyId]
|
||||||
var special = enemy.special;
|
var special = core.getEnemyValue(enemy, "special", x, y);
|
||||||
// 播放战斗音效和动画
|
// 播放战斗音效和动画
|
||||||
// 默认播放的动画;你也可以使用
|
// 默认播放的动画;你也可以使用
|
||||||
var animate = 'hand'; // 默认动画
|
var animate = 'hand'; // 默认动画
|
||||||
@ -1077,9 +1077,9 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
|||||||
} else {
|
} else {
|
||||||
hero_damage += per_damage + per_mdamage
|
hero_damage += per_damage + per_mdamage
|
||||||
}
|
}
|
||||||
let animate = core.plugin.enemyanimate[enemy.id] ?? "sword"
|
let animate = core.plugin.enemyanimate[enemy.id] ?? "jianji2"
|
||||||
//这里可通过if更改默认的怪物攻击特效
|
//这里可通过if更改默认的怪物攻击特效
|
||||||
hero_animate.push(animate) //勇士身上绘制sword动画
|
hero_animate.push(animate) //勇士身上绘制jianji2动画
|
||||||
if (heroinfo.mhp + (hero_diff.mhp ?? 0) - hero_damage >= 0) {
|
if (heroinfo.mhp + (hero_diff.mhp ?? 0) - hero_damage >= 0) {
|
||||||
hero_diff.mhp = (hero_diff.mhp ?? 0) - hero_damage
|
hero_diff.mhp = (hero_diff.mhp ?? 0) - hero_damage
|
||||||
hero_damage = 0
|
hero_damage = 0
|
||||||
@ -1102,7 +1102,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
|||||||
let mon_damage = 0
|
let mon_damage = 0
|
||||||
let hero_damage = 0
|
let hero_damage = 0
|
||||||
//这里写生效装备的技能效果,同时对双方属性的修改计入diff(不要在此直接修改heroinfo和enemyinfo)
|
//这里写生效装备的技能效果,同时对双方属性的修改计入diff(不要在此直接修改heroinfo和enemyinfo)
|
||||||
let animate = core.plugin.equipanimate[v.id] ?? "sword"
|
let animate = core.plugin.equipanimate[v.id] ?? "jianji2"
|
||||||
//这里可通过if更改默认的道具特效
|
//这里可通过if更改默认的道具特效
|
||||||
enemy_animate.push(animate) //勇士身上绘制动画
|
enemy_animate.push(animate) //勇士身上绘制动画
|
||||||
|
|
||||||
@ -1144,7 +1144,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
|||||||
let per_mdamage = Math.max(Math.floor(heroinfo.matk * (100 - enemyinfo.mdef) / 100), 0)
|
let per_mdamage = Math.max(Math.floor(heroinfo.matk * (100 - enemyinfo.mdef) / 100), 0)
|
||||||
mon_damage = per_damage + per_mdamage
|
mon_damage = per_damage + per_mdamage
|
||||||
//这里记录伤害触发后的属性变化和动画,同时计入diff(不要在此直接修改heroinfo和enemyinfo)
|
//这里记录伤害触发后的属性变化和动画,同时计入diff(不要在此直接修改heroinfo和enemyinfo)
|
||||||
let animate = core.plugin.heroanimate[equip0] ?? "sword"
|
let animate = core.plugin.heroanimate[equip0] ?? "jianji2"
|
||||||
//这里可通过if更改默认的武器攻击特效
|
//这里可通过if更改默认的武器攻击特效
|
||||||
enemy_animate.push(animate)
|
enemy_animate.push(animate)
|
||||||
|
|
||||||
@ -1170,7 +1170,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
|||||||
} else {
|
} else {
|
||||||
hero_damage += per_damage + per_mdamage
|
hero_damage += per_damage + per_mdamage
|
||||||
}
|
}
|
||||||
let animate = core.plugin.enemyanimate[enemy.id] ?? "sword"
|
let animate = core.plugin.enemyanimate[enemy.id] ?? "jianji2"
|
||||||
//这里可通过if更改默认的怪物攻击特效
|
//这里可通过if更改默认的怪物攻击特效
|
||||||
hero_animate.push(animate) //勇士身上绘制sword动画
|
hero_animate.push(animate) //勇士身上绘制sword动画
|
||||||
if (heroinfo.mhp + (hero_diff.mhp ?? 0) - hero_damage >= 0) {
|
if (heroinfo.mhp + (hero_diff.mhp ?? 0) - hero_damage >= 0) {
|
||||||
@ -1194,7 +1194,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
|||||||
let mon_damage = 0
|
let mon_damage = 0
|
||||||
let hero_damage = 0
|
let hero_damage = 0
|
||||||
//这里写生效装备的技能效果,同时对双方属性的修改计入diff(不要在此直接修改heroinfo和enemyinfo)
|
//这里写生效装备的技能效果,同时对双方属性的修改计入diff(不要在此直接修改heroinfo和enemyinfo)
|
||||||
let animate = core.plugin.equipanimate[v.id] ?? "sword"
|
let animate = core.plugin.equipanimate[v.id] ?? "jianji2"
|
||||||
//这里可通过if更改默认的道具特效
|
//这里可通过if更改默认的道具特效
|
||||||
enemy_animate.push(animate) //怪物身上绘制动画
|
enemy_animate.push(animate) //怪物身上绘制动画
|
||||||
|
|
||||||
@ -1653,7 +1653,6 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
|||||||
}
|
}
|
||||||
core.drawbackground(core.ui.cgText.image, core.ui.cgText.memory)
|
core.drawbackground(core.ui.cgText.image, core.ui.cgText.memory)
|
||||||
}
|
}
|
||||||
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
|
||||||
|
@ -29,6 +29,19 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
core.removeMouse(data.div);
|
core.removeMouse(data.div);
|
||||||
core.doAction();
|
core.doAction();
|
||||||
});
|
});
|
||||||
|
core.registerEvent("animationDrawable", function (data) {
|
||||||
|
if (!main.replayChecking && !core.isReplaying()) {
|
||||||
|
core.animationDrawable(
|
||||||
|
data.allFarme,
|
||||||
|
data.color,
|
||||||
|
data.globalAlpha,
|
||||||
|
data.imageList,
|
||||||
|
data.soundList
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
core.doAction();
|
||||||
|
}
|
||||||
|
});
|
||||||
core.registerEvent("drawbackground", function (data) {
|
core.registerEvent("drawbackground", function (data) {
|
||||||
if (!main.replayChecking && !core.isReplaying()) {
|
if (!main.replayChecking && !core.isReplaying()) {
|
||||||
core.drawbackground(data.image, data.memory);
|
core.drawbackground(data.image, data.memory);
|
||||||
@ -38,6 +51,19 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
}
|
}
|
||||||
core.doAction();
|
core.doAction();
|
||||||
});
|
});
|
||||||
|
core.registerEvent("animateResize", function (data, x, y, prefix) {
|
||||||
|
core.events._action_animateResize(data, x, y, prefix)
|
||||||
|
|
||||||
|
});
|
||||||
|
core.registerEvent("pauseAnimate", function (data, x, y, prefix) {
|
||||||
|
core.maps.pauseAnimate(data.id)
|
||||||
|
core.doAction();
|
||||||
|
|
||||||
|
});
|
||||||
|
core.registerEvent("remuseAnimate", function (data, x, y, prefix) {
|
||||||
|
core.maps.remuseAnimate(data.id)
|
||||||
|
core.doAction();
|
||||||
|
});
|
||||||
core.registerEvent("clearbackground", function (data) {
|
core.registerEvent("clearbackground", function (data) {
|
||||||
if (!main.replayChecking && !core.isReplaying()) {
|
if (!main.replayChecking && !core.isReplaying()) {
|
||||||
core.clearbackground();
|
core.clearbackground();
|
||||||
@ -154,62 +180,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
core.doAction();
|
core.doAction();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
core.registerEvent("animationDrawable", function (data) {
|
|
||||||
if (!main.replayChecking && !core.isReplaying()) {
|
|
||||||
core.animationDrawable(
|
|
||||||
data.allFarme,
|
|
||||||
data.color,
|
|
||||||
data.globalAlpha,
|
|
||||||
data.imageList,
|
|
||||||
data.soundList
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
core.doAction();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
core.registerEvent("setanimate", function (data) {
|
|
||||||
data.px = data.px ?? 0;
|
|
||||||
data.py = data.py ?? 0;
|
|
||||||
core.setanimate(
|
|
||||||
data.name,
|
|
||||||
data.px,
|
|
||||||
data.py,
|
|
||||||
data.width,
|
|
||||||
data.height,
|
|
||||||
data.allFarme,
|
|
||||||
data.imageList,
|
|
||||||
data.soundList
|
|
||||||
);
|
|
||||||
core.doAction();
|
|
||||||
});
|
|
||||||
core.registerEvent("clearanimate", function (data) {
|
|
||||||
core.plugin.playing.clear();
|
|
||||||
|
|
||||||
core.doAction();
|
|
||||||
});
|
|
||||||
core.registerEvent("deleteanimate", function (data) {
|
|
||||||
core.deleteanimate(data.name);
|
|
||||||
core.doAction();
|
|
||||||
});
|
|
||||||
core.registerEvent("playanimate", function (data) {
|
|
||||||
if (!main.replayChecking && !core.isReplaying()) {
|
|
||||||
data.x = data.x ?? 0;
|
|
||||||
data.y = data.y ?? 0;
|
|
||||||
data.scalex = data.scalex ?? 1;
|
|
||||||
data.scaley = data.scaley ?? 1;
|
|
||||||
core.playanimate(
|
|
||||||
data.name,
|
|
||||||
data.x,
|
|
||||||
data.y,
|
|
||||||
data.hero,
|
|
||||||
data.scalex,
|
|
||||||
data.scaley
|
|
||||||
);
|
|
||||||
core.doAction();
|
|
||||||
} else {
|
|
||||||
core.doAction();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
core.registerEvent("cgtextList", function (data) {
|
core.registerEvent("cgtextList", function (data) {
|
||||||
core.ui.cgText.textList = data.textList;
|
core.ui.cgText.textList = data.textList;
|
||||||
core.doAction();
|
core.doAction();
|
||||||
@ -12427,6 +12398,9 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
MotaActionBlocks["vibrate_s"].xmlText(),
|
MotaActionBlocks["vibrate_s"].xmlText(),
|
||||||
MotaActionBlocks["animate_s"].xmlText(),
|
MotaActionBlocks["animate_s"].xmlText(),
|
||||||
MotaActionBlocks["animate_1_s"].xmlText(),
|
MotaActionBlocks["animate_1_s"].xmlText(),
|
||||||
|
MotaActionBlocks["animateResize_s"].xmlText(),
|
||||||
|
MotaActionBlocks["pauseAnimate_s"].xmlText(),
|
||||||
|
MotaActionBlocks["remuseAnimate_s"].xmlText(),
|
||||||
MotaActionBlocks["stopAnimate_s"].xmlText(),
|
MotaActionBlocks["stopAnimate_s"].xmlText(),
|
||||||
MotaActionBlocks["setViewport_s"].xmlText(),
|
MotaActionBlocks["setViewport_s"].xmlText(),
|
||||||
MotaActionBlocks["setViewport_1_s"].xmlText(),
|
MotaActionBlocks["setViewport_1_s"].xmlText(),
|
||||||
@ -12447,10 +12421,6 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
音像处理: [
|
音像处理: [
|
||||||
MotaActionBlocks["animationDrawable_s"].xmlText(),
|
MotaActionBlocks["animationDrawable_s"].xmlText(),
|
||||||
MotaActionBlocks["introAndLoop_s"].xmlText(),
|
MotaActionBlocks["introAndLoop_s"].xmlText(),
|
||||||
MotaActionBlocks["setanimate_s"].xmlText(),
|
|
||||||
MotaActionBlocks["deleteanimate_s"].xmlText(),
|
|
||||||
MotaActionBlocks["playanimate_s"].xmlText(),
|
|
||||||
MotaActionBlocks["clearanimate_s"].xmlText(),
|
|
||||||
MotaActionBlocks["showImage_s"].xmlText(),
|
MotaActionBlocks["showImage_s"].xmlText(),
|
||||||
MotaActionBlocks["showImage_1_s"].xmlText(),
|
MotaActionBlocks["showImage_1_s"].xmlText(),
|
||||||
MotaActionBlocks["hideImage_s"].xmlText(),
|
MotaActionBlocks["hideImage_s"].xmlText(),
|
||||||
@ -19627,10 +19597,16 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
|
|
||||||
let farme = 0;
|
let farme = 0;
|
||||||
let now = 0;
|
let now = 0;
|
||||||
|
let start = 0
|
||||||
core.registerAnimationFrame(
|
core.registerAnimationFrame(
|
||||||
|
|
||||||
"animationDrawable",
|
"animationDrawable",
|
||||||
true,
|
true,
|
||||||
function (timestamp) {
|
function (timestamp) {
|
||||||
|
let frametime = timestamp - now
|
||||||
|
now = timestamp;
|
||||||
|
if (!imageList || imageList.length == 0) return;
|
||||||
|
if (start === 0) start = now
|
||||||
if (timestamp - now > 1000 / 60) {
|
if (timestamp - now > 1000 / 60) {
|
||||||
now = timestamp;
|
now = timestamp;
|
||||||
if (core.domStyle.isVertical) {
|
if (core.domStyle.isVertical) {
|
||||||
@ -19643,7 +19619,8 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
over.width = 2028;
|
over.width = 2028;
|
||||||
over.height = 1248;
|
over.height = 1248;
|
||||||
}
|
}
|
||||||
|
farme = Math.floor((now - start) / (1000 / 60))
|
||||||
|
core.clearMap(ctx)
|
||||||
ctx.globalAlpha = (globalAlpha ?? 100) / 100;
|
ctx.globalAlpha = (globalAlpha ?? 100) / 100;
|
||||||
core.fillRect(ctx, 0, 0, 2028, 1248, color);
|
core.fillRect(ctx, 0, 0, 2028, 1248, color);
|
||||||
|
|
||||||
@ -19717,7 +19694,6 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
core.playSound(one.sound);
|
core.playSound(one.sound);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
farme++;
|
|
||||||
ctx.globalAlpha = 1;
|
ctx.globalAlpha = 1;
|
||||||
ctx.restore();
|
ctx.restore();
|
||||||
|
|
||||||
@ -20944,208 +20920,6 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
core.towebp(image);
|
core.towebp(image);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
},
|
|
||||||
"帧动画特效(游戏界面)": function () {
|
|
||||||
// 在此增加新插件
|
|
||||||
const animate2 = document.createElement("canvas"); //画布设置
|
|
||||||
animate2.style.zIndex = 91;
|
|
||||||
animate2.id = "animate2";
|
|
||||||
animate2.classList.add("gameCanvas", "anti-aliasing");
|
|
||||||
animate2.style.display = "block";
|
|
||||||
animate2.width = 416;
|
|
||||||
animate2.height = 416;
|
|
||||||
animate2.style.width = core.__PIXELS__ * core.domStyle.scale + "px";
|
|
||||||
animate2.style.height = core.__PIXELS__ * core.domStyle.scale + "px";
|
|
||||||
main.dom.animate2 = animate2;
|
|
||||||
const anctx = animate2.getContext("2d");
|
|
||||||
|
|
||||||
main.dom.gameDraw.appendChild(animate2);
|
|
||||||
|
|
||||||
core.plugin.playing = new Set();
|
|
||||||
|
|
||||||
this.setanimate = function (
|
|
||||||
name,
|
|
||||||
px,
|
|
||||||
py,
|
|
||||||
width,
|
|
||||||
height,
|
|
||||||
allFarme,
|
|
||||||
imageList,
|
|
||||||
soundList
|
|
||||||
) {
|
|
||||||
const data = {
|
|
||||||
px: px,
|
|
||||||
py: py,
|
|
||||||
width: width,
|
|
||||||
height: height,
|
|
||||||
allFarme: allFarme,
|
|
||||||
imageList: imageList,
|
|
||||||
soundList: soundList,
|
|
||||||
};
|
|
||||||
core.setFlag("animate_" + name, data);
|
|
||||||
};
|
|
||||||
this.deleteanimate = function (name) {
|
|
||||||
core.setFlag("animate_" + name);
|
|
||||||
};
|
|
||||||
let thistime = 0;
|
|
||||||
this.playanimate = function (name, x, y, hero, scalex, scaley, callback) {
|
|
||||||
const data = {
|
|
||||||
name: name,
|
|
||||||
x: x,
|
|
||||||
y: y,
|
|
||||||
hero: hero,
|
|
||||||
scalex: scalex,
|
|
||||||
scaley: scaley,
|
|
||||||
farme: 0,
|
|
||||||
callback,
|
|
||||||
};
|
|
||||||
|
|
||||||
core.plugin.playing.add(data);
|
|
||||||
};
|
|
||||||
core.registerAnimationFrame("animateonmap", true, function (timestamp) {
|
|
||||||
if (timestamp - thistime > 1000 / 30) {
|
|
||||||
thistime = timestamp;
|
|
||||||
core.clearMap(anctx);
|
|
||||||
core.plugin.playing.forEach((one) => {
|
|
||||||
const data = flags["animate_" + one.name];
|
|
||||||
if (!data) {
|
|
||||||
core.plugin.playing.delete(one);
|
|
||||||
} else {
|
|
||||||
data.imageList.forEach(function (image) {
|
|
||||||
if (
|
|
||||||
one.farme >= (image.beforefarme ?? 0) &&
|
|
||||||
one.farme <= (image.afterfarme ?? data.allFarme)
|
|
||||||
) {
|
|
||||||
const img = core.material.images.images?.[image.image];
|
|
||||||
if (img) {
|
|
||||||
const gla = image.globalAlpha ?? 100;
|
|
||||||
const agla = image.aglobalAlpha ?? gla,
|
|
||||||
beforefarme = image.beforefarme ?? 0;
|
|
||||||
const afterfarme = image.afterfarme ?? data.allFarme;
|
|
||||||
|
|
||||||
anctx.globalAlpha =
|
|
||||||
(gla +
|
|
||||||
((agla - gla) * (one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1)) /
|
|
||||||
100;
|
|
||||||
|
|
||||||
const cx =
|
|
||||||
(image.cx ?? 0) +
|
|
||||||
(((image.acx ?? 0) - (image.cx ?? 0)) *
|
|
||||||
(one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1),
|
|
||||||
cy =
|
|
||||||
(image.cy ?? 0) +
|
|
||||||
(((image.acy ?? 0) - (image.cy ?? 0)) *
|
|
||||||
(one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1),
|
|
||||||
cw =
|
|
||||||
(image.cw ?? img.width) +
|
|
||||||
(((image.acw ?? img.width) - (image.cw ?? img.width)) *
|
|
||||||
(one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1),
|
|
||||||
ch =
|
|
||||||
(image.ch ?? img.height) +
|
|
||||||
(((image.acw ?? img.height) - (image.cw ?? img.height)) *
|
|
||||||
(one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1),
|
|
||||||
x =
|
|
||||||
(image.x ?? 0) +
|
|
||||||
(((image.ax ?? 0) - (image.x ?? 0)) *
|
|
||||||
(one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1),
|
|
||||||
y =
|
|
||||||
(image.y ?? 0) +
|
|
||||||
(((image.ay ?? 0) - (image.y ?? 0)) *
|
|
||||||
(one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1),
|
|
||||||
w =
|
|
||||||
(image.w ?? one.width) +
|
|
||||||
(((image.aw ?? one.width) - (image.w ?? one.width)) *
|
|
||||||
(one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1),
|
|
||||||
h =
|
|
||||||
(image.h ?? one.height) +
|
|
||||||
(((image.aw ?? one.height) - (image.w ?? one.height)) *
|
|
||||||
(one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1),
|
|
||||||
angle =
|
|
||||||
(Math.PI *
|
|
||||||
((image.image.angle ?? 0) +
|
|
||||||
(((image.aangle ?? 0) - (image.image.angle ?? 0)) *
|
|
||||||
(one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1))) /
|
|
||||||
180;
|
|
||||||
|
|
||||||
if (one.hero) {
|
|
||||||
let sx, sy;
|
|
||||||
if (core.status.heroMoving < 0) {
|
|
||||||
sx = 0;
|
|
||||||
sy = 0;
|
|
||||||
} else {
|
|
||||||
sx =
|
|
||||||
core.utils.scan[core.status.hero.loc.direction].x *
|
|
||||||
4 *
|
|
||||||
core.status.heroMoving;
|
|
||||||
sy =
|
|
||||||
core.utils.scan[core.status.hero.loc.direction].y *
|
|
||||||
4 *
|
|
||||||
core.status.heroMoving;
|
|
||||||
}
|
|
||||||
const herox = core.status.hero.loc.x * 32 + 16 + sx;
|
|
||||||
const heroy = core.status.hero.loc.y * 32 + 16 + sy;
|
|
||||||
core.drawImage(
|
|
||||||
anctx,
|
|
||||||
img,
|
|
||||||
cx,
|
|
||||||
cy,
|
|
||||||
cw,
|
|
||||||
ch,
|
|
||||||
herox + (x - data.px) * one.scalex,
|
|
||||||
heroy + (y - data.py) * one.scaley,
|
|
||||||
w * one.scalex,
|
|
||||||
h * one.scaley,
|
|
||||||
angle
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
core.drawImage(
|
|
||||||
anctx,
|
|
||||||
img,
|
|
||||||
cx,
|
|
||||||
cy,
|
|
||||||
cw,
|
|
||||||
ch,
|
|
||||||
one.x + (x - data.px) * one.scalex,
|
|
||||||
one.y + (y - data.py) * one.scaley,
|
|
||||||
w * one.scalex,
|
|
||||||
h * one.scaley,
|
|
||||||
angle
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
data.soundList.forEach(function (sound) {
|
|
||||||
const lisen =
|
|
||||||
sound.sound &&
|
|
||||||
core.sounds[sound.sound] &&
|
|
||||||
core.musicStatus.soundStatus;
|
|
||||||
if (one.farme == sound.startfarme && lisen) {
|
|
||||||
if (sound.stopbefore) core.stopSound();
|
|
||||||
core.playSound(sound.sound);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
one.farme++;
|
|
||||||
if (one.farme > data.allFarme) {
|
|
||||||
core.plugin.playing.delete(one);
|
|
||||||
if (one.callback) {
|
|
||||||
one.callback();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
"intro&loop": function () {
|
"intro&loop": function () {
|
||||||
// 在此增加新插件
|
// 在此增加新插件
|
||||||
@ -21503,164 +21277,117 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
animateAttack.style.height = core.__PIXELS__ * core.domStyle.scale + "px";
|
animateAttack.style.height = core.__PIXELS__ * core.domStyle.scale + "px";
|
||||||
main.dom.animateAttack = animateAttack;
|
main.dom.animateAttack = animateAttack;
|
||||||
const ctx = animateAttack.getContext("2d");
|
const ctx = animateAttack.getContext("2d");
|
||||||
core.plugin.playingattack = new Set();
|
|
||||||
const ctx6 = main.dom.animate2.getContext("2d");
|
|
||||||
const changeY = -30
|
const changeY = -30
|
||||||
let easy = false;
|
let easy = false;
|
||||||
const { imagelighter } = core.plugin.utils;
|
const { imagelighter } = core.plugin.utils;
|
||||||
|
|
||||||
function playanimate(name, x, y, scalex = 1, scaley = 1) {
|
|
||||||
const data = {
|
|
||||||
name: name,
|
|
||||||
x: x,
|
|
||||||
y: y,
|
|
||||||
scalex: scalex,
|
|
||||||
scaley: scaley,
|
|
||||||
farme: 0,
|
|
||||||
};
|
|
||||||
core.plugin.playingattack.add(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
function playinganimate() {
|
|
||||||
let time = 0;
|
|
||||||
if (core.plugin.playingattack.size === 0) return Promise.resolve();
|
|
||||||
return new Promise((resolve) => {
|
|
||||||
core.registerAnimationFrame("animateenemyattack", true, (timestamp) => {
|
|
||||||
if (timestamp - time > 1000 / 60) {
|
|
||||||
time = timestamp;
|
|
||||||
core.clearMap(ctx6);
|
|
||||||
|
|
||||||
core.plugin.playingattack.forEach((one) => {
|
|
||||||
const data = flags["animate_" + one.name];
|
|
||||||
|
|
||||||
if (!data) {
|
|
||||||
core.plugin.playingattack.delete(one);
|
|
||||||
if (core.plugin.playingattack.size === 0) {
|
|
||||||
core.unregisterAnimationFrame("animateenemyattack");
|
|
||||||
resolve();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
data.imageList.forEach(function (image) {
|
|
||||||
if (
|
|
||||||
one.farme >= (image.beforefarme ?? 0) &&
|
|
||||||
one.farme <= (image.afterfarme ?? data.allFarme)
|
|
||||||
) {
|
|
||||||
const img = core.material.images.images?.[image.image];
|
|
||||||
if (img) {
|
|
||||||
const gla = image.globalAlpha ?? 100;
|
|
||||||
const agla = image.aglobalAlpha ?? gla,
|
|
||||||
beforefarme = image.beforefarme ?? 0;
|
|
||||||
const afterfarme = image.afterfarme ?? data.allFarme;
|
|
||||||
|
|
||||||
ctx6.globalAlpha =
|
|
||||||
(gla +
|
|
||||||
((agla - gla) * (one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1)) /
|
|
||||||
100;
|
|
||||||
|
|
||||||
const cx =
|
|
||||||
(image.cx ?? 0) +
|
|
||||||
(((image.acx ?? 0) - (image.cx ?? 0)) *
|
|
||||||
(one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1),
|
|
||||||
cy =
|
|
||||||
(image.cy ?? 0) +
|
|
||||||
(((image.acy ?? 0) - (image.cy ?? 0)) *
|
|
||||||
(one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1),
|
|
||||||
cw =
|
|
||||||
(image.cw ?? img.width) +
|
|
||||||
(((image.acw ?? img.width) -
|
|
||||||
(image.cw ?? img.width)) *
|
|
||||||
(one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1),
|
|
||||||
ch =
|
|
||||||
(image.ch ?? img.height) +
|
|
||||||
(((image.acw ?? img.height) -
|
|
||||||
(image.cw ?? img.height)) *
|
|
||||||
(one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1),
|
|
||||||
x =
|
|
||||||
(image.x ?? 0) +
|
|
||||||
(((image.ax ?? 0) - (image.x ?? 0)) *
|
|
||||||
(one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1),
|
|
||||||
y =
|
|
||||||
(image.y ?? 0) +
|
|
||||||
(((image.ay ?? 0) - (image.y ?? 0)) *
|
|
||||||
(one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1),
|
|
||||||
w =
|
|
||||||
(image.w ?? one.width) +
|
|
||||||
(((image.aw ?? one.width) - (image.w ?? one.width)) *
|
|
||||||
(one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1),
|
|
||||||
h =
|
|
||||||
(image.h ?? one.height) +
|
|
||||||
(((image.aw ?? one.height) -
|
|
||||||
(image.w ?? one.height)) *
|
|
||||||
(one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1),
|
|
||||||
angle =
|
|
||||||
(Math.PI *
|
|
||||||
((image.image.angle ?? 0) +
|
|
||||||
(((image.aangle ?? 0) -
|
|
||||||
(image.image.angle ?? 0)) *
|
|
||||||
(one.farme - beforefarme)) /
|
|
||||||
(afterfarme - beforefarme || 1))) /
|
|
||||||
180;
|
|
||||||
|
|
||||||
core.drawImage(
|
|
||||||
ctx6,
|
|
||||||
img,
|
|
||||||
cx,
|
|
||||||
cy,
|
|
||||||
cw,
|
|
||||||
ch,
|
|
||||||
one.x + (x - data.px) * one.scalex,
|
|
||||||
one.y + (y - data.py) * one.scaley,
|
|
||||||
w * one.scalex,
|
|
||||||
h * one.scaley,
|
|
||||||
angle
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
data.soundList.forEach(function (sound) {
|
|
||||||
const lisen =
|
|
||||||
sound.sound &&
|
|
||||||
core.sounds[sound.sound] &&
|
|
||||||
core.musicStatus.soundStatus;
|
|
||||||
if (one.farme == sound.startfarme && lisen) {
|
|
||||||
if (sound.stopbefore) core.stopSound();
|
|
||||||
core.playSound(sound.sound);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
one.farme++;
|
|
||||||
ctx6.restore();
|
|
||||||
if (one.farme > data.allFarme) {
|
|
||||||
core.clearMap(ctx6);
|
|
||||||
core.plugin.playingattack.delete(one);
|
|
||||||
if (core.plugin.playingattack.size === 0) {
|
|
||||||
core.unregisterAnimationFrame("animateenemyattack");
|
|
||||||
resolve();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
main.dom.gameDraw.appendChild(animateAttack);
|
main.dom.gameDraw.appendChild(animateAttack);
|
||||||
const { lcm, gcd } = core.plugin.utils;
|
const { lcm, gcd } = core.plugin.utils;
|
||||||
|
const animate2 = document.createElement("canvas"); //画布设置
|
||||||
|
animate2.style.zIndex = 91;
|
||||||
|
animate2.id = "animate2";
|
||||||
|
animate2.classList.add("gameCanvas", "anti-aliasing");
|
||||||
|
animate2.style.display = "block";
|
||||||
|
animate2.width = 416;
|
||||||
|
animate2.height = 416;
|
||||||
|
animate2.style.width = core.__PIXELS__ * core.domStyle.scale + "px";
|
||||||
|
animate2.style.height = core.__PIXELS__ * core.domStyle.scale + "px";
|
||||||
|
main.dom.animate2 = animate2;
|
||||||
|
const anctx = animate2.getContext("2d");
|
||||||
|
|
||||||
function animateonAttack(name, onenemy) {
|
main.dom.gameDraw.appendChild(animate2);
|
||||||
if (onenemy) {
|
let a = []
|
||||||
playanimate(name, 290, 180 + changeY);
|
|
||||||
|
function drawAnimate(name, centerX, centerY) {
|
||||||
|
name = core.getMappedName(name);
|
||||||
|
|
||||||
|
// 正在播放录像:不显示动画
|
||||||
|
if (core.isReplaying() || !core.material.animates[name] || centerX == null || centerY == null) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 开始绘制
|
||||||
|
var animate = core.material.animates[name];
|
||||||
|
animate.se = animate.se || {};
|
||||||
|
if (typeof animate.se == 'string') animate.se = { 1: animate.se };
|
||||||
|
|
||||||
|
var id = setTimeout(null);
|
||||||
|
a.push({
|
||||||
|
"name": name,
|
||||||
|
"id": id,
|
||||||
|
"animate": animate,
|
||||||
|
"centerX": centerX,
|
||||||
|
"centerY": centerY,
|
||||||
|
"start": 0,
|
||||||
|
"pause": false,
|
||||||
|
"pausetime": 0,
|
||||||
|
"index": 0,
|
||||||
|
});
|
||||||
|
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
function animationFrame(callback1) {
|
||||||
|
let time = 0
|
||||||
|
core.registerAnimationFrame("animate2", true, function (timestamp) {
|
||||||
|
let frametime = timestamp - time
|
||||||
|
time = timestamp;
|
||||||
|
if (
|
||||||
|
!a ||
|
||||||
|
a.length == 0
|
||||||
|
)
|
||||||
|
return;
|
||||||
|
core.clearMap(anctx);
|
||||||
|
// 更新帧
|
||||||
|
|
||||||
|
for (var i = 0; i < a.length; i++) {
|
||||||
|
var obj = a[i];
|
||||||
|
if (obj.start === 0) obj.start = time
|
||||||
|
obj.index = Math.floor((time - obj.start) / (1000 / 60))
|
||||||
|
if (obj.index >= obj.animate.frames.length) {
|
||||||
|
(function (callback) {
|
||||||
|
setTimeout(function () {
|
||||||
|
if (callback) callback();
|
||||||
|
});
|
||||||
|
})(obj.callback);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
a = a.filter(function (obj) {
|
||||||
|
return obj.index < obj.animate.frames.length;
|
||||||
|
});
|
||||||
|
|
||||||
|
if (a.length === 0) {
|
||||||
|
core.clearMap(anctx);
|
||||||
|
core.unregisterAnimationFrame("animate2")
|
||||||
|
callback1()
|
||||||
|
}
|
||||||
|
a.forEach(function (obj) {
|
||||||
|
if (obj.hero) {
|
||||||
|
core.maps._drawAnimateFrame(
|
||||||
|
anctx,
|
||||||
|
obj.animate,
|
||||||
|
core.status.heroCenter.px,
|
||||||
|
core.status.heroCenter.py,
|
||||||
|
obj.index
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
playanimate(name, 130, 180 + changeY);
|
core.maps._drawAnimateFrame(
|
||||||
|
anctx,
|
||||||
|
obj.animate,
|
||||||
|
obj.centerX,
|
||||||
|
obj.centerY,
|
||||||
|
obj.index
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
core.animateFrame.animateTime = timestamp;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function animateonAttack(name, onenemy, callback) {
|
||||||
|
if (onenemy) {
|
||||||
|
drawAnimate(name, 290, 180 + changeY);
|
||||||
|
} else {
|
||||||
|
drawAnimate(name, 130, 180 + changeY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -22385,7 +22112,8 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
if (heroInfo.hp < 0) heroInfo.hp = 0;
|
if (heroInfo.hp < 0) heroInfo.hp = 0;
|
||||||
if (enemyInfo.hp < 0) enemyInfo.hp = 0;
|
if (enemyInfo.hp < 0) enemyInfo.hp = 0;
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
await playinganimate(),
|
|
||||||
|
await new Promise((resolve) => animationFrame(resolve)),
|
||||||
new Promise((resolve) => {
|
new Promise((resolve) => {
|
||||||
if (heroInfo.isAttack) {
|
if (heroInfo.isAttack) {
|
||||||
heroInfo.now = 0;
|
heroInfo.now = 0;
|
||||||
@ -23352,19 +23080,19 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
// 在此增加新插件
|
// 在此增加新插件
|
||||||
this.equip = {
|
this.equip = {
|
||||||
//所有回合中的装备及速度
|
//所有回合中的装备及速度
|
||||||
sword1: { id: "sword1", speed: 10 },
|
sword1: { id: "jianji", speed: 10 },
|
||||||
};
|
};
|
||||||
this.heroanimate = {
|
this.heroanimate = {
|
||||||
//勇士武器对应的动画(key为主手武器ID,value为帧动画名)
|
//勇士武器对应的动画(key为主手武器ID,value为帧动画名)
|
||||||
sword1: "sword",
|
sword1: "jianji2",
|
||||||
};
|
};
|
||||||
this.enemyanimate = {
|
this.enemyanimate = {
|
||||||
//怪物对应的动画(key为怪物ID,value为帧动画名)
|
//怪物对应的动画(key为怪物ID,value为帧动画名)
|
||||||
bat: "sword",
|
bat: "jianji2",
|
||||||
};
|
};
|
||||||
this.equipanimate = {
|
this.equipanimate = {
|
||||||
//勇士周期性装备对应的动画(key为装备Id,value为帧动画名)
|
//勇士周期性装备对应的动画(key为装备Id,value为帧动画名)
|
||||||
shield0: "sword",
|
shield0: "jianji2",
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
"勇士法抗乘算叠加": function () {
|
"勇士法抗乘算叠加": function () {
|
||||||
@ -25809,5 +25537,269 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
}
|
}
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|
||||||
|
},
|
||||||
|
"动画": function () {
|
||||||
|
// 在此增加新插件
|
||||||
|
|
||||||
|
control.prototype._animationFrame_animate = function (timestamp) {
|
||||||
|
let frametime = timestamp - core.animateFrame.animateTime
|
||||||
|
core.animateFrame.animateTime = timestamp;
|
||||||
|
if (!core.status.animateObjs || core.status.animateObjs.length == 0) return;
|
||||||
|
|
||||||
|
core.clearMap('animate');
|
||||||
|
// 更新帧
|
||||||
|
for (var i = 0; i < core.status.animateObjs.length; i++) {
|
||||||
|
var obj = core.status.animateObjs[i];
|
||||||
|
if (obj.pause) obj.pausetime += frametime
|
||||||
|
if (obj.start === 0) obj.start = core.animateFrame.animateTime
|
||||||
|
obj.index = Math.floor((core.animateFrame.animateTime - obj.start - obj.pausetime) / (1000 / 60))
|
||||||
|
if (obj.reverse) obj.index = obj.animate.frames.length - obj.index
|
||||||
|
if ((!obj.reverse && obj.index >= obj.animate.frames.length) || (obj.reverse && obj.index <= 0)) {
|
||||||
|
if (obj.loop) {
|
||||||
|
if (obj.reverse) {
|
||||||
|
obj.index = obj.animate.frames.length
|
||||||
|
obj.start = core.animateFrame.animateTime
|
||||||
|
obj.pausetime = 0
|
||||||
|
} else {
|
||||||
|
obj.start = core.animateFrame.animateTime
|
||||||
|
obj.index = 0
|
||||||
|
obj.pausetime = 0
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
(function (callback) {
|
||||||
|
setTimeout(function () {
|
||||||
|
if (callback) callback();
|
||||||
|
});
|
||||||
|
})(obj.callback);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
core.status.animateObjs = core.status.animateObjs.filter(function (obj) {
|
||||||
|
return (!obj.reverse && obj.index < obj.animate.frames.length) || (obj.reverse && obj.index > 0);
|
||||||
|
});
|
||||||
|
let sx, sy;
|
||||||
|
if (core.status.heroMoving < 0) {
|
||||||
|
sx = 0;
|
||||||
|
sy = 0;
|
||||||
|
} else {
|
||||||
|
sx =
|
||||||
|
core.utils.scan[core.status.hero.loc.direction].x *
|
||||||
|
4 *
|
||||||
|
core.status.heroMoving;
|
||||||
|
sy =
|
||||||
|
core.utils.scan[core.status.hero.loc.direction].y *
|
||||||
|
4 *
|
||||||
|
core.status.heroMoving;
|
||||||
|
}
|
||||||
|
const herox = core.status.hero.loc.x * 32 + 16 + sx;
|
||||||
|
const heroy = core.status.hero.loc.y * 32 + 32 + sy - core.material.icons.hero.height / 2;
|
||||||
|
|
||||||
|
core.status.animateObjs.forEach(function (obj) {
|
||||||
|
if (obj.hero) {
|
||||||
|
|
||||||
|
core.maps._drawAnimateFrame('animate', obj.animate, herox, heroy, obj.index);
|
||||||
|
} else {
|
||||||
|
|
||||||
|
core.maps._drawAnimateFrame('animate', obj.animate, obj.centerX, obj.centerY, obj.index);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
core.registerAnimationFrame("animate", true, core.control._animationFrame_animate);
|
||||||
|
////// 绘制动画 //////
|
||||||
|
maps.prototype.drawAnimate = function (name, x, y, alignWindow, callback) {
|
||||||
|
name = core.getMappedName(name);
|
||||||
|
|
||||||
|
// 正在播放录像:不显示动画
|
||||||
|
if (core.isReplaying() || !core.material.animates[name] || x == null || y == null) {
|
||||||
|
if (callback) callback();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 开始绘制
|
||||||
|
var animate = core.material.animates[name],
|
||||||
|
centerX = 32 * x + 16,
|
||||||
|
centerY = 32 * y + 16;
|
||||||
|
if (alignWindow) {
|
||||||
|
centerX += core.bigmap.offsetX;
|
||||||
|
centerY += core.bigmap.offsetY;
|
||||||
|
}
|
||||||
|
animate.se = animate.se || {};
|
||||||
|
if (typeof animate.se == 'string') animate.se = { 1: animate.se };
|
||||||
|
|
||||||
|
var id = setTimeout(null);
|
||||||
|
core.status.animateObjs.push({
|
||||||
|
"name": name,
|
||||||
|
"id": id,
|
||||||
|
"animate": animate,
|
||||||
|
"centerX": centerX,
|
||||||
|
"centerY": centerY,
|
||||||
|
"start": 0,
|
||||||
|
"pause": false,
|
||||||
|
"pausetime": 0,
|
||||||
|
"index": 0,
|
||||||
|
"callback": callback
|
||||||
|
});
|
||||||
|
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
////// 绘制反转动画 //////
|
||||||
|
maps.prototype.drawResizeAnimate = function (name, id, centerX, centerY, hero, reverse, loop, callback) {
|
||||||
|
name = core.getMappedName(name);
|
||||||
|
|
||||||
|
// 正在播放录像:不显示动画
|
||||||
|
if (core.isReplaying() || !core.material.animates[name]) {
|
||||||
|
if (callback) callback();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 开始绘制
|
||||||
|
var animate = core.material.animates[name],
|
||||||
|
centerX = core.calValue(centerX)
|
||||||
|
centerY = core.calValue(centerY)
|
||||||
|
|
||||||
|
animate.se = animate.se || {};
|
||||||
|
if (typeof animate.se == 'string') animate.se = { 1: animate.se };
|
||||||
|
|
||||||
|
var id = id || setTimeout(null);
|
||||||
|
if (hero) core.status.animateObjs.push({
|
||||||
|
"name": name,
|
||||||
|
"id": id,
|
||||||
|
"animate": animate,
|
||||||
|
"hero": true,
|
||||||
|
"reverse": reverse,
|
||||||
|
"start": 0,
|
||||||
|
"pause": false,
|
||||||
|
"loop": loop,
|
||||||
|
"pausetime": 0,
|
||||||
|
"index": 0,
|
||||||
|
"callback": callback
|
||||||
|
})
|
||||||
|
else core.status.animateObjs.push({
|
||||||
|
"name": name,
|
||||||
|
"id": id,
|
||||||
|
"animate": animate,
|
||||||
|
"centerX": centerX,
|
||||||
|
"centerY": centerY,
|
||||||
|
"reverse": reverse,
|
||||||
|
"start": 0,
|
||||||
|
"pause": false,
|
||||||
|
"loop": loop,
|
||||||
|
"pausetime": 0,
|
||||||
|
"index": 0,
|
||||||
|
"callback": callback
|
||||||
|
});
|
||||||
|
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
events.prototype._action_animateResize = function (data, x, y, prefix) {
|
||||||
|
core.events.__action_doAsyncFunc(data.async, core.maps.drawResizeAnimate, data.name, data.id, data.centerX, data.centerY, data.hero, data.reverse, data.loop);
|
||||||
|
};
|
||||||
|
////// 绘制一个跟随勇士的动画 //////
|
||||||
|
maps.prototype.drawHeroAnimate = function (name, callback) {
|
||||||
|
name = core.getMappedName(name);
|
||||||
|
|
||||||
|
// 正在播放录像或动画不存在:不显示动画
|
||||||
|
if (core.isReplaying() || !core.material.animates[name]) {
|
||||||
|
if (callback) callback();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 开始绘制
|
||||||
|
var animate = core.material.animates[name];
|
||||||
|
animate.se = animate.se || {};
|
||||||
|
if (typeof animate.se == 'string') animate.se = { 1: animate.se };
|
||||||
|
|
||||||
|
var id = setTimeout(null);
|
||||||
|
core.status.animateObjs.push({
|
||||||
|
"name": name,
|
||||||
|
"id": id,
|
||||||
|
"animate": animate,
|
||||||
|
"hero": true,
|
||||||
|
"start": 0,
|
||||||
|
"pause": false,
|
||||||
|
"pausetime": 0,
|
||||||
|
"index": 0,
|
||||||
|
"callback": callback
|
||||||
|
});
|
||||||
|
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
////// 获得当前正在播放的所有(指定)动画的id列表 //////
|
||||||
|
maps.prototype.getPlayingAnimates = function (name) {
|
||||||
|
return (core.status.animateObjs || []).filter(function (one) {
|
||||||
|
return name == null || one.name == name;
|
||||||
|
}).map(function (one) { return one.id });
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
////// 绘制动画的某一帧 //////
|
||||||
|
maps.prototype._drawAnimateFrame = function (name, animate, centerX, centerY, index) {
|
||||||
|
var ctx = core.getContextByName(name);
|
||||||
|
if (!ctx) return;
|
||||||
|
var frame = animate.frames[index % animate.frame];
|
||||||
|
core.playSound((animate.se || {})[index % animate.frame + 1], (animate.pitch || {})[index % animate.frame + 1]);
|
||||||
|
var ratio = animate.ratio;
|
||||||
|
frame.forEach(function (t) {
|
||||||
|
var image = animate.images[t.index];
|
||||||
|
if (!image) return;
|
||||||
|
|
||||||
|
var realWidth = image.width * ratio * t.zoom / 100;
|
||||||
|
var realHeight = image.height * ratio * t.zoom / 100;
|
||||||
|
core.setAlpha(ctx, t.opacity / 255);
|
||||||
|
|
||||||
|
var cx = centerX + t.x,
|
||||||
|
cy = centerY + t.y;
|
||||||
|
|
||||||
|
var ix = cx - realWidth / 2 - core.bigmap.offsetX,
|
||||||
|
iy = cy - realHeight / 2 - core.bigmap.offsetY;
|
||||||
|
|
||||||
|
var mirror = t.mirror ? 'x' : null;
|
||||||
|
var angle = t.angle ? -t.angle * Math.PI / 180 : null;
|
||||||
|
core.drawImage(ctx, image, ix, iy, realWidth, realHeight, null, null, null, null, angle, mirror);
|
||||||
|
|
||||||
|
core.setAlpha(ctx, 1);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
////// 暂停动画 //////
|
||||||
|
maps.prototype.pauseAnimate = function (id) {
|
||||||
|
for (var i = 0; i < core.status.animateObjs.length; i++) {
|
||||||
|
var obj = core.status.animateObjs[i];
|
||||||
|
if (id == null || obj.id == id) {
|
||||||
|
obj.pause = true
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
////// 继续动画 //////
|
||||||
|
maps.prototype.remuseAnimate = function (id) {
|
||||||
|
for (var i = 0; i < core.status.animateObjs.length; i++) {
|
||||||
|
var obj = core.status.animateObjs[i];
|
||||||
|
if (id == null || obj.id == id) {
|
||||||
|
obj.pause = false
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
////// 停止动画 //////
|
||||||
|
maps.prototype.stopAnimate = function (id, doCallback) {
|
||||||
|
for (var i = 0; i < core.status.animateObjs.length; i++) {
|
||||||
|
var obj = core.status.animateObjs[i];
|
||||||
|
if (id == null || obj.id == id) {
|
||||||
|
if (doCallback) {
|
||||||
|
(function (callback) {
|
||||||
|
setTimeout(function () {
|
||||||
|
if (callback) callback();
|
||||||
|
});
|
||||||
|
})(obj.callback);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
core.status.animateObjs = core.status.animateObjs.filter(function (x) { return id != null && x.id != id });
|
||||||
|
if (core.status.animateObjs.length == 0)
|
||||||
|
core.clearMap('animate');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user