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

Project1

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

[RMVX发布] [VX]生化危机式道具箱

[复制链接]

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

跳转到指定楼层
1
发表于 2011-8-13 23:41:04 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 feizhaodan 于 2014-9-5 18:10 编辑

先向CAPCOM致敬。
再向生化危机系列致敬。
之后开始本贴。

VX用的一个很像生化危机0123维罗妮卡的道具箱。玩过的人都知道。
没玩过的人看这个。

就是这样的。

具体功能:

1,存东西(废话)
2,取东西(废话)
3,利用变量后期调整格子数量。
4,决定道具箱里刚开始就有的道具。

制作者:我。这个是处女作,不要喷的太厉害

最后上脚本:
  1. #=begin
  2. #============================================================================
  3. # ☆ 生化危机式道具箱
  4. #    由feizhaodan制作。
  5. #    版本号: 1.0.1
  6. #    2012/8/8
  7. #    转载时请连同这里一起转
  8. #============================================================================
  9. module StockItem
  10.   STOCK =[]     
  11.   # 在这里制作初始箱内道具
  12.   # 格式:
  13.   # STOCK[n] = [kind, id, number]
  14.   # n 是在箱子里的第几个, 不使用0号
  15.   # kind 是种类
  16.   # id 是物品的ID
  17.   # number 是数量
  18.   STOCK[1] = [2, 1, 5]      # 在箱子里的第一格放5个恢复剂
  19.   STOCK[2] = [0, 2, 1]
  20.   STOCK[3] = [1, 1, 1]
  21.   
  22.   
  23.   # 箱子的大小。
  24.   STOCKMAX = 40
  25.   
  26.   
  27.   # 空格显示的字符
  28.   NON_STOCK_WORD = " - EMPTY - "
  29.   
  30.   # 设置箱子大小变量。
  31.   # 更改这个变量可以后期更改箱子大小。
  32.   # 缩小时将会从后开始逐个删除内容。
  33.   STOCK_VARY = 27

  34.   
  35.   module_function
  36.    
  37.   # 清空0数量格子
  38.   def clear_stock
  39.     for i in @stock
  40.       if i[2] == 0
  41.         i[1] = 0
  42.       end
  43.     end
  44.   end
  45.   
  46.   # 初始化格子
  47.   def initialize_stock
  48.     for i in 0...@stock_max
  49.       if @stock[i] == nil
  50.       @stock.push([0, 0, 0])
  51.       end
  52.     end
  53.   end
  54. end
  55. #==============================================================================
  56. # ■ Game_Party
  57. #------------------------------------------------------------------------------
  58. #  处理同伴的类。包含金钱以及物品的信息。本类的实例请参考 $game_party。
  59. #==============================================================================

  60. class Game_Party < Game_Unit
  61.   alias stock_item_initialize initialize
  62.   attr_reader :stocks
  63.   def initialize
  64.     stock_item_initialize
  65.     create_stock_items
  66.   end
  67.   def create_stock_items
  68.     @stocks = Array.new(StockItem::STOCKMAX+1)
  69.     StockItem::STOCK.each_with_index do |ini,i|
  70.       next if ini.nil?
  71.       @stocks[i] = ini
  72.     end
  73.   end
  74. end
  75. #==============================================================================
  76. # □ Window_StockItem_Stock
  77. #-----------------------------------------------------------------------
  78. # ○ 箱子内容的窗口。
  79. #==============================================================================
  80. class Window_StockItem_Stock < Window_Selectable
  81.   #----------------------------------------------------------------------------
  82.   # ○ 初始化
  83.   #----------------------------------------------------------------------------
  84.   def initialize
  85.     x = 0
  86.     width = 544 / 2
  87.     # 判定是否导入KGC帮助条强化
  88.     if $imported != nil and $imported["HelpExtension"] == true
  89.       rowmax = KGC::HelpExtension::ROW_MAX
  90.       height = 416 - (WLH * rowmax + 32)
  91.       y = WLH * rowmax + 32
  92.     else
  93.       height = 416 - (WLH + 32)
  94.       y = WLH + 32
  95.     end
  96.     # 生成窗口
  97.     super(x, y, width, height)
  98.     # 获取箱子内容
  99.     @no_stock_word = StockItem::NON_STOCK_WORD
  100.     self.index = 0
  101.     # 初始化箱子
  102.     define_box
  103.     # 刷新
  104.     refresh
  105.   end
  106.   #----------------------------------------------------------------------------
  107.   # ○ 刷新
  108.   #----------------------------------------------------------------------------
  109.   def refresh
  110.     # 制成箱子道具表
  111.     @item_data =[]
  112.     for i in 1...@stockmax
  113.       if @stock[i][1] != 0
  114.         case @stock[i][0]
  115.         when 0 # 武器
  116.           @item_data.push($data_weapons[@stock[i][1]])
  117.         when 1 # 防具
  118.           @item_data.push($data_armors[@stock[i][1]])
  119.         when 2 # 道具
  120.           @item_data.push($data_items[@stock[i][1]])
  121.         end
  122.       elsif @stock[i][1] == 0 # 空格子
  123.           @item_data.push("nil")
  124.       end
  125.     end
  126.     @item_max = @item_data.size
  127.     create_contents
  128.     # 开始绘制道具
  129.     for i in 0...@item_max
  130.       draw_item(i)
  131.     end
  132.   end
  133.   #----------------------------------------------------------------------------
  134.   # ○ 绘制道具
  135.   #----------------------------------------------------------------------------
  136.   def draw_item(index)
  137.     rect = item_rect(index)
  138.     self.contents.clear_rect(rect)
  139.     item = @item_data[index]
  140.     if item != nil and item != "nil"
  141.       for i in 1...@item_max
  142.       if item.is_a?(RPG::Weapon)
  143.         if item.id == @stock[i][1] and @stock[i][0] == 0
  144.           @number = @stock[i][2]
  145.         end
  146.       elsif item.is_a?(RPG::Armor)
  147.         if item.id == @stock[i][1] and @stock[i][0] == 1
  148.           @number = @stock[i][2]
  149.         end
  150.       elsif  item.is_a?(RPG::Item)
  151.         if item.id == @stock[i][1] and @stock[i][0] == 2
  152.           @number = @stock[i][2]
  153.         end
  154.       end
  155.       end
  156.       enabled = true
  157.       rect.width -= 4
  158.       draw_item_name(item, rect.x, rect.y, enabled)
  159.       self.contents.draw_text(rect, sprintf(":%2d", @number), 2)
  160.     elsif item = "nil"
  161.       number = ""
  162.       enabled = true
  163.       draw_empty_name(rect.x, rect.y)
  164.     end
  165.   end
  166.   #----------------------------------------------------------------------------
  167.   # ○ 绘制空道具
  168.   #----------------------------------------------------------------------------
  169.   def draw_empty_name(x, y)
  170.       self.contents.font.color = normal_color
  171.       self.contents.draw_text(x + 24, y, 172, WLH, @no_stock_word)
  172.   end  
  173.   #----------------------------------------------------------------------------
  174.   # ○ 初始化道具格子
  175.   #----------------------------------------------------------------------------
  176.   def initialize_stock
  177.     @stock =[]
  178.     @stock = $game_party.stocks
  179.     for i in 1...@stockmax
  180.       if @stock[i] == nil
  181.       @stock.push([0, 0, 0])
  182.       end
  183.     end
  184.   end
  185.   def define_box
  186.     var = StockItem::STOCK_VARY
  187.     @stockmax = $game_party.stocks.size-1
  188.     initialize_stock
  189.     if $game_variables[var] == 0
  190.       $game_variables[var] = StockItem::STOCKMAX
  191.       return
  192.     end
  193.     last_stock = @stockmax
  194.     @stockmax = $game_variables[var]
  195.     refresh_stock(last_stock)
  196.   end
  197.   def refresh_stock(last_stock)
  198.     if last_stock >= @stockmax
  199.       for i in 1...@stockmax
  200.         if $game_party.stocks[i] == nil
  201.           $game_party.stocks[i] = [0, 0, 0]
  202.         end
  203.       end
  204.     else
  205.       loop do
  206.         $game_party.stocks.delete_at -1
  207.         if $game_party.stocks.size - 1 == @stockmax
  208.           break
  209.         end
  210.       end
  211.     end
  212.   end
  213. end

  214. #==============================================================================
  215. # ■ Window_Item
  216. #------------------------------------------------------------------------------
  217. #  物品画面、战斗画面、显示浏览物品的窗口。
  218. #==============================================================================

  219. class Window_StockItem_Party < Window_Selectable
  220.   #--------------------------------------------------------------------------
  221.   # ● 初始化对像
  222.   #     x      : 窗口 X 座标
  223.   #     y      : 窗口 Y 座标
  224.   #     width  : 窗口宽度
  225.   #     height : 窗口高度
  226.   #--------------------------------------------------------------------------
  227.   def initialize
  228.     x = 544 / 2
  229.     width = 544 / 2
  230.     if $imported != nil and $imported["HelpExtension"] == true
  231.       rowmax = KGC::HelpExtension::ROW_MAX
  232.       height = 416 - (WLH * rowmax + 32)
  233.       y = WLH * rowmax + 32
  234.     else
  235.       height = 416 - (WLH + 32)
  236.       y = WLH + 32
  237.     end
  238.     super(x, y, width, height)
  239.     @column_max = 1
  240.     self.index = 0
  241.     refresh
  242.   end
  243.   #--------------------------------------------------------------------------
  244.   # ● 获取项目
  245.   #--------------------------------------------------------------------------
  246.   def item
  247.     return @data[self.index]
  248.   end
  249.   #--------------------------------------------------------------------------
  250.   # ● 判断是否为物品
  251.   #     item : 项目
  252.   #--------------------------------------------------------------------------
  253.   def include?(item)
  254.     return false if item == nil
  255.     if $game_temp.in_battle
  256.       return false unless item.is_a?(RPG::Item)
  257.     end
  258.     return true
  259.   end
  260.   #--------------------------------------------------------------------------
  261.   # ● 判断是否为有效状态
  262.   #     item : 项目
  263.   #--------------------------------------------------------------------------
  264.   def enable?(item)
  265.     return $game_party.item_can_use?(item)
  266.   end
  267.   #--------------------------------------------------------------------------
  268.   # ● 刷新
  269.   #--------------------------------------------------------------------------
  270.   def refresh
  271.     @data = []
  272.     for item in $game_party.items
  273.       next unless include?(item)
  274.       @data.push(item)
  275.       if item.is_a?(RPG::Item) and item.id == $game_party.last_item_id
  276.         self.index = @data.size - 1
  277.       end
  278.     end
  279.     @data.push(nil) if include?(nil)
  280.     @data.push("取出")
  281.     @item_max = @data.size
  282.     create_contents
  283.     for i in 0...@item_max
  284.       draw_item(i)
  285.     end
  286.   end
  287.   #--------------------------------------------------------------------------
  288.   # ● 描绘项目
  289.   #     index : 项目编号
  290.   #--------------------------------------------------------------------------
  291.   def draw_item(index)
  292.     rect = item_rect(index)
  293.     self.contents.clear_rect(rect)
  294.     item = @data[index]
  295.     if item != nil and item != "取出"
  296.       number = $game_party.item_number(item)
  297.       enabled = true
  298.       rect.width -= 4
  299.       draw_item_name(item, rect.x, rect.y, enabled)
  300.       self.contents.draw_text(rect, sprintf(":%2d", number), 2)
  301.     elsif item == "取出"
  302.       draw_withdraw_name(rect.x, rect.y)
  303.     end
  304.   end
  305.   #--------------------------------------------------------------------------
  306.   # ● 更新帮助窗口文字
  307.   #--------------------------------------------------------------------------
  308.   def update_help
  309.     if item != nil and item != "取出"
  310.       @help_window.set_text(item.description)
  311.     elsif item == "取出"
  312.       @help_window.set_text("取出道具。")
  313.     end
  314.   end
  315.   def draw_withdraw_name(x, y)
  316.       self.contents.font.color = normal_color
  317.       self.contents.draw_text(x + 24, y, 172, WLH, "取出")
  318.   end  
  319. end
  320. #==============================================================================
  321. # □ Window_StockNumber
  322. #------------------------------------------------------------------------------
  323. #  箱子画面里决定数量的窗口。
  324. #==============================================================================

  325. class Window_StockNumber < Window_Base
  326.   #--------------------------------------------------------------------------
  327.   # ● 初始化对像
  328.   #     x      : 窗口 X 座标
  329.   #     y      : 窗口 Y 座标
  330.   #--------------------------------------------------------------------------
  331.   def initialize
  332.     x = 544 / 2 / 2
  333.     y = 416 / 2 + 416 / 2 / 2
  334.     super(x, y, 544 / 2, WLH * 3)
  335.     @item = nil
  336.     [url=home.php?mod=space&uid=25307]@Max[/url] = 1
  337.     @number = 1
  338.   end
  339.   #--------------------------------------------------------------------------
  340.   # ● 设置商品、最大数量和价格
  341.   #--------------------------------------------------------------------------
  342.   def set(item, max, type)
  343.     @item = item
  344.     @max = max
  345.     @number = 1
  346.     @type = type
  347.     refresh
  348.   end
  349.   #--------------------------------------------------------------------------
  350.   # ● 设置数量输入
  351.   #--------------------------------------------------------------------------
  352.   def number
  353.     return @number
  354.   end
  355.   #--------------------------------------------------------------------------
  356.   # ● 刷新
  357.   #--------------------------------------------------------------------------
  358.   def refresh
  359.     x = 96
  360.     y = 16
  361.     self.contents.clear
  362.     draw_item_name(@item, 0, 0)
  363.     self.contents.font.color = normal_color
  364.     self.contents.draw_text(x + 32, 0, 20, WLH, "×")
  365.     self.contents.draw_text(x + 68, 0, 20, WLH, @number, 2)
  366.     self.cursor_rect.set(x + 64, 0, 28, WLH)
  367.     case @type
  368.     when 0
  369.       self.contents.draw_text(x + 96, 0, WLH * 2, WLH, "存入")
  370.     when 1
  371.       self.contents.draw_text(x + 96, 0, WLH * 2, WLH, "取出")
  372.     when 2
  373.       self.contents.draw_text(x + 96, 0, WLH * 2, WLH, "存入")
  374.     end
  375.   end
  376.   #--------------------------------------------------------------------------
  377.   # ● 更新画面
  378.   #--------------------------------------------------------------------------
  379.   def update
  380.     super
  381.     if self.active
  382.       last_number = @number
  383.       if Input.repeat?(Input::RIGHT) and @number < @max
  384.         @number += 1
  385.       end
  386.       if Input.repeat?(Input::LEFT) and @number > 1
  387.         @number -= 1
  388.       end
  389.       if Input.repeat?(Input::UP) and @number < @max
  390.         @number = [@number + 10, @max].min
  391.       end
  392.       if Input.repeat?(Input::DOWN) and @number > 1
  393.         @number = [@number - 10, 1].max
  394.       end
  395.       if @number != last_number
  396.         Sound.play_cursor
  397.         refresh
  398.       end
  399.     end
  400.   end
  401. end

  402. #==============================================================================
  403. # □ Window_StockNumber
  404. #------------------------------------------------------------------------------
  405. #  箱子画面里交换时的窗口
  406. #==============================================================================

  407. class Window_StockTrade < Window_Base
  408.   #--------------------------------------------------------------------------
  409.   # ● 初始化对像
  410.   #     x      : 窗口 X 座标
  411.   #     y      : 窗口 Y 座标
  412.   #--------------------------------------------------------------------------
  413.   def initialize
  414.     x = 544 / 2 / 2
  415.     y = 416 / 2 - 416 / 2 / 2
  416.     super(x, y, 544 / 2, WLH * 3)
  417.     @item = nil
  418.     @number = 1
  419.   end
  420.   #--------------------------------------------------------------------------
  421.   # ● 设置商品、最大数量和价格
  422.   #--------------------------------------------------------------------------
  423.   def set(item, number)
  424.     @item = item
  425.     @number = number
  426.     refresh
  427.   end
  428.   #--------------------------------------------------------------------------
  429.   # ● 设置数量输入
  430.   #--------------------------------------------------------------------------
  431.   def number
  432.     return @number
  433.   end
  434.   #--------------------------------------------------------------------------
  435.   # ● 刷新
  436.   #--------------------------------------------------------------------------
  437.   def refresh
  438.     x = 96
  439.     self.contents.clear
  440.     draw_item_name(@item, 0, 0)
  441.     self.contents.font.color = normal_color
  442.     self.contents.draw_text(x + 32, 0, 20, WLH, "×")
  443.     self.contents.draw_text(x + 68, 0, 20, WLH, @number, 2)
  444.     self.cursor_rect.set(x + 64, 0, 28, WLH)
  445.     self.contents.draw_text(x + 96, 0, WLH * 2, WLH, "取出")
  446.   end
  447.   #--------------------------------------------------------------------------
  448.   # ● 更新画面
  449.   #--------------------------------------------------------------------------
  450.   def update
  451.     super
  452.     refresh
  453.   end
  454. end
  455. #============================================================================
  456. # ☆ 生化危机式道具箱
  457. #    由feizhaodan制作。
  458. #    版本号: 1.0.1
  459. #    2012/8/8
  460. #    转载时请连同这里一起转
  461. #============================================================================


  462. #============================================================================
  463. # □ Scene_StockItem
  464. #----------------------------------------------------------------------------
  465. #    处理道具箱子的场景。
  466. #============================================================================
  467. class Scene_StockItem < Scene_Base

  468.   def start
  469.     super
  470.     create_menu_background
  471.     define_box
  472.     @stock_item_stock = Window_StockItem_Stock.new
  473.     @stock_item_party = Window_StockItem_Party.new
  474.     @help_window = Window_Help.new
  475.     @stock_item_party.help_window = @help_window
  476.     @stock_item_stock.help_window = @help_window
  477.     @stock_number = Window_StockNumber.new
  478.     @stock_number.visible = false
  479.     @stock_number.active = false
  480.     @stock_trade = Window_StockTrade.new
  481.     @stock_trade.visible = false
  482.     @stock_trade.active = false
  483.     if $imported != nil and $imported["HelpExtension"] == true
  484.       @help_window.row_max = KGC::HelpExtension::ROW_MAX
  485.     end
  486.     if $imported != nil and $imported["LimitBreak"] == true
  487.       @imported_limit = true
  488.     else
  489.       @imported_limit = false
  490.     end
  491.     @stock_item_stock.active = true
  492.     @stock_item_party.active = false
  493.   end
  494.   
  495.   def terminate
  496.     @stock_item_stock.dispose
  497.     @stock_item_party.dispose
  498.     @help_window.dispose
  499.     @stock_number.dispose
  500.     @stock_trade.dispose
  501.   end
  502.   
  503.   def update
  504.     @stock_item_stock.update
  505.     @stock_item_party.update
  506.     @help_window.update
  507.     @stock_number.update
  508.     @stock_trade.update
  509.     if @stock_item_stock.active == true
  510.       update_item_stock
  511.     elsif @stock_item_party.active == true
  512.       update_item_party
  513.     elsif @stock_number.active == true
  514.       update_number
  515.     end
  516.   end
  517.   
  518.   def update_item_stock
  519.     if Input.trigger?(Input::B) # 取消键按下时
  520.       Sound.play_cancel    # 播放取消音效
  521.       $scene = Scene_Map.new    # 回到菜单画面
  522.     end
  523.     if Input.trigger?(Input::C) # 决定建按下时
  524.       Sound.play_decision
  525.       @stock_index = @stock_item_stock.index + 1  # 记录箱子格子号码
  526.       if $game_party.stocks[@stock_index][1] == 0 # 当格子未使用
  527.         [url=home.php?mod=space&uid=86665]@save[/url] = true                              # 开启存储伏笔
  528.         @trade = false
  529.         @withdraw = false
  530.       else                                      # 否则
  531.         @trade = true                           # 开启交换伏笔
  532.         @save = false
  533.         @withdraw = false
  534.       end
  535.       @stock_item_stock.active = false
  536.       @stock_item_party.active = true
  537.     end
  538.   end
  539.   
  540.   def update_item_party
  541.     if Input.trigger?(Input::B) # 取消键按下时
  542.       Sound.play_cancel    # 播放取消音效
  543.       @stock_item_stock.active = true
  544.       @stock_item_party.active = false
  545.     end
  546.     if Input.trigger?(Input::C) # 决定建按下时
  547.       @item = @stock_item_party.item    # 获取道具信息
  548.       @item_type = 0
  549.       case @item
  550.       when RPG::Item
  551.         @item_type = 2
  552.       when RPG::Weapon
  553.         @item_type = 0
  554.       when RPG::Armor
  555.         @item_type = 1
  556.       end
  557.       if @save                          # 当存入时
  558.         if @item == "取出"              # 若道具是取出则返回错误
  559.           Sound.play_buzzer
  560.           return
  561.         end
  562.         Sound.play_decision
  563.         carry_number = $game_party.item_number(@item) # 获取道具数量
  564.         if @imported_limit == true                    # 若导入KGC界限突破
  565.             max = carry_number                        
  566.             @stock_number.set(@item, max, 0)
  567.             @stock_item_party.active = false
  568.             @stock_number.visible = true
  569.             @stock_number.active = true
  570.         else
  571.             max = carry_number                      # 若没有导入则用99做最大值
  572.             @stock_number.set(@item, max, 0)
  573.             @stock_item_party.active = false
  574.             @stock_number.visible = true
  575.             @stock_number.active = true
  576.         end
  577.       else
  578.         if $game_party.stocks[@stock_index][1] == @item.id  and @item_type == $game_party.stocks[@stock_index][0]
  579.           @save = false
  580.           @trade = false                       # 关闭交换伏笔
  581.           @withdraw = true                     # 开启取出伏笔
  582.           carry_number = $game_party.item_number(@item)
  583.           number = $game_party.stocks[@stock_index][2]
  584.           if @imported_limit == true
  585.             if carry_number == @item.number_limit
  586.               Sound.play_buzzer
  587.               return
  588.             else
  589.               Sound.play_decision
  590.               max = number
  591.               max = [max, @item.number_limit - carry_number].min
  592.               @stock_number.set(@item, max, 1)
  593.               @stock_item_party.active = false
  594.               @stock_number.visible = true
  595.               @stock_number.active = true
  596.             end
  597.           else
  598.             if carry_number == 99
  599.                 Sound.play_buzzer
  600.                 return
  601.               else
  602.                 Sound.play_decision
  603.                 max = number
  604.                 max = [max, 99 - carry_number].min
  605.                 @stock_number.set(@item, max, 1)
  606.                 @stock_item_party.active = false
  607.                 @stock_number.visible = true
  608.                 @stock_number.active = true
  609.               end
  610.             end
  611.           elsif @item == "取出"                   # 当目标是取出时
  612.             @save = false
  613.             @trade = false                       # 关闭交换伏笔
  614.             @withdraw = true                     # 开启取出伏笔
  615.             case $game_party.stocks[@stock_index][0]
  616.             when 0 # 武器
  617.               @item = $data_weapons[$game_party.stocks[@stock_index][1]]
  618.             when 1 # 防具
  619.               @item = $data_armors[$game_party.stocks[@stock_index][1]]
  620.             when 2 # 道具
  621.               @item = $data_items[$game_party.stocks[@stock_index][1]]
  622.             end
  623.             carry_number = $game_party.item_number(@item)
  624.             number = $game_party.stocks[@stock_index][2]
  625.             if @imported_limit == true
  626.               if carry_number == @item.number_limit
  627.                 Sound.play_buzzer
  628.                 return
  629.               else
  630.                 Sound.play_decision
  631.                 max = number
  632.                 max = [max, @item.number_limit - carry_number].min
  633.                 @stock_number.set(@item, max, 1)
  634.                 @stock_item_party.active = false
  635.                 @stock_number.visible = true
  636.                 @stock_number.active = true
  637.               end
  638.             else
  639.               if carry_number == 99
  640.                 Sound.play_buzzer
  641.                 return
  642.               else
  643.                 Sound.play_decision
  644.                 max = number
  645.                 max = [max, 99 - carry_number].min
  646.                 @stock_number.set(@item, max, 1)
  647.                 @stock_item_party.active = false
  648.                 @stock_number.visible = true
  649.                 @stock_number.active = true
  650.               end
  651.             end
  652.           elsif $game_party.stocks[@stock_index][1] != @item.id or $game_party.stocks[@stock_index][0] != @item.type
  653.             @save = false
  654.             @trade = true                       # 开启交换伏笔
  655.             @withdraw = false                     # 关闭取出伏笔
  656.             carry_number = $game_party.item_number(@item)
  657.             number = $game_party.stocks[@stock_index][2]
  658.             case $game_party.stocks[@stock_index][0]
  659.             when 0 # 武器
  660.               @trade_item = $data_weapons[$game_party.stocks[@stock_index][1]]
  661.             when 1 # 防具
  662.               @trade_item = $data_armors[$game_party.stocks[@stock_index][1]]
  663.             when 2 # 道具
  664.               @trade_item = $data_items[$game_party.stocks[@stock_index][1]]
  665.             end
  666.             if @imported_limit == true
  667.               if number + $game_party.item_number(@item) >=  @trade_item.number_limit
  668.                 Sound.play_buzzer
  669.                 return
  670.               else
  671.                 Sound.play_decision
  672.                 max = carry_number
  673.                 @stock_number.set(@item, max ,2)
  674.                 @stock_trade.set(@trade_item, number)
  675.                 @stock_trade.refresh
  676.                 @stock_item_party.active = false
  677.                 @stock_number.visible = true
  678.                 @stock_number.active = true
  679.                 @stock_trade.visible = true
  680.               end
  681.             else
  682.               if number + $game_party.item_number(@item) >= 99
  683.                 Sound.play_buzzer
  684.                 return
  685.               else
  686.                 Sound.play_decision
  687.                 max = carry_number
  688.                 @stock_number.set(@item, max, 2)
  689.                 @stock_trade.set(@trade_item, number)
  690.                 @stock_trade.refresh
  691.                 @stock_item_party.active = false
  692.                 @stock_number.visible = true
  693.                 @stock_number.active = true
  694.                 @stock_trade.visible = true
  695.               end
  696.             end
  697.         end
  698.       end
  699.     end
  700.   end
  701.   
  702.   def update_number
  703.     if Input.trigger?(Input::B) # 取消键按下时
  704.       Sound.play_cancel    # 播放取消音效
  705.       @stock_item_party.active = true
  706.       @stock_number.visible = false
  707.       @stock_number.active = false
  708.       @stock_trade.visible = false
  709.     end
  710.     if Input.trigger?(Input::C)
  711.       [url=home.php?mod=space&uid=297884]@END[/url] = false
  712.       Sound.play_decision
  713.       if @save
  714.         $game_party.lose_item(@item, @stock_number.number)
  715.         for i in 1...@stockmax
  716.           if $game_party.stocks[i][1] == @item.id and $game_party.stocks[i][0] == @item_type
  717.             $game_party.stocks[i][2] += @stock_number.number
  718.             @end = true
  719.             break
  720.           end
  721.         end
  722.         if @end == false
  723.           $game_party.stocks[@stock_index][0] = @item_type
  724.           $game_party.stocks[@stock_index][1] = @item.id
  725.           $game_party.stocks[@stock_index][2] += @stock_number.number
  726.         end
  727.       elsif @trade
  728.         $game_party.lose_item(@item, @stock_number.number)
  729.         $game_party.gain_item(@trade_item, @stock_trade.number)
  730.         for i in 1...@stockmax
  731.           if $game_party.stocks[i][1] == @item.id and $game_party.stocks[i][0] == @item_type
  732.             $game_party.stocks[i][2] += @stock_number.number
  733.             $game_party.stocks[@stock_index][2] = 0
  734.             @end = true
  735.             break
  736.           end
  737.         end
  738.         if @end == false
  739.           $game_party.stocks[@stock_index][0] = @item_type
  740.           $game_party.stocks[@stock_index][1] = @item.id
  741.           $game_party.stocks[@stock_index][2] = @stock_number.number
  742.         end
  743.       elsif @withdraw
  744.         $game_party.gain_item(@item, @stock_number.number)
  745.         $game_party.stocks[@stock_index][2] -= @stock_number.number
  746.       end
  747.       clear_stock
  748.       @stock_item_stock.active = true
  749.       @stock_number.visible = false
  750.       @stock_number.active = false
  751.       @stock_trade.visible = false
  752.       @end = false
  753.       @stock_item_stock.refresh
  754.       @stock_item_party.refresh
  755.     end  
  756.   end
  757.   # 清空0数量格子
  758.   def clear_stock
  759.     for i in 1...@stockmax
  760.       if $game_party.stocks[i][2] == 0
  761.         $game_party.stocks[i][1] = 0
  762.       end
  763.     end
  764.   end
  765.   
  766.   def define_box
  767.     var = StockItem::STOCK_VARY
  768.     @stockmax = StockItem::STOCKMAX
  769.     if $game_variables[var] == 0
  770.       $game_variables[var] = StockItem::STOCKMAX
  771.       return
  772.     end
  773.     @stockmax = $game_variables[var]
  774.     refresh_stock
  775.   end
  776.   def refresh_stock
  777.     for i in 1...@stockmax
  778.       if $game_party.stocks[i] == nil
  779.         $game_party.stocks[i] = [0, 0, 0]
  780.       end
  781.     end
  782.   end
  783. end
  784. #============================================================================
  785. # ☆ 生化危机式道具箱
  786. #    由feizhaodan制作。
  787. #    版本号: 1.0.1
  788. #    2012/8/8
  789. #    转载时请连同这里一起转
  790. #============================================================================

  791. #=end
复制代码
使用方法:将以上内容拷贝后粘贴在main上头。之后在想要打开箱子的位置使用事件脚本的
  1. $scene = Scene_StockItem.new
复制代码
冲突:未知,可能和一些更改的很厉害的道具系统冲突。

另:支持KGC大人作 界限突破(限制道具持有数功能)和 帮助栏扩张。因为我也用  

评分

参与人数 3星屑 +82 收起 理由
八宝粥先生 + 2 家里穷...
lsu666666 + 60
RPGmaster + 20 原创内容

查看全部评分

Lv3.寻梦者

梦石
0
星屑
1284
在线时间
461 小时
注册时间
2016-3-20
帖子
97
15
发表于 2019-8-22 14:53:21 | 只看该作者
不行啊。。为什么我打开每次都报错
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
559
在线时间
664 小时
注册时间
2010-6-30
帖子
223
14
发表于 2014-8-13 11:58:06 | 只看该作者
(`・ω・)楼上居然是我12年发的...最近又开始接触就想到当时楼主的生化危机道具箱!惊奇的被我发现BUG,最后一个道具显示数量会错误,最后一格会复制上面一格的道具数量...(σ゚д゚)σ我实在太强了。。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
559
在线时间
664 小时
注册时间
2010-6-30
帖子
223
13
发表于 2012-8-8 15:50:41 | 只看该作者
本帖最后由 Front 于 2012-8-8 15:58 编辑

=。。= 呼~没有出错!发现是我没有重新开档。。现在存蓝白小内内进去完全!不会消失了
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
559
在线时间
664 小时
注册时间
2010-6-30
帖子
223
12
发表于 2012-8-7 19:12:23 | 只看该作者
本帖最后由 Front 于 2012-8-7 19:25 编辑

原来是我没设置空间...不过我发现一个蛋碎的BUG!!! 变量一旦改动~再打开仓库就直接给我卡屏了。。

- -! 竟然是箱子上限的问题!好吧。。这不是BUG。。我没仔细看脚本。。

不过我还是发现!这个问题更让我蛋碎!!! 存东西。。。保存游戏。。。关闭游戏。。。读取游戏。。。打开仓库。。。我的东西呢?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3852
在线时间
1582 小时
注册时间
2006-5-5
帖子
2743
11
发表于 2012-5-12 23:38:59 | 只看该作者
用这个东西的话如果不限制主角包袱容量的话就没意思
步兵中尉
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
5 小时
注册时间
2010-12-24
帖子
9
10
发表于 2012-5-12 22:44:50 | 只看该作者
果然强大,观望看看有没有好玩的游戏,也想学学~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
210
在线时间
56 小时
注册时间
2011-11-22
帖子
57
9
发表于 2012-2-5 13:57:51 | 只看该作者
感谢LZ的补充
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
80 小时
注册时间
2012-1-27
帖子
45
8
发表于 2012-2-5 13:22:04 | 只看该作者
小的也是生化危機迷呢,這個好,我
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1347
在线时间
676 小时
注册时间
2009-11-11
帖子
2790
7
发表于 2011-8-14 21:59:33 | 只看该作者
这种东西就是实用!!

嘿。嘿。嘿
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 18:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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