GOREとにゃんこの桃源郷

主観的にCDのレビューやら、日記やら、色々と。
ゴアとかメタルとかロックとか

RPGツクールVXA - スクリプ便利帳

2014-04-24 | RPGツクールMZ,VXace,VX,2000,95,1~5
 ここは俺の便利帳。「べんりちょう」で変換すると「便利長」という、バイトで先輩であるにもかかわらず雑用とかやってくれちゃう人、と思しき言葉になる。だから「べんり」を変換してから、「ちょうぼ」と打たねばならず手間だ。そんな時は、WINDOWS付属のIME辞書機能だ。予め単語登録をすることで、デフォルトでは変換されない言葉や、個人名を一発変換できるようになる。更に、予測変換の精度も調整できるため、「一度使っただけの言葉が最優先される」といった現象も、概ね回避可能。
 つまり、そういった手間を、イベントコマンドでも感じるわけさ。たとえば条件分岐が2重、3重に入れ子になるとき、誰でもあると思うんだ。そんな時、イベントコマンドで複数になる条件を、スクリプトを利用して一行で済ませてしまいたい。誰でもあると思うんだ。そんな便利なコマンドを思い付いたら、随時このページに載せていこうと思うんだ。イベントコマンド、条件分岐のスクリプトで利用することを前提に記載。


$game_party.alive_members.include?($game_actors[1])
アクターID1のアクターがパーティに居て、尚且つ生存している場合。(2014/04/03)




早くも前提を覆す更新を詫びねばなるまいか。どうだろうか。ゲームコマンドのスクリプトで使う。使用例も併せて。

$game_map.events[self.event_id].event.name
※予め本スクリプトのGame_Eventクラスに「attr_reader :event」を記載しておかねばエラーする。
これでイベント名(イベント作成時、一番左上に入力できるイベントの名前)を取得できるようになるので、インクルードで文字列参照するなり何なり自由が広がる。
使用例:イベントコマンドのスクリプトに
a = $game_map.events[self.event_id].event.name
$game_variables[10] = a
とでも記入すれば変数10番に現在作動中のイベント名が入るので、メッセージの表示などで
\V[10]を入力すれば村人との会話が便利か?(2014/04/13)

会話の時に村人の名称を表示させるタイプのゲームだと、雛形として上記コマンドを開始直後に入れておけば、メッセージ表示はいつも\V[10]で事足りる。名前はイベント名を変えるだけでいいため、かなり手間が削減されるはず。

隊列の内容は、$game_player.followersで取得できる。$game_player.followers[0]で、隊列の1人目を参照する。リーダー(先頭)は除外して数えるため、数字は0~2が入る。この後に、移動コマンドを付け、隊列のみを自由に操作可能。たとえばイベントコマンドのスクリプトで、$game_player.followers[2].move_straight(2)を実行すれば、隊列最後尾のメンバーだけが下方向に移動する。何度も実行すると、どんどん離れていくので面白いからおすすめ。隊列が2人しかいない場合でも、常にバトルメンバ-の最大数からリーダーを引いた数だけ、ダミーの隊列データが入っているため、存在しない隊列を指定してもエラーにならないので安心。イベントシーンで横並びにして向き指定など、使い道は色々ありそう。でも、隊列を操作するスクリプト素材は各所で提供されているので、スクリプトを組み込むほどではないが、ちょっと動かしたい場面がある、という人向け。
##カッコ内のnには数字(2,4,6,8)を代入のこと。それぞれ方向を表す。
move_straight(n)
move_random
##プレイヤーから離れるコマンド。先頭がウンコを漏らすイベントの時に活躍。
move_away_from_player
##directionは向きのこと。
set_direction(n)
##x座標の移動、y座標の移動値をそれぞれ入力。左や上に跳ばす場合はマイナスを付ける。移動しない場合は0を入力。たとえば、jump(0,-2)など。
jump(x,y)
他にもいろいろあるが、ウンコを漏らすイベントに関しては、これくらいで大体事足りるのでは?(2014/4/24)




 ここから先は、通常のスクリプト改変。中でも本当に些細なものを。
Game_Playerの「ダッシュ状態判定」箇所にスイッチの状態を追加するのはよくやる手法。VXの頃そうしていた。でも実際にゲーム中で使ったのは、梯子の処理だけ。VXAceでは、タイルセットで梯子属性を付与しただけで、自動的に向き固定を施してくれる親切設計。VX時代はどうせ向き固定のイベントを梯子の両端に置くのだからと、ダッシュ禁止スイッチも併せてコピペしていた。もうそんな手間はいらない。
return false if ladder?
この一文を書き加えるだけで、梯子属性のタイルに乗っている間だけ、自動的にダッシュ禁止と向き固定が適用される。便利。書き込むのはdef dash?内、return Input.press?(:A)より上なら何行目でも。(2014/4/24)


最新の画像もっと見る

2 コメント

コメント日が  古い順  |   新しい順
素敵です。 (ゆわか)
2014-04-06 13:10:38
こんにちは!
こういう便利な条件を探していました!
ありがとうございます。
ブログの方でも紹介させていただきました!
更新楽しみにしています!
返信する
>>ゆわか (GCC)
2014-04-13 04:09:07
ありがとうございます!
何か、1個しかないのに恐縮です。
頑張りますツクールを、そして増税という試練を。
返信する

コメントを投稿