| 赞 | 424 |
| VIP | 0 |
| 好人卡 | 11 |
| 积分 | 418 |
| 经验 | 242285 |
| 最后登录 | 2026-6-2 |
| 在线时间 | 5970 小时 |
Lv5.捕梦者
- 梦石
- 0
- 星屑
- 41773
- 在线时间
- 5970 小时
- 注册时间
- 2006-11-10
- 帖子
- 6962
|
本帖最后由 灯笼菜刀王 于 2025-11-25 10:44 编辑
原因, 你这个CP脚本为了在状态窗描绘CP槽, 是需要一直刷新状态窗, 但是因为"战斗过程是先进行结算再表演动画", 如果一直刷新状态窗,那你就会看到血先扣了再挨打 , 所以状态窗需要在特定的时候才刷新面板数值显示
默认情况是在行动前和行动后刷新一次, 但是这玩意逻辑不同, 什么时候刷新要看作者是怎么设计执行逻辑的, 和你预想的不同很正常
我不想去理解作者怎么设计逻辑的, 所以直接暴力做法, 解除的时候强制刷新窗口
在 Game_Battler 2 里找到 def remove_states_auto 这个函数(219行附近) ,然后把这段内容替换成下面的
- def remove_states_auto
- yes = false
- for i in @states_turn.keys.clone
- if @states_turn[i] > 0
- @states_turn[i] -= 1
- elsif rand(100) < $data_states[i].auto_release_prob
- remove_state(i) ;yes = true
- end
- end
- $scene.instance_variable_get(
- :@status_window).xrxs_bp1_refresh if yes and $game_temp.in_battle
- end
复制代码
这样就可以解决刷新问题, 不过可能会带来其他后果,毕竟这违背了作者特意搞的"特定情况下才会刷新状态窗"的设计, 这咱就不管了,一堆陈年烂屁股擦不完, 真碰到了, 两害相权取其轻吧 (新建个工程把它复制回去就可以还原了) |
评分
-
查看全部评分
|