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

Project1

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

[已经解决] 怎么在Game_Battler 3在攻击者的回合显示攻击者受到的伤害。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
70
在线时间
187 小时
注册时间
2006-9-3
帖子
175
跳转到指定楼层
1
发表于 2012-4-1 00:23:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,在攻击者的回合
     显示攻击者受到的伤害
(我有个反弹伤害设定)
这个也研究好久,貌似解决不了,有大大帮忙没?
...........

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
2
发表于 2012-4-1 06:48:36 | 只看该作者
本帖最后由 幻耶 于 2012-4-1 06:57 编辑

按照标记改以下地方,前一半在Game_Battler3,后一半在Scene_Battle4。
假设19号是反射状态。要反弹特技的话,在Game_Battler3 的应用特技效果里添加前一半在相应位置,只是把attacker改成user即可

Game_Battler3下
#######################################(这部分添加在class这行下面)
  attr_accessor :reflect
  #######################################

  #--------------------------------------------------------------------------
  # ● 应用通常攻击效果
  #     attacker : 攻击者 (battler)
  #--------------------------------------------------------------------------
  def attack_effect(attacker)
   
    #########################################
    self.reflect = false
    #########################################
   
    # 清除会心一击标志
    self.critical = false
    # 第一命中判定
    hit_result = (rand(100) < attacker.hit)
    # 命中的情况下
    if hit_result == true
      # 计算基本伤害
      atk = [attacker.atk - self.pdef / 2, 0].max
      self.damage = atk * (20 + attacker.str) / 20
      # 属性修正
      self.damage *= elements_correct(attacker.element_set)
      self.damage /= 100
      # 伤害符号正确的情况下
      if self.damage > 0
        # 会心一击修正
        if rand(100) < 4 * attacker.dex / self.agi
          self.damage *= 2
          self.critical = true
        end
        # 防御修正
        if self.guarding?
          self.damage /= 2
        end
      end
      # 分散
      if self.damage.abs > 0
        amp = [self.damage.abs * 15 / 100, 1].max
        self.damage += rand(amp+1) + rand(amp+1) - amp
      end
      # 第二命中判定
      eva = 8 * self.agi / attacker.dex + self.eva
      hit = self.damage < 0 ? 100 : 100 - eva
      hit = self.cant_evade? ? 100 : hit
      hit_result = (rand(100) < hit)
    end
    # 命中的情况下
    if hit_result == true
      # 状态冲击解除
      remove_states_shock
      
             ###################################
          if self.states.include?(19)
            self.reflect = true
            attacker.damage = self.damage
            attacker.hp -= attacker.damage
            self.damage = 0
            return true
           else
             # HP 的伤害计算
             self.hp -= self.damage
          end
          ###################################






Scene_Battle4 下
  #--------------------------------------------------------------------------
  # ● 刷新画面 (主回合步骤 4 : 对像方动画)
  #--------------------------------------------------------------------------
  def update_phase4_step4
    # 对像方动画
    for target in @target_battlers
      
      ############################################
      if target.reflect != true
      target.animation_id = @animation2_id
      target.animation_hit = (target.damage != "Miss")
      else
      @active_battler.animation_id = @animation2_id
      @active_battler.animation_hit = true
      end
      ############################################

    end
    # 限制动画长度、最低 8 帧
    @wait_count = 8
    # 移至步骤 5
    @phase4_step = 5
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面 (主回合步骤 5 : 显示伤害)
  #--------------------------------------------------------------------------
  def update_phase4_step5
   
    #####################################
    @active_battler.damage_pop = true if @active_battler.damage != nil
    #####################################

   
    # 隐藏帮助窗口
    @help_window.visible = false
    # 刷新状态窗口
    @status_window.refresh
    # 显示伤害
    for target in @target_battlers
      if target.damage != nil
        target.damage_pop = true
      end
    end
    # 移至步骤 6
    @phase4_step = 6
  end

点评

有个很小的问题,我用的是行走图横版战斗,当敌人被弹死的时候,它就不会过来打我。(应该是先死了,所以没有动画了吧。)我想让它打我的时死  发表于 2012-4-1 11:56
很详细的教程、  发表于 2012-4-1 08:59
囡囚囨囚囨図囨囧
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-30 15:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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