赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 4095 |
最后登录 | 2012-5-26 |
在线时间 | 2 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 2 小时
- 注册时间
- 2006-3-1
- 帖子
- 126
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
- #
- # 魔法反射ステート&装備(RGSS2)
- # (C)2007 TYPE74RX-T
- #
- # ※:カスタマイズポイント…15~18行目
- #==============================================================================
- # ★ RX_T
- #------------------------------------------------------------------------------
- # 設定用
- #==============================================================================
- module RX_T
- RX_Mcounter_Comment = "魔法障壁が魔法を跳ね返した!" # 反射時メッセージ
- RX_Mcounter_SE_Name = "flash1" # 反射時効果音名
- RX_Mcounter_SE_Volume = 80 # 反射時効果音音量
- RX_Mcounter_SE_Pitch = 100 # 反射時効果音ピッチ
- end
- #--------------------------------------------------------------------------
- # ★ システムワードの登録:魔法反射
- #--------------------------------------------------------------------------
- module RPG
- class State
- alias rx_rgss2b2_rx_extract_sys_str_from_note rx_extract_sys_str_from_note
- def rx_extract_sys_str_from_note
- rx_get_sys = RX_T.get_system_word_in_note(@note, "魔法反射")
- @@rx_copy_str += rx_get_sys
- @note = @note.sub(rx_get_sys, "")
- @note = @note.sub("\r\n", "")
- @rx_sys_str = @@rx_copy_str
- # メソッドを呼び戻す
- rx_rgss2b2_rx_extract_sys_str_from_note
- end
- end
- end
- #--------------------------------------------------------------------------
- # ★ システムワードの登録:魔法反射・魔反射無視
- #--------------------------------------------------------------------------
- module RPG
- class BaseItem
- alias rx_rgss2b2_rx_extract_sys_str_from_note rx_extract_sys_str_from_note
- def rx_extract_sys_str_from_note
- rx_get_sys = RX_T.get_system_word_in_note(@note, "魔法反射")
- @@rx_copy_str += rx_get_sys
- @note = @note.sub(rx_get_sys, "")
- @note = @note.sub("\r\n", "")
- @rx_sys_str = @@rx_copy_str
- rx_get_sys = RX_T.get_system_word_in_note(@note, "魔反射無視")
- @@rx_copy_str += rx_get_sys
- @note = @note.sub(rx_get_sys, "")
- @note = @note.sub("\r\n", "")
- @rx_sys_str = @@rx_copy_str
- # メソッドを呼び戻す
- rx_rgss2b2_rx_extract_sys_str_from_note
- end
- end
- end
- #==============================================================================
- # ■ Game_Battler
- #------------------------------------------------------------------------------
- # バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ
- # スのスーパークラスとして使用されます。
- #==============================================================================
- class Game_Battler
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- alias rx_rgss2b2_initialize initialize
- def initialize
- # メソッドを呼び戻す
- rx_rgss2b2_initialize
- @rx_refrex = false # ★ 魔法反射フラグ
- @rx_refrect = false # ★ 魔法を反射されたフラグ
- end
- #--------------------------------------------------------------------------
- # ★ 魔法反射ステートフラグ
- #--------------------------------------------------------------------------
- def rx_refrex
- return @rx_refrex
- end
- #--------------------------------------------------------------------------
- # ★ 魔法を反射されたフラグ
- #--------------------------------------------------------------------------
- def rx_refrect
- return @rx_refrect
- end
- #--------------------------------------------------------------------------
- # ★ 魔法を反射されたフラグ操作
- #--------------------------------------------------------------------------
- def rx_refrect=(flag)
- @rx_refrect = flag
- end
- #--------------------------------------------------------------------------
- # ● ステートの付加
- # state_id : ステート ID
- #--------------------------------------------------------------------------
- alias rx_rgss2b2_add_state add_state
- def add_state(state_id)
- # メソッドを呼び戻す
- rx_rgss2b2_add_state(state_id)
- # ★ システムワードに「魔法反射」が含まれているか
- if RX_T.check_system_word_in_sys_str($data_states[state_id], "魔法反射")
- @rx_refrex = true
- end
- end
- #--------------------------------------------------------------------------
- # ● ステートの解除
- # state_id : ステート ID
- #--------------------------------------------------------------------------
- alias rx_rgss2b2_remove_state remove_state
- def remove_state(state_id)
- # メソッドを呼び戻す
- rx_rgss2b2_remove_state(state_id)
- # ★ システムワードに「魔法反射」が含まれているか
- if RX_T.check_system_word_in_sys_str($data_states[state_id], "魔法反射")
- @rx_refrex = false
- end
- end
- #--------------------------------------------------------------------------
- # ● スキルの効果適用
- # user : スキルの使用者
- # skill : スキル
- #--------------------------------------------------------------------------
- alias rx_rgss2b2_skill_effect skill_effect
- def skill_effect(user, skill)
- # ★ 魔法系スキル(※)を使っているか、若しくはそれを使用中かのいずれかで
- # かつ、対象が魔法反射ステートなら(魔反射無視魔法を除く)
- # (※:精神関係度が 1 以上のスキル)
- if (user.action.rx_magic_use? or user.rx_magic_use) and self.rx_refrex and
- not RX_T.check_system_word_in_sys_str(skill, "魔反射無視")
- # 魔法使用フラグをオン
- user.rx_magic_use = true
- # 魔法を跳ね返されたフラグをオン
- user.rx_refrect = true
- # スキルの効果適用(反射用)へ
- return user.rx_refrect_skill_effect(self, skill)
- end
- # ★ 魔法系スキル(※)を使っているか、若しくはそれを使用中かのいずれかで
- # かつ、魔法反射系装備の対象に使用した場合(魔反射無視魔法を除く)
- # (※:精神関係度が 1 以上のスキル)
- if (user.action.rx_magic_use? or user.rx_magic_use) and
- RX_T.check_system_word_in_equip(self.rx_sys_str, "魔法反射") and
- not RX_T.check_system_word_in_sys_str(skill, "魔反射無視")
- # 魔法使用フラグをオン
- user.rx_magic_use = true
- # 魔法を跳ね返されたフラグをオン
- user.rx_refrect = true
- # スキルの効果適用(反射用)へ
- return user.rx_refrect_skill_effect(self, skill)
- end
- user.rx_magic_use = false
- user.rx_refrect = false
- # メソッドを呼び戻す
- rx_rgss2b2_skill_effect(user, skill)
- end
- #--------------------------------------------------------------------------
- # ★ スキルの効果適用(反射用)
- # user : スキルの使用者
- # skill : スキル
- #--------------------------------------------------------------------------
- def rx_refrect_skill_effect(user, skill)
- clear_action_results
- unless skill_effective?(user, skill)
- @skipped = true
- return
- end
- if rand(100) >= calc_hit(user, skill) # 命中判定
- @missed = true
- return
- end
- if rand(100) < calc_eva(user, skill) # 回避判定
- @evaded = true
- return
- end
- make_obj_damage_value(user, skill) # ダメージ計算
- make_obj_absorb_effect(user, skill) # 吸収効果計算
- execute_damage(user) # ダメージ反映
- if skill.physical_attack and @hp_damage == 0 # 物理ノーダメージ判定
- return
- end
- apply_state_changes(skill) # ステート変化
- end
- end
- #==============================================================================
- # ■ Scene_Battle
- #------------------------------------------------------------------------------
- # バトル画面の処理を行うクラスです。
- #==============================================================================
- class Scene_Battle < Scene_Base
- #--------------------------------------------------------------------------
- # ★ 魔法反射エフェクト
- #--------------------------------------------------------------------------
- def rx_refrex_effect
- @message_window.add_instant_text(RX_T::RX_Mcounter_Comment)
- Audio.se_play("Audio/SE/" + RX_T::RX_Mcounter_SE_Name, RX_T::RX_Mcounter_SE_Volume, RX_T::RX_Mcounter_SE_Pitch)
- wait(20)
- end
- #--------------------------------------------------------------------------
- # ● 戦闘行動の実行
- #--------------------------------------------------------------------------
- alias rx_rgss2b2_execute_action execute_action
- def execute_action
- # ★ 魔法使用および反射フラグを初期化
- @active_battler.rx_refrect = false
- @active_battler.rx_magic_use = false
- # メソッドを呼び戻す
- rx_rgss2b2_execute_action
- end
- #--------------------------------------------------------------------------
- # ● 行動結果の表示
- # target : 対象者
- # obj : スキルまたはアイテム
- #--------------------------------------------------------------------------
- def display_action_effects(target, obj = nil)
- # ★ 魔法を跳ね返されたフラグが立っていれば
- if @active_battler.rx_refrect
- # 対象を使用者に変換
- target = nil
- target = @active_battler
- end
- # ★ 魔法反射エフェクトさせるなら
- if @active_battler.rx_refrect and not target.skipped
- line_number = @message_window.line_number
- wait(5)
- # 反射エフェクト
- rx_refrex_effect
- display_critical(target, obj)
- display_damage(target, obj)
- display_state_changes(target, obj)
- # 反射メッセージ用・メッセージ補正
- if line_number + 1 == @message_window.line_number
- display_failure(target, obj) unless target.states_active?
- end
- if line_number != @message_window.line_number
- wait(30)
- end
- @message_window.back_to(line_number)
- end
- # ★ 魔法を跳ね返されたフラグが立っていれば終了
- return if @active_battler.rx_refrect
- unless target.skipped
- line_number = @message_window.line_number
- wait(5)
- display_critical(target, obj)
- display_damage(target, obj)
- display_state_changes(target, obj)
- if line_number == @message_window.line_number
- display_failure(target, obj) unless target.states_active?
- end
- if line_number != @message_window.line_number
- wait(30)
- end
- @message_window.back_to(line_number)
- end
- end
- end
复制代码 |
|