幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 946|回复: 8

这句哪里错了?

[复制链接]

17

主题

294

帖子

3097

积分

⑥精研

积分
3097
发表于 2005-6-21 14:28:40 | 显示全部楼层 |阅读模式
这句那里错了?

        damage(@battler.damage, @battler.critical)

我原封不动,再开一个也和这个一样,在Sprite_Battler的第110行

全文

#==============================================================================
# ■ Sprite_Battler
#------------------------------------------------------------------------------
#  战斗显示用活动块。Game_Battler 类的实例监视、
# 活动块的状态的监视。
#==============================================================================

class Sprite_Battler < RPG::Sprite
  #--------------------------------------------------------------------------
  # ● 定义实例变量
  #--------------------------------------------------------------------------
  attr_accessor :battler                  # 战斗者
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     viewport : 显示端口
  #     battler  : 战斗者 (Game_Battler)
  #--------------------------------------------------------------------------
  def initialize(viewport, battler = nil)
    super(viewport)
    @battler = battler
    @battler_visible = false
  end
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  def dispose
    if self.bitmap != nil
      self.bitmap.dispose
    end
    super
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    super
    # 战斗者为 nil 的情况下
    if @battler == nil
      self.bitmap = nil
      loop_animation(nil)
      return
    end
    # 文件名和色相与当前情况有差异的情况下
    if @battler.battler_name != @battler_name or
       @battler.battler_hue != @battler_hue
      # 获取、设置位图
      @battler_name = @battler.battler_name
      @battler_hue = @battler.battler_hue
      self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
      @width = bitmap.width
      @height = bitmap.height
      self.ox = @width / 2
      self.oy = @height
      # 如果是战斗不能或者是隐藏状态就把透明度设置成 0
      if @battler.dead? or @battler.hidden
        self.opacity = 0
      end
    end
    # 动画 ID 与当前的情况有差异的情况下
    if @battler.damage == nil and
       @battler.state_animation_id != @state_animation_id
      @state_animation_id = @battler.state_animation_id
      loop_animation($data_animations[@state_animation_id])
    end
    # 应该被显示的角色的情况下
    if @battler.is_a?(Game_Actor) and @battler_visible
      # 不是主状态的时候稍稍降低点透明度
      if $game_temp.battle_main_phase
        self.opacity += 3 if self.opacity < 255
      else
        self.opacity -= 3 if self.opacity > 207
      end
    end
    # 明灭
    if @battler.blink
      blink_on
    else
      blink_off
    end
    # 不可见的情况下
    unless @battler_visible
      # 出现
      if not @battler.hidden and not @battler.dead? and
         (@battler.damage == nil or @battler.damage_pop)
        appear
        @battler_visible = true
      end
    end
    # 可见的情况下
    if @battler_visible
      # 逃跑
      if @battler.hidden
        $game_system.se_play($data_system.escape_se)
        escape
        @battler_visible = false
      end
      # 白色闪烁
      if @battler.white_flash
        whiten
        @battler.white_flash = false
      end
      # 动画
      if @battler.animation_id != 0
        animation = $data_animations[@battler.animation_id]
        animation(animation, @battler.animation_hit)
        @battler.animation_id = 0
      end
      # 伤害
      if @battler.damage_pop
        damage(@battler.damage, @battler.critical)
        @battler.damage = nil
        @battler.critical = false
        @battler.damage_pop = false
      end
      # korapusu
      if @battler.damage == nil and @battler.dead?
        if @battler.is_a?(Game_Enemy)
          $game_system.se_play($data_system.enemy_collapse_se)
        else
          $game_system.se_play($data_system.actor_collapse_se)
        end
        collapse
        @battler_visible = false
      end
    end
    # 设置活动块的坐标
    self.x = @battler.screen_x
    self.y = @battler.screen_y
    self.z = @battler.screen_z
  end
end
显示错误

脚本'Sprite_Battler'的第110行 发生了 NoMethodError。

undefined method `critical'  for #<Game_Enemy:0*158af80>

99我吧,有错误么?
加油灌水~!
回复

使用道具 举报

89

主题

2333

帖子

3273万

积分

⑧专业

Xavier on Rails

积分
32739794
QQ
发表于 2005-6-21 18:59:30 | 显示全部楼层
<DT>NoMethodError<DD>若调用了未定义的方法时,就会引发该异常。</DD>
回复 支持 反对

使用道具 举报

17

主题

294

帖子

3097

积分

⑥精研

积分
3097
 楼主| 发表于 2005-6-21 21:49:41 | 显示全部楼层
未定义的方法?
什么意思,就是一攻击敌人或者敌人攻击我就会产生这个错误
加油灌水~!
回复 支持 反对

使用道具 举报

20

主题

357

帖子

4300

积分

⑥精研

真·RMXP废柴

积分
4300
发表于 2005-6-22 00:13:21 | 显示全部楼层
楼主这个脚本是?

用来做什么的?能说下吗?


那句错误大概是因为名叫“damage”的方法没有在这个类里进行定义引起的...

新人推测,仅供楼主参考...

[此贴子已经被作者于2005-6-22 0:18:57编辑过]
《非·英雄传说Episode 1.5  —传说的后来—》 ↑ 制作中。别点,不是链接...
回复 支持 反对

使用道具 举报

89

主题

2333

帖子

3273万

积分

⑧专业

Xavier on Rails

积分
32739794
QQ
发表于 2005-6-22 12:42:41 | 显示全部楼层
在RGSS脚本系统中,在定义类的时候所定义的函数,会自动作为这个类的函数。
未定义的方法就是,你没有定义这个方法,却调用了他~
回复 支持 反对

使用道具 举报

17

主题

294

帖子

3097

积分

⑥精研

积分
3097
 楼主| 发表于 2005-6-22 14:31:35 | 显示全部楼层
可是我的电脑经常出现这个问题,现在用66的套装这个问题解决了,可是存档也出现NoMethodError
如何解决,他没有被定义?可是我都没有动它,再开一个新工程,可以,脚本和它一模一样
怎么会呢?他应该被定义过了吧,可是这个问题,我该如何解决?
加油灌水~!
回复 支持 反对

使用道具 举报

20

主题

357

帖子

4300

积分

⑥精研

真·RMXP废柴

积分
4300
发表于 2005-6-22 16:48:25 | 显示全部楼层
新人推测:

楼主机器里的RMXP中某些文件可能损坏了,导致涉及保存RPG::Sprite类的原始文件出现了错误或者无法读取,建议楼主重新下载RMXP的安装包,并检查自己机器上是否感染了病毒...

以上。

[此贴子已经被作者于2005-6-22 16:49:58编辑过]
《非·英雄传说Episode 1.5  —传说的后来—》 ↑ 制作中。别点,不是链接...
回复 支持 反对

使用道具 举报

13

主题

113

帖子

1672

积分

⑥精研

永远的不死鸟

积分
1672
发表于 2005-6-22 23:38:02 | 显示全部楼层
[em04]我也见到过了,等待解答。[em04]
回复 支持 反对

使用道具 举报

17

主题

294

帖子

3097

积分

⑥精研

积分
3097
 楼主| 发表于 2005-6-23 13:21:05 | 显示全部楼层
我似乎是明白了
这个问题很好解决,谢谢各位!
加油灌水~!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2025-6-21 06:12 , Processed in 0.013790 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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