fix:自动拾取禁止穿过滑冰
This commit is contained in:
parent
eaadbcc4fe
commit
b2fcc05723
@ -675,7 +675,7 @@ maps.prototype.getFgMapArray = function (floorId) {
|
|||||||
maps.prototype._getBgFgNumber = function (name, x, y, floorId) {
|
maps.prototype._getBgFgNumber = function (name, x, y, floorId) {
|
||||||
if (x == null) x = core.getHeroLoc('x');
|
if (x == null) x = core.getHeroLoc('x');
|
||||||
if (y == null) y = core.getHeroLoc('y');
|
if (y == null) y = core.getHeroLoc('y');
|
||||||
return this._getBgFgMapArray(name, floorId)[x][y];
|
return this._getBgFgMapArray(name, floorId)[y][x];
|
||||||
}
|
}
|
||||||
|
|
||||||
maps.prototype.getBgNumber = function (x, y, floorId) {
|
maps.prototype.getBgNumber = function (x, y, floorId) {
|
||||||
|
|||||||
@ -14,11 +14,11 @@ main.floors.MT0=
|
|||||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
[ 0, 0, 0, 0, 0, 0,201, 0, 0,201, 0, 0, 0],
|
[ 0, 0, 1, 0, 0, 0,201, 0, 0,201, 0, 0, 0],
|
||||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 0, 0, 0],
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 0, 0, 0],
|
||||||
[ 0, 0, 0, 0, 0, 0, 0, 0,203, 0, 0, 0, 0],
|
[ 0, 1, 0, 0, 0, 0, 0, 0,203, 0, 0, 0, 0],
|
||||||
[ 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0],
|
[ 0, 0, 1, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0],
|
||||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0,201,202, 0, 0],
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0,201,202, 0, 0],
|
||||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
@ -48,6 +48,14 @@ main.floors.MT0=
|
|||||||
"type": "comment",
|
"type": "comment",
|
||||||
"text": "unlockControl"
|
"text": "unlockControl"
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"3,8": [
|
||||||
|
{
|
||||||
|
"type": "moveHero",
|
||||||
|
"steps": [
|
||||||
|
"up:8"
|
||||||
|
]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"changeFloor": {},
|
"changeFloor": {},
|
||||||
@ -61,8 +69,8 @@ main.floors.MT0=
|
|||||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
[167,167,167,167,167,167,167,167,167,167,167,167,167],
|
[167,167,167,167,167,167,167,167,167,167,167,167,167],
|
||||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
[ 0, 0,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
[ 0, 0,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
|||||||
@ -2002,7 +2002,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
const changeFloor = floor.changeFloor[loc];
|
const changeFloor = floor.changeFloor[loc];
|
||||||
const isEnemy = autoBattle && cls.startsWith('enemy'),
|
const isEnemy = autoBattle && cls.startsWith('enemy'),
|
||||||
isItem = autoGet && cls === 'items';
|
isItem = autoGet && cls === 'items';
|
||||||
if (core.onSki(core.getBgNumber(x, y))) return false;
|
|
||||||
if (has(changeFloor)) {
|
if (has(changeFloor)) {
|
||||||
if (!core.noPass(tx, ty, floorId) && !core.canMoveHero(nx, ny, dir)) {
|
if (!core.noPass(tx, ty, floorId) && !core.canMoveHero(nx, ny, dir)) {
|
||||||
return false;
|
return false;
|
||||||
@ -2078,6 +2078,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
const ambush = checkblockInfo.ambush[loc];
|
const ambush = checkblockInfo.ambush[loc];
|
||||||
const repulse = checkblockInfo.repulse[loc];
|
const repulse = checkblockInfo.repulse[loc];
|
||||||
const chase = checkblockInfo.chase[loc];
|
const chase = checkblockInfo.chase[loc];
|
||||||
|
|
||||||
return (has(damage) && damage > 0) || has(ambush) || has(repulse) || has(chase);
|
return (has(damage) && damage > 0) || has(ambush) || has(repulse) || has(chase);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2088,6 +2089,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
function bfs(floorId, deep = Infinity) {
|
function bfs(floorId, deep = Infinity) {
|
||||||
core.extractBlocks(floorId);
|
core.extractBlocks(floorId);
|
||||||
const objs = core.getMapBlocksObj(floorId);
|
const objs = core.getMapBlocksObj(floorId);
|
||||||
|
const bgMap = core.getBgMapArray(floorId);
|
||||||
const { x, y } = core.status.hero.loc;
|
const { x, y } = core.status.hero.loc;
|
||||||
/** @type {[direction, number, number][]} */
|
/** @type {[direction, number, number][]} */
|
||||||
const dir = Object.entries(core.utils.scan).map(v => [v[0], v[1].x, v[1].y]);
|
const dir = Object.entries(core.utils.scan).map(v => [v[0], v[1].x, v[1].y]);
|
||||||
@ -2112,6 +2114,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
}
|
}
|
||||||
const loc = `${tx},${ty}`;
|
const loc = `${tx},${ty}`;
|
||||||
if (mapped[loc]) return;
|
if (mapped[loc]) return;
|
||||||
|
if (core.onSki(bgMap[ty][tx])) return; // 寻路不允许穿过滑冰
|
||||||
const block = objs[loc];
|
const block = objs[loc];
|
||||||
mapped[loc] = true;
|
mapped[loc] = true;
|
||||||
const type = judge(block, nx, ny, tx, ty, v[0], floorId, autoBattle, autoGet);
|
const type = judge(block, nx, ny, tx, ty, v[0], floorId, autoBattle, autoGet);
|
||||||
@ -2166,16 +2169,17 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
|||||||
}
|
}
|
||||||
|
|
||||||
function auto() {
|
function auto() {
|
||||||
|
if (!core.status.floorId || !core.status.checkBlock.damage) return; // 这两个条件不知道什么情形下会出现
|
||||||
|
if (core.status.event.id == 'action' || core.events.onSki() || core.status.lockControl) return; // 在冰上不允许触发自动清怪
|
||||||
const before = flags.__forbidSave__;
|
const before = flags.__forbidSave__;
|
||||||
// 如果勇士当前点有地图伤害,只清周围,如果有事件,直接不清了
|
|
||||||
const { x, y } = core.status.hero.loc;
|
const { x, y } = core.status.hero.loc;
|
||||||
const floor = core.floors[core.status.floorId];
|
const floor = core.floors[core.status.floorId];
|
||||||
const loc = `${x},${y}`;
|
const loc = `${x},${y}`;
|
||||||
const hasEvent = has(floor.events[loc]);
|
const hasEvent = has(floor.events[loc]);
|
||||||
if (hasEvent) return;
|
if (hasEvent) return; // 如果有事件,直接不清了
|
||||||
let deep = Infinity;
|
let deep = Infinity;
|
||||||
if (hasBlockDamage(loc)) {
|
if (hasBlockDamage(loc)) {
|
||||||
deep = core.flags.enableGentleClick ? 1 : 0; // 有地图伤害允许轻点附近1格
|
deep = core.flags.enableGentleClick ? 1 : 0; // 角色站的位置有地图伤害时,仍然允许轻点附近1格
|
||||||
}
|
}
|
||||||
flags.__forbidSave__ = true;
|
flags.__forbidSave__ = true;
|
||||||
flags.__statistics__ = true;
|
flags.__statistics__ = true;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user