怪物的faceIds
This commit is contained in:
parent
b8b9367da3
commit
59c1828e16
@ -617,7 +617,7 @@ return code;
|
|||||||
|
|
||||||
|
|
||||||
faceIds_m
|
faceIds_m
|
||||||
: '行走图朝向:' BGNL? Newline '向上ID' IdString? '向下ID' IdString? '向左ID' IdString? '向右ID' IdString? BEND
|
: '行走图朝向:' BGNL? Newline '向下ID' IdString? '向左ID' IdString? '向右ID' IdString? '向上ID' IdString? BEND
|
||||||
|
|
||||||
|
|
||||||
/* faceIds_m
|
/* faceIds_m
|
||||||
@ -626,10 +626,10 @@ default : ["","","",""]
|
|||||||
allIds : ['IdString_0','IdString_1','IdString_2','IdString_3']
|
allIds : ['IdString_0','IdString_1','IdString_2','IdString_3']
|
||||||
helpUrl : /_docs/#/instruction
|
helpUrl : /_docs/#/instruction
|
||||||
return '{' + [
|
return '{' + [
|
||||||
IdString_0 && ('"up": "' + IdString_0 +'"'),
|
IdString_0 && ('"down": "' + IdString_0 +'"'),
|
||||||
IdString_1 && ('"down": "' + IdString_1 +'"'),
|
IdString_1 && ('"left": "' + IdString_1 +'"'),
|
||||||
IdString_2 && ('"left": "' + IdString_2 +'"'),
|
IdString_2 && ('"right": "' + IdString_2 +'"'),
|
||||||
IdString_3 && ('"right": "' + IdString_3 +'"'),
|
IdString_3 && ('"up": "' + IdString_3 +'"'),
|
||||||
].filter(function (x) { return x; }).join(', ') + '}\n';
|
].filter(function (x) { return x; }).join(', ') + '}\n';
|
||||||
*/;
|
*/;
|
||||||
|
|
||||||
|
|||||||
@ -115,7 +115,7 @@ ActionParser.prototype.parse = function (obj,type) {
|
|||||||
|
|
||||||
case 'faceIds':
|
case 'faceIds':
|
||||||
if(!obj) obj={};
|
if(!obj) obj={};
|
||||||
return MotaActionBlocks['faceIds_m'].xmlText([obj.up||"", obj.down||"", obj.left||"", obj.right||""]);
|
return MotaActionBlocks['faceIds_m'].xmlText([obj.down||"", obj.left||"", obj.right||"", obj.up||""]);
|
||||||
|
|
||||||
case 'mainStyle':
|
case 'mainStyle':
|
||||||
if(!obj) obj={};
|
if(!obj) obj={};
|
||||||
|
|||||||
@ -306,7 +306,8 @@ editor_file = function (editor, callback) {
|
|||||||
callback('不能对自动元件进行自动注册!');
|
callback('不能对自动元件进行自动注册!');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (image=='npc48' && confirm("你想绑定npc48的朝向么?\n如果是,则会将最后四个npc48的faceIds进行自动绑定。")) {
|
if ((image=='npcs' || image=='npc48' || image == 'enemys' || image == 'enemy48')
|
||||||
|
&& confirm("你想绑定图块的朝向么?\n如果是,则会将最后四个注册图块的faceIds进行自动绑定。")) {
|
||||||
bindFaceIds = true;
|
bindFaceIds = true;
|
||||||
}
|
}
|
||||||
var c=image.toUpperCase().charAt(0);
|
var c=image.toUpperCase().charAt(0);
|
||||||
@ -353,12 +354,19 @@ editor_file = function (editor, callback) {
|
|||||||
var i = faceIds.length - 4;
|
var i = faceIds.length - 4;
|
||||||
var down = faceIds[i], left = faceIds[i+1], right = faceIds[i+2], up = faceIds[i+3];
|
var down = faceIds[i], left = faceIds[i+1], right = faceIds[i+2], up = faceIds[i+3];
|
||||||
var obj = {down: down.id, left: left.id, right: right.id, up: up.id};
|
var obj = {down: down.id, left: left.id, right: right.id, up: up.id};
|
||||||
|
if (image.indexOf('enemy')==0) {
|
||||||
|
templateActions.push(["add", "['" + down.id + "']['faceIds']", obj]);
|
||||||
|
templateActions.push(["add", "['" + left.id + "']['faceIds']", obj]);
|
||||||
|
templateActions.push(["add", "['" + right.id + "']['faceIds']", obj]);
|
||||||
|
templateActions.push(["add", "['" + up.id + "']['faceIds']", obj]);
|
||||||
|
} else {
|
||||||
mapActions.push(["add", "['" + down.idnum + "']['faceIds']", obj]);
|
mapActions.push(["add", "['" + down.idnum + "']['faceIds']", obj]);
|
||||||
mapActions.push(["add", "['" + left.idnum + "']['faceIds']", obj]);
|
mapActions.push(["add", "['" + left.idnum + "']['faceIds']", obj]);
|
||||||
mapActions.push(["add", "['" + right.idnum + "']['faceIds']", obj]);
|
mapActions.push(["add", "['" + right.idnum + "']['faceIds']", obj]);
|
||||||
mapActions.push(["add", "['" + up.idnum + "']['faceIds']", obj]);
|
mapActions.push(["add", "['" + up.idnum + "']['faceIds']", obj]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (mapActions.length==0) {
|
if (mapActions.length==0) {
|
||||||
callback("没有要注册的项!");
|
callback("没有要注册的项!");
|
||||||
|
|||||||
@ -135,6 +135,13 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
|
|||||||
"_docs": "手册ID",
|
"_docs": "手册ID",
|
||||||
"_data": "在怪物手册中映射到的怪物ID。如果此项不为null,则在怪物手册中,将用目标ID来替换该怪物原本的ID。常被运用在同一个怪物的多朝向上。"
|
"_data": "在怪物手册中映射到的怪物ID。如果此项不为null,则在怪物手册中,将用目标ID来替换该怪物原本的ID。常被运用在同一个怪物的多朝向上。"
|
||||||
},
|
},
|
||||||
|
"faceIds": {
|
||||||
|
"_leaf": true,
|
||||||
|
"_type": "event",
|
||||||
|
"_event": "faceIds",
|
||||||
|
"_docs": "行走图朝向",
|
||||||
|
"_data": "行走图朝向。在勇士撞上图块时,或图块在移动时,会自动选择最合适的朝向图块(如果存在定义)来进行绘制。"
|
||||||
|
},
|
||||||
"hp": {
|
"hp": {
|
||||||
"_leaf": true,
|
"_leaf": true,
|
||||||
"_type": "textarea",
|
"_type": "textarea",
|
||||||
@ -374,7 +381,7 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
|
|||||||
"_type": "event",
|
"_type": "event",
|
||||||
"_event": "faceIds",
|
"_event": "faceIds",
|
||||||
"_docs": "行走图朝向",
|
"_docs": "行走图朝向",
|
||||||
"_data": "行走图朝向,仅对npc48有效。在勇士撞上NPC时,或NPC在移动时,会自动选择最合适的朝向图块(如果存在定义)来进行绘制。"
|
"_data": "行走图朝向。在勇士撞上图块时,或图块在移动时,会自动选择最合适的朝向图块(如果存在定义)来进行绘制。"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -30,6 +30,16 @@ enemys.prototype.getEnemys = function () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 将所有怪物的各项属性映射到朝下的
|
||||||
|
for (var id in enemys) {
|
||||||
|
if (enemys[id].faceIds) {
|
||||||
|
var downId = enemys[id].faceIds.down;
|
||||||
|
if (downId != null && downId != id && enemys[downId]) {
|
||||||
|
enemys[id] = core.clone(enemys[downId]);
|
||||||
|
enemys[id].id = id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return enemys;
|
return enemys;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -365,8 +375,8 @@ enemys.prototype._getCurrentEnemys_getEnemy = function (enemyId) {
|
|||||||
var enemy = core.material.enemys[enemyId];
|
var enemy = core.material.enemys[enemyId];
|
||||||
if (!enemy) return null;
|
if (!enemy) return null;
|
||||||
|
|
||||||
// 检查displayIdInBook
|
// 检查朝向;displayIdInBook
|
||||||
return core.material.enemys[enemy.displayIdInBook] || enemy;
|
return core.material.enemys[(enemy.faceIds || {}).down] || core.material.enemys[enemy.displayIdInBook] || enemy;
|
||||||
}
|
}
|
||||||
|
|
||||||
enemys.prototype._getCurrentEnemys_addEnemy = function (enemyId, enemys, used, x, y, floorId) {
|
enemys.prototype._getCurrentEnemys_addEnemy = function (enemyId, enemys, used, x, y, floorId) {
|
||||||
|
|||||||
@ -419,6 +419,17 @@ events.prototype._trigger_ignoreChangeFloor = function (block) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
events.prototype._sys_battle = function (data, callback) {
|
events.prototype._sys_battle = function (data, callback) {
|
||||||
|
// 检查是否需要改变朝向
|
||||||
|
if (data.x == core.nextX() && data.y == core.nextY()) {
|
||||||
|
var dir = core.turnDirection(":back");
|
||||||
|
var id = data.event.id, toId = (data.event.faceIds || {})[dir];
|
||||||
|
if (toId && id != toId) {
|
||||||
|
var number = core.getNumberById(toId);
|
||||||
|
if (number > 0)
|
||||||
|
core.setBlock(number, data.x, data.y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 检查战前事件
|
// 检查战前事件
|
||||||
var beforeBattle = [];
|
var beforeBattle = [];
|
||||||
core.push(beforeBattle, core.floors[core.status.floorId].beforeBattle[data.x + "," + data.y]);
|
core.push(beforeBattle, core.floors[core.status.floorId].beforeBattle[data.x + "," + data.y]);
|
||||||
|
|||||||
14
libs/maps.js
14
libs/maps.js
@ -218,6 +218,14 @@ maps.prototype.initBlock = function (x, y, id, addInfo, eventFloor) {
|
|||||||
}
|
}
|
||||||
delete block.event.canPass;
|
delete block.event.canPass;
|
||||||
|
|
||||||
|
// 增加怪物的faceIds
|
||||||
|
if (block.event.cls.indexOf("enemy") ==0 ) {
|
||||||
|
var enemy = core.material.enemys[block.event.id];
|
||||||
|
if (enemy && enemy.faceIds) {
|
||||||
|
block.event.faceIds = enemy.faceIds;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (addInfo) this._addInfo(block);
|
if (addInfo) this._addInfo(block);
|
||||||
if (eventFloor) {
|
if (eventFloor) {
|
||||||
this._addEvent(block, x, y, (eventFloor.events || {})[x + "," + y]);
|
this._addEvent(block, x, y, (eventFloor.events || {})[x + "," + y]);
|
||||||
@ -1883,6 +1891,12 @@ maps.prototype.searchBlockWithFilter = function (blockFilter, floorId, showDisab
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////// 获得某个图块,其行走图朝向朝下的图块ID //////
|
||||||
|
maps.prototype.getFaceDownId = function (block) {
|
||||||
|
if (block == null || !block.event) return null;
|
||||||
|
return (block.event.faceIds || {}).down || block.event.id;
|
||||||
|
}
|
||||||
|
|
||||||
// -------- 启用/禁用图块,楼层贴图 -------- //
|
// -------- 启用/禁用图块,楼层贴图 -------- //
|
||||||
|
|
||||||
////// 将某个块从禁用变成启用状态 //////
|
////// 将某个块从禁用变成启用状态 //////
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user