[VX] 連鎖的なステートを作成する
ステートに関して、自作RPGのゲームシステムの都合上、
ステートの付加・解除のみでは実現できない仕様が
ありましたので、VX標準システムのステートの仕様を拡張して
自由度の高いステート操作を行えるようスクリプトを
改造しました。
スクリプト素材のダウンロードは↓
http://www.lm-t.com/blog/chain_state_110.zip
[2014/04/29追記]
機能追加を行いました。(Ver 1.10)
-----機能説明ここから-----
■基本情報■
1.機能概要
連鎖ステートスクリプトは、ステートの付与・解除だけでなく、
段階的なステート変化を可能にすることで、VX標準のステート変化では
出来なかった複雑なステート操作を可能にするものです。
これにより、下記のようなシステムが構築出来るようになります。
・攻撃力・防御力上昇などの補助スキルを重ねがけする。
・ダメージを与えるごとに攻撃力が増す。
・ターン経過ごとに属性攻撃が効かなくなる。
2.連鎖ステートの作成
連鎖ステートは、通常ステートと同様にデータベースのステート画面で
作成します。通常ステートと異なるのは、連鎖数分だけステートを
作成する必要があることです。
仮に、攻撃力を3段階に分けて上昇させることができる連鎖ステートを
作成する場合の例を下記に記載します。
(1) 連鎖ステートの作成
下記のように3個分のステートをステート画面で作成します。
ステートID 018~020 は例です。
連鎖ステートは、どのIDに作成しても構いません。
(2) リンクの記述
次に、作成した連鎖ステートがどのような順番で関連付いている
のか(リンク)を記述します。リンクの記述は「メモ」欄に
拡張オプションで記述します。(1)の例の場合は、下記のように
記述します。
[攻撃力上昇(第1段階)]
[攻撃力上昇(第2段階)]
[攻撃力上昇(第3段階)]
・chain
連鎖ステートの名前を指定します。
名前は何を指定しても構いませんが、使用可能な文字は
半角の英数字とアンダーバーのみです。
・prev
該当ステートの1段階前のステートのIDを指定します。
先頭ステートの場合は記述しなくても構いません。
・next
該当ステートの1段階後のステートのIDを指定します。
末尾ステートの場合は記述しなくても構いません。
(1)~(2)の作業で連鎖ステートの作成は完了です。
連鎖ステートの内容は、ゲームの起動時にテストされます。
記述の内容が誤っている場合、起動時にエラーメッセージが
表示されます。
3.連鎖ステートの適用方法
2章の手順で作成した連鎖ステートを実際にアクター・敵キャラに
適用するには、アイテム使用・スキル使用・武器攻撃のいずれかの
手段を用います。
連鎖ステートを適用する効果を持つアイテム・スキル・武器の
「メモ」欄に、拡張オプションで下記のように記述します。
(Ver1.10)
一度の動作で複数の連鎖ステートを適用したい場合は下記のように
記述してください。
<
chain="atk_up:1, def_up:1"
>
上記のように、「chain」オプションに
[適用する連鎖ステート] : [移動量]
の書式で記述します。この書式が誤っていると適用されません。
(Ver1.10)
Ver1.10以降では書式が誤っているとエラーメッセージが表示され、
ゲームが中断されます。また、存在しない名前の連鎖ステートを
記述しても同様にゲームが中断されます。
ゲームが中断するタイミングは、連鎖ステートの定義を記述した
スキル、アイテム、武器を使用した時です。
・適用する連鎖ステート
連鎖ステートに記述した、連鎖ステートの名前を指定します。
この連鎖ステートが適用されます。
・移動量
連鎖ステートを何段階分だけ移動するかを指定します。
正の値を指定すると、指定値だけ連鎖ステートを前進させます。
負の値を指定すると、指定値だけ連鎖ステートを後退させます。
連鎖ステートが適用されるかどうかはステートの設定、適用する対象の
ステート有効度の設定などに依存します。
この動作はVX標準と同様です。
4.補足説明
本章では、1~3章に記載していない補足説明を記載します。
(1) 解除条件について
連鎖ステートでは、ステートに指定する「解除条件」を満たした場合、
連鎖ステートを1段階だけ後退させます。
(2) イベントから連鎖ステートを付与・解除した場合
アクター・敵キャラに関わらず、イベントからは連鎖ステートの
段階的な操作は出来ません。
(3) 連鎖ステート移動時のメッセージ
連鎖ステートの適用によりステートが移動する場合、必ず
「移動前のステートのメッセージ」が表示されます。
ただし、例外として、連鎖ステートが解除される場合のみは
「先頭ステート」の解除時のメッセージが表示されます。
■導入手順■
1.導入前の準備
このスクリプトは
・拡張オプションスクリプト
上記スクリプトを最初に導入しておいてください。
すでに導入済みの場合はこの作業を省略できます。
2.スクリプトの追加と置換
(1) 追加
以下のスクリプトは標準のスクリプトには存在しないものなので、
手動で追加する必要があります。スクリプトの名前は各ファイル名
から「.txt」を除いたものにしてください。
ChainState.txt
(2) 置換
以下のスクリプトの内容を書き換える作業を行います。
Game_Battler.txt → Game_Battler
Scene_Title.txt → Scene_Title
上記で示したスクリプトに、以下のコメントで囲まれている部分を
手動で追加してください。
#T14-053 ADD--->
#<--------------
#T14-053 1.10 ADD--->
#<-------------------
変更する箇所を間違えないように注意してください。
●注意
置換作業を行う前に必ずバックアップを取っておくようにしてください。
元のスクリプトの状況によっては、置換を行うことでスクリプトが
正常に動作しなくなることがあります。
-----機能説明ここまで-----
ステートの付加・解除のみでは実現できない仕様が
ありましたので、VX標準システムのステートの仕様を拡張して
自由度の高いステート操作を行えるようスクリプトを
改造しました。
スクリプト素材のダウンロードは↓
http://www.lm-t.com/blog/chain_state_110.zip
[2014/04/29追記]
機能追加を行いました。(Ver 1.10)
-----機能説明ここから-----
■基本情報■
1.機能概要
連鎖ステートスクリプトは、ステートの付与・解除だけでなく、
段階的なステート変化を可能にすることで、VX標準のステート変化では
出来なかった複雑なステート操作を可能にするものです。
これにより、下記のようなシステムが構築出来るようになります。
・攻撃力・防御力上昇などの補助スキルを重ねがけする。
・ダメージを与えるごとに攻撃力が増す。
・ターン経過ごとに属性攻撃が効かなくなる。
2.連鎖ステートの作成
連鎖ステートは、通常ステートと同様にデータベースのステート画面で
作成します。通常ステートと異なるのは、連鎖数分だけステートを
作成する必要があることです。
仮に、攻撃力を3段階に分けて上昇させることができる連鎖ステートを
作成する場合の例を下記に記載します。
(1) 連鎖ステートの作成
下記のように3個分のステートをステート画面で作成します。
ステートID 018~020 は例です。
連鎖ステートは、どのIDに作成しても構いません。
(2) リンクの記述
次に、作成した連鎖ステートがどのような順番で関連付いている
のか(リンク)を記述します。リンクの記述は「メモ」欄に
拡張オプションで記述します。(1)の例の場合は、下記のように
記述します。
[攻撃力上昇(第1段階)]
[攻撃力上昇(第2段階)]
[攻撃力上昇(第3段階)]
・chain
連鎖ステートの名前を指定します。
名前は何を指定しても構いませんが、使用可能な文字は
半角の英数字とアンダーバーのみです。
・prev
該当ステートの1段階前のステートのIDを指定します。
先頭ステートの場合は記述しなくても構いません。
・next
該当ステートの1段階後のステートのIDを指定します。
末尾ステートの場合は記述しなくても構いません。
(1)~(2)の作業で連鎖ステートの作成は完了です。
連鎖ステートの内容は、ゲームの起動時にテストされます。
記述の内容が誤っている場合、起動時にエラーメッセージが
表示されます。
3.連鎖ステートの適用方法
2章の手順で作成した連鎖ステートを実際にアクター・敵キャラに
適用するには、アイテム使用・スキル使用・武器攻撃のいずれかの
手段を用います。
連鎖ステートを適用する効果を持つアイテム・スキル・武器の
「メモ」欄に、拡張オプションで下記のように記述します。
(Ver1.10)
一度の動作で複数の連鎖ステートを適用したい場合は下記のように
記述してください。
<
chain="atk_up:1, def_up:1"
>
上記のように、「chain」オプションに
[適用する連鎖ステート] : [移動量]
の書式で記述します。この書式が誤っていると適用されません。
(Ver1.10)
Ver1.10以降では書式が誤っているとエラーメッセージが表示され、
ゲームが中断されます。また、存在しない名前の連鎖ステートを
記述しても同様にゲームが中断されます。
ゲームが中断するタイミングは、連鎖ステートの定義を記述した
スキル、アイテム、武器を使用した時です。
・適用する連鎖ステート
連鎖ステートに記述した、連鎖ステートの名前を指定します。
この連鎖ステートが適用されます。
・移動量
連鎖ステートを何段階分だけ移動するかを指定します。
正の値を指定すると、指定値だけ連鎖ステートを前進させます。
負の値を指定すると、指定値だけ連鎖ステートを後退させます。
連鎖ステートが適用されるかどうかはステートの設定、適用する対象の
ステート有効度の設定などに依存します。
この動作はVX標準と同様です。
4.補足説明
本章では、1~3章に記載していない補足説明を記載します。
(1) 解除条件について
連鎖ステートでは、ステートに指定する「解除条件」を満たした場合、
連鎖ステートを1段階だけ後退させます。
(2) イベントから連鎖ステートを付与・解除した場合
アクター・敵キャラに関わらず、イベントからは連鎖ステートの
段階的な操作は出来ません。
(3) 連鎖ステート移動時のメッセージ
連鎖ステートの適用によりステートが移動する場合、必ず
「移動前のステートのメッセージ」が表示されます。
ただし、例外として、連鎖ステートが解除される場合のみは
「先頭ステート」の解除時のメッセージが表示されます。
■導入手順■
1.導入前の準備
このスクリプトは
・拡張オプションスクリプト
上記スクリプトを最初に導入しておいてください。
すでに導入済みの場合はこの作業を省略できます。
2.スクリプトの追加と置換
(1) 追加
以下のスクリプトは標準のスクリプトには存在しないものなので、
手動で追加する必要があります。スクリプトの名前は各ファイル名
から「.txt」を除いたものにしてください。
ChainState.txt
(2) 置換
以下のスクリプトの内容を書き換える作業を行います。
Game_Battler.txt → Game_Battler
Scene_Title.txt → Scene_Title
上記で示したスクリプトに、以下のコメントで囲まれている部分を
手動で追加してください。
#T14-053 ADD--->
#<--------------
#T14-053 1.10 ADD--->
#<-------------------
変更する箇所を間違えないように注意してください。
●注意
置換作業を行う前に必ずバックアップを取っておくようにしてください。
元のスクリプトの状況によっては、置換を行うことでスクリプトが
正常に動作しなくなることがあります。
-----機能説明ここまで-----
この記事へのコメント
記述の説明がなかったので色々やってみましたが駄目でした。
<
chain="atk_up:1"
>
<
chain="mag_up:1"
>
で一番下の記述が反映されます。
"○○","○○"だと手前の記述が反映されました。
このスクリプトでは、chainに複数の設定は書き込めないようになっています。
現在は追加分はコモンイベント等で設定しています