Project1

标题: 【恢复帖子】可使用武器和防具 [打印本页]

作者: yangff    时间: 2007-12-16 18:27
标题: 【恢复帖子】可使用武器和防具
不好意思...
你恢复得有点仓促哦,大半帖子都遗失掉了...
                                       BY 绿
最近玩一款很老的游戏“光明与黑暗”时候想到的效果。
比如使用恶魔戒指可以放火雨,使用光之剑可以发三级雷,暗之剑即死之类的东东~~~
当初设想时候思路很简单...
可是实现起来却远远比想象要难的多....
感觉这脚本有些“偷天换日”的样子呢....
  1. #=========================================================================
  2. #可使用武器和防具 BY绿发的Eclair~~~
  3. #=========================================================================
  4. #使用方法:在数据库最后一页添加两个属性,“可使用武器”和“可使用防具”。
  5. #把要做成可使用武器或者防具的东东分别购上这两个属性~~~
  6. #然后在物品里面设定一个与想要做可使用武器或防具的东东名字相同的物品,并且设
  7. #定好使用的效果。就可以了。
  8. #得到可使用武器或防具的时候,自动获得名字相同的物品,获得物品的时候也会同时
  9. #得到名字一样的武器和防具了,可以使用的武器和防具不在默认的“物品”里面显示
  10. #看起来就象只有一个的样子~~~ *^_^*
  11. #战斗中,装备可使用的武器或者防具的队员可以使用能用的武器或防具,如果武器或
  12. #防具关联的物品为消耗品而且可以使用的仅剩下该角色的装备,装备会坏掉~~
  13. #另外....冲突性较高....
  14. #=========================================================================
  15. module RPG
  16. class Weapon
  17. #=========================================================================
  18. #是否关联物品
  19. #=========================================================================
  20. def chain
  21.   @chain = false
  22.   return false if !@element_set.include?($data_system.elements.index("可使用武器"))
  23.   for i in 1...$data_items.size
  24.   @chain |= $data_items[i].name == @name
  25.   end
  26. return @chain
  27. end
  28. #==========================================================================
  29. #关联物品id判定
  30. #==========================================================================
  31. def chain_id
  32.   @chain_id = 0
  33.   return 0 if !chain
  34.   for i in 1...$data_items.size
  35.   @chain_id = $data_items[i].id if $data_items[i].name == @name
  36.   end
  37.   return @chain_id
  38. end
  39. end
  40. end

  41. module RPG
  42. class Armor
  43. #=========================================================================
  44. #是否关联物品
  45. #=========================================================================
  46. def chain
  47.   @chain = false
  48.   return false if !@guard_element_set.include?($data_system.elements.index("可使用防具"))
  49.   for i in 1...$data_items.size
  50.   @chain |= $data_items[i].name == @name
  51.   end
  52. return @chain
  53. end
  54. #==========================================================================
  55. #关联物品id判定
  56. #==========================================================================
  57. def chain_id
  58.   @chain_id = 0
  59.   return 0 if !chain
  60.   for i in 1...$data_items.size
  61.   @chain_id = $data_items[i].id if $data_items[i].name == @name
  62.   end
  63.   return @chain_id
  64. end
  65. end
  66. end
  67. #==============================================================================
  68. # ■ Game_Party
  69. #------------------------------------------------------------------------------
  70. #  处理同伴的类。包含金钱以及物品的信息。本类的实例
  71. # 请参考 $game_party。
  72. #==============================================================================

  73. class Game_Party
  74. #--------------------------------------------------------------------------
  75. # ● 获取物品的所持数
  76. #     item_id : 物品 ID
  77. #--------------------------------------------------------------------------
  78.   def item_number(item_id)
  79. if $game_temp.in_battle
  80.   for i in 0...5
  81.     if make_chain(i) == item_id and make_chain(i) != 0
  82.       if [email protected]?(item_id)
  83.         return 1
  84.       else
  85.         return [@items[item_id] + 1,99].min
  86.       end
  87.     end
  88.   end
  89.    return @items.include?(item_id) ? @items[item_id] : 0
  90. end
  91.     # 如果 hash 个数数值不存在就返回 0
  92.     return @items.include?(item_id) ? @items[item_id] : 0
  93.   end
  94.   #======================================================================
  95.   #取得角色关联装备关联道具id
  96.   #======================================================================
  97.   def make_chain(type)
  98.     a = 0
  99.     case type  
  100.     when 0
  101.      $scene.active_battler.weapon_id != 0 ? a = $data_weapons[$scene.active_battler.weapon_id].chain_id : a = 0
  102.     when 1
  103.      $scene.active_battler.armor1_id != 0 ? a = $data_armors[$scene.active_battler.armor1_id].chain_id : a = 0
  104.     when 2
  105.      $scene.active_battler.armor2_id != 0 ? a = $data_armors[$scene.active_battler.armor2_id].chain_id : a = 0
  106.     when 3
  107.      $scene.active_battler.armor3_id != 0 ? a = $data_armors[$scene.active_battler.armor3_id].chain_id : a = 0
  108.      when 4
  109.      $scene.active_battler.armor4_id != 0 ? a = $data_armors[$scene.active_battler.armor4_id].chain_id : a = 0
  110.    end
  111.    return a
  112. end
  113.   #--------------------------------------------------------------------------
  114.   # ● 增加物品 (减少)
  115.   #     item_id : 物品 ID
  116.   #     n       : 个数
  117.   #--------------------------------------------------------------------------
  118.   def gain_item(item_id, n)
  119.     # 更新 hash 的个数数据
  120.     use = 0
  121.     if item_id > 0
  122.       if @items.include?(item_id)
  123.         use = @items[item_id]
  124.       else
  125.         use = 0
  126.       end
  127.       
  128.       @items[item_id] = [[use + n, 0].max, 99].min
  129.     for i in 1...$data_weapons.size
  130.       if $data_weapons[i].chain_id == item_id
  131.       @weapons[i] = [[weapon_number(i) + n, 0].max, 99].min
  132.       end
  133.     end
  134.     for j in 1...$data_armors.size
  135.       if $data_armors[j].chain_id == item_id
  136.       @armors[j] = [[armor_number(j) + n, 0].max, 99].min
  137.       end
  138.     end
  139.     end
  140.    end
  141.   #--------------------------------------------------------------------------
  142.   # ● 增加防具 (减少)
  143.   #     armor_id : 防具 ID
  144.   #     n        : 个数
  145.   #--------------------------------------------------------------------------
  146.   def gain_armor(armor_id, n)
  147.     # 更新 hash 的个数数据
  148.     if armor_id > 0
  149.       @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min
  150.       if $data_armors[armor_id].chain_id != 0
  151.         @items[$data_armors[armor_id].chain_id] = [[item_number($data_armors[armor_id].chain_id) + n, 0].max, 99].min
  152.       end
  153.     end
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ● 增加武器 (减少)
  157.   #     weapon_id : 武器 ID
  158.   #     n         : 个数
  159.   #--------------------------------------------------------------------------
  160.   def gain_weapon(weapon_id, n)
  161.     # 更新 hash 的个数数据
  162.     if weapon_id > 0
  163.       @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
  164.       if $data_weapons[weapon_id].chain_id != 0
  165.         @items[$data_weapons[weapon_id].chain_id] = [[item_number($data_weapons[weapon_id].chain_id) + n, 0].max, 99].min
  166.       end
  167.     end
  168. end
  169. end
  170. class Scene_Battle
  171.   def active_battler
  172.     return @active_battler
  173.   end
  174.   #--------------------------------------------------------------------------
  175.   # ● 生成物品行动结果
  176.   #--------------------------------------------------------------------------
  177.   def make_item_action_result
  178.     # 获取物品
  179.     @item = $data_items[@active_battler.current_action.item_id]
  180.     # 因为物品耗尽而无法使用的情况下
  181.     unless $game_party.item_can_use?(@item.id)
  182.       # 移至步骤 1
  183.       @phase4_step = 1
  184.       return
  185.     end
  186.     # 消耗品的情况下
  187.     if @item.consumable
  188.       # 使用的物品减 1
  189.       $game_party.lose_item(@item.id, 1)
  190.       
  191.     if @active_battler.weapon_id != 0
  192.       if $data_weapons[@active_battler.weapon_id].chain_id == @item.id and $game_party.item_number(@item.id) == 1
  193.         @help_window.set_text("#{@active_battler.name}"+"的"+$data_system.words.weapon+"#{$data_weapons[@active_battler.weapon_id].name}"+"坏了....",1)
  194.         for i in 0...40
  195.           @spriteset.update
  196.           Graphics.update
  197.         end
  198.         @active_battler.equip(0, 0)
  199.         $game_party.lose_item(@item.id, 2)
  200.         end
  201.     end
  202.       
  203.     if @active_battler.armor1_id != 0
  204.       if $data_armors[@active_battler.armor1_id].chain_id == @item.id and $game_party.item_number(@item.id) == 1
  205.         @help_window.set_text("#{@active_battler.name}"+"的" +$data_system.words.armor1+"#{$data_armors[@active_battler.armor1_id].name}"+"坏了....",1)
  206.           for i in 0...40
  207.             @spriteset.update
  208.           Graphics.update
  209.         end
  210.         @active_battler.equip(1, 0)
  211.         $game_party.lose_item(@item.id, 2)
  212.       end  
  213.     end   
  214.   

  215.     if @active_battler.armor2_id != 0
  216.       if $data_armors[@active_battler.armor2_id].chain_id == @item.id and $game_party.item_number(@item.id) == 1
  217.         @help_window.set_text("#{@active_battler.name}"+"的" +$data_system.words.armor2+"#{$data_armors[@active_battler.armor2_id].name}"+"坏了....",1)
  218.         for i in 0...40
  219.           @spriteset.update
  220.           Graphics.update
  221.         end
  222.         @active_battler.equip(2, 0)
  223.         $game_party.lose_item(@item.id, 2)
  224.       end  
  225.     end   

  226.   
  227.     if @active_battler.armor3_id != 0
  228.       if $data_armors[@active_battler.armor3_id].chain_id == @item.id and $game_party.item_number(@item.id) == 1
  229.         @help_window.set_text("#{@active_battler.name}"+"的" +$data_system.words.armor3+"#{$data_armors[@active_battler.armor3_id].name}"+"坏了....",1)
  230.         for i in 0...40
  231.           @spriteset.update
  232.           Graphics.update
  233.         end
  234.         @active_battler.equip(3, 0)
  235.         $game_party.lose_item(@item.id, 2)
  236.       end  
  237.     end   
  238.   
  239.   
  240.      if @active_battler.armor4_id != 0
  241.       if $data_armors[@active_battler.armor4_id].chain_id == @item.id and $game_party.item_number(@item.id) == 1
  242.         @help_window.set_text("#{@active_battler.name}"+"的" +$data_system.words.armor4+"#{$data_armors[@active_battler.armor4_id].name}"+"坏了....",1)
  243.                 for i in 0...40
  244.          @spriteset.update
  245.           Graphics.update
  246.         end
  247.         @active_battler.equip(4, 0)
  248.         $game_party.lose_item(@item.id, 2)
  249.       end  
  250.     end   
  251.    
  252.   end   
  253.     # 在帮助窗口显示物品名
  254.     @help_window.set_text(@item.name, 1)
  255.     # 设置动画 ID
  256.     @animation1_id = @item.animation1_id
  257.     @animation2_id = @item.animation2_id
  258.     # 设置公共事件 ID
  259.     @common_event_id = @item.common_event_id
  260.     # 确定对像
  261.     index = @active_battler.current_action.target_index
  262.     target = $game_party.smooth_target_actor(index)
  263.     # 设置对像侧战斗者
  264.     set_target_battlers(@item.scope)
  265.     # 应用物品效果
  266.     for target in @target_battlers
  267.       target.item_effect(@item)
  268.     end
  269.   end
  270. end
  271. #==============================================================================
  272. # ■ Window_Item
  273. #------------------------------------------------------------------------------
  274. #  物品画面、战斗画面、显示浏览物品的窗口。
  275. #==============================================================================

  276. class Window_Item < Window_Selectable
  277.   #--------------------------------------------------------------------------
  278.   # ● 刷新
  279.   #--------------------------------------------------------------------------
  280.   def refresh
  281.     if self.contents != nil
  282.       self.contents.dispose
  283.       self.contents = nil
  284.     end
  285.     @data = []
  286.     # 添加报务
  287.     for i in 1...$data_items.size
  288.       if $game_party.item_number(i) > 0
  289.         @data.push($data_items[i])
  290.       end
  291.     end
  292.     # 在战斗中以外添加武器、防具
  293.     unless $game_temp.in_battle
  294.       for i in 1...$data_weapons.size
  295.         if $game_party.weapon_number(i) > 0 #and !$data_weapons[i].chain || $data_weapons[i].chain_id == 0
  296.           @data.push($data_weapons[i])
  297.         end
  298.       end
  299.       for i in 1...$data_armors.size
  300.         if $game_party.armor_number(i) > 0 #and !$data_armors[i].chain || $data_armors[i].chain_id == 0
  301.           @data.push($data_armors[i])
  302.         end
  303.       end
  304.     end
  305.     # 如果项目数不是 0 就生成位图、重新描绘全部项目
  306.     @item_max = @data.size
  307.     if @item_max > 0
  308.       self.contents = Bitmap.new(width - 32, row_max * 32)
  309.       for i in 0...@item_max
  310.         draw_item(i)
  311.       end
  312.     end
  313.   end
  314. end
复制代码

可爱的小范例:http://rpg.blue/upload_program/files/使用武器e.rar

作者: yangff    时间: 2007-12-16 18:27
标题: 【恢复帖子】可使用武器和防具
不好意思...
你恢复得有点仓促哦,大半帖子都遗失掉了...
                                       BY 绿
最近玩一款很老的游戏“光明与黑暗”时候想到的效果。
比如使用恶魔戒指可以放火雨,使用光之剑可以发三级雷,暗之剑即死之类的东东~~~
当初设想时候思路很简单...
可是实现起来却远远比想象要难的多....
感觉这脚本有些“偷天换日”的样子呢....
  1. #=========================================================================
  2. #可使用武器和防具 BY绿发的Eclair~~~
  3. #=========================================================================
  4. #使用方法:在数据库最后一页添加两个属性,“可使用武器”和“可使用防具”。
  5. #把要做成可使用武器或者防具的东东分别购上这两个属性~~~
  6. #然后在物品里面设定一个与想要做可使用武器或防具的东东名字相同的物品,并且设
  7. #定好使用的效果。就可以了。
  8. #得到可使用武器或防具的时候,自动获得名字相同的物品,获得物品的时候也会同时
  9. #得到名字一样的武器和防具了,可以使用的武器和防具不在默认的“物品”里面显示
  10. #看起来就象只有一个的样子~~~ *^_^*
  11. #战斗中,装备可使用的武器或者防具的队员可以使用能用的武器或防具,如果武器或
  12. #防具关联的物品为消耗品而且可以使用的仅剩下该角色的装备,装备会坏掉~~
  13. #另外....冲突性较高....
  14. #=========================================================================
  15. module RPG
  16. class Weapon
  17. #=========================================================================
  18. #是否关联物品
  19. #=========================================================================
  20. def chain
  21.   @chain = false
  22.   return false if !@element_set.include?($data_system.elements.index("可使用武器"))
  23.   for i in 1...$data_items.size
  24.   @chain |= $data_items[i].name == @name
  25.   end
  26. return @chain
  27. end
  28. #==========================================================================
  29. #关联物品id判定
  30. #==========================================================================
  31. def chain_id
  32.   @chain_id = 0
  33.   return 0 if !chain
  34.   for i in 1...$data_items.size
  35.   @chain_id = $data_items[i].id if $data_items[i].name == @name
  36.   end
  37.   return @chain_id
  38. end
  39. end
  40. end

  41. module RPG
  42. class Armor
  43. #=========================================================================
  44. #是否关联物品
  45. #=========================================================================
  46. def chain
  47.   @chain = false
  48.   return false if !@guard_element_set.include?($data_system.elements.index("可使用防具"))
  49.   for i in 1...$data_items.size
  50.   @chain |= $data_items[i].name == @name
  51.   end
  52. return @chain
  53. end
  54. #==========================================================================
  55. #关联物品id判定
  56. #==========================================================================
  57. def chain_id
  58.   @chain_id = 0
  59.   return 0 if !chain
  60.   for i in 1...$data_items.size
  61.   @chain_id = $data_items[i].id if $data_items[i].name == @name
  62.   end
  63.   return @chain_id
  64. end
  65. end
  66. end
  67. #==============================================================================
  68. # ■ Game_Party
  69. #------------------------------------------------------------------------------
  70. #  处理同伴的类。包含金钱以及物品的信息。本类的实例
  71. # 请参考 $game_party。
  72. #==============================================================================

  73. class Game_Party
  74. #--------------------------------------------------------------------------
  75. # ● 获取物品的所持数
  76. #     item_id : 物品 ID
  77. #--------------------------------------------------------------------------
  78.   def item_number(item_id)
  79. if $game_temp.in_battle
  80.   for i in 0...5
  81.     if make_chain(i) == item_id and make_chain(i) != 0
  82.       if [email protected]?(item_id)
  83.         return 1
  84.       else
  85.         return [@items[item_id] + 1,99].min
  86.       end
  87.     end
  88.   end
  89.    return @items.include?(item_id) ? @items[item_id] : 0
  90. end
  91.     # 如果 hash 个数数值不存在就返回 0
  92.     return @items.include?(item_id) ? @items[item_id] : 0
  93.   end
  94.   #======================================================================
  95.   #取得角色关联装备关联道具id
  96.   #======================================================================
  97.   def make_chain(type)
  98.     a = 0
  99.     case type  
  100.     when 0
  101.      $scene.active_battler.weapon_id != 0 ? a = $data_weapons[$scene.active_battler.weapon_id].chain_id : a = 0
  102.     when 1
  103.      $scene.active_battler.armor1_id != 0 ? a = $data_armors[$scene.active_battler.armor1_id].chain_id : a = 0
  104.     when 2
  105.      $scene.active_battler.armor2_id != 0 ? a = $data_armors[$scene.active_battler.armor2_id].chain_id : a = 0
  106.     when 3
  107.      $scene.active_battler.armor3_id != 0 ? a = $data_armors[$scene.active_battler.armor3_id].chain_id : a = 0
  108.      when 4
  109.      $scene.active_battler.armor4_id != 0 ? a = $data_armors[$scene.active_battler.armor4_id].chain_id : a = 0
  110.    end
  111.    return a
  112. end
  113.   #--------------------------------------------------------------------------
  114.   # ● 增加物品 (减少)
  115.   #     item_id : 物品 ID
  116.   #     n       : 个数
  117.   #--------------------------------------------------------------------------
  118.   def gain_item(item_id, n)
  119.     # 更新 hash 的个数数据
  120.     use = 0
  121.     if item_id > 0
  122.       if @items.include?(item_id)
  123.         use = @items[item_id]
  124.       else
  125.         use = 0
  126.       end
  127.       
  128.       @items[item_id] = [[use + n, 0].max, 99].min
  129.     for i in 1...$data_weapons.size
  130.       if $data_weapons[i].chain_id == item_id
  131.       @weapons[i] = [[weapon_number(i) + n, 0].max, 99].min
  132.       end
  133.     end
  134.     for j in 1...$data_armors.size
  135.       if $data_armors[j].chain_id == item_id
  136.       @armors[j] = [[armor_number(j) + n, 0].max, 99].min
  137.       end
  138.     end
  139.     end
  140.    end
  141.   #--------------------------------------------------------------------------
  142.   # ● 增加防具 (减少)
  143.   #     armor_id : 防具 ID
  144.   #     n        : 个数
  145.   #--------------------------------------------------------------------------
  146.   def gain_armor(armor_id, n)
  147.     # 更新 hash 的个数数据
  148.     if armor_id > 0
  149.       @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min
  150.       if $data_armors[armor_id].chain_id != 0
  151.         @items[$data_armors[armor_id].chain_id] = [[item_number($data_armors[armor_id].chain_id) + n, 0].max, 99].min
  152.       end
  153.     end
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ● 增加武器 (减少)
  157.   #     weapon_id : 武器 ID
  158.   #     n         : 个数
  159.   #--------------------------------------------------------------------------
  160.   def gain_weapon(weapon_id, n)
  161.     # 更新 hash 的个数数据
  162.     if weapon_id > 0
  163.       @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
  164.       if $data_weapons[weapon_id].chain_id != 0
  165.         @items[$data_weapons[weapon_id].chain_id] = [[item_number($data_weapons[weapon_id].chain_id) + n, 0].max, 99].min
  166.       end
  167.     end
  168. end
  169. end
  170. class Scene_Battle
  171.   def active_battler
  172.     return @active_battler
  173.   end
  174.   #--------------------------------------------------------------------------
  175.   # ● 生成物品行动结果
  176.   #--------------------------------------------------------------------------
  177.   def make_item_action_result
  178.     # 获取物品
  179.     @item = $data_items[@active_battler.current_action.item_id]
  180.     # 因为物品耗尽而无法使用的情况下
  181.     unless $game_party.item_can_use?(@item.id)
  182.       # 移至步骤 1
  183.       @phase4_step = 1
  184.       return
  185.     end
  186.     # 消耗品的情况下
  187.     if @item.consumable
  188.       # 使用的物品减 1
  189.       $game_party.lose_item(@item.id, 1)
  190.       
  191.     if @active_battler.weapon_id != 0
  192.       if $data_weapons[@active_battler.weapon_id].chain_id == @item.id and $game_party.item_number(@item.id) == 1
  193.         @help_window.set_text("#{@active_battler.name}"+"的"+$data_system.words.weapon+"#{$data_weapons[@active_battler.weapon_id].name}"+"坏了....",1)
  194.         for i in 0...40
  195.           @spriteset.update
  196.           Graphics.update
  197.         end
  198.         @active_battler.equip(0, 0)
  199.         $game_party.lose_item(@item.id, 2)
  200.         end
  201.     end
  202.       
  203.     if @active_battler.armor1_id != 0
  204.       if $data_armors[@active_battler.armor1_id].chain_id == @item.id and $game_party.item_number(@item.id) == 1
  205.         @help_window.set_text("#{@active_battler.name}"+"的" +$data_system.words.armor1+"#{$data_armors[@active_battler.armor1_id].name}"+"坏了....",1)
  206.           for i in 0...40
  207.             @spriteset.update
  208.           Graphics.update
  209.         end
  210.         @active_battler.equip(1, 0)
  211.         $game_party.lose_item(@item.id, 2)
  212.       end  
  213.     end   
  214.   

  215.     if @active_battler.armor2_id != 0
  216.       if $data_armors[@active_battler.armor2_id].chain_id == @item.id and $game_party.item_number(@item.id) == 1
  217.         @help_window.set_text("#{@active_battler.name}"+"的" +$data_system.words.armor2+"#{$data_armors[@active_battler.armor2_id].name}"+"坏了....",1)
  218.         for i in 0...40
  219.           @spriteset.update
  220.           Graphics.update
  221.         end
  222.         @active_battler.equip(2, 0)
  223.         $game_party.lose_item(@item.id, 2)
  224.       end  
  225.     end   

  226.   
  227.     if @active_battler.armor3_id != 0
  228.       if $data_armors[@active_battler.armor3_id].chain_id == @item.id and $game_party.item_number(@item.id) == 1
  229.         @help_window.set_text("#{@active_battler.name}"+"的" +$data_system.words.armor3+"#{$data_armors[@active_battler.armor3_id].name}"+"坏了....",1)
  230.         for i in 0...40
  231.           @spriteset.update
  232.           Graphics.update
  233.         end
  234.         @active_battler.equip(3, 0)
  235.         $game_party.lose_item(@item.id, 2)
  236.       end  
  237.     end   
  238.   
  239.   
  240.      if @active_battler.armor4_id != 0
  241.       if $data_armors[@active_battler.armor4_id].chain_id == @item.id and $game_party.item_number(@item.id) == 1
  242.         @help_window.set_text("#{@active_battler.name}"+"的" +$data_system.words.armor4+"#{$data_armors[@active_battler.armor4_id].name}"+"坏了....",1)
  243.                 for i in 0...40
  244.          @spriteset.update
  245.           Graphics.update
  246.         end
  247.         @active_battler.equip(4, 0)
  248.         $game_party.lose_item(@item.id, 2)
  249.       end  
  250.     end   
  251.    
  252.   end   
  253.     # 在帮助窗口显示物品名
  254.     @help_window.set_text(@item.name, 1)
  255.     # 设置动画 ID
  256.     @animation1_id = @item.animation1_id
  257.     @animation2_id = @item.animation2_id
  258.     # 设置公共事件 ID
  259.     @common_event_id = @item.common_event_id
  260.     # 确定对像
  261.     index = @active_battler.current_action.target_index
  262.     target = $game_party.smooth_target_actor(index)
  263.     # 设置对像侧战斗者
  264.     set_target_battlers(@item.scope)
  265.     # 应用物品效果
  266.     for target in @target_battlers
  267.       target.item_effect(@item)
  268.     end
  269.   end
  270. end
  271. #==============================================================================
  272. # ■ Window_Item
  273. #------------------------------------------------------------------------------
  274. #  物品画面、战斗画面、显示浏览物品的窗口。
  275. #==============================================================================

  276. class Window_Item < Window_Selectable
  277.   #--------------------------------------------------------------------------
  278.   # ● 刷新
  279.   #--------------------------------------------------------------------------
  280.   def refresh
  281.     if self.contents != nil
  282.       self.contents.dispose
  283.       self.contents = nil
  284.     end
  285.     @data = []
  286.     # 添加报务
  287.     for i in 1...$data_items.size
  288.       if $game_party.item_number(i) > 0
  289.         @data.push($data_items[i])
  290.       end
  291.     end
  292.     # 在战斗中以外添加武器、防具
  293.     unless $game_temp.in_battle
  294.       for i in 1...$data_weapons.size
  295.         if $game_party.weapon_number(i) > 0 #and !$data_weapons[i].chain || $data_weapons[i].chain_id == 0
  296.           @data.push($data_weapons[i])
  297.         end
  298.       end
  299.       for i in 1...$data_armors.size
  300.         if $game_party.armor_number(i) > 0 #and !$data_armors[i].chain || $data_armors[i].chain_id == 0
  301.           @data.push($data_armors[i])
  302.         end
  303.       end
  304.     end
  305.     # 如果项目数不是 0 就生成位图、重新描绘全部项目
  306.     @item_max = @data.size
  307.     if @item_max > 0
  308.       self.contents = Bitmap.new(width - 32, row_max * 32)
  309.       for i in 0...@item_max
  310.         draw_item(i)
  311.       end
  312.     end
  313.   end
  314. end
复制代码

可爱的小范例:http://rpg.blue/upload_program/files/使用武器e.rar

作者: yangff    时间: 2007-12-16 20:09
TO绿:
OLT GG只能搜索到无图
但是。。。。。。
无图的内容不全
作者: Eclair    时间: 2007-12-16 20:49
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1