幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1370|回复: 4

[转帖]魔法反射效果。

[复制链接]

91

主题

3188

帖子

83986万

积分

荣誉群

传说中的Bunny大神~!

积分
839861514
QQ
发表于 2006-4-5 19:46:50 | 显示全部楼层 |阅读模式
直接从日站抄来的,作者桜雅 在土。。。

# ▼▲▼ XRXS27. 特殊効果 SuperEX「魔法反射」 ver.1.03 ▼▲▼
# by 桜雅 在土, clum-sea

#==============================================================================
# □ カスタマイズポイント
#==============================================================================
class Scene_Battle
MAGIC_REFREX_STATE_NAME         = "魔法反射"   # [魔法反射]状态名
MAGIC_REFREX_ANIMATION_ID       =  64          #  魔法反射の动画ID
REFREX_PENETRATION_ELEMENT_NAME = "反射贯通"   # 「反射貫通」属性名
end
class Scene_Battle
#--------------------------------------------------------------------------
# ○ スキルが魔法であるかどうか
#--------------------------------------------------------------------------
def skill_is_a_magic?(skill)
   return false unless skill.is_a?(RPG::Skill)
   return (skill.int_f > skill.str_f)
end
end

#=============================================================================
# ◇ 「魔法反射」ステート by 桜雅 在土
#=============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ● スキルまたはアイテムの対象側バトラー設定
#--------------------------------------------------------------------------
alias xrxs_magic_refrex_set_target_battlers set_target_battlers
def set_target_battlers(scope)
   xrxs_magic_refrex_set_target_battlers(scope)
   # スキル使用時
   if @active_battler.current_action.kind == 1
     # 魔法である場合
     if skill_is_a_magic?(@skill)
       element_id = get_refrex_penetration_id
       # スキルに反射貫通が付加されているか。
       skill_state_penetration(@skill, element_id, @active_battler)
       if @active_battler.penetration != true
         # 検索
         for target in @target_battlers.dup
           # 魔法反射ステートにかかっているか?
           state_id = get_magical_refrex_id
           if state_id != nil and target.state?(state_id)
             # 反射---
             target.refrexed = true
             @target_battlers.delete(target)
             unless @target_battlers.include?(@active_battler)
               @target_battlers.push(@active_battler)
             end
             # ---反射の設定完了
           end
         end
       end
     end
   end
end
#--------------------------------------------------------------------------
# ● スキルに反射貫通属性が付加されているか
#--------------------------------------------------------------------------
def skill_state_penetration(skill, element_id, user)
   if skill.element_set.include?(element_id)
     # 反射フラグリセット
     user.refrexed = false
     # 貫通フラグをセット
     user.penetration = true
   end
end
#--------------------------------------------------------------------------
# ● フレーム更新 (メインフェーズ ステップ 4 : 対象側アニメーション)
#--------------------------------------------------------------------------
alias xrxs_magic_refrex_update_phase4_step4 update_phase4_step4
def update_phase4_step4
   # 対象側アニメーション
   xrxs_magic_refrex_update_phase4_step4
   # 魔法反射(貫通しない場合)
   for target in $game_party.actors + $game_troop.enemies - @target_battlers
     next if target.refrexed == nil or target.refrexed == false
     target.animation_id = MAGIC_REFREX_ANIMATION_ID
     target.animation_hit = (target.damage != "Miss")
     # 反射フラグリセット
     target.refrexed = false
   end
   for target in @target_battlers
     # 反射フラグリセット
     target.refrexed = false
   end
   # 貫通フラグリセット
   @active_battler.penetration = false
end
#--------------------------------------------------------------------------
# ○ 魔法反射ステートのID取得
#--------------------------------------------------------------------------
def get_magical_refrex_id
   if @xrxs27_magic_refrex_state_id == nil
     result = nil
     for i in 1 ... $data_states.size
       if $data_states.name[/\A#{MAGIC_REFREX_STATE_NAME}\Z/]
         result = $data_states.id
         break
       end
     end
     @xrxs27_magic_refrex_state_id = result
   end
   return @xrxs27_magic_refrex_state_id
end
#--------------------------------------------------------------------------
# ○ 反射貫通属性のID取得
#--------------------------------------------------------------------------
def get_refrex_penetration_id
   if @xrxs27_refrex_penetration_element_id == nil
     result = nil
     for i in 1 ... $data_system.elements.size
       if $data_system.elements == REFREX_PENETRATION_ELEMENT_NAME
         result = i
         break
       end
     end
     @xrxs27_refrex_penetration_element_id = result
   end
   return @xrxs27_refrex_penetration_element_id
end
end
#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler
attr_accessor :refrexed
attr_accessor :penetration
end
其他所有的Bunny神都素我的部下XD~ 小教程范例收集 Orz感谢邪恶萝卜联盟!!!(原因自己去猜)
回复

使用道具 举报

1

主题

29

帖子

2万

积分

⑧专业

积分
21100
发表于 2006-4-6 08:06:12 | 显示全部楼层
没翻译呀,我们那个都是中国人!!!
回复 支持 反对

使用道具 举报

113

主题

866

帖子

7004

积分

⑦老手

pliskin

积分
7004
发表于 2006-4-10 22:08:11 | 显示全部楼层
火星脚本 [s:5]
最近,迷上八云紫大婶了
回复 支持 反对

使用道具 举报

91

主题

3188

帖子

83986万

积分

荣誉群

传说中的Bunny大神~!

积分
839861514
QQ
 楼主| 发表于 2006-4-10 22:15:30 | 显示全部楼层
引用第2楼dcf2006-04-10 22:08发表的“”:
火星脚本 [s:5]

那你怎么不贴上- -。。。? [s:5]
其他所有的Bunny神都素我的部下XD~ 小教程范例收集 Orz感谢邪恶萝卜联盟!!!(原因自己去猜)
回复 支持 反对

使用道具 举报

113

主题

866

帖子

7004

积分

⑦老手

pliskin

积分
7004
发表于 2006-4-10 22:22:07 | 显示全部楼层
已经有人贴了,而且是大半年前的东西
最近,迷上八云紫大婶了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2025-6-27 04:47 , Processed in 0.012309 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表