当サイトの運営者です。ゲーム制作とプラグイン開発が好きで、コミュニティに貢献したいと考えています。
RPGツクールMZでゲームを制作中です。
※プログラマ・エンジニアではありません。
NUUN シンボルエンカウント - NUUN_SymbolEncounter.js
シェア用テキスト:
▼NUUN シンボルエンカウント(NUUN様作) - NUUN_SymbolEncounter.js
https://plugin-mz.fungamemake.com/archives/5800
シンボルエンカウントシステムを実装します。
ふりがな:しんぼるえんかうんと
機能概要: シンボルエンカウントシステムを実装します。
利用規約(ライセンス): MITライセンス
作者:NUUN
作者サイト:https://github.com/nuun888
ダウンロードページ:https://raw.githubusercontent.com/nuun888/mz/master/NUU…
ファイル名:NUUN_SymbolEncounter.js
プラグインのヘルプ:
/*:ja
* @target MZ
* @plugindesc シンボルエンカウント
* @author NUUN
* @version 1.0.3
* @base NUUN_Base
* @base NUUN_EventRange
* @orderAfter NUUN_Base
*
* @help
* シンボルエンカウントシステムを実装します。
*
* このプラグインは以下のプラグインが必要になります。
* 共通処理 NUUN_Base
* https://github.com/nuun888/MZ/blob/master/README/Base.md
* イベント接触判定拡張 NUUN_EventRange
* https://github.com/nuun888/MZ/blob/master/README/EventRange.md
* 不意打ち、先制攻撃は別途プラグインが必要です。
*
* イベントのメモ欄
* <SymbolEncEnemy:[id]> このタグがあるイベントはシンボルエンカウントとなります。
* [id]:シンボルエンカウント設定ID
*
* イベントの1ページ目の実行内容で注釈
* <SymbolEncCond:[eval]> 出現条件
* [eval]:条件式
* イベントの条件の参照がマップ移動時のみ行われます。
*
* プラグインパラメータ
* 視認範囲
* <SymbolEncFindRange:besideRange,[lx],[rx]>
* 指定した横方向の範囲内の接触判定を拡大します。向きは無視されます。
* [lx]:イベントの接触左側範囲(正の数の整数)
* [ry]:イベントの接触右側範囲(正の数の整数)
*
* <SymbolEncFindRange:verticalRange,[uy],[dy]>
* 指定した縦方向の範囲内の接触判定を拡大します。向きは無視されます。
* [ux]:イベントの接触上側範囲(正の数の整数)
* [dy]:イベントの接触下側範囲(正の数の整数)
*
* <SymbolEncFindRange:frontRange,[range]>
* 指定したイベントからの真正面の範囲までの接触判定を拡大します。
* [range]:接触範囲(整数)
*
* <SymbolEncFindRange:range,[x],[y]>
* 指定した範囲を中心に接触判定を拡大します。4と記入した場合はイベントを中心に±2マスの範囲(5マス)でトリガーが起動します。
* [x]:イベントの接触横範囲(偶数の正の数の整数)
* [y]:イベントの接触縦範囲(偶数の正の数の整数)
*
* <SymbolEncFindRange:rangeEX,[x1],[y1],[x2],[y2],[x3],[y3],[x4],[y4]>
* イベントから指定した範囲内の接触判定を拡大します。
* イベント座標より左、上を指定する場合はそのまま負の数で記入してください。
* [x1]:イベントの接触範囲点AX座標(整数)
* [y1]:イベントの接触範囲点AY座標(整数)
* [x2]:イベントの接触範囲点BX座標(整数)
* [y2]:イベントの接触範囲点BY座標(整数)
* [x3]:イベントの接触範囲点CX座標(整数)
* [y3]:イベントの接触範囲点CY座標(整数)
* [x4]:イベントの接触範囲点DX座標(整数)
* [y4]:イベントの接触範囲点DY座標(整数)
*
* <SymbolEncFindRange:circle,[range],[rad]>
* 指定した半径からの接触判定を拡大します。角度を指定することで正面から角度に応じて接触判定を拡大します。
* [range]:接触範囲(整数)
* [rad]:角度(0~180°)※省略可 省略時は360°
*
* <SymbolEncFindRange:triangle,[range],[rad]>
* 指定した認識範囲に対して、正面からの角度に応じて接触判定を拡大します。
* [range]:正面からの接触範囲(整数)
* [rad]:角度(0~180°)
*
* 逃走条件
* e:このイベント
* m:パーティメンバー
* p:プレイヤー
*
* イベント1ページ目に探索時の設定を行います。
* 出現条件が一致しないと出現しなくなります。
* オプション、プライオリティは全ページ共通になります。(個別設定時は無効)
* 自立移動は探索時の設定になります。
* トリガーはプレイヤーとイベントが接触したときに戦闘モードに移行します。(自動実行、並列処理以外設定)
*
* 個別設定
* 各ページのイベントの実行内容に注釈で記入
* 各処理を独自に設定します。()は()内のトリガーで設定されます。
* <SymbolEncMode:[mode]>
* [mode]
* 0:探索
* 1:発見時(並列実行)
* 2:追跡
* 3:退避
* 4:戦闘(自動実行)
* 5:見失う(並列実行)
* 6:勝利(並列実行)
* 7:逃走成功(並列実行)
* 8:所定位置に戻る
*
* 追跡、退避、所定位置を個別設定している場合は接触時にイベントページ1の実行内容は実行されず現在のイベントページの
* 実行内容が実行されます。
*
*
* プラグインコマンド
* 通常のモード移行を無視し指定のモードに移行することができます。
*
* スクリプト
* this.getSymbolEncSpeed()
* シンボルエンカウントの現在の速度を返します。
*
* this.getSymbolEncMode()
* シンボルエンカウントの現在のモードIDを返します。
*
* this.getSymbolEncDefeat()
* シンボルエンカウントの現在のモードが撃破時か返します。
*
*
* 利用規約
* このプラグインはMITライセンスで配布しています。
*
* 更新履歴
* 2023/4/29 Ver.1.0.3
* プレイヤーを見失った時の処理が正しく行われていなかった問題を修正。
* 2023/2/17 Ver.1.0.2
* 無敵状態を設定しても連続で戦闘が開始してしまう問題を修正。
* ページが該当しなかったときに初期化するように修正。
* シンボルエンカウンターを表示しないスイッチを追加。
* 2023/2/12 Ver.1.0.1
* 同一シンボルと再戦闘時に先制不意打ちが実行されなくなる問題を修正。
* 2023/2/7 Ver.1.0.0
* 初版
*
*
* @command SymbolEncTrackingMode
* @desc イベントの状態を追跡モードに変更します。
* @text イベント追跡モード変更
*
* @command SymbolEncBattleMode
* @desc イベントの状態を戦闘モードに変更します。
* @text イベント戦闘モード変更
*
* @command SymbolEncEscapeMode
* @desc イベントの状態を逃走成功モードに変更します。
* @text イベント逃走成功モード変更
*
* @command SymbolEncVictoryMode
* @desc イベントの状態を勝利モードに変更します。
* @text イベント勝利モード変更
*
* @command SymbolEncResetMode
* @desc イベントの状態を初期モードに変更します。
* @text イベント初期モード変更
*
*
*
* @param SymbolEncountSetting
* @type struct<SymbolEncountList>[]
* @desc シンボルエンカウントの設定を行います。
* @text シンボルエンカウント設定
* @default [”{”Name”:””,”SymbolEncountRange”:”circle,8,45”,”FindMode”:”0”,”NotObstacles”:”false”,”SightBush”:”50”,”PlayerSearch”:”10”,”GoHome”:”false”,”AllCharacterImg”:”true”,”CommonEvent”:”0”,”FindSetting”:”------------------------------”,”FindBalloonId”:”1”,”FindSE”:”{\”name\”:\”Attack1\”,\”volume\”:\”90\”,\”pitch\”:\”100\”,\”pan\”:\”0\”}”,”FindCommonEvent”:”0”,”TrackingSetting”:”------------------------------”,”TrackingSpeed”:”5”,”SightRange”:”12”,”EscapeSetting”:”------------------------------”,”SightEscapeEval”:””,”EscapeMode”:”2”,”EscapeSpeed”:”5”,”SightEscapeRange”:”12”,”LoseSetting”:”------------------------------”,”LoseBalloonId”:”7”,”LoseSE”:””,”LoseCommonEvent”:”0”,”BattleSetting”:”------------------------------”,”BattleCommonEvent”:”0”,”DefeatSetting”:”------------------------------”,”DefeatCommonEvent”:”0”,”PlayerEscapeSetting”:”------------------------------”,”PlayerEscapeCommonEvent”:”0”}”]
*
* @param EscapeInvincibleFrame
* @text プレイヤー逃走成功時無敵フレーム数
* @desc 逃走成功時のプレイヤーの無敵フレーム数を指定します。0で無効
* @type number
* @default 200
*
* @param VictoryInvincibleFrame
* @text プレイヤー勝利時無敵フレーム数
* @desc 勝利時のプレイヤーの無敵フレーム数を指定します。0で無効
* @type number
* @default 0
*
* @param EventFreezesFrame
* @text 逃走成功時敵硬直フレーム
* @desc 逃走成功時のシンボルエンカウンターの硬直フレーム。
* @type number
* @default 200
*
* @param SearchLimit
* @text プレイヤーサーチ範囲
* @desc プレイヤーのサーチ範囲を指定します。
* @type number
* @default 12
*
* @param FindFollower
* @text フォロワー認識
* @desc フォロワーを認識します。接触時はフォロワーも接触対象になります。
* @type boolean
* @default false
*
* @param SymbolEncountHideSwitch
* @desc シンボルエンカウンターを非表示にするスイッチ。
* @text シンボルエンカウンター非表示スイッチ
* @type switch
* @default 0
*
*/