RPGツクールVX_SRPG

● 目次

ダウンロード
注意
操作方法
用語解説
設定タグ
タグ以外の設定
スクリプト側へ変数を通して渡す値
スクリプト側からゲーム変数に渡される値
スクリプトコマンド
スクリプト改造例
ディレクターズカット版

● 概要

シミュレーションRPGを作成する機能を追加します。





● ダウンロード / 更新履歴

▼ RGSS2_SRPGをダウンロード
2010.05.08 update / zip形式 / 323 KB

2010.05.08
・エネミーユニットの移動目標座標を解除する機能を追加
 set_home(8) のようにイベントIDだけを指定すれば解除できます。
・会話スキルをSRPG2から移植
 メモ欄に <会話> というタグが含まれているスキルを会話スキルとし、
 対象イベントの現在のイベントページを起動します。
 ただし、トリガーが『決定ボタン』の場合に限ります。

2010.03.25
・味方の増援機能を追加 set_actor(event_id, member_id) で指定したイベントIDを
 アクターユニットにします、member_idは編成シーンでの並び順が対応します(先頭 = 0)
 マップ名の n に 4 を指定して、マップの味方初期配置を3、増援機能で余った
 メンバーを呼び出すというふうに使ってください。この例ではset_actor(event_id, 3)
・マップIDごとに強制出撃アクターを設定する機能を追加、設定項目の一番下にあります

2010.03.17
・敵キャラの通常攻撃アニメーション設定を反撃と協力攻撃にも適用
・敵キャラの防御が反撃率計算中に解除されてしまう不具合を修正
・PNPCに蘇生スキルを使用するとエラー落ちする不具合を修正
・編成シーンからBボタンでマップへ戻れるようにする設定を追加
 戻った場合 $game_temp.srpg_member の値が nil になります
・敵ターンにもダメージ予測を表示する設定を追加

2010.03.10
・エネミーのステート付加スキルが結果に関わらずMISS表示になる不具合を修正
・勝敗決定時にユニットが消えることがある不具合を修正
・ダメージ予測からランダム要素(クリティカル、0ダメ補正)を排除
・エネミーの通常攻撃アニメーションをメモ欄で設定できるようにしました
 (メモ欄に<anime=アニメーションID>という文字列で設定します)

これ以前の更新履歴は付属の log.txt をご覧ください。

● 注意

アップデートの際、旧バージョンとの互換性は保持していくつもりですが、
以下に該当する場合は今後のアップデートによって不具合が生じる可能性があります。
・イベントコマンド『スクリプト』でスクリプトコマンドにないメソッドを使用している
・スクリプトを独自に改造している

このスクリプトを利用したことで、なんらかの不利益が生じた場合でも
制作者はその責任を負いません、ご利用は自己責任でお願いします。

感想、質問、バグ報告、機能追加の要望などは掲示板へどうぞ
アクセス制限にひっかかり、書き込めない場合は拍手へ。
要望には必ず応えられるわけではありません、ご了承ください。

● 操作方法

SRPGシーン
・カーソルの移動 … 十字キー
・カーソルの高速移動 … Aボタンを押しながらカーソル移動
・メインメニュー … Xボタン
・決定 … Cボタン
・キャンセル … Bボタン
・ユニット選択 … L,Rボタン
・ユニットメニュー … ユニット上でCボタン
・移動のキャンセル … 移動済みのユニット上でBボタン(行動前のみ)
・タイルIDの取得 … F5(テストプレイ時のみ)

編成シーン
・ステータス表示 … キャラクター選択中にAボタン

● 用語解説

・飛行属性
飛行属性を持ったユニットはマップの通行判定と敵対勢力を無視して移動できます。

・協力攻撃
隣接する敵に通常攻撃を実行した時、自分と隣接する仲間が設定された確率で一緒に攻撃してくれます。
隣接するセルとは上下左右の4つのセルを指します。
エネミーの協力攻撃発動率はエネミーのメモ欄に <coop=80> と設定(値は%)
アクターは設定項目のCOOP_RATEにて職業別に設定します。
一番最初に攻撃するユニットの発動率は判定に影響しません。

● 設定タグ

マップ名やエネミーのメモ欄などに記述することで各種パラメータなどの変更を行います。


・マップ名
<SRPG=上限人数> … マップをSRPG用マップとして扱うようになります

・イベント名
<pl=n> … パーティの n 番目にいるアクターをユニットとして配置します
<en=n> … ID n の敵キャラをユニットとして配置します
<guard> … ユニットを保護対象として扱います
<boss> … ユニットを撃破対象として扱います
<npc> … 敵キャラユニットをNPC(第三勢力)として扱います
<pnpc> … 敵キャラユニットをPNPC(アクター側NPC)として扱います

・職業名
<move=n> … この職業に就いているアクターの移動力を n に設定します
<counter=n> … この職業に就いているアクターの反撃率を n% に設定します

・敵キャラのメモ欄
<face=ファイル名,index> … 敵キャラの顔グラフィックを設定します
<move=n> … 敵キャラの移動力を n% に設定します
<counter=n> … 敵キャラの反撃率を n に設定します
<scope=n> … 敵キャラの索敵範囲を n に設定します
<away=n> … 敵キャラが逃走を始める残りHPを n% に設定します
<射程=n> … 敵キャラの通常攻撃の射程距離を n に設定します
<範囲=n> … 敵キャラの通常攻撃の効果範囲を n に設定します
<射程形状=n> … 敵キャラの通常攻撃の射程形状を n に設定します(0=通常,1=直線,2=箱)
<範囲形状=n> … 敵キャラの通常攻撃の効果形状を n に設定します(0=通常,1=直線,2=箱)
<coop=n> … 敵キャラの協力攻撃発動確率を n% に設定します
<class=職業名> … ステータスに表示するダミー職業を設定
<level=n> … ステータスに表示するダミーレベルを設定
<equip=n1,n2,n3,n4,n5> … ステータスに表示するダミー装備を設定
     n1〜n5に武器ID〜装飾品IDを指定してください。
<anime=n> … 通常攻撃時にID n のアニメーションを再生します(省略時 1)

・スキルのメモ欄
<射程=n> … スキルの射程距離を n に設定します
<範囲=n> … スキルの効果範囲を n に設定します
<射程形状=n> … スキルの射程形状を n に設定します(0=通常,1=直線,2=箱)
<範囲形状=n> … スキルの効果形状を n に設定します(0=通常,1=直線,2=箱)
<穴=n> … スキルの攻撃不可範囲を n に設定します
<無差別> … スキルの効果に敵味方の区別がなくなります
<自分以外> … スキルの効果が使用者に適用されなくなります
<押し出し=n> … スキルのノックバック距離を n に設定します
<移動不可> … スキルを移動不可スキルに設定します
<会話> … 対象ユニットのイベントを起動するスキルになります
      対象のトリガーが決定ボタンでない場合は起動しません。

・武器のメモ欄
<射程=n> … この武器で通常攻撃を行うときの射程距離を n に設定します
<範囲=n> … この武器で通常攻撃を行うときの効果範囲を n に設定します
<射程形状=n> … この武器で通常攻撃を行うときの射程形状を n に設定します(0=通常,1=直線,2=箱)
<範囲形状=n> … この武器で通常攻撃を行うときの効果形状を n に設定します(0=通常,1=直線,2=箱)
<穴=n> … この武器で通常攻撃を行うときの攻撃不可範囲を n に設定します

・装備品のメモ欄
<move=n> … 装備したアクターの移動力が n 増えます
<counter=n> … 装備したアクターの反撃率が n% 増えます

・アイテムのメモ欄
スキルと同じタグが使えます

・ステートのメモ欄
<ドンムブ> … このステートにかかっている間は移動ができません
<ドンアク> … このステートにかかっている間は行動(反撃,協力含む)ができません
<移動-n> … このステートにかかっている間は移動力が n 下がります
<移動+n> … このステートにかかっている間は移動力が n 上がります
<飛行> … このステートにかかっている間は通行不可セルを無視して移動できます

● タグ以外の設定

スクリプトエディタを開き "設定項目" 内の記述を変更することで
様々な設定を変更することができます。

・エネミーの飛行属性 エネミーの飛行属性はデータベース>エネミー>オプション "空中に配置" に
チェックを入れることで設定できます。

・強制出撃ユニット オプション『自動戦闘』にチェックが入っているアクターは
編成画面で出撃が固定され強制出撃となります。

・ユニットのHPが0になるとセルフスイッチDがオンになります、これを条件とした
 自動実行のイベントページを用意することで特殊な演出を行います。

・ターン経過による決着、ボス撃破、保護対象撃破による決着は
 スクリプト側では判定しません。ターン数が代入されている変数(設定項目参照)
 の値を条件とした自動実行イベント、ボスユニット、保護対象ユニットの
 セルフスイッチDを条件とした自動実行イベントに終了処理を書いてください。
 スクリプト側ではメインメニューの情報に勝敗条件を表示することしかしません。

● スクリプト側へ変数を通して渡す値

以下は初期設定の場合です、利用する変数は自由に変更することができます

・変数 1 番の値を勝敗の決定条件として扱います
1 … 敵全滅で勝利
2 … 味方全滅で敗北
4 … nターン経過で勝利
8 … nターン経過で敗北
16 … 目標セル到達で勝利
複数の条件を使用する場合は値の合計値を代入してください。

・変数 2 番の値を勝敗決定条件のターン数として扱います

● スクリプト側からゲーム変数に渡される値

以下は初期設定の場合です、利用する変数は自由に変更することができます

・現在のターン数が変数 3 番に代入される
・敵が全滅したら変数 4 番に 1 が代入される
・味方が全滅したら変数 4 番に 2 が代入される
・味方ターン開始時に変数 5 番に 1 が代入される
・敵ターン開始時に変数 5 番に 2 が代入される

● スクリプトコマンド

イベントコマンドの "スクリプト" にて以下のような機能が使えます
・focus_event(n) … イベントID n へカーソル(つまりカメラ)を移動
・focus_xy(x, y) … 座標 x, y へカーソル(つまりカメラ)を移動
・focus_actor … 生きている味方ユニットにカーソルを移動
・delete_event(n) … イベントIDnのユニットのHPを強制的に0にします
・set_enemy(event_id, enemy_id) … event_id番のイベントを
 enemy_id番のエネミーとしてユニット化します。
・set_actor(event_id, member_id) … set_enemyの味方バージョンです
 member_idには編成シーンでの並び順を指定します(先頭 = 0)。
・set_npc(event_id, enemy_id) … set_enemyのnpc版です。
・set_pnpc(event_id, enemy_id) … set_enemyのpnpc版です。
・set_scope(event_id, n) … エネミーの索敵距離を n に変更します
・set_home(event_id, x, y)  … エネミーの移動目標座標を(x, y)に設定します
・get_hp(event_id) … ユニットの現在のHPを取得します
・save_pos(event_id) … 移動キャンセルの元位置を現在位置にセット
・reset_selfswitch … 今いるマップの全セルフスイッチをオフにします
・get_unit_id(event_id, var_id) … var_id 番のゲーム変数に event_id 番の
 イベントのアクターID(エネミーID)が代入されます。ただし、エネミーだった
 場合はIDが負の値になります。変数IDを省略した場合は変数への代入は行われず
 値だけが返ってきます。


● スクリプト改造例

掲示板でのレスの一部を残しておきます。

・敏捷性を移動力として扱いたい
 変更する部分は"キャラクター"にあるGame_Eventクラスの
 get_move_powerメソッドです(たぶん310行目あたり)
 メソッドが返す値 n を敏捷性にしてしまえばいいので
 n = @move_power
 という1行を
 n = @unit.agi
 に変更すればOKです。
 ただし、敏捷性の値が大きすぎると移動処理の負荷がとんでもないことになり
 ゲームが止まってしまう場合があります。

● ディレクターズカット版

現行バージョンとの互換性を維持しながら新機能を追加していくのが
難しくなってしまったため、別バージョンという扱いで大掛かりな修正を加えたものです。
既存機能の数点を失った代わりに『向き変更』『装備変更』『セーブ』等の新機能が追加されています。

▼ ダウンロードと解説のページ