赞 | 0 |
VIP | 72 |
好人卡 | 1 |
积分 | 1 |
经验 | 4604 |
最后登录 | 2014-6-3 |
在线时间 | 554 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 554 小时
- 注册时间
- 2007-6-25
- 帖子
- 1188
|
本帖最后由 SOU 于 2011-8-4 06:25 编辑
- #==============================================================================
- # ○隠密&挑発 Ver1.00
- # for RGSS2
- # 西瓜 / Space not far
- # http://muspell.raindrop.jp/
- # 敵の攻撃の対象外になったり、また必ず対象になるステートを作れます。
- #==============================================================================
- # 隠密ステートにかかっていると、敵のターゲット選択の候補になりません。
- # 挑発ステートにかかっているアクターがいると、敵はそれ以外のアクターを
- # ターゲット選択の候補にしません。
- # なお、どちらの効果も対象が全体の場合は無意味です。
- # ●注意
- # ・スキルなどで隠密/挑発のステートを受けた場合、
- # ターゲットが決定されるタイミングがターン開始時という仕様上、
- # 隠密/挑発の効果が反映されるのは次ターン以降になります。
- module SNF
- DISAPPEAR_STATE_ID = 33 # 隠密ステートのID
- PROVOKE_STATE_ID = 34 # 挑発ステートのID
-
- end
- class Game_Unit
- def random_target
- disappear = false
- provoke = false
- roulette = [] # 配列の定義
- for member in existing_members
- # 挑発しているメンバーがいるか否か
- if member.states.include?($data_states[SNF::PROVOKE_STATE_ID])
- provoke = true
- end
- end
- for member in existing_members # 生存しているメンバーの配列取得
- member.odds.times do
- # 隠密状態の場合ルーレットに追加されない
- if member.states.include?($data_states[SNF::DISAPPEAR_STATE_ID])
- disappear = true
- elsif provoke
- if member.states.include?($data_states[SNF::PROVOKE_STATE_ID])
- roulette.push(member)
- end
- else
- roulette.push(member) # odds回数だけ配列にメンバーを追加
- end # if member.states.include?($data_states[SNF::DISAPPEAR_STATE_ID])
- end
- end # member.odds.times do
- if roulette.size <= 0 and disappear
- roulette = existing_members
- end
- return roulette.size > 0 ? roulette[rand(roulette.size)] : nil # ランダムに選ぶ
- end
- end
复制代码 我想这个应该是你需要的,在20行和21行设定状态ID
20行是与嘲讽相反的状态,就是不会被打的
21行是嘲讽状态
|
|