FrontPage 新規 編集 検索 一覧 ヘルプ

DQScripts

RGSSライブラリ

DQ風システムスクリプト

ドラゴンクエスト風システムスクリプトを作成するプロジェクトです。

主な機能

ダウンロード

DQScripts

導入方法

DQScritpsを導入するには、いくつかの方法があります。

1ファイルバージョン

  1. デモアーカイブ等から1ファイルバージョンのファイルを用意
  2. RPGツクールXPでプロジェクトを新規作成
  3. 1ファイルバージョンのDQScritpsをテキストエディタで開き全てコピー
  4. RPGツクールXPで「スクリプトエディタ」を開く(F11)
  5. スクリプトエディタのMainスクリプト上に新しいスクリプトを挿入
  6. コピーしたDQScritpsを貼り付け
  7. プロジェクトを保存しテスト実行(F12)

Scripts.rxdata

TODO あとで記述

CVSから最新のスクリプトを作成する方法

TODO あとで記述

基本設定

DQScritpsを導入するとスクリプトを含め、何点かプロジェクトを修正する必要があります。

タイトルマップ設定

DQScriptsでは、通常のタイトルは、1枚のタイトル画像を表示しプレイヤーが何かキーを押すと、タイトルメニューが表示されるようになっています。タイトルメニューが表示されてるときの背景は、プロジェクト内のマップが使用されます。

導入の初期設定では、マップID=1のマップがタイトルメニューの背景に使用されます。これを変更する場合は、スクリプトエディタを開き「TITLE_MAP_ID」を変更してください。

# タイトルに使用するマップID(TODO 自動的に探す方法に変更)
TITLE_MAP_ID = 1

タイトル用マップでは、自動イベントや並行処理イベントを動かすことができます。

ただし以下のイベントコマンドは出来ません。

コモンイベント設定

TODOなかまと話すのイベント作成方法を書く(まだ完成してない…)

隊列歩行設定

イベント等で、隊列歩行スクリプトが表示しているパーティメンバーを一時的に消したい場合、スイッチで切り替えられるように設定できます。

# ●透明状態用スイッチ設定
# true だとスイッチ制御を行う
# TRANSPARENT_SWITCH = true
TRANSPARENT_SWITCH = false
(TODO 自動的に探す方法に変更予定)
# ●透明状態用スイッチ番号
# TRANSPARENT_SWITCH が true で、この番号のスイッチがONだと透明になる
TRANSPARENT_SWITCHES_INDEX = 20
(TODO 自動的に探す方法に変更予定)

銀行設定

ゲーム内に変数を利用して銀行を作る場合、銀行用の変数をBANK_VARIABLE_IDに設定することで、「つよさ」「ぜんいん」メニューに預けてある金額として表示できます。

# 銀行変数のID(使わない場合は、コメントアウトする)
BANK_VARIABLE_ID = 7

戦闘ログ

戦闘中に表示されるメッセージを変更するには、csvファイルを編集します。csvファイルは、タブ区切りで記述されたテキストファイルになっていて1行目が各カラムに何が記述されているか示したキーワード行になっています。

各ログメッセージは、記述しなくても必要な部分ではデフォルトのメッセージが表示されます。

ステータスログ

ステータスログは、以下の設定項目があります。

id
ログを設定するステータスのID
action_log_new_actor
アクターにステータスが追加された場合のメッセージ
action_log_new_enemy
エネミーにステータスが追加された場合のメッセージ
action_log_delete_actor
アクターからステータスが削除された場合のメッセージ
action_log_delete_enemy
エネミーからステータスが削除された場合のメッセージ
action_log_forcing_not_action_states
行動不能ステータスのまま行動しようとした場合のメッセージ
id	action_log_new_actor	action_log_new_enemy	action_log_delete_actor	action_log_delete_enemy	action_log_forcing_not_action_states
1	\target.nameは しんでしまった!	\target.nameを たおした!	\target.nameは いきかえった!	\target.nameは よみがえった!	
7	\target.nameは ねむってしまった!	\target.nameは ねむった!	\target.nameは めがさめた	\target.nameは めがさめた	\target.nameは ねむっている

スキルログ

スキルログは、以下の設定項目があります。

id
ログを設定するスキルのID
action_log_skill
スキルを使用した場合のメッセージ
id	action_log_skill
57	\active_battler.nameは \skill.nameを はなった!
81	\active_battler.nameは かえんの いきをはいた!

アイテムログ

アイテムログは、以下の設定項目があります。

id
ログを設定するアイテムのID
action_log_item_use_msg
アイテムを使用した場合のメッセージ
action_log_item_hit_msg
アイテムを使用して効果があった場合のメッセージ
action_log_item_miss_msg
アイテムを使用して効果が無かった場合のメッセージ
id	action_log_item_use_msg	action_log_item_hit_msg	action_log_item_miss_msg
35		\item.nameから光がほとばしる!
36	\active_battler.nameは \item.nameを 投げつけた!	\item.nameは くだけちった!!

アイテム設定

DQ風スクリプトでは、プレイヤーが入手したアイテムは全て個別に管理されています。

戦闘中使用できる武器防具の設定

武器防具とまったく同じ名前の道具をツクールで作成すると自動的に関連付けが行われ、その武器防具を戦闘中に使用した場合、道具の効果が発動します。

関連付ける道具を消費する設定にした場合は、戦闘中に使った武器防具がなくなります。

使用された武器防具の戦闘ログには、関連付けられた道具IDのログが使用されます。

ショップ設定

DQ風スクリプトを使う場合、全てのアイテムが個別に管理されるためイベントコマンドの「ショップの処理」の動作が変更されます。

購入処理

アイテムをプレイヤーに購入させる場合は、ショップの処理イベントで、その店で売っているアイテムを設定した後に以下のイベントスクリプトを使う事で、実際にアイテム販売のメニューが開きます。

Event_Script::Shop.update(10)

この一行のみ記述する。

引数は、ショップ販売メニューで選択されたアイテムIDを保存する変数IDです。必要ない場合は、省略できます。

プレイヤーがアイテムを選択すると、次のイベントへ進みます。選択したアイテムが、アイテム・武器・防具のどれかを判断するメソッドが用意されています。

Event_Script::Shop.item?
Event_Script::Shop.weapon?
Event_Script::Shop.armor?

プレイヤーにアイテムを選択させた後に、以下のイベントスクリプトで、渡す相手を選択するメニューを開きます。

Event_Script::Buy_Actor_Select.update(11)

購入するアイテムと渡す相手を選択したら、以下のイベントスクリトで、購入します。

Event_Script::Shop.buy

選択したアイテムの値段がプレイヤーのお金から引かれます。

売却処理

アイテムをプレイヤーに売却させる場合は、購入と同じ様に以下のイベントスクリプトを使用します。

売却するアイテムをプレイヤーに選択させるメニューを開く、イベントスクリプト。

Event_Script::Sell_Actor_Select.update(10)

選択されたアイテムを、売却する、イベントスクリプト。

Event_Script::Shop.sell

教会の設定

DQ風のセーブシーン(教会の処理)を実現するために以下のイベントスクリプトが用意されています。

セーブ箇所の選択

冒険の書の一覧ウィンドウを表示するには以下のようにイベントスクリプトに記述します。一行のみ書いてください。

Event_Script.savedata_select(24)

指定された引数の「変数」に、選択された冒険の書のインデックスが保存されます。

上書き判定

冒険の書に上書きしようとしているか判定するには、以下のように「条件分岐のスクリプト」に記述します。

Event_Script.savedata_overwrite?(24)

セーブ箇所の選択で指定した「変数」と同じIDを使用してください。

セーブ

冒険の書に実際にセーブする場合は、以下のようにイベントスクリプトに記述します。

Event_Script.save(index[,name][,lv][,comment])
index
冒険の書を保存するインデックス
name
冒険の書の名前(省略時はアクター1の名前)
lv
冒険の書に表示されるLV(省略時はアクター1のLV)
comment
冒険の書に表示されるコメント(省略時は現在のマップ名)

例1)セーブ箇所の選択を上書き確認後のインデックスにセーブする

Event_Script.save($game_variables[24])

アクター1の名前とLVの冒険の書として保存しコメントは現在のマップ名が使用されます。

例2)アクター2の名前とLVを使用

i = $game_variables[24]
n = $game_actors[2].name
l = $game_actors[2].level
Event_Script.save(i,n,l)

省略可能になっている引数を指定することで、好きな名前とLVやコメントが指定できます。

ロード

ロードする時には、DQ_DATA_LOADと言う名前のスイッチがあるとONにします。セーブする時には、OFFにするので、これを使って、セーブ後とロード後のイベントを分岐させることができます。(Ver0.3.1以降)

アクタープロパティの設定

DQ風スクリプトでは、ツクールのデータベースで設定が出来ないアクター情報をアクタープロパティとして管理しています。

アクタープロパティはイベントスクリプト等で、操作することができます。以下の様に、アクターオブジェクトを取得しpropertiesでアクセスが可能です。

$game_actors[アクターID].properties[プロパティ名] = プロパティ値

アクターの性別(プロパティ名 'sex')

つよさのウィンドウで表示されるアクターの性別です。このプロパティに設定された文字列がつよさのウィンドウに表示されます。

例)アクターID が 1 のアクターの性別を"おとこ"にする。(イベントスクリプトの場合)

$game_actors[1].properties['sex'] = "おとこ"
true

アクターの職業(プロパティ名 'job')

つよさのウィンドウで表示される職業の名前です。初期値は、クラス名が設定されています。

例)アクターID が 1 のアクターの職業を"冒険者"にする。(イベントスクリプトの場合)

$game_actors[1].properties['job'] = "冒険者"
true

酒場と登録所

プレイヤーがアクターを自由に作成できる機能の「登録所」と作成したアクターを仲間に入れたり、今の仲間から外したり、パーティを組む機能の「酒場」が在ります。

登録所

登録所は、イベントスクリプトで以下の様に記述します。(一行のみ記述 trueはいらない)

Event_Script.make_actor_event()

このイベントスクリプトにより、今の所以下の処理が行われます。

クラスの選択に表示されるクラス名は、アクターの作成に使われるテンプレートから表示されます。

アクターテンプレート

アクターテンプレートは、データベースのアクターとして作成します。データベースのアクター名を"クラス名+テンプレート"にし同じ名前のアクターを2つ作成します。

実際にアクターが作成されるときに、この2つのテンプレートの差の範囲で作成されるアクターの能力値が変わります。

作成されるアクターに使用される各グラフィックは、MakeActorData.txtとして用意することでデバック実行時にMakeActorData.rxdataとしてData配下に置かれます。

# アクター作成設定セクション
[MakeActorConfig]

# アクター一覧に表示可能なアクターID
# このIDで指定されたアクターは、仲間に居なければ、
# 酒場などの仲間の追加一覧ウィンドウ等に表示される。
# 良く考えたら動的に変えるよう必要あるかも。
# 途中から仲間に出来るようになったアクターとか…
# 動的にアクターつくれるのでそちらで対処でも良いけど…
default_actors = 1,2,3,4,5,6,7,8


# テンプレートのアクターに関する各種素材
# 例
[ファイターおとこ]
character_name = 001-Fighter01,003-Fighter03,004-Fighter04,005-Fighter05
character_hue = 0,0,0,0
battler_name = 001-Fighter01,003-Fighter03,004-Fighter04,005-Fighter05
battler_hue = 0,0,0,0

# テンプレートだと1つしか画像を用意できないので
# 画像ファイルは、いくつかパターンを用意し選択されるたびに切り替える。
# そのための設定

# セクションには、クラス名+性別を設定。
# その組み合わせのときの候補素材を羅列する。

キー設定(次のバージョン)

スクリプト内で使用する各ボタンの設定です。以下の操作のボタンを設定できます。

# タイトルメニュー表示キー
DEFAULT_TITLE_MENU_KEY = [Input::A,Input::B,Input::C,Input::X,Input::Y,Input::Z,Input::L,Input::R]

# マップ上でのメインメニュー表示キー
DEFAULT_MAIN_MENU_KEY = [Input::C,Input::B]

# マップ上でのイベント起動キー。このキーが押されると同位置および正面のイベント起動判定を行う。
DEFAULT_PLAYER_DECISION_EVENT_KEY = [Input::Z]

# メッセージ瞬間表示キー
DEFAULT_MESSAGE_NO_WAIT_KEY = [Input::C]

# メッセージスキップキー
DEFAULT_MESSAGE_SKIP_KEY = [Input::A]

# メッセージページ送りキー
DEFAULT_MESSAGE_PAGE_NEXT_KEY = [Input::C,Input::B,Input::Z]

# AI戦闘キャンセルキー
DEFAULT_AI_CANCEL_KEY = [Input::B]

# 移動範囲チェックキー(デバックモード用)
DEFAULT_DEBUG_MOVE_AREA_CHECK_KEY = [Input::A]

# デバック移動スピードキー(デバックモード用)
DEFAULT_DEBUG_MOVE_SPEED_KEY = [Input::A]

# デバック用マップスクロールスピードキー(デバックモード用)
DEFAULT_DEBUG_MAP_SCROLL_SPEED_KEY = [Input::A]

# ウェイトキャンセルキー(デバックモード用)
DEFAULT_DEBUG_WAIT_CANCEL_KEY = [Input::A]

SourceForge.jp Project rgss-lib, All Rights Reserved.

Project Administrator: yf30 at users.sourceforge.jp