戦闘開始時に異なる敵グループを乱入させる

フォーラムルール
素材の利用規約を決めたいけど、どんなことを書けばいいのか分からない場合は、
素材のテンプレートをご利用下さい。
アバター
しぐれん
記事: 543
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

戦闘開始時に異なる敵グループを乱入させる

投稿記事by しぐれん » 2018年2月12日(月) 06:29

戦闘開始時に異なる敵グループを乱入させるスクリプト素材です。
入れ替え用のダミーを敵グループに設定し、それとすり替えます。

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
 
 

有償でプラグイン作成リクエストに対応しています。
ご興味のある方は、こちらのリンクからどうぞ。
ツクールMV・プラグイン作成依頼受付

“Ace:スクリプト素材(RGSS3)” へ戻る