FC2ブログ

RPGツクールMVの特殊スクリプトコマンド集

RPGツクールMVの特殊スクリプトコマンド集


パーティメンバーに特定のスキルが追加されているかどうかの条件式

$gameParty.members()[メンバーID].addedSkills().contains(スキルID)
※メンバーIDはパーティの順番、0が1番目、1が2番目と一個ずつずれているので注意。

スキルを覚えているかではなくて、装備によってスキルが追加されている必要があるのでレベルアップで覚えたスキルはこの条件分岐では作動しない。

パーティの先頭に限っては以下のスクリプトでも可能。
$gameParty.leader().addedSkills().contains(スキルID)



ボタンを押したときの条件式

ボタンを押している間ずっと
Input.isPressed('key')
※マップ上で溜め撃ち攻撃などをしたいときはこっち。

ボタンを押したときに一回だけ
Input.isTriggered('key')
※連射イベントを作りたい場合はこっち。

keyにはいろんな値を指定できる。
決定 ok
キャンセル cancel
シフト shift
下 down
左 left
右 right
上 up
ページアップ pageup
ページダウン pagedown

※この他にもキーボードのボタンにも対応できる。



プレイヤーに対するイベントの当たり判定の条件式(スクウェアタイプ)

if((this.character(0).x +0.0) >= this.character(-1).x
&& (this.character(0).y +0.0) >= this.character(-1).y
&& (this.character(0).x -0.0) <= this.character(-1).x
&& (this.character(0).y -0.0) <= this.character(-1).y){
実行内容
}

※スクリプトに入力して使います。ここで指定している0.0というのはどれくらい拡張するのかという意味です。1.0を入れると倍(96px)になります。
上から順に右範囲、下範囲、左範囲、上範囲の座標を拡大する。

実行内容には直接指定してもいいですが規定の行数ではおそらく足りないのでコモンイベントを指定する方法をとった方がいいです。その場合は実行内容に↓のスクリプトを入れます。
this.setupChild($dataCommonEvents[コモンイベントid].list, this._eventId)



プレイヤーに対するイベントの当たり判定の条件式(サークルタイプ)

if(Math.sqrt(Math.pow(this.character(-1)._x - this.character(this._eventId)._x,2) + Math.pow(this.character(-1)._y - this.character(this._eventId)._y,2)) < 1.0){
実行内容
}

円形での当たり判定を作ります。円形のオブジェクトに対しての範囲を使う機会はほとんどないでしょう。例えばマップ上で敵が円形の魔法を唱えてその範囲内に入ったらダメージを食らうといった処理くらいですね。設定した半径よりも当たり判定が大きく感じるのは目の錯覚です。スクウェアタイプは直線上で範囲が決まるので目線のごまかしが効かないのですが、サークルタイプは外周に沿うタイプなので錯覚が起こりやすいです。



マップのリフレッシュをしない変数の入力

$gameVariables._data[変数番号] = n;
nはセットする値
※マップのリフレッシュをしないのでデータ上で扱うだけの場合に使います。
 ここで変更された場合はイベントの出現条件などをスルーします。



プレイヤーの移動速度を変更する

$gamePlayer._moveSpeed = n;
移動速度は移動ルートの設定の数値と同じ。一応、0も指定できる。

イベントの移動速度を変更することもできる。
$gameMap.event(イベントID)._moveSpeed = n;
イベントIDが1のとき1番のイベント、イベントIDが2のとき2番のイベント。わかりやすくて使い勝手が良いタイプです。
イベントIDにthis._eventIdを入力することによって【このイベント】という条件をつけることもできる。

$gameMap.events()[id]._moveSpeed = n;
id:0が1番のイベント、id:1が2番のイベント。ずれていくので間違いやすい方式。
this._eventIdを使うことはできないので上記の式の劣化版です。



持っているアイテムの個数を調べる

$gameParty.numItems($dataItems[アイテムID])

条件分岐にも使えます。
$gameParty.numItems($dataItems[アイテムID]) == 5;



隊列のフォロワーを先頭メンバーの位置に集める

$gamePlayer.gatherFollowers();
瞬時に集まるわけではなく、にゅるっと集まる。




web拍手 by FC2
[ 2019/04/14 20:45 ] RPGツクールMV | コメント(0)
コメントの投稿











管理者にだけ表示を許可する