ESS多版本 关于限伤特性

stop呜呜大王

精英训练家
成员
2024-01-16
44
1
2
451
24
有没有办法做到添加一个特性,效果是战斗时如果受到的伤害高于50,则伤害变成50:cry:
 
解决方案
终于写出来了呜呜呜

1.先加个特性
#-------------------------------
[IMPREGNABLE]
Name = 固若金汤
Description = 若受到的伤害高于60,则将将受到的伤害降至60。

2.然后在脚本编辑器找到# Main damage calculation(不是AI那个)
在差不多272行(final_damage_multiplier => 1.0后面)写:limit_damage_multiplier => 1.0,注意前面一行的末尾要加逗号。
代码:
limit_damage_multiplier => 1.0
8.png


3.在279行加个limitDmg= [(1.0 * multipliers[:limit_damage_multiplier]).round, 1].max
代码:
limitDmg= [(1.0 * multipliers[:limit_damage_multiplier]).round, 1].max
7.png



4.全局找def hasMoldBreaker?
在大约495行加下面的代码
代码:
def hasLimitDamageAbility?
    return hasActiveAbility?([:IMPREGNABLE])
  end
1.png
写这里的意思是把限伤特性写在一起,调用的时候可以一起调用。



5.(这里可加可不加)

全局找# Start effect of Mold Breaker
在大约228行加下面的代码
代码:
#限伤特性
    @battle.limitDamage =...

stop呜呜大王

精英训练家
成员
2024-01-16
44
1
2
451
24
终于写出来了呜呜呜

1.先加个特性
#-------------------------------
[IMPREGNABLE]
Name = 固若金汤
Description = 若受到的伤害高于60,则将将受到的伤害降至60。

2.然后在脚本编辑器找到# Main damage calculation(不是AI那个)
在差不多272行(final_damage_multiplier => 1.0后面)写:limit_damage_multiplier => 1.0,注意前面一行的末尾要加逗号。
代码:
limit_damage_multiplier => 1.0
8.png


3.在279行加个limitDmg= [(1.0 * multipliers[:limit_damage_multiplier]).round, 1].max
代码:
limitDmg= [(1.0 * multipliers[:limit_damage_multiplier]).round, 1].max
7.png



4.全局找def hasMoldBreaker?
在大约495行加下面的代码
代码:
def hasLimitDamageAbility?
    return hasActiveAbility?([:IMPREGNABLE])
  end
1.png
写这里的意思是把限伤特性写在一起,调用的时候可以一起调用。



5.(这里可加可不加)

全局找# Start effect of Mold Breaker
在大约228行加下面的代码
代码:
#限伤特性
    @battle.limitDamage = hasLimitDamageAbility?

然后全局找# The Struggle move
在大约92行加下面的代码
代码:
  attr_accessor :limitDamage
3.png
第5点这里是可以不写的,主要是用于以后如果要写无视限伤的特性的话,就能用这里来判断。



6.找到Battle_AbilityEffects这个脚本,在最下面写
代码:
#===============================================================================
#固若金汤
#===============================================================================
Battle::AbilityEffects::DamageCalcFromTarget.add(:IMPREGNABLE,
  proc { |ability, user, target, move, mults, power, type|
       mults[:limit_damage_multiplier] *= 60
  }
)
QQ图片114.png
 

附件

  • 6.png
    6.png
    180.5 KB · 查看: 6
最后编辑:
解决方案

stop呜呜大王

精英训练家
成员
2024-01-16
44
1
2
451
24
看到一个
:cry::cry::cry:
 

stop呜呜大王

精英训练家
成员
2024-01-16
44
1
2
451
24
详细看了一下,你的代码是有问题的,如果是你想要这样做就没问题了。
你现在是伤害大于3或者60就变成3或者60,是数值变,按数值算,不是百分比。
可是精灵不是轻轻松松就能打60血吗,我记得很清楚30级的暴鲤龙就100血左右了,满级按300血算的话,如果你是按数值算而不是百分比算的话,要至少打6下才能打死拥有这特性的精灵。
那个3我忘记改了,改成60就行了,而且我也不一定要设置限伤60。而且我的想法就是限制伤害在60或以下,你的想法应该是设置成限制伤害在血量的百分比内吧
 

在线成员

现在没有会员在线。

论坛统计

主题
342
消息
1,571
会员
2,325
最新会员
风见幽香

关于我们

  • 宝可梦以及其他相关名称是任天堂的商标,版权归宝可梦公司所有。宝可饭堂是一个同人游戏中文社区,不隶属于宝可梦公司。在宝可饭堂上的粉丝游戏亦未获得其授权,请支持正版游戏。
© 2022- pokefans.cn
点此延长宝可饭堂生命