查看: 1830|回复: 6

[已经解决] 怎样控制在商店卖的东西?

  [复制链接]
梦石
0
星屑
48
在线时间
35 小时
注册时间
2011-7-16
回帖
26
发表于 2011-8-8 16:15:35 | 显示全部楼层 |阅读模式

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

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

×
我发现虽然可以设定商店只买什么,但是玩家卖的时候是没有限制的,要怎样做成武器店只接受武器,药店只接受药剂的效果?
(只用事件好像不行啊……只能改脚本了,可是我不会……)
梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
回帖
5038

贵宾

发表于 2011-8-8 16:44:29 | 显示全部楼层
本帖最后由 亿万星辰 于 2011-8-8 16:52 编辑

这个要修改脚本 Window_ShopSell

  1.   # 控制变量的ID号  设置对应变量的值为0时为默认商店,1为只卖物品,2为只卖武器,3为只卖防具首饰
  2.   ShopType_VID = 1
  3.   #--------------------------------------------------------------------------
  4.   # ● 刷新
  5.   #--------------------------------------------------------------------------
  6.   def refresh
  7.     if self.contents != nil
  8.       self.contents.dispose
  9.       self.contents = nil
  10.     end
  11.     @data = []
  12.     if $game_variables[ShopType_VID] == 0 or $game_variables[ShopType_VID] == 1
  13.       for i in 1...$data_items.size
  14.         if $game_party.item_number(i) > 0
  15.           @data.push($data_items[i])
  16.         end
  17.       end
  18.     end
  19.     if $game_variables[ShopType_VID] == 0 or $game_variables[ShopType_VID] == 2
  20.       for i in 1...$data_weapons.size
  21.         if $game_party.weapon_number(i) > 0
  22.           @data.push($data_weapons[i])
  23.         end
  24.       end
  25.     end
  26.     if $game_variables[ShopType_VID] == 0 or $game_variables[ShopType_VID] == 3
  27.       for i in 1...$data_armors.size
  28.         if $game_party.armor_number(i) > 0
  29.           @data.push($data_armors[i])
  30.         end
  31.       end
  32.     end
  33.     # 如果项目数不是 0 就生成位图、描绘全部项目
  34.     @item_max = @data.size
  35.     if @item_max > 0
  36.       self.contents = Bitmap.new(width - 32, row_max * 32)
  37.       for i in 0...@item_max
  38.         draw_item(i)
  39.       end
  40.     end
  41.   end
复制代码
大致写了一下,应该是这么回事……
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

梦石
0
星屑
48
在线时间
35 小时
注册时间
2011-7-16
回帖
26
 楼主| 发表于 2011-8-8 23:18:33 | 显示全部楼层
亿万星辰 发表于 2011-8-8 16:44
这个要修改脚本 Window_ShopSell大致写了一下,应该是这么回事……

不行啊……我不知道粘贴在哪?(额……)试了,没用啊……我做了一个实验工程,5个商人NPC,分别:+1000G(不然没钱……)、武器、防具、药、特殊道具,你改了再给我吧…… Project2.rar (856.72 KB, 下载次数: 19)
回复

使用道具 举报

梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
回帖
5038

贵宾

发表于 2011-8-9 07:19:15 | 显示全部楼层
修改脚本 Window_ShopSell

一开始说了嘛,要修改这个脚本,把对应的方法换掉就好了~
或者直接新插入一段脚本
class Window_ShopSell
# 2楼的脚本内容
end

你改了再给我吧……  

不要做伸手党哦~

点评

~~控制可以卖范围比较大,还可以细化到物品ID  发表于 2011-8-9 11:28
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

梦石
0
星屑
48
在线时间
35 小时
注册时间
2011-7-16
回帖
26
 楼主| 发表于 2011-8-9 09:45:26 | 显示全部楼层
亿万星辰 发表于 2011-8-9 07:19
一开始说了嘛,要修改这个脚本,把对应的方法换掉就好了~
或者直接新插入一段脚本
class Window_ShopSell

我之前就是这么粘上去的,可是不行啊?还是啥都能卖啊……我不是故意当伸手党的,实在不会……

点评

在脚本项目的Window_ShopSell下面粘贴,main前面粘贴  发表于 2011-8-9 11:28
回复

使用道具 举报

梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
回帖
5038

贵宾

发表于 2011-8-9 12:35:15 | 显示全部楼层
你你肯定没注意到这句话:# 控制变量的ID号  设置对应变量的值为0时为默认商店,1为只卖物品,2为只卖武器,3为只卖防具首饰
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

梦石
0
星屑
48
在线时间
35 小时
注册时间
2011-7-16
回帖
26
 楼主| 发表于 2011-8-9 15:20:49 | 显示全部楼层
还是不行啊……
这是脚本列表:
截图45.jpg
“卖”的脚本:
  1. class Window_ShopSell
  2. # 2楼的脚本内容
  3. # 控制变量的ID号  设置对应变量的值为0时为默认商店,1为只卖物品,2为只卖武器,3为只卖防具首饰
  4.   ShopType_VID = 1
  5.   #--------------------------------------------------------------------------
  6.   # ● 刷新
  7.   #--------------------------------------------------------------------------
  8.   def refresh
  9.     if self.contents != nil
  10.       self.contents.dispose
  11.       self.contents = nil
  12.     end
  13.     @data = []
  14.     if $game_variables[ShopType_VID] == 0 or $game_variables[ShopType_VID] == 1
  15.       for i in 1...$data_items.size
  16.         if $game_party.item_number(i) > 0
  17.           @data.push($data_items[i])
  18.         end
  19.       end
  20.     end
  21.     if $game_variables[ShopType_VID] == 0 or $game_variables[ShopType_VID] == 2
  22.       for i in 1...$data_weapons.size
  23.         if $game_party.weapon_number(i) > 0
  24.           @data.push($data_weapons[i])
  25.         end
  26.       end
  27.     end
  28.     if $game_variables[ShopType_VID] == 0 or $game_variables[ShopType_VID] == 3
  29.       for i in 1...$data_armors.size
  30.         if $game_party.armor_number(i) > 0
  31.           @data.push($data_armors[i])
  32.         end
  33.       end
  34.     end
  35.     # 如果项目数不是 0 就生成位图、描绘全部项目
  36.     @item_max = @data.size
  37.     if @item_max > 0
  38.       self.contents = Bitmap.new(width - 32, row_max * 32)
  39.       for i in 0...@item_max
  40.         draw_item(i)
  41.       end
  42.     end
  43.   end
  44. end
复制代码
Window_ShopSell里的代码改成默认的了在武器NPC里我加了一句脚本
ShopType_VID = 2
不知道是不是写错了,还是不行……

点评

ShopType_VID是指操作的变量数- -如2的话则是说改变2号变量为1、2、3时不能卖其他东西之类的  发表于 2011-8-9 15:22
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部