| 赞 | 349 |
| VIP | |
| 好人卡 | |
| 积分 | 299 |
| 经验 | |
| 最后登录 | 2026-10-1 |
| 在线时间 | 2423 小时 |
遠航の猫咪
- 梦石
- 3
- 星屑
- 26947
- 在线时间
- 2423 小时
- 注册时间
- 2005-10-15
- 回帖
- 987

|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 SailCat 于 2021-2-20 19:58 编辑
防具自动状态是RMXP独有的内建功能,VA等后续版本都不支持
但是这个状态,除了之前发现的错误卸除bug之外,现在又发现了一个bug:切换自动状态时HP SP不满
bug复现方法:
1 定义两个同一位置的装备,分别带有两个不同的自动状态
2 两个自动状态的maxhp和maxsp比例都大于100%,可以一样也可以不同
3 装备其中一个,将hp和sp补满
4 用装备菜单或事件指令将装备更改为另外一个
5 结果:HP和SP不满,变为100%的数值
造成这个bug的原因是,更新自动状态的方法update_auto_state是先做remove再做add,每做一次都要修正HP和SP
修改方法:由于update_auto_state只在装备功能中调用,而remove和add会在很多地方调用,所以修改update_auto_state,进行HP和SP的保存恢复即可
简易修正
[pre lang="ruby"]alias update_auto_state_1 update_auto_state
def update_auto_state(old_armor, new_armor)
last_hp = @hp
last_sp = @sp
update_auto_state_1(old_armor, new_armor)
self.hp = last_hp
self.sp = last_sp
end[/pre]
我会在即将更新的SEP Core系列插件中修复这个bug
VA等后续版本中,武器和防具可以直接对mhp mmp进行加成,所以在equip方法中有对hp和mp的处理
但是XP里武器和防具不能直接对mhp和mmp加成,所以在equip方法中默认没有相关处理,设计者没有想到用户可以通过自动状态的方式来变相实现mhp mmp加成。 |
评分
-
查看全部评分
|