#============================================================================== # ■ RGSS3 スクリプト能力値 Ver1.00 by 星潟 #------------------------------------------------------------------------------ # 他の値を読み取って値を返す能力値を設定出来るようになります。 #============================================================================== # スクリプト能力値設定例 #------------------------------------------------------------------------------ # アイテム/スキルのダメージ欄 # # a.prm(0) # # 使用者側のスクリプト能力値ID0の数値を返す。 # # b.prm(1) # # 受ける側のスクリプト能力値ID1の数値を返す。 #------------------------------------------------------------------------------ # イベントコマンドのスクリプト等 # # $game_actors[1].prm(2) # # アクターID1番のスクリプト能力値ID2の数値を返す。 # # $game_party.members[0].prm(3) # # パーティメンバー先頭アクターのスクリプト能力値ID3の数値を返す。 # (パーティメンバーが一人以上いる時でないとエラー) # # $game_troop.members[0].prm(4) # # 敵グループメンバー先頭エネミーのスクリプト能力値ID4の数値を返す。 # (敵グループメンバーが一人以上いる時でないとエラー) #============================================================================== module ScriptStatus #空のハッシュを用意。 P = {} #スクリプト能力値指定。 #例. #P[0] = ["$game_variables[1] + $game_variables[2]"] #スクリプト能力値ID0は変数ID1+変数ID2の値になる。 #P[1] = ["$game_switches[1]","2","1"] #スクリプト能力値ID1はスイッチID1がONの時2、OFFの時1になる。 #P[2] = ["distributed_param(:skill1) * 2"] #スクリプト能力値ID2はパラメータ振り分けの:skill1による値の2倍の値になる。 #P[3] = ["actor?","$game_variables[100 + self.id]","0"] #スクリプト能力値ID3は自身がアクターの時 #100に自分のアクターIDを足した値の変数IDが格納している値になる。 #(アクターIDが5なら変数ID105の値) #自身がアクターではない(エネミー)なら0になる。 P[0] = ["$game_variables[1] + $game_variables[2]"] P[1] = ["$game_switches[1]","2","1"] P[2] = ["distributed_param(:skill1) * 2"] P[3] = ["actor?","$game_variables[100 + self.id]","0"] P[4] = ["actor?","999","0"] end class Game_BattlerBase #-------------------------------------------------------------------------- # スクリプト能力値 #-------------------------------------------------------------------------- def prm(type) array = ScriptStatus::P[type] return 0 unless array case array.size when 1;eval(array[0]) when 2;eval(array[0]) ? eval(array[1]) : 0 when 3;eval(array[0]) ? eval(array[1]) : eval(array[2]) else;0 end end end