原脚本只能在非卖品的三个类别(道具、物品、防具)中写入对应的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在线咨询功能删除,谢谢。