Project1

标题: 商店中“不显示不能卖物品或装备” [打印本页]

作者: 失去的记忆    时间: 2009-5-21 01:44
标题: 商店中“不显示不能卖物品或装备”
在主站上搜索到这个脚本:
  1. 脚本内容

  2. #==============================================================================
  3. # 本脚本来自www.66rpg.com,转载和使用请保留此声明
  4. #==============================================================================
  5. # ■ Window_ShopSell
  6. #------------------------------------------------------------------------------
  7. #  商店画面、浏览显示可以卖掉的商品的窗口。
  8. #==============================================================================

  9. class Window_ShopSell < Window_Selectable
  10. #--------------------------------------------------------------------------
  11. # ● 初始化对像
  12. #--------------------------------------------------------------------------
  13. def initialize
  14.   @not_for_sell_item = [1,2,3]
  15.   @not_for_sell_weapon = [2,3,4]
  16.   @not_for_sell_armor = [1,2,3,4,5]
  17.   super(0, 128, 640, 352)
  18.   @column_max = 2
  19.   refresh
  20.   self.index = 0
  21. end
  22. #--------------------------------------------------------------------------
  23. # ● 刷新
  24. #--------------------------------------------------------------------------
  25. def refresh
  26.   if self.contents != nil
  27.     self.contents.dispose
  28.     self.contents = nil
  29.   end
  30.   @data = []
  31.   for i in 1...$data_items.size
  32.     if $game_party.item_number(i) > 0
  33.     @data.push($data_items[i]) unless @not_for_sell_item.include?(i)
  34.     end
  35.   end
  36.   for i in 1...$data_weapons.size
  37.     if $game_party.weapon_number(i) > 0
  38.     @data.push($data_weapons[i]) unless @not_for_sell_weapon.include?(i)
  39.     end
  40.   end
  41.   for i in 1...$data_armors.size
  42.     if $game_party.armor_number(i) > 0
  43.     @data.push($data_armors[i]) unless @not_for_sell_armor.include?(i)
  44.     end
  45.   end
  46.   # 如果项目数不是 0 就生成位图、描绘全部项目
  47.   @item_max = @data.size
  48.   if @item_max > 0
  49.     self.contents = Bitmap.new(width - 32, row_max * 32)
  50.     for i in 0...@item_max
  51.     draw_item(i)
  52.     end
  53.   end
  54. end
  55. end
  56. #==============================================================================
  57. # 本脚本来自www.66rpg.com,转载和使用请保留此声明
  58. #==============================================================================

复制代码

发现这个脚本定义了物品或装备的ID后实现不显示这个功能的!
呵呵,我想既然可以用ID来判断为啥不能用价格来判断呢!
所以就有了这个想法:
在原工程Window_ShopSell脚本中的 26—46行添加如下红色部分就OK了哈哈:
  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)unless $data_items.price == 0
      end
    end
    for i in 1...$data_weapons.size
      if $game_party.weapon_number(i) > 0
        @data.push($data_weapons)unless $data_weapons.price == 0
      end
    end
    for i in 1...$data_armors.size
      if $game_party.armor_number(i) > 0
        @data.push($data_armors)unless $data_armors.price == 0
      end
    end
这样不管是物品还是装备!只要价格是 0 !就不会显示!{/cy}{/cy}
P:(众人: 这么简单,我们早就知道啦~~~~~~~~{/gg})

作者: angelwangm    时间: 2009-5-21 02:08
果然简单易用
ms也不会产生什么冲突吧 收下了
作者: 失去的记忆    时间: 2009-5-21 02:11
据我估计冲突的可能性可能至于修改过物品或装备价格的脚本吧{/gg}{/gg}
P:(有这样的脚本吗。。。。。{/fd})
作者: 精灵使者    时间: 2009-5-22 16:21
以下引用失去的记忆于2009-5-20 18:11:41的发言:

据我估计冲突的可能性可能至于修改过物品或装备价格的脚本吧
P:(有这样的脚本吗。。。。。)

有这样的脚本。
给你个万能的传送门……
点此开始传送
作者: 失去的记忆    时间: 2009-5-22 19:29
看了这个 传送门 了!!{/gg}{/gg}
不过只要把相应的脚本改成我这个样子就没关系啦!!{/cy}{/cy}
可以说这个方法绝不会冲突的!(只要不恶意修改物品价格代码{/kuk}{/kuk})
作者: 精灵使者    时间: 2009-5-22 20:26
嗯哪。不过我以前曾经专门设计过物品店和道具店独立的商店脚本……




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1