设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 686|回复: 9
打印 上一主题 下一主题

[有事请教] 【掩护】这个特性怎么微调一下?自己都丝血了还出掩护..

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3967
在线时间
1000 小时
注册时间
2016-12-6
帖子
370
1
发表于 2023-10-8 15:40:02 | 显示全部楼层
原版的掩护机制只关心你身上有没有掩护标志以及是否可行动,这在rpg_objects.js里可以找到出处:

Game_BattlerBase.prototype.isSubstitute = function() {
    return this.specialFlag(Game_BattlerBase.FLAG_ID_SUBSTITUTE) && this.canMove();
};

以及在rpg_managers.js里确定了掩护只在出现了残血队友时触发:

BattleManager.checkSubstitute = function(target) {
    return target.isDying() && !this._action.isCertainHit();
};

所以你如果只打算让掩护在血量充足时才触发,可以对上述代码进行修改,比如追加一个&& !this.isDying();
这样即便身上有掩护特性,但因为已经残血了不满足条件,是不会触发掩护队友的
回复 支持 1 反对 0

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3967
在线时间
1000 小时
注册时间
2016-12-6
帖子
370
2
发表于 2023-11-6 19:52:22 | 显示全部楼层
Kaede_123 发表于 2023-11-6 18:52
大神,关于这个问题我想请教一下,我试过加上&& !this.isDying()代码后出现undefined报错,另外我还想加 ...

BattleManager这个函数里并没法判断this.isDying()是源自什么变量,你如果是想判断【掩护者本人也不能是濒死状态】,得加在下面这个函数里:
Game_BattlerBase.prototype.isSubstitute = function() {
    return this.specialFlag(Game_BattlerBase.FLAG_ID_SUBSTITUTE) && this.canMove();
};

改成return this.specialFlag(Game_BattlerBase.FLAG_ID_SUBSTITUTE) && this.canMove() && !this.isDying();

这样掩护者本人残血后,就无法让掩护机制正常生效
异常状态下无法进行掩护也是同理,追加!this.isStateAffected(n)句式,n就是异常状态的状态ID
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-14 04:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表