Project1
标题: 必定援护的被动技能 [打印本页]
作者: tmh2009 时间: 2015-12-31 09:16
标题: 必定援护的被动技能
因为是菜鸟,所以问题可能有点多,抱歉...
今次主要是想问援护技能方面的事
翻过一些以往的帖,有提到MV有特殊标记「援护」,使同伴有一定机率为HP低的同伴挡刀
先撇开我好像找不到这个标记这个问题゚(つд`゚)
我比较想知道有没有办法做到100%援护指定队友的技能
因为最近做的游戏是只有1HP的女主以及超强的男主
为了保护女主不会一战斗就被KO,想帮男主添加一个「只要男主没有被KO,女主受到攻击的话,男主必定会援护挡刀」的被动技能,只要战斗开始就会立即生效这样
这样的技能需要动用到插件或脚本去做吗?
虽然有网站开发的少许JAVASCRIPT的经验,但真的不太知道如何下手
作者: chenyilindzh 时间: 2015-12-31 09:44
事件,只要男存活,即无法选择女主为目标?
作者: trentswd 时间: 2015-12-31 10:06
在特征里面最后一页,早期一点的汉化是特性
至于后面的需求,确实需要改脚本。怎么下手:搜索substitute。不排除有人做好现成的,毕竟也不是很特殊的需求
作者: andrewx 时间: 2015-12-31 10:57
本帖最后由 andrewx 于 2015-12-31 12:52 编辑
首先给男主特征里加上楼上说的援护flag,这样男主默认自带援护flag
如果楼主只需要这一种援护效果的话(即不考虑其他角色的的援护),那么直接修改援护判定部分就行了
BattleManager.checkSubstitute = function(target) {
//修改开始
if (!this._action.isCertainHit() && target.isActor() && target.actorId() === 2){
return true;
}
//修改结束
return target.isDying() && !this._action.isCertainHit();
};
BattleManager.checkSubstitute = function(target) {
//修改开始
if (!this._action.isCertainHit() && target.isActor() && target.actorId() === 2){
return true;
}
//修改结束
return target.isDying() && !this._action.isCertainHit();
};
把第三行最后一个target.actorId() === 2的2换成你的女主id,这个保存成js当成插件启用即可
这只是例子,即在援护效果判定前面额外加了个判定:首先不是某种攻击(系统设定不需要管)不是必中,并且目标属于主角,且目标的角色id等于2,那么一定发动援护(无论哪个主角目前有援护flag)
其他复杂的判定大概有相关脚本?楼主有js经验的话按需求自己加加看
作者: tmh2009 时间: 2015-12-31 12:24
本帖最后由 tmh2009 于 2015-12-31 12:27 编辑
andrewx 发表于 2015-12-31 10:57 
首先给男主特征里加上楼上说的援护flag,这样男主默认自带援护flag
如果楼主只需要这一种援护效果的话(即 ...
暂时手边没有RPG MAKER,没法试...
想交流一下有关这个脚本的部份
isCertainHit()这个METHOD是不是指必中的意思?
RPG MAKER 里有什麽技能是预设必中的吗?或会怎样设才为之必中?
因为原意是希望不论是啥攻击甚至地图炮,只要男主没死就一直可以进行援护
所以看完这段其实我想把条件修成
if (target.isActor() && target.actorId() === 2){
return true;
}
if (target.isActor() && target.actorId() === 2){
return true;
}
但担心!this._action.isCertainHit()会牵扯到什麽系统部份的判定
另外脚本方面有主动援护者的变数吗?
因为想尽可能不影响原功能,如果有能够做到类似∶
if (substituter.isActor() && substituter.actorId() === 1 && target.isActor() && target.actorId() === 2){
return true;
}
if (substituter.isActor() && substituter.actorId() === 1 && target.isActor() && target.actorId() === 2){
return true;
}
这样的东西,当然是最好。
抱歉……明明试也没试过就在问东问西,连我都有点不好意思了。|д゚ )
作者: andrewx 时间: 2015-12-31 12:50
本帖最后由 andrewx 于 2015-12-31 13:26 编辑
tmh2009 发表于 2015-12-31 12:24 
暂时手边没有RPG MAKER,没法试...
想交流一下有关这个脚本的部份
isCertainHit()这个METHOD是不是指必中 ...
啊,我翻了下数据库确实应该是必中,之前对certainHit理解有错,抱歉
其实最明显的地方就是防御逃跑待机技能都会设定成必中,因此假设女主执行防御,男主会触发“援护”然后抢掉了女主的防御效果囧。其他正常的技能你其实可以设定成非必中的。
判定援护者的话你可以看下执行援护的这个方法:
BattleManager.applySubstitute = function(target) {
if (this.checkSubstitute(target)) {
var substitute = target.friendsUnit().substituteBattler();
if (substitute && target !== substitute) {
this._logWindow.displaySubstitute(substitute, target);
return substitute;
}
}
return target;
};
BattleManager.applySubstitute = function(target) {
if (this.checkSubstitute(target)) {
var substitute = target.friendsUnit().substituteBattler();
if (substitute && target !== substitute) {
this._logWindow.displaySubstitute(substitute, target);
return substitute;
}
}
return target;
};
注意这个substituteBattler()将会按依次判断所有队员并返回最先被判定为带有援护flag的角色。
你可以改成先判定目标是女主且援护者返回为男主,那么无条件进行援护,其他情况按原来的流程进行。
作者: trentswd 时间: 2015-12-31 14:43
技能有三种,物理 魔法 必中,没记错应该在技能的发动分组里面。另外如果用yep 的话,yep也要跟着改(提供了援护的动画效果)。
其实也可以不使用援护,把援护的几个方法复制一下改一下名字,专门做成男主给女主挡枪的功能
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |