QLOOK ANALYTICS
サイトマップ :

行動前イベント(RGSS3)
Ver1.02(2014/05/25)

どういったものに需要があるかなど
スクリプト製作の参考にしたいので,
いいね!と思ったスクリプトにクリックお願いします.

web拍手

概要

戦闘中バトラーの行動直前にコモンイベントを実行できます.
これにより特定の条件下において発展するスキルや攻撃前のカットインなど様々な機能を導入できます.

行動前イベント(RGSS3)のスクリーンショット

位置

特に指定はありません.

スクリプト

中身をすべてコピーして,ツクールのスクリプトに新たなセクションを作成し,貼り付けてください.

更新履歴

  1. 2014/05/25…「使用後」の時スキルの使用がキャンセルされることがあるバグを修正
  2. 2012/08/14…戦闘行動の強制コマンドが含まれていた時に正しく動作しない問題を解決
  3. 2012/01/04…公開

使用方法

スクリプトに丸ごと貼り付けていただければ使用できます.

コモンイベントの作成方法

コモンイベントの名前
なんでも構いません.わかりやすい名前を付けて下さい
トリガー
なし
実行内容

一行目に注釈を作成してください.
内容は以下の様に記述します.
==行動前イベント:使用%display%==

%display%の置き換え
変換文字 変換候補 説明
%display% スキル・アイテム使用前にコモンイベントを実行します
スキル・アイテム使用後(名前が表示され,MPなどが消費された直後)にコモンイベントを実行します

2行目から注釈でないイベントコマンドまでは条件を表す注釈となります.
注釈1つにつき必ず満たすべき条件を書きます.
また,注釈内1行につきいづれかを満たせば良い条件を書きます.

注釈:条件1
    :条件2
注釈:条件3

この例では,
条件1かつ条件3を満たすときまたは,条件2かつ条件3を満たすときにこのイベントが実行されます.

条件以降については任意のイベントコマンドを並べることが出来ます.
例えば発展スキルなどの様な機能にするには戦闘行動の強制を利用します.

使用例

注釈:==行動前イベント:使用後==
注釈:use.id == 1
注釈:user.actor? && user.id == 1
注釈:targets.include?($game_troop.members[1])

条件の書き方

条件部分はevalで評価しているのでrubyに書ける式を自由に書くことが出来ます.
特殊な変数として以下の3つがあります.

use
使用するスキル・アイテムを参照できます.(RPG::Skill,RPG::Item)
user
使用するアクター・エネミーを参照できます.(Game_Actor,Game_Enemy)
targets
スキル・アイテムのターゲットとなるアクター・エネミーの配列です.
「使用後」のイベントでしか参照できません.
「使用前」のイベントでは空配列となります.

useやuser,targetsから参照できる値や,
その他の情報の参照についてはスクリプトエディタやヘルプのVX Ace データ構造から各自が確認してください.

例:アクター001がスキル「防御」を使用したときに実行

注釈:user.actor? && user.id == 1
注釈:use.name == "防御"

例:アクター001またはアクター002がアイテムを使用したときに実行

注釈:user.actor? && user.id == 1
    :user.actor? && user.id == 2
注釈:use.is_a?(RPG::Item)

例:ターゲットにインデックス1のエネミーが含まれる場合に実行

注釈:targets.include?($game_troop.members[1])

例:スイッチ001がONで,所持金が変数001の値以上の時に実行

注釈:$game_switches[1] (わかりやすく書くと $game_switches[1] == true )
注釈:$game_party.gold >= $game_variables[1]

例:天候が雨の時に実行

注釈:$game_troop.screen.weather_type == :rain

もし条件の書き方がよくわからなければ掲示板あたりにでも書いて頂ければ条件式もお作りします.

ちょっと応用した条件を書くことも・・・

例:ターゲットがスライムのみの場合実行

注釈:targets.size == 1 ? targets[0].enemy? && targets[0].original_name == "スライム" : false
以下はエラーになる可能性があるので注意!
注釈:targets.size == 1
注釈:targets[0].enemy? && targets[0].original_name == "スライム"

例:毎月7のつく日は実行

注釈:Time.now.day.to_s.include?("7")

例:パーティーの平均レベルが合計100以上

注釈:$game_party.members.inject{|sum, a| sum += a.level} >= 100

例:ローカル変数を使ったりもできる

注釈:a = 10; b = $game_variables[1]; a < b

注意

このスクリプトでは「Scene_Battle」のメソッドを改変しています.

Valid XHTML 1.0 Transitional