# ▼▲▼ No47.オートステート修正 ▼▲▼ # # update 2005/ 3/23 # #============================================================================== # ■ Game_Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● オートステートの更新 [修正版] # old_armor : 外した防具 # new_armor : 装備した防具 #-------------------------------------------------------------------------- def update_auto_state(old_armor, new_armor) # 外した防具のオートステートを解除するか調べる if old_armor != nil and old_armor.auto_state_id != 0 # 外す防具のオートステートが、 # 他の装備中の防具のオートステートと一致する場合、解除を行わない bool = false # 現在装備中の防具のオートステートに含まれるか? unless old_armor.nil? same = 0 # 判定 for id in self.armor_ids if id == old_armor.id # 外そうとしている防具orそれと同じ防具の場合 same += 1 next end armor = $data_armors[id] unless armor.nil? bool |= (old_armor.auto_state_id == armor.auto_state_id) end end bool |= (same > 1) # 外した防具以外に同じ防具を装備中の場合 end # 他の防具に同じオートステートがない場合は解除 unless bool remove_state(old_armor.auto_state_id, true) end end # ---ここまで # 装備した防具のオートステートを強制付加 if new_armor != nil and new_armor.auto_state_id != 0 add_state(new_armor.auto_state_id, true) end end end