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

Project1

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

[已经过期] 问下,物品脚本出错了。

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
74 小时
注册时间
2011-2-16
帖子
23
跳转到指定楼层
1
发表于 2011-3-18 21:28:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 dssl001 于 2011-3-19 18:30 编辑

这是脚本在第十四行的位置。



#==============================================================================
# ■ Scene_Item
#------------------------------------------------------------------------------
#  处理物品画面的类。
#==============================================================================

class Scene_Item
  #--------------------------------------------------------------------------
  # ● 主处理
  #--------------------------------------------------------------------------
  def main
    # 生成帮助窗口、物品窗口
    @help_window = Window_Help.new
    @item_window = Window_Item.new
    # 关联帮助窗口
    @item_window.help_window = @help_window
    # 生成目标窗口 (设置为不可见・不活动)
    @target_window = Window_Target.new
    @target_window.visible = false
    @target_window.active = false
    # 执行过度
    Graphics.transition
    # 主循环
    loop do
      # 刷新游戏画面
      Graphics.update
      # 刷新输入信息
      Input.update
      # 刷新画面
      update
      # 如果画面切换就中断循环
      if $scene != self
        break
      end
    end
    # 装备过渡
    Graphics.freeze
    # 释放窗口
    @help_window.dispose
    @item_window.dispose
    @target_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    # 刷新窗口
    @help_window.update
    @item_window.update
    @target_window.update
    # 物品窗口被激活的情况下: 调用 update_item
    if @item_window.active
      update_item
      return
    end
    # 目标窗口被激活的情况下: 调用 update_target
    if @target_window.active
      update_target
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面 (物品窗口被激活的情况下)
  #--------------------------------------------------------------------------
  def update_item
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 切换到菜单画面
      $scene = Scene_Menu.new(0)
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 获取物品窗口当前选中的物品数据
      @item = @item_window.item
      # 不使用物品的情况下
      unless @item.is_a?(RPG::Item)
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 不能使用的情况下
      unless $game_party.item_can_use?(@item.id)
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 演奏确定 SE
      $game_system.se_play($data_system.decision_se)
      # 效果范围是我方的情况下
      if @item.scope >= 3
        # 激活目标窗口
        @item_window.active = false
        @target_window.x = (@item_window.index + 1) % 2 * 304
        @target_window.visible = true
        @target_window.active = true
        # 设置效果范围 (单体/全体) 的对应光标位置
        if @item.scope == 4 || @item.scope == 6
          @target_window.index = -1
        else
          @target_window.index = 0
        end
      # 效果在我方以外的情况下
      else
        # 公共事件 ID 有效的情况下
        if @item.common_event_id > 0
          # 预约调用公共事件
          $game_temp.common_event_id = @item.common_event_id
          # 演奏物品使用时的 SE
          $game_system.se_play(@item.menu_se)
          # 消耗品的情况下
          if @item.consumable
            # 使用的物品数减 1
            $game_party.lose_item(@item.id, 1)
            # 再描绘物品窗口的项目
            @item_window.draw_item(@item_window.index)
          end
          # 切换到地图画面
          $scene = Scene_Map.new
          return
        end
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面 (目标窗口被激活的情况下)
  #--------------------------------------------------------------------------
  def update_target
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 由于物品用完而不能使用的场合
      unless $game_party.item_can_use?(@item.id)
        # 再次生成物品窗口的内容
        @item_window.refresh
      end
      # 删除目标窗口
      @item_window.active = true
      @target_window.visible = false
      @target_window.active = false
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 如果物品用完的情况下
      if $game_party.item_number(@item.id) == 0
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 目标是全体的情况下
      if @target_window.index == -1
        # 对同伴全体应用物品使用效果
        used = false
        for i in $game_party.actors
          used |= i.item_effect(@item)
        end
      end
      # 目标是单体的情况下
      if @target_window.index >= 0
        # 对目标角色应用物品的使用效果
        target = $game_party.actors[@target_window.index]
        used = target.item_effect(@item)
      end
      # 使用物品的情况下
      if used
        # 演奏物品使用时的 SE
        $game_system.se_play(@item.menu_se)
        # 消耗品的情况下
        if @item.consumable
          # 使用的物品数减 1
          $game_party.lose_item(@item.id, 1)
          # 再描绘物品窗口的项目
          @item_window.draw_item(@item_window.index)
        end
        # 再生成目标窗口的内容
        @target_window.refresh
        # 全灭的情况下
        if $game_party.all_dead?
          # 切换到游戏结束画面
          $scene = Scene_Gameover.new
          return
        end
        # 公共事件 ID 有效的情况下
        if @item.common_event_id > 0
          # 预约调用公共事件
          $game_temp.common_event_id = @item.common_event_id
          # 切换到地图画面
          $scene = Scene_Map.new
          return
        end
      end
      # 无法使用物品的情况下
      unless used
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
      end
      return
    end
  end
end

点评

@item_window = Window_Item.new就是这个的了  发表于 2011-3-18 22:34
可以用代码发出来么,或者说明14行是?  发表于 2011-3-18 21:55

Lv2.观梦者

虚構歪曲

梦石
0
星屑
364
在线时间
1198 小时
注册时间
2010-12-18
帖子
3928

贵宾

2
发表于 2011-3-19 12:23:34 | 只看该作者
求错误弹出的窗口截图。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
74 小时
注册时间
2011-2-16
帖子
23
3
 楼主| 发表于 2011-3-19 18:33:30 | 只看该作者
1111111111

未命名.jpg (11.69 KB, 下载次数: 3)

123

123
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
615
在线时间
1287 小时
注册时间
2010-10-16
帖子
231

开拓者短篇九勇士组冠军短篇八RM组季军末日的逐梦者

4
发表于 2011-3-19 19:41:12 | 只看该作者
那..那个..这个脚本不就是默认的Scene_Item脚本吗><
脚本报错好像写的是Window_Item没有初始化,LZ是不是有什么其他脚本动了Window_Item脚本,或者不小心把Winow_Item删掉了?
Glimmer中短篇RPG系列~欢迎猛PIA下面的图片围观~

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
74 小时
注册时间
2011-2-16
帖子
23
5
 楼主| 发表于 2011-3-19 19:44:26 | 只看该作者
没有啊,我什么也没有动的,只有……弄了个随机属性装备……虽然不用的了,但还是留着了,看看以后用不用的上
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
615
在线时间
1287 小时
注册时间
2010-10-16
帖子
231

开拓者短篇九勇士组冠军短篇八RM组季军末日的逐梦者

6
发表于 2011-3-19 19:58:18 | 只看该作者
暂时不用了就先咔嚓掉再看看还会不会报错吧?
感觉如果是外挂脚本的话应该不至于和默认脚本起冲突吧..是不是整这个随机装备的时候误操作了一些什么东西><

评分

参与人数 1星屑 +2 收起 理由
dssl001 + 2

查看全部评分

Glimmer中短篇RPG系列~欢迎猛PIA下面的图片围观~

回复 支持 反对

使用道具 举报

Lv2.观梦者

虚構歪曲

梦石
0
星屑
364
在线时间
1198 小时
注册时间
2010-12-18
帖子
3928

贵宾

7
发表于 2011-3-19 20:01:37 | 只看该作者
随机装备……
我认为汝的脚本技术尚不允许你使用这个脚本……
当然,这是忠告,如果汝认为一定要用我也不拦你……
这个脚本出错很正常。

评分

参与人数 1星屑 +2 收起 理由
dssl001 + 2

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
74 小时
注册时间
2011-2-16
帖子
23
8
 楼主| 发表于 2011-3-19 20:45:32 | 只看该作者

..

本帖最后由 dssl001 于 2011-3-20 13:45 编辑

没有用啊!!!!到底怎么办呢?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-25 10:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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