更新情報

 2010-06-27
『カスタムメニュー』を更新しました。

おまけスクリプトに以下2点を追加しました。
『隊列の変更』『パーティの並び変更』

『カスタムメニュー』
大幅な変更を加えています。
入れ替える場合は、現在のスクリプトのバックアップを取ってからお願いします。
旧バージョンの設定項目をコピペしても動作しない設定もあります。
お手数ですが再設定お願いします。

今回、更新されたスクリプトは以下のスクリプト以外のすべてです。
Custom Menu Canvas
Custom Menu Canvas Plus
歩行数ウィンドウ
変数ウィンドウ
スイッチウィンドウ
※ 廃止予定のスクリプトは、オプションウィンドウの更新処理 refresh_option に対応していません。

今回追加された各ウィンドウの再描画機能ですが、これは項目処理内で使用します。
例えば、メニュー項目にスイッチの値で項目名を変更するものがあるとします。
同じくある項目でそのスイッチを変更する処理があり、
そこで変更しても項目名が変更されることはありません。
メニュー項目は、メニューを表示するときに決定されているからです。
そこで、スイッチの値を変更する項目処理内に Commands.refresh_command のような
ウィンドウの再描画処理を加えると変更した時点で、項目名にも反映されるようになります。
'$game_switches[3]^=true;Commands.refresh_command' のように
'項目の処理;再描画の処理' と記述します。
処理の間には ; を忘れずに加えてください。

サブコマンドウィンドウについても、今までとは設定方法が異なりますので
もう一度説明を読んで設定しなおしてください。


『隊列の変更』
カスタムメニューに対応した隊列変更スクリプトです。

位置を変更するには、Game_Actors#position=(pos) を使用します。
ラルフを前衛にするには、$game_actor[1].position = 0 とします。
順に変更したい場合は、$game_actor[1].position = ($game_actor[1].position + 1) % 3 とします。
イベントスクリプトだと50文字しか入らないから、
$game_actor[1].position += 1
$game_actor[1].position %= 3
かな?

サブコマンド内での記述方法は、こちらのサンプルを参考にしてください。

このスクリプトを導入すると Window_Base#draw_actor_position が追加されるので、
メニューステータスの項目設定で、[:w_position, x, y] と設定すると、
アクターごとの隊列位置が表示できるようになります。


『パーティの並び変更』
こちらもスクリプトのみの機能提供なんですけど、以下の機能を追加します。

★ アクターの位置の入れ替え
★ アクターの位置の移動
★ アクターの位置を1つずらす
★ アクターの位置をローテーション

位置の入れ替えは、$game_party.swap_member(pos1, pos2) で行います。
pos1 と pos2 の位置を入れ替えます。
例えば、初期パーティのラルフとイルヴァの位置を入れ替えるには、
$game_party.swap_member(0, 3) とします。
範囲外でも入れ替えが可能です。
ラルフを一番後ろにしたければ、$game_party.swap_member(0, 99) とでもすれば、
100番目のアクターとの入れ替えになりますので、結果一番後ろになります。

位置の移動は、$game_party.move_member(src_pos, dest_pos) で行います。
src_pos のアクターを dest_pos へ移動します。
ラルフをベネットの位置に移動したければ、$game_party.move_member(0, 2) とします。
これも範囲外への移動が可能です。
$game_party.move_member(0, 99) とすれば、一番後ろに移動します。

位置を1つ前にずらすには、$game_party.shift_member(actor_id)
後ろにずらすには、$game_party.unshift_member(actor_id) とします。
このスクリプトが、アクターの位置ではなくIDで指定します。
もしも、指定されたアクターがパーティ内にいない場合は、nil が返ります。
この移動する位置はループします。
1つずつ移動して、端まで行くと逆端から再開されます。
012301... や 032103... のようになります。
例えば、unshift_member だと 0123-1023-1203-1230-0123 のように
0 だけが移動して、最終的に元の位置に戻ります。

先頭のアクターを最後尾に移動するには、$game_party.rotate_member
最後尾のアクターを先頭に移動するには、$game_party.back_rotate_member とします。
戻り値は、移動したアクターです。


このスクリプトもカスタムメニューで使用できます。
サブコマンド内での記述方法は、こちらのサンプルを参考にしてください。
コメント




 

 ※ コメント内にURLを含めるには、バッククォート(`)をURLの直前に付け加えてください。


管理人のみ閲覧許可 [?]

トラックバック
トラックバックURL:
http://cacaosoft.blog42.fc2.com/tb.php/418-06144fda
≪ トップページへこのページの先頭へ  ≫
カレンダー
01 << 2017/03 >> 02
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -

カテゴリー
最近の記事
02/28 お返事
02/14 お返事
01/21 お返事
01/12 更新情報
11/28 お返事

最近のコメント
03/16 お返事
01/21 お返事
11/30 z座標
11/20 z座標
08/03 お返事

タグクラウド

リンク