キラーズアトラクト



セブンスドラゴンシリーズにあるアレです。

※実質はマップでのエンカウント処理のパクリ・・・

変更点
2019:05:01
・キラーズアトラクト本体処理をVX Aceよりに修正


#==============================================================================
# キラーズアトラクト By 貪藻矢射妥←
#------------------------------------------------------------------------------
# セブンスドラゴンシリーズにあるアレです。
# 
# ※実質はマップでのエンカウント処理のパクリ・・・
# 
#==============================================================================
# 変更点
# 
# 2019:05:01
# ・キラーズアトラクト本体処理をVX Aceよりに修正

module KILLERS_ATTRACT
  # キラーズアトラクト用スキルID
  KA_SKILL_ID = 492
end

class Game_Map
  #--------------------------------------------------------------------------
  # ● エンカウントする敵グループの ID を作成(VX Ace参考)
  #--------------------------------------------------------------------------
  def make_encounter_troop_id
    # エンカウントリスト空判定
    if encounter_list == []
      return 0
    end
    return encounter_list[rand(encounter_list.size)]
  end
end

class Scene_Skill
  #--------------------------------------------------------------------------
  # ● フレーム更新 (スキルウィンドウがアクティブの場合)
  #--------------------------------------------------------------------------
  alias killers_attract_update_skill update_skill
  def update_skill
    # キラーズアトラクトの場合
    if @skill.id == KILLERS_ATTRACT::KA_SKILL_ID
      # C ボタンが押された場合
      if Input.trigger?(Input::C)
        # スキルウィンドウで現在選択されているデータを取得
        @skill = @skill_window.skill
        # 使用できない場合
        if @skill == nil or not @actor.skill_can_use?(@skill.id)
          # ブザー SE を演奏
          Sound.play_buzzer
          return
        end
        # キラーズアトラクト呼び出し
        killers_attract
      end
    else
      # もとの処理を実行
      killers_attract_update_skill
    end

  end
  #--------------------------------------------------------------------------
  # ● キラーズアトラクト
  #--------------------------------------------------------------------------
  def killers_attract
    bzz_flg = false
    
    # トループを決定
    troop_id = $game_map.make_encounter_troop_id
    
    # トループ有効判定
    if $data_troops[troop_id] == nil
      bzz_flg = true
    end
    # イベント実行中判定
    if $game_system.map_interpreter.running?
      bzz_flg = true
    end
    # エンカウント禁止中判定
    if $game_system.encounter_disabled
      bzz_flg = true
    end
    
    if bzz_flg
      # ブザー SE を演奏
      Sound.play_buzzer
    else
      # バトル呼び出しフラグをセット
      $game_temp.battle_calling = true
      $game_temp.battle_troop_id = troop_id
      $game_temp.battle_can_escape = true
      $game_temp.battle_can_lose = false
      $game_temp.battle_proc = nil
      
      # マップ画面に切り替え
      $scene = Scene_Map.new
      return
    end
  end
end

戻る