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

Project1

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

[有事请教] 战斗升级,改进版【已解决】

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1957
在线时间
111 小时
注册时间
2017-9-5
帖子
194
跳转到指定楼层
1
发表于 7 天前 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 间桐樱 于 2025-6-17 09:40 编辑

原贴https://rpg.blue/thread-496243-1-1.html
以前求助过大佬,在取消等级后,每击败一名敌人自身全属性+1,但考虑到打败boss和打败杂兵都是全属性+1,付出和收获太不匹配,于是改进了,变成打败敌人后,自身全属性增加敌人全属性1%
然后问题又来了,死亡判定失败(.dead?,self.dead?,target.dead?),不是不生效就是报错,不加又不行,会变成每攻击一次敌人,自身全属性增加敌人属性的1%,太bug了,求帮助呀
  #--------------------------------------------------------------------------
  # ● 计算伤害
  #--------------------------------------------------------------------------
  def make_damage_value(user, item)
    value = item.damage.eval(user, self, $game_variables)
    value *= item_element_rate(user, item)
    value *= pdr if item.physical?
    value *= mdr if item.magical?
    value *= rec if item.damage.recover?
    value = apply_critical(value) if @result.critical
    value = apply_variance(value, item.damage.variance)
    value = apply_guard(value)
    @result.make_damage(value.to_i, item)
    if user.actor? && user.id == 1
      user.add_param(0, self.mhp * 0.01)
      user.add_param(1, self.mmp * 0.01)
      user.add_param(2, self.atk * 0.01)
      user.add_param(3, self.def * 0.01)
      user.add_param(4, self.mat * 0.01)
      user.add_param(5, self.mdf * 0.01)
      user.add_param(6, self.agi * 0.01)
      user.add_param(7, self.luk * 0.01)
    end
  end

Lv3.寻梦者

梦石
0
星屑
1957
在线时间
111 小时
注册时间
2017-9-5
帖子
194
3
 楼主| 发表于 6 天前 | 只看该作者
百里_飞柳 发表于 2025-6-16 22:12
因为这个方法里只是计算了技能所造成的伤害值,并把数字写入了@result里,但还并没有真正应用伤害,所以敌 ...

已解决,非常感谢
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

梦石
40
星屑
35328
在线时间
6775 小时
注册时间
2012-5-26
帖子
3258

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

2
发表于 7 天前 | 只看该作者
因为这个方法里只是计算了技能所造成的伤害值,并把数字写入了@result里,但还并没有真正应用伤害,所以敌人也就不存在什么死亡
你需要在这个方法里修改

  1. class Game_Battler < Game_BattlerBase
  2.   #--------------------------------------------------------------------------
  3.   # ● 处理伤害
  4.   #    调用前需要设置好
  5.   #    @result.hp_damage   @result.mp_damage
  6.   #    @result.hp_drain    @result.mp_drain
  7.   #--------------------------------------------------------------------------
  8.   def execute_damage(user)
  9.     on_damage(@result.hp_damage) if @result.hp_damage > 0
  10.     self.hp -= @result.hp_damage
  11.     self.mp -= @result.mp_damage
  12.     user.hp += @result.hp_drain
  13.     user.mp += @result.mp_drain
  14.     # 这里之后才完成了伤害结算
  15.     if user.actor? && user.id == 1 && enemy? && dead?
  16.        # 这里增加你想要的 1 号角色使用技能击杀当前敌人(self)后的处理
  17.     end
  18.   end
  19. end
复制代码
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-6-23 23:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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