$&"),role:"option","aria-selected":"false",id:"awesomplete_list_"+this.count+"_item_"+n})},r.REPLACE=function(t){this.input.value=t.value},r.DATA=function(t){return t},Object.defineProperty(t.prototype=Object.create(String.prototype),"length",{get:function(){return this.label.length}}),t.prototype.toString=t.prototype.valueOf=function(){return""+this.label};var o=Array.prototype.slice;i.create=function(t,e){var n=document.createElement(t);for(var s in e){var r=e[s];if("inside"===s)i(r).appendChild(n);else if("around"===s){var o=i(r);o.parentNode.insertBefore(n,o),n.appendChild(o),null!=o.getAttribute("autofocus")&&o.focus()}else s in n?n[s]=r:n.setAttribute(s,r)}return n},i.bind=function(t,e){if(t)for(var i in e){var n=e[i];i.split(/\s+/).forEach(function(e){t.addEventListener(e,n)})}},i.unbind=function(t,e){if(t)for(var i in e){var n=e[i];i.split(/\s+/).forEach(function(e){t.removeEventListener(e,n)})}},i.fire=function(t,e,i){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0);for(var s in i)n[s]=i[s];return t.dispatchEvent(n)},i.regExpEscape=function(t){return t.replace(/[-\\^$*+?.()|[\]{}]/g,"\\$&")},i.siblingIndex=function(t){for(var e=0;t=t.previousElementSibling;e++);return e},"undefined"!=typeof self&&(self.Awesomplete=r),"undefined"!=typeof Document&&("loading"!==document.readyState?s():document.addEventListener("DOMContentLoaded",s)),r.$=i,r.$$=n,"object"==typeof module&&module.exports&&(module.exports=r)}();
-//# sourceMappingURL=awesomplete.min.js.map
\ No newline at end of file
diff --git a/editor-mobile.html b/editor-mobile.html
index 909ea08a..143408e6 100644
--- a/editor-mobile.html
+++ b/editor-mobile.html
@@ -173,6 +173,11 @@
+
+ 修改地图大小:宽,高,
+ 偏移x y
+
+
@@ -379,6 +384,7 @@
+
+
+ 修改地图大小:宽,高,
+ 偏移x y
+
+
@@ -336,9 +341,11 @@
锁定模式
- 画线
- 画矩形
+ 线
+ 矩形
tileset贴图
+ 填充
+
diff --git a/libs/control.js b/libs/control.js
index e7ba51c1..40527187 100644
--- a/libs/control.js
+++ b/libs/control.js
@@ -584,7 +584,6 @@ control.prototype.setAutoHeroMove = function (steps) {
control.prototype.setHeroMoveInterval = function (callback) {
if (core.status.heroMoving > 0) return;
if (core.status.replay.speed == 24) {
- core.moveOneStep(core.nextX(), core.nextY());
if (callback) callback();
return;
}
@@ -601,15 +600,14 @@ control.prototype.setHeroMoveInterval = function (callback) {
if (core.status.heroMoving>=8) {
clearInterval(core.interval.heroMoveInterval);
core.status.heroMoving = 0;
- core.moveOneStep(core.nextX(), core.nextY());
if (callback) callback();
}
}, core.values.moveSpeed / 8 * toAdd / core.status.replay.speed);
}
////// 每移动一格后执行的事件 //////
-control.prototype.moveOneStep = function(x, y) {
- return this.controldata.moveOneStep(x, y);
+control.prototype.moveOneStep = function (callback) {
+ return this.controldata.moveOneStep(callback);
}
////// 实际每一步的行走过程 //////
@@ -625,7 +623,7 @@ control.prototype._moveAction_noPass = function (canMove, callback) {
core.status.route.push(core.getHeroLoc('direction'));
core.status.automaticRoute.moveStepBeforeStop = [];
core.status.automaticRoute.lastDirection = core.getHeroLoc('direction');
- if (canMove) core.events._trigger(core.nextX(), core.nextY());
+ if (canMove) core.trigger(core.nextX(), core.nextY());
core.drawHero();
if (core.status.automaticRoute.moveStepBeforeStop.length==0) {
@@ -637,31 +635,14 @@ control.prototype._moveAction_noPass = function (canMove, callback) {
control.prototype._moveAction_moving = function (callback) {
core.setHeroMoveInterval(function () {
+ core.setHeroLoc('x', core.nextX(), true);
+ core.setHeroLoc('y', core.nextY(), true);
+
var direction = core.getHeroLoc('direction');
core.control._moveAction_popAutomaticRoute();
core.status.route.push(direction);
-
- // 无事件的道具(如血瓶)需要优先于阻激夹域判定
- var nowx = core.getHeroLoc('x'), nowy = core.getHeroLoc('y');
- var block = core.getBlock(nowx,nowy);
- var hasTrigger = false;
- if (block!=null && block.block.event.trigger=='getItem' &&
- !core.floors[core.status.floorId].afterGetItem[nowx+","+nowy]) {
- hasTrigger = true;
- core.events._trigger(nowx, nowy);
- }
- // 执行该点的阻激夹域事件
- core.checkBlock();
-
- // 执行该点事件
- if (!hasTrigger)
- core.events._trigger(nowx, nowy);
-
- // 检查该点是否是滑冰
- if (core.onSki()) {
- core.insertAction("滑冰事件", null, null, null, true);
- }
-
+
+ core.moveOneStep();
if (callback) callback();
});
}
@@ -2671,7 +2652,7 @@ control.prototype.resize = function() {
}
var statusDisplayArr = this._shouldDisplayStatus(), count = statusDisplayArr.length;
- var statusCanvas = core.flags.statusCanvas, statusCanvasRows = core.flags.statusCanvasRowsOnMobile || 3;
+ var statusCanvas = core.flags.statusCanvas, statusCanvasRows = core.values.statusCanvasRowsOnMobile || 3;
var col = statusCanvas ? statusCanvasRows : Math.ceil(count / 3);
if (col > 4) {
if (statusCanvas) alert("自绘状态栏的在竖屏下的行数应不超过4!");
diff --git a/libs/core.js b/libs/core.js
index 6b5d45ec..d853edbc 100644
--- a/libs/core.js
+++ b/libs/core.js
@@ -192,7 +192,7 @@ function core() {
'equipName': main.equipName || [],
"statusLeftBackground": main.statusLeftBackground || "url(project/materials/ground.png) repeat",
"statusTopBackground": main.statusTopBackground || "url(project/materials/ground.png) repeat",
- "toolsBackground": main.toolsBackground || "url(project/images/materials.png) repeat",
+ "toolsBackground": main.toolsBackground || "url(project/materials/ground.png) repeat",
"borderColor": main.borderColor || "white",
"statusBarColor": main.statusBarColor || "white",
"hardLabelColor": main.hardLabelColor || "red",
diff --git a/libs/events.js b/libs/events.js
index 7d0e8235..460e676c 100644
--- a/libs/events.js
+++ b/libs/events.js
@@ -300,16 +300,22 @@ events.prototype.doSystemEvent = function (type, data, callback) {
}
////// 触发(x,y)点的事件 //////
-events.prototype._trigger = function (x, y) {
- if (core.status.gameOver) return;
- if (core.status.event.id == 'action') {
- core.insertAction({"type": "trigger", "loc": [x, y]}, x, y, null, true);
+events.prototype.trigger = function (x, y, callback) {
+ var _executeCallback = function () {
+ // 因为trigger之后还有可能触发其他同步脚本(比如阻激夹域检测)
+ // 所以这里强制callback被异步触发
+ if (callback) {
+ setTimeout(callback, 1); // +1是为了录像检测系统
+ }
return;
}
- if (core.status.event.id) return;
+ if (core.status.gameOver) return _executeCallback();
+ if (core.status.event.id && core.status.event.id != 'action') return _executeCallback();
+
+ var inAction = core.status.event.id == 'action';
var block = core.getBlock(x, y);
- if (block == null) return;
+ if (block == null) return _executeCallback();
block = block.block;
// 执行该点的脚本
@@ -322,11 +328,24 @@ events.prototype._trigger = function (x, y) {
if (noPass) core.clearAutomaticRouteNode(x, y);
// 转换楼层能否穿透
- if (trigger == 'changeFloor' && !noPass && this._trigger_ignoreChangeFloor(block))
+ if (!inAction && trigger == 'changeFloor' && !noPass && this._trigger_ignoreChangeFloor(block))
return;
core.status.automaticRoute.moveDirectly = false;
- this.doSystemEvent(trigger, block);
+ if (inAction) {
+ // 切换事件点的坐标
+ this.setEvents(null, block.x, block.y);
+ if (block.event.trigger == 'action') {
+ this.insertAction(block.event.data);
+ }
+ else {
+ this.doSystemEvent(block.event.trigger, block, _executeCallback);
+ return;
+ }
+ } else {
+ this.doSystemEvent(trigger, block);
+ }
}
+ return _executeCallback();
}
events.prototype._trigger_ignoreChangeFloor = function (block) {
@@ -370,7 +389,8 @@ events.prototype.battle = function (id, x, y, force, callback) {
if (!this.beforeBattle(id, x, y))
return core.clearContinueAutomaticRoute(callback);
// 战后事件
- this.afterBattle(id, x, y, callback);
+ this.afterBattle(id, x, y);
+ if (callback) callback();
}
////// 战斗前触发的事件 //////
@@ -379,8 +399,8 @@ events.prototype.beforeBattle = function (enemyId, x, y) {
}
////// 战斗结束后触发的事件 //////
-events.prototype.afterBattle = function (enemyId, x, y, callback) {
- return this.eventdata.afterBattle(enemyId, x, y, callback);
+events.prototype.afterBattle = function (enemyId, x, y) {
+ return this.eventdata.afterBattle(enemyId, x, y);
}
events.prototype._sys_openDoor = function (data, callback) {
@@ -408,7 +428,7 @@ events.prototype.openDoor = function (x, y, needKey, callback) {
setTimeout(function () {
core.status.replay.animate = false;
core.events.afterOpenDoor(id, x, y, callback);
- });
+ }, 1); // +1是为了录像检测系统
} else {
this._openDoor_animate(id, x, y, callback);
}
@@ -472,7 +492,8 @@ events.prototype._openDoor_animate = function (id, x, y, callback) {
delete core.animateFrame.asyncId[animate];
if (!locked) core.unLockControl();
core.status.replay.animate = false;
- core.events.afterOpenDoor(id, x, y, callback);
+ core.events.afterOpenDoor(id, x, y);
+ if (callback) callback();
return;
}
core.drawImage('event', core.material.images.animates, 32 * state, 32 * door, 32, 32, 32 * x, 32 * y, 32, 32);
@@ -481,8 +502,8 @@ events.prototype._openDoor_animate = function (id, x, y, callback) {
}
////// 开一个门后触发的事件 //////
-events.prototype.afterOpenDoor = function (doorId, x, y, callback) {
- return this.eventdata.afterOpenDoor(doorId, x, y, callback);
+events.prototype.afterOpenDoor = function (doorId, x, y) {
+ return this.eventdata.afterOpenDoor(doorId, x, y);
}
events.prototype._sys_getItem = function (data, callback) {
@@ -519,11 +540,12 @@ events.prototype.getItem = function (id, num, x, y, isGentleClick, callback) {
itemHint.push(id);
}
- this.afterGetItem(id, x, y, isGentleClick, callback);
+ this.afterGetItem(id, x, y, isGentleClick);
+ if (callback) callback();
}
-events.prototype.afterGetItem = function (id, x, y, isGentleClick, callback) {
- this.eventdata.afterGetItem(id, x, y, isGentleClick, callback);
+events.prototype.afterGetItem = function (id, x, y, isGentleClick) {
+ this.eventdata.afterGetItem(id, x, y, isGentleClick);
}
////// 获得面前的物品(轻按) //////
@@ -736,30 +758,17 @@ events.prototype.pushBox = function (data) {
var nextId = core.getBlockId(nx, ny);
if (nextId != null && nextId != 'flower') return;
- core.setBlock(nextId == null ? 169 : 170, nx, ny);
+ core.setBlock(nextId == null ? 'box' : 'boxed', nx, ny);
if (data.event.id == 'box')
core.removeBlock(data.x, data.y);
else
- core.setBlock(168, data.x, data.y);
- this._pushBox_moveHero(direction);
-}
-
-events.prototype._pushBox_moveHero = function (direction) {
- core.status.replay.animate = true;
- core.lockControl();
- setTimeout(function () {
- core.moveHero(direction, function () {
- core.status.replay.animate = false;
- core.status.route.pop();
- core.events.afterPushBox();
- // 可能有阻击...
- if (core.status.event.id == null) {
- core.unLockControl();
- core.replay();
- }
- });
- });
+ core.setBlock('flower', data.x, data.y);
+ // 勇士前进一格,然后触发推箱子后事件
+ core.insertAction([
+ {"type": "moveAction"},
+ {"type": "function", "function": "function() { core.afterPushBox(); }"}
+ ]);
}
////// 推箱子后的事件 //////
@@ -768,7 +777,8 @@ events.prototype.afterPushBox = function () {
}
events.prototype._sys_ski = function (data, callback) {
- core.insertAction(["V2.6后,请将滑冰放在背景层!"], data.x, data.y, callback);
+ core.insertAction(["V2.6后,请将滑冰放在背景层!"], data.x, data.y);
+ if (callback) callback();
}
/// 当前是否在冰上
@@ -795,7 +805,8 @@ events.prototype._sys_action = function (data, callback) {
events.prototype._sys_custom = function (data, callback) {
core.insertAction(["请使用\r[yellow]core.registerSystemEvent('custom', func)\r来处理自己添加的系统触发器!"],
- data.x, data.y, callback);
+ data.x, data.y);
+ if (callback) callback();
}
// ------ 自定义事件的处理 ------ //
@@ -1341,6 +1352,26 @@ events.prototype._action_move = function (data, x, y, prefix) {
this.__action_doAsyncFunc(data.async, core.moveBlock, loc[0], loc[1], data.steps, data.time, data.keep);
}
+events.prototype._action_moveAction = function (data, x, y, prefix) {
+ // 检查下一个点是否可通行
+ if (core.canMoveHero()) {
+ var nx = core.nextX(), ny = core.nextY();
+ // 检查noPass决定是撞击还是移动
+ if (core.noPass(nx, ny)) {
+ core.insertAction([
+ {"type": "trigger", "loc": [nx, ny]}
+ ]);
+ } else {
+ // 先移动一格,然后尝试触发事件
+ core.insertAction([
+ {"type": "moveHero", "steps": ["forward"]},
+ {"type": "function", "function": "function() { core.moveOneStep(core.doAction); }", "async": true},
+ ]);
+ }
+ }
+ core.doAction();
+}
+
events.prototype._action_moveHero = function (data, x, y, prefix) {
this.__action_doAsyncFunc(data.async, core.eventMoveHero, data.steps, data.time);
}
@@ -1516,18 +1547,7 @@ events.prototype._action_battle = function (data, x, y, prefix) {
events.prototype._action_trigger = function (data, x, y, prefix) {
var loc = this.__action_getLoc(data.loc, x, y, prefix);
- var block = core.getBlock(loc[0], loc[1]);
- if (block != null && block.block.event.trigger) {
- block = block.block;
- this.setEvents(data.keep ? null : [], block.x, block.y);
- if (block.event.trigger == 'action')
- this.insertAction(block.event.data);
- else {
- core.doSystemEvent(block.event.trigger, block, core.doAction);
- return;
- }
- }
- core.doAction();
+ core.trigger(loc[0], loc[1], core.doAction);
}
events.prototype._action_insert = function (data, x, y, prefix) {
diff --git a/main.js b/main.js
index 89864d06..be30e993 100644
--- a/main.js
+++ b/main.js
@@ -200,7 +200,7 @@ main.prototype.init = function (mode, callback) {
var mainData = data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d.main;
for(var ii in mainData)main[ii]=mainData[ii];
- main.dom.startBackground.src="project/images/"+main.startBackground;
+ main.dom.startBackground.src = main.startBackground;
main.dom.startLogo.style=main.startLogoStyle;
main.dom.startButtonGroup.style = main.startButtonsStyle;
main.levelChoose.forEach(function(value){
diff --git a/project/data.js b/project/data.js
index 3eb22a7b..fad424a9 100644
--- a/project/data.js
+++ b/project/data.js
@@ -40,7 +40,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"背景图.jpg": "bg.jpg",
"背景音乐.mp3": "bgm.mp3"
},
- "startBackground": "bg.jpg",
+ "startBackground": "project/images/bg.jpg",
"startLogoStyle": "color: black",
"levelChoose": [
[
@@ -65,7 +65,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"盾牌"
],
"startBgm": null,
- "statusLeftBackground": null,
+ "statusLeftBackground": "url(project/materials/ground.png) repeat",
"statusTopBackground": "url(project/materials/ground.png) repeat",
"toolsBackground": "url(project/materials/ground.png) repeat",
"borderColor": "#CCCCCC",
@@ -475,7 +475,8 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"counterAttack": 0.1,
"purify": 3,
"hatred": 2,
- "animateSpeed": 400
+ "animateSpeed": 400,
+ "statusCanvasRowsOnMobile": 3
},
"flags": {
"statusBarItems": [
@@ -499,7 +500,6 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"startUsingCanvas": false,
"startDirectly": false,
"statusCanvas": false,
- "statusCanvasRowsOnMobile": 3,
"displayEnemyDamage": true,
"displayCritical": true,
"displayExtraDamage": true,
diff --git a/project/enemys.js b/project/enemys.js
index e2024616..f5e49f15 100644
--- a/project/enemys.js
+++ b/project/enemys.js
@@ -1,67 +1,88 @@
var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
{
- "greenSlime": {"name":"绿头怪","hp":100,"atk":120,"def":0,"money":1,"exp":1,"point":0,"special":[1,5,7,8]},
- "redSlime": {"name":"红头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[16,18],"value":10},
- "blackSlime": {"name":"青头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "slimelord": {"name":"怪王","hp":100,"atk":120,"def":0,"money":10,"exp":0,"point":0,"special":[1,9]},
- "bat": {"name":"小蝙蝠","hp":100,"atk":120,"def":0,"money":2,"exp":0,"point":0,"special":[1]},
- "bigBat": {"name":"大蝙蝠","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "redBat": {"name":"红蝙蝠","hp":100,"atk":120,"def":0,"money":5,"exp":0,"point":0,"special":[4]},
- "vampire": {"name":"冥灵魔王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "skeleton": {"name":"骷髅人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "skeletonSoilder": {"name":"骷髅士兵","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "skeletonCaptain": {"name":"骷髅队长","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "ghostSkeleton": {"name":"冥队长","hp":100,"atk":120,"def":0,"money":8,"exp":0,"point":0,"special":[7]},
- "zombie": {"name":"兽人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "zombieKnight": {"name":"兽人武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "rock": {"name":"石头人","hp":100,"atk":120,"def":0,"money":4,"exp":0,"point":0,"special":[3]},
- "slimeMan": {"name":"影子战士","hp":100,"atk":0,"def":0,"money":11,"exp":0,"point":0,"special":[10,21],"atkValue":2,"defValue":3},
- "bluePriest": {"name":"初级法师","hp":100,"atk":120,"def":0,"money":3,"exp":0,"point":1,"special":[2]},
- "redPriest": {"name":"高级法师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "brownWizard": {"name":"初级巫师","hp":100,"atk":120,"def":0,"money":16,"exp":0,"point":0,"special":[15],"value":100,"range":2},
- "redWizard": {"name":"高级巫师","hp":1000,"atk":1200,"def":0,"money":160,"exp":0,"point":0,"special":[15],"value":200,"zoneSquare":true},
- "yellowGuard": {"name":"初级卫兵","hp":100,"atk":120,"def":0,"money":10,"exp":0,"point":0,"special":[]},
- "blueGuard": {"name":"中级卫兵","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "redGuard": {"name":"高级卫兵","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "swordsman": {"name":"双手剑士","hp":100,"atk":120,"def":0,"money":6,"exp":0,"point":0,"special":[5,23]},
- "soldier": {"name":"冥战士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "yellowKnight": {"name":"金骑士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "redKnight": {"name":"红骑士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "darkKnight": {"name":"黑骑士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "blackKing": {"name":"黑衣魔王","hp":1000,"atk":500,"def":0,"money":1000,"exp":1000,"point":0,"special":[],"notBomb":true},
- "yellowKing": {"name":"黄衣魔王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "greenKing": {"name":"青衣武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "blueKnight": {"name":"蓝骑士","hp":100,"atk":120,"def":0,"money":9,"exp":0,"point":0,"special":[8]},
- "goldSlime": {"name":"黄头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "poisonSkeleton": {"name":"紫骷髅","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "poisonBat": {"name":"紫蝙蝠","hp":100,"atk":120,"def":0,"money":14,"exp":0,"point":0,"special":[13]},
- "steelRock": {"name":"铁面人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "skeletonPriest": {"name":"骷髅法师","hp":100,"atk":100,"def":0,"money":0,"exp":0,"point":0,"special":[18,23],"value":20},
- "skeletonKing": {"name":"骷髅王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "skeletonWizard": {"name":"骷髅巫师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "redSkeletonCaption": {"name":"骷髅武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "badHero": {"name":"迷失勇者","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "demon": {"name":"魔神武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "demonPriest": {"name":"魔神法师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "goldHornSlime": {"name":"金角怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "redKing": {"name":"红衣魔王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "whiteKing": {"name":"白衣武士","hp":100,"atk":120,"def":0,"money":17,"exp":0,"point":0,"special":[16]},
- "blackMagician": {"name":"黑暗大法师","hp":100,"atk":120,"def":0,"money":12,"exp":0,"point":0,"special":[11],"value":0.3333333333333333,"add":true,"notBomb":true},
- "silverSlime": {"name":"银头怪","hp":100,"atk":120,"def":0,"money":15,"exp":0,"point":0,"special":[14]},
- "swordEmperor": {"name":"剑圣","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "whiteHornSlime": {"name":"尖角怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "badPrincess": {"name":"痛苦魔女","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "badFairy": {"name":"黑暗仙子","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "grayPriest": {"name":"中级法师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "redSwordsman": {"name":"剑王","hp":100,"atk":120,"def":0,"money":7,"exp":0,"point":0,"special":[6],"n":8},
- "whiteGhost": {"name":"水银战士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "poisonZombie": {"name":"绿兽人","hp":100,"atk":120,"def":0,"money":13,"exp":0,"point":0,"special":[12]},
- "magicDragon": {"name":"魔龙","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "octopus": {"name":"血影","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "darkFairy": {"name":"仙子","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "greenKnight": {"name":"强盾骑士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "angel": {"name":"天使","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "elemental": {"name":"元素生物","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
- "steelGuard": {"name":"铁守卫","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[18],"value":20},
- "evilBat": {"name":"邪恶蝙蝠","hp":1000,"atk":1,"def":0,"money":0,"exp":0,"point":0,"special":[2,3]}
+ "greenSlime": {"name":"绿头怪","hp":100,"atk":120,"def":0,"money":1,"experience":1,"point":0,"special":[1,5,7,8]},
+ "redSlime": {"name":"红头怪","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":[16,18],"value":10},
+ "blackSlime": {"name":"青头怪","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "slimelord": {"name":"怪王","hp":100,"atk":120,"def":0,"money":10,"experience":0,"point":0,"special":[1,9]},
+ "bat": {"name":"小蝙蝠","hp":100,"atk":120,"def":0,"money":2,"experience":0,"point":0,"special":1},
+ "bigBat": {"name":"大蝙蝠","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "redBat": {"name":"红蝙蝠","hp":100,"atk":120,"def":0,"money":5,"experience":0,"point":0,"special":4},
+ "vampire": {"name":"冥灵魔王","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "skeleton": {"name":"骷髅人","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "skeletonCaptain": {"name":"骷髅队长","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "zombie": {"name":"兽人","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "zombieKnight": {"name":"兽人武士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "rock": {"name":"石头人","hp":100,"atk":120,"def":0,"money":4,"experience":0,"point":0,"special":3},
+ "bluePriest": {"name":"初级法师","hp":100,"atk":120,"def":0,"money":3,"experience":0,"point":1,"special":2},
+ "redPriest": {"name":"高级法师","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "brownWizard": {"name":"初级巫师","hp":100,"atk":120,"def":0,"money":16,"experience":0,"point":0,"special":15,"value":100,"range":2},
+ "redWizard": {"name":"高级巫师","hp":1000,"atk":1200,"def":0,"money":160,"experience":0,"point":0,"special":15,"value":200,"zoneSquare":true},
+ "swordsman": {"name":"双手剑士","hp":100,"atk":120,"def":0,"money":6,"experience":0,"point":0,"special":[5,23]},
+ "soldier": {"name":"冥战士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "yellowKnight": {"name":"金骑士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "redKnight": {"name":"红骑士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "darkKnight": {"name":"黑骑士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "blueKnight": {"name":"蓝骑士","hp":100,"atk":120,"def":0,"money":9,"experience":0,"point":0,"special":8},
+ "goldSlime": {"name":"黄头怪","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "poisonSkeleton": {"name":"紫骷髅","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "poisonBat": {"name":"紫蝙蝠","hp":100,"atk":120,"def":0,"money":14,"experience":0,"point":0,"special":13},
+ "skeletonPriest": {"name":"骷髅法师","hp":100,"atk":100,"def":0,"money":0,"experience":0,"point":0,"special":18,"value":20},
+ "skeletonKing": {"name":"骷髅王","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "evilHero": {"name":"迷失勇者","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "demonPriest": {"name":"魔神法师","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "goldHornSlime": {"name":"金角怪","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "silverSlime": {"name":"银头怪","hp":100,"atk":120,"def":0,"money":15,"experience":0,"point":0,"special":14},
+ "whiteHornSlime": {"name":"尖角怪","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "redSwordsman": {"name":"剑王","hp":100,"atk":120,"def":0,"money":7,"experience":0,"point":0,"special":6,"n":8},
+ "poisonZombie": {"name":"绿兽人","hp":100,"atk":120,"def":0,"money":13,"experience":0,"point":0,"special":12},
+ "octopus": {"name":"血影","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "greenKnight": {"name":"强盾骑士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "angel": {"name":"天使","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "elemental": {"name":"元素生物","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "steelGuard": {"name":"铁守卫","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":18,"value":20},
+ "evilBat": {"name":"邪恶蝙蝠","hp":1000,"atk":1,"def":0,"money":0,"experience":0,"point":0,"special":[2,3]},
+ "frozenSkeleton": {"name":"冻死骨","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "silverSlimelord": {"name":"银怪王","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "goldSlimelord": {"name":"金怪王","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "skeletonWarrior": {"name":"骷髅士兵","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "ghostWarrior": {"name":"冥队长","hp":100,"atk":120,"def":0,"money":8,"experience":0,"point":0,"special":7},
+ "whiteSlimeman": {"name":"水银战士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "slimeman": {"name":"影子战士","hp":100,"atk":0,"def":0,"money":11,"experience":0,"point":0,"special":[10,21],"atkValue":2,"defValue":3},
+ "yellowGT": {"name":"初级卫兵","hp":100,"atk":120,"def":0,"money":10,"experience":0,"point":0,"special":0},
+ "blueGT": {"name":"中级卫兵","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "redGT": {"name":"高级卫兵","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "blackMS": {"name":"黑衣魔王","hp":1000,"atk":500,"def":0,"money":1000,"experience":1000,"point":0,"special":0,"notBomb":true},
+ "yellowMS": {"name":"黄衣魔王","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "greenMS": {"name":"青衣武士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "magicMaster": {"name":"黑暗大法师","hp":100,"atk":120,"def":0,"money":12,"experience":0,"point":0,"special":11,"value":0.3333333333333333,"add":true,"notBomb":true},
+ "blueMS": {"name":"白衣武士","hp":100,"atk":120,"def":0,"money":17,"experience":0,"point":0,"special":16},
+ "redMS": {"name":"红衣魔王","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "devilWarrior": {"name":"魔神武士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "fairyEnemy": {"name":"仙子","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "dragon": {"name":"魔龙","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "skeletonKnight": {"name":"骷髅武士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "skeletonPresbyter": {"name":"骷髅巫师","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "ironRock": {"name":"铁面人","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "grayRock": {"name":"灰色石头人","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "yellowPriest": {"name":"中级法师","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "evilPrincess": {"name":"痛苦魔女","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "blademaster": {"name":"剑圣","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "evilFairy": {"name":"黑暗仙子","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "blueRock": {"name":"鬼邪石","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "skeletonLite": {"name":"骷髅精英","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "blueSkeleton": {"name":"蓝骷髅","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "bowman": {"name":"弓兵","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "liteBowman": {"name":"精锐弓兵","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "crismonZombie": {"name":"红兽人","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "watcherSlime": {"name":"邪眼怪","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "mutantSlimeman": {"name":"变异战士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "devilKnight": {"name":"恶灵骑士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "grayPriest": {"name":"混沌法师","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "greenGT": {"name":"卫兵队长","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "ghostSoldier": {"name":"冥队长","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "goldBat": {"name":"金蝙蝠","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "pinkSoldier": {"name":"红战士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "pinkGhostSoldier": {"name":"红队长","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "greenSoldier": {"name":"青战士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
+ "greenGhostSoldier": {"name":"青队长","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}
}
\ No newline at end of file
diff --git a/project/events.js b/project/events.js
index b6aea258..af347cde 100644
--- a/project/events.js
+++ b/project/events.js
@@ -156,91 +156,6 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 =
]
}
],
- "滑冰事件": [
- {
- "type": "comment",
- "text": "公共事件:滑冰事件"
- },
- {
- "type": "if",
- "condition": "core.onSki()",
- "true": [
- {
- "type": "if",
- "condition": "core.canMoveHero()",
- "true": [
- {
- "type": "comment",
- "text": "检测下一个点是否可通行"
- },
- {
- "type": "setValue",
- "name": "flag:nx",
- "value": "core.nextX()"
- },
- {
- "type": "setValue",
- "name": "flag:ny",
- "value": "core.nextY()"
- },
- {
- "type": "if",
- "condition": "core.noPass(flag:nx, flag:ny)",
- "true": [
- {
- "type": "comment",
- "text": "不可通行,触发下一个点的事件"
- },
- {
- "type": "trigger",
- "loc": [
- "flag:nx",
- "flag:ny"
- ]
- }
- ],
- "false": [
- {
- "type": "comment",
- "text": "可通行,先移动到下个点,然后检查阻激夹域,并尝试触发该点事件"
- },
- {
- "type": "moveHero",
- "time": 80,
- "steps": [
- "forward"
- ]
- },
- {
- "type": "function",
- "function": "function(){\ncore.checkBlock();\n}"
- },
- {
- "type": "comment",
- "text": "【触发事件】如果该点存在事件则会立刻结束当前事件"
- },
- {
- "type": "trigger",
- "loc": [
- "flag:nx",
- "flag:ny"
- ]
- },
- {
- "type": "comment",
- "text": "如果该点不存在事件,则继续检测该点是否是滑冰点"
- },
- {
- "type": "function",
- "function": "function(){\ncore.insertAction(\"滑冰事件\",null,null,null,true)\n}"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
"回收钥匙商店": [
{
"type": "comment",
diff --git a/project/floors/sample3.js b/project/floors/sample3.js
index e0c28451..a3b996b0 100644
--- a/project/floors/sample3.js
+++ b/project/floors/sample3.js
@@ -117,7 +117,7 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]我的真名为——黑暗大法师,第四区域的头目。",
+ "\t[magicMaster]我的真名为——黑暗大法师,第四区域的头目。",
{
"type": "playSound",
"name": "item.mp3"
@@ -127,7 +127,7 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]以杰克的名义利用了你这么久,真是抱歉啊。",
+ "\t[magicMaster]以杰克的名义利用了你这么久,真是抱歉啊。",
{
"type": "playSound",
"name": "item.mp3"
@@ -137,7 +137,7 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]盗贼杰克这个人类从未存在过,他只是我用来接近你的一副皮囊而已。",
+ "\t[magicMaster]盗贼杰克这个人类从未存在过,他只是我用来接近你的一副皮囊而已。",
{
"type": "playSound",
"name": "item.mp3"
@@ -147,7 +147,7 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]为什么你看上去丝毫不生气?",
+ "\t[magicMaster]为什么你看上去丝毫不生气?",
{
"type": "playSound",
"name": "item.mp3"
@@ -167,7 +167,7 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]能够如此淡定的面对背叛,看来跟五年前相比,你确实成长了很多啊。",
+ "\t[magicMaster]能够如此淡定的面对背叛,看来跟五年前相比,你确实成长了很多啊。",
{
"type": "playSound",
"name": "item.mp3"
@@ -177,12 +177,12 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]五年前那场屠城你应该这一生都不会忘记吧。",
+ "\t[magicMaster]五年前那场屠城你应该这一生都不会忘记吧。",
{
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]很不巧,那场屠城的主谋,也是我。",
+ "\t[magicMaster]很不巧,那场屠城的主谋,也是我。",
{
"type": "playSound",
"name": "item.mp3"
@@ -197,7 +197,7 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]你的双亲?这种事情我怎么可能会记得?\n你难道在踩死蚂蚁的时候还会一只只记下他们的样子吗?",
+ "\t[magicMaster]你的双亲?这种事情我怎么可能会记得?\n你难道在踩死蚂蚁的时候还会一只只记下他们的样子吗?",
{
"type": "playSound",
"name": "item.mp3"
@@ -207,17 +207,17 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]你应该对我心怀感激才对,如果不是那时的我看出了你隐藏的稀有勇者体质,你绝对不可能活到今天。",
+ "\t[magicMaster]你应该对我心怀感激才对,如果不是那时的我看出了你隐藏的稀有勇者体质,你绝对不可能活到今天。",
{
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]在暗中动手脚让你通过勇者选拔的人也是我,我一直一直在暗中引导你走到今天这一步。",
+ "\t[magicMaster]在暗中动手脚让你通过勇者选拔的人也是我,我一直一直在暗中引导你走到今天这一步。",
{
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]是我救赎了一无是处的你。",
+ "\t[magicMaster]是我救赎了一无是处的你。",
{
"type": "playSound",
"name": "item.mp3"
@@ -232,12 +232,12 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]我刚才不是说过了吗?因为我看出了你有稀有勇者体质啊。",
+ "\t[magicMaster]我刚才不是说过了吗?因为我看出了你有稀有勇者体质啊。",
{
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]你刚刚跟鬼帝交过手,应该已经很清楚这稀有勇者体质意味着什么了吧?",
+ "\t[magicMaster]你刚刚跟鬼帝交过手,应该已经很清楚这稀有勇者体质意味着什么了吧?",
{
"type": "playSound",
"name": "item.mp3"
@@ -247,7 +247,7 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]愚蠢!这意味着只要我对你加以引导跟培养,你就能成为这世间实力最强的存在!",
+ "\t[magicMaster]愚蠢!这意味着只要我对你加以引导跟培养,你就能成为这世间实力最强的存在!",
{
"type": "playSound",
"name": "item.mp3"
@@ -257,7 +257,7 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]我利用你干的事情,你不是已经完成了吗?",
+ "\t[magicMaster]我利用你干的事情,你不是已经完成了吗?",
{
"type": "playSound",
"name": "item.mp3"
@@ -267,7 +267,7 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]不知不觉间,你已经在我的指引下跟鬼帝正面交手并且杀掉了他啊。",
+ "\t[magicMaster]不知不觉间,你已经在我的指引下跟鬼帝正面交手并且杀掉了他啊。",
{
"type": "playSound",
"name": "item.mp3"
@@ -277,12 +277,12 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]你们两个一个是人类勇者,一个是魔物勇者,迟早会有交手的一天。",
+ "\t[magicMaster]你们两个一个是人类勇者,一个是魔物勇者,迟早会有交手的一天。",
{
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]我只不过是操纵了一系列的连锁事件让这一天提早了数十年到来而已。",
+ "\t[magicMaster]我只不过是操纵了一系列的连锁事件让这一天提早了数十年到来而已。",
{
"type": "playSound",
"name": "item.mp3"
@@ -292,22 +292,22 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]一个惧怕征战,爱好和平的懦夫,也配叫救世主?",
+ "\t[magicMaster]一个惧怕征战,爱好和平的懦夫,也配叫救世主?",
{
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]获得了力量,却只会被动挨打而不主动向人类世界出击,龟缩在第二区域惶惶度日,他根本就不配拥有稀有勇者体质。",
+ "\t[magicMaster]获得了力量,却只会被动挨打而不主动向人类世界出击,龟缩在第二区域惶惶度日,他根本就不配拥有稀有勇者体质。",
{
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]为了不让这种人霸占着积累多年的庞大灵魂能量无作为,我设计让你杀掉了他。",
+ "\t[magicMaster]为了不让这种人霸占着积累多年的庞大灵魂能量无作为,我设计让你杀掉了他。",
{
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]你没有辜负我的期待,成功战胜了那个废物,现在你体内累积的灵魂能量……也就是魔力,已经达到了能跟魔王匹敌的地步。",
+ "\t[magicMaster]你没有辜负我的期待,成功战胜了那个废物,现在你体内累积的灵魂能量……也就是魔力,已经达到了能跟魔王匹敌的地步。",
{
"type": "playSound",
"name": "item.mp3"
@@ -317,12 +317,12 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]不止如此,你现在的力量之强就算是统治世界也是绰绰有余!",
+ "\t[magicMaster]不止如此,你现在的力量之强就算是统治世界也是绰绰有余!",
{
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]怎么样?要不要加入我的麾下,跟随我去征战人类世界?",
+ "\t[magicMaster]怎么样?要不要加入我的麾下,跟随我去征战人类世界?",
{
"type": "playSound",
"name": "item.mp3"
@@ -337,12 +337,12 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]……什么?!",
+ "\t[magicMaster]……什么?!",
{
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]等一下!别冲动!你先等我把这利害关系理一理——",
+ "\t[magicMaster]等一下!别冲动!你先等我把这利害关系理一理——",
{
"type": "playSound",
"name": "item.mp3"
@@ -391,7 +391,7 @@ main.floors.sample3=
"trigger": "action",
"enable": false,
"data": [
- "\t[blackMagician]听不进去人话的蠢货,就要用疼痛来管教!",
+ "\t[magicMaster]听不进去人话的蠢货,就要用疼痛来管教!",
{
"type": "changePos",
"direction": "up"
@@ -400,7 +400,7 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]出来吧!禁忌——紫电凶杀阵!",
+ "\t[magicMaster]出来吧!禁忌——紫电凶杀阵!",
{
"type": "show",
"loc": [
@@ -427,7 +427,7 @@ main.floors.sample3=
"type": "sleep",
"time": 500
},
- "\t[blackMagician]感受绝望吧!冥顽不化的蠢货!",
+ "\t[magicMaster]感受绝望吧!冥顽不化的蠢货!",
{
"type": "animate",
"name": "yongchang",
@@ -482,12 +482,12 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]我的魔力可是充足的很啊!我会一直折磨到你屈服于我为止!",
+ "\t[magicMaster]我的魔力可是充足的很啊!我会一直折磨到你屈服于我为止!",
{
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]人类!好好感受吧!当初你们施加于我的痛苦!如今我要百倍奉还!",
+ "\t[magicMaster]人类!好好感受吧!当初你们施加于我的痛苦!如今我要百倍奉还!",
{
"type": "show",
"loc": [
@@ -590,7 +590,7 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]可恶…多管闲事的妖精族…明明只要再让他承受一点疼痛来瓦解他的意志力,我的计划就成功了!",
+ "\t[magicMaster]可恶…多管闲事的妖精族…明明只要再让他承受一点疼痛来瓦解他的意志力,我的计划就成功了!",
{
"type": "playSound",
"name": "item.mp3"
@@ -600,7 +600,7 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]不甘心!我不甘心!妖精公主又如何!\n只要是阻挡我的,不管是谁我都要铲除!",
+ "\t[magicMaster]不甘心!我不甘心!妖精公主又如何!\n只要是阻挡我的,不管是谁我都要铲除!",
{
"type": "playSound",
"name": "item.mp3"
@@ -610,12 +610,12 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]呵呵呵……那个昏庸的魔王,掌握着那么庞大的魔物军队却只知道固守魔塔,而不主动侵略人类世界扩张领土!",
+ "\t[magicMaster]呵呵呵……那个昏庸的魔王,掌握着那么庞大的魔物军队却只知道固守魔塔,而不主动侵略人类世界扩张领土!",
{
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]我实在是看不过眼,所以我才决定把这个具备稀有勇者体质的家伙培养成新一任魔王!\n来让这个世界的势力重新洗牌!",
+ "\t[magicMaster]我实在是看不过眼,所以我才决定把这个具备稀有勇者体质的家伙培养成新一任魔王!\n来让这个世界的势力重新洗牌!",
{
"type": "playSound",
"name": "item.mp3"
@@ -625,7 +625,7 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]恼人至极的妖精族!呵呵呵……我干脆一不做二不休,连你也一块收拾了吧!",
+ "\t[magicMaster]恼人至极的妖精族!呵呵呵……我干脆一不做二不休,连你也一块收拾了吧!",
{
"type": "playSound",
"name": "item.mp3"
@@ -635,7 +635,7 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]只会耍嘴皮子的恼人苍蝇!我倒要看看一块焦炭会不会说话!\n——招雷弹!!",
+ "\t[magicMaster]只会耍嘴皮子的恼人苍蝇!我倒要看看一块焦炭会不会说话!\n——招雷弹!!",
{
"type": "animate",
"name": "yongchang",
@@ -689,7 +689,7 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]哼!翅膀都被烧焦了还要嘴硬?你难不成真以为我不会对你动真格?",
+ "\t[magicMaster]哼!翅膀都被烧焦了还要嘴硬?你难不成真以为我不会对你动真格?",
{
"type": "playSound",
"name": "item.mp3"
@@ -719,7 +719,7 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]什么?!难不成你是想!!不可能……\n就为了一个渺小的人类,不可理喻!!",
+ "\t[magicMaster]什么?!难不成你是想!!不可能……\n就为了一个渺小的人类,不可理喻!!",
{
"type": "playSound",
"name": "item.mp3"
@@ -734,7 +734,7 @@ main.floors.sample3=
"type": "playSound",
"name": "item.mp3"
},
- "\t[blackMagician]不!!不应该是这样的!我完美的计划竟然会被一只小小的妖精破坏!",
+ "\t[magicMaster]不!!不应该是这样的!我完美的计划竟然会被一只小小的妖精破坏!",
{
"type": "playSound",
"name": "item.mp3"
@@ -773,7 +773,7 @@ main.floors.sample3=
"type": "sleep",
"time": 200
},
- "\t[blackMagician]不可能!!!!!",
+ "\t[magicMaster]不可能!!!!!",
{
"type": "hide",
"loc": [
@@ -919,7 +919,7 @@ main.floors.sample3=
},
"afterBattle": {
"6,4": [
- "\t[blackMagician]天真!你以为这样就能战胜我吗?",
+ "\t[magicMaster]天真!你以为这样就能战胜我吗?",
{
"type": "show",
"loc": [
@@ -933,7 +933,7 @@ main.floors.sample3=
}
],
"7,5": [
- "\t[blackMagician]你打败的不过是我众多分身中的其中一个而已。",
+ "\t[magicMaster]你打败的不过是我众多分身中的其中一个而已。",
{
"type": "show",
"loc": [
@@ -947,7 +947,7 @@ main.floors.sample3=
}
],
"5,4": [
- "\t[blackMagician]你的身体已经伤痕累累了,可我还留有着九成多的魔力。",
+ "\t[magicMaster]你的身体已经伤痕累累了,可我还留有着九成多的魔力。",
{
"type": "show",
"loc": [
@@ -961,7 +961,7 @@ main.floors.sample3=
}
],
"5,5": [
- "\t[blackMagician]顽固的家伙!放弃抵抗吧!",
+ "\t[magicMaster]顽固的家伙!放弃抵抗吧!",
{
"type": "show",
"loc": [
@@ -975,7 +975,7 @@ main.floors.sample3=
}
],
"7,4": [
- "\t[blackMagician]哈哈哈哈!我的灵魂远比你想象的强大!\n我即是永恒!",
+ "\t[magicMaster]哈哈哈哈!我的灵魂远比你想象的强大!\n我即是永恒!",
{
"type": "show",
"loc": [
diff --git a/project/functions.js b/project/functions.js
index 42316aff..145d6ead 100644
--- a/project/functions.js
+++ b/project/functions.js
@@ -234,7 +234,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
return true;
},
- "afterBattle": function (enemyId, x, y, callback) {
+ "afterBattle": function (enemyId, x, y) {
// 战斗结束后触发的事件
var enemy = core.material.enemys[enemyId];
@@ -379,10 +379,8 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
else
core.clearContinueAutomaticRoute();
- if (callback) callback();
-
},
- "afterOpenDoor": function (doorId, x, y, callback) {
+ "afterOpenDoor": function (doorId, x, y) {
// 开一个门后触发的事件
var todo = [];
@@ -396,10 +394,8 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
core.continueAutomaticRoute();
else
core.clearContinueAutomaticRoute();
-
- if (callback) callback();
},
- "afterGetItem": function (itemId, x, y, isGentleClick, callback) {
+ "afterGetItem": function (itemId, x, y, isGentleClick) {
// 获得一个道具后触发的事件
// itemId:获得的道具ID;x和y是该道具所在的坐标
// isGentleClick:是否是轻按触发的
@@ -413,8 +409,6 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
}
if (todo.length > 0) core.insertAction(todo, x, y);
-
- if (callback) callback();
},
"afterPushBox": function () {
// 推箱子后的事件
@@ -1218,17 +1212,15 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
cache: {} // clear cache
};
},
- "moveOneStep": function (x, y) {
- // 勇士每走一步后执行的操作,x,y为要移动到的坐标。
+ "moveOneStep": function (callback) {
+ // 勇士每走一步后执行的操作。callback为行走完毕后的回调
// 这个函数执行在“刚走完”的时候,即还没有检查该点的事件和领域伤害等。
// 请注意:瞬间移动不会执行该函数。如果要控制能否瞬间移动有三种方法:
// 1. 将全塔属性中的cannotMoveDirectly这个开关勾上,即可在全塔中全程禁止使用瞬移。
// 2, 将楼层属性中的cannotMoveDirectly这个开关勾上,即禁止在该层楼使用瞬移。
// 3. 将flag:cannotMoveDirectly置为true,即可使用flag控制在某段剧情范围内禁止瞬移。
- // 设置当前坐标,增加步数
- core.setHeroLoc('x', x, true);
- core.setHeroLoc('y', y, true);
+ // 增加步数
core.status.hero.steps++;
// 更新跟随者状态,并绘制
core.updateFollowers();
@@ -1241,6 +1233,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
core.status.hero.hp = 0;
core.updateStatusBar();
core.events.lose();
+ return;
} else {
core.updateStatusBar();
}
@@ -1253,6 +1246,31 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
// 检查自动事件
core.checkAutoEvents();
+ // ------ 检查目标点事件 ------ //
+ // 无事件的道具(如血瓶)需要优先于阻激夹域判定
+ var nowx = core.getHeroLoc('x'), nowy = core.getHeroLoc('y');
+ var block = core.getBlock(nowx, nowy);
+ var hasTrigger = false;
+ if (block!=null && block.block.event.trigger=='getItem' &&
+ !core.floors[core.status.floorId].afterGetItem[nowx+","+nowy]) {
+ hasTrigger = true;
+ core.trigger(nowx, nowy, callback);
+ }
+ // 执行目标点的阻激夹域事件
+ core.checkBlock();
+
+ // 执行目标点的script和事件
+ if (!hasTrigger)
+ core.trigger(nowx, nowy, callback);
+
+ // 检查该点是否是滑冰
+ if (core.onSki()) {
+ // 延迟到事件最后执行,因为这之前可能有阻激夹域动画
+ core.insertAction({"type": "moveAction"}, null, null, null, true);
+ }
+
+ // ------ 检查目标点事件 END ------ //
+
// 如需强行终止行走可以在这里条件判定:
// core.stopAutomaticRoute();
},
diff --git a/project/icons.js b/project/icons.js
index bb14aa99..f821a482 100644
--- a/project/icons.js
+++ b/project/icons.js
@@ -93,7 +93,11 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
"downPortal": 23,
"leftPortal": 24,
"rightPortal": 25,
- "upPortal": 26
+ "upPortal": 26,
+ "steelDoor2": 27,
+ "steelDoor3": 28,
+ "iceDoor": 29,
+ "iceDoor2": 30
},
"npcs": {
"man": 0,
@@ -108,22 +112,24 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
"pinkShop": 9,
"blueShop": 10,
"princess": 11,
- "wlt": 12,
- "wt": 13,
- "wrt": 14,
- "wl": 15,
- "wc": 16,
- "wr": 17,
- "wlb": 18,
- "wrb": 19,
- "dlt": 20,
- "dt": 21,
- "drt": 22,
- "dl": 23,
- "dc": 24,
- "dr": 25,
- "dlb": 26,
- "drb": 27
+ "man2": 28,
+ "woman2": 29,
+ "octopusLeftTop": 12,
+ "octopusTop": 13,
+ "octopusRightTop": 14,
+ "octopusLeft": 15,
+ "octopusCenter": 16,
+ "octopusRight": 17,
+ "octopusLeftBottom": 18,
+ "octopusRightBottom": 19,
+ "dragonLeftTop": 20,
+ "dragonTop": 21,
+ "dragonRightTop": 22,
+ "dragonLeft": 23,
+ "dragonCenter": 24,
+ "dragonRight": 25,
+ "dragonLeftBottom": 26,
+ "dragonRightBottom": 27
},
"npc48": {
"npc0": 0,
@@ -141,57 +147,77 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
"redBat": 6,
"vampire": 7,
"skeleton": 8,
- "skeletonSoilder": 9,
"skeletonCaptain": 10,
- "ghostSkeleton": 11,
"zombie": 12,
"zombieKnight": 13,
"rock": 14,
- "slimeMan": 15,
"bluePriest": 16,
"redPriest": 17,
"brownWizard": 18,
"redWizard": 19,
- "yellowGuard": 20,
- "blueGuard": 21,
- "redGuard": 22,
"swordsman": 23,
"soldier": 24,
"yellowKnight": 25,
"redKnight": 26,
"darkKnight": 27,
- "blackKing": 28,
- "yellowKing": 29,
- "greenKing": 30,
"blueKnight": 31,
"goldSlime": 32,
"poisonSkeleton": 33,
"poisonBat": 34,
- "steelRock": 35,
"skeletonPriest": 36,
"skeletonKing": 37,
- "skeletonWizard": 38,
- "redSkeletonCaption": 39,
- "badHero": 40,
- "demon": 41,
"demonPriest": 42,
"goldHornSlime": 43,
- "redKing": 44,
- "whiteKing": 45,
- "blackMagician": 46,
"silverSlime": 47,
- "swordEmperor": 48,
"whiteHornSlime": 49,
- "badPrincess": 50,
- "badFairy": 51,
- "grayPriest": 52,
"redSwordsman": 53,
- "whiteGhost": 54,
"poisonZombie": 55,
- "magicDragon": 56,
"octopus": 57,
- "darkFairy": 58,
- "greenKnight": 59
+ "greenKnight": 59,
+ "skeletonWarrior": 9,
+ "frozenSkeleton": 69,
+ "silverSlimelord": 60,
+ "goldSlimelord": 61,
+ "whiteSlimeman": 54,
+ "slimeman": 15,
+ "yellowGT": 20,
+ "blueGT": 21,
+ "redGT": 22,
+ "blackMS": 28,
+ "yellowMS": 29,
+ "greenMS": 30,
+ "magicMaster": 46,
+ "blueMS": 45,
+ "redMS": 44,
+ "devilWarrior": 41,
+ "fairyEnemy": 58,
+ "dragon": 56,
+ "skeletonKnight": 39,
+ "skeletonPresbyter": 38,
+ "ironRock": 35,
+ "grayRock": 62,
+ "yellowPriest": 52,
+ "evilPrincess": 50,
+ "blademaster": 48,
+ "evilFairy": 51,
+ "blueRock": 63,
+ "skeletonLite": 64,
+ "blueSkeleton": 65,
+ "bowman": 66,
+ "liteBowman": 67,
+ "crismonZombie": 68,
+ "watcherSlime": 70,
+ "mutantSlimeman": 71,
+ "goldBat": 72,
+ "devilKnight": 73,
+ "grayPriest": 74,
+ "greenGT": 75,
+ "pinkGhostSoldier": 77,
+ "greenSoldier": 78,
+ "greenGhostSoldier": 79,
+ "pinkSoldier": 76,
+ "ghostSoldier": 11,
+ "evilHero": 40
},
"enemy48": {
"angel": 0,
diff --git a/project/maps.js b/project/maps.js
index b21de5b9..c09ef345 100644
--- a/project/maps.js
+++ b/project/maps.js
@@ -86,6 +86,10 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
"102": {"cls":"animates","id":"crystalBottom"},
"103": {"cls":"animates","id":"fire"},
"104": {"cls":"animates","id":"switch"},
+ "105": {"cls":"animates","id":"steelDoor2","doorInfo":[{},"door.mp3","door.mp3"],"animate":1,"trigger":"openDoor"},
+ "106": {"cls":"animates","id":"steelDoor3","doorInfo":[{},"door.mp3","door.mp3"],"animate":1,"trigger":"openDoor"},
+ "107": {"cls":"animates","id":"iceDoor","doorInfo":[{},"door.mp3","door.mp3"],"animate":1,"trigger":"openDoor"},
+ "108": {"cls":"animates","id":"iceDoor2","doorInfo":[{},"door.mp3","door.mp3"],"animate":1,"trigger":"openDoor"},
"121": {"cls":"npcs","id":"man"},
"122": {"cls":"npcs","id":"woman"},
"123": {"cls":"npcs","id":"thief"},
@@ -115,22 +119,24 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
"168": {"cls":"terrains","id":"flower","canPass":true},
"169": {"cls":"terrains","id":"box","trigger":"pushBox"},
"170": {"cls":"terrains","id":"boxed","trigger":"pushBox"},
- "181": {"cls":"npcs","id":"wlt"},
- "182": {"cls":"npcs","id":"wt"},
- "183": {"cls":"npcs","id":"wrt"},
- "184": {"cls":"npcs","id":"wl"},
- "185": {"cls":"npcs","id":"wc"},
- "186": {"cls":"npcs","id":"wr"},
- "187": {"cls":"npcs","id":"wlb"},
- "188": {"cls":"npcs","id":"wrb"},
- "189": {"cls":"npcs","id":"dlt"},
- "190": {"cls":"npcs","id":"dt"},
- "191": {"cls":"npcs","id":"drt"},
- "192": {"cls":"npcs","id":"dl"},
- "193": {"cls":"npcs","id":"dc"},
- "194": {"cls":"npcs","id":"dr"},
- "195": {"cls":"npcs","id":"dlb"},
- "196": {"cls":"npcs","id":"drb"},
+ "181": {"cls":"npcs","id":"octopusLeftTop"},
+ "182": {"cls":"npcs","id":"octopusTop"},
+ "183": {"cls":"npcs","id":"octopusRightTop"},
+ "184": {"cls":"npcs","id":"octopusLeft"},
+ "185": {"cls":"npcs","id":"octopusCenter"},
+ "186": {"cls":"npcs","id":"octopusRight"},
+ "187": {"cls":"npcs","id":"octopusLeftBottom"},
+ "188": {"cls":"npcs","id":"octopusRightBottom"},
+ "189": {"cls":"npcs","id":"dragonLeftTop"},
+ "190": {"cls":"npcs","id":"dragonTop"},
+ "191": {"cls":"npcs","id":"dragonRightTop"},
+ "192": {"cls":"npcs","id":"dragonLeft"},
+ "193": {"cls":"npcs","id":"dragonCenter"},
+ "194": {"cls":"npcs","id":"dragonRight"},
+ "195": {"cls":"npcs","id":"dragonLeftBottom"},
+ "196": {"cls":"npcs","id":"dragonRightBottom"},
+ "197": {"cls":"npcs","id":"man2"},
+ "198": {"cls":"npcs","id":"woman2"},
"201": {"cls":"enemys","id":"greenSlime"},
"202": {"cls":"enemys","id":"redSlime"},
"203": {"cls":"enemys","id":"blackSlime"},
@@ -140,61 +146,81 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
"207": {"cls":"enemys","id":"redBat"},
"208": {"cls":"enemys","id":"vampire"},
"209": {"cls":"enemys","id":"skeleton"},
- "210": {"cls":"enemys","id":"skeletonSoilder"},
+ "210": {"cls":"enemys","id":"skeletonWarrior"},
"211": {"cls":"enemys","id":"skeletonCaptain"},
- "212": {"cls":"enemys","id":"ghostSkeleton"},
+ "212": {"cls":"enemys","id":"ghostSoldier"},
"213": {"cls":"enemys","id":"zombie"},
"214": {"cls":"enemys","id":"zombieKnight"},
"215": {"cls":"enemys","id":"rock"},
- "216": {"cls":"enemys","id":"slimeMan"},
+ "216": {"cls":"enemys","id":"slimeman"},
"217": {"cls":"enemys","id":"bluePriest"},
"218": {"cls":"enemys","id":"redPriest"},
"219": {"cls":"enemys","id":"brownWizard"},
"220": {"cls":"enemys","id":"redWizard"},
- "221": {"cls":"enemys","id":"yellowGuard"},
- "222": {"cls":"enemys","id":"blueGuard"},
- "223": {"cls":"enemys","id":"redGuard"},
+ "221": {"cls":"enemys","id":"yellowGT"},
+ "222": {"cls":"enemys","id":"blueGT"},
+ "223": {"cls":"enemys","id":"redGT"},
"224": {"cls":"enemys","id":"swordsman"},
"225": {"cls":"enemys","id":"soldier"},
"226": {"cls":"enemys","id":"yellowKnight"},
"227": {"cls":"enemys","id":"redKnight"},
"228": {"cls":"enemys","id":"darkKnight"},
- "229": {"cls":"enemys","id":"blackKing"},
- "230": {"cls":"enemys","id":"yellowKing"},
- "231": {"cls":"enemys","id":"greenKing"},
+ "229": {"cls":"enemys","id":"blackMS"},
+ "230": {"cls":"enemys","id":"yellowMS"},
+ "231": {"cls":"enemys","id":"greenMS"},
"232": {"cls":"enemys","id":"blueKnight"},
"233": {"cls":"enemys","id":"goldSlime"},
"234": {"cls":"enemys","id":"poisonSkeleton"},
"235": {"cls":"enemys","id":"poisonBat"},
- "236": {"cls":"enemys","id":"steelRock"},
+ "236": {"cls":"enemys","id":"ironRock"},
"237": {"cls":"enemys","id":"skeletonPriest"},
"238": {"cls":"enemys","id":"skeletonKing"},
- "239": {"cls":"enemys","id":"skeletonWizard"},
- "240": {"cls":"enemys","id":"redSkeletonCaption"},
- "241": {"cls":"enemys","id":"badHero"},
- "242": {"cls":"enemys","id":"demon"},
+ "239": {"cls":"enemys","id":"skeletonPresbyter"},
+ "240": {"cls":"enemys","id":"skeletonKnight"},
+ "241": {"cls":"enemys","id":"evilHero"},
+ "242": {"cls":"enemys","id":"devilWarrior"},
"243": {"cls":"enemys","id":"demonPriest"},
"244": {"cls":"enemys","id":"goldHornSlime"},
- "245": {"cls":"enemys","id":"redKing"},
- "246": {"cls":"enemys","id":"whiteKing"},
- "247": {"cls":"enemys","id":"blackMagician"},
+ "245": {"cls":"enemys","id":"redMS"},
+ "246": {"cls":"enemys","id":"blueMS"},
+ "247": {"cls":"enemys","id":"magicMaster"},
"248": {"cls":"enemys","id":"silverSlime"},
- "249": {"cls":"enemys","id":"swordEmperor"},
+ "249": {"cls":"enemys","id":"blademaster"},
"250": {"cls":"enemys","id":"whiteHornSlime"},
- "251": {"cls":"enemys","id":"badPrincess"},
- "252": {"cls":"enemys","id":"badFairy"},
- "253": {"cls":"enemys","id":"grayPriest"},
+ "251": {"cls":"enemys","id":"evilPrincess"},
+ "252": {"cls":"enemys","id":"evilFairy"},
+ "253": {"cls":"enemys","id":"yellowPriest"},
"254": {"cls":"enemys","id":"redSwordsman"},
- "255": {"cls":"enemys","id":"whiteGhost"},
+ "255": {"cls":"enemys","id":"whiteSlimeman"},
"256": {"cls":"enemys","id":"poisonZombie"},
- "257": {"cls":"enemys","id":"magicDragon"},
+ "257": {"cls":"enemys","id":"dragon"},
"258": {"cls":"enemys","id":"octopus"},
- "259": {"cls":"enemys","id":"darkFairy"},
+ "259": {"cls":"enemys","id":"fairyEnemy"},
"260": {"cls":"enemys","id":"greenKnight"},
"261": {"cls":"enemy48","id":"angel"},
"262": {"cls":"enemy48","id":"elemental"},
"263": {"cls":"enemy48","id":"steelGuard"},
"264": {"cls":"enemy48","id":"evilBat"},
+ "265": {"cls":"enemys","id":"silverSlimelord"},
+ "266": {"cls":"enemys","id":"goldSlimelord"},
+ "267": {"cls":"enemys","id":"grayRock"},
+ "268": {"cls":"enemys","id":"blueRock"},
+ "269": {"cls":"enemys","id":"skeletonLite"},
+ "270": {"cls":"enemys","id":"blueSkeleton"},
+ "271": {"cls":"enemys","id":"bowman"},
+ "272": {"cls":"enemys","id":"liteBowman"},
+ "273": {"cls":"enemys","id":"crismonZombie"},
+ "274": {"cls":"enemys","id":"frozenSkeleton"},
+ "275": {"cls":"enemys","id":"watcherSlime"},
+ "276": {"cls":"enemys","id":"mutantSlimeman"},
+ "277": {"cls":"enemys","id":"goldBat"},
+ "278": {"cls":"enemys","id":"devilKnight"},
+ "279": {"cls":"enemys","id":"grayPriest"},
+ "280": {"cls":"enemys","id":"greenGT"},
+ "281": {"cls":"enemys","id":"pinkSoldier"},
+ "282": {"cls":"enemys","id":"pinkGhostSoldier"},
+ "283": {"cls":"enemys","id":"greenSoldier"},
+ "284": {"cls":"enemys","id":"greenGhostSoldier"},
"300": {"cls":"terrains","id":"ground"},
"301": {"cls":"terrains","id":"grass"},
"302": {"cls":"terrains","id":"grass2"},
diff --git a/project/materials/animates.png b/project/materials/animates.png
index 3a901cb8..774a7990 100644
Binary files a/project/materials/animates.png and b/project/materials/animates.png differ
diff --git a/project/materials/enemys.png b/project/materials/enemys.png
index 2c29805b..673612bb 100644
Binary files a/project/materials/enemys.png and b/project/materials/enemys.png differ
diff --git a/project/materials/icons.png b/project/materials/icons.png
index d7494bb4..5164f041 100644
Binary files a/project/materials/icons.png and b/project/materials/icons.png differ
diff --git a/project/materials/items.png b/project/materials/items.png
index dfb56a9a..ffedc560 100644
Binary files a/project/materials/items.png and b/project/materials/items.png differ
diff --git a/project/materials/keyboard.png b/project/materials/keyboard.png
index 9f2b057a..46500bcb 100644
Binary files a/project/materials/keyboard.png and b/project/materials/keyboard.png differ
diff --git a/project/materials/npcs.png b/project/materials/npcs.png
index a2830bc9..9f02067a 100644
Binary files a/project/materials/npcs.png and b/project/materials/npcs.png differ
diff --git a/v2.x-final更新.txt b/v2.x-final更新.txt
index f996dd5a..2fc4b1c5 100644
--- a/v2.x-final更新.txt
+++ b/v2.x-final更新.txt
@@ -11,7 +11,7 @@
10. 建议给“转变图块”事件增加一个淡入时间参数,用于原本是空地或空气墙的情况,目前这种效果必须借助存在安全隐患的红点
(已完成!) 11. 建议修复勇士后退时跟随者的鬼畜行为,并推出一套能够对跟随者位置和朝向进行读写的API甚至事件,且允许这些信息被计入存档,以实现一些演出效果甚至游戏要素,如新新2用公主占位防冰块
(已完成!) 12. “设置怪物属性”事件的下拉框目前只支持一部分,另一部分只能通过手敲json再解析来得到,希望提供完整支持
-13. 建议给core.moveAction(callback)提供对应的事件,用于在事件中让勇士像事件外一样移动,从而正常触发跑毒和阻激夹域捕等
+(已完成!) 13. 建议给core.moveAction(callback)提供对应的事件,用于在事件中让勇士像事件外一样移动,从而正常触发跑毒和阻激夹域捕等
(已完成!) 14. core.openShop()和对应的事件,建议在用于公共事件时简单地退化为“插入公共事件”而不要打断当前事件,把决定权交给作者
(已完成!) 15. “等待用户操作”虽然提供了场合块但还不支持将多个按键的场合合并(比如空格、回车和C键一般会被作者予以合并,执行内容如果只是大致相同也值得合并,在块内由作者根据flag再行分歧),建议支持一下
(已完成!) 16. “绘制描边文本”事件建议加一个“描边颜色”参数,目前只能描黑边
@@ -47,8 +47,10 @@
像素高分辨率问题
(已完成!) 道具效果优化,删除部分道具相关的开关
(已完成!) 素材列表选择
-油漆桶,动态更改地图大小
+(已完成!) 油漆桶,动态更改地图大小
地图拉框选择复制剪切删除
+(已完成!) 素材替换
+大屏幕下放大游戏界面
-------------
@@ -117,7 +119,7 @@
(已完成!) 60. “设置怪物属性”事件的下拉框目前只支持一部分,另一部分只能通过手敲json再解析来得到,希望提供完整支持
(已完成!) 61. 在事件编辑器中进行地图选点时,有些事件指令虽然只能用于同楼层,但实际生效时勇士可能已经不在当前正在编辑的楼层(比如在一个楼层切换事件指令后)了,所以希望地图选点始终提供楼层下拉表
(文档相关给秋橙) 62. 希望在线文档介绍一下楼层和startText的独立开关的flag表示
-63. 希望给core.moveAction(callback)函数提供一个对应的事件指令,用于在事件流处理中让勇士进行一些有游戏性意义(即非纯演出)的移动。如果做不到的话希望参照本文的46号issue作为原生脚本勾选async的例子讲解如何使用
+(已完成!) 63. 希望给core.moveAction(callback)函数提供一个对应的事件指令,用于在事件流处理中让勇士进行一些有游戏性意义(即非纯演出)的移动。如果做不到的话希望参照本文的46号issue作为原生脚本勾选async的例子讲解如何使用
(已完成!) 64. “打开全局商店”事件指令建议在用于公共事件版商店时简单地退化为“插入公共事件”而不要打断当前事件流,由作者在这个公共事件结尾去决定“立刻结束当前事件”还是不结束
(已修复!) 65. “显隐贴图”的参数应为像素坐标而不是网格坐标,请修正在线文档的描述。同时建议加个淡入淡出时间参数,还建议贴图能像图片一样有透明度和被移动
(不处理) 66. 读档建议换个和floor.mp3不一样的音效