原脚本只能在非卖品的三个类别(道具、物品、防具)中写入对应的id编号才能实现在商店中不显示。 
这点对于制作中途才开始使用这个脚本的朋友没来说很辛苦,如果非卖品较多,输入id很容易遗漏,工作量也大。 
于是我在原脚本的基础上修改处了这个【买卖价格为0的物品不在商店中显示】的脚本。
 
脚本内容:
 
RUBY 代码 - #==============================================================================
 - # 本脚本来自[url]www.66rpg.com[/url],转载和使用请保留此声明
 - #==============================================================================
 - # ■ Window_ShopSell
 - #------------------------------------------------------------------------------
 - #  商店画面、浏览显示可以卖掉的商品的窗口。
 - #==============================================================================
 - class Window_ShopSell < Window_Selectable
 - #--------------------------------------------------------------------------
 - # ● 初始化对像
 - #--------------------------------------------------------------------------
 -    def initialize
 -      item=[]
 -      @not_for_sell_item=[]
 -      for i in1...$data_items.size
 -      if$data_items[i].price==0
 -        @not_for_sell_item=@not_for_sell_item+[i]
 -      end
 -    end
 -      weapon=[]
 -      @not_for_sell_weapon=[]
 -      for i in1...$data_weapons.size
 -      if$data_weapons[i].price==0
 -        @not_for_sell_weapon=@not_for_sell_weapon+[i]
 -      end
 -    end
 -      armor=[]
 -      @not_for_sell_armor=[]
 -      for i in1...$data_armors.size
 -      if$data_armors[i].price==0
 -        @not_for_sell_armor=@not_for_sell_armor+[i]
 -      end
 -    end
 -   super(0, 128, 640, 352)
 -   @column_max = 2
 -   refresh
 -   self.index = 0
 - end
 - #--------------------------------------------------------------------------
 - # ● 刷新
 - #--------------------------------------------------------------------------
 - def refresh
 -   ifself.contents != nil
 -     self.contents.dispose
 -     self.contents = nil
 -   end
 -   @data = []
 -   for i in1...$data_items.size
 -     if$game_party.item_number(i) > 0
 -     @data.push($data_items[i])unless@not_for_sell_item.include?(i)
 -     end
 -   end
 -   for i in1...$data_weapons.size
 -     if$game_party.weapon_number(i) > 0
 -     @data.push($data_weapons[i])unless@not_for_sell_weapon.include?(i)
 -     end
 -   end
 -   for i in1...$data_armors.size
 -     if$game_party.armor_number(i) > 0
 -     @data.push($data_armors[i])unless@not_for_sell_armor.include?(i)
 -     end
 -   end
 -   # 如果项目数不是 0 就生成位图、描绘全部项目
 -   @item_max = @data.size
 -   if@item_max > 0
 -     self.contents = Bitmap.new(width - 32, row_max * 32)
 -     for i in0...@item_max
 -     draw_item(i)
 -     end
 -   end
 - end
 - end
 - #==============================================================================
 - # 本脚本来自[url]www.66rpg.com[/url],转载和使用请保留此声明
 - #==============================================================================
 
  复制代码 
             本帖来自P1论坛作者Mr.Faint,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址: https://rpg.blue/forum.php?mod=viewthread&tid=375198  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。  |