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

Project1

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

携带物品限制

 关闭 [复制链接]

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
跳转到指定楼层
1
发表于 2008-1-13 23:38:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
所携带的物品有了限制,就好像负重?

截图:


范例下载
http://rpg.blue/UP_PIC/200801/携带物品限制_80667340.rar


              [本贴由 御灵 于 2008-1-24 22:50:48 进行了编辑]

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
2
 楼主| 发表于 2008-1-13 23:38:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
所携带的物品有了限制,就好像负重?

截图:


范例下载
http://rpg.blue/UP_PIC/200801/携带物品限制_80667340.rar


              [本贴由 御灵 于 2008-1-24 22:50:48 进行了编辑]

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
3
 楼主| 发表于 2008-1-13 23:40:09 | 只看该作者
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. $携带最大数目 = 999

  5. #携带最大数目,可自行设定

  6. $所携带数目 = 0


  7. #==============================================================================
  8. # ■ Window_ItemHelp
  9. #------------------------------------------------------------------------------
  10. #  显示物品分类的信息的窗口。
  11. #==============================================================================

  12. class Window_ItemHelp < Window_Base
  13.   #--------------------------------------------------------------------------
  14.   # ● 初始化对像
  15.   #     actor : 角色
  16.   #--------------------------------------------------------------------------
  17.   def initialize
  18.     super(0, 0, 640, 64)
  19.     self.contents = Bitmap.new(width - 32, height - 32)
  20.     refresh
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # ● 刷新
  24.   #--------------------------------------------------------------------------
  25.   def refresh
  26.     self.contents.clear
  27.     cx = contents.text_size("#{$所携带数目}"+"/"+"#{$携带最大数目}").width
  28.     self.contents.font.color = normal_color
  29.     self.contents.draw_text(605-cx, 0, 640, 32, "#{$所携带数目}"+"/"+"#{$携带最大数目}")
  30.   end
  31. end

  32. class Window_ShopBuy < Window_Selectable
  33.   #--------------------------------------------------------------------------
  34.   # ● 初始化对像
  35.   #     shop_goods : 商品
  36.   #--------------------------------------------------------------------------
  37.   def initialize(shop_goods)
  38.     super(0, 128, 368, 352)
  39.     @shop_goods = shop_goods
  40.     refresh
  41.     self.index = 0
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 获取物品
  45.   #--------------------------------------------------------------------------
  46.   def item
  47.     return @data[self.index]
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 刷新
  51.   #--------------------------------------------------------------------------
  52.   def refresh
  53.     if self.contents != nil
  54.       self.contents.dispose
  55.       self.contents = nil
  56.     end
  57.     @data = []
  58.     for goods_item in @shop_goods
  59.       case goods_item[0]
  60.       when 0
  61.         item = $data_items[goods_item[1]]
  62.       when 1
  63.         item = $data_weapons[goods_item[1]]
  64.       when 2
  65.         item = $data_armors[goods_item[1]]
  66.       end
  67.       if item != nil
  68.         @data.push(item)
  69.       end
  70.     end
  71.     # 如果项目数不是 0 就生成位图、描绘全部项目
  72.     @item_max = @data.size
  73.     if @item_max > 0
  74.       self.contents = Bitmap.new(width - 32, row_max * 32)
  75.       for i in 0...@item_max
  76.         draw_item(i)
  77.       end
  78.     end
  79.   end
  80.   #--------------------------------------------------------------------------
  81.   # ● 描绘羡慕
  82.   #     index : 项目编号
  83.   #--------------------------------------------------------------------------
  84.   def draw_item(index)
  85.     item = @data[index]
  86.     # 获取物品所持数
  87.     case item
  88.     when RPG::Item
  89.       number = $game_party.item_number(item.id)
  90.     when RPG::Weapon
  91.       number = $game_party.weapon_number(item.id)
  92.     when RPG::Armor
  93.       number = $game_party.armor_number(item.id)
  94.     end
  95.     # 价格在所持金以下、并且所持数不是 99 的情况下为普通文字颜色
  96.     # 除此之外的情况设置为无效文字色
  97.     if item.price <= $game_party.gold and number < 99 and $所携带数目 < $携带最大数目
  98.       self.contents.font.color = normal_color
  99.     else
  100.       self.contents.font.color = disabled_color
  101.     end
  102.     x = 4
  103.     y = index * 32
  104.     rect = Rect.new(x, y, self.width - 32, 32)
  105.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  106.     bitmap = RPG::Cache.icon(item.icon_name)
  107.     opacity = self.contents.font.color == normal_color ? 255 : 128
  108.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  109.     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  110.     self.contents.draw_text(x + 240, y, 88, 32, item.price.to_s, 2)
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   # ● 刷新帮助文本
  114.   #--------------------------------------------------------------------------
  115.   def update_help
  116.     if $所携带数目 < $携带最大数目
  117.      @help_window.set_text(self.item == nil ? "" : self.item.description)
  118.    else
  119.     @help_window.set_text("你身上所携带物品已满")
  120.     end
  121.   end
  122. end

  123. class Scene_Shop
  124.   #--------------------------------------------------------------------------
  125.   # ● 主处理
  126.   #--------------------------------------------------------------------------
  127.   def main
  128.     # 生成帮助窗口
  129.     @help_window = Window_Help.new
  130.     ###########################################################################
  131.     @itemhelp_window = Window_ItemHelp.new
  132.    ###########################################################################

  133.     # 生成指令窗口
  134.     @command_window = Window_ShopCommand.new
  135.     # 生成金钱窗口
  136.     @gold_window = Window_Gold.new
  137.     @gold_window.x = 480
  138.     @gold_window.y = 64
  139.     # 生成时间窗口
  140.     @dummy_window = Window_Base.new(0, 128, 640, 352)
  141.     # 生成购买窗口
  142.     @buy_window = Window_ShopBuy.new($game_temp.shop_goods)
  143.     @buy_window.active = false
  144.     @buy_window.visible = false
  145.     @buy_window.help_window = @help_window
  146.     # 生成卖出窗口
  147.     @sell_window = Window_ShopSell.new
  148.     @sell_window.active = false
  149.     @sell_window.visible = false
  150.     @sell_window.help_window = @help_window
  151.     # 生成数量输入窗口
  152.     @number_window = Window_ShopNumber.new
  153.     @number_window.active = false
  154.     @number_window.visible = false
  155.     # 生成状态窗口
  156.     @status_window = Window_ShopStatus.new
  157.     @status_window.visible = false
  158.     # 执行过渡
  159.     Graphics.transition
  160.     # 主循环
  161.     loop do
  162.       # 刷新游戏画面
  163.       Graphics.update
  164.       # 刷新输入信息
  165.       Input.update
  166.       # 刷新画面
  167.       update
  168.       # 如果画面切换的话就中断循环
  169.       if $scene != self
  170.         break
  171.       end
  172.     end
  173.     # 准备过渡
  174.     Graphics.freeze
  175.     # 释放窗口
  176.     @help_window.dispose
  177.     @command_window.dispose
  178.     @gold_window.dispose
  179.     @dummy_window.dispose
  180.     @buy_window.dispose
  181.     @sell_window.dispose
  182.     @number_window.dispose
  183.     @status_window.dispose
  184.     ###########################################################################
  185.     @itemhelp_window.dispose
  186.   ###########################################################################
  187.   end
  188.   #--------------------------------------------------------------------------
  189.   # ● 刷新画面
  190.   #--------------------------------------------------------------------------
  191.   def update
  192.     # 刷新窗口
  193.    
  194.     @help_window.update
  195.     @command_window.update
  196.     @gold_window.update
  197.     @dummy_window.update
  198.     @buy_window.update
  199.     @sell_window.update
  200.     @number_window.update
  201.     @status_window.update
  202.     @itemhelp_window.update
  203.     # 指令窗口激活的情况下: 调用 update_command
  204.     if @command_window.active
  205.       update_command
  206.       return
  207.     end
  208.     # 购买窗口激活的情况下: 调用 update_buy
  209.     if @buy_window.active
  210.       update_buy
  211.       return
  212.     end
  213.     # 卖出窗口激活的情况下: 调用 update_sell
  214.     if @sell_window.active
  215.       update_sell
  216.       return
  217.     end
  218.     # 个数输入窗口激活的情况下: 调用 update_number
  219.     if @number_window.active
  220.       update_number
  221.       return
  222.     end
  223.   end
  224.   #--------------------------------------------------------------------------
  225.   # ● 刷新画面 (指令窗口激活的情况下)
  226.   #--------------------------------------------------------------------------
  227.   def update_command
  228.     # 按下 B 键的情况下
  229.     if Input.trigger?(Input::B)
  230.       # 演奏取消 SE
  231.       $game_system.se_play($data_system.cancel_se)
  232.       # 切换到地图画面
  233.       $scene = Scene_Map.new
  234.       return
  235.     end
  236.     # 按下 C 键的情况下
  237.     if Input.trigger?(Input::C)
  238.       # 命令窗口光标位置分支
  239.       case @command_window.index
  240.       when 0  # 购买
  241.         # 演奏确定 SE
  242.         $game_system.se_play($data_system.decision_se)
  243.         # 窗口状态转向购买模式
  244.         @command_window.active = false
  245.         @dummy_window.visible = false
  246.         @buy_window.active = true
  247.         @buy_window.visible = true
  248.         @buy_window.refresh
  249.         @status_window.visible = true
  250.       when 1  # 卖出
  251.         # 演奏确定 SE
  252.         $game_system.se_play($data_system.decision_se)
  253.         # 窗口状态转向卖出模式
  254.         @command_window.active = false
  255.         @dummy_window.visible = false
  256.         @sell_window.active = true
  257.         @sell_window.visible = true
  258.         @sell_window.refresh
  259.       when 2  # 取消
  260.         # 演奏确定 SE
  261.         $game_system.se_play($data_system.decision_se)
  262.         # 切换到地图画面
  263.         $scene = Scene_Map.new
  264.       end
  265.       return
  266.     end
  267.   end
  268.   #--------------------------------------------------------------------------
  269.   # ● 刷新画面 (购买窗口激活的情况下)
  270.   #--------------------------------------------------------------------------
  271.   def update_buy
  272.     # 设置状态窗口的物品
  273.     @status_window.item = @buy_window.item
  274.     # 按下 B 键的情况下
  275.     if Input.trigger?(Input::B)
  276.       # 演奏取消 SE
  277.       $game_system.se_play($data_system.cancel_se)
  278.       # 窗口状态转向初期模式
  279.       @command_window.active = true
  280.       @dummy_window.visible = true
  281.       @buy_window.active = false
  282.       @buy_window.visible = false
  283.       @status_window.visible = false
  284.       @status_window.item = nil
  285.       # 删除帮助文本
  286.       @help_window.set_text("")
  287.       return
  288.     end
  289.     # 按下 C 键的情况下
  290.     if Input.trigger?(Input::C)
  291.       # 获取物品
  292.       @item = @buy_window.item
  293.       # 物品无效的情况下、或者价格在所持金以上的情况下
  294.       if @item == nil or @item.price > $game_party.gold
  295.         # 演奏冻结 SE
  296.         $game_system.se_play($data_system.buzzer_se)
  297.         return
  298.       end
  299.       # 获取物品所持数
  300.       case @item
  301.       when RPG::Item
  302.         number = $game_party.item_number(@item.id)
  303.       when RPG::Weapon
  304.         number = $game_party.weapon_number(@item.id)
  305.       when RPG::Armor
  306.         number = $game_party.armor_number(@item.id)
  307.       end
  308.       # 如果已经拥有了 99 个情况下
  309.       if number == 99
  310.         # 演奏冻结 SE
  311.         $game_system.se_play($data_system.buzzer_se)
  312.         return
  313.       end
  314.       if $所携带数目 >= $携带最大数目
  315.          $game_system.se_play($data_system.buzzer_se)
  316.         return
  317.       end
  318.       
  319.       # 演奏确定 SE
  320.       $game_system.se_play($data_system.decision_se)
  321.       # 计算可以最多购买的数量
  322.       max = @item.price == 0 ? 99 : $game_party.gold / @item.price
  323.       #max = [max, 99 - number].min
  324.     if $携带最大数目 - $所携带数目 >= 99
  325.         max = [max, 99 - number].min
  326.       else
  327.         max = [max, $携带最大数目 - $所携带数目].min
  328.       end
  329.       
  330.       # 窗口状态转向数值输入模式
  331.       @buy_window.active = false
  332.       @buy_window.visible = false
  333.       @number_window.set(@item, max, @item.price)
  334.       @number_window.active = true
  335.       @number_window.visible = true
  336.     end
  337.   end
  338.   #--------------------------------------------------------------------------
  339.   # ● 画面更新 (卖出窗口激活的情况下)
  340.   #--------------------------------------------------------------------------
  341.   def update_sell
  342.     # 按下 B 键的情况下
  343.     if Input.trigger?(Input::B)
  344.       # 演奏取消 SE
  345.       $game_system.se_play($data_system.cancel_se)
  346.       # 窗口状态转向初期模式
  347.       @command_window.active = true
  348.       @dummy_window.visible = true
  349.       @sell_window.active = false
  350.       @sell_window.visible = false
  351.       @status_window.item = nil
  352.       # 删除帮助文本
  353.       @help_window.set_text("")
  354.       return
  355.     end
  356.     # 按下 C 键的情况下
  357.     if Input.trigger?(Input::C)
  358.       # 获取物品
  359.       @item = @sell_window.item
  360.       # 设置状态窗口的物品
  361.       @status_window.item = @item
  362.       # 物品无效的情况下、或者价格为 0 (不能卖出) 的情况下
  363.       if @item == nil or @item.price == 0
  364.         # 演奏冻结 SE
  365.         $game_system.se_play($data_system.buzzer_se)
  366.         return
  367.       end
  368.       # 演奏确定 SE
  369.       $game_system.se_play($data_system.decision_se)
  370.       # 获取物品的所持数
  371.       case @item
  372.       when RPG::Item
  373.         number = $game_party.item_number(@item.id)
  374.       when RPG::Weapon
  375.         number = $game_party.weapon_number(@item.id)
  376.       when RPG::Armor
  377.         number = $game_party.armor_number(@item.id)
  378.       end
  379.       # 最大卖出个数 = 物品的所持数
  380.       max = number
  381.       # 窗口状态转向个数输入模式
  382.       @sell_window.active = false
  383.       @sell_window.visible = false
  384.       @number_window.set(@item, max, @item.price / 2)
  385.       @number_window.active = true
  386.       @number_window.visible = true
  387.       @status_window.visible = true
  388.     end
  389.   end
  390.   #--------------------------------------------------------------------------
  391.   # ● 刷新画面 (个数输入窗口激活的情况下)
  392.   #--------------------------------------------------------------------------
  393.   def update_number
  394.     # 按下 B 键的情况下
  395.     if Input.trigger?(Input::B)
  396.       # 演奏取消 SE
  397.       $game_system.se_play($data_system.cancel_se)
  398.       # 设置个数输入窗口为不活动·非可视状态
  399.       @number_window.active = false
  400.       @number_window.visible = false
  401.       # 命令窗口光标位置分支
  402.       case @command_window.index
  403.       when 0  # 购买
  404.         # 窗口状态转向购买模式
  405.         @buy_window.active = true
  406.         @buy_window.visible = true
  407.       when 1  # 卖出
  408.         # 窗口状态转向卖出模式
  409.         @sell_window.active = true
  410.         @sell_window.visible = true
  411.         @status_window.visible = false
  412.       end
  413.       return
  414.     end
  415.     # 按下 C 键的情况下
  416.     if Input.trigger?(Input::C)
  417.       # 演奏商店 SE
  418.       $game_system.se_play($data_system.shop_se)
  419.       # 设置个数输入窗口为不活动·非可视状态
  420.       @number_window.active = false
  421.       @number_window.visible = false
  422.       # 命令窗口光标位置分支
  423.       case @command_window.index
  424.       when 0  # 购买
  425.         # 购买处理
  426.         $game_party.lose_gold(@number_window.number * @item.price)
  427.         case @item
  428.         when RPG::Item
  429.           $game_party.gain_item(@item.id, @number_window.number)
  430.         #●●●●●●●●●●●●●●●●●●●●●●●●●●●●
  431.           $所携带数目 += @number_window.number
  432.         #●●●●●●●●●●●●●●●●●●●●●●●●●●●●
  433.         when RPG::Weapon
  434.           $game_party.gain_weapon(@item.id, @number_window.number)
  435.         when RPG::Armor
  436.           $game_party.gain_armor(@item.id, @number_window.number)
  437.         end
  438.         # 刷新各窗口
  439.         @gold_window.refresh
  440.         @buy_window.refresh
  441.         @status_window.refresh
  442.         @itemhelp_window.refresh
  443.         # 窗口状态转向购买模式
  444.         @buy_window.active = true
  445.         @buy_window.visible = true
  446.       when 1  # 卖出
  447.         # 卖出处理
  448.         $game_party.gain_gold(@number_window.number * (@item.price / 2))
  449.         case @item
  450.         when RPG::Item
  451.         #●●●●●●●●●●●●●●●●●●●●●●●●●●●●
  452.           $所携带数目 -= @number_window.number
  453.         #●●●●●●●●●●●●●●●●●●●●●●●●●●●●
  454.           $game_party.lose_item(@item.id, @number_window.number)
  455.         when RPG::Weapon
  456.           $game_party.lose_weapon(@item.id, @number_window.number)
  457.         when RPG::Armor
  458.           $game_party.lose_armor(@item.id, @number_window.number)
  459.         end
  460.         # 刷新各窗口
  461.         @gold_window.refresh
  462.         @sell_window.refresh
  463.         @status_window.refresh
  464.         @itemhelp_window.refresh
  465.         # 窗口状态转向卖出模式
  466.         @sell_window.active = true
  467.         @sell_window.visible = true
  468.         @status_window.visible = false
  469.       end
  470.       return
  471.     end
  472.   end
  473. end
  474. class Scene_Item
  475.   #--------------------------------------------------------------------------
  476.   # ● 主处理
  477.   #--------------------------------------------------------------------------
  478.   def main
  479.     # 生成帮助窗口、物品窗口
  480.     @help_window = Window_Help.new
  481.     @item_window = Window_Item.new
  482.     ###########################################################################
  483.     @itemhelp_window = Window_ItemHelp.new
  484.     ###########################################################################
  485.     # 关联帮助窗口
  486.     @item_window.help_window = @help_window
  487.     # 生成目标窗口 (设置为不可见・不活动)
  488.     @target_window = Window_Target.new
  489.     @target_window.visible = false
  490.     @target_window.active = false
  491.     # 执行过度
  492.     Graphics.transition
  493.     # 主循环
  494.     loop do
  495.       # 刷新游戏画面
  496.       Graphics.update
  497.       # 刷新输入信息
  498.       Input.update
  499.       # 刷新画面
  500.       update
  501.       # 如果画面切换就中断循环
  502.       if $scene != self
  503.         break
  504.       end
  505.     end
  506.     # 装备过渡
  507.     Graphics.freeze
  508.     # 释放窗口
  509.     @help_window.dispose
  510.     @item_window.dispose
  511.     @target_window.dispose
  512.    
  513.     @itemhelp_window.dispose
  514.      
  515.   end
  516.   #--------------------------------------------------------------------------
  517.   # ● 刷新画面
  518.   #--------------------------------------------------------------------------
  519.   def update
  520.     # 刷新窗口
  521.      @itemhelp_window.update
  522.     @help_window.update
  523.     @item_window.update
  524.     @target_window.update
  525.     # 物品窗口被激活的情况下: 调用 update_item
  526.     if @item_window.active
  527.       update_item
  528.       return
  529.     end
  530.     # 目标窗口被激活的情况下: 调用 update_target
  531.     if @target_window.active
  532.       update_target
  533.       return
  534.     end
  535.   end
  536.   #--------------------------------------------------------------------------
  537.   # ● 刷新画面 (物品窗口被激活的情况下)
  538.   #--------------------------------------------------------------------------
  539.   def update_item
  540.     # 按下 B 键的情况下
  541.     if Input.trigger?(Input::B)
  542.       # 演奏取消 SE
  543.       $game_system.se_play($data_system.cancel_se)
  544.       # 切换到菜单画面
  545.       $scene = Scene_Menu.new(0)
  546.       return
  547.     end
  548.     # 按下 C 键的情况下
  549.     if Input.trigger?(Input::C)
  550.       # 获取物品窗口当前选中的物品数据
  551.       @item = @item_window.item
  552.       # 不使用物品的情况下
  553.       unless @item.is_a?(RPG::Item)
  554.         # 演奏冻结 SE
  555.         $game_system.se_play($data_system.buzzer_se)
  556.         return
  557.       end
  558.       # 不能使用的情况下
  559.       unless $game_party.item_can_use?(@item.id)
  560.         # 演奏冻结 SE
  561.         $game_system.se_play($data_system.buzzer_se)
  562.         return
  563.       end
  564.       # 演奏确定 SE
  565.       $game_system.se_play($data_system.decision_se)
  566.       # 效果范围是我方的情况下
  567.       if @item.scope >= 3
  568.         # 激活目标窗口
  569.         @item_window.active = false
  570.         @target_window.x = (@item_window.index + 1) % 2 * 304
  571.         @target_window.visible = true
  572.         @target_window.active = true
  573.         # 设置效果范围 (单体/全体) 的对应光标位置
  574.         if @item.scope == 4 || @item.scope == 6
  575.           @target_window.index = -1
  576.         else
  577.           @target_window.index = 0
  578.         end
  579.       # 效果在我方以外的情况下
  580.       else
  581.         # 公共事件 ID 有效的情况下
  582.         if @item.common_event_id > 0
  583.           # 预约调用公共事件
  584.           $game_temp.common_event_id = @item.common_event_id
  585.           # 演奏物品使用时的 SE
  586.           $game_system.se_play(@item.menu_se)
  587.           # 消耗品的情况下
  588.           if @item.consumable
  589.             # 使用的物品数减 1
  590.             $game_party.lose_item(@item.id, 1)
  591.             
  592.              $所携带数目 -= 1
  593.               # 再描绘物品窗口的项目
  594.              @itemhelp_window.refresh
  595.             # 再描绘物品窗口的项目
  596.             @item_window.draw_item(@item_window.index)
  597.           end
  598.           # 切换到地图画面
  599.           $scene = Scene_Map.new
  600.           return
  601.         end
  602.       end
  603.       return
  604.     end
  605.   end
  606.   #--------------------------------------------------------------------------
  607.   # ● 刷新画面 (目标窗口被激活的情况下)
  608.   #--------------------------------------------------------------------------
  609.   def update_target
  610.     # 按下 B 键的情况下
  611.     if Input.trigger?(Input::B)
  612.       # 演奏取消 SE
  613.       $game_system.se_play($data_system.cancel_se)
  614.       # 由于物品用完而不能使用的场合
  615.       unless $game_party.item_can_use?(@item.id)
  616.         # 再次生成物品窗口的内容
  617.         @item_window.refresh
  618.       end
  619.       # 删除目标窗口
  620.       @item_window.active = true
  621.       @target_window.visible = false
  622.       @target_window.active = false
  623.       return
  624.     end
  625.     # 按下 C 键的情况下
  626.     if Input.trigger?(Input::C)
  627.       # 如果物品用完的情况下
  628.       if $game_party.item_number(@item.id) == 0
  629.         # 演奏冻结 SE
  630.         $game_system.se_play($data_system.buzzer_se)
  631.         return
  632.       end
  633.       # 目标是全体的情况下
  634.       if @target_window.index == -1
  635.         # 对同伴全体应用物品使用效果
  636.         used = false
  637.         for i in $game_party.actors
  638.           used |= i.item_effect(@item)
  639.         end
  640.       end
  641.       # 目标是单体的情况下
  642.       if @target_window.index >= 0
  643.         # 对目标角色应用物品的使用效果
  644.         target = $game_party.actors[@target_window.index]
  645.         used = target.item_effect(@item)
  646.       end
  647.       # 使用物品的情况下
  648.       if used
  649.         # 演奏物品使用时的 SE
  650.         $game_system.se_play(@item.menu_se)
  651.         # 消耗品的情况下
  652.         if @item.consumable
  653.           # 使用的物品数减 1
  654.             $所携带数目 -= 1
  655.             # 再描绘物品窗口的项目
  656.             @itemhelp_window.refresh
  657.           $game_party.lose_item(@item.id, 1)
  658.           # 再描绘物品窗口的项目
  659.           @item_window.draw_item(@item_window.index)
  660.         end
  661.         # 再生成目标窗口的内容
  662.         @target_window.refresh
  663.         # 全灭的情况下
  664.         if $game_party.all_dead?
  665.           # 切换到游戏结束画面
  666.           $scene = Scene_Gameover.new
  667.           return
  668.         end
  669.         # 公共事件 ID 有效的情况下
  670.         if @item.common_event_id > 0
  671.           # 预约调用公共事件
  672.           $game_temp.common_event_id = @item.common_event_id
  673.           # 切换到地图画面
  674.           $scene = Scene_Map.new
  675.           return
  676.         end
  677.       end
  678.       # 无法使用物品的情况下
  679.       unless used
  680.         # 演奏冻结 SE
  681.         $game_system.se_play($data_system.buzzer_se)
  682.       end
  683.       return
  684.     end
  685.   end
  686. end

  687. class Interpreter
  688.   #--------------------------------------------------------------------------
  689.   # ● 增减物品
  690.   #--------------------------------------------------------------------------
  691.   def command_126
  692.     value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  693.     if $所携带数目 >= $携带最大数目
  694.       common_event = $data_common_events[1]
  695.     else
  696.     # 获取要操作的值
  697.      if $所携带数目 + value >= $携带最大数目
  698.       value = $携带最大数目 - $所携带数目
  699.     else
  700.        value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  701.     end
  702.    
  703.     # 增减物品
  704.     $game_party.gain_item(@parameters[0], value)
  705.     # 所有物品所持量
  706.     $所携带数目 += value
  707.     end
  708.     # 继续
  709.     return true
  710.   end
  711. end
  712. #==============================================================================
  713. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  714. #==============================================================================
复制代码
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3304
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

4
发表于 2008-1-14 00:08:19 | 只看该作者
MS6R上有这么个系统……{/hx}
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

5
发表于 2008-1-14 04:46:45 | 只看该作者
$所携带数目存档、读档、登飞机、上火星…………后回¥%#¥%·#
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-28
帖子
340
6
发表于 2008-1-14 05:15:45 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

7
发表于 2008-1-14 17:45:18 | 只看该作者
$所携带数目存档、读档、登飞机、上火星…………后回¥%#¥%·#
这个可以在存档和读档以后dump入存档就对了。
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

8
发表于 2008-1-14 19:46:19 | 只看该作者
以下引用精灵使者于2008-1-14 9:45:18的发言:

$所携带数目存档、读档、登飞机、上火星…………后回¥%#¥%·#
这个可以在存档和读档以后dump入存档就对了。

对~~
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

9
发表于 2008-1-14 19:48:01 | 只看该作者
我的游戏里,宠物的物品数组就存入存档了。效果非常好。
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

10
发表于 2008-1-14 21:32:12 | 只看该作者
以下引用精灵使者于2008-1-14 11:48:00的发言:

我的游戏里,宠物的物品数组就存入存档了。效果非常好。

我的系统直接把$pet(Class Pet)整个存档
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-26 17:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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