Project1

标题: 关于状态图标化的不实时消除 [打印本页]

作者: 微妙夏伤_    时间: 2026-2-1 18:12
标题: 关于状态图标化的不实时消除
不实时消除体现在己方状态栏,当你选择能对己方用的技能或道具时,正上方是显示无误的,也就是说针对的是名字和血条旁的那个显示不实时消除
虽然脚本里有判定,到某个阶段透明度变为100,但是有时候能正确显示透明,有时候不行。
具体问题是这样的:
①比如:我方第1回合中了中毒状态,持续3回合(之后100%解除,下同),按理来说,2、3、4回合,3个回合就结束中毒状态,总共受到3次伤害,但实际会受到4次伤害,也就是第5回合选择行动方式完成后也还会受到1次伤害。(此时动画和图标消时)。
刚才是有持续伤害(毒)或者持续回复(自动回血)的状态,下面来说别的状态:
②:假如我给自身上了一个3回合加攻击的状态,按理来说,一样的2、3、4回合就会结束,的确,增加了3次伤害,但是因为图标并没有实时消除,直到第5回合的开始选择行动方式时依旧存在(只是动画和图标存在,实际效果已经结束),但是当你进行任何行动后,上回合结束就该消除的图标终于消除了,但是战斗时间长了,会导致误判回合数。
有没有大佬知道怎么改的

关于状态图标化的不实时消除.zip

213.61 KB, 下载次数: 3


作者: 灯笼菜刀王    时间: 2026-2-2 10:27
本帖最后由 灯笼菜刀王 于 2026-2-2 10:35 编辑

原因是CP制和默认整体回合制的不可调合矛盾, 笑

默认回合制是以"所有人进行一次行动为一回合", 而CP制是"以个人行动一次为一回合", 造成的结果就是速度快的人经过的回合数会远高于速度慢的, 因此基于默认回合计数方式就会有这种问题, 想治本只能重新构建CP制体系下的回合计算方式

不是太讲究的话, 可以治下标,  全局搜索 def update_phase4_step1  把它下面的 @active_battler.remove_states_auto 这句移动到 def update_phase4_step5 这句下面

另外搜索 if @active_battler.restriction == 4 ,在它下面也加上这句 @active_battler.remove_states_auto (如果搜出来多个, 就给在最下面的那条加上就行)

这是把本来在行动前执行的状态扣除回合挪到行动后, 可以解决你说的问题

当然,因为不可调合矛盾, 它会带来新的问题, 就是像击晕混乱沉默这种控制状态会额外多发挥一回合的效果, 笑

自己取舍吧
作者: 微妙夏伤_    时间: 2026-2-2 12:31
灯笼菜刀王 发表于 2026-2-2 10:27
原因是CP制和默认整体回合制的不可调合矛盾, 笑

默认回合制是以"所有人进行一次行动为一回合", 而CP制是" ...

还是不行大佬,我把原来的注释掉,在这两个地方加上之后,中毒3回合变2回合了,加攻3回合变1回合了,而且加攻也还是显示着动画和图标,在攻击的一瞬间就解除了,只加了1回合的伤害
作者: 灯笼菜刀王    时间: 2026-2-2 16:05
本帖最后由 灯笼菜刀王 于 2026-2-2 16:13 编辑

全局搜索  @active_battler.remove_states_auto  删掉
然后把这个脚本塞到 CP脚本下面

  1. class Scene_Battle
  2.   def update_phase4_step2
  3.     # 若非强制行动
  4.     unless @active_battler.current_action.forcing
  5.       # 限制为[无法行动]时
  6.       if @active_battler.restriction == 4
  7.         @active_battler.remove_states_auto
  8.         # 清除CT
  9.         clear_ct(@active_battler)
  10.         # 清除行动强制的战斗者
  11.         $game_temp.forcing_battler = nil
  12.         # 转移到步骤 1
  13.         @phase4_step = 1
  14.         return
  15.       end
  16.     end
  17.     # 动画播放中是否计数CT
  18.     @countup = PARA_CTB::ANIMATION_WAIT ? false : true
  19.     ctb_update_phase4_step2
  20.   end
  21.   def update_phase4_step5
  22.     # 记录伤害
  23.     for target in @target_battlers
  24.       if target.damage != nil
  25.         target.damage_backup = target.damage
  26.       end
  27.     end
  28.     @active_battler.remove_states_auto
  29.     update_phase4_step5_ctb
  30.   end
  31. end
复制代码


如果你有用显示状态回合的脚本, 那给自己附加状态时, 状态回合数显示时会-1, 因为行动结束后就开始扣, 但在回合计数为0时, 因为要等行动结束才解除, 所以这次行动也一样有buff效果, 一减一增实际生效回合没变化

作者: 微妙夏伤_    时间: 2026-2-2 22:28
本帖最后由 微妙夏伤_ 于 2026-2-2 22:36 编辑
灯笼菜刀王 发表于 2026-2-2 16:05
全局搜索  @active_battler.remove_states_auto  删掉
然后把这个脚本塞到 CP脚本下面


谢谢灯笼大佬,完全没问题了,至于眩晕混乱的这种状态,少设置1回合应该就没问题了吧,主要还是图标不实时消除,影响误判和游戏体验很难受,再次感谢灯笼大佬
补:我发现技能冷却也减少了1回合,也是问题不大,+1回合就好了




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1