This commit is contained in:
SOLATR 2025-04-23 13:16:08 +08:00
commit 5202c2d1ca
26 changed files with 3219 additions and 3144 deletions

View File

@ -837,6 +837,14 @@ action
| insert_1_s
| insert_2_s
| exit_s
| setanimate_s
| deleteanimate_s
| playanimate_s
| clearanimate_s
| animateloop_s
| animatemove_s
| animatereverse_s
| animatepause_s
| setBlock_s
| turnBlock_s
| showFloorImg_s
@ -873,11 +881,11 @@ action
| disableShop_s
| follow_s
| unfollow_s
| setanimate_s
| deleteanimate_s
| playanimate_s
| clearanimate_s
| animate_s
| moveAnimate_s
| animateResize_s
| pauseAnimate_s
| remuseAnimate_s
| animate_1_s
| stopAnimate_s
| vibrate_s
@ -1074,6 +1082,98 @@ if (block.isCollapsed() || !block.isEnabled() || pos || Int_0 || Bool_0) {
return code+',\n';
*/;
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?'角度'IntString? BGNL? Newline
'结束帧' IntString? '结束不透明度' IntString? '剪裁坐标cx' IntString? 'cy' IntString? '宽' IntString? '高' IntString? '绘制坐标x'IntString? 'y' IntString? '宽' 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_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+'},'
*/;
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;
*/;
over_s
: '旁白文字' ':' EvalString BGNL? Newline
'背景' EvalString? '回忆滤镜' Bool? '持续帧数' Int? '渐入渐出帧数' Int? '音频文件' EvalString? BGNL? Newline
@ -2003,10 +2103,10 @@ drawWarning_s
/* drawWarning_s
tooltip : drawWarning: 绘制warning警告并拉进镜头,本事件为异步事件,下一事件将在3100ms后执行
helpUrl : /_docs/#/instruction
default : [0, 0,'2',24,"这里是提示内容","绿色史莱姆",false]
default : [0, 0,2,24,"这里是提示内容","绿色史莱姆",false]
colour : this.soundColor
selectPoint : ["PosString_0", "PosString_1"]
if(!EvalString_1||!/^(0|([1-9][0-9]*))(\.[\d]+)?$/.test(EvalString_1))throw new Error("此项仅能填写小数或整数");
if(!EvalString_1||!/^(0|([1-9][0-9]*))(\.[\d]+)?$/.test(EvalString_0))throw new Error("此项仅能填写小数或整数");
var code = '{"type": "drawWarning", "x": '+PosString_0+', "y": '+PosString_1+',"large":'+EvalString_0+',"size":'+Int_0+',"text": "'+EvalString_1+'", "text2": "'+EvalString_2+'", "warning": '+Bool_0+'},\n';
return code;
*/;
@ -2272,6 +2372,69 @@ var code = '{"type": "vibrate", "direction": "'+Vibrate_List_0+'", "time": '+Int
return code;
*/;
animate_s
: '显示动画' EvalString '位置' 'x' PosString? 'y' PosString? '相对窗口坐标' Bool '不等待执行完毕' Bool Newline
/* animate_s
tooltip : animate显示动画,位置填hero或者1,2形式的位置,或者不填代表当前事件点
helpUrl : /_docs/#/instruction
default : ["zone","","",false,false]
allAnimates : ['EvalString_0']
material : ["./project/animates/", "EvalString_0"]
menu : [['选择位置', 'editor_blockly.selectPoint(block, ["PosString_0", "PosString_1"])']]
colour : this.soundColor
var loc = PosString_0&&PosString_1?(', "loc": ['+PosString_0+','+PosString_1+']'):'';
Bool_0 = Bool_0?', "alignWindow": true':'';
Bool_1 = Bool_1?', "async": true':'';
var code = '{"type": "animate", "name": "'+EvalString_0+'"'+loc+Bool_0+Bool_1+'},\n';
return code;
*/;
animate_1_s
: '显示动画并跟随角色' EvalString '不等待执行完毕' Bool Newline
/* animate_1_s
tooltip : animate显示动画并跟随角色
helpUrl : /_docs/#/instruction
default : ["zone",false]
allAnimates : ['EvalString_0']
material : ["./project/animates/", "EvalString_0"]
colour : this.soundColor
Bool_0 = Bool_0?', "async": true':'';
var code = '{"type": "animate", "name": "'+EvalString_0+'", "loc": "hero"'+Bool_0+'},\n';
return code;
*/;
animatereverse_s
: '调整正在播放的帧动画/特效 编号'IntString?'倒放'Bool'(不填编号为对所有正在进行的帧动画/特效进行操作)'
/* animatereverse_s
tooltip : animatereverse:调整正在播放的帧动画(倒放)
helpUrl : /_docs/#/instruction
default : ["",false]
colour : this.imageColor
IntString_0 = IntString_0 ? (', "id": '+IntString_0+'') : ''
var code = '{"type": "animatereverse"'+IntString_0+',"reverse":'+Bool_0+'},\n';
return code;
*/;
animatepause_s
: '调整正在播放的帧动画/特效 编号'IntString?'暂停'Bool'(不填编号为对所有正在进行的帧动画/特效进行操作)'
/* animatepause_s
tooltip : animatereverse:调整正在播放的帧动画(暂停)
helpUrl : /_docs/#/instruction
default : ["",false]
colour : this.imageColor
IntString_0 = IntString_0 ? (', "id": '+IntString_0+'') : ''
var code = '{"type": "animatepause"'+IntString_0+',"pause":'+Bool_0+'},\n';
return code;
*/;
setanimate_s
: '新建 帧动画/特效' '名称' EvalString '参照点偏移像素x' IntString? 'y' IntString? '动画大小 宽' IntString '高' IntString '总帧数' IntString BGNL?Newline
'图片序列同一帧后面覆盖先前的默认起始帧为0结束帧为最后一帧)'BGNL?Newline
@ -2373,82 +2536,148 @@ return code;
*/;
playanimate_s
: '播放 帧动画/特效' '名称' EvalString '像素x' IntString? 'y' IntString? '跟随勇士' Bool 'x方向缩放' EvalString? 'y方向缩放'EvalString? Newline
: '播放 帧动画/特效' '名称' EvalString '编号'IntString?'像素x' IntString? 'y' IntString? '跟随勇士' Bool 'x方向缩放' EvalString? 'y方向缩放'EvalString?'循环'Bool'倒放'Bool Newline
/* playanimate_s
tooltip : playanimate:播放帧动画选择跟随勇士后x、y将失效改为勇士中心坐标
helpUrl : /_docs/#/instruction
default : ["zone","","",false,"",""]
default : ["zone","","","",false,1,1,false,false]
previewBlock : true
colour : this.imageColor
IntString_0 = IntString_0 ? (', "x": '+IntString_0+'') : '';
IntString_1 = IntString_1 ? (', "y": '+IntString_1+'') : '';
IntString_0 = IntString_0 ? (', "id": '+IntString_0+'') : '';
IntString_1 = IntString_1 ? (', "x": '+IntString_1+'') : '';
IntString_2 = IntString_2 ? (', "y": '+IntString_2+'') : '';
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';
var code = '{"type": "playanimate", "name": "'+EvalString_0+'"'+IntString_0+IntString_1+IntString_2+',"hero":'+Bool_0+EvalString_1+EvalString_2+',"loop":'+Bool_1+',"reverse":'+Bool_2+'},\n';
return code;
*/;
clearanimate_s
: '清空正在播放的帧动画/特效'
: '停止正在播放的帧动画/特效 编号'IntString?'(不填编号为对所有正在进行的帧动画/特效进行操作)'
/* clearanimate_s
tooltip : clearanimate:清空正在播放的帧动画
helpUrl : /_docs/#/instruction
default : [""]
colour : this.imageColor
var code = '{"type": "clearanimate"},\n';
IntString_0 = IntString_0 ? (', "id": '+IntString_0+'') : '';
var code = '{"type": "clearanimate"'+IntString_0+'},\n';
return code;
*/;
animate_s
: '显示动画' EvalString '位置' 'x' PosString? 'y' PosString? '相对窗口坐标' Bool '不等待执行完毕' Bool Newline
animateloop_s
: '调整正在播放的帧动画/特效 编号'IntString?'循环'Bool '(不填编号为对所有正在进行的帧动画/特效进行操作)'
/* animate_s
tooltip : animate显示动画,位置填hero或者1,2形式的位置,或者不填代表当前事件点
/* animateloop_s
tooltip : animateloop:调整正在播放的帧动画(循环)
helpUrl : /_docs/#/instruction
default : ["zone","","",false,false]
allAnimates : ['EvalString_0']
material : ["./project/animates/", "EvalString_0"]
menu : [['选择位置', 'editor_blockly.selectPoint(block, ["PosString_0", "PosString_1"])']]
colour : this.soundColor
var loc = PosString_0&&PosString_1?(', "loc": ['+PosString_0+','+PosString_1+']'):'';
Bool_0 = Bool_0?', "alignWindow": true':'';
Bool_1 = Bool_1?', "async": true':'';
var code = '{"type": "animate", "name": "'+EvalString_0+'"'+loc+Bool_0+Bool_1+'},\n';
default : ["",false]
colour : this.imageColor
IntString_0 = IntString_0 ? (', "id": '+IntString_0+'') : ''
var code = '{"type": "animateloop"'+IntString_0+',"loop":'+Bool_0+'},\n';
return code;
*/;
animate_1_s
: '显示动画并跟随角色' EvalString '不等待执行完毕' Bool Newline
animatemove_s
: '移动正在播放的帧动画/特效 编号'IntString'目标像素x'PosString'y'PosString Absolute_List'移动时长'PosString'移动模式'MoveMode2_List? '(仅可对有编号的非跟随勇士帧动画/特效使用)'
/* animate_1_s
tooltip : animate显示动画并跟随角色
/* animatemove_s
tooltip : animateloop:调整正在播放的帧动画(循环)
helpUrl : /_docs/#/instruction
default : ["zone",false]
default : [0,0,0,false,1000,'']
previewBlock : true
colour : this.imageColor
IntString_0 = IntString_0 ? (', "id": '+IntString_0+'') : ''
MoveMode2_List_0=MoveMode2_List_0?(', "style": "'+MoveMode2_List_0+'"') : ''
var code = '{"type": "animatemove"'+IntString_0+',"px":'+PosString_0+',"py":'+PosString_1+',"relative":'+Absolute_List_0+',"time":'+PosString_2+MoveMode2_List_0+'},\n';
return code;
*/;
moveAnimate_s
: '移动正在播放的帧动画/特效 编号'IntString'目标像素x'PosString'y'PosString Absolute_List'移动时长'PosString'移动模式'MoveMode2_List? '(仅可对有编号的非跟随勇士动画使用)'
/* moveAnimate_s
tooltip : animateloop:调整正在播放的帧动画(循环)
helpUrl : /_docs/#/instruction
default : [0,0,0,false,1000,'']
previewBlock : true
colour : this.soundColor
IntString_0 = IntString_0 ? (', "id": '+IntString_0+'') : ''
MoveMode2_List_0=MoveMode2_List_0?(', "style": "'+MoveMode2_List_0+'"') : ''
var code = '{"type": "moveAnimate"'+IntString_0+',"px":'+PosString_0+',"py":'+PosString_1+',"relative":'+Absolute_List_0+',"time":'+PosString_2+MoveMode2_List_0+'},\n';
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
Bool_0 = Bool_0?', "async": true':'';
var code = '{"type": "animate", "name": "'+EvalString_0+'", "loc": "hero"'+Bool_0+'},\n';
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
: '停止所有动画' '执行动画回调' Bool Newline
: '停止动画编号'PosString?'(不填写编号为继续所有)' '执行动画回调' Bool Newline
/* stopAnimate_s
tooltip : stopAnimate停止所有动画
tooltip : stopAnimate停止动画(不填写编号为继续所有)
helpUrl : /_docs/#/instruction
default : [false]
default : ["",false]
colour : this.soundColor
PosString_0 = PosString_0?', "id":'+PosString_0:'';
Bool_0 = Bool_0?', "doCallback": true':'';
var code = '{"type": "stopAnimate"'+Bool_0+'},\n';
var code = '{"type": "stopAnimate"'+PosString_0+Bool_0+'},\n';
return code;
*/;
@ -2720,95 +2949,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
: '更改画面色调' ColorString Colour '动画时间' IntString? BGNL? Newline '渐变方式' MoveMode_List '持续到下一个本事件' Bool '不等待执行完毕' Bool Newline
@ -2860,7 +3000,7 @@ return code;
*/;
setWeather_s
: '更改天气' Weather_List '强度' Int '持续到下个本事件' Bool Newline
: '更改天气' Weather_List '强度' Int Newline
/* setWeather_s
@ -2869,8 +3009,8 @@ helpUrl : /_docs/#/instruction
default : [null,1,true]
colour : this.soundColor
if(Int_0<1 || Int_0>10) throw new Error('天气的强度等级, 在1-10之间');
Bool_0 = Bool_0 ? ', "keep": true' : ''
var code = '{"type": "setWeather", "name": "'+Weather_List_0+'", "level": '+Int_0+Bool_0+'},\n';
var code = '{"type": "setWeather", "name": "'+Weather_List_0+'", "level": '+Int_0+'},\n';
if(Weather_List_0===''||Weather_List_0==='null'||Weather_List_0==null)code = '{"type": "setWeather"},\n';
return code;
*/;
@ -4560,6 +4700,10 @@ B_1_List
: '不改变'|'设为粗体'|'取消粗体'
/*B_1_List ['null','true','false']*/;
Absolute_List
:'绝对模式'|'相对模式'
/*Absolute_List ['false','true']*/;
Bg_Fg_List
: '背景层'|'前景层'
/*Bg_Fg_List ['bg','fg']*/;
@ -4689,6 +4833,10 @@ MoveMode_List
: '匀速移动'|'缓入快出'|'快入缓出'|'缓入缓出'|'随机'
/*MoveMode_List ['', 'easeIn', 'easeOut', 'easeInOut', 'random']*/;
MoveMode2_List
: '匀速移动'|'慢-快'|'快-慢'|'慢-快-慢'|'快-慢-快'
/*MoveMode2_List ['', 'in', 'out', 'in-out', 'center']*/;
NameMap_List
: '确定'|'取消'|'操作失败'|'光标移动'|'打开界面'|'读档'|'存档'|'获得道具'|'回血'|'宝石'|'炸弹'|'飞行器'|'开关门'|'上下楼'|'跳跃'|'破墙镐'|'破冰镐'|'阻激夹域'|'穿脱装备'|'商店'
/*NameMap_List ['确定','取消','操作失败','光标移动','打开界面','读档','存档','获得道具','回血','宝石','炸弹','飞行器','开关门','上下楼','跳跃','破墙镐','破冰镐','阻激夹域','穿脱装备','商店']*/;

View File

@ -729,140 +729,6 @@ 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([
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":
this.next = MotaActionBlocks["tip_s"].xmlText([
@ -1151,6 +1017,64 @@ MotaActionParser = function () {
]);
}
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],
one[21],
one[22],
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 "jumpHero": // 跳跃勇士
if (data.dxy) {
this.next = MotaActionBlocks["jumpHero_1_s"].xmlText([
@ -1235,12 +1159,161 @@ MotaActionParser = function () {
]);
}
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": // 停止所有动画
this.next = MotaActionBlocks["stopAnimate_s"].xmlText([
data.id||"",
data.doCallback || false,
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([
data.id||"",
this.next]);
break;
case "animateloop":
this.next = MotaActionBlocks["animateloop_s"].xmlText([
data.id||"",
data.loop,
this.next]);
break;
case "animatemove":
this.next = MotaActionBlocks["animatemove_s"].xmlText([
data.id||0,
data.px||0,
data.py||0,
data.relative,
data.time||0,
data.style||"",
this.next]);
break;
case "moveAnimate":
this.next = MotaActionBlocks["moveAnimate_s"].xmlText([
data.id||0,
data.px||0,
data.py||0,
data.time||0,
data.relative,
data.style||"",
this.next]);
break;
case "animatereverse":
this.next = MotaActionBlocks["animatereverse_s"].xmlText([
data.id||"",
data.reverse,
this.next]);
break;
case "animatepause":
this.next = MotaActionBlocks["animatepause_s"].xmlText([
data.id||"",
data.pause,
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.id||"",
data.x,
data.y,
data.hero,
data.scalex||1,
data.scaley||1,
data.loop||false,
data.reverse||false,
this.next,
]);
break;
case "setViewport": // 设置视角
if (data.dxy) {
this.next = MotaActionBlocks["setViewport_1_s"].xmlText([
@ -1421,7 +1494,6 @@ MotaActionParser = function () {
this.next = MotaActionBlocks["setWeather_s"].xmlText([
data.name,
data.level || 1,
data.keep || false,
this.next,
]);
break;
@ -2924,56 +2996,7 @@ MotaActionParser = function () {
});
return list;
};
MotaActionFunctions.processovertext = function (overList) {
var list = [];
overList.forEach(function (one) {
list.push([
one.text,
one.sound,
one.time,
one.textColor,
one.boldColor,
one.font,
]);
});
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) {
@ -3012,6 +3035,21 @@ MotaActionParser = function () {
});
return list;
};
MotaActionFunctions.processovertext = function (overList) {
var list = [];
overList.forEach(function (one) {
list.push([
one.text,
one.sound,
one.time,
one.textColor,
one.boldColor,
one.font,
]);
});
return list;
};
MotaActionFunctions.processMultiLoc = function (EvalString_0, EvalString_1) {
var floorstr = "";
if (EvalString_0 && EvalString_1) {
@ -3285,6 +3323,45 @@ MotaActionParser = function () {
return str;
};
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.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.processanimationDrawablesound = function (overList) {
var list = [];
overList.forEach(function (one) {
list.push([one.sound, one.startfarme, one.stopbefore]);
});
return list;
};
MotaActionFunctions.replaceFromName = function (str) {
if (!str || MotaActionFunctions.disableReplace) return str;
var map = {},

View File

@ -354,6 +354,21 @@ editor_blockly = function () {
editor.uievent.previewUI([{ type: "drawImage", image: obj.name, x: obj.loc[0], y: obj.loc[1] }]);
}
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 'playanimate_s': // 显示帧动画
if (obj.name && obj.x&&obj.y) {
editor.uievent.previewUI([{ type: "fillRect", x:obj.x-5, y: obj.y-5, width:10, height: 10, style:"#FF0000"}]);
}
break;
case 'animatemove_s': // 移动帧动画
editor.uievent.previewUI([{ type: "fillRect", x:obj.px-5, y: obj.py-5, width:10, height: 10, style:"#FF0000"}]);
break;
case 'setCurtain_0_s': // 更改色调
if (obj.color) {
editor.uievent.previewUI([{ type: "fillRect", x: 0, y: 0, width: core.__PIXELS__, height: core.__PIXELS__, style: obj.color }]);

View File

@ -381,7 +381,7 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
"_docs": "退化扣防",
"_data": "退化时勇士下降的防御力点数"
},
"damage2": {
"damage": {
"_leaf": true,
"_type": "textarea",
"_range": "thiseval==~~thiseval||thiseval==null",

View File

@ -1809,7 +1809,7 @@ events.prototype._action_animate = 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();
};

View File

@ -2192,6 +2192,7 @@ maps.prototype.showBgFgMap = function (name, loc, floorId, callback) {
////// 隐藏前景/背景地图 //////
maps.prototype.hideBgFgMap = function (name, loc, floorId, callback) {
this.removeGlobalAnimate(loc.x, loc.y, name)
this._triggerBgFgMap('hide', name, loc, floorId, callback);
}
@ -2455,7 +2456,7 @@ maps.prototype.setBgFgBlock = function (name, number, x, y, floorId) {
if (/^\d+$/.test(number)) number = parseInt(number);
else number = core.getNumberById(number);
}
this.removeGlobalAnimate(x, y, name)
var values = core.getFlag('__' + name + 'v__', {});
values[floorId] = (values[floorId] || []).filter(function (one) { return one[0] != x || one[1] != y });
values[floorId].push([x, y, number]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"ratio":2,"bitmaps":["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAD6SURBVHhe7dQ9SsVAFAXg+MNTeAhaWCrWLsHGUlCwsHMXgo2NjZ31a1yBVtaCrSvQ1i24hSSegbuEBAS/Dw7M3JnqZEgHAAAAAAAAAAAAAP/NOI5rySI5GobhNDlJ9uuYqaXo9RR83Pf9U/KevGV/kxwkW+2D1FWmkmKXKfYuZf8k38lrZpeZHSaLusaU2ktOyRcp+zP5Sl6yv858t53VNaaWcrdT9mPSXvpHskrxO3XMnNpvJYW3F/+Q9XmNmVv7raT055R+n/VejZlbyt5M6VfJbdYbNWZureyUvkzOagQAAAAAAAAAAAAAAAAAAAAAAAAAAADwd3XdL135q9NaPZ6+AAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJ4SURBVHhe7de7alRRFMbx3DSIgqiNIBJsBUUESyutBAsLO9/CWtL4BtorlgFBRGIEEQwxMSBiMWouGo2TCyaTC0lmJjM5ey+/HVfeYPZB8P+DNefsS/WdxZ5zugAAAAAAAAAAAAAAAAAAAID/lZkdVnX7ELmkkA+C1rU3xngthHBf1xsa9+1vQmcdhK7qUdAXFPh4URSjur+r6vdt6DQP/ZDqkkL/ZlZs6jqh8WnfghzU1UcOQlclmop3fBk5KPA+hXxRYb9LiWtsujR0Oe5b0Gke+hUF/TaFLtHrh29BDgr9jEJOoReqeur2RPfTvgWdpnzTG8yAQm6oYgq8uWfWLvaD1y+vkNko3G6FPJ9CT7ZbZpVVs9m1/Ydw3bchB3X9+dTxqVLwk4tmH1T1VnjlW5CDGj11/XDq+HTgfFwye/rVbKpmNjzDx1N2Cn8jhb+qF8mRObOX381m1sPww4od8y3IQZn3KPzdogjNyorZ8xmzaXX9cjOe8y3IxcNvNtq2OV41ezFrttYMv30ZOSn8dOavqBrjC3+PnfVGvOfLyE0P4HH6qhr9Zfbmp7p/Lg74EnJT+LdbeyGk4F/PhfhgMp7yJeSm9/yTavza2HyIYwuhPTRkvb6E3NT5fQr/2cRS2HhfDfVB/Qn7EnJLf7rq/pvTq6H9uRa2fBplSOGrTixvhdrUWqj7NMqi8HsV/shsLez5FMq004qXq+th14cok879/upO+FKp2GGfQll09PSsNOLVxXq85VMoUzr7F7fDIx+iTOnNR8fP2UGOnvKl8NPx8+RTPOpTKFt6CH4LAAAAAAAAAAAAAAAAAAAAAAAAAACAf1RX1x9x4x3SPdhnTAAAAABJRU5ErkJggg==","","","","","","","","","","","","","","","","","",""],"frame_max":5,"frames":[[[0,8,32,30,100]],[[0,-16,32,50,130]],[[0,-24,40,80,150]],[[0,-48,24,90,180],[1,-8,40,100,255]],[[0,-56,24,100,200],[1,-8,24,100,255]]]}
{"ratio":2,"bitmaps":["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAD6SURBVHhe7dQ9SsVAFAXg+MNTeAhaWCrWLsHGUlCwsHMXgo2NjZ31a1yBVtaCrSvQ1i24hSSegbuEBAS/Dw7M3JnqZEgHAAAAAAAAAAAAAP/NOI5rySI5GobhNDlJ9uuYqaXo9RR83Pf9U/KevGV/kxwkW+2D1FWmkmKXKfYuZf8k38lrZpeZHSaLusaU2ktOyRcp+zP5Sl6yv858t53VNaaWcrdT9mPSXvpHskrxO3XMnNpvJYW3F/+Q9XmNmVv7raT055R+n/VejZlbyt5M6VfJbdYbNWZureyUvkzOagQAAAAAAAAAAAAAAAAAAAAAAAAAAADwd3XdL135q9NaPZ6+AAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJ4SURBVHhe7de7alRRFMbx3DSIgqiNIBJsBUUESyutBAsLO9/CWtL4BtorlgFBRGIEEQwxMSBiMWouGo2TCyaTC0lmJjM5ey+/HVfeYPZB8P+DNefsS/WdxZ5zugAAAAAAAAAAAAAAAAAAAID/lZkdVnX7ELmkkA+C1rU3xngthHBf1xsa9+1vQmcdhK7qUdAXFPh4URSjur+r6vdt6DQP/ZDqkkL/ZlZs6jqh8WnfghzU1UcOQlclmop3fBk5KPA+hXxRYb9LiWtsujR0Oe5b0Gke+hUF/TaFLtHrh29BDgr9jEJOoReqeur2RPfTvgWdpnzTG8yAQm6oYgq8uWfWLvaD1y+vkNko3G6FPJ9CT7ZbZpVVs9m1/Ydw3bchB3X9+dTxqVLwk4tmH1T1VnjlW5CDGj11/XDq+HTgfFwye/rVbKpmNjzDx1N2Cn8jhb+qF8mRObOX381m1sPww4od8y3IQZn3KPzdogjNyorZ8xmzaXX9cjOe8y3IxcNvNtq2OV41ezFrttYMv30ZOSn8dOavqBrjC3+PnfVGvOfLyE0P4HH6qhr9Zfbmp7p/Lg74EnJT+LdbeyGk4F/PhfhgMp7yJeSm9/yTavza2HyIYwuhPTRkvb6E3NT5fQr/2cRS2HhfDfVB/Qn7EnJLf7rq/pvTq6H9uRa2fBplSOGrTixvhdrUWqj7NMqi8HsV/shsLez5FMq004qXq+th14cok879/upO+FKp2GGfQll09PSsNOLVxXq85VMoUzr7F7fDIx+iTOnNR8fP2UGOnvKl8NPx8+RTPOpTKFt6CH4LAAAAAAAAAAAAAAAAAAAAAAAAAACAf1RX1x9x4x3SPdhnTAAAAABJRU5ErkJggg==","","","","","","","","","","","","","","","","","",""],"frame_max":5,"frames":[[[0,8,32,30,100]],[[0,-16,32,50,130]],[[0,-24,40,80,150]],[[0,-48,24,90,180],[1,-8,40,100,255]],[[0,-56,24,100,200],[1,-8,24,100,255]]],"se":{},"pitch":{}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -912,6 +912,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"animates": [
"hand",
"jianji",
"jianji2",
"sword",
"thunder",
"yongchang",
@ -1452,8 +1453,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"HATTEN",
"Verdana",
"number",
"pala",
"simhei"
"pala"
],
"nameMap": {
"确定": "confirm.opus",
@ -1940,10 +1940,6 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"type": "function",
"function": "function(){\ncore.getItem('book', 1);\ncore.getItem('fly', 1);\ncore.getItem('postman', 1);\ncore.getItem('I369', 1);\n}"
},
{
"type": "insert",
"name": "战斗动画特效注册"
},
{
"type": "insert",
"name": "强制横屏"
@ -2129,7 +2125,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"animateSpeed": 300,
"moveSpeed": 100,
"statusCanvasRowsOnMobile": 3,
"floorChangeTime": 500,
"floorChangeTime": 0,
"yellowGem": 2
},
"flags": {

View File

@ -2,7 +2,7 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
{
"greenSlime": {"name":"绿头怪","hp":64,"atk":32,"def":2,"money":0,"exp":1,"point":0,"special":[],"mdef":0,"spell":0,"speed":17},
"redSlime": {"name":"红头怪","hp":84,"atk":27,"def":6,"money":0,"exp":1,"point":0,"special":[],"value":null,"mdef":0,"spell":0,"speed":19},
"blackSlime": {"name":"青头怪","hp":222,"atk":46,"def":10,"money":0,"exp":0,"point":0,"special":[],"mdef":0,"spell":0,"speed":15},
"blackSlime": {"name":"青头怪","hp":222,"atk":46,"def":10,"money":0,"exp":0,"point":0,"special":[],"mdef":0,"spell":0,"speed":15,"damage":null},
"slimelord": {"name":"怪王","hp":790,"atk":48,"def":8,"money":0,"exp":0,"point":0,"special":[],"mdef":0,"spell":0,"speed":20},
"bat": {"name":"小蝙蝠","hp":46,"atk":49,"def":0,"money":0,"exp":1,"point":0,"special":[1],"mdef":0,"speed":29,"spell":0},
"bigBat": {"name":"大蝙蝠","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
@ -84,5 +84,5 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
"E421": {"name":"蓝头怪","hp":104,"atk":33,"def":8,"money":0,"exp":1,"point":0,"special":[],"value":null,"mdef":0,"spell":0,"speed":19,"displayIdInBook":null},
"E422": {"name":"新敌人","hp":0,"atk":0,"def":0,"mdef":0,"speed":1,"money":0,"exp":0,"point":0,"special":[]},
"E425": {"name":"黄骷髅","hp":226,"atk":66,"def":1,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":18,"displayIdInBook":null},
"E426": {"name":"小偷","hp":377,"atk":53,"def":17,"mdef":0,"speed":23,"money":50,"exp":10,"point":0,"special":[],"spell":0}
"E426": {"name":"小偷","hp":377,"atk":53,"def":17,"mdef":0,"speed":34,"money":50,"exp":10,"point":0,"special":[],"spell":0}
}

View File

@ -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,
"chapter07": null,
"chapter000001": [

View File

@ -14,7 +14,7 @@ main.floors.guangchang=
"firstArrive": [
{
"type": "setCurtain",
"time": 1000
"time": 100
},
{
"type": "setText",

View File

@ -18,7 +18,7 @@ main.floors.jiaocheng01=
},
{
"type": "setCurtain",
"time": 1000
"time": 100
}
],
"eachArrive": [],

View File

@ -284,6 +284,29 @@ main.floors.jiaocheng02=
"type": "hide",
"remove": true
}
],
"3,8": [
{
"type": "animationDrawable",
"allFarme": 30,
"color": [
0,
0,
0
],
"imageList": [
{
"image": ""
}
],
"soundList": [
{
"sound": "",
"startfarme": 0,
"stopbefore": false
}
]
}
]
},
"changeFloor": {

View File

@ -26,6 +26,14 @@ main.floors.jiaocheng03=
"type": "setHeroOpacity",
"opacity": 0
},
{
"type": "function",
"function": "function(){\ncore.unloadEquip(0, () => {\n\tcore.setItem(\"sword0\", 0);\n\tcore.setItem(\"I375\", 0)\n\tcore.setItem(\"yellowKey\", 0)\n\tcore.setItem(\"blueKey\", 0)\n\tcore.setItem(\"redKey\", 0)\n\tcore.setItem(\"greenKey\", 0)\n\tcore.status.hero.hp = 1000\n\tcore.status.hero.atk = 16\n\tcore.status.hero.def = 16\n\tcore.status.hero.spell = 0\n\tcore.status.hero.speed = 20\n\tcore.updateStatusBar()\n})\n}"
},
{
"type": "tip",
"text": "教学层属性已清空"
},
{
"type": "changeFloor",
"floorId": "guangchang",

View File

@ -18,7 +18,7 @@ main.floors.yiqu1=
},
{
"type": "setCurtain",
"time": 1000
"time": 100
}
],
"eachArrive": [],
@ -58,6 +58,16 @@ main.floors.yiqu1=
"map": [
[143,143,143,143,130193,130193,130193,130193,130193,143,143,143,143],
[143,143,143,143,130060,130061,130062,130201,130201,143,143,143,143],
[143,130193,130193,130194,130068,130069,130070, 0,120023,130192,130193,130193,143],
[130194,130201,130201,130202,130007,130006,130099,130098,120031,130200,130201,130201,143],
[130202, 32, 0, 21,201021,401,110116, 0,201, 81, 0, 21,130192],
[140101, 0,205, 0,201037,421,110124, 31, 0,110116, 31, 0,130200],
[140109,201037, 0,201037,200199, 81,110140,110138, 81,110138,110138,202,90667],
[ 92,201, 0, 0, 31, 0,202, 0, 0, 82, 0, 0,90675],
[120111, 0, 0, 21, 0, 0,201021,205,110138,110138,201021, 0, 94],
[120119,110122, 81,110122,201037,201,201029,402, 0, 21,201029,205,90650],
[120127,202, 31,202,201037, 0,201029, 0, 21, 0,201029, 0,110189],
[120135, 22,205,403,201037,202,201037,110122,110122, 81,201037,201,110197],
[143,130193,140170,130194,130068,130069,130070, 0,120023,130192,130157,130193,143],
[130194,130201,140178,130202,130007,130006,130099,130098,120031,130200,130167,130201,143],
[130202, 32, 0, 21,201021,401,220008, 0,201, 81, 0, 21,130192],

Binary file not shown.

Binary file not shown.

View File

@ -8,6 +8,8 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
// 清除游戏数据
// 这一步会清空状态栏和全部画布内容,并删除所有动态创建的画布
core.clearStatus();
core.status.animateObjs = []
core.plugin.playing.clear()
// 初始化status
core.status = core.clone(core.initStatus, function (name) {
return name != "hero" && name != "maps";
@ -50,7 +52,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
else core.showStatusBar();
// 隐藏右下角的音乐按钮
core.dom.musicBtn.style.display = "none";
},
},
"win": function (reason, norank, noexit) {
// 游戏获胜事件
// 请注意成绩统计时是按照hp进行上传并排名
@ -68,6 +70,8 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
if (replaying) core.stopReplay();
core.waitHeroToStop(function () {
if (!noexit) {
core.status.animateObjs = []
core.plugin.playing.clear()
core.clearMap("all"); // 清空全地图
core.deleteAllCanvas(); // 删除所有创建的画布
core.dom.gif2.innerHTML = "";
@ -80,12 +84,14 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
}
);
});
},
},
"lose": function (reason) {
// 游戏失败事件
core.ui.closePanel();
var replaying = core.isReplaying();
core.stopReplay();
core.status.animateObjs = []
core.plugin.playing.clear()
core.waitHeroToStop(function () {
core.drawText(
["\t[" + (reason || "结局1") + "]你死了。\n如题。"],
@ -285,8 +291,8 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
},
"afterBattle": async function (enemyId, x, y) {
// 战斗结束后触发的事件
var enemy = core.getEnemyInfo(enemyId, hero, x, y)
var special = enemy.special;
var enemy = core.material.enemys[enemyId]
var special = core.getEnemyValue(enemy, "special", x, y);
// 播放战斗音效和动画
// 默认播放的动画;你也可以使用
var animate = 'hand'; // 默认动画
@ -447,7 +453,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
// 因为removeBlock和hideBlock都会刷新状态栏因此将删除部分移动到这里并保证刷新只执行一次以提升效率
if (core.getBlock(x, y) != null) {
// 检查是否是重生怪物;如果是则仅隐藏不删除
if (core.hasSpecial(enemy.special, 23)) {
if (core.hasSpecial(special, 23)) {
core.hideBlock(x, y);
} else {
core.removeBlock(x, y);
@ -1077,9 +1083,9 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
} else {
hero_damage += per_damage + per_mdamage
}
let animate = core.plugin.enemyanimate[enemy.id] ?? "sword"
let animate = core.plugin.enemyanimate[enemy.id] ?? "jianji2"
//这里可通过if更改默认的怪物攻击特效
hero_animate.push(animate) //勇士身上绘制sword动画
hero_animate.push(animate) //勇士身上绘制jianji2动画
if (heroinfo.mhp + (hero_diff.mhp ?? 0) - hero_damage >= 0) {
hero_diff.mhp = (hero_diff.mhp ?? 0) - hero_damage
hero_damage = 0
@ -1102,7 +1108,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
let mon_damage = 0
let hero_damage = 0
//这里写生效装备的技能效果同时对双方属性的修改计入diff(不要在此直接修改heroinfo和enemyinfo)
let animate = core.plugin.equipanimate[v.id] ?? "sword"
let animate = core.plugin.equipanimate[v.id] ?? "jianji2"
//这里可通过if更改默认的道具特效
enemy_animate.push(animate) //勇士身上绘制动画
@ -1144,7 +1150,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
let per_mdamage = Math.max(Math.floor(heroinfo.matk * (100 - enemyinfo.mdef) / 100), 0)
mon_damage = per_damage + per_mdamage
//这里记录伤害触发后的属性变化和动画同时计入diff(不要在此直接修改heroinfo和enemyinfo)
let animate = core.plugin.heroanimate[equip0] ?? "sword"
let animate = core.plugin.heroanimate[equip0] ?? "jianji2"
//这里可通过if更改默认的武器攻击特效
enemy_animate.push(animate)
@ -1170,7 +1176,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
} else {
hero_damage += per_damage + per_mdamage
}
let animate = core.plugin.enemyanimate[enemy.id] ?? "sword"
let animate = core.plugin.enemyanimate[enemy.id] ?? "jianji2"
//这里可通过if更改默认的怪物攻击特效
hero_animate.push(animate) //勇士身上绘制sword动画
if (heroinfo.mhp + (hero_diff.mhp ?? 0) - hero_damage >= 0) {
@ -1194,7 +1200,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
let mon_damage = 0
let hero_damage = 0
//这里写生效装备的技能效果同时对双方属性的修改计入diff(不要在此直接修改heroinfo和enemyinfo)
let animate = core.plugin.equipanimate[v.id] ?? "sword"
let animate = core.plugin.equipanimate[v.id] ?? "jianji2"
//这里可通过if更改默认的道具特效
enemy_animate.push(animate) //怪物身上绘制动画
@ -1598,7 +1604,9 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
version: core.firstData.version,
guid: core.getGuid(),
time: new Date().getTime(),
cg: cg
cg: cg,
animateObjs: core.status.animateObjs.filter(v => v.loop),
playing: [...core.plugin.playing].filter(v => v.loop)
};
return data;
},
@ -1645,6 +1653,8 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
// TODO增加自己的一些读档处理
core.ui.statusBar.clearItemInfo();
core.ui.statusBar.update();
core.status.animateObjs = data.animateObjs
core.plugin.playing = new Set(data.playing)
if (core.getFlag("_cgText")) {
core.setFlag("_cgText", false)
for (let v in data.cg) {
@ -1653,7 +1663,6 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
}
core.drawbackground(core.ui.cgText.image, core.ui.cgText.memory)
}
core.plugin.playing.clear();
// 切换到对应的楼层
core.changeFloor(data.floorId, null, data.hero.loc, 0, function () {
// TODO可以在这里设置读档后播放BGM

View File

@ -553,7 +553,8 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
}
]
}
]
],
"text": "调整战斗动画"
},
"I370": {
"cls": "items",
@ -635,6 +636,10 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
{
"type": "function",
"function": "function(){\nconst input = core.getFlag('input', '');\nconst tags = [core.status.floorId,\n\tcore.getHeroLoc().x.toString(), core.getHeroLoc().y.toString()\n]\nif (!core.isReplaying()) {\n\tcore.plugin.postComment(input, tags);\n}\n}"
},
{
"type": "function",
"function": "function(){\nif (!core.isReplaying()) {\n\tcore.plugin.getComment();\n\tsetTimeout(core.plugin.drawCommentSign, 1000);\n}\n}"
}
]
},

File diff suppressed because it is too large Load Diff