Project1

标题: (10.12更新)VX物品和装备等级能力限制系统v1.2 [打印本页]

作者: drgdrg    时间: 2008-8-18 06:46
标题: (10.12更新)VX物品和装备等级能力限制系统v1.2

最新动态:
08.10.12
增加了商店里也能显示限制的插件,感谢 龍狼 提出!见本楼最后插件区
08.10.5
在Kissye姐的帮助下终于找到与装备扩张冲突的解决办法!(见下面兼容性说明)感谢Kissye姐!
08.9.9
增加一个状态栏显示裸体无状态能力值的插件,见本楼最后插件区

--------------------------------------------------------------------
脚本的功能就是 ,可以在数据库里面自定义装备需要 人物的等级、攻击力、防御力、精神、敏捷达到一定值以上才可以使用
新更新的补充脚本,连装备以外的普通物品都可以限制

例如,可以和superufo的 升级手动加点系统 一起使用,根据加点方向决定你能穿起什么装备,使用什么物品
---------------------------------------------------------------------
如果发现BUG请一定指出,谢谢,大概差不多是最终版了
------------------------------------------------------------------------
原来发的这个脚本只有达到一定等级才能装备的功能,貌似火星了,
应回帖同志们要求,做了一些改动,增加了能力限制。

普通物品限制写得好辛苦。。。尤其是战斗中的部分
(下面仅发下牢骚,不想看的略过)
  1. 主要就是战斗中2个难点,第一个是使用物品失败,物品如何不消耗,经过沉影大哥等人的指点加上自己的努力,达成了
  2. 然后是最难的,到底限制的是使用者还是使用目标的问题。限制使用者吧,明显不合实际,战斗中一瓶药能否被喝下去,不是看谁拿出来的,而是看丢给谁喝的。。。所以要限制使用目标才对。但是限制使用目标,又有问题了,你丢个炸弹,难道炸弹还要判断敌人等级够不够才爆炸?再说默认敌人无等级,系统直接报错给你看= =最后折腾了半天,最终还是用了兼顾的办法,让用户自定义该限制那一种,具体见下面第3部分的说明。
复制代码

------------------------------------------------------------------------

使用说明:
1.首先是装备需要一定等级能力才能使用的脚本
将下面脚本插入到MAIN前面:


  1. #============================================================================
  2. #         BY drgdrg  (感谢snstar2006提供的提取[]内容代码)
  3. #定义装备等级限制方法:在数据库装备备注里写上[LV n] ,LV后有空格,n为等级,
  4. #同理,定义装备能力值限制方法:备注里写上[ATK n][DEF n][SPI n][AGI n]。
  5. #若某项限制不写则没有装备限制。
  6. #注意这里限制的能力值是人物原始的能力值,不考虑装备、状态的影响,
  7. #但是考虑事件对能力值的影响。
  8. #==============================================================================
  9. #==============================================================================
  10. # ■ RPG::BaseItem
  11. #==============================================================================
  12. class RPG::BaseItem

  13.   def LVlimit                                         #物品要求最低等级
  14.     m = 0
  15.     self.note.split(/[\r\n]+/).each { |line|
  16.       m = $1.to_i if line =~ /\[LV (\d+)\]/
  17.     }   
  18.     return m
  19.   end
  20.   
  21.   def ATKlimit                                        #物品要求最低个人攻击力
  22.     m = 0
  23.     self.note.split(/[\r\n]+/).each { |line|
  24.       m = $1.to_i if line =~ /\[ATK (\d+)\]/
  25.     }   
  26.     return m
  27.   end
  28.   
  29.   def DEFlimit                                        #物品要求最低个人防御力
  30.     m = 0
  31.     self.note.split(/[\r\n]+/).each { |line|
  32.       m = $1.to_i if line =~ /\[DEF (\d+)\]/
  33.     }   
  34.     return m
  35.   end

  36.   def SPIlimit                                        #物品要求最低个人精神力
  37.     m = 0
  38.     self.note.split(/[\r\n]+/).each { |line|
  39.       m = $1.to_i if line =~ /\[SPI (\d+)\]/
  40.     }   
  41.     return m
  42.   end
  43.   
  44.   def AGIlimit                                        #物品要求最低个人敏捷性
  45.     m = 0
  46.     self.note.split(/[\r\n]+/).each { |line|
  47.       m = $1.to_i if line =~ /\[AGI (\d+)\]/
  48.     }   
  49.     return m
  50.   end  
  51. end



  52. #==============================================================================
  53. # ■ Game_Actor
  54. #------------------------------------------------------------------------------
  55. #  处理角色的类。本类在 Game_Actors 类 ($game_actors)
  56. # 的内部使用、Game_Party 类请参考 ($game_party) 。
  57. #==============================================================================

  58. class Game_Actor < Game_Battler  
  59.   #--------------------------------------------------------------------------
  60.   # ● 判断是否可以装备
  61.   #     item : 物品
  62.   #--------------------------------------------------------------------------
  63.   def equippable?(item)
  64.     return false if self.level < item.LVlimit                     #等级限制
  65.     return false if actor.parameters[2, @level] + @atk_plus < item.ATKlimit                   #攻击力限制
  66.     return false if actor.parameters[3, @level] + @def_plus < item.DEFlimit                   #防御力限制
  67.     return false if actor.parameters[4, @level] + @spi_plus < item.SPIlimit                   #精神力限制   
  68.     return false if actor.parameters[5, @level] + @agi_plus < item.AGIlimit                   #敏捷性限制
  69.     if item.is_a?(RPG::Weapon)
  70.       return self.class.weapon_set.include?(item.id)
  71.     elsif item.is_a?(RPG::Armor)
  72.       return false if two_swords_style and item.kind == 0  
  73.       return self.class.armor_set.include?(item.id)
  74.     end
  75.     return false
  76.   end
  77.   
  78. end

  79. #==============================================================================
  80. # ■ Window_Item
  81. #------------------------------------------------------------------------------
  82. #  物品画面、战斗画面、显示浏览物品的窗口。
  83. #==============================================================================

  84. class Window_Item < Window_Selectable
  85.   #--------------------------------------------------------------------------
  86.   # ● 更新帮助文本(自动显示使用物品的等级能力限制)
  87.   #--------------------------------------------------------------------------
  88.   def update_help
  89.    
  90.     if item != nil
  91.       newdes = item.description
  92.       newdes += "  要求:" if(item.LVlimit !=0 or item.ATKlimit !=0 or item.DEFlimit != 0 or item.SPIlimit != 0 or item.AGIlimit != 0)
  93.       newdes += " LV" + item.LVlimit.to_s    if  item.LVlimit != 0
  94.       newdes += " 攻" + item.ATKlimit.to_s   if  item.ATKlimit != 0
  95.       newdes += " 防" + item.DEFlimit.to_s   if  item.DEFlimit != 0
  96.       newdes += " 精" + item.SPIlimit.to_s   if  item.SPIlimit != 0
  97.       newdes += " 敏" + item.AGIlimit.to_s   if  item.AGIlimit != 0
  98.       @help_window.set_text(newdes)
  99.     else
  100.       @help_window.set_text("")
  101.     end
  102.    
  103.   end
  104. end
复制代码


-------------------------------------------------------

2.然后是数据库设定:
在数据库想要限制装备等级的装备(武器或者防具都行)的备注栏里写上[LV n] ,LV后有空格,n为等级,比如[LV 5]则5级以上(包括5级)才可以装备。不写的话,任何等级都能装备
    同理也可以写上限制的攻击力、防御力、精神、敏捷,
    特别注意的是这里的攻击力、防御力、精神、敏捷 指的是人物本身的能力,考虑事件改变的量,但是不考虑装备、状态提升的量,即裸体无状态值,superufo的加点脚本加的能力值也算在内



----------------------------------------------------------------------
3.新增的普通物品也限制的功能:
  1. =begin
  2. 本脚本作为装备要求等级能力值的补充,使用方法与之类似:
  3. 在数据库物品备注里写上[ATK n][DEF n][SPI n][AGI n] 。

  4. 特别地,为了确定战斗中物品等级能力限制的对象,还可以写上[LMTP n] ,
  5. 意为LimitType(限制类型) ,对己物品默认为1,对敌物品强制为0。
  6.     n = 0,表示限制当前使用物品的人,根据使用者等级能力判断可否使用成功,例如要
  7.            对敌人扔飞刀,不是看敌人够不够强,而是看扔的人会不会(对敌物品均为0)
  8. 默认n = 1,表示限制物品使用目标,例如一瓶药水能否使用成功不是看是谁从包里拿出来
  9.            的而是看喝的人够不够格;
  10.     n = 2,表示以上两者都限制,例如一个加全体战斗力的高级卷轴,使用的人要有足够的法
  11.            力,接受效果的人也要有足够的领悟力。
  12.     n 设为大于2的值,则调整为2
  13. 战斗中对敌物品均限制使用者,菜单中的物品均限制使用目标,所以这两者无需限制类型。

  14. 删去本脚本也不会影响装备要求等级能力值的功能,
  15. 但是删去装备要求等级能力值脚本,本脚本将无法独立运行
  16. =end
  17. #==============================================================================
  18. # ■ RPG::BaseItem
  19. #==============================================================================
  20. class RPG::BaseItem
  21.   def LimitType                                         #物品限制类型
  22.     n = 1
  23.     self.note.split(/[\r\n]+/).each { |line|
  24.       n = $1.to_i if line =~ /\[LMTP (\d+)\]/
  25.     }  
  26.     #数值修正
  27.     n = 0 if !self.is_a?(RPG::Weapon) and !self.is_a?(RPG::Armor) and self.for_opponent?
  28.     n = 2 if n > 2                                      
  29.     return n
  30.   end
  31. end
  32. #==============================================================================
  33. # ■ Window_Item
  34. #------------------------------------------------------------------------------
  35. #  物品画面、战斗画面、显示浏览物品的窗口。
  36. #==============================================================================

  37. class Window_Item < Window_Selectable
  38.   #--------------------------------------------------------------------------
  39.   # ● 更新帮助文本(自动显示使用物品的等级能力限制)
  40.   #--------------------------------------------------------------------------
  41.   def update_help
  42.     if item != nil
  43.      newdes = item.description         
  44.      if(item.LVlimit !=0 or item.ATKlimit !=0 or item.DEFlimit != 0 or item.SPIlimit != 0 or item.AGIlimit != 0)
  45.        newdes += "  要求"
  46.        case item.LimitType
  47.        when 0
  48.          newdes += "使用者:"
  49.        when 1
  50.          newdes += "使用目标:"
  51.        when 2
  52.          newdes += "使用者和目标:"
  53.        end
  54.        newdes += " LV" + item.LVlimit.to_s    if  item.LVlimit != 0
  55.        newdes += " 攻" + item.ATKlimit.to_s   if  item.ATKlimit != 0
  56.        newdes += " 防" + item.DEFlimit.to_s   if  item.DEFlimit != 0
  57.        newdes += " 精" + item.SPIlimit.to_s   if  item.SPIlimit != 0
  58.        newdes += " 敏" + item.AGIlimit.to_s   if  item.AGIlimit != 0
  59.      end
  60.        @help_window.set_text(newdes)
  61.     else
  62.       @help_window.set_text("")
  63.     end
  64.   end
  65. end

  66. #==============================================================================
  67. # ■ Game_Actor
  68. #------------------------------------------------------------------------------
  69. #  处理角色的类。本类在 Game_Actors 类 ($game_actors)
  70. # 的内部使用、Game_Party 类请参考 ($game_party) 。
  71. #==============================================================================

  72. class Game_Actor < Game_Battler  
  73.   #--------------------------------------------------------------------------
  74.   # ● 判断是否可以使用
  75.   #     item : 物品
  76.   #--------------------------------------------------------------------------
  77.   
  78.   def item_useable?(item)
  79.     return false if self.level < item.LVlimit                     #等级限制
  80.     return false if actor.parameters[2, @level] + @atk_plus < item.ATKlimit                   #攻击力限制
  81.     return false if actor.parameters[3, @level] + @def_plus < item.DEFlimit                   #防御力限制
  82.     return false if actor.parameters[4, @level] + @spi_plus < item.SPIlimit                   #精神力限制   
  83.     return false if actor.parameters[5, @level] + @agi_plus < item.AGIlimit                   #敏捷性限制
  84.     return true
  85.   end  
  86. end
  87. #==============================================================================
  88. # ■ Scene_Item
  89. #------------------------------------------------------------------------------
  90. #  处理物品画面的类。
  91. #==============================================================================

  92. class Scene_Item < Scene_Base
  93.   #--------------------------------------------------------------------------
  94.   # ● 确定目标
  95.   #    无效的情况下 (能力不足或者在不能战斗的情况下使用恢复剂) 播放 buzzer 的 SE。
  96.   #--------------------------------------------------------------------------
  97.   def determine_target
  98.     used = false
  99.     if @item.for_all?
  100.       for target in $game_party.members
  101.         target.item_effect(target, @item) if target.item_useable?(@item)
  102.         used = true if ( !target.skipped and target.item_useable?(@item) )
  103.       end
  104.     else
  105.       $game_party.last_target_index = @target_window.index
  106.       target = $game_party.members[@target_window.index]
  107.       target.item_effect(target, @item) if target.item_useable?(@item)
  108.       used = true if ( !target.skipped and target.item_useable?(@item) )
  109.     end
  110.     if used
  111.       use_item_nontarget
  112.     else
  113.       Sound.play_buzzer
  114.     end
  115.   end
  116. end
  117. #==============================================================================
  118. # ■ Scene_Battle
  119. #------------------------------------------------------------------------------
  120. #  处理战斗画面的类。
  121. #==============================================================================

  122. class Scene_Battle < Scene_Base

  123.   #--------------------------------------------------------------------------
  124.   # ● 执行战斗行动 : 物品
  125.   #--------------------------------------------------------------------------
  126.   def execute_action_item
  127.     item = @active_battler.action.item
  128.     text = sprintf(Vocab::UseItem, @active_battler.name, item.name)
  129.     @message_window.add_instant_text(text)
  130.     targets = @active_battler.action.make_targets
  131.     $game_temp.common_event_id = item.common_event_id
  132.     used = false                                                 #是否已使用
  133.     for target in targets
  134.       if item.LimitType == 0
  135.         if @active_battler.item_useable?(item)
  136.           display_animation(targets, item.animation_id) if !used #保证动画最多播一次
  137.           target.item_effect(@active_battler, item)
  138.           display_action_effects(target, item)
  139.           used = true
  140.         else
  141.           Sound.play_buzzer
  142.           Sound.play_buzzer
  143.           Sound.play_buzzer
  144. #          $game_message.texts.push("使用者不合要求,物品使用无效!")
  145.         end
  146.       elsif item.LimitType == 1
  147.          if target.item_useable?(item)
  148.            display_animation(targets, item.animation_id) if !used #保证动画最多播一次
  149.            target.item_effect(@active_battler, item)
  150.            display_action_effects(target, item)
  151.            used = true   
  152.          else
  153.            Sound.play_buzzer
  154. #           $game_message.texts.push("目标不合要求,物品使用无效!")
  155.          end
  156.       elsif item.LimitType == 2
  157.          if (target.item_useable?(item) and @active_battler.item_useable?(item))
  158.            display_animation(targets, item.animation_id) if !used #保证动画最多播一次
  159.            target.item_effect(@active_battler, item)
  160.            display_action_effects(target, item)
  161.            used = true   
  162.          else
  163.            Sound.play_buzzer
  164. #           $game_message.texts.push("使用者或目标不合要求,物品使用无效!")
  165.          end
  166.       else
  167.            Sound.play_buzzer
  168. #           $game_message.texts.push("物品使用无效!")
  169.       end
  170.     end
  171.     if used
  172.       $game_party.consume_item(item)
  173.     end
  174.   end
  175. end
复制代码

本脚本作为装备要求等级能力值的补充,使用方法与之类似:
在数据库物品备注里写上[ATK n][DEF n][SPI n][AGI n] 。

特别地,为了确定战斗中物品等级能力限制的对象,还可以写上[LMTP n] ,
意为LimitType(限制类型) ,对己物品默认为1,对敌物品强制为0。
    n = 0,表示限制当前使用物品的人,根据使用者等级能力判断可否使用成功,例如要
           对敌人扔飞刀,不是看敌人够不够强,而是看扔的人会不会(对敌物品均为0)
默认n = 1,表示限制物品使用目标,例如一瓶药水能否使用成功不是看是谁从包里拿出来
           的而是看喝的人够不够格;
    n = 2,表示以上两者都限制,例如一个加全体战斗力的高级卷轴,使用的人要有足够的法
           力,接受效果的人也要有足够的领悟力。
    n 设为大于2的值,则调整为2
战斗中对敌物品均限制使用者,菜单中的物品均限制使用目标,所以这两者无需限制类型。

删去本脚本不会影响装备要求等级能力值的功能,如果觉得用不到物品限制或者担心这个脚本降低兼容性,可以舍弃。
删去装备要求等级能力值脚本,本脚本将无法独立运行


-------------------------------------------------------------------------

4.兼容性:
(1)装备脚本、物品脚本 与 superufo的 升级手动加点1.0 (从RMXP移植来) 兼容,加点增加的能力值算在人物裸体无状态值里。
(2)装备脚本、物品脚本 与 沉影不器 的 《VX新菜单样式》可兼容
(3)装备脚本、物品脚本 与 superufo 的 《VX版物品分类1.8版》 要达成完全兼容,可以将下面的补丁脚本置于《VX版物品分类1.8版》下方(在范例工程中此补丁也可以在MAIN下面找到,要使用时移动到MAIN上面,《VX版物品分类1.8版》下方即可)
(只使用了装备限制脚本的,请用补丁1,装备和物品脚本都使用了的,请用补丁2)
补丁1:

  1. #=====================================================================
  2. #            装备限制 兼容 物品分类 补丁   by DRG
  3. #=====================================================================
  4. class Harts_Window_ItemList < Window_Selectable
  5.   def update_help
  6.    
  7.     if item != nil
  8.       newdes = item.description
  9.       newdes += "  要求:" if(item.LVlimit !=0 or item.ATKlimit !=0 or item.DEFlimit != 0 or item.SPIlimit != 0 or item.AGIlimit != 0)
  10.       newdes += " LV" + item.LVlimit.to_s    if  item.LVlimit != 0
  11.       newdes += " 攻" + item.ATKlimit.to_s   if  item.ATKlimit != 0
  12.       newdes += " 防" + item.DEFlimit.to_s   if  item.DEFlimit != 0
  13.       newdes += " 精" + item.SPIlimit.to_s   if  item.SPIlimit != 0
  14.       newdes += " 敏" + item.AGIlimit.to_s   if  item.AGIlimit != 0
  15.       @help_window.set_text(newdes)
  16.     end
  17.   end
  18.   
  19. end  
复制代码

补丁2:
  1. #=====================================================================
  2. #            装备物品限制 兼容 物品分类 补丁   by DRG
  3. #=====================================================================
  4. class Harts_Window_ItemList < Window_Selectable
  5.   def update_help
  6.     if item != nil
  7.      newdes = item.description         
  8.      if(item.LVlimit !=0 or item.ATKlimit !=0 or item.DEFlimit != 0 or item.SPIlimit != 0 or item.AGIlimit != 0)
  9.        newdes += "  要求"
  10.        case item.LimitType
  11.        when 0
  12.          newdes += "使用者:"
  13.        when 1
  14.          newdes += "使用目标:"
  15.        when 2
  16.          newdes += "使用者和目标:"
  17.        end
  18.        newdes += " LV" + item.LVlimit.to_s    if  item.LVlimit != 0
  19.        newdes += " 攻" + item.ATKlimit.to_s   if  item.ATKlimit != 0
  20.        newdes += " 防" + item.DEFlimit.to_s   if  item.DEFlimit != 0
  21.        newdes += " 精" + item.SPIlimit.to_s   if  item.SPIlimit != 0
  22.        newdes += " 敏" + item.AGIlimit.to_s   if  item.AGIlimit != 0
  23.      end
  24.        @help_window.set_text(newdes)
  25.     else
  26.       @help_window.set_text("")
  27.     end
  28.   end
  29.   
  30. end  
复制代码


PS:(与本人的脚本无关)《VX新菜单样式》与《VX版物品分类1.8版》要兼容,必须以删去VX新菜单样式中的◎ Scene_Item 部分为代价。。。。


(4)已知与某个装备扩充脚本冲突……
解决方法:
装备等级能力限制脚本请换用这个(其实也就在70行加了一句话)
Kissye姐找到的冲突原因,感谢!!
  1. #============================================================================
  2. #         BY drgdrg  (感谢snstar2006提供的提取[]内容代码)
  3. # 感谢Kissye找到与扩张脚本冲突的解决办法
  4. #定义装备等级限制方法:在数据库装备备注里写上[LV n] ,LV后有空格,n为等级,
  5. #同理,定义装备能力值限制方法:备注里写上[ATK n][DEF n][SPI n][AGI n]。
  6. #若某项限制不写则没有装备限制。
  7. #注意这里限制的能力值是人物原始的能力值,不考虑装备、状态的影响,
  8. #但是考虑事件对能力值的影响。
  9. #==============================================================================
  10. #==============================================================================
  11. # ■ RPG::BaseItem
  12. #==============================================================================
  13. class RPG::BaseItem

  14.   def LVlimit                                         #物品要求最低等级
  15.     m = 0
  16.     self.note.split(/[\r\n]+/).each { |line|
  17.       m = $1.to_i if line =~ /\[LV (\d+)\]/
  18.     }
  19.     return m
  20.   end
  21.   
  22.   def ATKlimit                                        #物品要求最低个人攻击力
  23.     m = 0
  24.     self.note.split(/[\r\n]+/).each { |line|
  25.       m = $1.to_i if line =~ /\[ATK (\d+)\]/
  26.     }   
  27.     return m
  28.   end
  29.   
  30.   def DEFlimit                                        #物品要求最低个人防御力
  31.     m = 0
  32.     self.note.split(/[\r\n]+/).each { |line|
  33.       m = $1.to_i if line =~ /\[DEF (\d+)\]/
  34.     }   
  35.     return m
  36.   end

  37.   def SPIlimit                                        #物品要求最低个人精神力
  38.     m = 0
  39.     self.note.split(/[\r\n]+/).each { |line|
  40.       m = $1.to_i if line =~ /\[SPI (\d+)\]/
  41.     }   
  42.     return m
  43.   end
  44.   
  45.   def AGIlimit                                        #物品要求最低个人敏捷性
  46.     m = 0
  47.     self.note.split(/[\r\n]+/).each { |line|
  48.       m = $1.to_i if line =~ /\[AGI (\d+)\]/
  49.     }   
  50.     return m
  51.   end  
  52. end



  53. #==============================================================================
  54. # ■ Game_Actor
  55. #------------------------------------------------------------------------------
  56. #  处理角色的类。本类在 Game_Actors 类 ($game_actors)
  57. # 的内部使用、Game_Party 类请参考 ($game_party) 。
  58. #==============================================================================

  59. class Game_Actor < Game_Battler  
  60.   #--------------------------------------------------------------------------
  61.   # ● 判断是否可以装备
  62.   #     item : 物品
  63.   #--------------------------------------------------------------------------
  64.   def equippable?(item)
  65.     return false if item.nil?    #加上这句     BY   Kissye
  66.     return false if self.level < item.LVlimit                     #等级限制
  67.     return false if actor.parameters[2, @level] + @atk_plus < item.ATKlimit                   #攻击力限制
  68.     return false if actor.parameters[3, @level] + @def_plus < item.DEFlimit                   #防御力限制
  69.     return false if actor.parameters[4, @level] + @spi_plus < item.SPIlimit                   #精神力限制   
  70.     return false if actor.parameters[5, @level] + @agi_plus < item.AGIlimit                   #敏捷性限制
  71.     if item.is_a?(RPG::Weapon)
  72.       return self.class.weapon_set.include?(item.id)
  73.     elsif item.is_a?(RPG::Armor)
  74.       return false if two_swords_style and item.kind == 0  
  75.       return self.class.armor_set.include?(item.id)
  76.     end
  77.     return false
  78.   end
  79.   
  80. end

  81. #==============================================================================
  82. # ■ Window_Item
  83. #------------------------------------------------------------------------------
  84. #  物品画面、战斗画面、显示浏览物品的窗口。
  85. #==============================================================================

  86. class Window_Item < Window_Selectable
  87.   #--------------------------------------------------------------------------
  88.   # ● 更新帮助文本(自动显示使用物品的等级能力限制)
  89.   #--------------------------------------------------------------------------
  90.   def update_help
  91.    
  92.     if item != nil
  93.       newdes = item.description
  94.       newdes += "  要求:" if(item.LVlimit !=0 or item.ATKlimit !=0 or item.DEFlimit != 0 or item.SPIlimit != 0 or item.AGIlimit != 0)
  95.       newdes += " LV" + item.LVlimit.to_s    if  item.LVlimit != 0
  96.       newdes += " 攻" + item.ATKlimit.to_s   if  item.ATKlimit != 0
  97.       newdes += " 防" + item.DEFlimit.to_s   if  item.DEFlimit != 0
  98.       newdes += " 精" + item.SPIlimit.to_s   if  item.SPIlimit != 0
  99.       newdes += " 敏" + item.AGIlimit.to_s   if  item.AGIlimit != 0
  100.       @help_window.set_text(newdes)
  101.     else
  102.       @help_window.set_text("")
  103.     end
  104.    
  105.   end
  106. end
复制代码

(5)修改过的类一览:
装备限制部分:

  1. class RPG::BaseItem
  2. 新增函数:LVlimit ,ATKlimit ,DEFlimit ,SPIlimit ,AGIlimit

  3. class Game_Actor < Game_Battler  
  4. 修改函数:equippable?(item)

  5. class Window_Item < Window_Selectable
  6. 修改函数:update_help
复制代码


物品限制部分:

  1. class RPG::BaseItem
  2. 新增函数:LimitType

  3. class Window_Item < Window_Selectable
  4. 修改函数:update_help

  5. class Game_Actor < Game_Battler
  6. 新增函数:item_useable?(item)

  7. class Scene_Item < Scene_Base
  8. 修改函数:determine_target

  9. class Scene_Battle < Scene_Base
  10. 修改函数:execute_action_item
复制代码

可以看出,普通物品限制脚本修改涉及面稍微大一些(5个类),如果担心影响兼容性,制作游戏时没用到这个功能的话可以舍弃这部分脚本





范例下载:
(貌似有点儿童不宜- -)

http://rpg.blue/upload_program/f ...  DRG)_101089404.rar


希望大家有空给这个脚本做极端情况下的测试看看有没有隐藏BUG。。。

---------------------------------------------------------------
新增插件区
===============================================================

9.9新增插件:

随便插在素材区
不用脱光也能在状态栏查看自己的原始能力值了,或许有用吧……
  1. =begin
  2. 随便插在素材区
  3. 不用脱光也能在状态栏查看自己的原始能力值了,或许有用吧……
  4. =end

  5. #==============================================================================
  6. # ■ Game_Battler
  7. #------------------------------------------------------------------------------
  8. #  处理战斗者的类。这个类作为 Game_Actor 类与 Game_Enemy 类的
  9. # 超级类来使用。
  10. #==============================================================================

  11. class Game_Battler
  12.   #--------------------------------------------------------------------------
  13.   # ● 原始能力值
  14.   #     actor : 角色
  15.   #--------------------------------------------------------------------------
  16.   def ori_atk
  17.     n = actor.parameters[2, @level] + @atk_plus
  18.     n = [[Integer(n), 1].max, 999].min
  19.     return n
  20.   end
  21.   #--------------------------------------------------------------------------
  22.   # ● 原始能力值
  23.   #     actor : 角色
  24.   #--------------------------------------------------------------------------
  25.   def ori_def
  26.     n = actor.parameters[3, @level] + @def_plus
  27.     n = [[Integer(n), 1].max, 999].min
  28.     return n
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 原始能力值
  32.   #     actor : 角色
  33.   #--------------------------------------------------------------------------
  34.   def ori_spi
  35.     n = actor.parameters[4, @level] + @spi_plus
  36.     n = [[Integer(n), 1].max, 999].min
  37.     return n
  38.   end
  39.   #--------------------------------------------------------------------------
  40.   # ● 原始能力值
  41.   #     actor : 角色
  42.   #--------------------------------------------------------------------------
  43.   def ori_agi
  44.     n = actor.parameters[5, @level] + @agi_plus
  45.     n = [[Integer(n), 1].max, 999].min
  46.     return n
  47.   end
  48. end

  49. #==============================================================================
  50. # ■ Window_Base
  51. #------------------------------------------------------------------------------
  52. #  游戏中全部窗口的超级类。
  53. #==============================================================================

  54. class Window_Base < Window
  55.   #--------------------------------------------------------------------------
  56.   # ● 描绘能力值
  57.   #     actor : 角色
  58.   #     x     : 描绘目标 X 坐标
  59.   #     y     : 描绘目标 Y 坐标
  60.   #     type  : 能力值种类 (0~3)
  61.   #--------------------------------------------------------------------------
  62.   def draw_actor_parameter(actor, x, y, type)
  63.     case type
  64.     when 0
  65.       parameter_name = Vocab::atk
  66.       ovalue = actor.ori_atk
  67.       parameter_value = actor.atk
  68.     when 1
  69.       parameter_name = Vocab::def
  70.       ovalue = actor.ori_def
  71.       parameter_value = actor.def
  72.     when 2
  73.       parameter_name = Vocab::spi
  74.       ovalue = actor.ori_spi
  75.       parameter_value = actor.spi
  76.     when 3
  77.       parameter_name = Vocab::agi
  78.       ovalue = actor.ori_agi
  79.       parameter_value = actor.agi
  80.     end
  81.     self.contents.font.color = system_color
  82.     self.contents.draw_text(x, y, 120, WLH, parameter_name)
  83.     self.contents.font.color = normal_color
  84.     self.contents.draw_text(x + 65, y, 36, WLH, ovalue, 2)
  85.     self.contents.draw_text(x + 80, y, 36, WLH, "/",2)
  86.     self.contents.font.color = text_color(24) if parameter_value > ovalue
  87.     self.contents.font.color = text_color(25) if parameter_value < ovalue
  88.     self.contents.draw_text(x + 120, y, 36, WLH, parameter_value, 2)
  89.   end
  90. end
复制代码




10.12新增插件:

作用:商店里也能显示限制
仅使用了装备限制脚本的话,用这个
  1. #商店显示限制插件—for仅使用了装备限制脚本的用户
  2. class Window_ShopBuy < Window_Selectable
  3.   def update_help
  4.     if item != nil
  5.       newdes = item.description
  6.       newdes += "  要求:" if(item.LVlimit !=0 or item.ATKlimit !=0 or item.DEFlimit != 0 or item.SPIlimit != 0 or item.AGIlimit != 0)
  7.       newdes += " LV" + item.LVlimit.to_s    if  item.LVlimit != 0
  8.       newdes += " 攻" + item.ATKlimit.to_s   if  item.ATKlimit != 0
  9.       newdes += " 防" + item.DEFlimit.to_s   if  item.DEFlimit != 0
  10.       newdes += " 精" + item.SPIlimit.to_s   if  item.SPIlimit != 0
  11.       newdes += " 敏" + item.AGIlimit.to_s   if  item.AGIlimit != 0
  12.       @help_window.set_text(newdes)
  13.     else
  14.       @help_window.set_text("")
  15.     end
  16.   end
  17. end
复制代码


连物品限制也都使用了的话,用这个
  1. #商店显示限制插件—for装备物品限制脚本都使用了的用户
  2. class Window_ShopBuy < Window_Selectable
  3.   def update_help
  4.     if item != nil
  5.      newdes = item.description         
  6.      if(item.LVlimit !=0 or item.ATKlimit !=0 or item.DEFlimit != 0 or item.SPIlimit != 0 or item.AGIlimit != 0)
  7.        newdes += "  要求"
  8.        case item.LimitType
  9.        when 0
  10.          newdes += "使用者:"
  11.        when 1
  12.          newdes += "使用目标:"
  13.        when 2
  14.          newdes += "使用者和目标:"
  15.        end
  16.        newdes += " LV" + item.LVlimit.to_s    if  item.LVlimit != 0
  17.        newdes += " 攻" + item.ATKlimit.to_s   if  item.ATKlimit != 0
  18.        newdes += " 防" + item.DEFlimit.to_s   if  item.DEFlimit != 0
  19.        newdes += " 精" + item.SPIlimit.to_s   if  item.SPIlimit != 0
  20.        newdes += " 敏" + item.AGIlimit.to_s   if  item.AGIlimit != 0
  21.      end
  22.        @help_window.set_text(newdes)
  23.     else
  24.       @help_window.set_text("")
  25.     end
  26.   end
  27. end
复制代码




谢谢浏览



作者: 越前リョーマ    时间: 2008-8-18 06:58
什么时候变VX区了…… - -
好吧,很有用……
作者: yangff    时间: 2008-8-18 07:24
昨天我看到了他:
  1. #==============================================================================
  2. # ■  装备等级限制
  3. #------------------------------------------------------------------------------
  4. #  装备的备注写上[等级 X]
  5. #==============================================================================
  6. module RPG
  7. class Weapon < BaseItem
  8. def equip_level
  9.   @note.split(/[\r\n]+/).each { |line|
  10.   if line =~ /\[(level|等級|等级) \d+\]/
  11.   @a = line.split(/ /)[1]
  12.   @d = ""
  13.   while ((c = @a.slice!(/./m)) != nil)
  14.     @d += c if c != "]"
  15.   end
  16.   end;}
  17.   return @d != "" ? @d.to_i : 0
  18. end
  19. end
  20. class Armor < BaseItem
  21. def equip_level
  22.   @note.split(/[\r\n]+/).each { |line|
  23.   if line =~ /\[(level|等級|等级) \d+\]/
  24.   @a = line.split(/ /)[1]
  25.   @d = ""
  26.   while ((c = @a.slice!(/./m)) != nil)
  27.     @d += c if c != "]"
  28.   end
  29.   end;}
  30.   return @d != "" ? @d.to_i : 0
  31. end
  32. end
  33. end
  34. class Window_EquipItem < Window_Item
  35. def include?(item)
  36. return true if item == nil
  37. if @equip_type == 0
  38.   return false unless item.is_a?(RPG::Weapon) && @actor.level >= item.equip_level
  39. else
  40.   return false unless item.is_a?(RPG::Armor) && @actor.level >= item.equip_level
  41.   return false unless item.kind == @equip_type - 1
  42. end
  43. return @actor.equippable?(item)
  44. end
  45. end
复制代码

作者: drgdrg    时间: 2008-8-18 07:29
以下引用yangff于2008-8-17 23:24:27的发言:

昨天我看到了他:
#==============================================================================
# ■  装备等级限制
#------------------------------------------------------------------------------
#  装备的备注写上[等级 X]
#==============================================================================
module RPG
class Weapon < BaseItem
def equip_level
  @note.split(/[\r\n]+/).each { |line|
  if line =~ /\[(level|等級|等级) \d+\]/
  @a = line.split(/ /)[1]
  @d = ""
  while ((c = @a.slice!(/./m)) != nil)
    @d += c if c != "]"
  end
  end;}
  return @d != "" ? @d.to_i : 0
end
end
class Armor < BaseItem
def equip_level
  @note.split(/[\r\n]+/).each { |line|
  if line =~ /\[(level|等級|等级) \d+\]/
  @a = line.split(/ /)[1]
  @d = ""
  while ((c = @a.slice!(/./m)) != nil)
    @d += c if c != "]"
  end
  end;}
  return @d != "" ? @d.to_i : 0
end
end
end
class Window_EquipItem < Window_Item
def include?(item)
return true if item == nil
if @equip_type == 0
  return false unless item.is_a?(RPG::Weapon) && @actor.level >= item.equip_level
else
  return false unless item.is_a?(RPG::Armor) && @actor.level >= item.equip_level
  return false unless item.kind == @equip_type - 1
end
return @actor.equippable?(item)
end
end



为了不火星更新了下,我的脚本现在可以限制能力值了。。。


作者: ONEWateR    时间: 2008-8-22 19:40
确实很有用,收藏之
作者: 越前リョーマ    时间: 2008-8-23 21:32
什么时候会自动显示需要几级就好了……
就不用手动写了……
作者: drgdrg    时间: 2008-8-24 19:10
以下引用越前リョーマ于2008-8-23 13:32:09的发言:

什么时候会自动显示需要几级就好了……
就不用手动写了……



改好了。。。。。谢谢支持
作者: 越前リョーマ    时间: 2008-8-25 00:17
以下引用drgdrg于2008-8-24 11:10:15的发言:


以下引用越前リョーマ于2008-8-23 13:32:09的发言:

什么时候会自动显示需要几级就好了……
就不用手动写了……




改好了。。。。。谢谢支持

这样就方便多了。
作者: 沉影不器    时间: 2008-8-25 00:21
提示: 作者被禁止或删除 内容自动屏蔽
作者: shinliwei    时间: 2008-8-25 02:20
有 攻击力限制 精神力限制 和 敏捷力限制的吗
作者: 脑残大神囧    时间: 2008-8-25 07:23
。。。
以下引用shinliwei于2008-8-24 18:20:09的发言:

有 攻击力限制 精神力限制 和 敏捷力限制的吗



同感
作者: 越前リョーマ    时间: 2008-8-25 07:30
以下引用shinliwei于2008-8-24 18:20:09的发言:

有 攻击力限制 精神力限制 和 敏捷力限制的吗

简单的说加一个变量限制就好了。
作者: drgdrg    时间: 2008-8-26 02:17
以下引用shinliwei于2008-8-24 18:20:09的发言:

有 攻击力限制 精神力限制 和 敏捷力限制的吗


应回帖同志们要求,做了一些改动,增加了能力限制,

现在可以在数据库里面自定义装备需要 人物的等级、攻击力、防御力、精神、敏捷达到一定值以上才可以使用



搜索了一下只找到XP有类似的脚本(VX这边千万不要再火星了啊,555555)

以下引用沉影不器于2008-8-24 16:21:25的发言:

那啥...需要规避一些情况:
避免生成"要求: LV 0"的情况

恩,原来我是想LV:0大家都知道是没有限制的意思,所以就没有管它,
现在要限制的条件多了如果显示那么多0不美观,所以就采纳你的意见了~

欢迎各位测试、指出BUG


作者: 越前リョーマ    时间: 2008-8-26 19:01
想想还要加什么…… =v=
作者: shinliwei    时间: 2008-8-29 06:59
再加个需要学会某个特技才能装备.   还有爆击率 躲闪率 命中率 限制.
真要想就太多了,写不完吧....
作者: drg之盾    时间: 2008-8-29 18:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: 木葬枫    时间: 2008-8-29 18:28
支持下·······
有考虑兼容性的脚本写手是一个好写手········
作者: shinliwei    时间: 2008-8-31 03:39
如果 要 弄个 骑术 的技能,学会了就能装备战马  用事件好弄不
作者: 越前リョーマ    时间: 2008-8-31 04:30
以下引用shinliwei于2008-8-30 19:39:30的发言:

如果 要 弄个 骑术 的技能,学会了就能装备战马  用事件好弄不

做一个同名职业……  = =
作者: drg之盾    时间: 2008-8-31 05:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: drgdrg    时间: 2008-9-2 18:43
本想连普通物品都限制一下,结果发现要从物品指定目标修改的话,可能涉及多个类,怕会与大量脚本冲突,还因为本人才疏学浅。。。所以就放弃了


现在发布完了,是要手动编辑改成“发布完毕”吗?
作者: 风雪优游    时间: 2008-9-2 19:23
以下引用木葬枫于2008-8-29 10:28:23的发言:

支持下·······
有考虑兼容性的脚本写手是一个好写手········


同意

现在发布完了,是要手动编辑改成“发布完毕”吗?


一般这个是斑竹动手修改……自己改也可以。


可以弄成不裸身的属性吗?
作者: drgdrg    时间: 2008-9-2 21:25
以下引用风雪优游于2008-9-2 11:23:23的发言:


一般这个是斑竹动手修改……自己改也可以。


可以弄成不裸身的属性吗?


那怎么请斑竹来改,短信召唤吗?

不裸身的属性?貌似会出现一些问题吧。。。

比如 剑A 需要攻击力1以上,装备后增加攻击力5, 剑B 需要攻击力5以上,装备后增加攻击力10 ,剑C 需要攻击力15以上,装备后增加攻击力15, 剑D 需要攻击力25以上,装备后增加攻击力20.。。。。。

而人物是2刀流,攻击力本身为1,只可以装备剑A,但如果是不裸身的属性来判断,左手装备剑A后攻击力为1+5=6,这样右手又可以装备剑B,攻击力为6+10=16,再把左手换成剑C,攻击力为26,再把右手换成剑D。。。。。。。。。。。。

这样只要包包中有足够梯度的装备,就可以一直换装备换下去
作者: 沉影不器    时间: 2008-9-2 21:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: drgdrg    时间: 2008-9-2 21:59
以下引用沉影不器于2008-9-2 13:52:51的发言:

Game_Battler有个item_effective?函数,我们可以为Game_Actor也添加def item_effective?
用来限制普通物品


{/se}{/se}{/se}{/se}{/se}

谢谢沉影大哥指点~

那么继续完善去。。。
作者: rivergo    时间: 2008-9-2 22:20
提示: 作者被禁止或删除 内容自动屏蔽
作者: 龙轩    时间: 2008-9-2 23:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: drgdrg    时间: 2008-9-3 03:16
完善物品限制功能中。。。。

不知如何改才能 在战斗中选择物品使用目标时,如果目标能力不足则不能点击下去发出BUZZ。。。。

以下引用rivergo于2008-9-2 14:20:34的发言:

這腳本似乎跟裝備擴張的相衝@"@


那个脚本在哪?
作者: 风雪优游    时间: 2008-9-4 02:52
同种装备之间互不计算如何?

要不最好修改下装备显示窗口,不然因为能力不足而看不到装备,而物品中明明有,会让人以为是BUG的。
作者: shinliwei    时间: 2008-9-4 07:29


这个是什么原因呢?已经添加了物品分类脚本兼容补丁
会不会更 装备栏扩张 有冲突呢?
作者: drg之盔    时间: 2008-9-4 07:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: rivergo    时间: 2008-9-4 15:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: drg之盔    时间: 2008-9-4 17:20
提示: 作者被禁止或删除 内容自动屏蔽
作者: shinliwei    时间: 2008-9-5 04:12
我的装备栏扩张是VX的。


当我在菜单下查看装备窗口就会弹出这个错误!
作者: drg之盔    时间: 2008-9-5 08:33
提示: 作者被禁止或删除 内容自动屏蔽
作者: 龙轩    时间: 2008-9-6 04:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: drgdrg    时间: 2008-9-6 08:30
以下引用龙轩于2008-9-5 20:37:33的发言:

不客气的收了··谢谢·这对我很有用````不过如果说要有一定技能的那?


收得早了点……

马上更新了……

不过这次更新的内容不一定用得上
作者: 越前リョーマ    时间: 2008-9-6 18:46
普通物品也限制……
可以做高级的等级限制药水了……
作者: 沉影不器    时间: 2008-9-7 04:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: shinliwei    时间: 2008-9-7 05:00
每天都来看下,看看我的BUG能解决不。一直等着下
作者: drgdrg    时间: 2008-9-10 05:36
08.9.9新增了一个插件,在顶楼最后


与装备扩张脚本冲突问题依然……未解决

哪位高手能指点下,为啥扩充的装备不能调用到我在class RPG::BaseItem定义的限制函数啊{/ll}{/ll}{/ll}{/ll}{/ll}{/ll}
作者: shinliwei    时间: 2008-9-12 07:09
顶上去,不能就这样沉了!
作者: taoboy    时间: 2008-9-16 20:21
非常华丽~
作者: shinliwei    时间: 2008-9-28 07:42
还是没法用啊!
作者: drgdrg    时间: 2008-10-6 07:54
以下引用shinliwei于2008-9-27 23:42:46的发言:

还是没法用啊!


与装备扩张的冲突已解决
具体见顶楼{/wx}

感谢Kissye姐~!!!!
作者: 龍狼    时间: 2008-10-11 23:58
拜托作者drgdrg一件事……发布脚本时请在该换行处换行好吗……我自己按了n多回车才弄好的……还有,给你微微修改了一下,解决了没有要求时简介消失情况,并且在装备和商店里也能看见简介里有限制:
#============================================================================
#BY drgdrg (感谢snstar2006提供的提取[]内容代码)
#定义装备等级限制方法:在数据库装备备注里写上[LV n] ,LV后有空格,n为等级,
#同理,定义装备能力值限制方法:备注里写上[ATK n][DEF n][SPI n][AGI n]。
#若某项限制不写则没有装备限制。
#注意这里限制的能力值是人物原始的能力值,不考虑装备、状态的影响,
#但是考虑事件对能力值的影响。
#==============================================================================
#==============================================================================
#■ RPG::BaseItem
#==============================================================================
class RPG::BaseItem
def LVlimit #物品要求最低等级
  m = 0
  self.note.split(/[\r\n]+/).each { |line| m = $1.to_i if line =~ /\[LV (\d+)\]/ }
  return m
end
def ATKlimit #物品要求最低个人攻击力
  m = 0
  self.note.split(/[\r\n]+/).each { |line| m = $1.to_i if line =~ /\[ATK (\d+)\]/ }
  return m
end
def DEFlimit #物品要求最低个人防御力
  m = 0
  self.note.split(/[\r\n]+/).each { |line| m = $1.to_i if line =~ /\[DEF (\d+)\]/ }
  return m
end
def SPIlimit #物品要求最低个人精神力
  m = 0
  self.note.split(/[\r\n]+/).each { |line| m = $1.to_i if line =~ /\[SPI (\d+)\]/ }
  return m
end
def AGIlimit #物品要求最低个人敏捷性
  m = 0
  self.note.split(/[\r\n]+/).each { |line| m = $1.to_i if line =~ /\[AGI (\d+)\]/ }
  return m
end
end
#==============================================================================
#■ Game_Actor
#------------------------------------------------------------------------------
# 处理角色的类。本类在 Game_Actors 类 ($game_actors)
# 的内部使用、Game_Party 类请参考 ($game_party) 。
#==============================================================================

class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 判断是否可以装备
# item : 物品
#--------------------------------------------------------------------------
def equippable?(item)
   return false if self.level < item.LVlimit #等级限制
   return false if actor.parameters[2, @level] + @atk_plus < item.ATKlimit #攻击力限制
   return false if actor.parameters[3, @level] + @def_plus < item.DEFlimit #防御力限制
   return false if actor.parameters[4, @level] + @spi_plus < item.SPIlimit #精神力限制
   return false if actor.parameters[5, @level] + @agi_plus < item.AGIlimit #敏捷性限制
  if item.is_a?(RPG::Weapon)
   return self.class.weapon_set.include?(item.id)
  elsif item.is_a?(RPG::Armor)
   return false if two_swords_style and item.kind == 0
   return self.class.armor_set.include?(item.id)
  end
  return false
end
end
#==============================================================================
#■ Window_Item
#------------------------------------------------------------------------------
# 物品画面、战斗画面、显示浏览物品的窗口。
#==============================================================================

class Window_Item < Window_Selectable
#--------------------------------------------------------------------------
# ● 更新帮助文本(自动显示使用物品的等级能力限制)
#--------------------------------------------------------------------------
def update_help
  if item != nil
   newdes = item.description
   newdes += " 能力要求:"
   if(item.LVlimit !=0 or item.ATKlimit !=0 or item.DEFlimit != 0 or item.SPIlimit != 0 or item.AGIlimit != 0)
    newdes += " 等级 " + item.LVlimit.to_s if item.LVlimit != 0
    newdes += " 攻击力 " + item.ATKlimit.to_s if item.ATKlimit != 0
    newdes += " 防御力 " + item.DEFlimit.to_s if item.DEFlimit != 0
    newdes += " 精神力 " + item.SPIlimit.to_s if item.SPIlimit != 0
    newdes += " 敏捷性 " + item.AGIlimit.to_s if item.AGIlimit != 0
   @help_window.set_text(newdes)
   else @help_window.set_text(item.description)
   end
  end
end
end

class Window_Equip < Window_Selectable
def update_help
  if item != nil
   newdes = item.description
   newdes += " 能力要求:"
   if(item.LVlimit !=0 or item.ATKlimit !=0 or item.DEFlimit != 0 or item.SPIlimit != 0 or item.AGIlimit != 0)
    newdes += " 等级 " + item.LVlimit.to_s if item.LVlimit != 0
    newdes += " 攻击力 " + item.ATKlimit.to_s if item.ATKlimit != 0
    newdes += " 防御力 " + item.DEFlimit.to_s if item.DEFlimit != 0
    newdes += " 精神力 " + item.SPIlimit.to_s if item.SPIlimit != 0
    newdes += " 敏捷性 " + item.AGIlimit.to_s if item.AGIlimit != 0
   @help_window.set_text(newdes)
   else @help_window.set_text(item.description)
   end
  end
end
end

class Window_ShopBuy < Window_Selectable
def update_help
  if item != nil
   newdes = item.description
   newdes += " 能力要求:"
   if(item.LVlimit !=0 or item.ATKlimit !=0 or item.DEFlimit != 0 or item.SPIlimit != 0 or item.AGIlimit != 0)
    newdes += " 等级 " + item.LVlimit.to_s if item.LVlimit != 0
    newdes += " 攻击力 " + item.ATKlimit.to_s if item.ATKlimit != 0
    newdes += " 防御力 " + item.DEFlimit.to_s if item.DEFlimit != 0
    newdes += " 精神力 " + item.SPIlimit.to_s if item.SPIlimit != 0
    newdes += " 敏捷性 " + item.AGIlimit.to_s if item.AGIlimit != 0
   @help_window.set_text(newdes)
   else @help_window.set_text(item.description)
   end
  end
end
end

作者: shinliwei    时间: 2008-10-12 06:14
终于能用了!
作者: drgdrg    时间: 2008-10-12 09:42
以下引用龍狼于2008-10-11 15:58:46的发言:

拜托作者drgdrg一件事……发布脚本时请在该换行处换行好吗……我自己按了n多回车才弄好的……还有,给你微微修改了一下,解决了没有要求时简介消失情况,并且在装备和商店里也能看见简介里有限制:


脚本是哪里没有换行?{/fd}

没有要求时简介是显示物品本身的简介呀,我试了一下可以显示啊{/fd}

商店显示限制那个很感谢你的提出,

因为怕大家频繁换脚本我就做成插件算了……
嫌脚本散件页数太多的话可以自己把插件脚本粘帖到原脚本下面都行
作者: 龍狼    时间: 2008-10-18 22:35
以下引用drgdrg于2008-10-12 1:42:11的发言:


以下引用龍狼于2008-10-11 15:58:46的发言:

拜托作者drgdrg一件事……发布脚本时请在该换行处换行好吗……我自己按了n多回车才弄好的……还有,给你微微修改了一下,解决了没有要求时简介消失情况,并且在装备和商店里也能看见简介里有限制:




脚本是哪里没有换行?

没有要求时简介是显示物品本身的简介呀,我试了一下可以显示啊

商店显示限制那个很感谢你的提出,

因为怕大家频繁换脚本我就做成插件算了……
嫌脚本散件页数太多的话可以自己把插件脚本粘帖到原脚本下面都行

很多啊,比方说有的注释和#号不在同一行,还有的本来是脚本语句却跟在了注释后面。比如“m=0”就是我看了好半天才看出来分开的。你看看66rpg网站上的脚本里就是换行很乱的。

else @help_window.set_text(item.description)

本来是
else @help_window.set_text("")

的,没限制时根本没介绍的,好好看看吧
作者: 周子民    时间: 2008-12-27 02:52
提示: 作者被禁止或删除 内容自动屏蔽




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