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

Project1

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

[已经过期] 倉庫系統問題?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
52
在线时间
135 小时
注册时间
2011-11-5
帖子
83
跳转到指定楼层
1
发表于 2013-7-20 10:45:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 ji3rul4coco 于 2013-7-20 12:35 编辑

倉庫系統測試時,跑出這個↓



腳本如下


Window_WarehouseCommand
RUBY 代码复制
  1. #encoding:utf-8
  2. # ————————————————————————————————————
  3. # 本脚本来自[url]www.66rpg.com[/url],转载请保留此信息
  4. # ————————————————————————————————————
  5. #==============================================================================
  6. #==============================================================================
  7. # ■ Window_WarehouseCommand
  8. #------------------------------------------------------------------------------
  9. #  仓库画面中,选择存入/取出的窗口。
  10. #==============================================================================
  11.  
  12. class Window_WarehouseCommand < Window_HorzCommand
  13.   #--------------------------------------------------------------------------
  14.   # ● 初始化对象
  15.   #--------------------------------------------------------------------------
  16.   def initialize(window_width, purchase_only)
  17.     @window_width = window_width
  18.     super(0, 0)
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 获取窗口的宽度
  22.   #--------------------------------------------------------------------------
  23.   def window_width
  24.     @window_width
  25.   end
  26.   #--------------------------------------------------------------------------
  27.   # ● 获取列数
  28.   #--------------------------------------------------------------------------
  29.   def col_max
  30.     return 3
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ● 生成指令列表
  34.   #--------------------------------------------------------------------------
  35.   def make_command_list
  36.     add_command("存入",   :save  , have_item)
  37.     add_command("取出",   :get   , have_item(1))
  38.     add_command("取消",       :cancel)
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ● 仓库是否拥有物品
  42.   #--------------------------------------------------------------------------
  43.   def have_item(where = 0)
  44.     case where
  45.       when 0
  46.         data = []
  47.         # 例遍武器
  48.         for i in 1...$data_weapons.size
  49.           if $game_party.item_number($data_weapons[i]) > 0
  50.             data.push($data_weapons[i])
  51.           end
  52.         end
  53.         # 例遍物品
  54.         for i in 1...$data_items.size
  55.           if $game_party.item_number($data_items[i]) > 0
  56.             data.push($data_items[i])
  57.           end
  58.         end
  59.         # 例遍防具
  60.         for i in 1...$data_armors.size
  61.           if $game_party.item_number($data_armors[i]) > 0
  62.             data.push($data_armors[i])
  63.           end
  64.         end
  65.       when 1
  66.         data = []
  67.         # 例遍武器
  68.         for i in 1...$data_weapons.size
  69.           if $game_party.ware_num($data_weapons[i]) > 0
  70.             data.push($data_weapons[i])
  71.           end
  72.         end
  73.         # 例遍物品
  74.         for i in 1...$data_items.size
  75.           if $game_party.ware_num($data_items[i]) > 0
  76.             data.push($data_items[i])
  77.           end
  78.         end
  79.         # 例遍防具
  80.         for i in 1...$data_armors.size
  81.           if $game_party.ware_num($data_armors[i]) > 0
  82.             data.push($data_armors[i])
  83.           end
  84.         end
  85.       end
  86.     if data != []
  87.       return true
  88.     else
  89.       return false
  90.     end
  91.   end
  92.  
  93.  
  94. end



Window_WarehouseItem
RUBY 代码复制
  1. #encoding:utf-8
  2. # ————————————————————————————————————
  3. # 本腳本來自[url]www.66rpg.com[/url],轉載請保留此信息
  4. # ————————————————————————————————————
  5. #==============================================================================
  6. # ■ Window_WarehouseItemSave
  7. #------------------------------------------------------------------------------
  8. #  倉庫畫面中,存入物品的窗口。
  9. #==============================================================================
  10.  
  11. class Window_WarehouseItem < Window_Selectable
  12.   #--------------------------------------------------------------------------
  13.   # ● 初始化對象
  14.   #--------------------------------------------------------------------------
  15.   def initialize(x, y, width, height, items = [])
  16.     super(x, y, width, height)
  17.     @action = 0
  18.     @data = []
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 獲取項目數
  22.   #--------------------------------------------------------------------------
  23.   def item_max
  24.     @data ? @data.size : 0
  25.   end
  26.   #--------------------------------------------------------------------------
  27.   # ● 刷新
  28.   #--------------------------------------------------------------------------
  29.   def refresh
  30.     make_item_list
  31.     create_contents
  32.     if action != 0
  33.       draw_all_items
  34.     end
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 設置窗口動作  0:無 1:儲存 2:取出
  38.   #--------------------------------------------------------------------------
  39.   def set_action(action = 0)
  40.     @action = action
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 取得窗口動作
  44.   #--------------------------------------------------------------------------
  45.   def action
  46.     return @action
  47.   end
  48. #==========================================================================
  49. # ■ 生成物品列表
  50. #==========================================================================
  51.   def make_item_list
  52.     case self.action
  53.       when 0
  54.         @data = []
  55.       when 1
  56.         list_item
  57.       when 2
  58.         list_ware
  59.     end
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ● 獲取背包物品
  63.   #--------------------------------------------------------------------------
  64.   def list_item
  65.     @data = []
  66.     # 例遍武器
  67.     for i in 1...$data_weapons.size
  68.       if $game_party.item_number($data_weapons[i]) > 0
  69.         @data.push($data_weapons[i])
  70.       end
  71.     end
  72.     # 例遍物品
  73.     for i in 1...$data_items.size
  74.       if $game_party.item_number($data_items[i]) > 0
  75.         @data.push($data_items[i])
  76.       end
  77.     end
  78.     # 例遍防具
  79.     for i in 1...$data_armors.size
  80.       if $game_party.item_number($data_armors[i]) > 0
  81.         @data.push($data_armors[i])
  82.       end
  83.     end
  84.   end
  85.   #--------------------------------------------------------------------------
  86.   # ● 獲取倉庫物品
  87.   #--------------------------------------------------------------------------
  88.   def list_ware
  89.     @data = []
  90.     # 例遍武器
  91.     for i in 1...$data_weapons.size
  92.       if $game_party.ware_num($data_weapons[i]) > 0
  93.         @data.push($data_weapons[i])
  94.       end
  95.     end
  96.     # 例遍物品
  97.     for i in 1...$data_items.size
  98.       if $game_party.ware_num($data_items[i]) > 0
  99.         @data.push($data_items[i])
  100.       end
  101.     end
  102.     # 例遍防具
  103.     for i in 1...$data_armors.size
  104.       if $game_party.ware_num($data_armors[i]) > 0
  105.         @data.push($data_armors[i])
  106.       end
  107.     end
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # ● 倉庫是否擁有物品
  111.   #--------------------------------------------------------------------------
  112.   def have_item(where = 0)
  113.     case where
  114.       when 0
  115.         list_item
  116.       when 1
  117.         list_ware
  118.     end
  119.  
  120.     if @data == []
  121.       return true
  122.     else
  123.       return false
  124.     end
  125.   end
  126. #--------------------------------------------------------------------------
  127. # ■ 繪製項目
  128. #--------------------------------------------------------------------------
  129.   def draw_item(index)
  130.     case self.action
  131.       when 1
  132.         draw_items(index)
  133.       when 2
  134.         draw_ware(index)
  135.     end
  136.   end
  137.   #--------------------------------------------------------------------------
  138.   # ● 背包物品數量
  139.   #--------------------------------------------------------------------------
  140.   def i_num(item)
  141.     return $game_party.item_number(item)
  142.   end
  143.   #--------------------------------------------------------------------------
  144.   # ● 倉庫物品數量
  145.   #--------------------------------------------------------------------------
  146.   def w_num(item)
  147.     return $game_party.ware_num(item)
  148.   end
  149.   #--------------------------------------------------------------------------
  150.   # ● 描繪背包物品  
  151.   #--------------------------------------------------------------------------
  152.   def draw_items(index)
  153.     item = @data[index]
  154.     rect = item_rect(index)
  155.     num = i_num(item)
  156.     draw_item_name(item, rect.x, rect.y)
  157.     rect.width -= 4
  158.     draw_text(rect.x, rect.y, rect.width, rect.height, ": " + num.to_s, 2)  end
  159.   #--------------------------------------------------------------------------
  160.   # ● 描繪倉庫物品
  161.   #--------------------------------------------------------------------------
  162.   def draw_ware(index)
  163.     item = @data[index]
  164.     rect = item_rect(index)
  165.     num = w_num(item)
  166.     draw_item_name(item, rect.x, rect.y, enable?(item))
  167.     rect.width -= 4
  168.     draw_text(rect.x, rect.y, rect.width, rect.height, ": " + num.to_s, 2)
  169.   end
  170. #--------------------------------------------------------------------------
  171. # ■ 繪製所有項目
  172. #--------------------------------------------------------------------------
  173.   def draw_all_items
  174.     item_max.times {|i| draw_item(i) }
  175.   end
  176.  
  177.   #--------------------------------------------------------------------------
  178.   # ● 獲取焦點項目
  179.   #--------------------------------------------------------------------------
  180.   def get_item_now
  181.       return @data[self.index]
  182.   end
  183.   #--------------------------------------------------------------------------
  184.   # ● 獲取項目數據
  185.   #--------------------------------------------------------------------------
  186.   def get_data
  187.       return @data
  188.   end
  189.   #--------------------------------------------------------------------------
  190.   # ● 更新幫助內容
  191.   #--------------------------------------------------------------------------
  192.   def update_help
  193.     @help_window.set_item(get_item_now) if @help_window
  194.   end
  195.   #--------------------------------------------------------------------------
  196.   # ● 查詢此物品是否可以取出
  197.   #--------------------------------------------------------------------------
  198.   def enable?(item)
  199.     if $game_party.max_item_number(item) - $game_party.item_number(item) == 0
  200.       return false
  201.     else
  202.       return true
  203.     end
  204.   end
  205.  
  206. #結束定義
  207. end



Window_WarehouseNumber

RUBY 代码复制
  1. #encoding:utf-8
  2. # ————————————————————————————————————
  3. # 本腳本來自[url]www.66rpg.com[/url],轉載請保留此信息
  4. # ————————————————————————————————————
  5. #==============================================================================
  6. # ■ Window_WarehouseNumber
  7. #------------------------------------------------------------------------------
  8. #  商店畫面中,輸入“物品買入/賣出數量”的窗口。
  9. #==============================================================================
  10.  
  11. class Window_WarehouseNumber < Window_Selectable
  12.   #--------------------------------------------------------------------------
  13.   # ● 初始化對象
  14.   #--------------------------------------------------------------------------
  15.   def initialize(x, y, height)
  16.     super(x, y, window_width, height)
  17.     @item = nil
  18.     [url=home.php?mod=space&uid=25307]@Max[/url] = 1
  19.     [url=home.php?mod=space&uid=27178]@Number[/url] = 1
  20.   end
  21.   #--------------------------------------------------------------------------
  22.   # ● 獲取窗口的寬度
  23.   #--------------------------------------------------------------------------
  24.   def window_width
  25.     return 304
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ● 設置物品、最大值
  29.   #--------------------------------------------------------------------------
  30.   def set(item, max)
  31.     @item = item
  32.     @max = max
  33.     @number = 1
  34.     refresh
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 設置狀態
  38.   #--------------------------------------------------------------------------
  39.   def save_item(action = true)
  40.     @action = action
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 取得狀態
  44.   #--------------------------------------------------------------------------
  45.   def action
  46.     return @action
  47.   end
  48.   #--------------------------------------------------------------------------
  49.   # ● 獲得數值
  50.   #--------------------------------------------------------------------------
  51.   def get_num
  52.     return @number
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   # ● 獲得物品
  56.   #--------------------------------------------------------------------------
  57.   def get_item
  58.     return @item
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● 獲得最大值
  62.   #--------------------------------------------------------------------------
  63.   def get_max
  64.     return @max
  65.   end
  66.   #--------------------------------------------------------------------------
  67.   # ● 刷新
  68.   #--------------------------------------------------------------------------
  69.   def refresh
  70.     contents.clear
  71.     draw_item_name(@item, 0, item_y)
  72.     draw_number
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● 繪製數量
  76.   #--------------------------------------------------------------------------
  77.   def draw_number
  78.     change_color(normal_color)
  79.     draw_text(cursor_x - 28, item_y, 22, line_height, "×")
  80.     draw_text(cursor_x, item_y, cursor_width - 4, line_height, @number, 2)
  81.   end
  82.   #--------------------------------------------------------------------------
  83.   # ● 顯示物品名稱行的 Y 坐標
  84.   #--------------------------------------------------------------------------
  85.   def item_y
  86.     return 8
  87.   end
  88.   #--------------------------------------------------------------------------
  89.   # ● 獲取光標的寬度
  90.   #--------------------------------------------------------------------------
  91.   def cursor_width
  92.     figures * 10 + 12
  93.   end
  94.   #--------------------------------------------------------------------------
  95.   # ● 獲取光標的 X 坐標
  96.   #--------------------------------------------------------------------------
  97.   def cursor_x
  98.     contents_width - cursor_width - 4
  99.   end
  100.   #--------------------------------------------------------------------------
  101.   # ● 獲取數量顯示的最大列數
  102.   #--------------------------------------------------------------------------
  103.   def figures
  104.     return 2
  105.   end
  106.   #--------------------------------------------------------------------------
  107.   # ● 更新畫面
  108.   #--------------------------------------------------------------------------
  109.   def update
  110.     super
  111.     if active
  112.       last_number = @number
  113.       update_number
  114.       if @number != last_number
  115.         Sound.play_cursor
  116.         refresh
  117.       end
  118.     end
  119.   end
  120.   #--------------------------------------------------------------------------
  121.   # ● 更新數量
  122.   #--------------------------------------------------------------------------
  123.   def update_number
  124.     change_number(1)   if Input.repeat?(:RIGHT)
  125.     change_number(-1)  if Input.repeat?(:LEFT)
  126.     change_number(10)  if Input.repeat?(:UP)
  127.     change_number(-10) if Input.repeat?(:DOWN)
  128.   end
  129.   #--------------------------------------------------------------------------
  130.   # ● 更改數量
  131.   #--------------------------------------------------------------------------
  132.   def change_number(amount)
  133.     @number = [[@number + amount, @max].min, 1].max
  134.   end
  135.   #--------------------------------------------------------------------------
  136.   # ● 更新光標
  137.   #--------------------------------------------------------------------------
  138.   def update_cursor
  139.     cursor_rect.set(cursor_x, item_y, cursor_width, line_height)
  140.   end
  141. end


Scene_Warehouse_Window
RUBY 代码复制
  1. # ————————————————————————————————————
  2. # 本腳本來自[url]www.66rpg.com[/url],轉載請保留此信息
  3. # ————————————————————————————————————
  4. #==============================================================================
  5. # ■ Scene_Warehouse
  6. #------------------------------------------------------------------------------
  7. #  商店畫面  : 窗口管理
  8. #==============================================================================
  9.  
  10. class Scene_Warehouse < Scene_MenuBase
  11.   #--------------------------------------------------------------------------
  12.   # ● 開始處理 :生成窗口
  13.   #--------------------------------------------------------------------------
  14.   def start
  15.     super
  16.     create_help_window
  17.     create_command_window
  18.     create_item_window
  19.     create_number_window
  20.   end
  21.   #--------------------------------------------------------------------------
  22.   # ● 生成指令窗口
  23.   #--------------------------------------------------------------------------
  24.   def create_command_window
  25.     @command_window = Window_WarehouseCommand.new(Graphics.width, @purchase_only)
  26.     @command_window.viewport = @viewport
  27.     @command_window.y = @help_window.height
  28.     @command_window.set_handler(:save,    method(:command_save))
  29.     @command_window.set_handler(:get,     method(:command_get))
  30.     @command_window.set_handler(:cancel,  method(:return_scene))
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ● 生成物品窗口
  34.   #--------------------------------------------------------------------------
  35.   def create_item_window
  36.     y      = @command_window.y + @command_window.height
  37.     height = Graphics.height - @command_window.y - @command_window.height
  38.     width  = @help_window.width
  39.     @item_window = Window_WarehouseItem.new(0, y, width, height)
  40.  
  41.     @item_window.viewport = @viewport
  42.     @item_window.help_window = @help_window
  43.     @item_window.set_action(0)
  44.  
  45.     @item_window.set_handler(:ok,     method(:on_ok))
  46.     @item_window.set_handler(:cancel, method(:on_cancel))
  47.   end
  48.   #--------------------------------------------------------------------------
  49.   # ● 生成輸入窗口
  50.   #--------------------------------------------------------------------------
  51.   def create_number_window
  52.     @number_window = Window_WarehouseNumber.new((Graphics.width - 304)/2,(Graphics.height - 72)/2,72)
  53.     @number_window.viewport = @viewport
  54.     @number_window.hide
  55.     @number_window.set_handler(:ok,     method(:on_num_ok))
  56.     @number_window.set_handler(:cancel, method(:on_num_cancel))
  57.   end
  58.  
  59. #==============================================================================
  60. # ■倉庫畫面  : 主指令管理
  61. #==============================================================================
  62.  
  63.   #--------------------------------------------------------------------------
  64.   # ● 主界面 :存入
  65.   #--------------------------------------------------------------------------
  66.   def command_save
  67.     @item_window.set_action(1)
  68.     @command_window.deactivate    # 凍結指令窗口
  69.     @item_window.activate         # 激活物品窗口
  70.     @item_window.index = 0
  71.     @item_window.refresh
  72.     @item_window.update_help
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● 主界面 :取出
  76.   #--------------------------------------------------------------------------
  77.   def command_get
  78.     @item_window.set_action(2)
  79.     @command_window.deactivate    # 凍結指令窗口
  80.     @item_window.activate         # 激活物品窗口
  81.     @item_window.index = 0
  82.     @item_window.refresh
  83.     @item_window.update_help
  84.   end
  85.  
  86. #==============================================================================
  87. # ■倉庫畫面  : 指令管理
  88. #==============================================================================
  89.  
  90.   #--------------------------------------------------------------------------
  91.   # ● 命令 :確定
  92.   #--------------------------------------------------------------------------
  93.   def on_ok
  94.     item = @item_window.get_item_now
  95.     if @item_window.enable?(item) || @item_window.action == 1
  96.       case @item_window.action
  97.         when 1
  98.           @number_window.save_item
  99.           @number_window.set(item,$game_party.item_number(item))
  100.         when 2
  101.           @number_window.save_item(false)
  102.           i = $game_party.max_item_number(item) - $game_party.item_number(item)
  103.           if i < $game_party.ware_num(item)
  104.             @number_window.set(item, i)
  105.           else
  106.             @number_window.set(item,$game_party.ware_num(item))
  107.           end
  108.       end
  109.       @item_window.deactivate
  110.       @number_window.show
  111.       @number_window.activate
  112.     else
  113.       Sound.play_buzzer
  114.       @help_window.set_text("背包內裝不下了~")
  115.       @item_window.activate
  116.     end
  117.   end
  118.   #--------------------------------------------------------------------------
  119.   # ● 命令 :取消
  120.   #--------------------------------------------------------------------------
  121.   def on_cancel
  122.     @item_window.deactivate
  123.     @item_window.set_action(0)
  124.     @item_window.index = -1
  125.     @item_window.contents.clear
  126.     @command_window.activate
  127.     @help_window.clear
  128.   end
  129.  
  130. #==============================================================================
  131. # ■倉庫畫面  : 數值輸入指令管理
  132. #==============================================================================
  133.  
  134.   #--------------------------------------------------------------------------
  135.   # ● 命令 :存入確定
  136.   #--------------------------------------------------------------------------
  137.   def on_num_ok
  138.     @number_window.hide
  139.     @number_window.deactivate
  140.     case @number_window.action
  141.       when true
  142.         $game_party.ware_add(@number_window.get_item, @number_window.get_num)
  143.         $game_party.lose_item(@number_window.get_item, @number_window.get_num)
  144.       when false
  145.         $game_party.ware_del(@number_window.get_item, @number_window.get_num)
  146.         $game_party.gain_item(@number_window.get_item, @number_window.get_num)
  147.     end
  148.     # 更新畫面
  149.       @item_window.refresh
  150.     if @number_window.get_num == @number_window.get_max && @item_window.index != 0
  151.       @item_window.index -= 1
  152.     end
  153.  
  154.     if @item_window.get_data == []
  155.       @command_window.activate
  156.       @item_window.deactivate
  157.       @item_window.index = -1
  158.       @help_window.clear
  159.     else
  160.       @item_window.activate
  161.     end
  162.     @command_window.refresh
  163.     @number_window.refresh
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● 命令 :存入取消
  167.   #--------------------------------------------------------------------------
  168.   def on_num_cancel
  169.     @number_window.refresh
  170.     @number_window.hide
  171.     @number_window.deactivate
  172.     @item_window.activate
  173.   end
  174. # 定義結束
  175. end


Game_Party_Warehouse
RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Game_Party
  4. #------------------------------------------------------------------------------
  5. #  管理隊伍的類。保存有金錢及物品的信息。本類的實例請參考 $game_party 。
  6. #==============================================================================
  7.  
  8. class Game_Party < Game_Unit
  9. alias o_initialize initialize
  10.   #--------------------------------------------------------------------------
  11.   # ● 追加:倉庫物品儲存
  12.   #--------------------------------------------------------------------------
  13.   def initialize
  14.     o_initialize
  15.     @warehouse_weapons = []
  16.     @warehouse_items = []
  17.     @warehouse_armors = []
  18.     # 初始化倉庫 : 防具
  19.     for i in 1...$data_armors.size
  20.       @warehouse_armors.push($data_armors[i])
  21.       @warehouse_armors[i] = 0
  22.     end
  23.     # 初始化倉庫 : 物品
  24.     for i in 1...$data_items.size
  25.       @warehouse_items.push($data_items[i])
  26.       @warehouse_items[i] = 0
  27.     end
  28.     # 初始化倉庫 : 武器
  29.     for i in 1...$data_weapons.size
  30.       @warehouse_weapons.push($data_weapons[i])
  31.       @warehouse_weapons[i] = 0
  32.     end
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   # ● 追加:添加進倉庫
  36.   #--------------------------------------------------------------------------
  37.   def ware_add(item,num)
  38.     case item
  39.     when RPG::Item
  40.       @warehouse_items[item.id] += num
  41.     when RPG::Weapon
  42.       @warehouse_weapons[item.id] += num
  43.     when RPG::Armor
  44.       @warehouse_armors[item.id] += num
  45.     end
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # ● 追加:查詢倉庫物品個數
  49.   #--------------------------------------------------------------------------
  50.   def ware_num(item)
  51.     case item
  52.     when RPG::Item
  53.       return @warehouse_items[item.id]
  54.     when RPG::Weapon
  55.       return @warehouse_weapons[item.id]
  56.     when RPG::Armor
  57.       return @warehouse_armors[item.id]
  58.     end
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● 追加:刪除倉庫物品
  62.   #--------------------------------------------------------------------------
  63.   def ware_del(item,num)
  64.     case item
  65.     when RPG::Item
  66.       @warehouse_items[item.id] -= num
  67.     when RPG::Weapon
  68.       @warehouse_weapons[item.id] -= num
  69.     when RPG::Armor
  70.       @warehouse_armors[item.id] -= num
  71.     end
  72.   end
  73.  
  74. # 定義結束
  75. end





点评

你最好把完整的仓库系统脚本贴出来,只有 Window_WarehouseCommand别人是无法告诉你错哪了!  发表于 2013-7-20 10:56

Lv2.观梦者

梦石
0
星屑
585
在线时间
923 小时
注册时间
2011-5-11
帖子
438
2
发表于 2013-7-20 19:43:19 | 只看该作者
脚本测试没问题,可能是你脚本存放顺序不对
顺序由上至下  如下:
Game_Party
Window_WarehouseCommand
Window_WarehouseItemSave
Window_WarehouseNumber
Scene_Warehouse
http://rpg.blue/static/image/smiley/yct/A059.gif中国字认识都不到一半,哪的心情学英语呀!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
52
在线时间
135 小时
注册时间
2011-11-5
帖子
83
3
 楼主| 发表于 2013-7-21 10:10:02 | 只看该作者
345912390 发表于 2013-7-20 19:43
脚本测试没问题,可能是你脚本存放顺序不对
顺序由上至下  如下:
Game_Party

改過了,沒用

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
585
在线时间
923 小时
注册时间
2011-5-11
帖子
438
4
发表于 2013-7-21 10:41:08 | 只看该作者
本帖最后由 345912390 于 2013-7-21 10:45 编辑
ji3rul4coco 发表于 2013-7-21 10:10
改過了,沒用


你可能用了强化脚本之类东西,生成了新的物品数据。这是原脚本的BUG用以下脚本替换原仓库脚本中的[Game_Party]部分
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Game_Party
  4. #------------------------------------------------------------------------------
  5. #  管理隊伍的類。保存有金錢及物品的信息。本類的實例請參考 $game_party 。
  6. #==============================================================================

  7. class Game_Party < Game_Unit
  8. alias o_initialize initialize
  9.   #--------------------------------------------------------------------------
  10.   # ● 追加:倉庫物品儲存
  11.   #--------------------------------------------------------------------------
  12.   def initialize
  13.     o_initialize
  14.     @warehouse_weapons = []
  15.     @warehouse_items = []
  16.     @warehouse_armors = []
  17.     ware_build
  18.   end
  19.   #初始化倉庫,并兼容脚本生成新物品
  20.   def ware_build
  21.     # 初始化倉庫 : 防具
  22.     if @warehouse_armors.size<$data_armors.size
  23.       for i in @warehouse_armors.size...$data_armors.size
  24.         @warehouse_armors.push($data_armors[i])
  25.         @warehouse_armors[i] = 0
  26.       end
  27.     end
  28.     # 初始化倉庫 : 物品
  29.     if @warehouse_items.size<$data_weapons.size
  30.       for i in @warehouse_items.size...$data_items.size
  31.         @warehouse_items.push($data_items[i])
  32.         @warehouse_items[i] = 0
  33.       end
  34.     end
  35.     # 初始化倉庫 : 武器
  36.     if @warehouse_weapons.size<$data_weapons.size
  37.       for i in @warehouse_weapons.size...$data_weapons.size
  38.         @warehouse_weapons.push($data_weapons[i])
  39.         @warehouse_weapons[i] = 0
  40.       end
  41.     end
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 追加:添加進倉庫
  45.   #--------------------------------------------------------------------------
  46.   def ware_add(item,num)
  47.     case item
  48.     when RPG::Item
  49.       @warehouse_items[item.id] += num
  50.     when RPG::Weapon
  51.       @warehouse_weapons[item.id] += num
  52.     when RPG::Armor
  53.       @warehouse_armors[item.id] += num
  54.     end
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● 追加:查詢倉庫物品個數
  58.   #--------------------------------------------------------------------------
  59.   def ware_num(item)
  60.     ware_build
  61.     case item
  62.     when RPG::Item
  63.       return @warehouse_items[item.id]
  64.     when RPG::Weapon
  65.       return @warehouse_weapons[item.id]
  66.     when RPG::Armor
  67.       return @warehouse_armors[item.id]
  68.     end
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   # ● 追加:刪除倉庫物品
  72.   #--------------------------------------------------------------------------
  73.   def ware_del(item,num)
  74.     case item
  75.     when RPG::Item
  76.       @warehouse_items[item.id] -= num
  77.     when RPG::Weapon
  78.       @warehouse_weapons[item.id] -= num
  79.     when RPG::Armor
  80.       @warehouse_armors[item.id] -= num
  81.     end
  82.   end

  83. # 定義結束
  84. end
复制代码

评分

参与人数 1星屑 +100 收起 理由
Mic_洛洛 + 100 感谢回复!

查看全部评分

http://rpg.blue/static/image/smiley/yct/A059.gif中国字认识都不到一半,哪的心情学英语呀!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
40
在线时间
2 小时
注册时间
2018-5-1
帖子
1
5
发表于 2018-5-7 19:26:23 | 只看该作者
感謝大大,希望對我有用
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 06:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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