RUBY 代码 - #==============================================================================
- # $SDrop$
- # 固定增减伤效果 By猫易箱
- #------------------------------------------------------------------------------
- # 在 角色、职业、武器、护甲、敌人、状态 备注添加使用:
- #
- # 公式
- #
- # 例如:
- # 50 受到伤害时,固定增加50点伤害
- #
- # 公式
- #
- # 例如:
- # a.def * 1 按自身100%的防御力,减少受到伤害
- #==============================================================================
- $imported = {}if$imported.nil?
- $imported["SDrop_FixedDamage"] = true
- #==============================================================================
- # ■ RPG::BaseItem
- #------------------------------------------------------------------------------
- # 为所有基础物品类添加备注解析方法
- #==============================================================================
- classRPG::BaseItem
- #--------------------------------------------------------------------------
- # ● 获取固定减伤公式
- #--------------------------------------------------------------------------
- def fixed_damage_reduce
- @fixed_damage_reduce ||= load_fixed_damage_reduce
- end
- def load_fixed_damage_reduce
- self.note =~ /(.+?)/m ? $1.strip : nil
- end
- #--------------------------------------------------------------------------
- # ● 获取固定增伤公式
- #--------------------------------------------------------------------------
- def fixed_damage_increase
- @fixed_damage_increase ||= load_fixed_damage_increase
- end
- def load_fixed_damage_increase
- self.note =~ /(.+?)/m ? $1.strip : nil
- end
- end
- #==============================================================================
- # ■ Game_BattlerBase
- #------------------------------------------------------------------------------
- # 收集固定增减伤公式
- #==============================================================================
- class Game_BattlerBase
- #--------------------------------------------------------------------------
- # ● 获取所有固定减伤公式
- #--------------------------------------------------------------------------
- def fixed_reduce_formulas
- result = []
- feature_objects.eachdo |obj|
- if obj.respond_to?(:fixed_damage_reduce) && obj.fixed_damage_reduce
- result 0 && @result.hp_drain == 0
- reduce_total = calc_fixed_reduce(user, item)
- increase_total = calc_fixed_increase(user, item)
- net_mod = increase_total - reduce_total
- if net_mod != 0
- old_damage = @result.hp_damage
- new_damage = old_damage + net_mod
- new_damage = 1if new_damage < 1
- @result.hp_damage = new_damage
- end
- end
- end
- end
复制代码
在 角色、职业、武器、护甲、敌人、状态 备注添加使用:
公式 #固定增加,受到的伤害
公式 #固定减少,受到的伤害
示例:
100 #固定减少100点
rand(50) + 50 #固定增加,50-99之间的随机伤害
rand(100) < 50 ? 30 : 10 #50%几率减伤30,否则10
a.atk * 2 #固定增加,持有者 攻击力 × 2 的伤害
$game_actors[5].def #根据5号角色 防御力 10%,固定减少伤害
[v[1], v[5], v[8]].sample #在 变量1 变量5 变量8 之间随机
本帖来自P1论坛作者SmallDrop,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址: https://rpg.blue/forum.php?mod=viewthread&tid=498708 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。 |