commit
111de47588
@ -678,15 +678,15 @@ if (core.getFlag('skill', 0)==1) { // 开启了技能1
|
|||||||
|
|
||||||
1. 每个角色弄一张行走图。相关信息参见[自定义事件:setHeroIcon](event#setHeroIcon:更改角色行走图)。
|
1. 每个角色弄一张行走图。相关信息参见[自定义事件:setHeroIcon](event#setHeroIcon:更改角色行走图)。
|
||||||
2. [覆盖楼传事件](#覆盖楼传事件),这样可以通过点工具栏的楼层传送按钮来切换角色。当然你也完全可以自己写一个道具,或[自定义快捷键](#自定义快捷键)来进行绑定。
|
2. [覆盖楼传事件](#覆盖楼传事件),这样可以通过点工具栏的楼层传送按钮来切换角色。当然你也完全可以自己写一个道具,或[自定义快捷键](#自定义快捷键)来进行绑定。
|
||||||
3. 在脚本编辑的setInitData中初始化新角色的属性值。
|
3. 将下述代码直接贴入脚本编辑 - 插件编写中。
|
||||||
```js
|
``` js
|
||||||
// 所有需要保存的内容;这些保存的内容不会多角色共用,在切换时会进行恢复。
|
// 所有需要保存的内容;这些保存的内容不会多角色共用,在切换时会进行恢复。
|
||||||
// 你也可以自行新增或删除,比如不共用金币则可以加上"money"的初始化,不共用道具则可以加上"items"的初始化,
|
// 你也可以自行新增或删除,比如不共用金币则可以加上"money"的初始化,不共用道具则可以加上"items"的初始化,
|
||||||
// 多角色共用hp的话则删除hp,等等。总之,不共用的属性都在这里进行定义就好。
|
// 多角色共用hp的话则删除hp,等等。总之,不共用的属性都在这里进行定义就好。
|
||||||
var initData = {
|
var hero1 = { // 1号勇士(默认的是0号)
|
||||||
"floorId": "MT0", // 该角色楼层ID
|
"floorId": "MT0", // 该角色楼层ID
|
||||||
"icon": "hero2.png", // 角色的行走图名称
|
"icon": "hero1.png", // 角色的行走图名称
|
||||||
"name": "2号角色",
|
"name": "1号角色",
|
||||||
"lv": 1,
|
"lv": 1,
|
||||||
"hp": 1000,
|
"hp": 1000,
|
||||||
"atk": 10,
|
"atk": 10,
|
||||||
@ -695,41 +695,58 @@ if (core.getFlag('skill', 0)==1) { // 开启了技能1
|
|||||||
"loc": {"x": 0, "y": 0, "direction": "up"},
|
"loc": {"x": 0, "y": 0, "direction": "up"},
|
||||||
// 不共用的数据都可以在这里加上定义
|
// 不共用的数据都可以在这里加上定义
|
||||||
}
|
}
|
||||||
core.setFlag("hero1", initData); // 将属性值存到变量中
|
|
||||||
|
// 初始化该勇士
|
||||||
|
this.initHero1 = function () {
|
||||||
|
core.status.hero.icon = "hero.png";
|
||||||
|
core.setFlag("hero1", core.clone(hero1)); // 将属性值存到变量中
|
||||||
|
}
|
||||||
|
|
||||||
|
// 切换勇士
|
||||||
|
this.changeHero = function () {
|
||||||
|
var saveList = Object.keys(hero1);
|
||||||
|
|
||||||
|
// 保存当前内容
|
||||||
|
var toSave = {};
|
||||||
|
saveList.forEach(function(name) {
|
||||||
|
if (name=='floorId') toSave[name] = core.status.floorId; // 楼层单独设置
|
||||||
|
else toSave[name] = core.clone(core.status.hero[name]); // 使用core.clone()来创建新对象
|
||||||
|
})
|
||||||
|
|
||||||
|
var currHeroId = core.getFlag("heroId", 0); // 获得当前角色ID
|
||||||
|
var toHeroId = (currHeroId+1)%2; // 获得要切换到的角色ID,比如 0->1,1->0
|
||||||
|
|
||||||
|
core.setFlag("hero"+currHeroId, toSave); // 将当前角色信息进行保存
|
||||||
|
|
||||||
|
var data = core.getFlag("hero"+toHeroId); // 获得要切换的角色保存内容
|
||||||
|
|
||||||
|
// 设置角色的属性值
|
||||||
|
saveList.forEach(function(name) {
|
||||||
|
if (name != 'floorId')
|
||||||
|
core.status.hero[name] = core.clone(data[name]);
|
||||||
|
})
|
||||||
|
|
||||||
|
// 插入事件:改变角色行走图并进行楼层切换
|
||||||
|
core.insertAction([
|
||||||
|
{"type": "setHeroIcon", "name": data.icon||"hero.png"}, // 改变行走图
|
||||||
|
{"type": "changeFloor", "floorId": data.floorId, "loc": [data.loc.x, data.loc.y],
|
||||||
|
"direction": data.loc.direction, "time": 0} // 楼层切换事件
|
||||||
|
])
|
||||||
|
core.setFlag("heroId", toHeroId); // 保存切换到的角色ID
|
||||||
|
}
|
||||||
```
|
```
|
||||||
4. 道具(或快捷键)的脚本如下。
|
3. 在脚本编辑 - setInitData中加上`core.plugin.initHero1()`来初始化新勇士。
|
||||||
```js
|
``` js
|
||||||
// 这个saveList和上面的初始化定义中的的key,除了不要icon(行走图名称)其他应完全相同。
|
function(hard) {
|
||||||
var saveList = ["floorId", "name", "lv", "hp", "atk", "def", "mdef", "loc"];
|
// ... 上略
|
||||||
|
core.events.afterLoadData();
|
||||||
// 保存当前内容
|
|
||||||
var toSave = {};
|
// 初始化新勇士
|
||||||
saveList.forEach(function(name) {
|
core.plugin.initHero1();
|
||||||
if (name=='floorId') toSave[name] = core.status.floorId; // 楼层单独设置
|
}
|
||||||
else toSave[name] = core.clone(core.status.hero[name]); // 使用core.clone()来创建新对象
|
|
||||||
})
|
|
||||||
|
|
||||||
var currHeroId = core.getFlag("heroId", 0); // 获得当前角色ID
|
|
||||||
var toHeroId = (currHeroId+1)%2; // 获得要切换到的角色ID,比如 0->1,1->0
|
|
||||||
|
|
||||||
core.setFlag("hero"+currHeroId, toSave); // 将当前角色信息进行保存
|
|
||||||
|
|
||||||
var data = core.getFlag("hero"+toHeroId); // 获得要切换的角色保存内容
|
|
||||||
|
|
||||||
// 设置角色的属性值
|
|
||||||
saveList.forEach(function(name) {
|
|
||||||
if (core.isset(core.status.hero[name]) && core.isset(data[name]))
|
|
||||||
core.status.hero[name] = core.clone(data[name]);
|
|
||||||
})
|
|
||||||
|
|
||||||
// 插入事件:改变角色行走图并进行楼层切换
|
|
||||||
core.insertAction([
|
|
||||||
{"type": "setHeroIcon", "name": data.icon||"hero.png"}, // 改变行走图
|
|
||||||
{"type": "changeFloor", "floorId": data.floorId, "loc": [data.loc.x, data.loc.y],
|
|
||||||
"direction": data.loc.direction, "time": 0} // 楼层切换事件
|
|
||||||
])
|
|
||||||
core.setFlag("heroId", toHeroId); // 保存切换到的角色ID
|
|
||||||
```
|
```
|
||||||
|
4. 如果需要切换角色(包括事件、道具或者快捷键等),可以直接调用自定义JS脚本: `core.plugin.changeHero();` 。
|
||||||
|
|
||||||
|
|
||||||
## 根据难度分歧来自定义地图
|
## 根据难度分歧来自定义地图
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user