type:trigger system event

This commit is contained in:
oc 2019-02-04 00:14:51 +08:00
parent c5fb825b87
commit 7e8db1edad
3 changed files with 56 additions and 10 deletions

View File

@ -573,6 +573,8 @@ NPC对话事件结束后如果需要NPC消失也需要调用 `{"type": "hide"}`
例如上面这个例子,下面的文字将不会再被显示,而是直接跳转到`"3,6"`对应的事件列表从头执行。
!> 从V2.5.4开始,允许执行另一个点的“系统事件”,如打怪、开门、拾取道具等等。对应点的战后事件等也会被执行。
### insert插入公共事件或另一个地点的事件并执行
`{"type":"insert"}` 会插入公共事件或另一个地点的事件并执行。

View File

@ -899,13 +899,53 @@ events.prototype.doAction = function() {
var block=core.getBlock(toX, toY);
if (block!=null) {
block = block.block;
if (core.isset(block.event) && block.event.trigger=='action') {
// 触发
core.status.event.data.list = [
{"todo": core.clone(block.event.data), "total": core.clone(block.event.data), "condition": "false"}
];
if (core.isset(block.event)) {
core.status.event.data.x=block.x;
core.status.event.data.y=block.y;
core.status.event.data.list = [
{"todo": [], "total": [], "condition": "false"}
];
switch (block.event.trigger) {
case "action":
core.status.event.data.list = [
{"todo": core.clone(block.event.data), "total": core.clone(block.event.data), "condition": "false"}
];
break;
case "battle":
core.events.battle(block.event.id, block.x, block.y, true, function () {
core.doAction();
});
return;
case "openDoor":
core.openDoor(block.event.id, block.x, block.y, true, function () {
core.lockControl();
core.doAction();
});
return;
case "changeFloor":
{
var heroLoc = {};
if (core.isset(block.event.data.loc))
heroLoc = {'x': block.event.data.loc[0], 'y': block.event.data.loc[1]};
if (core.isset(block.event.data.direction))
heroLoc.direction = block.event.data.direction;
core.changeFloor(block.event.data.floorId, block.event.data.stair,
heroLoc, block.event.data.time, function () {
core.lockControl();
core.doAction();
});
}
return;
case "getItem":
core.getItem(block.event.id, 1, block.x, block.y);
break;
case "passNet":
this.passNet(block);
break;
case "changeLight":
this.changeLight(block.x, block.y);
break;
}
}
}
this.doAction();
@ -1469,6 +1509,7 @@ events.prototype.battle = function (id, x, y, force, callback) {
if (!core.enemys.canBattle(id, x, y) && !force && !core.isset(core.status.event.id)) {
core.drawTip("你打不过此怪物!");
core.clearContinueAutomaticRoute();
if (core.isset(callback)) callback();
return;
}

View File

@ -4,13 +4,16 @@
支持多重装备(一个装备可以装到多个孔上)
工具栏按钮增添至8个快捷商店和虚拟键盘同时显示
点击状态栏的金币图标也可以打开快捷商店
事件:使用道具,暂停背景音乐
等待事件提供flag:px和flag:py在0~415之间
事件:呼出存读档界面;呼出怪物手册
事件:使用道具,暂停背景音乐,暂停所有音效
type:trigger可以触发系统事件
独立开关
贴图也可以支持帧动画了
图块内置颜色选择器
标题界面增加音乐按钮
拓展键盘默认隐藏,菜单栏中开启
自动存档优化,大幅提升打怪开门等操作的性能
使用新版drawLight插件效率大幅提升
部分Bug修复大量细节优化
等待事件可被Ctrl长按跳过
部分Bug修复大量细节优化性能进一步得到提升
-----------------------------------------------------------------------