888000 发表于 2014-10-11 11:48 ![]()  
#============================================================================== 
# ■ 物品选择处理 ...  
![]()  
#============================================================================== #  物品选择扩张  by 子弹君 #============================================================================== #  使用说明: #    在事件中使用指令, #    变量XXX = 脚本 :item #    脚本指令分别有 :item :weapon :armor :key_item #    指令使用一次之后就会自动还原成贵重物品选择,需要再设定一次。 #  脚本设置说明: #    ITEMKEY那个开关如果打开的话就会和物品大于多少价格出现冲突,方法可以有多种,或者 #    直接到XX行将那一段屏蔽了。 #============================================================================== $BombScript ||= {};$BombScript["物品选择扩张 "] = "物品选择扩张20141014" #============================================================================== #  设定部分 #============================================================================== module BOMB     KEYVAR = 1 #   设置一个变量。     ITEMKEY = 2 #   设置一个开关,开关开启时,选择物品为默认设置。         ITEMPRI = 10000 #   设置物品的价格,只有大于这个价格的才能出现。     WEAPRI = 10000 #   设置武器的价格,只有大于这个价格的才能出现。     ARMPRI = 10000 #   设置防具的价格,只有大于这个价格的才能出现。     WEAYP = 1 #   设置武器的类型,只有是这个类型的才能出现。     ARMYP = 1 #   设置防具的类型,只有是这个类型的才能出现。 end   class Window_KeyItem < Window_ItemList   #--------------------------------------------------------------------------   # ● 开始输入的处理   #--------------------------------------------------------------------------   def start     unless $game_variables[BOMB::KEYVAR] == :null       self.category = $game_variables[BOMB::KEYVAR]       $game_variables[BOMB::KEYVAR] = :null     else       self.category = :key_item     end     update_placement     refresh     select(0)     open     activate   end end class Window_ItemList < Window_Selectable   #--------------------------------------------------------------------------   # ● 查询列表中是否含有此物品   #--------------------------------------------------------------------------   def include?(item)     case @category     when :item       item.is_a?(RPG::Item) && item.price > BOMB::ITEMPRI        item.is_a?(RPG::Item) && !item.key_item? if       $game_switches[BOMB::ITEMKEY]     when :weapon       item.is_a?(RPG::Weapon) && item.price > BOMB::WEAPRI        item.is_a?(RPG::Weapon) && item.wtype_id == BOMB::WEAYP     when :armor       item.is_a?(RPG::Armor) && item.price > BOMB::ARMPRI       item.is_a?(RPG::Armor) && item.wtype_id == BOMB::ARMYP     when :key_item       item.is_a?(RPG::Item) && item.key_item?     else       false     end   end end 
 
 #==============================================================================  
#  物品选择扩张  by 子弹君  
#==============================================================================  
#  使用说明:  
#    在事件中使用指令,  
#    变量XXX = 脚本 :item  
#    脚本指令分别有 :item :weapon :armor :key_item  
#    指令使用一次之后就会自动还原成贵重物品选择,需要再设定一次。  
#  脚本设置说明:  
#    ITEMKEY那个开关如果打开的话就会和物品大于多少价格出现冲突,方法可以有多种,或者  
#    直接到XX行将那一段屏蔽了。  
#==============================================================================  
$BombScript ||= {};$BombScript["物品选择扩张 "] = "物品选择扩张20141014"  
#==============================================================================  
#  设定部分  
#==============================================================================  
module BOMB  
    KEYVAR = 1  
#   设置一个变量。  
    ITEMKEY = 2  
#   设置一个开关,开关开启时,选择物品为默认设置。      
    ITEMPRI = 10000  
#   设置物品的价格,只有大于这个价格的才能出现。  
    WEAPRI = 10000  
#   设置武器的价格,只有大于这个价格的才能出现。  
    ARMPRI = 10000  
#   设置防具的价格,只有大于这个价格的才能出现。  
    WEAYP = 1  
#   设置武器的类型,只有是这个类型的才能出现。  
    ARMYP = 1  
#   设置防具的类型,只有是这个类型的才能出现。  
end  
   
class Window_KeyItem < Window_ItemList  
  #--------------------------------------------------------------------------  
  # ● 开始输入的处理  
  #--------------------------------------------------------------------------  
  def start  
    unless $game_variables[BOMB::KEYVAR] == :null  
      self.category = $game_variables[BOMB::KEYVAR]  
      $game_variables[BOMB::KEYVAR] = :null  
    else  
      self.category = :key_item  
    end  
    update_placement  
    refresh  
    select(0)  
    open  
    activate  
  end  
end  
class Window_ItemList < Window_Selectable  
  #--------------------------------------------------------------------------  
  # ● 查询列表中是否含有此物品  
  #--------------------------------------------------------------------------  
  def include?(item)  
    case @category  
    when :item  
      item.is_a?(RPG::Item) && item.price > BOMB::ITEMPRI   
      item.is_a?(RPG::Item) && !item.key_item? if  
      $game_switches[BOMB::ITEMKEY]  
    when :weapon  
      item.is_a?(RPG::Weapon) && item.price > BOMB::WEAPRI   
      item.is_a?(RPG::Weapon) && item.wtype_id == BOMB::WEAYP  
    when :armor  
      item.is_a?(RPG::Armor) && item.price > BOMB::ARMPRI  
      item.is_a?(RPG::Armor) && item.wtype_id == BOMB::ARMYP  
    when :key_item  
      item.is_a?(RPG::Item) && item.key_item?  
    else  
      false  
    end  
  end  
end  
 
  |