#============================================================================== # ○ステータス画面ステート防止確率表示 Ver1.00 # for RGSS2 # 西瓜 / Space not far # http://muspell.raindrop.jp/ # ステータス画面でアクターのステートに対する耐性(または有効度)を表示します。 # 「ステート耐性装備」と併用するのがおすすめです。 #============================================================================== # ステートのメモ欄にと書くことで # 本来のステート名とは別の名前を表示することが出来ます。 # 戦闘不能のメモにとか書いたりするといい感じです。 module SNF STATE_STATUS = [1,2,3,4,5,6,7,8] # 表示したいステートのIDを書いてください。 # 11個以上表示する場合は↓の項目で座標調節しないときついです。 STATE_STATUS_KIND = 0 # 何を表示するか変更します。 # 0 => 防止率(100 − ステートにかかる確率)%を表示します。 # 1 => ステートにかかる確率を表示します。 STATE_STATUS_HEAD = "状態異常耐性" # 見出し STATE_ANOTHERNAME = "ST画面" # メモ欄のアレ # 以下レイアウト関連の設定 STATE_STATUS_INDENT = 4 # 一列の要素数 STATE_STATUS_X = 32 # X座標 STATE_STATUS_Y = 268 # Y座標 STATE_STATUS_SPREAD = 130 # 列と列の間の幅 STATE_STATUS_SPACING = 24 # 行と行の間の幅 STATE_STATUS_FONTSIZE = 20 # フォントサイズ PARAMATERS_X_RIVISE = 0 # 能力値表示のX座標補正 PARAMATERS_Y_RIVISE = -16 # 能力値表示のY座標補正 EQUIPMENTS_X_RIVISE = 0 # 装備表示のX座標補正 EQUIPMENTS_Y_RIVISE = 0 # 装備表示のY座標補正 end class Window_Status < Window_Base alias snf_statestatus_refresh refresh def refresh snf_statestatus_refresh draw_stateprob(SNF::STATE_STATUS_X, SNF::STATE_STATUS_Y) end def draw_stateprob(x, y) self.contents.font.color = system_color self.contents.font.size = 16 self.contents.draw_text(x, y - SNF::STATE_STATUS_SPACING, 128, WLH, SNF::STATE_STATUS_HEAD, 0) self.contents.font.color = system_color self.contents.font.size = SNF::STATE_STATUS_FONTSIZE y += SNF::STATE_STATUS_SPACING # 初期化 prob = 0 statenote=[] name_array=[] prob_array=[] for i in 0..SNF::STATE_STATUS.size - 1 # ステート名と防止確率(有効確率)を各配列におさめる statenote = $data_states[SNF::STATE_STATUS[i]].note.scan(/<#{SNF::STATE_ANOTHERNAME}:(\S+)>/) state_a_name = statenote.pop if state_a_name == nil # ステート名 name_array = name_array.push($data_states[SNF::STATE_STATUS[i]].name) else # 別名 name_array = name_array.push(state_a_name) end if @actor.state_resist?(SNF::STATE_STATUS[i]) # 無効化にチェックが入っている場合 prob_array = prob_array.push(0) else # 確率 rate = @actor.state_probability(SNF::STATE_STATUS[i]) prob_array = prob_array.push(rate) end end for i in 0..SNF::STATE_STATUS.size - 1 text_x = x + SNF::STATE_STATUS_SPREAD * (i / SNF::STATE_STATUS_INDENT) text_y = y + SNF::STATE_STATUS_SPACING * (i % SNF::STATE_STATUS_INDENT - 1) self.contents.font.color = system_color self.contents.draw_text(text_x, text_y, 64, WLH, name_array[i], 0) self.contents.font.color = normal_color # 防止率か有効率か? if SNF::STATE_STATUS_KIND == 0 prob = 100 - prob_array[i] else SNF::STATE_STATUS_KIND == 1 prob = prob_array[i] end self.contents.draw_text(text_x + 72, text_y, 48, WLH, prob.to_s + "%", 2) end end alias snf_statestatus_draw_parameters draw_parameters def draw_parameters(x, y) x += SNF::PARAMATERS_X_RIVISE y += SNF::PARAMATERS_Y_RIVISE snf_statestatus_draw_parameters(x, y) end alias snf_statestatus_draw_equipments draw_equipments def draw_equipments(x, y) x += SNF::EQUIPMENTS_X_RIVISE y += SNF::EQUIPMENTS_Y_RIVISE snf_statestatus_draw_equipments(x, y) end end