忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。




2024/11/22 13:09 |
共有バトルイベント(XP)
RPGツクールXP/VX初心者質問スレ 8
http://schiphol.2ch.net/test/read.cgi/gameama/1230630063/l50

これの>>429が実現できたら確かに便利そうなんで、チョイチョイと作ってみました。
要は、バトルイベントを利用するスキルやアイテムなんかを設定している場合は(私はしてませんが)
同じバトルイベントを全トループにコピーなんて事をしてたらエターナる率が20%はアップするってんで、
あるトループに指定したバトルイベントを全トループで使おうぜ!っていうお話です。
コモンバトルイベントって感じで、なかなか面白い発想だと思います。
以下の例だと、トループ1番に設定したバトルイベントが全てのトループで発効します。

#------------------------------------------------------------------------------
module THJK
#------------------------------------------------------------------------------
# ↓ 設定項目

  # 共有バトルイベント置き場として使用するトループの番号を指定
  EVENT_SHARING_TROOP = 1

# ↑ 設定項目ここまで
#------------------------------------------------------------------------------
end

class Scene_Battle
  #--------------------------------------------------------------------------
  # ● バトルイベントのセットアップ
  #--------------------------------------------------------------------------
  def setup_battle_event
    # バトルイベント実行中の場合
    if $game_system.battle_interpreter.running?
      return
    end
    バトルイベント = $data_troops[@troop_id].pages +
    $data_troops[THJK::EVENT_SHARING_TROOP].pages
    # バトルイベントの全ページを検索
    for index in 0...バトルイベント.size
      # イベントページを取得
      page = バトルイベント[index]
      # イベント条件を c で参照可能に
      c = page.condition
      # 何も条件が指定されていない場合は次のページへ
      unless c.turn_valid or c.enemy_valid or
             c.actor_valid or c.switch_valid
        next
      end
      # 実行済みの場合は次のページへ
      if $game_temp.battle_event_flags[index]
        next
      end
      # ターン 条件確認
      if c.turn_valid
        n = $game_temp.battle_turn
        a = c.turn_a
        b = c.turn_b
        if (b == 0 and n != a) or
           (b > 0 and (n < 1 or n < a or n % b != a % b))
          next
        end
      end
      # エネミー 条件確認
      if c.enemy_valid
        enemy = $game_troop.enemies[c.enemy_index]
        if enemy == nil or enemy.hp * 100.0 / enemy.maxhp > c.enemy_hp
          next
        end
      end
      # アクター 条件確認
      if c.actor_valid
        actor = $game_actors[c.actor_id]
        if actor == nil or actor.hp * 100.0 / actor.maxhp > c.actor_hp
          next
        end
      end
      # スイッチ 条件確認
      if c.switch_valid
        if $game_switches[c.switch_id] == false
          next
        end
      end
      # イベントをセットアップ
      $game_system.battle_interpreter.setup(page.list, 0)
      # このページのスパンが [バトル] か [ターン] の場合
      if page.span <= 1
        # 実行済みフラグをセット
        $game_temp.battle_event_flags[index] = true
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● メインフェーズ開始
  #--------------------------------------------------------------------------
  def start_phase4
    # フェーズ 4 に移行
    @phase = 4
    # ターン数カウント
    $game_temp.battle_turn += 1
    バトルイベント = $data_troops[@troop_id].pages +
    $data_troops[THJK::EVENT_SHARING_TROOP].pages
    # バトルイベントの全ページを検索
    #for index in 0...$data_troops[@troop_id].pages.size
    for index in 0...バトルイベント.size
      # イベントページを取得
      #page = バトルイベント.pages[index]
      page = バトルイベント[index]
      # このページのスパンが [ターン] の場合
      if page.span == 1
        # 実行済みフラグをクリア
        $game_temp.battle_event_flags[index] = false
      end
    end
    # アクターを非選択状態に設定
    @actor_index = -1
    @active_battler = nil
    # パーティコマンドウィンドウを有効化
    @party_command_window.active = false
    @party_command_window.visible = false
    # アクターコマンドウィンドウを無効化
    @actor_command_window.active = false
    @actor_command_window.visible = false
    # メインフェーズフラグをセット
    $game_temp.battle_main_phase = true
    # エネミーアクション作成
    for enemy in $game_troop.enemies
      enemy.make_action
    end
    # 行動順序作成
    make_action_orders
    # ステップ 1 に移行
    @phase4_step = 1
  end
end
#------------------------------------------------------------------------------

↑このままコピペすれば動くと思います。
こういう汎用的に使えそうなネタは素材化しやすくて良いですね~
(ちなみに、私は>>429の質問者でも回答者でもありません)
PR

2009/01/28 20:21 | Comments(0) | TrackBack() | テクニック

トラックバック

トラックバックURL:

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<Part14アップ | HOME | モジュールについて>>
忍者ブログ[PR]