入れ替え用のダミーを敵グループに設定し、それとすり替えます。
MITライセンスですので、ご自由にお使いください。
VXace用の素材は初めて作ったため、競合リスクなどがあります。
コード: 全て選択
#==============================================================================
# ★ RGSS3_ExtraTroop Ver1.0
#==============================================================================
=begin
使い方
戦闘開始前に以下のスクリプトを実行します。
$game_troop.setup_extraTroop(敵グループ番号)
これにより、次回の戦闘に乱入が発生します。
$game_troop.setExtraSelectMode(1)
乱入するエネミーが1種類に限定されます。
注意点
呼び出されたグループのバトルイベントは動きません。
グループ内での番号が前の敵から優先的に出現します。
利用規約
MITライセンスです。
ご自由にお使いください。
=end
#==============================================================================
# □ 設定項目
#==============================================================================
module ManoTroopLink
#ランダムに選択
SELECTMODE_RANDOM=0
#単一の種類を選択し、それだけを選択
SELECTMODE_UNIQUE=1
end
class Game_Enemy < Game_Battler
def extraEnemy_MA?
#ここにダミーとするエネミーの番号を書いてください
#ダミーエネミーは連番で並んでいる必要があります
#複数指定の場合、それっぽい条件式を書いてください
return 31==@enemy_id
end
end
#==============================================================================
# ■ Game_Troop
#==============================================================================
class Game_Troop < Game_Unit
def extraEnemyFiltering_MA(enemyList)
puts @selectMode_MA
if @selectMode_MA==1#ManoTroopLink.SELECTMODE_UNIQUE
len =enemyList.length
return [enemyList[ rand(len) ]]
elsif
@selectMode_MA==0#ManoTroopLink.SELECTMODE_RANDOM
return enemyList.dup
end
return enemyList.dup
end
def selectNextForExtraEnemy_MA(index)
return index+1
end
alias mano_ExtraLink_game_troop_setup setup
def setup(troop_id)
mano_ExtraLink_game_troop_setup(troop_id)
import_extraTroop(@extraTroopId)
setup_extraTroop(0)
end
#--------------------------------------------------------------------------
# ● セットアップ
# troop_id : 追加出現させる敵グループ ID
#--------------------------------------------------------------------------
def import_extraTroop(troop_id)
if $data_troops[troop_id] ==nil
return
end
ex_troop = extraEnemyFiltering_MA($data_troops[troop_id].members)
index =selectNextForExtraEnemy_MA(0) % ex_troop.length
for enemy in members
if enemy.extraEnemy_MA?
enemy.transform(ex_troop[index].enemy_id)
enemy.appear
index =selectNextForExtraEnemy_MA(index) % ex_troop.length
end
end
end
def setup_extraTroop(troopId)
@extraTroopId =troopId
end
def setExtraSelectMode(mode)
puts('setMOde:'+mode.to_s)
@selectMode_MA =mode
end
end