Project1

标题: 如何在暴击发生之后让受攻击者无法进行反击? [打印本页]

作者: jianyulei    时间: 2015-10-1 10:19
标题: 如何在暴击发生之后让受攻击者无法进行反击?
暴击的判断@result.critical放到反击里面会报critical错误,请问如何实现暴击后敌人无法反击的效果?
作者: Silentever    时间: 2015-10-1 21:17
只能修改系统结构,因为默认系统会先判断反击,
成功的时候不会再继续原本的行动,当然也不可能有@result.critical的计算
作者: jianyulei    时间: 2015-10-2 09:17
Silentever 发表于 2015-10-1 21:17
只能修改系统结构,因为默认系统会先判断反击,
成功的时候不会再继续原本的行动,当然也不可能有@result.c ...

修改系统结构这没办法了,不过我想了其他办法,在判定反击几率的地方添加暴击判定,如果有暴击是吧反击设为0,修改后虽然@result.critical是没报错了,但是却怎么也无法顺利成功,判断@result.critical开启的话就一直反击,没开启却一次都不反击了,跟是否暴击一点关系都没有。
难道@result.critical不是记录是否发生暴击的变量吗?
作者: Silentever    时间: 2015-10-4 19:24
  1.   #--------------------------------------------------------------------------
  2.   # ● 计算技能/物品的反击几率
  3.   #--------------------------------------------------------------------------
  4.   def item_cnt(user, item)
  5.     @result.clear
  6.     @result.critical = (rand < item_cri(user, item))
  7.     return 0 if @result.critical
  8.     return 0 unless item.physical?          # 攻击类型不是物理攻击
  9.     return 0 unless opposite?(user)         # 队友无法反击
  10.     return cnt                              # 返回反击几率
  11.   end
复制代码
然后从item_apply中删除“@result.clear”跟“@result.critical = (rand < item_cri(user, item))”
虽然没测试,但应该没问题才对……




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