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

Project1

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

[有事请教] 请问如何制作根据自机角色物防魔防获取对应减伤?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
82
在线时间
78 小时
注册时间
2024-1-8
帖子
22
跳转到指定楼层
1
发表于 昨天 20:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
30星屑
RUBY 代码复制
  1. class Game_Battler < Game_BattlerBase
  2.   def execute_damage(user)
  3.     on_damage(@result.hp_damage) if @result.hp_damage > 0
  4.  
  5.  
  6.  
  7.  
  8.  
  9.     if self.state?(41) && rand > 0.75
  10.       @result.hp_damage = 0
  11.       self.add_state(12)   #12是一个空状态
  12.     end
  13.     #41状态有25%概率无敌,这个是八云紫的境界抵抗
  14.  
  15.  
  16.  
  17.     #新状态加这里
  18.  
  19.  
  20.     @result.hp_damage *= 0.5 if self.state?(96)
  21.     #↑这个是灵梦的减伤50%
  22.  
  23.     @result.hp_damage -= 25000 if self.state?(220)
  24.     #↑这个是敌人的澄澈
  25.  
  26.     @result.hp_damage -= 300 if self.state?(221)
  27.     #↑这个是我方的澄澈
  28.  
  29.     @result.hp_damage *= 0.25 if self.state?(48) && rand > 0.75   #48状态(多萝茜)有25%概率受到25%伤害
  30.  
  31.  
  32.     #伤害公式连击(没有112状态【自机固有】收到增伤连击)   
  33.     @result.hp_damage *= (1+$game_temp.combo_hit[0]*0.003) if self.state?(112) ==false
  34.     @result.hp_damage=@result.hp_damage.to_i#清除小数
  35.  
  36.  
  37.     @result.hp_damage *= 0.5 if self.state?(175)
  38.     #↑这个是简单难度的减伤
  39.  
  40.     @result.hp_damage *= 1.5 if self.state?(267)
  41.     #↑这个是暗之主的易伤
  42.  
  43.  
  44.     self.hp -= @result.hp_damage
  45.     self.mp -= @result.mp_damage
  46.     user.hp += @result.hp_drain
  47.     user.mp += @result.mp_drain
  48.   end
  49.  
  50.  
  51.  
  52.   #时停计算
  53.  
  54.   alias item_apply_sakuya item_apply
  55.   def item_apply(user, item)
  56.     item_apply_sakuya(user, item)
  57.     if (user.state?(100) && $game_switches[100] && ($game_variables[100] == 1))
  58.       $game_temp.reserve_common_event(980)  
  59.     else
  60.       $game_variables[100] += 1
  61.     end
  62.   end
  63. end


如上部分代码(这是我自己各种调的,主要就是根据@result.hp_damage的变化获取最终减伤。)


现在我想达成的是(所有我方角色我都固定了状态112,也就是有112状态的是玩家,其余是ai)
持有状态112的角色,每有100点物理防御力,收到的物理伤害(不含魔法类和必中攻击的)-5%
持有状态112的角色,每有100点魔法防御力,收到的魔法伤害(不含物理类和必中攻击的)-5%

因为@result.hp_damage是最终减伤,我一时搜不到对应的名字,
所以来请教一下大佬们,上边的代码我应该怎么加才能实现效果呢?

Lv6.析梦学徒

老鹰

梦石
40
星屑
35446
在线时间
6781 小时
注册时间
2012-5-26
帖子
3268

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

2
发表于 3 小时前 | 只看该作者
一定要在这个方法里修改吗?建议在调用它的那个计算伤害公式的方法里改,那个方法里有技能对象,可以效仿它其中根据技能造成物理伤害就获取角色的受到物理伤害倍率,造成魔法伤害就获取角色的受到魔法伤害倍率,来增加你想要的效果。
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-6-30 15:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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