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

Project1

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

[有事请教] 关于状态图标化的不实时消除

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2635
在线时间
303 小时
注册时间
2023-9-12
帖子
17
跳转到指定楼层
1
发表于 2026-2-1 18:12:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

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

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

213.61 KB, 下载次数: 3

Lv5.捕梦者

梦石
0
星屑
41773
在线时间
5970 小时
注册时间
2006-11-10
帖子
6962
2
发表于 2026-2-2 10:27:47 | 只看该作者
本帖最后由 灯笼菜刀王 于 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 (如果搜出来多个, 就给在最下面的那条加上就行)

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

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

自己取舍吧
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2635
在线时间
303 小时
注册时间
2023-9-12
帖子
17
3
 楼主| 发表于 2026-2-2 12:31:03 | 只看该作者
灯笼菜刀王 发表于 2026-2-2 10:27
原因是CP制和默认整体回合制的不可调合矛盾, 笑

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

还是不行大佬,我把原来的注释掉,在这两个地方加上之后,中毒3回合变2回合了,加攻3回合变1回合了,而且加攻也还是显示着动画和图标,在攻击的一瞬间就解除了,只加了1回合的伤害
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
41773
在线时间
5970 小时
注册时间
2006-11-10
帖子
6962
4
发表于 2026-2-2 16:05:14 | 只看该作者
本帖最后由 灯笼菜刀王 于 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效果, 一减一增实际生效回合没变化
回复 支持 1 反对 0

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2635
在线时间
303 小时
注册时间
2023-9-12
帖子
17
5
 楼主| 发表于 2026-2-2 22:28:59 | 只看该作者
本帖最后由 微妙夏伤_ 于 2026-2-2 22:36 编辑
灯笼菜刀王 发表于 2026-2-2 16:05
全局搜索  @active_battler.remove_states_auto  删掉
然后把这个脚本塞到 CP脚本下面


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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-4 22:11

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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