设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2730|回复: 13
打印 上一主题 下一主题

[已经解决] 物品限制和物品自动提示冲突

[复制链接]

Lv1.梦旅人

梦石
0
星屑
64
在线时间
124 小时
注册时间
2015-1-30
帖子
61
跳转到指定楼层
1
发表于 2015-2-16 17:33:58 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
RT,哪个放前面哪个没用。搜到以前有过个一模一样的帖子,可楼主自己解决了,还不说他是如何解决的。


RUBY 代码复制
  1. #==============================================================================
  2. # 背包可容纳最大的物品种类数。(包括物品,武器,防具)
  3. ITEMS_MAX = 30
  4. # 背包满后,如果再增加物品所提示的信息。
  5. TOP_MESSAGE = "背包已满!"
  6. #==============================================================================
  7. class Game_Party
  8.   #--------------------------------------------------------------------
  9.   def full_judge?(id, n, type)
  10.     mn = 0
  11.     @items.keys.each{|i| mn += 1 if item_number(i) > 0}
  12.     @weapons.keys.each{|i| mn += 1 if weapon_number(i) > 0}
  13.     @armors.keys.each{|i| mn += 1 if armor_number(i) > 0}
  14.     return false if mn < ITEMS_MAX
  15.     case type
  16.     when 0
  17.       if @items.keys.include?(id) and item_number(id) > 0
  18.         return false if item_number(id) + n <= 30
  19.       end
  20.     when 1
  21.       if @weapons.keys.include?(id) and weapon_number(id) > 0
  22.         return false if weapon_number(id) + n <= 30
  23.       end
  24.     when 2
  25.       if @armors.keys.include?(id) and armor_number(id) > 0
  26.         return false if armor_number(id) + n <= 30
  27.       end
  28.     end
  29.     return true
  30.   end
  31.   #---------------------------------------------------------------------
  32.   def full_top
  33.     $game_system.se_play($data_system.buzzer_se)
  34.     top = Window_Base.new(200, 100, 240, 64)
  35.     top.z = 999
  36.     top.contents = Bitmap.new(top.width - 32, top.height - 32)
  37.     top.contents.draw_text(0, 0, 200, 32, TOP_MESSAGE, 1)
  38.     for i in 1..30
  39.       Graphics.update
  40.     end
  41.     for i in 1..20
  42.       top.opacity -= 13
  43.       top.contents_opacity -= 13
  44.       Graphics.update
  45.     end
  46.     top.dispose
  47.     $judges=true
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   def gain_item(item_id, n)
  51.     # 更新 hash 的个数数据
  52.     if item_id > 0
  53.       if n > 0 and full_judge?(item_id, n, 0)
  54.         full_top
  55.         return
  56.       end
  57.       @items[item_id] = [[item_number(item_id) + n, 0].max, 30].min
  58.     end
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● 增加武器 (减少)
  62.   #     weapon_id : 武器 ID
  63.   #     n         : 个数
  64.   #--------------------------------------------------------------------------
  65.   def gain_weapon(weapon_id, n)
  66.     # 更新 hash 的个数数据
  67.     if weapon_id > 0
  68.       if n > 0 and full_judge?(weapon_id, n, 1)
  69.         full_top
  70.         return
  71.       end
  72.       @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 30].min
  73.     end
  74.   end
  75.   #--------------------------------------------------------------------------
  76.   # ● 增加防具 (减少)
  77.   #     armor_id : 防具 ID
  78.   #     n        : 个数
  79.   #--------------------------------------------------------------------------
  80.   def gain_armor(armor_id, n)
  81.     # 更新 hash 的个数数据
  82.     if armor_id > 0
  83.       if n > 0 and full_judge?(armor_id, n, 2)
  84.         full_top
  85.         return
  86.       end
  87.       @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 30].min
  88.     end
  89.   end
  90. end
  91. #----------------------------------------------------------------------------
  92. class Scene_Shop
  93.   #--------------------------------------------------------------------------
  94.   # ● 刷新画面 (个数输入窗口激活的情况下)
  95.   #--------------------------------------------------------------------------
  96.   def update_number
  97.     # 按下 B 键的情况下
  98.     if Input.trigger?(Input::B)
  99.       # 演奏取消 SE
  100.       $game_system.se_play($data_system.cancel_se)
  101.       # 设置个数输入窗口为不活动·非可视状态
  102.       @number_window.active = false
  103.       @number_window.visible = false
  104.       # 命令窗口光标位置分支
  105.       case @command_window.index
  106.       when 0  # 购买
  107.         # 窗口状态转向购买模式
  108.         @buy_window.active = true
  109.         @buy_window.visible = true
  110.       when 1  # 卖出
  111.         # 窗口状态转向卖出模式
  112.         @sell_window.active = true
  113.         @sell_window.visible = true
  114.         @status_window.visible = false
  115.       end
  116.       return
  117.     end
  118.     # 按下 C 键的情况下
  119.     if Input.trigger?(Input::C)
  120.       # 设置个数输入窗口为不活动·非可视状态
  121.       @number_window.active = false
  122.       @number_window.visible = false
  123.       # 命令窗口光标位置分支
  124.       case @command_window.index
  125.       when 0  # 购买
  126.         type = @item.is_a?(RPG::Item) ? 0 : (@item.is_a?(RPG::Weapon) ? 1 : 2)
  127.         if $game_party.full_judge?(@item.id, @number_window.number, type)
  128.           $game_party.full_top
  129.           @buy_window.active = true
  130.           @buy_window.visible = true
  131.           return
  132.         end
  133.         # 演奏商店 SE
  134.         $game_system.se_play($data_system.shop_se)
  135.         # 购买处理
  136.         case @item
  137.         when RPG::Item
  138.           $game_party.gain_item(@item.id, @number_window.number)
  139.         when RPG::Weapon
  140.           $game_party.gain_weapon(@item.id, @number_window.number)
  141.         when RPG::Armor
  142.           $game_party.gain_armor(@item.id, @number_window.number)
  143.         end
  144.         $game_party.lose_gold(@number_window.number * @item.price)
  145.         # 刷新各窗口
  146.         @gold_window.refresh
  147.         @buy_window.refresh
  148.         @status_window.refresh
  149.         # 窗口状态转向购买模式
  150.         @buy_window.active = true
  151.         @buy_window.visible = true
  152.       when 1  # 卖出
  153.         # 演奏商店 SE
  154.         $game_system.se_play($data_system.shop_se)
  155.         # 卖出处理
  156.         $game_party.gain_gold(@number_window.number * (@item.price / 2))
  157.         case @item
  158.         when RPG::Item
  159.           $game_party.lose_item(@item.id, @number_window.number)
  160.         when RPG::Weapon
  161.           $game_party.lose_weapon(@item.id, @number_window.number)
  162.         when RPG::Armor
  163.           $game_party.lose_armor(@item.id, @number_window.number)
  164.         end
  165.         # 刷新各窗口
  166.         @gold_window.refresh
  167.         @sell_window.refresh
  168.         @status_window.refresh
  169.         # 窗口状态转向卖出模式
  170.         @sell_window.active = true
  171.         @sell_window.visible = true
  172.         @status_window.visible = false
  173.       end
  174.       return
  175.     end
  176.   end
  177. end
  178. #==============================================================================





RUBY 代码复制
  1. #==============================================================================
  2. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  3. #==============================================================================
  4.  
  5. # 注意!!!在对话后得到物品,请在对话后先用事件等待3帧,否则对话框来不及消失。
  6.  
  7. # 开关定义:
  8.  
  9. $不显示金钱窗口 = 41
  10.  
  11. $不显示物品窗口 = 42
  12.  
  13. $不显示武器窗口 = 43
  14.  
  15. $不显示防具窗口 = 44
  16.  
  17. # 以上开关,当打开的时候,获得物品将不会提示,比如默认打开41号开关,获得金钱不再提示
  18.  
  19. # ————————————————————————————————————
  20.  
  21. class Interpreter  
  22.   #--------------------------------------------------------------------------
  23.   # ● 增减金钱
  24.   #--------------------------------------------------------------------------
  25.   def command_125
  26.     value = operate_value(@parameters[0], @parameters[1], @parameters[2])
  27.     $game_party.gain_gold(value)
  28.     if $game_switches[$不显示金钱窗口]==false
  29.       carol3_66RPG = Window_Base.new((640-160)/2,128,180,100)
  30.       carol3_66RPG.contents = Bitmap.new(carol3_66RPG.width - 32, carol3_66RPG.height - 32)
  31.       if value >= 0
  32.         carol3_66RPG.contents.draw_text(0,0,240,32,"获得金钱:")
  33.         #——声效,可以自己改
  34.         Audio.se_play("Audio/SE/"+"006-System06",80,100)
  35.       else
  36.         carol3_66RPG.contents.draw_text(0,0,240,32,"支付金钱:")
  37.         #——声效,可以自己改
  38.         Audio.se_play("Audio/SE/"+"005-System05",80,100)
  39.       end   
  40.       carol3_66RPG.contents.draw_text(0,32,240,32,value.abs.to_s)
  41.       carol3_66RPG.contents.draw_text(0,32,140,32, $data_system.words.gold,2)
  42.       carol3_66RPG.opacity = 160
  43.       for i in 0..30
  44.         Graphics.update
  45.       end
  46.       for i in 0..10
  47.         carol3_66RPG.opacity -= 30
  48.         carol3_66RPG.contents_opacity -= 30
  49.         Graphics.update
  50.       end
  51.       carol3_66RPG.dispose
  52.     end
  53.     return true
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # ● 增减物品
  57.   #--------------------------------------------------------------------------
  58.   def command_126
  59.     value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  60.     $game_party.gain_item(@parameters[0], value)
  61.     if $game_switches[$不显示物品窗口]==false
  62.       carol3_66RPG_item = $data_items[@parameters[0]]
  63.       carol3_66RPG = Window_Base.new((640-300)/2,128,300,100)
  64.       carol3_66RPG.contents = Bitmap.new(carol3_66RPG.width - 32, carol3_66RPG.height - 32)
  65.       if value >= 0
  66.         carol3_66RPG.contents.draw_text(0,0,240,32,"获得物品:")   
  67.         #——声效,可以自己改
  68.         Audio.se_play("Audio/SE/"+"006-System06",80,100)
  69.       else
  70.         carol3_66RPG.contents.draw_text(0,0,240,32,"失去物品:")   
  71.         #——声效,可以自己改
  72.         Audio.se_play("Audio/SE/"+"005-System05",80,100)
  73.       end
  74.       carol3_66RPG_bitmap = RPG::Cache.icon(carol3_66RPG_item.icon_name)
  75.       carol3_66RPG.contents.blt(0, 32, carol3_66RPG_bitmap, Rect.new(0, 0, 24, 24), 255)
  76.       carol3_66RPG.contents.draw_text(0 + 28, 32, 212, 32, carol3_66RPG_item.name, 0)
  77.       carol3_66RPG.contents.draw_text(0, 32, 268, 32, "×"+value.abs.to_s, 2)
  78.       carol3_66RPG.opacity = 160
  79.       for i in 0..30
  80.         Graphics.update
  81.       end
  82.       for i in 0..10
  83.         carol3_66RPG.opacity -= 30
  84.         carol3_66RPG.contents_opacity -= 30
  85.         Graphics.update
  86.       end
  87.       carol3_66RPG.dispose
  88.     end
  89.     return true
  90.   end
  91.   #--------------------------------------------------------------------------
  92.   # ● 增减武器
  93.   #--------------------------------------------------------------------------
  94.   def command_127
  95.     value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  96.     $game_party.gain_weapon(@parameters[0], value)
  97.     if $game_switches[$不显示武器窗口]==false
  98.       carol3_66RPG_item = $data_weapons[@parameters[0]]
  99.       carol3_66RPG = Window_Base.new((640-300)/2,128,300,100)
  100.       carol3_66RPG.contents = Bitmap.new(carol3_66RPG.width - 32, carol3_66RPG.height - 32)
  101.       if value >= 0
  102.         carol3_66RPG.contents.draw_text(0,0,240,32,"获得武器:")   
  103.         #——声效,可以自己改
  104.         Audio.se_play("Audio/SE/"+"006-System06",80,100)
  105.       else
  106.         carol3_66RPG.contents.draw_text(0,0,240,32,"失去武器:")   
  107.         #——声效,可以自己改
  108.         Audio.se_play("Audio/SE/"+"005-System05",80,100)
  109.       end
  110.       carol3_66RPG_bitmap = RPG::Cache.icon(carol3_66RPG_item.icon_name)
  111.       carol3_66RPG.contents.blt(0, 32, carol3_66RPG_bitmap, Rect.new(0, 0, 24, 24), 255)
  112.       carol3_66RPG.contents.draw_text(0 + 28, 32, 212, 32, carol3_66RPG_item.name, 0)
  113.       carol3_66RPG.contents.draw_text(0, 32, 268, 32, "×"+value.abs.to_s, 2)
  114.       carol3_66RPG.opacity = 160
  115.       for i in 0..30
  116.         Graphics.update
  117.       end
  118.       for i in 0..10
  119.         carol3_66RPG.opacity -= 30
  120.         carol3_66RPG.contents_opacity -= 30
  121.         Graphics.update
  122.       end
  123.       carol3_66RPG.dispose
  124.     end
  125.     return true
  126.   end
  127.   #--------------------------------------------------------------------------
  128.   # ● 增减防具
  129.   #--------------------------------------------------------------------------
  130.   def command_128
  131.     value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  132.     $game_party.gain_armor(@parameters[0], value)
  133.     if $game_switches[$不显示防具窗口]==false
  134.       carol3_66RPG_item = $data_armors[@parameters[0]]
  135.       carol3_66RPG = Window_Base.new((640-300)/2,128,300,100)
  136.       carol3_66RPG.contents = Bitmap.new(carol3_66RPG.width - 32, carol3_66RPG.height - 32)
  137.       if value >= 0
  138.         carol3_66RPG.contents.draw_text(0,0,240,32,"获得:")   
  139.         #——声效,可以自己改
  140.         Audio.se_play("Audio/SE/"+"006-System06",80,100)
  141.       else
  142.         carol3_66RPG.contents.draw_text(0,0,240,32,"失去:")   
  143.         #——声效,可以自己改
  144.         Audio.se_play("Audio/SE/"+"005-System05",80,100)
  145.       end
  146.       carol3_66RPG_bitmap = RPG::Cache.icon(carol3_66RPG_item.icon_name)
  147.       carol3_66RPG.contents.blt(0, 32, carol3_66RPG_bitmap, Rect.new(0, 0, 24, 24), 255)
  148.       carol3_66RPG.contents.draw_text(0 + 28, 32, 212, 32, carol3_66RPG_item.name, 0)
  149.       carol3_66RPG.contents.draw_text(0, 32, 268, 32, "×"+value.abs.to_s, 2)
  150.       carol3_66RPG.opacity = 160
  151.       for i in 0..30
  152.         Graphics.update
  153.       end
  154.       for i in 0..10
  155.         carol3_66RPG.opacity -= 30
  156.         carol3_66RPG.contents_opacity -= 30
  157.         Graphics.update
  158.       end
  159.       carol3_66RPG.dispose
  160.     end
  161.     return true
  162.   end
  163. end
  164.  
  165.  
  166.  
  167. #==============================================================================
  168. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  169. #==============================================================================

Lv1.梦旅人

梦石
0
星屑
65
在线时间
232 小时
注册时间
2014-8-1
帖子
144

开拓者

14
发表于 2015-2-21 15:39:16 | 只看该作者
952193683 发表于 2015-2-21 15:37
楼主怎么办?怎么办?我是背包限制放在前面提示放在后面!

抱歉看错了!没事了!好了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
232 小时
注册时间
2014-8-1
帖子
144

开拓者

13
发表于 2015-2-21 15:37:21 | 只看该作者
楼主怎么办?怎么办?我是背包限制放在前面提示放在后面!

J2Z4 (91.49 KB, 下载次数: 10)

J2Z4
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
232 小时
注册时间
2014-8-1
帖子
144

开拓者

12
发表于 2015-2-21 02:07:06 | 只看该作者
XVI 发表于 2015-2-20 18:38
把我的第二个脚本换成二楼脚本就行了

谢谢,试一下。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
64
在线时间
124 小时
注册时间
2015-1-30
帖子
61
11
 楼主| 发表于 2015-2-20 18:38:06 | 只看该作者
952193683 发表于 2015-2-20 18:03
我也需要这两个脚本整合!你整好了没?围观下

把我的第二个脚本换成二楼脚本就行了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
232 小时
注册时间
2014-8-1
帖子
144

开拓者

10
发表于 2015-2-20 18:03:42 | 只看该作者
XVI 发表于 2015-2-16 20:35
好吧 谢谢你的回复 自己消化一下冲突好了

我也需要这两个脚本整合!你整好了没?围观下{:2_286:}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
64
在线时间
124 小时
注册时间
2015-1-30
帖子
61
9
 楼主| 发表于 2015-2-16 20:35:41 | 只看该作者
芯☆淡茹水 发表于 2015-2-16 18:26
用这个改过的 物品提示 ,放 main 上面 ,另外把以前改过的事件解释器删掉。 ...

好吧 谢谢你的回复 自己消化一下冲突好了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
64
在线时间
124 小时
注册时间
2015-1-30
帖子
61
8
 楼主| 发表于 2015-2-16 20:29:54 | 只看该作者
芯☆淡茹水 发表于 2015-2-16 18:26
用这个改过的 物品提示 ,放 main 上面 ,另外把以前改过的事件解释器删掉。 ...

undefined method 'tip' for #<Interpreter:0x2846d18>

点评

tip ? 吾又没定义 tip , $game_party 里有提示了,还定义 tip 干啥?!  发表于 2015-2-16 20:33
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
64
在线时间
124 小时
注册时间
2015-1-30
帖子
61
7
 楼主| 发表于 2015-2-16 20:16:36 | 只看该作者
芯☆淡茹水 发表于 2015-2-16 18:26
用这个改过的 物品提示 ,放 main 上面 ,另外把以前改过的事件解释器删掉。 ...

是的,是否可能与其他脚本冲突

点评

报 什么错?  发表于 2015-2-16 20:17
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
64
在线时间
124 小时
注册时间
2015-1-30
帖子
61
6
 楼主| 发表于 2015-2-16 19:16:42 | 只看该作者
芯☆淡茹水 发表于 2015-2-16 18:26
用这个改过的 物品提示 ,放 main 上面 ,另外把以前改过的事件解释器删掉。 ...

我就放在main前面依然显示如上报错

点评

我发的那个?  发表于 2015-2-16 20:09
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-12 01:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表