查看: 3825|回复: 9

[已经过期] 装备为空 时候装备脚本出错!!

[复制链接]
梦石
0
星屑
50
在线时间
114 小时
注册时间
2012-4-25
回帖
85
发表于 2013-2-10 17:25:32 | 显示全部楼层 |阅读模式

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

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

×
[pre lang="ruby" line="1"]#==============================================================================
# ■ Window_Item
#------------------------------------------------------------------------------
#  物品画面、战斗画面、显示浏览物品的窗口。
#==============================================================================

class Window_Item < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #--------------------------------------------------------------------------
  def initialize
    super(121, 60, 335, 275)
    @column_max = 1
    refresh
    self.index = 0
    self.z = 999
    self.back_opacity = 0
    self.opacity = 0
    # 战斗中的情况下将窗口移至中央并将其半透明化
    if $game_temp.in_battle
      self.y = 60
      self.x = 122
      self.z = 999
      self.height = 256
      self.back_opacity = 160
    @orz = Sprite.new
    @orz.bitmap = Bitmap.new("Graphics/Pictures/道具.png")#背景的生成
    @orz.x= 125
    @orz.y= 42
    @orz.z= 555
    end
  end
  #--------------------------------------------------------------------------
  # ● 获取物品
  #--------------------------------------------------------------------------
  def item
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    # 添加报务
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        @data.push($data_items)
      end
    end
    # 在战斗中以外添加武器、防具
    unless $game_temp.in_battle
      for i in 1...$data_weapons.size
        if $game_party.weapon_number(i) > 0
          @data.push($data_weapons)
        end
      end
      for i in 1...$data_armors.size
        if $game_party.armor_number(i) > 0
          @data.push($data_armors)
        end
      end
    end
    # 如果项目数不是 0 就生成位图、重新描绘全部项目
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 50)
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 描绘项目
  #     index : 项目编号
  #--------------------------------------------------------------------------
  def draw_item(index)
    item = @data[index]
    case item
    when RPG::Item
      number = $game_party.item_number(item.id)
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    if item.is_a?(RPG::Item) and
       $game_party.item_can_use?(item.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    x = index % 5 * 44
    y = index / 5 * 40
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    bitmap = RPG::Cache.icon(item.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y, bitmap, Rect.new(-4, -2, 50, 100), opacity)
    self.contents.draw_text(x , y , 0, 0, item.name, 0)
    self.contents.draw_text(x + 15, y, 0, 0, "", 1)
    self.contents.draw_text(x + 25, y + 25, 24, 24, number.to_s, 2)
  end
   #--------------------------------------------------------------------------
  # ● 刷新光标矩形
  #--------------------------------------------------------------------------
   def page_row_max
    # 窗口的高度,设置画面的高度减去 32 ,除以 1 行的高度 32
    return self.height/ 52
    end
  def update_cursor_rect
    if  @index < 0   
      self.cursor_rect.empty
      self.opacity = 0
    else
      @selected
      self.cursor_rect.set(index % 5 * 44,index / 5 * 44- self.oy , 43, 42)
    end
  end
    #--------------------------------------------------------------------------
  # ● 更新光标举行
  #--------------------------------------------------------------------------
  #def update_cursor_rect
    # 光标位置不满 0 的情况下
    #if @index < 0
     # self.cursor_rect.empty
    #  return
   # end
    # 获取当前的行
   # row = @index / @column_max
    # 当前行被显示开头行前面的情况下
    #if row < self.top_row + 3
      # 从当前行向开头行滚动
      #self.top_row = row
      #self.oy = row * 50
    #end
    # 当前行被显示末尾行之后的情况下
    #if row > self.top_row + (self.page_row_max - 3)
      # 从当前行向末尾滚动
      #self.top_row = row - (self.page_row_max )
      #self.oy = (row_max - 4 ) * 50
    #end
    # 计算光标的宽
    #cursor_width = 50
    # 计算光标坐标
    #x = index % 6 * 50
    #y = index / 6 * 50 - self.oy
    # 更新国标矩形
    #self.cursor_rect.set(x, y, cursor_width, 50)
  #end
  #--------------------------------------------------------------------------
  # ● 刷新帮助文本
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(self.item == nil ? "" : self.item.description)
  end
end[/pre]

高手帮我看下为什么我没有装备的时候这个脚本出错呢,当装备了全部装备就可以用了,但是卸下装备必须是替换否则也会出错,求助!! QQ截图20130210172421.png
梦石
0
星屑
50
在线时间
114 小时
注册时间
2012-4-25
回帖
85
 楼主| 发表于 2013-2-10 17:29:47 | 显示全部楼层
  1. #==============================================================================
  2. # ■ Window_EquipRight
  3. #------------------------------------------------------------------------------
  4. #  装备画面、显示角色现在装备的物品的窗口。
  5. #==============================================================================

  6. class Window_EquipRight < Window_Selectable
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     actor : 角色
  10.   #--------------------------------------------------------------------------
  11.   def initialize(actor)
  12.     super(250, 64, 368, 192)
  13.     self.contents = Bitmap.new(width - 32, height - 32)
  14.     [url=home.php?mod=space&uid=95897]@actor[/url] = actor
  15.     refresh
  16.     self.index = 0
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   # ● 获取物品
  20.   #--------------------------------------------------------------------------
  21.   def item
  22.     return @data[self.index]
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 刷新
  26.   #--------------------------------------------------------------------------
  27.   def refresh
  28.     self.contents.clear
  29.     @data = []
  30.     @data.push($data_weapons[@actor.weapon_id])
  31.     @data.push($data_armors[@actor.armor1_id])
  32.     @data.push($data_armors[@actor.armor2_id])
  33.     @data.push($data_armors[@actor.armor3_id])
  34.     @data.push($data_armors[@actor.armor4_id])
  35.     @item_max = @data.size
  36.     self.contents.font.color = system_color
  37.     self.contents.draw_text(4, 32 * 0, 92, 32, $data_system.words.weapon)
  38.     self.contents.draw_text(4, 32 * 1, 92, 32, $data_system.words.armor1)
  39.     self.contents.draw_text(4, 32 * 2, 92, 32, $data_system.words.armor2)
  40.     self.contents.draw_text(4, 32 * 3, 92, 32, $data_system.words.armor3)
  41.     self.contents.draw_text(5, 32 * 4, 92, 32, $data_system.words.armor4)
  42.     draw_item_name(@data[0], 50, 32 * 0)
  43.     draw_item_name(@data[1], 92, 32 * 1)
  44.     draw_item_name(@data[2], 92, 32 * 2)
  45.     draw_item_name(@data[3], 92, 32 * 3)
  46.     draw_item_name(@data[4], 92, 32 * 4)
  47.     # 添加空白
  48.     @data.push(nil)
  49.     # 生成位图、描绘全部项目
  50.     @item_max = @data.size
  51.     self.contents = Bitmap.new(width - 32, row_max * 132)
  52.     for i in 0...@item_max-1
  53.       draw_item(i)
  54.     end
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● 描绘项目
  58.   #     index : 项目编号
  59.   #--------------------------------------------------------------------------
  60.   def draw_item(index)
  61.     item = @data[index]
  62.     case item
  63.     when RPG::Item
  64.       number = $game_party.item_number(item.id)
  65.     when RPG::Weapon
  66.       number = $game_party.weapon_number(item.id)
  67.     when RPG::Armor
  68.       number = $game_party.armor_number(item.id)
  69.     end
  70.     if item.is_a?(RPG::Item) and
  71.        $game_party.item_can_use?(item.id)
  72.       self.contents.font.color = normal_color
  73.     else
  74.       self.contents.font.color = disabled_color
  75.     end
  76.     x = index % 4 * 50
  77.     y = index / 4 * 50
  78.     rect = Rect.new(x, y, self.width / @column_max - 32, 32)
  79.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  80.     bitmap = RPG::Cache.icon(item.icon_name)
  81.     opacity = self.contents.font.color == normal_color ? 255 : 255
  82.     self.contents.blt(x, y, bitmap, Rect.new(-2, -2, 50, 100), opacity)
  83.     self.contents.draw_text(x , y , 0, 0, item.name, 0)
  84.     self.contents.draw_text(x + 15, y, 0, 0, "", 1)
  85.     self.contents.draw_text(x + 25, y + 25, 24, 24, number.to_s, 2)
  86.   end
  87.    #--------------------------------------------------------------------------
  88.   # ● 刷新光标矩形
  89.   #--------------------------------------------------------------------------
  90.    def page_row_max
  91.     # 窗口的高度,设置画面的高度减去 32 ,除以 1 行的高度 32
  92.     return self.height/ 52
  93.     end
  94.   def update_cursor_rect
  95.     if  @index < 0   
  96.       self.cursor_rect.empty
  97.       self.opacity = 0
  98.     else
  99.       @selected
  100.       self.cursor_rect.set(index % 4 * 50,index / 4 * 49- self.oy , 42, 41)
  101.     end
  102.   end
  103.   #--------------------------------------------------------------------------
  104.   # ● 刷新帮助文本
  105.   #--------------------------------------------------------------------------
  106.   def update_help
  107.     @help_window.set_text(self.item == nil ? "" : self.item.description)
  108.   end
  109. end
复制代码
是这个不好意思呵呵
回复

使用道具 举报

梦石
0
星屑
34467
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2013-2-10 17:32:30 | 显示全部楼层
LZ 应该把 window_equipright 的脚本发上来,而不是上面的,window_item
xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
50
在线时间
114 小时
注册时间
2012-4-25
回帖
85
 楼主| 发表于 2013-2-10 17:34:26 | 显示全部楼层
芯☆淡茹水 发表于 2013-2-10 17:32
LZ 应该把 window_equipright 的脚本发上来,而不是上面的,window_item

下面那个脚本就是啊 我重新发了一个
回复

使用道具 举报

梦石
0
星屑
34467
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2013-2-10 17:40:46 | 显示全部楼层
675482971@qq.co 发表于 2013-2-10 17:34
下面那个脚本就是啊 我重新发了一个


    脚本已改好,试试
  1. #==============================================================================
  2. # ■ Window_EquipRight
  3. #------------------------------------------------------------------------------
  4. #  装备画面、显示角色现在装备的物品的窗口。
  5. #==============================================================================

  6. class Window_EquipRight < Window_Selectable
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     actor : 角色
  10.   #--------------------------------------------------------------------------
  11.   def initialize(actor)
  12.     super(250, 64, 368, 192)
  13.     self.contents = Bitmap.new(width - 32, height - 32)
  14.     [url=home.php?mod=space&uid=95897]@actor[/url] = actor
  15.     refresh
  16.     self.index = 0
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   # ● 获取物品
  20.   #--------------------------------------------------------------------------
  21.   def item
  22.     return @data[self.index]
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 刷新
  26.   #--------------------------------------------------------------------------
  27.   def refresh
  28.     self.contents.clear
  29.     @data = []
  30.     @data.push($data_weapons[@actor.weapon_id])
  31.     @data.push($data_armors[@actor.armor1_id])
  32.     @data.push($data_armors[@actor.armor2_id])
  33.     @data.push($data_armors[@actor.armor3_id])
  34.     @data.push($data_armors[@actor.armor4_id])
  35.     @item_max = @data.size
  36.     self.contents.font.color = system_color
  37.     self.contents.draw_text(4, 32 * 0, 92, 32, $data_system.words.weapon)
  38.     self.contents.draw_text(4, 32 * 1, 92, 32, $data_system.words.armor1)
  39.     self.contents.draw_text(4, 32 * 2, 92, 32, $data_system.words.armor2)
  40.     self.contents.draw_text(4, 32 * 3, 92, 32, $data_system.words.armor3)
  41.     self.contents.draw_text(5, 32 * 4, 92, 32, $data_system.words.armor4)
  42.     draw_item_name(@data[0], 50, 32 * 0)
  43.     draw_item_name(@data[1], 92, 32 * 1)
  44.     draw_item_name(@data[2], 92, 32 * 2)
  45.     draw_item_name(@data[3], 92, 32 * 3)
  46.     draw_item_name(@data[4], 92, 32 * 4)
  47.     # 添加空白
  48.     @data.push(nil)
  49.     # 生成位图、描绘全部项目
  50.     @item_max = @data.size
  51.     self.contents = Bitmap.new(width - 32, row_max * 132)
  52.     for i in 0...@item_max-1
  53.       draw_item(i)
  54.     end
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● 描绘项目
  58.   #     index : 项目编号
  59.   #--------------------------------------------------------------------------
  60.   def draw_item(index)
  61.     item = @data[index]
  62.     case item
  63.     when RPG::Item
  64.       number = $game_party.item_number(item.id)
  65.     when RPG::Weapon
  66.       number = $game_party.weapon_number(item.id)
  67.     when RPG::Armor
  68.       number = $game_party.armor_number(item.id)
  69.     end
  70.     if item.is_a?(RPG::Item) and
  71.        $game_party.item_can_use?(item.id)
  72.       self.contents.font.color = normal_color
  73.     else
  74.       self.contents.font.color = disabled_color
  75.     end
  76.     x = index % 4 * 50
  77.     y = index / 4 * 50
  78.     if item != nil
  79.       rect = Rect.new(x, y, self.width / @column_max - 32, 32)
  80.       self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  81.       bitmap = RPG::Cache.icon(item.icon_name)
  82.       opacity = self.contents.font.color == normal_color ? 255 : 255
  83.       self.contents.blt(x, y, bitmap, Rect.new(-2, -2, 50, 100), opacity)
  84.       self.contents.draw_text(x , y , 0, 0, item.name, 0)
  85.       self.contents.draw_text(x + 15, y, 0, 0, "", 1)
  86.       self.contents.draw_text(x + 25, y + 25, 24, 24, number.to_s, 2)
  87.     end
  88.   end
  89.    #--------------------------------------------------------------------------
  90.   # ● 刷新光标矩形
  91.   #--------------------------------------------------------------------------
  92.    def page_row_max
  93.     # 窗口的高度,设置画面的高度减去 32 ,除以 1 行的高度 32
  94.     return self.height/ 52
  95.     end
  96.   def update_cursor_rect
  97.     if  @index < 0   
  98.       self.cursor_rect.empty
  99.       self.opacity = 0
  100.     else
  101.       @selected
  102.       self.cursor_rect.set(index % 4 * 50,index / 4 * 49- self.oy , 42, 41)
  103.     end
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ● 刷新帮助文本
  107.   #--------------------------------------------------------------------------
  108.   def update_help
  109.     @help_window.set_text(self.item == nil ? "" : self.item.description)
  110.   end
  111. end
复制代码
xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
34467
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2013-2-10 17:42:55 | 显示全部楼层
把 15 行 改成:@actor= actor
怎么编辑还是去不掉那些码
xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
50
在线时间
114 小时
注册时间
2012-4-25
回帖
85
 楼主| 发表于 2013-2-10 17:45:10 | 显示全部楼层
芯☆淡茹水 发表于 2013-2-10 17:40
脚本已改好,试试

111.png 这里出错啦!!
回复

使用道具 举报

梦石
0
星屑
34467
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2013-2-10 17:49:22 | 显示全部楼层
本帖最后由 芯☆淡茹水 于 2013-2-10 17:50 编辑

不会吧,我用新工程试验完全没问题啊
再试试
  1. #==============================================================================
  2. # ■ Window_EquipRight
  3. #------------------------------------------------------------------------------
  4. #  装备画面、显示角色现在装备的物品的窗口。
  5. #==============================================================================

  6. class Window_EquipRight < Window_Selectable
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     actor : 角色
  10.   #--------------------------------------------------------------------------
  11.   def initialize(actor)
  12.     super(250, 64, 368, 192)
  13.     self.contents = Bitmap.new(width - 32, height - 32)
  14.     [url=home.php?mod=space&uid=95897]@actor[/url] = actor
  15.     refresh
  16.     self.index = 0
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   # ● 获取物品
  20.   #--------------------------------------------------------------------------
  21.   def item
  22.     return @data[self.index]
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 刷新
  26.   #--------------------------------------------------------------------------
  27.   def refresh
  28.     self.contents.clear
  29.     @data = []
  30.     @data.push($data_weapons[@actor.weapon_id])
  31.     @data.push($data_armors[@actor.armor1_id])
  32.     @data.push($data_armors[@actor.armor2_id])
  33.     @data.push($data_armors[@actor.armor3_id])
  34.     @data.push($data_armors[@actor.armor4_id])
  35.     @item_max = @data.size
  36.     self.contents.font.color = system_color
  37.     self.contents.draw_text(4, 32 * 0, 92, 32, $data_system.words.weapon)
  38.     self.contents.draw_text(4, 32 * 1, 92, 32, $data_system.words.armor1)
  39.     self.contents.draw_text(4, 32 * 2, 92, 32, $data_system.words.armor2)
  40.     self.contents.draw_text(4, 32 * 3, 92, 32, $data_system.words.armor3)
  41.     self.contents.draw_text(5, 32 * 4, 92, 32, $data_system.words.armor4)
  42.     draw_item_name(@data[0], 50, 32 * 0)
  43.     draw_item_name(@data[1], 92, 32 * 1)
  44.     draw_item_name(@data[2], 92, 32 * 2)
  45.     draw_item_name(@data[3], 92, 32 * 3)
  46.     draw_item_name(@data[4], 92, 32 * 4)
  47.     # 添加空白
  48.     @data.push(nil)
  49.     # 生成位图、描绘全部项目
  50.     @item_max = @data.size
  51.     self.contents = Bitmap.new(width - 32, row_max * 132)
  52.     for i in 0...@item_max-1
  53.       draw_item(i)
  54.     end
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● 描绘项目
  58.   #     index : 项目编号
  59.   #--------------------------------------------------------------------------
  60.   def draw_item(index)
  61.     item = @data[index]
  62.     case item
  63.     when RPG::Item
  64.       number = $game_party.item_number(item.id)
  65.     when RPG::Weapon
  66.       number = $game_party.weapon_number(item.id)
  67.     when RPG::Armor
  68.       number = $game_party.armor_number(item.id)
  69.     end
  70.     if item.is_a?(RPG::Item) and
  71.        $game_party.item_can_use?(item.id)
  72.       self.contents.font.color = normal_color
  73.     else
  74.       self.contents.font.color = disabled_color
  75.     end
  76.     x = index % 4 * 50
  77.     y = index / 4 * 50
  78.     if item != nil
  79.       rect = Rect.new(x, y, self.width / @column_max - 32, 32)
  80.       self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  81.       bitmap = RPG::Cache.icon(item.icon_name)
  82.       opacity = self.contents.font.color == normal_color ? 255 : 255
  83.       self.contents.blt(x, y, bitmap, Rect.new(-2, -2, 50, 100), opacity)
  84.       self.contents.draw_text(x , y , 0, 0, item.name, 0)
  85.       self.contents.draw_text(x + 15, y, 0, 0, "", 1)
  86.       self.contents.draw_text(x + 25, y + 25, 24, 24, number.to_s, 2)
  87.     end
  88.   end
  89.    #--------------------------------------------------------------------------
  90.   # ● 刷新光标矩形
  91.   #--------------------------------------------------------------------------
  92.    def page_row_max
  93.     # 窗口的高度,设置画面的高度减去 32 ,除以 1 行的高度 32
  94.     return self.height/ 52
  95.     end
  96.   def update_cursor_rect
  97.     if  @index < 0   
  98.       self.cursor_rect.empty
  99.       self.opacity = 0
  100.     else
  101.       @selected
  102.       self.cursor_rect.set(index % 4 * 50,index / 4 * 49- self.oy , 42, 41)
  103.     end
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ● 刷新帮助文本
  107.   #--------------------------------------------------------------------------
  108.   def update_help
  109.     @help_window.set_text(self.item == nil ? "" : self.item.description)
  110.   end
  111. end
复制代码
还是把15 行 改成:@actor = actor      不要把  refresh  删掉了

评分

参与人数 1梦石 +1 收起 理由
hys111111 + 1 认可答案

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
50
在线时间
114 小时
注册时间
2012-4-25
回帖
85
 楼主| 发表于 2013-2-10 17:51:27 | 显示全部楼层
675482971@qq.co 发表于 2013-2-10 17:45
这里出错啦!!

太谢谢了,小白真是感激不尽!!!
回复

使用道具 举报

梦石
0
星屑
50
在线时间
114 小时
注册时间
2012-4-25
回帖
85
 楼主| 发表于 2013-2-10 17:54:28 | 显示全部楼层
再弱弱的问一句!认可在哪点啊!其实是这一句错了,#   @actor = actor 上面显示的不对
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部