#============================================================================== # ○乗り物別エンカウント Ver1.01 # for RGSS2 # 西瓜 / Space not far # http://muspell.raindrop.jp/ # エンカウントする敵グループを乗り物別に設定します。 #============================================================================== # ■更新履歴 # Ver1.01 # ・エンカウントリストによって正しく機能しない不具合を修正。 # ・設定項目に「徒歩」を追加。 #============================================================================== # ■仕様 # デフォルトの仕様では乗り物に乗るとランダムエンカウントが発生しませんが # このスクリプトを導入すると特に設定しない限り # どの乗り物でも発生するようになります。 # ■使い方 # エンカウントの発生する乗り物を指定したい敵グループの名前のどこかに # <乗り物:n>という形式で書き込んでください。 # nは対応する乗り物の番号になります。 # それぞれ  # -1 => 徒歩 # 0 => 小型船 # 1 => 大型船 # 2 => 飛行船 # でのみエンカウントが発生するようになります。 # 何も設定しない場合、前述のとおりいつでも発生します。 class Game_Player < Game_Character SNF049_KEYWORD = "乗り物" #-------------------------------------------------------------------------- # ● エンカウントの更新 #-------------------------------------------------------------------------- alias snf049_update_encounter update_encounter def update_encounter return if $TEST and Input.press?(Input::CTRL) if in_vehicle? @encounter_count -= 1 else snf049_update_encounter end end #-------------------------------------------------------------------------- # ● エンカウントする敵グループの ID を作成 #-------------------------------------------------------------------------- # 再定義 def make_encounter_troop_id encounter_list = $game_map.encounter_list.clone for area in $data_areas.values encounter_list += area.encounter_list if in_area?(area) end #~ for troop_id in encounter_list #~ memo = $data_troops[troop_id].name.scan(/<#{SNF049_KEYWORD}[::](\d+)>/) #~ if memo != nil and not memo.empty? #~ if memo[0][0].to_i == 3 # 徒歩 #~ encounter_list.delete(troop_id) if in_vehicle? #~ # 乗り物に乗っている場合リストから削除 #~ else #~ encounter_list.delete(troop_id) if @vehicle_type != memo[0][0].to_i #~ # トループ名の設定と乗り物番号が食い違っている場合リストから削除 #~ end #~ end #~ end for i in 0..encounter_list.size - 1 memo = $data_troops[encounter_list[i]].name.scan(/<#{SNF049_KEYWORD}[::](\S+)>/) if memo != nil and not memo.empty? encounter_list[i] = "del" if @vehicle_type != memo[0][0].to_i # トループ名の設定と乗り物番号が食い違っている場合リストから削除 end end encounter_list.delete("del") if encounter_list.empty? make_encounter_count return 0 end return encounter_list[rand(encounter_list.size)] end end