赞 | 9 |
VIP | 0 |
好人卡 | 4 |
积分 | 4 |
经验 | 36501 |
最后登录 | 2019-9-13 |
在线时间 | 679 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 440
- 在线时间
- 679 小时
- 注册时间
- 2014-3-15
- 帖子
- 292
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
Yanfly的rowformation插件实现的是角色的位置以及位置附加的相应的状态。这跟真正的阵型系统还差了很远。所以,我打算利用YepCommonEvent
与rowformation来制作一个近似的阵型系统。
首先是更改rowformation插件中角色位置的定义。rowformation默认给予了10个默认的位置。如果觉得不够可以自行在js文件添加。
根据插件文件的定义我大概定义了以下位置,当然并不绝对
1 4 7
2 5 8 10 这样的话大体定义了角色的位置。
3 6 9
Row提供了更改队伍角色位置的命令 SetPartyRow n m。所以按照你定义的队形的位置,设置相应命令。利用一个变量来决定你的队伍采用的哪种阵型。
在公共事件中,如下所示:
common event的设置方法
控制阵型变量设定值为X,值为你的阵型的编号
SetPartyRow n m//如果1-4个人角色对应不同的位置请自行用分支控制来决定。
然后是阵型对应状态,这个方法需要消耗不多于4*n的状态,然后自己计算相应的位置对应需要几个状态。利用 Custom Row Condition来判断。
如1号阵型护卫阵型采用 1-10 2-2 3-4 4-6 的队形1号位速度-50%,防御力+30%,对应10号状态。2号阵型流星阵型采用 1- 2 2-5 3-8 4-10,4号魔攻力+10%,魔防力-10%,对应11号状态。变量1控制阵型系统。首先,在状态设置中,row10要附加10、11号状态,然后在10号状态下写下:
<Custom Row Condition>
if ($gameVariables.value(1) === 1) {
condition = true;
} else {
condition = false;
}
</Custom Row Condition>
在11号状态写下
<Custom Row Condition>
if ($gameVariables.value(1) === 2) {
condition = true;
} else {
condition = false;
}
</Custom Row Condition>
这样的话在阵型1中10号位中10号状态开启,11号状态关闭,阵型2中10号状态关闭,11号状态开启。从而实现阵型变化。
最后,就是在组队中如果更改了队员顺序如何保持你的阵型仍然有效。所以这是我为何希望你用一个队伍管理系统的缘故,只要在退出队伍系统时执行相应的
公共事件就可以了。以我美化的Yana插件为例子:
找到退出时执行的命令
Scene_Formation.prototype.returnScene = function() {
this.popScene(this);
};
利用阵型变量的定义决定执行哪个阵型的公共事件,加上:
var exitnum = $gameVariables.value(1);//1可以换成你定义的变量号
$gameTemp.reserveCommonEvent(exitnum + 4); //在你的阵型的公共变量为连续的前提下,exitnum为你的第一个阵型公共事件号-1,结束。
这就是大约的阵型系统的制作。当然在基本上所有阵型插件于Yanfly的插件冲突的问题下,这是一个可行的思路。 |
|