查看: 3092|回复: 8

[已经解决] 求改游戏,帮忙修复下物品回复不显示和添加一个物品分类

[复制链接]
梦石
0
星屑
112
在线时间
1421 小时
注册时间
2008-8-30
回帖
874
发表于 2014-7-3 21:39:44 | 显示全部楼层 |阅读模式
悬赏5星屑已解决
1现在脚本放的多了搞的用了物品虽说有效果但不会显示数值了?求帮忙找下问题修复下。
2帮忙制作下物品分类,要求不与现有脚本冲突,而且物品帮助详细显示窗口在物品分类中也有用,分类的设置方式定为在说明后面加@普通物品 就分类为普通物品以此类推,分类定为1回复类物品2武器3防具4任务物品5剧情物品6XX物品7XX物品8XX物品9XX物品10XX物品共十个分类
(话说范例里有些素材请别动,因为版权原因我也不懂作者是谁,但因为我完全是自己自娱自乐不打算发布更别说商业用所以就用了,下的人别拿去用,切记,谢谢)

最佳答案

查看完整内容

第一个问题有人搞定了我就不去弄了~~!! 第二个问题我做弄了两个~~! 一个是全透明一个是半透明~~ 主要没有底图材料~!! 你可以自己去制作~~!!! 帮助问题也解决了~~!! 而且貌似这个游戏我遇到两次了~~ 不知道上次提问魔石打孔问题是不是你~~!! 刚刚那个有点问题~!! 我修改好的~~!! 不过物品分类需要你自己去修改~~!! 在说明的最后面添加@xxx 例如:己方单体 HP 回复。@恢复类 这样这个物品就是恢复类~~!!! ...

点评

我马虎忘记修改回去了~!!我发了消息给你~~!! 如果没办法我可以发过一个给你~~!!  发表于 2014-7-5 17:30
http://pan.baidu.com/s/1gdsv5Sn 地址  发表于 2014-7-3 21:40
梦石
0
星屑
50
在线时间
378 小时
注册时间
2013-10-14
回帖
213
发表于 2014-7-3 21:39:45 | 显示全部楼层
本帖最后由 batfjtn 于 2014-7-5 17:55 编辑

第一个问题有人搞定了我就不去弄了~~!!

第二个问题我做弄了两个~~!

一个是全透明一个是半透明~~

主要没有底图材料~!!

你可以自己去制作~~!!!

全透明.jpg
半透明.jpg
半透明.jpg
帮助问题也解决了~~!!

而且貌似这个游戏我遇到两次了~~

不知道上次提问魔石打孔问题是不是你~~!!

刚刚那个有点问题~!!

我修改好的~~!!

不过物品分类需要你自己去修改~~!!

在说明的最后面添加@xxx  例如:己方单体 HP 回复。@恢复类

这样这个物品就是恢复类~~!!!

斗魂.rar (51.99 MB, 下载次数: 127)

点评

我想说的是@XXX,这XXX是说你输入的文字~~!!比如@老东西或者~~@新东西再或者@垃圾~~~!!! 你如果都用了@XXX那你分类不全都是XXX了~~~!!!  发表于 2014-7-6 12:16
物品是可以分类但武器与防具即使加了@xxx也不能分类啊  发表于 2014-7-6 11:33
咦魔力石上次是你改的?好吧这工程是我的脑洞有时有什么新想法就会叫人添点脚本....  发表于 2014-7-5 17:16
好棒0v0但是仍然有问题呢就是武器防具什么的似乎还分不了类,还有就是战斗时使用物品哪里有问题......  发表于 2014-7-5 17:11
最简单的学习方法就是努力回答别人的问题...
任何教程都没有实践来的重要...
XP小问题都能自己解决了,剩下的就是脚本了...
╰⋛⋋⊱⋋๑角⊱☠c色๑⋌⊰⋌⋚╯
回复

使用道具 举报

素材区好人

梦石
5
星屑
12574
在线时间
4348 小时
注册时间
2011-7-21
回帖
2264

超评测参与极短28参与极短27参与极短26参与极短25参与极短24参与极短23参与极短22参与极短21参与

发表于 2014-7-4 23:04:55 | 显示全部楼层
本帖最后由 无忧谷主幻 于 2014-7-5 09:58 编辑

明天帮你,不过本人也不是高手,不要抱太大希望


第一个问题已经解决了
第二个问题解决一半,只是物品分类中要显示详细描述,已经超出我的能力范围了
1.png 2.png

点评

简单新加了几个,你去4楼下载就能找到。显示恢复是彩虹神剑,之后的物品分类几乎就是复制原脚本,只不过看情况改了一下坐标  发表于 2014-7-5 17:47
楼下有个人正在解决,话说你的脚本改在哪里了?能告诉下吗  发表于 2014-7-5 17:05
如果谁能完美解决第二个问题,我也想要这样的整合脚本  发表于 2014-7-5 10:13
恩,先谢谢了  发表于 2014-7-5 09:52
回复

使用道具 举报

素材区好人

梦石
5
星屑
12574
在线时间
4348 小时
注册时间
2011-7-21
回帖
2264

超评测参与极短28参与极短27参与极短26参与极短25参与极短24参与极短23参与极短22参与极短21参与

发表于 2014-7-5 12:40:04 | 显示全部楼层
本帖最后由 无忧谷主幻 于 2014-7-5 12:42 编辑

不小心回复多了,本楼谁帮忙删除了
回复

使用道具 举报

素材区好人

梦石
5
星屑
12574
在线时间
4348 小时
注册时间
2011-7-21
回帖
2264

超评测参与极短28参与极短27参与极短26参与极短25参与极短24参与极短23参与极短22参与极短21参与

发表于 2014-7-5 12:41:54 | 显示全部楼层
http://pan.baidu.com/s/1eQEIqfK
加了2个脚本,可惜第二个问题仍无法完全解决。
注意:每个恢复药品都要设置动画

脚本里的字体我改了一下,你再改回去吧
回复

使用道具 举报

梦石
0
星屑
50
在线时间
378 小时
注册时间
2013-10-14
回帖
213
发表于 2014-7-6 12:17:59 | 显示全部楼层
我想说的是@XXX,这XXX是说你输入的文字~~!!

比如@老东西

或者~~!

@新东西

再或者~~~!!

@垃圾

你如果都用了@XXX那你分类不全都是XXX了~~~!!!

点评

我知道,我的意思是即使在武器和防具的说明后加上例如@防具@武器也还是分在普通物品那类  发表于 2014-7-6 17:29
最简单的学习方法就是努力回答别人的问题...
任何教程都没有实践来的重要...
XP小问题都能自己解决了,剩下的就是脚本了...
╰⋛⋋⊱⋋๑角⊱☠c色๑⋌⊰⋌⋚╯
回复

使用道具 举报

梦石
0
星屑
50
在线时间
378 小时
注册时间
2013-10-14
回帖
213
发表于 2014-7-6 18:15:59 | 显示全部楼层
我自己都测试过的~~!!

没有问题~~!!

1.jpg
1.jpg

你看看这两张~~!!

怎么会有问题呢~~!!!

除了战斗的没有弄~~

别的都弄好的~~!!!
最简单的学习方法就是努力回答别人的问题...
任何教程都没有实践来的重要...
XP小问题都能自己解决了,剩下的就是脚本了...
╰⋛⋋⊱⋋๑角⊱☠c色๑⋌⊰⋌⋚╯
回复

使用道具 举报

梦石
0
星屑
112
在线时间
1421 小时
注册时间
2008-8-30
回帖
874
 楼主| 发表于 2014-7-6 18:49:23 | 显示全部楼层
batfjtn 发表于 2014-7-6 18:15
我自己都测试过的~~!!

没有问题~~!!

为什么我不行.......看脸的么........
3.JPG
1.JPG
2.JPG
回复

使用道具 举报

梦石
0
星屑
50
在线时间
378 小时
注册时间
2013-10-14
回帖
213
发表于 2014-7-6 19:50:53 | 显示全部楼层
jklpgh 发表于 2014-7-6 18:49
为什么我不行.......看脸的么........

好吧你成功了~~!!!

你都不看脚本的吗~~!!?

你把这一段修改掉就好了~~!!!

你是连脚本都还没有去设置好~~!!
  1. #==============================================================================
  2. # ■ RPG追加定义
  3. #==============================================================================
  4. module RPG
  5.   #--------------------------------------------------------------------------
  6.   # ● 物品追加
  7.   #--------------------------------------------------------------------------
  8.   class Item
  9.     def description
  10.       description = @description.split(/@/)[0]
  11.       return description != nil ? description : ''
  12.     end
  13.     def desc
  14.       desc = @description.split(/@/)[1]
  15.       return desc != nil ? desc : "恢复物品"
  16.     end
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   # ● 武器追加
  20.   #--------------------------------------------------------------------------
  21.   class Weapon
  22.     def description
  23.       description = @description.split(/@/)[0]
  24.       return description != nil ? description : ''
  25.     end
  26.     def desc
  27.       desc = @description.split(/@/)[1]
  28.       return desc != nil ? desc : "武器装备"
  29.     end
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 防具追加
  33.   #--------------------------------------------------------------------------
  34.   class Armor
  35.     def description
  36.       description = @description.split(/@/)[0]
  37.       return description != nil ? description : ''
  38.     end
  39.     def desc
  40.       desc = @description.split(/@/)[1]
  41.       return desc != nil ? desc : "防具装备"
  42.     end
  43.   end
  44. end
复制代码
主要是你的游戏太大了~~!!

每次上传太痛苦了~~!!

顺便给你长我修改好的物品底图~~!!

物品背景图 物品背景.png


顺便我修改好的脚本也发给你吧~~!!!

物品分类脚本[pre lang="ruby" line="1"]#==============================================================================
# ■ RPG追加定义
#==============================================================================
module RPG
  #--------------------------------------------------------------------------
  # ● 物品追加
  #--------------------------------------------------------------------------
  class Item
    def description
      description = @description.split(/@/)[0]
      return description != nil ? description : ''
    end
    def desc
      desc = @description.split(/@/)[1]
      return desc != nil ? desc : "恢复物品"
    end
  end
  #--------------------------------------------------------------------------
  # ● 武器追加
  #--------------------------------------------------------------------------
  class Weapon
    def description
      description = @description.split(/@/)[0]
      return description != nil ? description : ''
    end
    def desc
      desc = @description.split(/@/)[1]
      return desc != nil ? desc : "武器装备"
    end
  end
  #--------------------------------------------------------------------------
  # ● 防具追加
  #--------------------------------------------------------------------------
  class Armor
    def description
      description = @description.split(/@/)[0]
      return description != nil ? description : ''
    end
    def desc
      desc = @description.split(/@/)[1]
      return desc != nil ? desc : "防具装备"
    end
  end
end

#==============================================================================
# ■ Harts_Window_ItemCommand
#==============================================================================

class Window_ItemCommand < Window_Selectable
  attr_accessor :commands
  #--------------------------------------------------------------------------
  # ● 初始化,生成commands窗口
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 423)
    @commands = []
    # 设置物品窗口透明 batfjtn
    self.opacity = 0
    #————————生成commands窗口
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        push = true
        for com in @commands
          if com == $data_items.desc
            push = false
          end
        end
        if push == true
          @commands.push($data_items.desc)
        end
      end
    end
    for i in 1...$data_weapons.size
      if $game_party.weapon_number(i) > 0
        push = true
        for com in @commands
          if com == $data_weapons.desc
            push = false
          end
        end
        if push == true
          @commands.push($data_weapons.desc)
        end
      end
    end
    for i in 1...$data_armors.size
      if $game_party.armor_number(i) > 0
        push = true
        for com in @commands
          if com == $data_armors.desc
            push = false
          end
        end
        if push == true
          @commands.push($data_armors.desc)
        end
      end
    end
    if @commands == []
      @commands.push("普通物品")
    end      
    @item_max = @commands.size
    self.contents = Bitmap.new(width - 32, @item_max * 32)
    refresh
    self.index = 0
  end
  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    for i in 0...@item_max
      draw_item(i, normal_color)
    end
  end
  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  def draw_item(index, color)
    self.contents.font.color = color
    y = index * 32
    self.contents.draw_text(4, y, 128, 32, @commands[index])
  end
  #--------------------------------------------------------------------------
  # 只描绘原文字
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(item)
    #校正帮助窗口位置
    @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  end
end

#==============================================================================
# ■ Window_Item
#==============================================================================

class Window_ItemList < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #--------------------------------------------------------------------------
  def initialize
    super(160, 0, 480, 480)
    @column_max = 2
    # 设置物品窗口透明 batfjtn
    self.opacity = 0
    refresh
    self.index = 0
    # 战斗中的情况下将窗口半透明化
    if $game_temp.in_battle
      self.back_opacity = 160
    end
  end
  #--------------------------------------------------------------------------
  # ● 获取物品
  #--------------------------------------------------------------------------
  def item
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
  end
  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  def set_item(command)
    refresh
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0 and $data_items.desc == command
        @data.push($data_items)
      end
    end
    for i in 1...$data_weapons.size
      if $game_party.weapon_number(i) > 0 and $data_weapons.desc == command
        @data.push($data_weapons)
      end
    end
    for i in 1...$data_armors.size
      if $game_party.armor_number(i) > 0 and $data_armors.desc == command
        @data.push($data_armors)
      end
    end
    # 如果项目数不是 0 就生成位图、重新描绘全部项目
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      self.contents.clear
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  def item_number
    return @item_max
  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 = 4 + index % 2 * (208 + 32)
    y = index / 2 * 32
    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 + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
    self.contents.draw_text(x + 170, y, 16, 32, ":", 1)
    self.contents.draw_text(x + 176, y, 24, 32, number.to_s, 2)
  end
  #--------------------------------------------------------------------------
  # ● 刷新帮助文本
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(item)
    #校正帮助窗口位置
    @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  end
end

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

class Scene_Item
  #--------------------------------------------------------------------------
  # ● 主处理
  #--------------------------------------------------------------------------
  def main
    #■■■生成物品图片
    @menu_com = Sprite.new
    @menu_com.bitmap = RPG::Cache.picture("物品背景.png")
    # 生成帮助窗口、物品窗口
    @itemcommand_window = Window_ItemCommand.new
    @command_index = @itemcommand_window.index
    @itemlist_window = Window_ItemList.new
    @itemlist_window.active = false
    @help_window = Window_Help.new
    #------------------------------------
    # ● 生成金錢窗口
    #------------------------------------
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 423
    # 关联帮助窗口
    @itemcommand_window.help_window = @help_window
    @itemlist_window.help_window = @help_window
    @target_window = Window_Target.new
    @target_window.visible = false
    @target_window.active = false
    @itemlist_window.set_item(@itemcommand_window.commands[@command_index])
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @gold_window.dispose
    @menu_com.dispose
    @itemcommand_window.dispose
    @itemlist_window.dispose
    @help_window.dispose
    @target_window.dispose
  end
  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  def update
    @gold_window.update
    @itemcommand_window.update
    @itemlist_window.update
    @help_window.update
    @target_window.update
    if @command_index != @itemcommand_window.index
      @command_index = @itemcommand_window.index
      @itemlist_window.set_item(@itemcommand_window.commands[@command_index])
    end
    if @itemcommand_window.active
      update_itemcommand
      return
    end
    if @itemlist_window.active
      update_itemlist
      return
    end
    if @target_window.active
      update_target
      return
    end
  end
  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  def update_itemcommand
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new(0)
      return
    end
    if Input.trigger?(Input::C)
      if @itemlist_window.item_number == 0
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      $game_system.se_play($data_system.decision_se)
      @itemcommand_window.active = false
      @itemlist_window.active = true
      @itemlist_window.index = 0
      return
    end
  end
  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  def update_itemlist
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @itemcommand_window.active = true
      @itemlist_window.active = false
      @itemlist_window.index = 0
      @itemcommand_window.index = @command_index
      return
    end
    if Input.trigger?(Input::C)
      @item = @itemlist_window.item
      unless @item.is_a?(RPG::Item)
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      unless $game_party.item_can_use?(@item.id)
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      $game_system.se_play($data_system.decision_se)
      if @item.scope >= 3
        # 激活目标窗口
        @menu_com = Sprite.new
        @menu_com.bitmap = RPG::Cache.picture("使用物品背景.png")
        @itemlist_window.active = false
        @target_window.x = 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
        if @item.common_event_id > 0
          $game_temp.common_event_id = @item.common_event_id
          $game_system.se_play(@item.menu_se)
            if @item.consumable
              $game_party.lose_item(@item.id, 1)
              @itemlist_window.draw_item(@itemlist_window.index)
            end
          $scene = Scene_Map.new
          return
        end
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面 (目标窗口被激活的情况下)
  #--------------------------------------------------------------------------
  def update_target
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      unless $game_party.item_can_use?(@item.id)
        @itemlist_window.refresh
      end
      # 删除目标窗口
      @menu_com.dispose
      @itemlist_window.active = true
      @target_window.visible = false
      @target_window.active = false
      @itemlist_window.set_item(@itemcommand_window.commands[@command_index])
      return
    end
    if Input.trigger?(Input::C)
      if $game_party.item_number(@item.id) == 0
        $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
        $game_system.se_play(@item.menu_se)
        if @item.consumable
          $game_party.lose_item(@item.id, 1)
          @itemlist_window.draw_item(@itemlist_window.index)
          @itemlist_window.set_item(@itemcommand_window.commands[@command_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
[/pre]


这次可以结贴了吧~~!!

战斗界面还是用原来的物品栏~~!!!

你的第一个问题就是没有设置动画~~!!

设置下动画就OK了~~!!!

点评

赞!  发表于 2014-7-7 11:49
最简单的学习方法就是努力回答别人的问题...
任何教程都没有实践来的重要...
XP小问题都能自己解决了,剩下的就是脚本了...
╰⋛⋋⊱⋋๑角⊱☠c色๑⋌⊰⋌⋚╯
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部