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の質問者でも回答者でもありません)
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
トラックバック
トラックバックURL: