当サイトの運営者です。ゲーム制作とプラグイン開発が好きで、コミュニティに貢献したいと考えています。
RPGツクールMZでゲームを制作中です。
※プログラマ・エンジニアではありません。
SRPGコンバータMV - SRPG_core.js

▼SRPGコンバータMV(神鏡学斗様作) - SRPG_core.js
https://plugin.fungamemake.com/archives/12624
マップ上でSRPG(タクティクス)方式の戦闘を実行します。
ふりがな:しみゅれーしょんろーるぷれいんぐげーむこんばーたーえむぶい
機能概要: マップ上でSRPG(タクティクス)方式の戦闘を実行します。
利用規約(ライセンス): MITライセンス
作者:神鏡学斗
作者サイト:https://x.com/ham_mikagami
ダウンロードページ:https://raw.githubusercontent.com/Echizen-ham/SRPGcore/…
ファイル名:SRPG_core.js
プラグインのヘルプ:
/*:ja
* @plugindesc マップ上でSRPG(タクティクス)方式の戦闘を実行します。
* @author 神鏡学斗
*
* @param srpgTroopID
* @desc SRPGコンバータが占有するトループIDです。SRPG戦闘では、このIDのトループが使用されます。
* @default 1
*
* @param srpgBattleSwitchID
* @desc SRPG戦闘中であるかを格納するスイッチのIDを指定します。戦闘中はONになります。
* @default 1
*
* @param existActorVarID
* @desc 存在しているアクターの人数が代入される変数のIDを指定します。存在している=戦闘不能・隠れでない。
* @default 1
*
* @param existEnemyVarID
* @desc 存在しているエネミーの人数が代入される変数のIDを指定します。存在している=戦闘不能・隠れでない。
* @default 2
*
* @param turnVarID
* @desc 経過ターン数が代入される変数のIDを指定します。最初のターンは『ターン1』です。
* @default 3
*
* @param activeEventID
* @desc 行動中のユニットのイベントIDが代入される変数のIDを指定します。
* @default 4
*
* @param targetEventID
* @desc 攻撃対象のユニットのイベントIDが代入される変数のIDを指定します。回復や補助も含みます。
* @default 5
*
* @param defaultMove
* @desc クラスやエネミーのメモで移動力が設定されていない場合、この値が適用されます。
* @default 4
*
* @param srpgBattleExpRate
* @desc 敵を倒さなかった時に、設定された経験値の何割を入手するか。0 ~ 1.0で設定。
* @default 0.4
*
* @param srpgBattleExpRateForActors
* @desc 味方に対して行動した時に、レベルアップに必要な経験値の何割を入手するか。0 ~ 1.0で設定。
* @default 0.1
*
* @param srpgBattleQuickLaunch
* @desc 戦闘開始エフェクトを高速化します。falseだと通常と同じになります。(true / false)
* @default true
*
* @param srpgActorCommandEquip
* @desc アクターコマンドに『装備』を追加します。(true / false)
* @default true
*
* @param srpgWinLoseConditionCommand
* @desc メニューコマンドに『勝敗条件』を追加します。(true / false)
* @default true
*
* @param srpgBattleEndAllHeal
* @desc 戦闘終了後に自動的に味方全員を全回復します。falseだと自動回復しません。(true / false)
* @default true
*
* @param srpgStandUnitSkip
* @desc モードが"stand"になっているユニットが待機する場合、カーソル移動をスキップします。(true / false)
* @default true
*
* @param srpgPredictionWindowMode
* @desc 戦闘予測ウィンドウの表示を変更します。(1:フル / 2:攻撃名のみ / 3:表示なし)
* @default 1
*
* @param srpgAutoBattleStateId
* @desc オート戦闘が選ばれた時に付与するステートのIDです。1行動で解除・自動戦闘のステートを使います(0で無効化)。
* @default 14
*
* @param srpgBestSearchRouteSize
* @desc 攻撃可能な対象がいない時、最も近い敵までのルートを探索します。その索敵距離です(0で無効化)。
* @default 20
*
* @param srpgDamageDirectionChange
* @desc 攻撃を受けた際に相手の方へ向きを補正します。(true / false)
* @default true
*
* @param enemyDefaultClass
* @desc エネミーに職業(srpgClass)が設定されていない場合、ここの名前が表示されます。
* @default エネミー
*
* @param textSrpgEquip
* @desc 装備(武器)を表す用語です。SRPGのステータスウィンドウで表示されます。
* @default 装備
*
* @param textSrpgMove
* @desc 移動力を表す用語です。SRPGのステータスウィンドウで表示されます。
* @default 移動力
*
* @param textSrpgRange
* @desc 攻撃射程を表す用語です。SRPGのステータスウィンドウで表示されます。
* @default 射程
*
* @param textSrpgWait
* @desc 待機を表す用語です。アクターコマンドウィンドウで表示されます。
* @default 待機
*
* @param textSrpgWinLoseCondition
* @desc 勝敗条件を表す用語です。メニューコマンドウィンドウで表示されます。
* @default 勝敗条件
*
* @param textSrpgWinCondition
* @desc 勝利条件を表す用語です。勝敗条件ウィンドウで表示されます。
* @default 勝敗条件
*
* @param textSrpgLoseCondition
* @desc 敗北条件を表す用語です。勝敗条件ウィンドウで表示されます。
* @default 勝敗条件
*
* @param textSrpgTurnEnd
* @desc ターン終了を表す用語です。メニュー画面で表示されます。
* @default ターン終了
*
* @param textSrpgAutoBattle
* @desc オート戦闘を表す用語です。メニュー画面で表示されます。
* @default オート戦闘
*
*
* @requiredAssets img/characters/srpg_set
* @requiredAssets audio/se/Item3
* @requiredAssets audio/se/Up4
*
* @noteParam characterName
* @noteRequire 1
* @noteDir img/characters/
* @noteType file
* @noteData enemies
*
* @noteParam faceName
* @noteRequire 1
* @noteDir img/faces/
* @noteType file
* @noteData enemies
*
* @help
*
* 注意
* SRPG戦闘中のマップ移動(イベントコマンド『場所移動』)はできません。
* 戦闘用のマップに移動してから、プラグインコマンド SRPGBattle Startを使用してください。
* また、プラグインコマンド SRPGBattle Endを使用してから、他のマップに移動してください。
*
* プラグインコマンド:
* SRPGBattle Start # SRPG戦闘を開始する。
* SRPGBattle End # SRPG戦闘を終了する。
*
* イベントのメモ欄:
* <type:actor> # そのイベントはアクターになります(<id:X>を組み合わせて使います)。
* <type:enemy> # そのイベントはエネミーになります(<id:X>を組み合わせて使います)。
* <id:X> # そのイベントはXで指定したIDのアクター/エネミーになります(Xは半角数字)。
* <SearchItem:true> # そのイベントがアクターの場合、ユニットイベントがある場合は優先してそこに移動するようになります(1度だけ)。
*
* <mode:normal> # そのユニットの行動パターンを「通常」に設定します(設定しない場合、自動で「通常」になります)。
* <mode:stand> # そのユニットの行動パターンを「相手が近づくまで待機」に設定します。
* <mode:regionUp> # そのユニットの行動パターンを「相手が近づくまでより大きなリージョンIDに向かう」に設定します。
* <mode:regionDown> # そのユニットの行動パターンを「相手が近づくまでより小さなリージョンIDに向かう」に設定します。
* <mode:absRegionUp> # そのユニットの行動パターンを「常により大きなリージョンIDに向かう」に設定します。
* <mode:absRegionDown># そのユニットの行動パターンを「常により小さなリージョンIDに向かう」に設定します。
* <mode:aimingEvent> # そのユニットの行動パターンを「指定したIDのイベントを狙う」に設定します(<targetId:X>を組み合わせて使います)。
* <mode:aimingActor> # そのユニットの行動パターンを「指定したIDのアクターを狙う」に設定します(<targetId:X>を組み合わせて使います)。
* <targetId:X> # 指定したIDのイベント/アクターを狙います。
*
* <type:unitEvent> # そのイベントはアクターがその上で行動・待機した時に起動するようになります。
* <type:playerEvent> # そのイベントはプレイヤー(カーソル)で決定キーを押したときに起動します。通過できますが待機は出来ません。
* <type:object> # そのイベントはアクターもエネミーも通行できない障害物になります(画像が無い場合は通行可能)。
* <type:battleStart> # そのイベントは戦闘開始時に一度だけ自動で実行されます。
* <type:actorTurn> # そのイベントはアクターターンの開始時に自動で実行されます。
* <type:enemyTurn> # そのイベントはエネミーターンの開始時に自動で実行されます。
* <type:turnEnd> # そのイベントはターン終了時に自動で実行されます。
* <type:afterAction> # そのイベントはアクター・エネミーの行動終了時に自動で実行されます。
*
* 職業のメモ欄:
* <srpgMove:X> # その職業のアクターの移動力をXに設定します。
* <srpgThroughTag:X> # X以下の地形タグが設定されたタイルを通過できます(地形タグ 0 には無効)。
*
* スキル・アイテムのメモ欄:
* <srpgRange:X> # そのスキルの射程をXに設定します。
* # srpgRangeを 0 に設定すると自分自身を対象にするスキルになります(範囲は「使用者」にしてください)。
* # srpgRangeを -1 に設定すると武器・エネミーのメモの<weaponRange>が適用されます。
* <srpgMinRange:X> # そのスキルの最低射程をXに設定します。
* <specialRange:X> # 射程の形状を特殊化します(例:<specialRange:queen>)。
* # queen:8方向、luke:直線、bishop:斜め、knight:8方向以外
*
* 武器のメモ欄:
* <weaponRange:X> # その武器の射程をXに設定します。
* <weaponMinRange:X> # その武器の最低射程をXに設定します。
* <srpgWeaponSkill:X># 攻撃時に、通常攻撃(スキルID 1)ではなく、Xで設定したIDのスキルを発動する武器になります。
* <srpgCounter:false># 設定すると、相手からの攻撃に対して反撃しない武器になります(反撃率とは異なる)。
* <srpgMovePlus:X> # Xの分だけ移動力を変化させます。マイナスの値も設定可能です。
* <srpgThroughTag:X> # X以下の地形タグが設定されたタイルを通過できます(地形タグ 0 には無効)。
*
* 防具のメモ欄:
* <srpgMovePlus:X> # Xの分だけ移動力を変化させます。マイナスの値も設定可能です。
* <srpgThroughTag:X> # X以下の地形タグが設定されたタイルを通過できます(地形タグ 0 には無効)。
*
* エネミーのメモ欄:
* <characterName:X> # XにSRPG戦闘中に使用するキャラクターグラフィックのファイル名を入力します。
* <characterIndex:X> # XにSRPG戦闘中に使用するキャラクターグラフィックの何番を使うか入力します。
* # 画像ファイルの位置で、 0 1 2 3
* # 4 5 6 7 となっています。
* <faceName:X> # XにSRPG戦闘中に使用する顔グラフィックのファイル名を入力します。
* <faceIndex:X> # XにSRPG戦闘中に使用する顔グラフィックの何番を使うか入力します(番号は上記と同様)。
* <srpgClass:X> # XにSRPGのステータス画面で表示するクラス名を入力します(実際には影響しません)。
* <srpgLevel:X> # XにSRPGのステータス画面で表示するレベルを入力します(実際には影響しません)。
* <srpgMove:X> # そのエネミーの移動力をXに設定します。
* <weaponRange:X> # そのエネミーの通常攻撃の射程距離をXに設定します(装備武器未設定時)。
* <weaponMinRange:X> # そのエネミーの通常攻撃の最低射程をXに設定します(装備武器未設定時)。
* <srpgWeapon:X> # そのエネミーが装備する武器のIDをXに設定します(能力に影響します)。
* <srpgThroughTag:X> # X以下の地形タグが設定されたタイルを通過できます(地形タグ 0 には無効)。
*
* ステートのメモ欄:
* <srpgMovePlus:X> # そのステートの間、Xの分だけ移動力を変化させます。マイナスの値も設定可能です。
* <srpgThroughTag:X> # X以下の地形タグが設定されたタイルを通過できます(地形タグ 0 には無効)。
*
* イベントコマンド => スクリプト:
* this.EventDistance(VariableID, EventID, EventID); # 指定したIDのイベント間の距離を変数に格納します。
* this.ActorDistance(VariableID, ActorID, ActorID); # 指定したIDのアクター間の距離を変数に格納します。
* this.playerMoveTo(X, Y); # カーソル(プレイヤー)を座標(X,Y)に移動させます。
* this.addActor(EventID, ActorID); # 指定したIDのイベントをアクターにします。
* this.addEnemy(EventID, EnemyID); # 指定したIDのイベントをエネミーにします。
* this.setBattleMode(EventID, 'mode');# 指定したIDのイベントの行動パターンを変更します。
* this.setTargetId(EventID, ID); # 指定したIDのイベントのターゲットIDを変更します。
* this.fromActorMinimumDistance(VariableID, EventID); # 指定したイベントと全てのアクターの中で
* # 最も近いアクターとの距離を変数に格納します。
* this.isUnitDead(SwitchID, EventID); # 指定したIDのイベントが戦闘不能かどうかをスイッチに格納します。
* this.isEventIdXy(VariableID, X, Y); # 指定した座標(X, Y)のイベントIDを変数に格納します。
* this.unitRecoverAll(EventID); # 指定したイベントIDのユニットを全回復します(生存している時のみ)。
* this.unitAddState(EventId, StateId);# 指定したイベントIDのユニットに指定したIDのステートを付与します。
* this.turnEnd(); # プレイヤーのターンを終了します(メニューの「ターン終了」と同じ機能)
* this.isSubPhaseNormal(SwitchID); # 操作するユニットを選択する状態かをスイッチに格納します(ONだとメニューが開ける状態と同じ)。
* $gameSystem.clearSrpgWinLoseCondition(); # 勝敗条件をリセットします。新しい条件を設定する前に実行してください。
* $gameSystem.setSrpgWinCondition('text'); # 勝利条件をセットします(textに文字列)。複数の条件を記述する場合は、複数回実行してください。
* $gameSystem.setSrpgLoseCondition('text'); # 敗北条件をセットします(textに文字列)。複数の条件を記述する場合は、複数回実行してください。
*
*/