Update Docs
This commit is contained in:
parent
25ac0e13cb
commit
7af4e6d456
@ -236,7 +236,7 @@ text_0_s
|
||||
|
||||
/* text_0_s
|
||||
tooltip : text:显示一段文字(剧情)
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=text%ef%bc%9a%e6%98%be%e7%a4%ba%e4%b8%80%e6%ae%b5%e6%96%87%e5%ad%97%ef%bc%88%e5%89%a7%e6%83%85%ef%bc%89
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=text%EF%BC%9A%E6%98%BE%E7%A4%BA%E4%B8%80%E6%AE%B5%E6%96%87%E5%AD%97%EF%BC%88%E5%89%A7%E6%83%85%EF%BC%89
|
||||
default : ["欢迎使用事件编辑器(双击方块进入多行编辑)"]
|
||||
var code = '"'+EvalString_0+'",\n';
|
||||
return code;
|
||||
@ -248,7 +248,7 @@ text_1_s
|
||||
|
||||
/* text_1_s
|
||||
tooltip : text:显示一段文字(剧情),选项较多请右键点击帮助
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=text%ef%bc%9a%e6%98%be%e7%a4%ba%e4%b8%80%e6%ae%b5%e6%96%87%e5%ad%97%ef%bc%88%e5%89%a7%e6%83%85%ef%bc%89
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=text%EF%BC%9A%E6%98%BE%E7%A4%BA%E4%B8%80%E6%AE%B5%E6%96%87%E5%AD%97%EF%BC%88%E5%89%A7%E6%83%85%EF%BC%89
|
||||
default : ["小妖精","fairy","","欢迎使用事件编辑器(双击方块进入多行编辑)"]
|
||||
var title='';
|
||||
if (EvalString_0==''){
|
||||
@ -272,7 +272,7 @@ autoText_s
|
||||
|
||||
/* autoText_s
|
||||
tooltip : autoText:自动剧情文本,用户无法跳过自动剧情文本,大段剧情文本请添加“是否跳过剧情”的提示
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=autotext%ef%bc%9a%e8%87%aa%e5%8a%a8%e5%89%a7%e6%83%85%e6%96%87%e6%9c%ac
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=autotext%EF%BC%9A%E8%87%AA%E5%8A%A8%E5%89%A7%E6%83%85%E6%96%87%E6%9C%AC
|
||||
default : ["小妖精","fairy","",3000,"双击方块进入多行编辑\\n自动剧情文本\\n自动剧情文本\\n自动剧情文本"]
|
||||
var title='';
|
||||
if (EvalString_0==''){
|
||||
@ -296,7 +296,7 @@ setText_s
|
||||
|
||||
/* setText_s
|
||||
tooltip : setText:设置剧情文本的属性,颜色为RGB三元组或RGBA四元组,打字间隔为剧情文字添加的时间间隔,为整数或不填
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=settext%ef%bc%9a%e8%ae%be%e7%bd%ae%e5%89%a7%e6%83%85%e6%96%87%e6%9c%ac%e7%9a%84%e5%b1%9e%e6%80%a7
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=settext%EF%BC%9A%E8%AE%BE%E7%BD%AE%E5%89%A7%E6%83%85%E6%96%87%E6%9C%AC%E7%9A%84%E5%B1%9E%E6%80%A7
|
||||
default : [null,"","","",null,'']
|
||||
SetTextPosition_List_0 =SetTextPosition_List_0==='null'?'': ', "position": "'+SetTextPosition_List_0+'"';
|
||||
var colorRe = /^(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d),(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d),(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(,0(\.\d+)?|,1)?$/;
|
||||
@ -327,7 +327,7 @@ tip_s
|
||||
|
||||
/* tip_s
|
||||
tooltip : tip:显示一段提示文字
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=tip%ef%bc%9a%e6%98%be%e7%a4%ba%e4%b8%80%e6%ae%b5%e6%8f%90%e7%a4%ba%e6%96%87%e5%ad%97
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=tip%EF%BC%9A%E6%98%BE%E7%A4%BA%E4%B8%80%E6%AE%B5%E6%8F%90%E7%A4%BA%E6%96%87%E5%AD%97
|
||||
default : ["这段话将在左上角以气泡形式显示"]
|
||||
var code = '{"type": "tip", "text": "'+EvalString_0+'"},\n';
|
||||
return code;
|
||||
@ -339,37 +339,41 @@ setValue_s
|
||||
|
||||
/* setValue_s
|
||||
tooltip : setValue:设置勇士的某个属性、道具个数, 或某个变量/Flag的值
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=text%ef%bc%9a%e6%98%be%e7%a4%ba%e4%b8%80%e6%ae%b5%e6%96%87%e5%ad%97%ef%bc%88%e5%89%a7%e6%83%85%ef%bc%89
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setvalue%EF%BC%9A%E8%AE%BE%E7%BD%AE%E5%8B%87%E5%A3%AB%E7%9A%84%E6%9F%90%E4%B8%AA%E5%B1%9E%E6%80%A7%E3%80%81%E9%81%93%E5%85%B7%E4%B8%AA%E6%95%B0%EF%BC%8C%E6%88%96%E6%9F%90%E4%B8%AA%E5%8F%98%E9%87%8Fflag%E7%9A%84%E5%80%BC
|
||||
colour : this.dataColor
|
||||
var code = '{"type": "setValue", "name": "'+idString_e_0+'", "value": "'+expression_0+'"},\n';
|
||||
return code;
|
||||
*/;
|
||||
|
||||
show_s
|
||||
: '显示事件' 'x' EvalString ',' 'y' EvalString '楼层' IdString? '动画时间' Int? Newline
|
||||
: '显示事件' 'x' EvalString? ',' 'y' EvalString? '楼层' IdString? '动画时间' Int? Newline
|
||||
|
||||
|
||||
/* show_s
|
||||
tooltip : show: 将禁用事件启用,楼层和动画时间可不填,xy可用逗号分隔表示多个点
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=show-%e5%b0%86%e4%b8%80%e4%b8%aa%e7%a6%81%e7%94%a8%e4%ba%8b%e4%bb%b6%e5%90%af%e7%94%a8
|
||||
default : ["0","0","",500]
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=show%EF%BC%9A%E5%B0%86%E4%B8%80%E4%B8%AA%E7%A6%81%E7%94%A8%E4%BA%8B%E4%BB%B6%E5%90%AF%E7%94%A8
|
||||
default : ["","","",500]
|
||||
colour : this.eventColor
|
||||
IdString_0 = IdString_0 && (', "floorId": "'+IdString_0+'"');
|
||||
var pattern1 = /^flag:[0-9a-zA-Z_][0-9a-zA-Z_\-:]*$/;
|
||||
if(pattern1.test(EvalString_0) || pattern1.test(EvalString_1)){
|
||||
var floorstr = '';
|
||||
if (EvalString_0 && EvalString_1) {
|
||||
var pattern1 = /^flag:[0-9a-zA-Z_][0-9a-zA-Z_\-:]*$/;
|
||||
if(pattern1.test(EvalString_0) || pattern1.test(EvalString_1)){
|
||||
EvalString_0=MotaActionFunctions.PosString_pre(EvalString_0);
|
||||
EvalString_1=MotaActionFunctions.PosString_pre(EvalString_1);
|
||||
EvalString_0=[EvalString_0,EvalString_1]
|
||||
} else {
|
||||
} else {
|
||||
var pattern2 = /^([+-]?\d+)(,[+-]?\d+)*$/;
|
||||
if(!pattern2.test(EvalString_0) || !pattern2.test(EvalString_1))throw new Error('坐标格式错误,请右键点击帮助查看格式');
|
||||
EvalString_0=EvalString_0.split(',');
|
||||
EvalString_1=EvalString_1.split(',');
|
||||
if(EvalString_0.length!==EvalString_1.length)throw new Error('坐标格式错误,请右键点击帮助查看格式');
|
||||
for(var ii=0;ii<EvalString_0.length;ii++)EvalString_0[ii]='['+EvalString_0[ii]+','+EvalString_1[ii]+']';
|
||||
}
|
||||
floorstr = ', "loc": ['+EvalString_0.join(',')+']';
|
||||
}
|
||||
IdString_0 = IdString_0 && (', "floorId": "'+IdString_0+'"');
|
||||
Int_0 = Int_0 ?(', "time": '+Int_0):'';
|
||||
var code = '{"type": "show", "loc": ['+EvalString_0.join(',')+']'+IdString_0+''+Int_0+'},\n';
|
||||
var code = '{"type": "show"'+floorstr+IdString_0+''+Int_0+'},\n';
|
||||
return code;
|
||||
*/;
|
||||
|
||||
@ -379,7 +383,7 @@ hide_s
|
||||
|
||||
/* hide_s
|
||||
tooltip : hide: 将一个启用事件禁用,所有参数均可不填,代表禁用事件自身,xy可用逗号分隔表示多个点
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=hide-%e5%b0%86%e4%b8%80%e4%b8%aa%e5%90%af%e7%94%a8%e4%ba%8b%e4%bb%b6%e7%a6%81%e7%94%a8
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=hide%EF%BC%9A%E5%B0%86%E4%B8%80%E4%B8%AA%E5%90%AF%E7%94%A8%E4%BA%8B%E4%BB%B6%E7%A6%81%E7%94%A8
|
||||
default : ["","","",500]
|
||||
colour : this.eventColor
|
||||
var floorstr = '';
|
||||
@ -411,7 +415,7 @@ trigger_s
|
||||
|
||||
/* trigger_s
|
||||
tooltip : trigger: 立即触发另一个地点的事件
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=trigger-%e7%ab%8b%e5%8d%b3%e8%a7%a6%e5%8f%91%e5%8f%a6%e4%b8%80%e4%b8%aa%e5%9c%b0%e7%82%b9%e7%9a%84%e4%ba%8b%e4%bb%b6
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=trigger%EF%BC%9A%E7%AB%8B%E5%8D%B3%E8%A7%A6%E5%8F%91%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%9C%B0%E7%82%B9%E7%9A%84%E4%BA%8B%E4%BB%B6
|
||||
default : ["0","0"]
|
||||
colour : this.eventColor
|
||||
var code = '{"type": "trigger", "loc": ['+PosString_0+','+PosString_1+']},\n';
|
||||
@ -424,7 +428,7 @@ revisit_s
|
||||
|
||||
/* revisit_s
|
||||
tooltip : revisit: 立即重启当前事件
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=revisit-%e7%ab%8b%e5%8d%b3%e9%87%8d%e5%90%af%e5%bd%93%e5%89%8d%e4%ba%8b%e4%bb%b6
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=revisit%EF%BC%9A%E7%AB%8B%E5%8D%B3%E9%87%8D%E5%90%AF%E5%BD%93%E5%89%8D%E4%BA%8B%E4%BB%B6
|
||||
colour : this.eventColor
|
||||
var code = '{"type": "revisit"},\n';
|
||||
return code;
|
||||
@ -436,7 +440,7 @@ exit_s
|
||||
|
||||
/* exit_s
|
||||
tooltip : exit: 立刻结束当前事件
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=exit-%e7%ab%8b%e5%88%bb%e7%bb%93%e6%9d%9f%e5%bd%93%e5%89%8d%e4%ba%8b%e4%bb%b6
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=exit%EF%BC%9A%E7%AB%8B%E5%88%BB%E7%BB%93%E6%9D%9F%E5%BD%93%E5%89%8D%E4%BA%8B%E4%BB%B6
|
||||
colour : this.eventColor
|
||||
var code = '{"type": "exit"},\n';
|
||||
return code;
|
||||
@ -448,7 +452,7 @@ setBlock_s
|
||||
|
||||
/* setBlock_s
|
||||
tooltip : setBlock:设置某个图块,忽略坐标楼层则为当前事件
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setblock%ef%bc%9a%e8%ae%be%e7%bd%ae%e6%9f%90%e4%b8%aa%e5%9b%be%e5%9d%97
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setblock%EF%BC%9A%E8%AE%BE%E7%BD%AE%E6%9F%90%E4%B8%AA%E5%9B%BE%E5%9D%97
|
||||
colour : this.dataColor
|
||||
default : [0,"","",""]
|
||||
var floorstr = '';
|
||||
@ -466,7 +470,7 @@ setHeroIcon_s
|
||||
|
||||
/* setHeroIcon_s
|
||||
tooltip : setHeroIcon:更改角色行走图
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setHeroIcon-%e6%9b%b4%e6%94%b9%e8%a7%92%e8%89%b2%e8%a1%8c%e8%b5%b0%e5%9b%be
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setheroicon%EF%BC%9A%E6%9B%B4%E6%94%B9%E8%A7%92%E8%89%B2%E8%A1%8C%E8%B5%B0%E5%9B%BE
|
||||
colour : this.dataColor
|
||||
default : ["hero.png"]
|
||||
EvalString_0 = EvalString_0 && (', "name": "'+EvalString_0+'"');
|
||||
@ -480,7 +484,7 @@ update_s
|
||||
|
||||
/* update_s
|
||||
tooltip : update: 立刻更新状态栏和地图显伤
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=update-%e7%ab%8b%e5%88%bb%e6%9b%b4%e6%96%b0%e7%8a%b6%e6%80%81%e6%a0%8f%e5%92%8c%e5%9c%b0%e5%9b%be%e6%98%be%e4%bc%a4
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=update%EF%BC%9A%E7%AB%8B%E5%88%BB%E6%9B%B4%E6%96%B0%E7%8A%B6%E6%80%81%E6%A0%8F%E5%92%8C%E5%9C%B0%E5%9B%BE%E6%98%BE%E4%BC%A4
|
||||
colour : this.dataColor
|
||||
var code = '{"type": "update"},\n';
|
||||
return code;
|
||||
@ -492,32 +496,20 @@ sleep_s
|
||||
|
||||
/* sleep_s
|
||||
tooltip : sleep: 等待多少毫秒
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=sleep-%e7%ad%89%e5%be%85%e5%a4%9a%e5%b0%91%e6%af%ab%e7%a7%92
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=sleep%EF%BC%9A%E7%AD%89%E5%BE%85%E5%A4%9A%E5%B0%91%E6%AF%AB%E7%A7%92
|
||||
default : [500]
|
||||
colour : this.soundColor
|
||||
var code = '{"type": "sleep", "time": '+Int_0+'},\n';
|
||||
return code;
|
||||
*/;
|
||||
|
||||
wait_s
|
||||
: '等待用户操作并获得按键或点击信息'
|
||||
|
||||
|
||||
/* wait_s
|
||||
tooltip : wait: 等待用户操作并获得按键或点击信息(具体用法看文档)
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=https://ckcz123.github.io/mota-js/#/event?id=wait%EF%BC%9A%E7%AD%89%E5%BE%85%E7%94%A8%E6%88%B7%E6%93%8D%E4%BD%9C
|
||||
colour : this.soundColor
|
||||
var code = '{"type": "wait"},\n';
|
||||
return code;
|
||||
*/;
|
||||
|
||||
battle_s
|
||||
: '强制战斗' IdString Newline
|
||||
|
||||
|
||||
/* battle_s
|
||||
tooltip : battle: 强制战斗
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=battle-%e5%bc%ba%e5%88%b6%e6%88%98%e6%96%97
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=battle%EF%BC%9A%E5%BC%BA%E5%88%B6%E6%88%98%E6%96%97
|
||||
default : ["greenSlime"]
|
||||
colour : this.dataColor
|
||||
var code = '{"type": "battle", "id": "'+IdString_0+'"},\n';
|
||||
@ -530,7 +522,7 @@ openDoor_s
|
||||
|
||||
/* openDoor_s
|
||||
tooltip : openDoor: 开门,楼层可不填表示当前层
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=opendoor-%e5%bc%80%e9%97%a8
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=opendoor%EF%BC%9A%E5%BC%80%E9%97%A8
|
||||
default : ["","",""]
|
||||
colour : this.dataColor
|
||||
IdString_0 = IdString_0 && (', "floorId": "'+IdString_0+'"');
|
||||
@ -544,7 +536,7 @@ changeFloor_s
|
||||
|
||||
/* changeFloor_s
|
||||
tooltip : changeFloor: 楼层切换,动画时间可不填
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=changefloor-%e6%a5%bc%e5%b1%82%e5%88%87%e6%8d%a2
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=changefloor%EF%BC%9A%E6%A5%BC%E5%B1%82%E5%88%87%E6%8D%A2
|
||||
default : ["MT1","0","0",null,500]
|
||||
colour : this.dataColor
|
||||
DirectionEx_List_0 = DirectionEx_List_0 && (', "direction": "'+DirectionEx_List_0+'"');
|
||||
@ -559,7 +551,7 @@ changePos_0_s
|
||||
|
||||
/* changePos_0_s
|
||||
tooltip : changePos: 当前位置切换
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=changepos-%e5%bd%93%e5%89%8d%e4%bd%8d%e7%bd%ae%e5%88%87%e6%8d%a2%e5%8b%87%e5%a3%ab%e8%bd%ac%e5%90%91
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=changepos%EF%BC%9A%E5%BD%93%E5%89%8D%E4%BD%8D%E7%BD%AE%E5%88%87%E6%8D%A2%E5%8B%87%E5%A3%AB%E8%BD%AC%E5%90%91
|
||||
default : ["","",null]
|
||||
colour : this.dataColor
|
||||
DirectionEx_List_0 = DirectionEx_List_0 && (', "direction": "'+DirectionEx_List_0+'"');
|
||||
@ -573,7 +565,7 @@ changePos_1_s
|
||||
|
||||
/* changePos_1_s
|
||||
tooltip : changePos: 勇士转向
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=changepos-%e5%bd%93%e5%89%8d%e4%bd%8d%e7%bd%ae%e5%88%87%e6%8d%a2%e5%8b%87%e5%a3%ab%e8%bd%ac%e5%90%91
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=changepos%EF%BC%9A%E5%BD%93%E5%89%8D%E4%BD%8D%E7%BD%AE%E5%88%87%E6%8D%A2%E5%8B%87%E5%A3%AB%E8%BD%AC%E5%90%91
|
||||
colour : this.dataColor
|
||||
default : [null]
|
||||
var code = '{"type": "changePos", "direction": "'+Direction_List_0+'"},\n';
|
||||
@ -586,7 +578,7 @@ openShop_s
|
||||
|
||||
/* openShop_s
|
||||
tooltip : 全局商店
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=%e5%85%a8%e5%b1%80%e5%95%86%e5%ba%97
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=openshop%EF%BC%9A%E6%89%93%E5%BC%80%E4%B8%80%E4%B8%AA%E5%85%A8%E5%B1%80%E5%95%86%E5%BA%97
|
||||
default : ["shop1"]
|
||||
var code = '{"type": "openShop", "id": "'+IdString_0+'"},\n';
|
||||
return code;
|
||||
@ -598,7 +590,7 @@ disableShop_s
|
||||
|
||||
/* disableShop_s
|
||||
tooltip : 全局商店
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=%e5%85%a8%e5%b1%80%e5%95%86%e5%ba%97
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=disableshop%EF%BC%9A%E7%A6%81%E7%94%A8%E4%B8%80%E4%B8%AA%E5%85%A8%E5%B1%80%E5%95%86%E5%BA%97
|
||||
default : ["shop1"]
|
||||
colour : this.eventColor
|
||||
var code = '{"type": "disableShop", "id": "'+IdString_0+'"},\n';
|
||||
@ -611,7 +603,7 @@ animate_s
|
||||
|
||||
/* animate_s
|
||||
tooltip : animate:显示动画,位置填hero或者1,2形式的位置,或者不填代表当前事件点
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=animate%ef%bc%9a%e6%98%be%e7%a4%ba%e5%8a%a8%e7%94%bb
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=animate%EF%BC%9A%E6%98%BE%E7%A4%BA%E5%8A%A8%E7%94%BB
|
||||
default : ["zone","hero"]
|
||||
colour : this.soundColor
|
||||
if (EvalString_0) {
|
||||
@ -635,7 +627,7 @@ showImage_0_s
|
||||
|
||||
/* showImage_0_s
|
||||
tooltip : showImage:显示图片
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=showimage%ef%bc%9a%e6%98%be%e7%a4%ba%e5%9b%be%e7%89%87
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=showimage%EF%BC%9A%E6%98%BE%E7%A4%BA%E5%9B%BE%E7%89%87
|
||||
default : ["bg.jpg","0","0"]
|
||||
colour : this.printColor
|
||||
var code = '{"type": "showImage", "name": "'+EvalString_0+'", "loc": ['+PosString_0+','+PosString_1+']},\n';
|
||||
@ -648,7 +640,7 @@ showImage_1_s
|
||||
|
||||
/* showImage_1_s
|
||||
tooltip : showImage:清除所有显示的图片
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=showimage%ef%bc%9a%e6%98%be%e7%a4%ba%e5%9b%be%e7%89%87
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=showimage%EF%BC%9A%E6%98%BE%E7%A4%BA%E5%9B%BE%E7%89%87
|
||||
colour : this.printColor
|
||||
var code = '{"type": "showImage"},\n';
|
||||
return code;
|
||||
@ -660,7 +652,7 @@ animateImage_0_s
|
||||
|
||||
/* animateImage_0_s
|
||||
tooltip : animageImage:图片淡入
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=animateimage%ef%bc%9a%e5%9b%be%e7%89%87%e6%b7%a1%e5%85%a5%e6%b7%a1%e5%87%b
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=animateimage%EF%BC%9A%E5%9B%BE%E7%89%87%E6%B7%A1%E5%85%A5%E6%B7%A1%E5%87%BA
|
||||
default : ["bg.jpg","0","0",500]
|
||||
colour : this.printColor
|
||||
var code = '{"type": "animateImage", "action": "show", "name": "'+EvalString_0+'", "loc": ['+PosString_0+','+PosString_1+'], "time": '+Int_0+'},\n';
|
||||
@ -673,7 +665,7 @@ animateImage_1_s
|
||||
|
||||
/* animateImage_1_s
|
||||
tooltip : animageImage:图片淡出
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=animateimage%ef%bc%9a%e5%9b%be%e7%89%87%e6%b7%a1%e5%85%a5%e6%b7%a1%e5%87%b
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=animateimage%EF%BC%9A%E5%9B%BE%E7%89%87%E6%B7%A1%E5%85%A5%E6%B7%A1%E5%87%BA
|
||||
default : ["bg.jpg","0","0",500]
|
||||
colour : this.printColor
|
||||
var code = '{"type": "animateImage", "action": "hide", "name": "'+EvalString_0+'", "loc": ['+PosString_0+','+PosString_1+'], "time": '+Int_0+'},\n';
|
||||
@ -686,7 +678,7 @@ showGif_0_s
|
||||
|
||||
/* showGif_0_s
|
||||
tooltip : showGif:显示动图
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=showgif%ef%bc%9a%e6%98%be%e7%a4%ba%e5%8a%a8%e5%9b%be
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=showgif%EF%BC%9A%E6%98%BE%E7%A4%BA%E5%8A%A8%E5%9B%BE
|
||||
default : ["bg.gif","0","0"]
|
||||
colour : this.printColor
|
||||
var code = '{"type": "showGif", "name": "'+EvalString_0+'", "loc": ['+PosString_0+','+PosString_1+']},\n';
|
||||
@ -699,7 +691,7 @@ showGif_1_s
|
||||
|
||||
/* showGif_1_s
|
||||
tooltip : showGif:清除所有显示的动图
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=showgif%ef%bc%9a%e6%98%be%e7%a4%ba%e5%8a%a8%e5%9b%be
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=showgif%EF%BC%9A%E6%98%BE%E7%A4%BA%E5%8A%A8%E5%9B%BE
|
||||
colour : this.printColor
|
||||
var code = '{"type": "showGif"},\n';
|
||||
return code;
|
||||
@ -712,7 +704,7 @@ moveImage_0_s
|
||||
|
||||
/* moveImage_0_s
|
||||
tooltip : moveImage:图片移动
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=moveImage%ef%bc%9a%e6%98%be%e7%a4%ba%e5%8a%a8%e5%9b%be
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=moveimage%EF%BC%9A%E5%9B%BE%E7%89%87%E7%A7%BB%E5%8A%A8
|
||||
default : ["bg.jpg","0","0","0","0",500]
|
||||
colour : this.printColor
|
||||
var code = '{"type": "moveImage", "name": "'+EvalString_0+'", "from": ['+PosString_0+','+PosString_1+'], "to": ['+PosString_2+','+PosString_3+'], "time": '+Int_0+'},\n';
|
||||
@ -725,7 +717,7 @@ setFg_0_s
|
||||
|
||||
/* setFg_0_s
|
||||
tooltip : setFg: 更改画面色调,动画时间可不填
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setfg-%e6%9b%b4%e6%94%b9%e7%94%bb%e9%9d%a2%e8%89%b2%e8%b0%83
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setfg%EF%BC%9A%E6%9B%B4%E6%94%B9%E7%94%BB%E9%9D%A2%E8%89%B2%E8%B0%83
|
||||
default : [255,255,255,1,500]
|
||||
colour : this.soundColor
|
||||
var limit = function(v,min,max) {
|
||||
@ -748,7 +740,7 @@ setFg_1_s
|
||||
|
||||
/* setFg_1_s
|
||||
tooltip : setFg: 恢复画面色调,动画时间可不填
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setfg-%e6%9b%b4%e6%94%b9%e7%94%bb%e9%9d%a2%e8%89%b2%e8%b0%83
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setfg%EF%BC%9A%E6%9B%B4%E6%94%B9%E7%94%BB%E9%9D%A2%E8%89%B2%E8%B0%83
|
||||
default : [500]
|
||||
colour : this.soundColor
|
||||
Int_0 = Int_0 ?(', "time": '+Int_0):'';
|
||||
@ -762,7 +754,7 @@ setWeather_s
|
||||
|
||||
/* setWeather_s
|
||||
tooltip : setWeather:更改天气
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setweather%ef%bc%9a%e6%9b%b4%e6%94%b9%e5%a4%a9%e6%b0%94
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setweather%EF%BC%9A%E6%9B%B4%E6%94%B9%E5%A4%A9%E6%B0%94
|
||||
default : [null,1]
|
||||
colour : this.soundColor
|
||||
if(Int_0<1 || Int_0>10) throw new Error('天气的强度等级, 在1-10之间');
|
||||
@ -777,7 +769,7 @@ move_s
|
||||
|
||||
/* move_s
|
||||
tooltip : move: 让某个NPC/怪物移动,位置可不填代表当前事件
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=move-%e8%ae%a9%e6%9f%90%e4%b8%aanpc%e6%80%aa%e7%89%a9%e7%a7%bb%e5%8a%a8
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=move%EF%BC%9A%E8%AE%A9%E6%9F%90%E4%B8%AAnpc%E6%80%AA%E7%89%A9%E7%A7%BB%E5%8A%A8
|
||||
default : ["","",500,null,"上右3下2左上左2"]
|
||||
colour : this.eventColor
|
||||
var floorstr = '';
|
||||
@ -795,7 +787,7 @@ moveHero_s
|
||||
|
||||
/* moveHero_s
|
||||
tooltip : moveHero:移动勇士,用这种方式移动勇士的过程中将无视一切地形, 无视一切事件, 中毒状态也不会扣血
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=movehero%ef%bc%9a%e7%a7%bb%e5%8a%a8%e5%8b%87%e5%a3%ab
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=movehero%EF%BC%9A%E7%A7%BB%E5%8A%A8%E5%8B%87%E5%A3%AB
|
||||
default : [500,"上右3下2左上左2"]
|
||||
colour : this.dataColor
|
||||
Int_0 = Int_0 ?(', "time": '+Int_0):'';
|
||||
@ -809,7 +801,7 @@ playBgm_s
|
||||
|
||||
/* playBgm_s
|
||||
tooltip : playBgm: 播放背景音乐
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=playbgm-%e6%92%ad%e6%94%be%e8%83%8c%e6%99%af%e9%9f%b3%e4%b9%90
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=playbgm%EF%BC%9A%E6%92%AD%E6%94%BE%E8%83%8C%E6%99%AF%E9%9F%B3%E4%B9%90
|
||||
default : ["bgm.mp3"]
|
||||
colour : this.soundColor
|
||||
var code = '{"type": "playBgm", "name": "'+EvalString_0+'"},\n';
|
||||
@ -822,7 +814,7 @@ pauseBgm_s
|
||||
|
||||
/* pauseBgm_s
|
||||
tooltip : pauseBgm: 暂停背景音乐
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=pausebgm-%e6%9a%82%e5%81%9c%e8%83%8c%e6%99%af%e9%9f%b3%e4%b9%90
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=pausebgm%EF%BC%9A%E6%9A%82%E5%81%9C%E8%83%8C%E6%99%AF%E9%9F%B3%E4%B9%90
|
||||
colour : this.soundColor
|
||||
var code = '{"type": "pauseBgm"},\n';
|
||||
return code;
|
||||
@ -834,7 +826,7 @@ resumeBgm_s
|
||||
|
||||
/* resumeBgm_s
|
||||
tooltip : resumeBgm: 恢复背景音乐
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=resumebgm-%e6%81%a2%e5%a4%8d%e8%83%8c%e6%99%af%e9%9f%b3%e4%b9%90
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=resumebgm%EF%BC%9A%E6%81%A2%E5%A4%8D%E8%83%8C%E6%99%AF%E9%9F%B3%E4%B9%90
|
||||
colour : this.soundColor
|
||||
var code = '{"type": "resumeBgm"},\n';
|
||||
return code;
|
||||
@ -846,7 +838,7 @@ playSound_s
|
||||
|
||||
/* playSound_s
|
||||
tooltip : playSound: 播放音效
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=playsound-%e6%92%ad%e6%94%be%e9%9f%b3%e6%95%88
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=playsound%EF%BC%9A%E6%92%AD%E6%94%BE%E9%9F%B3%E6%95%88
|
||||
default : ["item.ogg"]
|
||||
colour : this.soundColor
|
||||
var code = '{"type": "playSound", "name": "'+EvalString_0+'"},\n';
|
||||
@ -859,7 +851,7 @@ setVolume_s
|
||||
|
||||
/* setVolume_s
|
||||
tooltip : setVolume: 设置音量
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setVolume-%e8%ae%be%e7%bd%ae%e9%9f%b3%e9%87%8f
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setvolume%EF%BC%9A%E8%AE%BE%E7%BD%AE%E9%9F%B3%E9%87%8F
|
||||
default : [90]
|
||||
colour : this.soundColor
|
||||
var code = '{"type": "setVolume", "value": '+Int_0+'},\n';
|
||||
@ -872,7 +864,7 @@ win_s
|
||||
|
||||
/* win_s
|
||||
tooltip : win: 获得胜利, 该事件会显示获胜页面, 并重新游戏
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=win-%e8%8e%b7%e5%be%97%e8%83%9c%e5%88%a9
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=win%EF%BC%9A%E8%8E%B7%E5%BE%97%E8%83%9C%E5%88%A9
|
||||
default : [""]
|
||||
var code = '{"type": "win", "reason": "'+EvalString_0+'"},\n';
|
||||
return code;
|
||||
@ -884,7 +876,7 @@ lose_s
|
||||
|
||||
/* lose_s
|
||||
tooltip : lose: 游戏失败, 该事件会显示失败页面, 并重新开始游戏
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=lose-%e6%b8%b8%e6%88%8f%e5%a4%b1%e8%b4%a5
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=lose%EF%BC%9A%E6%B8%B8%E6%88%8F%E5%A4%B1%E8%B4%A5
|
||||
default : [""]
|
||||
var code = '{"type": "lose", "reason": "'+EvalString_0+'"},\n';
|
||||
return code;
|
||||
@ -896,7 +888,7 @@ input_s
|
||||
|
||||
/* input_s
|
||||
tooltip : input:接受用户输入, 事件只能接受非负整数输入, 所有非法的输入将全部变成0
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=input%ef%bc%9a%e6%8e%a5%e5%8f%97%e7%94%a8%e6%88%b7%e8%be%93%e5%85%a5
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=input%EF%BC%9A%E6%8E%A5%E5%8F%97%E7%94%A8%E6%88%B7%E8%BE%93%E5%85%A5
|
||||
default : ["请输入一个数"]
|
||||
colour : this.dataColor
|
||||
var code = '{"type": "input", "text": "'+EvalString_0+'"},\n';
|
||||
@ -909,7 +901,7 @@ if_s
|
||||
|
||||
/* if_s
|
||||
tooltip : if: 条件判断
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=if-%e6%9d%a1%e4%bb%b6%e5%88%a4%e6%96%ad
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=if%EF%BC%9A%E6%9D%A1%E4%BB%B6%E5%88%A4%E6%96%AD
|
||||
colour : this.eventColor
|
||||
var code = ['{"type": "if", "condition": "',expression_0,'",\n',
|
||||
'"true": [\n',action_0,'],\n',
|
||||
@ -918,6 +910,43 @@ var code = ['{"type": "if", "condition": "',expression_0,'",\n',
|
||||
return code;
|
||||
*/;
|
||||
|
||||
choices_s
|
||||
: '选项' ':' EvalString? BGNL? '标题' EvalString? '图像' IdString? BGNL? Newline choicesContext+ BEND Newline
|
||||
|
||||
|
||||
/* choices_s
|
||||
tooltip : choices: 给用户提供选项
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=choices%EF%BC%9A%E7%BB%99%E7%94%A8%E6%88%B7%E6%8F%90%E4%BE%9B%E9%80%89%E9%A1%B9
|
||||
default : ["","流浪者","woman"]
|
||||
var title='';
|
||||
if (EvalString_1==''){
|
||||
if (IdString_0=='')title='';
|
||||
else title='\\t['+IdString_0+']';
|
||||
} else {
|
||||
if (IdString_0=='')title='\\t['+EvalString_1+']';
|
||||
else title='\\t['+EvalString_1+','+IdString_0+']';
|
||||
}
|
||||
EvalString_0 = title+EvalString_0;
|
||||
EvalString_0 = EvalString_0 ?(', "text": "'+EvalString_0+'"'):'';
|
||||
var code = ['{"type": "choices"',EvalString_0,', "choices": [\n',
|
||||
choicesContext_0,
|
||||
']},\n'].join('');
|
||||
return code;
|
||||
*/;
|
||||
|
||||
choicesContext
|
||||
: '子选项' EvalString BGNL? Newline action+
|
||||
|
||||
|
||||
/* choicesContext
|
||||
tooltip : 选项的选择
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=choices%EF%BC%9A%E7%BB%99%E7%94%A8%E6%88%B7%E6%8F%90%E4%BE%9B%E9%80%89%E9%A1%B9
|
||||
default : ["提示文字:红钥匙"]
|
||||
colour : this.subColor
|
||||
var code = '{"text": "'+EvalString_0+'", "action": [\n'+action_0+']},\n';
|
||||
return code;
|
||||
*/;
|
||||
|
||||
while_s
|
||||
: '循环处理' ':' '当' expression '时' BGNL? Newline action+ BEND Newline
|
||||
|
||||
@ -953,40 +982,16 @@ var code = '{"type": "continue"},\n';
|
||||
return code;
|
||||
*/;
|
||||
|
||||
choices_s
|
||||
: '选项' ':' EvalString? BGNL? '标题' EvalString? '图像' IdString? BGNL? Newline choicesContext+ BEND Newline
|
||||
|
||||
wait_s
|
||||
: '等待用户操作并获得按键或点击信息'
|
||||
|
||||
|
||||
/* choices_s
|
||||
tooltip : choices: 给用户提供选项
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=choices-%e7%bb%99%e7%94%a8%e6%88%b7%e6%8f%90%e4%be%9b%e9%80%89%e9%a1%b9
|
||||
default : ["","流浪者","woman"]
|
||||
var title='';
|
||||
if (EvalString_1==''){
|
||||
if (IdString_0=='')title='';
|
||||
else title='\\t['+IdString_0+']';
|
||||
} else {
|
||||
if (IdString_0=='')title='\\t['+EvalString_1+']';
|
||||
else title='\\t['+EvalString_1+','+IdString_0+']';
|
||||
}
|
||||
EvalString_0 = title+EvalString_0;
|
||||
EvalString_0 = EvalString_0 ?(', "text": "'+EvalString_0+'"'):'';
|
||||
var code = ['{"type": "choices"',EvalString_0,', "choices": [\n',
|
||||
choicesContext_0,
|
||||
']},\n'].join('');
|
||||
return code;
|
||||
*/;
|
||||
|
||||
choicesContext
|
||||
: '子选项' EvalString BGNL? Newline action+
|
||||
|
||||
|
||||
/* choicesContext
|
||||
tooltip : 选项的选择
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=choices-%e7%bb%99%e7%94%a8%e6%88%b7%e6%8f%90%e4%be%9b%e9%80%89%e9%a1%b9
|
||||
default : ["提示文字:红钥匙"]
|
||||
colour : this.subColor
|
||||
var code = '{"text": "'+EvalString_0+'", "action": [\n'+action_0+']},\n';
|
||||
/* wait_s
|
||||
tooltip : wait: 等待用户操作并获得按键或点击信息(具体用法看文档)
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=wait%EF%BC%9A%E7%AD%89%E5%BE%85%E7%94%A8%E6%88%B7%E6%93%8D%E4%BD%9C
|
||||
colour : this.soundColor
|
||||
var code = '{"type": "wait"},\n';
|
||||
return code;
|
||||
*/;
|
||||
|
||||
@ -996,7 +1001,7 @@ function_s
|
||||
|
||||
/* function_s
|
||||
tooltip : function: 自定义JS脚本
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=function-%e8%87%aa%e5%ae%9a%e4%b9%89js%e8%84%9a%e6%9c%ac
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=function%EF%BC%9A%E8%87%AA%E5%AE%9A%E4%B9%89js%E8%84%9A%E6%9C%AC
|
||||
default : ["alert(core.getStatus(\"atk\"));"]
|
||||
colour : this.dataColor
|
||||
var code = '{"type": "function", "function": "function(){\\n'+JSON.stringify(RawEvalString_0).slice(1,-1).split('\\\\n').join('\\n')+'\\n}"},\n';
|
||||
|
||||
10
docs/api.md
10
docs/api.md
@ -181,10 +181,18 @@ core.getBlock(x, y, floorId, needEnable)
|
||||
获得某个点的当前图块信息。
|
||||
x和y为坐标;floorId为楼层ID,可忽略或null表示当前楼层。
|
||||
needEnable表示该点是否启用时才返回,其值不设置则默认为true。
|
||||
该函数返回值如下: {"index": xxx, "block": xxx}
|
||||
如果该点不存在图块,则返回null。
|
||||
否则,返回值如下: {"index": xxx, "block": xxx}
|
||||
其中index为该点在该楼层blocks数组中的索引,block为该图块实际内容。
|
||||
|
||||
|
||||
core.getBlockId(x, y, floorId, needEnable)
|
||||
获得某个点的图块ID
|
||||
x和y为坐标;floorId为楼层ID,可忽略或null表示当前楼层。
|
||||
needEnable表示是否需要该点处于启用状态才返回,其值不设置则默认为true。
|
||||
如果该点不存在图块,则返回null,否则返回该点的图块ID。
|
||||
|
||||
|
||||
core.showBlock(x, y, floorId)
|
||||
将某个点从禁用变成启用状态
|
||||
|
||||
|
||||
@ -36,7 +36,8 @@
|
||||
|
||||
## 怪物
|
||||
|
||||
本塔支持的怪物列表参见`enemys.js`。其与images目录下的`enemys.png`素材按顺序一一对应。如不知道怪物素材长啥样的请打开`enemys.png`对比查看。
|
||||
本塔支持的怪物列表参见`project/enemys.js`。其与images目录下的`enemys.png`素材按顺序一一对应。
|
||||
|
||||
如有自己的怪物素材需求请参见[自定义素材](personalization#自定义素材)的内容。
|
||||
|
||||
怪物可以有特殊属性,每个怪物可以有多个自定义属性。
|
||||
@ -89,27 +90,23 @@ enemys.prototype.getSpecialText = function (enemyId) {
|
||||
|
||||
下面的`getSpecialHint`函数则给定了每个特殊属性的详细描述。这个描述将在怪物手册中看到。
|
||||
|
||||
**打败怪物后可以进行加点操作。有关加点塔的制作可参见[加点事件](event#加点事件)。**
|
||||
打败怪物后可以进行加点操作。有关加点塔的制作可参见[加点事件](event#加点事件)。
|
||||
|
||||
如果`data.js`中的enableExperience为false,即不启用经验的话,怪物手册里将不显示怪物的经验值,打败怪物也不获得任何经验。
|
||||
|
||||
拿到幸运金币后,打怪获得的金币将翻倍。
|
||||
|
||||
如果怪物有`"notBomb": true`,则该系列诖怪物均不可被炸。
|
||||
|
||||
N连击怪物的special是6,且我们可以为它定义n代表实际连击数。参见样板中剑王的写法。
|
||||
|
||||

|
||||
|
||||
吸血怪需要在怪物后添加value,代表吸血的比例。
|
||||
吸血怪需要给怪物设置value,代表吸血的比例。
|
||||
|
||||
可以给吸血怪添加`'add': true`来将吸血的数值加到自身上。
|
||||
|
||||

|
||||
|
||||
中毒怪让勇士中毒后,每步扣减的生命值由`data.js`中的values定义。
|
||||
|
||||
衰弱怪让勇士衰弱后,攻防会暂时下降一定的数值(直到衰弱状态解除恢复);这个下降的数值同在`data.js`中的values定义。
|
||||
|
||||

|
||||
衰弱怪让勇士衰弱后,攻防会下降一定比例或固定数值(直到衰弱状态解除恢复);其在`data.js`中的values定义。
|
||||
|
||||
诅咒怪将让勇士陷入诅咒状态,诅咒状态下杀怪不获得金币和经验值。
|
||||
|
||||
@ -117,21 +114,17 @@ N连击怪物的special是6,且我们可以为它定义n代表实际连击数
|
||||
|
||||
领域是十字伤害还是九宫格伤害由`zoneSquare`设定,如设置为true则为九宫格伤害,不指定或为false则为十字伤害。
|
||||
|
||||
`range`选项可选,代表该领域怪的范围,不写则默认为1。
|
||||
领域怪还可以设置`range`选项代表该领域怪的范围,不写则默认为1。
|
||||
|
||||

|
||||
|
||||
阻击怪同样需要在怪物后添加value,代表领域伤害的数值。如果勇士生命值扣减到0,则直接死亡触发lose事件。
|
||||
阻击怪同样需要设置value,代表领域伤害的数值。如果勇士生命值扣减到0,则直接死亡触发lose事件。
|
||||
|
||||
!> 阻击怪后退的地点不能有任何事件存在,即使是已经被禁用的自定义事件!
|
||||
|
||||
请注意如果吸血、领域、阻击中任何两个同时存在,则value会冲突。**因此请勿将吸血、领域或阻击放置在同一个怪物身上。**
|
||||
|
||||
退化怪需要在后面增加'atkValue'和'defValue'表示退化的数值。
|
||||
退化怪需要设置'atkValue'和'defValue'表示退化的数值;也可以不设置默认为0。
|
||||
|
||||

|
||||
|
||||
固伤怪则需要在后面增加`damage`选项,代表战前扣血数值。
|
||||
固伤怪则需要设置`damage`选项,代表战前扣血数值。
|
||||
|
||||
如有额外需求,可参见[自定义怪物属性](personalization#自定义自定义怪物属性),里面讲了如何设置一个新的怪物属性。
|
||||
|
||||
@ -197,12 +190,12 @@ floorId指定的是目标楼层的唯一标识符(ID)。
|
||||
|
||||
本塔支持BGM和SE的播放。
|
||||
|
||||
要播放音乐和音效,你需要将对应的文件放在sounds目录下,然后在main.js中进行定义
|
||||
要播放音乐和音效,你需要将对应的文件放在sounds目录下,然后在全塔属性中进行定义
|
||||
|
||||
``` js
|
||||
"bgms": [ // 在此存放所有的bgm,和文件名一致。第一项为默认播放项
|
||||
// 音频名不能使用中文,不能带空格或特殊字符;可以直接改名拼音就好
|
||||
'bgm.mp3', 'qianjin.mid', 'star.mid',
|
||||
'bgm.mp3'
|
||||
];
|
||||
"sounds": [ // 在此存放所有的SE,和文件名一致
|
||||
// 音频名不能使用中文,不能带空格或特殊字符;可以直接改名拼音就好
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
|
||||
它能通过拖动、复制粘贴等方式帮助你快速生成事件列表,而不用手动打大量字符。
|
||||
|
||||
但是,仍然强烈建议要对每个事件的写法进行了解。
|
||||
但是,仍然强烈建议要对每个事件的写法进行了解,因为在脚本编辑,`insertAction`等地方需要插入自定义事件时,还是很有必要的。
|
||||
|
||||
## 自定义事件
|
||||
|
||||
@ -264,6 +264,7 @@
|
||||
- `flag:xxx` 中的xxx为一个自定义的变量/Flag;如果没有对其进行赋值则默认值为false。
|
||||
|
||||
另外,有个小`trick`。是否想立刻知道显示效果?
|
||||
|
||||
你可以用Chrome浏览器打开游戏,按Ctrl+Shift+I打开开发者工具,找到Console(控制台),并中输入`core.drawText("...")` 即可立刻看到文字显示的效果。适当调整文字,使得显示效果满意后,再复制粘贴到你的剧情文本中。
|
||||
|
||||

|
||||
@ -322,7 +323,7 @@ time为可选项,表示文字添加的速度。若此项设置为0将直接全
|
||||
]
|
||||
```
|
||||
|
||||
值得注意的是,提示的text内容是可以使用`${ }`来计算表达式的值的。
|
||||
值得注意的是,提示的text内容也是可以使用`${ }`来计算表达式的值的。
|
||||
|
||||
### setValue:设置勇士的某个属性、道具个数,或某个变量/Flag的值
|
||||
|
||||
@ -356,7 +357,7 @@ value是一个表达式,将通过这个表达式计算出的结果赋值给nam
|
||||
|
||||
另外注意一点的是,如果hp被设置成了0或以下,将触发lose事件,直接死亡。
|
||||
|
||||
### show: 将一个禁用事件启用
|
||||
### show:将一个禁用事件启用
|
||||
|
||||
我们上面提到了,所有事件都必须靠其他事件驱动来完成,不存在当某个flag为true时自动执行的说法。那么,我们自然要有启用事件的写法。
|
||||
|
||||
@ -381,7 +382,7 @@ time为动画效果时间,如果指定了某个大于0的数,则会以动画
|
||||
|
||||
!> **要注意的是,调用show事件后只是让该事件从禁用状态变成启用,从不可见不可交互变成可见可交互,但本身不会去执行该点的事件。**
|
||||
|
||||
### hide: 将一个启用事件禁用
|
||||
### hide:将一个启用事件禁用
|
||||
|
||||
`{"type":"hide"}`和show刚好相反,它会让一个已经启用的事件被禁用。
|
||||
|
||||
@ -407,7 +408,7 @@ NPC对话事件结束后如果需要NPC消失也需要调用 `{"type": "hide"}`
|
||||
]
|
||||
```
|
||||
|
||||
### trigger: 立即触发另一个地点的事件
|
||||
### trigger:立即触发另一个地点的事件
|
||||
|
||||
`{"type":"trigger"}` 会立刻触发当层另一个地点的自定义事件。
|
||||
|
||||
@ -428,7 +429,7 @@ NPC对话事件结束后如果需要NPC消失也需要调用 `{"type": "hide"}`
|
||||
|
||||
例如上面这个例子,下面的文字将不会再被显示,而是直接跳转到`"3,6"`对应的事件列表从头执行。
|
||||
|
||||
### revisit: 立即重启当前事件
|
||||
### revisit:立即重启当前事件
|
||||
|
||||
revisit和trigger完全相同,只不过是立刻触发的还是本地点的事件
|
||||
|
||||
@ -443,7 +444,7 @@ revisit其实是trigger的简写,只不过是loc固定为当前点。
|
||||
|
||||
revisit常常使用在一些商人之类的地方,当用户购买物品后不是离开,而是立刻重新访问重新进入购买页面。
|
||||
|
||||
### exit: 立刻结束当前事件
|
||||
### exit:立刻结束当前事件
|
||||
|
||||
上面说到像商人一类,购买物品后可以立刻revisit重新访问,但是这样就相当于陷入了死循环导致无法离开。
|
||||
|
||||
@ -504,11 +505,11 @@ name是可选的,代表目标行走图的文件名。
|
||||
|
||||
如果你需要同时修改勇士的名称,可以使用`setValue`事件来修改`status:name`,但请注意value必须加单引号,不然会报错。
|
||||
|
||||
### update: 立刻更新状态栏和地图显伤
|
||||
### update:立刻更新状态栏和地图显伤
|
||||
|
||||
如果你需要刷新状态栏和地图显伤,只需要简单地调用 `{"type": "update"}` 即可。
|
||||
|
||||
### sleep: 等待多少毫秒
|
||||
### sleep:等待多少毫秒
|
||||
|
||||
等价于RMXP中的"等待x帧",不过是以毫秒来计算。
|
||||
|
||||
@ -521,7 +522,7 @@ name是可选的,代表目标行走图的文件名。
|
||||
]
|
||||
```
|
||||
|
||||
### battle: 强制战斗
|
||||
### battle:强制战斗
|
||||
|
||||
调用battle可强制与某怪物进行战斗(而无需去触碰到它)。
|
||||
|
||||
@ -552,7 +553,7 @@ name是可选的,代表目标行走图的文件名。
|
||||
|
||||
强制战斗没有指定loc的选项,因此战斗后需要调用hide使怪物消失(如果有必要)。
|
||||
|
||||
### openDoor: 开门
|
||||
### openDoor:开门
|
||||
|
||||
调用`{"type":"openDoor"}`可以打开一扇门。
|
||||
|
||||
@ -569,7 +570,7 @@ loc指定门的坐标,floorId指定门所在的楼层ID。如果是当前层
|
||||
|
||||
如果loc所在的点既不是门也不是墙壁,则忽略本事件。
|
||||
|
||||
### changeFloor: 楼层切换
|
||||
### changeFloor:楼层切换
|
||||
|
||||
在事件中也可以对楼层进行切换。一个比较典型的例子就是TSW中,勇士在三楼的陷阱被扔到了二楼,就是一个楼层切换事件。
|
||||
|
||||
@ -594,7 +595,7 @@ time为可选的,指定的话将作为楼层切换动画的时间。
|
||||
|
||||
!> **changeFloor到达一个新的楼层,将不会执行firstArrive事件!如有需求请在到达点设置自定义事件,然后使用type: trigger立刻调用之。**
|
||||
|
||||
### changePos: 当前位置切换/勇士转向
|
||||
### changePos:当前位置切换/勇士转向
|
||||
|
||||
有时候我们不想要楼层切换的动画效果,而是直接让勇士从A点到B点。
|
||||
|
||||
@ -608,11 +609,11 @@ time为可选的,指定的话将作为楼层切换动画的时间。
|
||||
]
|
||||
```
|
||||
|
||||
### openShop: 打开一个全局商店
|
||||
### openShop:打开一个全局商店
|
||||
|
||||
使用openShop可以打开一个全局商店。有关全局商店的说明可参见[全局商店](#全局商店)。
|
||||
|
||||
### disableShop: 禁用一个全局商店
|
||||
### disableShop:禁用一个全局商店
|
||||
|
||||
使用disableShop可以永久禁用全局商店直到再次被openShop打开为止。有关全局商店的说明可参见[全局商店](#全局商店)。
|
||||
|
||||
@ -722,7 +723,7 @@ time为总移动的时间。
|
||||
|
||||
!> 移动图片只是会在顶层绘制“移动”效果,动画结束即消失,并不会实际对图片的显示造成影响。请与showImage事件合用。
|
||||
|
||||
### setFg: 更改画面色调
|
||||
### setFg:更改画面色调
|
||||
|
||||
我们可以使用 `{"type": "setFg"}` 来更改画面色调。
|
||||
|
||||
@ -762,7 +763,7 @@ level为天气的强度等级,在1-10之间。1级为最弱,10级为最强
|
||||
|
||||
!> 使用setWeather更改的天气在切换地图后会被目标地图的默认天气覆盖。
|
||||
|
||||
### move: 让某个NPC/怪物移动
|
||||
### move:让某个NPC/怪物移动
|
||||
|
||||
如果我们需要移动某个NPC或怪物,可以使用`{"type": "move"}`。
|
||||
|
||||
@ -832,7 +833,7 @@ move完毕后移动的NPC/怪物一定会消失,只不过可以通过immediate
|
||||
|
||||
不过值得注意的是,用这种方式移动勇士的过程中将无视一切地形,无视一切事件,中毒状态也不会扣血。
|
||||
|
||||
### playBgm: 播放背景音乐
|
||||
### playBgm:播放背景音乐
|
||||
|
||||
使用playBgm可以播放一个背景音乐。
|
||||
|
||||
@ -844,15 +845,15 @@ move完毕后移动的NPC/怪物一定会消失,只不过可以通过immediate
|
||||
|
||||
有关BGM播放的详细说明参见[背景音乐](element#背景音乐)
|
||||
|
||||
### pauseBgm: 暂停背景音乐
|
||||
### pauseBgm:暂停背景音乐
|
||||
|
||||
使用`{"type": "pauseBgm"}`可以暂停背景音乐的播放。
|
||||
|
||||
### resumeBgm: 恢复背景音乐
|
||||
### resumeBgm:恢复背景音乐
|
||||
|
||||
使用`{"type": "resumeBgm"}`可以恢复背景音乐的播放。
|
||||
|
||||
### playSound: 播放音效
|
||||
### playSound:播放音效
|
||||
|
||||
使用playSound可以立刻播放一个音效。
|
||||
|
||||
@ -868,7 +869,7 @@ move完毕后移动的NPC/怪物一定会消失,只不过可以通过immediate
|
||||
|
||||
value为音量大小,在0到100之间,默认为100。设置后,BGM和SE都将使用该音量进行播放。
|
||||
|
||||
### win: 获得胜利
|
||||
### win:获得胜利
|
||||
|
||||
`{"type": "win", "reason": "xxx"}` 将会直接调用events.js中的win函数,并将reason作为结局传入。
|
||||
|
||||
@ -876,7 +877,7 @@ value为音量大小,在0到100之间,默认为100。设置后,BGM和SE都
|
||||
|
||||
!> 如果`reason`不为空,则会以reason作为获胜的结局!
|
||||
|
||||
### lose: 游戏失败
|
||||
### lose:游戏失败
|
||||
|
||||
`{"type": "lose", "reason": "xxx"}` 将会直接调用`events.js`中的lose函数,并将reason作为参数传入。
|
||||
|
||||
@ -901,7 +902,7 @@ text为提示文字,可以在这里给输入提示文字。这里同样可以
|
||||
|
||||
输入得到的结果将被赋值给flag:input,可以供后续if来进行判断。
|
||||
|
||||
### if: 条件判断
|
||||
### if:条件判断
|
||||
|
||||
使用`{"type": "if"}`可以对条件进行判断,根据判断结果将会选择不同的分支执行。
|
||||
|
||||
@ -952,7 +953,7 @@ text为提示文字,可以在这里给输入提示文字。这里同样可以
|
||||
- if可以不断进行嵌套,一层套一层;如成立的场合再进行另一个if判断等。
|
||||
- if语句内的内容执行完毕后将接着其后面的语句继续执行。
|
||||
|
||||
### choices: 给用户提供选项
|
||||
### choices:给用户提供选项
|
||||
|
||||
choices是一个很麻烦的事件,它将弹出一个列表供用户进行选择。
|
||||
|
||||
@ -1153,7 +1154,6 @@ choices为一个数组,其中每一项都是一个选项列表。
|
||||
|
||||
```
|
||||
|
||||
|
||||
### function: 自定义JS脚本
|
||||
|
||||
上述给出了这么多事件,但有时候往往不能满足需求,这时候就需要执行自定义脚本了。
|
||||
@ -1169,23 +1169,7 @@ choices为一个数组,其中每一项都是一个选项列表。
|
||||
|
||||
`{"type":"function"}`需要有一个`"function"`参数,它是一个JS函数,里面可以写任何自定义的JS脚本;系统将会执行它。
|
||||
|
||||
系统所有支持的API都在[附录](api)中给出。
|
||||
|
||||
这里只简单列出给一些最常见的API:
|
||||
|
||||
``` js
|
||||
core.getStatus(name) //获得勇士的某个属性(hp/atk/def/…)
|
||||
core.setStatus(name, value) //设置勇士某个属性值为value
|
||||
core.itemCount(name) //获得某个道具的个数
|
||||
core.getItem(name, count) //获得某个道具count个
|
||||
core.setItem(name, value) //设置某个道具为value个
|
||||
core.getFlag(name, defaultValue) //获得某个自定义变量flag;如果未定义则返回defaultValue
|
||||
core.setFlag(name, value) //将某个自定义变量/flag设置为value
|
||||
core.hasFlag(name) //判断某个自定义flag是否成立。只有被被赋值过,且不为0或false时才会返回true。
|
||||
core.updateStatusBar() //立刻更新状态栏和地图显伤。(上面各种get和set均不会对状态栏和地图显伤更新,需要手动调用这个函数。)
|
||||
core.insertAction(list) //往当前事件列表中插入一系列事件。使用这个函数插入的事件将在这段自定义JS脚本执行完毕后立刻执行。
|
||||
// ……
|
||||
```
|
||||
系统所有支持的API都在[附录](api)中给出,请进行参照。
|
||||
|
||||
## 同一个点的多事件处理
|
||||
|
||||
@ -1197,7 +1181,7 @@ core.insertAction(list) //往当前事件列表中插入一系列事件。使用
|
||||
|
||||
下面以几个具体例子来进行详细说明。
|
||||
|
||||
### 打怪掉宝(怪物->道具)
|
||||
### 打怪掉宝
|
||||
|
||||
我们注意到怪物和道具都是系统默认事件,因此无需写events,而是直接在afterBattle中setBlock即可。
|
||||
|
||||
@ -1209,22 +1193,24 @@ core.insertAction(list) //往当前事件列表中插入一系列事件。使用
|
||||
}
|
||||
```
|
||||
|
||||
### 打怪变成可对话的NPC(怪物->NPC)
|
||||
### 打怪变成楼梯
|
||||
|
||||
由于NPC是自定义事件,因此我们需要写events。注意到events中不覆盖trigger,则还是怪物时,存在系统trigger因此会战斗;变成NPC后没有系统trigger因此会触发自定义事件。
|
||||
因为涉及到多事件处理,因此我们不能写changeFloor那一项,而是使用events(自定义事件里写楼层转换)。
|
||||
|
||||
注意到events中不覆盖trigger,则还是怪物时,存在系统trigger因此会战斗并触发afterBattle;变成NPC后没有系统trigger因此会触发自定义事件(楼层转换)。
|
||||
|
||||
请注意打死怪物时默认会禁用该点,因此替换后需要手动进行show来启用。
|
||||
|
||||
``` js
|
||||
"events": {
|
||||
"x,y": [
|
||||
"可对话的NPC"
|
||||
{"type": "changeFloor", "loc": [0,0], "floorId": "MT1"}
|
||||
]
|
||||
},
|
||||
"afterBattle": {
|
||||
"x,y": [
|
||||
{"type": "setBlock", "number": 121}, // 变成老人
|
||||
{"type": "show", "loc": [x,y]} // 启用该点
|
||||
{"type": "setBlock", "number": 87}, // 变成上楼梯
|
||||
{"type": "show"} // 启用该点
|
||||
]
|
||||
}
|
||||
```
|
||||
@ -1264,6 +1250,7 @@ core.insertAction(list) //往当前事件列表中插入一系列事件。使用
|
||||
- 触发器(trigger)亦采用覆盖原则,即**首先取该图块的默认触发器(例如怪物是battle,道具是getItem,门是openDoor),如果剧本的events中定义了该点的trigger则覆盖**。
|
||||
- 可以通过if语句和flag来控制自定义事件具体走向哪个分支。
|
||||
- 如果弄不清楚系统trigger和自定义事件等的区别,也可以全部覆盖为自定义事件,然后通过type:battle,type:openDoor等来具体进行控制。
|
||||
- 多事件处理时请不要使用`changeFloor`那一项,而是使用`events`或者`afterXXX`来处理。
|
||||
|
||||
## 加点事件
|
||||
|
||||
@ -1273,13 +1260,7 @@ core.insertAction(list) //往当前事件列表中插入一系列事件。使用
|
||||
|
||||
如果要对某个怪物进行加点操作,则首先需要修改该怪物的`point`数值,代表怪物本身的加点数值。
|
||||
|
||||
``` js
|
||||
... 'def': 0, 'money': 1, 'experience': 1, 'point': 1, 'special': 0}, // 在怪物后面添加point代表怪物的加点数
|
||||
```
|
||||
|
||||
然后在`functions.js`文件中找到`addPoint`函数。它将返回一个choices事件。修改此函数为我们需要的加点项即可。
|
||||
|
||||
!> V2.0版本可以直接在“脚本编辑 - 加点事件”中双击进行修改!
|
||||
然后在脚本编辑中找到加点事件,双击进行修改。它将返回一个choices事件。修改此函数为我们需要的加点项即可。
|
||||
|
||||
``` js
|
||||
////// 加点事件 //////
|
||||
@ -1315,6 +1296,8 @@ core.insertAction(list) //往当前事件列表中插入一系列事件。使用
|
||||
|
||||
全局商店定义在`data.js`中,找到shops一项。
|
||||
|
||||
从V2.2以后,全局商店也可以使用图块进行编辑,但仍需知道每一项的使用。
|
||||
|
||||
``` js
|
||||
"shops": [ // 定义全局商店(即快捷商店)
|
||||
{
|
||||
|
||||
BIN
docs/img/plugin.png
Normal file
BIN
docs/img/plugin.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
@ -75,7 +75,7 @@ images为一个数组,代表当前层所有作为背景素材的图片信息
|
||||
|
||||
如果第四项为true,则会在前景层(event2)上绘制,能覆盖勇士,常常用来作为柱子的上半部分等情况。
|
||||
|
||||
**如果你需要让某些点不可通行(比如你建了个房子,墙壁和家具等位置不让通行),则需在`events`中指定`{"noPass": false}`,参见[自定义事件](event#自定义事件)的写法。
|
||||
**如果你需要让某些点不可通行(比如你建了个房子,墙壁和家具等位置不让通行),则需在`events`中指定`{"noPass": false}`,参见[自定义事件](event#自定义事件)的写法。**
|
||||
|
||||
``` js
|
||||
"events": {
|
||||
@ -114,8 +114,35 @@ images为一个数组,代表当前层所有作为背景素材的图片信息
|
||||
|
||||
**`ID-数字` 对应关系定义在maps.js文件中。该文件将唯一确定一个ID对应的数字是多少。**
|
||||
|
||||
如果需要添加一个素材到游戏,则必须为其分配一个唯一标识符,并同时修改`icons.js`和`maps.js`两个文件。
|
||||
在V2.0中,我们可以在地图编辑器中很方便查看每个图块的三个属性信息。
|
||||
|
||||
#### 注册素材
|
||||
|
||||
在V2.0的地图编辑器中,要注册新素材,我们只需要在图块属性一栏输入新素材的ID和数字。
|
||||
|
||||

|
||||
|
||||
ID必须由数字字母下划线组成,数字在1000以内,且均不能和已有的进行重复。
|
||||
|
||||
之后刷新编辑器即可。
|
||||
|
||||
对于怪物和道具,我们也可以进行自动注册,只需要点击“自动注册”按钮,将对该栏下所有未注册的素材进行自动注册(自动分配ID和数字)。
|
||||
|
||||
素材注册完毕后,即可在游戏中正常使用,也可以被地图生成器所识别(需要重开地图生成器)。
|
||||
|
||||
#### Autotile的注册
|
||||
|
||||
但是,通过上面这种方式,我们是没办法新增并注册Autotile的。
|
||||
|
||||
除了替换样板现有的几个外,如果我们还需要新添加Autotile,则:
|
||||
|
||||
1. 将新的Autotile图片复制到images目录下。文件名必须是字母数字和下划线组成。
|
||||
2. 进入icons.js,在autotile分类下进行添加该文件的名称,索引简单的写0。
|
||||
3. 指定一个数字,在maps.js中类似进行添加。
|
||||
|
||||
!> Autotile的ID和文件名应确保完全相同!
|
||||
|
||||
<!--
|
||||
#### 新添加自定义地形(路面、墙壁等)
|
||||
|
||||
如果你在terrains.png中新增了一行:
|
||||
@ -177,6 +204,8 @@ images为一个数组,代表当前层所有作为背景素材的图片信息
|
||||
|
||||
!> 如果是48x32的怪物素材,请放在npc48.png中,然后在icons.js的npc48下添加索引。
|
||||
|
||||
-->
|
||||
|
||||
### 地图生成器使用自定义素材
|
||||
|
||||
地图生成器是直接从js文件中读取数字-图标对应关系的。
|
||||
@ -196,7 +225,7 @@ images为一个数组,代表当前层所有作为背景素材的图片信息
|
||||
如果你想要同种宝石在不同层效果不同的话,可以进行如下操作:
|
||||
|
||||
1. 在楼层的item_ratio中定义宝石的比率(比如1-10的写1,11-20层写2等)
|
||||
2. 修改获得道具的itemEffect函数(在items.js中的itemEffect中编辑,V2.0中也可以使用编辑器)
|
||||
2. 修改获得道具的itemEffect函数(编辑器中双击进行编辑)
|
||||
|
||||
``` js
|
||||
// ratio为楼层的item_ratio值,可以进行翻倍宝石属性
|
||||
@ -278,7 +307,7 @@ control.prototype.checkBlock = function () {
|
||||
}
|
||||
// ... 下略
|
||||
```
|
||||
4. 如果有更高的需求,例如想让吸血效果变成一半(如异空间),则还是在上面这些地方进行对应的修改即可。
|
||||
4. 如果有更高的需求,例如想让吸血效果变成一半,则还是在上面这些地方进行对应的修改即可。
|
||||
|
||||
## 自定义装备
|
||||
|
||||
@ -359,7 +388,7 @@ this.useEquipment = function (itemId) { // 使用装备
|
||||
|
||||
你需自己指定一个special数字,修改getSpecialText函数(属性名)和getSpecialHint函数(属性提示文字)。
|
||||
|
||||
如果要修改伤害计算公式,请修改下面的calDamage函数。请注意,如果无法战斗,该函数必须返回`null`。
|
||||
如果要修改伤害计算公式,请修改下面的getDamageInfo函数。请注意,如果无法战斗,该函数必须返回`null`。
|
||||
|
||||
对于毒衰弱怪物的战斗后结算在`functions.js`中的afterBattle函数中。
|
||||
|
||||
@ -367,6 +396,209 @@ this.useEquipment = function (itemId) { // 使用装备
|
||||
|
||||
`getCritical`, `getCriticalDamage`和`getDefDamage`三个函数依次计算的是该怪物的临界值、临界减伤和1防减伤。也可以适当进行修改。
|
||||
|
||||
## 公共事件
|
||||
|
||||
在RM中,存在公共事件的说法;也就是通过某个指令来调用一系列事件的触发。
|
||||
|
||||
在H5中,我们可以使用“插件”的形式来达成这个效果。具体参见“脚本编辑 - 插件编写”。
|
||||
|
||||

|
||||
|
||||
当我们在这上面定义了自己需要的函数(插件后),就可以通过任何方式进行调用。
|
||||
|
||||
在这个插件编写的过程中,我们可以使用任何[常见API](api)里面的代码调用;也可以通过`core.insertAction`来插入自定义事件执行。
|
||||
|
||||
下面是一个很简单的例子,我编写一个公共事件(插件),其效果是让勇士生命值变成原来的x倍,并令面前的图块消失。
|
||||
|
||||
``` js
|
||||
this.myfunc = function(x) {
|
||||
core.status.hero.hp *= x; // 勇士生命翻若干倍
|
||||
core.insertAction([ // 自定义事件:令面前的图块消失。
|
||||
{"type": "setValue", "name": "flag:x", "value": "core.nextX()"},
|
||||
{"type": "setValue", "name": "flag:y", "value": "core.nextY()"},
|
||||
{"type": "hide", "loc": ["flag:x", "flag:y"]}
|
||||
]);
|
||||
}
|
||||
```
|
||||
|
||||
然后比如我们在某个道具的使用效果 `useItemEffect` 中写 `core.plugin.myfunc(2)` 即可调用此公共事件(插件)。也可以在战后事件或自定义脚本等位置来写。
|
||||
|
||||
通过这种,将脚本和自定义事件混用的方式,可以达到和RM中公共事件类似的效果,即一个调用触发一系列事件。
|
||||
|
||||
## 自定义状态栏(新增显示项)
|
||||
|
||||
在V2.2以后,我们可以自定义状态栏背景图(全塔属性 - statusLeftBackground)等等。
|
||||
|
||||
但是,如果我们还想新增其他项目的显示,比如技能塔所需要的魔力值(气息),该怎么办?
|
||||
|
||||
需要进行如下几个操作:
|
||||
|
||||
1. 定义图标ID;比如魔力我就定义mana,气息可以简单的定义qixi;你也可以定义其他的ID,但是不能和已有的重复。这里以mana为例。
|
||||
2. 在index.html的statusBar中(44行起),进行该状态栏项的定义。仿照其他几项,插在其应当显示的位置,注意替换掉相应的ID。
|
||||
``` html
|
||||
<div class="status" id="manaCol">
|
||||
<img id="img-mana">
|
||||
<p class='statusLabel' id='mana'></p>
|
||||
</div>
|
||||
```
|
||||
3. 在editor.html中的statusBar(305行起),仿照第二点同样添加;这一项如果不进行则会地图编辑器报错。
|
||||
4. 使用便捷PS工具,打开icons.png,新增一行并将魔力的图标P上去;记下其索引比如23(减速播放图标的下方)。
|
||||
5. 在main.js的this.statusBar中增加图片、图标和内容的定义。
|
||||
``` js
|
||||
this.statusBar = {
|
||||
'images': {
|
||||
// ...其他略
|
||||
'mana': document.getElementById("img-mana"), // 图片的定义
|
||||
},
|
||||
'icons': {
|
||||
// ...其他略
|
||||
'mana': 23, // 图标的定义,这里对应的是icons.png中的索引
|
||||
},
|
||||
// ...其他略
|
||||
'mana': document.getElementById('mana'), // 显示内容(数据)的定义
|
||||
}
|
||||
```
|
||||
6. 显示内容的设置。在control.js的updateStatusBar函数,可以对该状态栏显示内容进行设置,下面是几个例子。
|
||||
``` js
|
||||
core.statusBar.mana.innerHTML = core.getFlag('mana', 0); // 设置其显示内容为flag:mana值。
|
||||
core.statusBar.mana.innerHTML = core.getFlag('mana', 0) + '/' + core.getFlag('manaMax', 0); // 显示内容将类似 "32/60" 这样。
|
||||
core.statusBar.mana.style.fontStyle = 'normal'; // 这一行会取消斜体。如果是汉字(比如技能名)的话,斜体起来会非常难看,可以通过这一句取消。
|
||||
```
|
||||
7. 在control.js的clearStatusBar函数,`statusList`里面也要增加mana项,这样清空状态栏时也会对其清空。
|
||||
|
||||
## 技能塔的支持
|
||||
|
||||
其实,在HTML5上制作技能塔是完全可行的。
|
||||
|
||||
要支持技能塔,可能需要如下几个方面:
|
||||
|
||||
- 魔力(和上限)的定义添加
|
||||
- 状态栏的显示
|
||||
- 技能的触发(按键与录像问题)
|
||||
- 技能的效果
|
||||
|
||||
下面依次进行描述。
|
||||
|
||||
### 魔力的定义添加
|
||||
|
||||
当我们定义了魔力的ID,比如`mana`后,要使用它,一般有两种方式:属性获取`status:mana`或者flag标记`flag:mana`。
|
||||
|
||||
如果要属性获取,则需要打开`data.js`文件,并在`hero`中添加定义。
|
||||
|
||||
通过这种方式定义的,可以通过`core.setStatus('mana', 0)`以及`core.getStatus('mana')`来设置或获取。
|
||||
|
||||
``` js
|
||||
'hero': {
|
||||
// ... 上略
|
||||
'mana': 0, // 增添mana定义,可以放在experience之后。同理可定义manaMax表示当前最大魔力值。
|
||||
}
|
||||
```
|
||||
|
||||
如果要flag标记,则无需额外在任何地方进行定义。只需要在设置或取用的时候使用 `core.setFlag('mana', 0)` 或 `core.getFlag('mana', 0)` 即可。
|
||||
|
||||
下面我都使用属性获取的方式来进行说明。
|
||||
|
||||
### 状态栏的显示
|
||||
|
||||
首先我们需要额外新增一个状态栏;参见上面的自定义状态栏的做法来新增一栏。
|
||||
|
||||
我们可以在魔力那一行显示当前值和最大值:
|
||||
|
||||
``` js
|
||||
core.setStatus('mana', Math.min(core.getStatus('mana'), core.getStatus('manaMax')); // 如果魔力存在上限,则不能超过其上限值
|
||||
core.statusBar.mana.innerHTML = core.getStatus('mana') + '/' + core.getStatus('manaMax', 0); // 显示比如 6/30 这样
|
||||
```
|
||||
|
||||
如果我们还需要显示当前使用的技能名,也是可以的;定义一个ID为skill,然后按照上面的做法新增一行。
|
||||
|
||||
请注意,如果是中文字符,需要取消斜体(不然会非常难看的)!
|
||||
|
||||
``` js
|
||||
core.statusBar.skill.style.fontStyle = 'normal'; // 取消斜体显示
|
||||
core.statusBar.skill.innerHTML = core.getFlag('skillName', '无'); // 使用flag:skillName表示当前激活的技能名。
|
||||
```
|
||||
|
||||
### 技能的触发
|
||||
|
||||
我们可以按键触发技能。
|
||||
|
||||
要修改按键,我们可以在`actions.js`的`keyUp`进行处理:
|
||||
|
||||
我们设置一个快捷键进行绑定,比如`W`,其keycode是87。(有关每个键的keycode搜一下就能得到)
|
||||
|
||||
!> H5不支持组合快捷键,所以不存在`W+1`这种组合快捷键的说法!
|
||||
|
||||
然后在`actions.js`的`keyUp`函数的`switch`中进行处理。
|
||||
|
||||
``` js
|
||||
case 87: // W
|
||||
if (core.status.heroStop) { // 当前停止状态;这个if需要加,不能在行走过程中触发不然容易出错。
|
||||
if (core.getFlag('skill', 0)==0) { // 判断当前是否已经开了技能
|
||||
if (能开技能) { // 这里要写当前能否开技能的条件判断
|
||||
core.setFlag('skill', 1); // 开技能1
|
||||
core.setFlag('skillName', '二倍斩'); // 设置技能名
|
||||
}
|
||||
else {
|
||||
core.drawTip("当前不能开技能!");
|
||||
}
|
||||
}
|
||||
else { // 关闭技能
|
||||
core.setFlag('skill', 0); // 关闭技能状态
|
||||
core.setFlag('skillName', '无');
|
||||
}
|
||||
core.updateStatusBar(); // 立刻更新状态栏和地图显伤
|
||||
core.status.route.push("key:"+keyCode); // 录像的支持!这句话必须要加,不然录像回放会出错!
|
||||
}
|
||||
break;
|
||||
```
|
||||
|
||||
简单的说,用flag:skill判断当前开启的技能,flag:skillName表示该技能名。(可在状态栏显示)
|
||||
|
||||
在勇士处于停止的条件下,按下W键时,判断当前是否开启了技能,如果开启则关闭,没开则再判断是否允许开启(魔力值够不够等)。
|
||||
|
||||
`core.status.route.push("key:"+keyCode);` 这句话是对录像的支持,一定要加(这样录像播放时也会模拟该按键)。
|
||||
|
||||
!> 1,2,3这三个键被默认绑定到了破炸飞;如果想用的话也是一样,只不过是把已有的实现进行替换。
|
||||
|
||||
!> 手机端可以通过长按任何位置调出虚拟键盘,再进行按键,和键盘按键是等价的效果!
|
||||
|
||||
### 技能的效果
|
||||
|
||||
最后一点就是技能的效果;其实到了这里就和RM差不多了。
|
||||
|
||||
技能的效果要分的话有地图类技能,战斗效果类技能,后续影响类技能什么的,这里只介绍最简单的战斗效果类技能。
|
||||
其他的几类技能根据需求可能更为麻烦,有兴趣可自行进行研究。
|
||||
|
||||
战斗效果内技能要改两个地方:战斗伤害计算,战后扣除魔力值。
|
||||
|
||||
战斗伤害计算在`enenmys.js`的`getDamageInfo`函数,有需求直接修改这个函数即可。
|
||||
|
||||
战后扣除魔力值则在脚本编辑的`afterBattle`中进行编辑即可。
|
||||
|
||||
举个例子,我设置一个勇士的技能:二倍斩,开启技能消耗5点魔力,下一场战斗攻击力翻倍。
|
||||
|
||||
那么,直接在`getDamageInfo`中进行判断:
|
||||
|
||||
``` js
|
||||
if (core.getFlag('skill', 0)==1) { // 开启了技能1
|
||||
hero_atk *= 2; // 计算时攻击力翻倍
|
||||
}
|
||||
```
|
||||
|
||||
然后在脚本编辑的战后事件中进行魔力值的扣除:
|
||||
|
||||
``` js
|
||||
if (core.getFlag('skill', 0)==1) { // 开启了技能1
|
||||
core.status.hero.mana -= 5; // 扣除5点魔力值
|
||||
core.setFlag('skill', 0); // 自动关闭技能
|
||||
core.setFlag('skillName', '无');
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
通过上述这几种方式,我们就能成功的让H5支持技能啦!
|
||||
|
||||
## 根据难度分歧来自定义地图
|
||||
|
||||
遗憾的是,所有地图数据必须在剧本的map中指定,换句话说,我们无法在游戏进行中动态修改地图,比如为简单难度增加一个血瓶。
|
||||
|
||||
@ -651,6 +651,11 @@ core.prototype.getBlock = function (x, y, floorId, needEnable) {
|
||||
return core.maps.getBlock(x,y,floorId,needEnable);
|
||||
}
|
||||
|
||||
////// 获得某个点的blockId //////
|
||||
core.prototype.getBlockId = function (x, y, floorId, needEnable) {
|
||||
return core.maps.getBlockId(x, y, floorId, needEnable);
|
||||
}
|
||||
|
||||
////// 显示移动某块的动画,达到{“type”:”move”}的效果 //////
|
||||
core.prototype.moveBlock = function(x,y,steps,time,immediateHide,callback) {
|
||||
core.maps.moveBlock(x,y,steps,time,immediateHide,callback)
|
||||
|
||||
@ -349,6 +349,8 @@ events.prototype.doAction = function() {
|
||||
core.events.doAction();
|
||||
break;
|
||||
case "show": // 显示
|
||||
if (!core.isset(data.loc))
|
||||
data.loc = [x,y];
|
||||
if ((typeof data.loc[0] == 'number' || typeof data.loc[0] == 'string')
|
||||
&& (typeof data.loc[1] == 'number' || typeof data.loc[1] == 'string'))
|
||||
data.loc = [[core.calValue(data.loc[0]), core.calValue(data.loc[1])]];
|
||||
|
||||
@ -537,6 +537,14 @@ maps.prototype.getBlock = function (x, y, floorId, needEnable) {
|
||||
return null;
|
||||
}
|
||||
|
||||
////// 获得某个点的blockId //////
|
||||
maps.prototype.getBlockId = function (x, y, floorId, needEnable) {
|
||||
var block = core.getBlock(x, y, floorId, needEnable);
|
||||
if (block == null) return null;
|
||||
if (core.isset(block.block.event)) return block.block.event.id;
|
||||
return null;
|
||||
}
|
||||
|
||||
////// 显示移动某块的动画,达到{“type”:”move”}的效果 //////
|
||||
maps.prototype.moveBlock = function(x,y,steps,time,immediateHide,callback) {
|
||||
time = time || 500;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user