1241 lines
No EOL
60 KiB
Ruby
1241 lines
No EOL
60 KiB
Ruby
=begin
|
||
RGSS3
|
||
|
||
★ シンボルエンカウント補助 ★
|
||
|
||
イベントでのシンボルエンカウントの動作を補助します。
|
||
|
||
● 仕様 ●==========================================================
|
||
シンボルエンカウント有効後は、
|
||
イベントページの自律移動の項で設定されたものは全て無効になります。
|
||
--------------------------------------------------------------------
|
||
一度有効になったシンボルエンカウントを無効にするには、
|
||
シンボルエンカウント設定のないイベントページに切り替えてください。
|
||
====================================================================
|
||
|
||
● 機能 ●==========================================================
|
||
シンボルエンカウントイベントから戦闘を起動した場合、
|
||
シンボルとプレイヤーの位置関係により先制攻撃or不意打ちが発生します。
|
||
・イベントの背後を取った場合 => 先制攻撃
|
||
・イベントに背後を取られた場合 => 不意打ち
|
||
・イベントが隊列の最後尾に接触した場合 => 不意打ち
|
||
--------------------------------------------------------------------
|
||
プレイヤーとの距離が一定内になるとプレイヤーを追跡するようになります。
|
||
--------------------------------------------------------------------
|
||
プレイヤーとの距離によりシンボルの透明度を変化させることができます。
|
||
--------------------------------------------------------------------
|
||
プレイヤーのレベルによりシンボルが逃走したりします。
|
||
--------------------------------------------------------------------
|
||
ダッシュしているとシンボルが反応しやすくなったりします。
|
||
--------------------------------------------------------------------
|
||
シンボルが反応した瞬間フキダシアイコンが表示されたりします。
|
||
--------------------------------------------------------------------
|
||
シンボルが反応しなくなるアイテムやスキルを作ることができます。
|
||
--------------------------------------------------------------------
|
||
シンボルが通行できないリージョンを設定することができます。
|
||
====================================================================
|
||
|
||
● シンボルエンカウントイベントの設定方法 ●========================
|
||
シンボルの動作を設定箇所にてあらかじめ定義しておきます。
|
||
--------------------------------------------------------------------
|
||
イベント>自律移動>頻度を最高に設定してください。
|
||
--------------------------------------------------------------------
|
||
イベント>自律移動>カスタム>移動ルート>スクリプトに
|
||
enable_symbol_encount(id)
|
||
と記述します。idには設定箇所で定義したものを指定します。
|
||
--------------------------------------------------------------------
|
||
後はイベントのトリガーを"イベントから接触"にして戦闘を起動するだけ!
|
||
====================================================================
|
||
|
||
● ステルス機能について ●==========================================
|
||
メモ欄に「ステルス:n」と記述されたスキル・アイテムを使用すると
|
||
ステルス状態となり、一定期間シンボルが反応しなくなります。
|
||
nにはステルス状態が維持されるプレイヤーの歩数を指定します。
|
||
--------------------------------------------------------------------
|
||
イベントのスクリプトから下記のコードを実行することで、
|
||
ステルスを強制的に解除することができます。
|
||
reset_stealth
|
||
--------------------------------------------------------------------
|
||
操作キャラクターの変更時や、シナリオ上で長い時間が経過した際などに
|
||
使用してください。
|
||
====================================================================
|
||
|
||
● 注意 ●==========================================================
|
||
ニューゲームから始めないとエラーを吐きます。
|
||
====================================================================
|
||
|
||
ver1.01
|
||
|
||
Last Update : 2012/03/04
|
||
03/04 : 追跡中のイベントが存在する際にイベントが発生すると、
|
||
追跡状態がおかしくなる不具合を修正
|
||
----------------------2012--------------------------
|
||
12/23 : RGSS2からの移植
|
||
----------------------2011--------------------------
|
||
|
||
ろかん http://kaisou-ryouiki.sakura.ne.jp/
|
||
=end
|
||
|
||
#===================================
|
||
# ●設定箇所
|
||
#===================================
|
||
module SymbolEncount
|
||
# 隊列がシンボルと接触した場合、イベントを起動するかどうか
|
||
FOLLOWER_CONTACT = true
|
||
|
||
# シンボルエンカウントの設定をあらかじめ定義
|
||
SYMBOL_SETTING_LIST = {
|
||
#-----------------------------------------------------------
|
||
0 => [
|
||
# シンボルが逃げるプレイヤーレベル
|
||
# 0が設定されている場合逃走しません
|
||
0,
|
||
# プレイヤーレベルの判断種別
|
||
# 0:平均レベル、1:最大レベル、2:先頭メンバーのレベル
|
||
0,
|
||
# シンボルが反応するプレイヤーとの距離
|
||
3,
|
||
# シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
5,
|
||
# プレイヤーに反応していない時の移動パターン
|
||
# 0:ランダム移動、1:停止
|
||
0,
|
||
# 透明度の変化するプレイヤーとの距離
|
||
# ここで指定した距離よりもシンボルから遠ざかることで
|
||
# シンボルが少しずつ見えにくくなっていきます。
|
||
# 0が設定されている場合この機能は無効になります。
|
||
5,
|
||
# 反応前の移動速度
|
||
# 1:1/8倍速、2:1/4倍速、3:1/2倍速、4:標準速、5:2倍速、6:4倍速
|
||
2,
|
||
# 反応後の移動速度
|
||
# 1:1/8倍速、2:1/4倍速、3:1/2倍速、4:標準速、5:2倍速、6:4倍速
|
||
4,
|
||
# 反応前の移動頻度
|
||
# 1:最低、2:低、3:通常、4:高、5:最高
|
||
5,
|
||
# 反応後の移動頻度
|
||
# 1:最低、2:低、3:通常、4:高、5:最高
|
||
5,
|
||
# 反応時に再生するフキダシアイコンID
|
||
# 0が設定されている場合この機能は無効になります。
|
||
1,
|
||
# シンボルが通行することのできないリージョンID
|
||
# 配列形式で指定してください。
|
||
[1, 3]
|
||
],
|
||
#-----------------------------------------------------------
|
||
1 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
5, # シンボルが反応するプレイヤーとの距離
|
||
7, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
3, # 反応前の移動速度
|
||
3, # 反応後の移動速度
|
||
0, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
2 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
3, # シンボルが反応するプレイヤーとの距離
|
||
5, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
3, # 反応前の移動速度
|
||
3, # 反応後の移動速度
|
||
0, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
3 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
5, # シンボルが反応するプレイヤーとの距離
|
||
7, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
3, # 反応前の移動速度
|
||
3, # 反応後の移動速度
|
||
0, # 反応前の移動頻度
|
||
4, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
4 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
3, # シンボルが反応するプレイヤーとの距離
|
||
5, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
4, # 反応前の移動速度
|
||
4, # 反応後の移動速度
|
||
0, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
5 => [
|
||
0, # シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
7, # シンボルが反応するプレイヤーとの距離
|
||
10, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
4, # 反応前の移動速度
|
||
4, # 反応後の移動速度
|
||
5, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
6 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
6, # シンボルが反応するプレイヤーとの距離
|
||
8, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
4, # 反応前の移動速度
|
||
4, # 反応後の移動速度
|
||
0, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
7 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
5, # シンボルが反応するプレイヤーとの距離
|
||
7, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
2, # 反応前の移動速度
|
||
2, # 反応後の移動速度
|
||
0, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
8 => [
|
||
0, # シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
6, # シンボルが反応するプレイヤーとの距離
|
||
8, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
3, # 透明度の変化するプレイヤーとの距離
|
||
3, # 反応前の移動速度
|
||
3, # 反応後の移動速度
|
||
5, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
0, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
9 => [
|
||
0, # シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
4, # シンボルが反応するプレイヤーとの距離
|
||
5, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
1, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
3, # 反応前の移動速度
|
||
4, # 反応後の移動速度
|
||
4, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
10 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
50, # シンボルが反応するプレイヤーとの距離
|
||
50, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
3, # 反応前の移動速度
|
||
3, # 反応後の移動速度
|
||
5, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
11 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
4, # シンボルが反応するプレイヤーとの距離
|
||
4, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
1, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
3, # 反応前の移動速度
|
||
3, # 反応後の移動速度
|
||
5, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
12 => [
|
||
0, # シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
6, # シンボルが反応するプレイヤーとの距離
|
||
8, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
2, # 透明度の変化するプレイヤーとの距離
|
||
3, # 反応前の移動速度
|
||
4, # 反応後の移動速度
|
||
5, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
0, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
13 => [
|
||
0, # シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
15, # シンボルが反応するプレイヤーとの距離
|
||
15, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
4, # 反応前の移動速度
|
||
4, # 反応後の移動速度
|
||
4, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
14 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
50, # シンボルが反応するプレイヤーとの距離
|
||
50, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
3, # 反応前の移動速度
|
||
4, # 反応後の移動速度
|
||
5, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
15 => [
|
||
0, # シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
4, # シンボルが反応するプレイヤーとの距離
|
||
9, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
4, # 反応前の移動速度
|
||
4, # 反応後の移動速度
|
||
4, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
16 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
5, # シンボルが反応するプレイヤーとの距離
|
||
10, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
3, # 反応前の移動速度
|
||
4, # 反応後の移動速度
|
||
0, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
17 => [
|
||
0, # シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
3, # シンボルが反応するプレイヤーとの距離
|
||
3, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
1, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
4, # 反応前の移動速度
|
||
5, # 反応後の移動速度
|
||
5, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
4, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
18 => [
|
||
0, # シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
1, # シンボルが反応するプレイヤーとの距離
|
||
1, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
6, # 反応前の移動速度
|
||
6, # 反応後の移動速度
|
||
5, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
19 => [
|
||
0, # シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
8, # シンボルが反応するプレイヤーとの距離
|
||
10, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
5, # 反応前の移動速度
|
||
6, # 反応後の移動速度
|
||
4, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
20 => [
|
||
0, # シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
15, # シンボルが反応するプレイヤーとの距離
|
||
15, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
3, # 透明度の変化するプレイヤーとの距離
|
||
3, # 反応前の移動速度
|
||
4, # 反応後の移動速度
|
||
5, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
0, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
21 => [
|
||
0, # シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
15, # シンボルが反応するプレイヤーとの距離
|
||
15, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
5, # 反応前の移動速度
|
||
6, # 反応後の移動速度
|
||
4, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
22 => [
|
||
0, # シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
0, # シンボルが反応するプレイヤーとの距離
|
||
0, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
1, # プレイヤーに反応していない時の移動パターン
|
||
1, # 透明度の変化するプレイヤーとの距離
|
||
3, # 反応前の移動速度
|
||
4, # 反応後の移動速度
|
||
5, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
0, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
23 => [
|
||
0, # シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
3, # シンボルが反応するプレイヤーとの距離
|
||
3, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
4, # 反応前の移動速度
|
||
4, # 反応後の移動速度
|
||
4, # 反応前の移動頻度
|
||
4, # 反応後の移動頻度
|
||
0, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
24 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
15, # シンボルが反応するプレイヤーとの距離
|
||
15, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
3, # 反応前の移動速度
|
||
4, # 反応後の移動速度
|
||
0, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
25 => [
|
||
0, # シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
15, # シンボルが反応するプレイヤーとの距離
|
||
15, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
4, # 反応前の移動速度
|
||
4, # 反応後の移動速度
|
||
4, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
26=> [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
2, # シンボルが反応するプレイヤーとの距離
|
||
2, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
2, # 反応前の移動速度
|
||
4, # 反応後の移動速度
|
||
0, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
27 => [
|
||
1,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
5, # シンボルが反応するプレイヤーとの距離
|
||
7, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
3, # 反応前の移動速度
|
||
3, # 反応後の移動速度
|
||
0, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
28 => [
|
||
1,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
8, # シンボルが反応するプレイヤーとの距離
|
||
13, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
3, # 透明度の変化するプレイヤーとの距離
|
||
2, # 反応前の移動速度
|
||
2, # 反応後の移動速度
|
||
0, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
0, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
29 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
30, # シンボルが反応するプレイヤーとの距離
|
||
30, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
3, # 反応前の移動速度
|
||
6, # 反応後の移動速度
|
||
5, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
#-----------------------------------------------------------
|
||
30 => [
|
||
0, # シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
10, # シンボルが反応するプレイヤーとの距離
|
||
10, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
5, # 反応前の移動速度
|
||
6, # 反応後の移動速度
|
||
4, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
0, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
31 => [
|
||
0, # シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
2, # シンボルが反応するプレイヤーとの距離
|
||
2, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
4, # 反応前の移動速度
|
||
4, # 反応後の移動速度
|
||
4, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
32 => [
|
||
1,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
5, # シンボルが反応するプレイヤーとの距離
|
||
8, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
2, # 反応前の移動速度
|
||
2, # 反応後の移動速度
|
||
0, # 反応前の移動頻度
|
||
4, # 反応後の移動頻度
|
||
0, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
33 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
10, # シンボルが反応するプレイヤーとの距離
|
||
15, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
2, # 透明度の変化するプレイヤーとの距離
|
||
2, # 反応前の移動速度
|
||
2, # 反応後の移動速度
|
||
4, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
0, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
34 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
15, # シンボルが反応するプレイヤーとの距離
|
||
20, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
2, # 反応前の移動速度
|
||
2, # 反応後の移動速度
|
||
4, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
0, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
35 => [
|
||
0, # シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
6, # シンボルが反応するプレイヤーとの距離
|
||
6, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
1, # プレイヤーに反応していない時の移動パターン
|
||
2, # 透明度の変化するプレイヤーとの距離
|
||
4, # 反応前の移動速度
|
||
4, # 反応後の移動速度
|
||
5, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
4, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
36 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
20, # シンボルが反応するプレイヤーとの距離
|
||
20, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
5, # 反応前の移動速度
|
||
6, # 反応後の移動速度
|
||
5, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
37 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
20, # シンボルが反応するプレイヤーとの距離
|
||
20, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
5, # 反応前の移動速度
|
||
5, # 反応後の移動速度
|
||
5, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
1, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
444 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
5, # シンボルが反応するプレイヤーとの距離
|
||
7, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
3, # 反応前の移動速度
|
||
3, # 反応後の移動速度
|
||
0, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
4, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
445 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
5, # シンボルが反応するプレイヤーとの距離
|
||
7, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
2, # 反応前の移動速度
|
||
2, # 反応後の移動速度
|
||
0, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
4, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
446 => [
|
||
0,# シンボルが逃げるプレイヤーレベル
|
||
0, # プレイヤーレベルの判断種別
|
||
12, # シンボルが反応するプレイヤーとの距離
|
||
12, # シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
|
||
0, # プレイヤーに反応していない時の移動パターン
|
||
0, # 透明度の変化するプレイヤーとの距離
|
||
5, # 反応前の移動速度
|
||
5, # 反応後の移動速度
|
||
0, # 反応前の移動頻度
|
||
5, # 反応後の移動頻度
|
||
4, # 反応時に再生するフキダシアイコンID
|
||
[] # シンボルが移動することのできないリージョンID
|
||
],
|
||
#-----------------------------------------------------------
|
||
}
|
||
end
|
||
#===================================
|
||
# ここまで
|
||
#===================================
|
||
|
||
$rsi ||= {}
|
||
$rsi["シンボルエンカウント補助"] = true
|
||
|
||
class RPG::UsableItem < RPG::BaseItem
|
||
def stealth_obj_count
|
||
self.note.each_line{|line|
|
||
return $1.to_i if line =~ /ステルス:(\d+)/i
|
||
}
|
||
0
|
||
end
|
||
end
|
||
|
||
class << BattleManager
|
||
#--------------------------------------------------------------------------
|
||
# ● モジュールのインスタンス変数
|
||
#--------------------------------------------------------------------------
|
||
attr_writer :run_event
|
||
@run_event = nil # 戦闘を呼び出したイベント
|
||
#--------------------------------------------------------------------------
|
||
# ● セットアップ
|
||
#--------------------------------------------------------------------------
|
||
alias _symbol_encount_setup setup
|
||
def setup(troop_id, can_escape = true, can_lose = false)
|
||
_symbol_encount_setup(troop_id, can_escape, can_lose)
|
||
set_battle_condition
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● シンボルエンカウントイベントから戦闘が呼び出されている場合の処理
|
||
#--------------------------------------------------------------------------
|
||
def set_battle_condition
|
||
if @run_event && @run_event.symbol_encount
|
||
@run_event.set_contact_condition
|
||
case @run_event.contact_condition
|
||
when 1
|
||
if $game_switches[218] == true#紅茶走改造
|
||
@preemptive = false#紅茶走改造
|
||
else #紅茶走改造
|
||
@preemptive = true#紅茶走改造
|
||
$game_switches[219] = true #紅茶走
|
||
end#紅茶走改造
|
||
when 2
|
||
@surprise = true
|
||
end
|
||
end
|
||
if $game_switches[217] == true#紅茶走改造
|
||
@surprise = true#紅茶走改造
|
||
end#紅茶走改造
|
||
@run_event = nil
|
||
end
|
||
end
|
||
|
||
class Game_Actor < Game_Battler
|
||
#--------------------------------------------------------------------------
|
||
# ● スキル/アイテムの使用
|
||
#--------------------------------------------------------------------------
|
||
def use_item(item)
|
||
stealth_effect(item)
|
||
super
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● ステルス効果の適用
|
||
#--------------------------------------------------------------------------
|
||
def stealth_effect(item)
|
||
result = item.stealth_obj_count
|
||
$game_player.stealth_count = result if result > 0
|
||
end
|
||
end
|
||
|
||
class Game_Party < Game_Unit
|
||
#--------------------------------------------------------------------------
|
||
# ● プレイヤーレベルの取得
|
||
#--------------------------------------------------------------------------
|
||
def get_player_level(type)
|
||
case type
|
||
when 0
|
||
members.inject(0){|r, actor| r += actor.level} / members.size
|
||
when 1
|
||
members.max_by{|actor| actor.level}
|
||
when 2
|
||
$game_party.members.first.level
|
||
end
|
||
end
|
||
end
|
||
|
||
class Game_Character < Game_CharacterBase
|
||
#--------------------------------------------------------------------------
|
||
# ● 非公開メンバ変数の初期化
|
||
#--------------------------------------------------------------------------
|
||
alias _symbol_init_private_members init_private_members
|
||
def init_private_members
|
||
_symbol_init_private_members
|
||
@origin_opacity = @opacity
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 移動コマンドの処理
|
||
#--------------------------------------------------------------------------
|
||
alias _symbol_process_move_command process_move_command
|
||
def process_move_command(command)
|
||
params = command.parameters
|
||
@origin_opacity = params[0] if command.code == ROUTE_CHANGE_OPACITY
|
||
_symbol_process_move_command(command)
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 指定キャラクターとの位置関係を取得(接触していることを前提)
|
||
#--------------------------------------------------------------------------
|
||
def positional_relationship(character)
|
||
if character.real_x == real_x
|
||
character.real_y > real_y ? 1 : 0
|
||
elsif character.real_y == real_y
|
||
character.real_x > real_x ? 2 : 3
|
||
else
|
||
-1
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● シンボルエンカウント関連処理による透明度の更新
|
||
#--------------------------------------------------------------------------
|
||
def update_symbol_opacity
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● フレーム更新
|
||
#--------------------------------------------------------------------------
|
||
alias _symbol_opacity_update update
|
||
def update
|
||
_symbol_opacity_update
|
||
update_symbol_opacity
|
||
end
|
||
end
|
||
|
||
class Game_Player < Game_Character
|
||
#--------------------------------------------------------------------------
|
||
# ● 公開インスタンス変数
|
||
#--------------------------------------------------------------------------
|
||
attr_writer :stealth_count
|
||
#--------------------------------------------------------------------------
|
||
# ● 公開メンバ変数の初期化
|
||
#--------------------------------------------------------------------------
|
||
def init_public_members
|
||
super
|
||
reset_stealth
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● ステルス状態の初期化
|
||
#--------------------------------------------------------------------------
|
||
def reset_stealth
|
||
@stealth_count = 0
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● ステルス判定
|
||
#--------------------------------------------------------------------------
|
||
def stealth?
|
||
!@stealth_count.zero?
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 歩数増加
|
||
#--------------------------------------------------------------------------
|
||
alias _increase_stealth_count increase_steps
|
||
def increase_steps
|
||
_increase_stealth_count
|
||
@stealth_count -= 1 if stealth?
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● シンボルエンカウント関連処理による透明度の更新
|
||
#--------------------------------------------------------------------------
|
||
def update_symbol_opacity
|
||
if stealth? && !$game_map.interpreter.running?
|
||
@opacity = 128
|
||
else
|
||
@opacity = @origin_opacity
|
||
end
|
||
end
|
||
end
|
||
|
||
class Game_Follower < Game_Character
|
||
#--------------------------------------------------------------------------
|
||
# ● 公開インスタンス変数
|
||
#--------------------------------------------------------------------------
|
||
attr_reader :member_index
|
||
end
|
||
|
||
class Game_Event < Game_Character
|
||
#--------------------------------------------------------------------------
|
||
# ● インクルード SymbolEncount
|
||
#--------------------------------------------------------------------------
|
||
include SymbolEncount
|
||
#--------------------------------------------------------------------------
|
||
# ● 公開インスタンス変数
|
||
#--------------------------------------------------------------------------
|
||
attr_reader :symbol_encount
|
||
attr_reader :contact_condition
|
||
#--------------------------------------------------------------------------
|
||
# ● 非公開メンバ変数の初期化
|
||
#--------------------------------------------------------------------------
|
||
alias _symbol_encount_ini init_private_members
|
||
def init_private_members
|
||
_symbol_encount_ini
|
||
init_symbol_encount
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● イベントページのセットアップ
|
||
#--------------------------------------------------------------------------
|
||
alias _symbol_encount_setup_page setup_page
|
||
def setup_page(new_page)
|
||
init_symbol_encount
|
||
_symbol_encount_setup_page(new_page)
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● シンボルエンカウントの初期化
|
||
#--------------------------------------------------------------------------
|
||
def init_symbol_encount
|
||
@forming = false
|
||
@symbol_encount = false
|
||
@symbol_away_level = 0
|
||
@symbol_away_level_type = 0
|
||
@reaction_distance = 0
|
||
@reaction_distance_with_dash = 0
|
||
@nonreaction_move_type = 0
|
||
@visibility_distance = 0
|
||
@reaction_before_speed = 0
|
||
@reaction_after_speed = 0
|
||
@reaction_before_speed = 0
|
||
@reaction_after_frequency = 0
|
||
@reaction_balloon_id = 0
|
||
@unpassable_region = []
|
||
@contact_index = -1
|
||
@contact_condition = 0
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● シンボルエンカウントを有効化
|
||
#--------------------------------------------------------------------------
|
||
def enable_symbol_encount(id)
|
||
data = SYMBOL_SETTING_LIST[id]
|
||
@symbol_encount = true
|
||
@symbol_away_level = data[0]
|
||
@symbol_away_level_type = data[1]
|
||
@reaction_distance = data[2]
|
||
@reaction_distance_with_dash = data[3]
|
||
@nonreaction_move_type = data[4]
|
||
@visibility_distance = data[5]
|
||
@reaction_before_speed = data[6]
|
||
@reaction_after_speed = data[7]
|
||
@reaction_before_frequency = data[8]
|
||
@reaction_after_frequency = data[9]
|
||
@reaction_balloon_id = data[10]
|
||
@unpassable_region = data[11].dup
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 通行可能判定
|
||
#--------------------------------------------------------------------------
|
||
def passable?(x, y, d)
|
||
if @symbol_encount
|
||
x2 = $game_map.round_x_with_direction(x, d)
|
||
y2 = $game_map.round_y_with_direction(y, d)
|
||
return false if @unpassable_region.include?($game_map.region_id(x2, y2))
|
||
end
|
||
super
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● ロック(実行中のイベントが立ち止まる処理) ※再定義
|
||
#--------------------------------------------------------------------------
|
||
def lock
|
||
unless @locked
|
||
@prelock_direction = @direction
|
||
turn_toward_player unless @symbol_encount
|
||
@locked = true
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● プレイヤーレベルの取得
|
||
#--------------------------------------------------------------------------
|
||
def player_level
|
||
$game_party.get_player_level(@symbol_away_level_type)
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● プレイヤーからの距離を取得
|
||
#--------------------------------------------------------------------------
|
||
def distance_from_player
|
||
distance_x_from($game_player.x).abs + distance_y_from($game_player.y).abs
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 指定キャラクターからの距離を取得
|
||
#--------------------------------------------------------------------------
|
||
def distance_from_character(character)
|
||
distance_x_from(character.x).abs + distance_y_from(character.y).abs
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 反応するプレイヤーからの距離を取得
|
||
#--------------------------------------------------------------------------
|
||
def reaction_distance
|
||
if @forming
|
||
@reaction_distance_with_dash.next
|
||
elsif $game_player.dash? && $game_player.moving?
|
||
@reaction_distance_with_dash
|
||
else
|
||
@reaction_distance
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● シンボルエンカウントを動作させるか
|
||
#--------------------------------------------------------------------------
|
||
def active_symbol_encount?
|
||
if $game_map.interpreter.running?
|
||
false
|
||
elsif @erased || $game_player.stealth?
|
||
@forming = false
|
||
false
|
||
else
|
||
true
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● プレイヤーと同じ方向を向いているか
|
||
#--------------------------------------------------------------------------
|
||
def direction_as_player?
|
||
direction == $game_player.direction
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 指定キャラクターとの簡易接触判定
|
||
#--------------------------------------------------------------------------
|
||
def contact?(character)
|
||
distance_from_character(character) <= 1
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● プレイヤーへの反応判定
|
||
#--------------------------------------------------------------------------
|
||
def reaction?
|
||
distance_from_player <= reaction_distance
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● プレイヤーからの逃走判定
|
||
#--------------------------------------------------------------------------
|
||
def away?
|
||
player_level > @symbol_away_level
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 接触状況の判断
|
||
#--------------------------------------------------------------------------
|
||
def set_contact_condition
|
||
@contact_index = -1
|
||
@contact_condition = 0
|
||
if contact?($game_player)
|
||
@contact_index = 0
|
||
elsif FOLLOWER_CONTACT
|
||
$game_player.followers.visible_folloers.each{|follower|
|
||
@contact_index = follower.member_index if contact?(follower)
|
||
}
|
||
end
|
||
if @contact_index.zero?
|
||
@contact_condition = direction_and_positional
|
||
elsif $game_player.followers.visible_folloers.size == @contact_index
|
||
@contact_condition = 2
|
||
else
|
||
@contact_condition = 0
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● プレイヤーとの位置と向き関係から接触状況を取得
|
||
#--------------------------------------------------------------------------
|
||
def direction_and_positional
|
||
position = positional_relationship($game_player)
|
||
if position == -1
|
||
0
|
||
else
|
||
case direction
|
||
when 2
|
||
direction_as_player? ? (position == 0 ? 1 : 2) : 0
|
||
when 4
|
||
direction_as_player? ? (position == 2 ? 1 : 2) : 0
|
||
when 6
|
||
direction_as_player? ? (position == 3 ? 1 : 2) : 0
|
||
when 8
|
||
direction_as_player? ? (position == 1 ? 1 : 2) : 0
|
||
else
|
||
0
|
||
end
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 接触イベントの起動判定
|
||
#--------------------------------------------------------------------------
|
||
alias _symbol_encount_trigger check_event_trigger_touch
|
||
def check_event_trigger_touch(x, y)
|
||
if @symbol_encount && FOLLOWER_CONTACT
|
||
unless $game_map.interpreter.running?
|
||
if @trigger == 2 && collide_with_player_characters?(x, y)
|
||
start unless jumping?
|
||
end
|
||
end
|
||
else
|
||
_symbol_encount_trigger(x, y)
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 追跡の開始
|
||
#--------------------------------------------------------------------------
|
||
def start_forming
|
||
@move_speed = @reaction_after_speed
|
||
@move_frequency = @reaction_after_frequency
|
||
unless @reaction_balloon_id.zero?
|
||
Audio.se_play('Audio/SE/Decision1', $game_system.m_v[3], 150)
|
||
@balloon_id = @reaction_balloon_id
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 追跡の終了(見失う)
|
||
#--------------------------------------------------------------------------
|
||
def end_forming
|
||
@move_speed = @reaction_before_speed
|
||
@move_frequency = @reaction_before_frequency
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 反応している時の移動処理
|
||
#--------------------------------------------------------------------------
|
||
def reaction_movement
|
||
@move_speed = @reaction_after_speed
|
||
@move_frequency = @reaction_after_frequency
|
||
if @symbol_away_level.zero?
|
||
move_type_toward_player
|
||
elsif away?
|
||
move_away_from_player
|
||
else
|
||
move_type_toward_player
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 反応していない時の移動処理
|
||
#--------------------------------------------------------------------------
|
||
def nonreaction_movement
|
||
@move_speed = @reaction_before_speed
|
||
@move_frequency = @reaction_before_frequency
|
||
case @nonreaction_move_type
|
||
when 0
|
||
move_type_random
|
||
when 1
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● フレーム更新
|
||
#--------------------------------------------------------------------------
|
||
alias _update_with_symbol update
|
||
def update
|
||
update_symbol_reaction if @symbol_encount && @wait_count <= 0 && !@move_route_forcing
|
||
_update_with_symbol
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● プレイヤーへの反応判定を更新
|
||
#--------------------------------------------------------------------------
|
||
def update_symbol_reaction
|
||
if active_symbol_encount?
|
||
if !@forming && reaction?
|
||
start_forming
|
||
elsif @forming && !reaction?
|
||
end_forming
|
||
end
|
||
@forming = reaction?
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● シンボルエンカウント関連処理による透明度の更新
|
||
#--------------------------------------------------------------------------
|
||
def update_symbol_opacity
|
||
if @visibility_distance.zero?
|
||
@opacity = @origin_opacity
|
||
else
|
||
@opacity = @origin_opacity - 50 * (distance_from_player - @visibility_distance)
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 自律移動の更新
|
||
#--------------------------------------------------------------------------
|
||
alias _update_self_movement_with_symbol update_self_movement
|
||
def update_self_movement
|
||
if @symbol_encount
|
||
update_symbol_movement if near_the_screen? && @stop_count > stop_count_threshold
|
||
else
|
||
_update_self_movement_with_symbol
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● シンボルの動作を更新
|
||
#--------------------------------------------------------------------------
|
||
def update_symbol_movement
|
||
if near_the_screen? && @stop_count > stop_count_threshold
|
||
if active_symbol_encount?
|
||
@forming ? reaction_movement : nonreaction_movement
|
||
else
|
||
nonreaction_movement
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
class Game_Interpreter
|
||
#--------------------------------------------------------------------------
|
||
# ● バトルの処理
|
||
#--------------------------------------------------------------------------
|
||
alias _command_301_with_symbol_encount command_301
|
||
def command_301
|
||
unless $game_party.in_battle
|
||
BattleManager.run_event = $game_map.events[@event_id]
|
||
_command_301_with_symbol_encount
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● ステルス状態の解除
|
||
#--------------------------------------------------------------------------
|
||
def reset_stealth
|
||
$game_player.reset_stealth
|
||
end
|
||
end |