|
本帖最后由 灯笼菜刀王 于 2025-11-25 10:44 编辑 原因, 你这个CP脚本为了在状态窗描绘CP槽, 是需要一直刷新状态窗, 但是因为"战斗过程是先进行结算再表演动画", 如果一直刷新状态窗,那你就会看到血先扣了再挨打 , 所以状态窗需要在特定的时候才刷新面板数值显示默认情况是在行动前和行动后刷新一次, 但是这玩意逻辑不同, 什么时候刷新要看作者是怎么设计执行逻辑的, 和你预想的不同很正常 ![]() 我不想去理解作者怎么设计逻辑的, 所以直接暴力做法, 解除的时候强制刷新窗口 在 Game_Battler 2 里找到 def remove_states_auto 这个函数(219行附近) ,然后把这段内容替换成下面的
这样就可以解决刷新问题, 不过可能会带来其他后果,毕竟这违背了作者特意搞的"特定情况下才会刷新状态窗"的设计, 这咱就不管了,一堆陈年烂屁股擦不完, 真碰到了, 两害相权取其轻吧 (新建个工程把它复制回去就可以还原了) |
本帖最后由 灯笼菜刀王 于 2025-11-24 09:51 编辑
▲这个是你自己的问题, 这里限制了只有"普通攻击同伴 或者 敌人行动" 时才会调用自动解除状态, 普通攻击敌人和不行动时都不调用, 摊手 我不知道你这样写是要干嘛, 想对无法控制的状态都有效, 那把 == 4 改成 > 1 就行了, 当然, 之后会造成啥其他问题咱可不管了, 毕竟CTB这类脚本在回合判断上就是一堆历史遗留问题, 改起来还不如我重新写一个 |
灯笼菜刀王 发表于 2025-11-21 09:40 关于装备方面的覆盖确实解决了,但是又引申出新的问题:常规赋予的状态,即使限定了状态持续的回合数,但无论经过多少回合都无法解除(话说之前是不是遇到过同样的问题?) |
重新复制脚本吧 |
灯笼菜刀王 发表于 2025-11-19 09:54 测试了一下,不行,角色还是会不受控制行动 另外如果删掉第一个脚本,连遮盖状态都无法遮盖了 |
|
本帖最后由 灯笼菜刀王 于 2025-11-19 10:08 编辑 看了看, 第二个脚本写法和我好像.... 原来就是我写的 ![]() 要修改两个地方 第10行,括号里的 i 要改成 a 然后29行下面增加一句 return if !state?(state_id) 第一个脚本删掉, 没任何意义, 不改动@states就是面子工程, 对实际效果没影响 -------------分割线----------------------------------------------- 其实, 如果想要 "防具也可以免疫被动状态" 那全局搜索 def update_auto_state(old_armor, new_armor) 然后在 if new_armor != nil and new_armor.auto_state_id != 0 这句下面加一句 return if state_guard?(new_armor.auto_state_id) 这样, 自动状态就和普通状态一样, 在防具的"状态防御"那打钩就可以免疫掉了 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2026-6-4 17:53
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.