=begin ランダムステート付加武器   2011/07/17 mo-to TKOOL COOL http://mototkool.blog.fc2.com/ ★概要★ 装備した武器で攻撃するたびに敵に指定したランダムなステートを付加する。 ★使用法★ スクリプトの素材▼ 素材 以下 ▼メイン 以上にこれをコピーして張り付ける。 ●武器のメモ欄に<ランダムステート付加 ステートID数値>と記述する。  記述するステートIDは何行に渡ってもOKです。 ※データベースではなくメモ欄でステートIDを指定して下さい。 例)<ランダムステート付加 2,3,4,5> 攻撃が命中し敵が抵抗に失敗するたびにステートID2番から5番の ステートがランダムで選ばれて付加される。 ●また、指定するステートIDを重複させることにより付加されるステートが  選ばれる確率を上げることが可能。 例)<ランダムステート付加 2,2,3,4>   この場合だと、ステートID2番のステートが選ばれる確率が1/2になり   3番と4番が選ばれる確率がそれぞれ1/4となる。 ★注意・仕様★ デフォの仕様と同じく、敵がステートに抵抗すればステート付加は起こらない。 ランダムステート付加武器を二刀流しても一度しか発動しない。 データベースの付加するステートにチェックを入れると、 ランダムに選ばれるステート+チェックを入れたステート(同時に掛かる)となる。 =end module RPG class Weapon < BaseItem #-------------------------------------------------------------------------- # ○ 武器メモ欄の取得 #-------------------------------------------------------------------------- def rand_state_weapons_set @rand_state_weapons = [] self.note.split(/[\r\n]+/).each { |line| case line when /<ランダムステート付加\s*(\d+(?:\s*,\s*\d+)*)>/ $1.scan(/\d+/).each { |num| @rand_state_weapons.push(num.to_i) } end } end #-------------------------------------------------------------------------- # ○ rand_state_weapons #-------------------------------------------------------------------------- def rand_state_weapons rand_state_weapons_set if @rand_state_weapons == nil return @rand_state_weapons end end end class Game_Actor #-------------------------------------------------------------------------- # ○ rand_state_weaponsの取得 #-------------------------------------------------------------------------- def rand_state_weapons n = [] for weapon in weapons.compact n += weapon.rand_state_weapons end return n end #-------------------------------------------------------------------------- # ● 通常攻撃の追加効果 (ステート変化) 取得 ※エイリアス定義 #-------------------------------------------------------------------------- alias rand_plus_state_set plus_state_set def plus_state_set if rand_state_weapons != [] result = [rand_state_weapons[rand(rand_state_weapons.size)]] for weapon in weapons.compact result |= weapon.state_set end return result else return rand_plus_state_set end end end