设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1539|回复: 9
打印 上一主题 下一主题

发现RTAB战斗系统与魔法反击的矛盾~

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
35 小时
注册时间
2008-1-6
帖子
141
跳转到指定楼层
1
发表于 2008-2-13 00:37:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
RTAB战斗系统是根据聚气槽而行动的,而魔法反击是被动的~就算我把魔法反击回合数调为一回合,但只我要我的角色不行动的话!魔法反击状态就不会消失!我就可以一直反敌人的魔法了!

所以我想,能否将魔法反击改为角色本身存在的被动技能,就算了在正常状态下,被攻击,就会有几率作出反击.而不是100%反击?

不知有否这样的脚本.谢谢~~~
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

梦石
0
星屑
50
在线时间
35 小时
注册时间
2008-1-6
帖子
141
2
 楼主| 发表于 2008-2-15 08:36:30 | 只看该作者
其实如果可以把 魔法反击 的技能利用聚气槽设个时间性也是可以的!在一定时间内反射技能,而不是按回合算.可惜本来对脚本一窍不通~~请各位大虾帮个忙吧~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

冰王子

梦石
0
星屑
50
在线时间
34 小时
注册时间
2008-1-27
帖子
1875
3
发表于 2008-2-15 08:40:29 | 只看该作者
1楼的脚本好办
2楼的话……
我没用过聚气槽,所以说暂时也不知道怎么改
不常在线,有事PM
回复 支持 反对

使用道具 举报

Lv1.梦旅人

冰王子

梦石
0
星屑
50
在线时间
34 小时
注册时间
2008-1-27
帖子
1875
4
发表于 2008-2-15 09:22:01 | 只看该作者
这是根据主站上的RTAB战斗系统里的魔法反射状态改过来的,如果原来那个魔法反射不用了,就用这个覆盖掉就行了,如果还用的话……那这个脚本还要改一下。因为出来点低级错误,走了弯路,有没注意缩进,所以这个脚本可能比较乱。但是对初学者来说,这种脚本是不用看的(原因就不多说了),如果没有其他要求,就将就一下吧。

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

  3. #==============================================================================
  4. # □ カスタマイズポイント
  5. #==============================================================================
  6. $概率 = 50
  7. class Scene_Battle
  8.   MAGIC_REFREX_STATE_NAME         = "魔法反射"   # 「魔法反射」状态名
  9.   MAGIC_REFREX_ANIMATION_ID       =  64          #  魔法反射的动画ID
  10.   REFREX_PENETRATION_ELEMENT_NAME = "反射贯通"   # 「反射貫通」属性名
  11. end
  12. class Scene_Battle
  13.   #--------------------------------------------------------------------------
  14.   # ○ スキルが魔法であるかどうか
  15.   #--------------------------------------------------------------------------
  16.   def skill_is_a_magic?(skill)
  17.     return false unless skill.is_a?(RPG::Skill)
  18.     return (skill.int_f > skill.str_f)
  19.   end
  20. end

  21. #=============================================================================
  22. # ◇ 「魔法反射」ステート by 桜雅 在土
  23. #=============================================================================
  24. class Scene_Battle
  25.   #--------------------------------------------------------------------------
  26.   # ● スキルまたはアイテムの対象側バトラー設定
  27.   #--------------------------------------------------------------------------
  28.   alias xrxs_magic_refrex_set_target_battlers set_target_battlers
  29.   def set_target_battlers(scope,battler)
  30.     xrxs_magic_refrex_set_target_battlers(scope,battler)
  31.     # スキル使用時
  32.     if battler.current_action.kind == 1
  33.       # 魔法である場合
  34.       if skill_is_a_magic?(@skill)
  35.         element_id = get_refrex_penetration_id
  36.         # スキルに反射貫通が付加されているか。
  37.         skill_state_penetration(@skill, element_id, battler)
  38.         if battler.penetration != true
  39.           # 検索
  40.           for target in battler.target.dup
  41.             # 魔法反射ステートにかかっているか?
  42.             @skill_id = get_magical_refrex_id
  43.             if @skill_id != nil
  44.               if target.is_a?(Game_Actor) and target.skill_learn?(@skill_id)
  45.               # 反射---
  46.               if rand(100) < $概率
  47.               target.refrexed = true
  48.               end
  49.               end
  50.           if target.is_a?(Game_Enemy)
  51.               for action in target.actions
  52.                 if action.skill_id == @skill_id
  53.                   if rand(100) < $概率
  54.                   target.refrexed = true
  55.                   break
  56.                   end
  57.               end
  58.               end
  59.             end
  60.             if target.refrexed == true
  61.               battler.target.delete(target)
  62.               unless battler.target.include?(battler)
  63.                 battler.target.push(battler)
  64.               end
  65.             end
  66.               # ---反射の設定完了
  67.             end
  68.           end
  69.         end
  70.       end
  71.     end
  72.   end
  73.   #--------------------------------------------------------------------------
  74.   # ● スキルに反射貫通属性が付加されているか
  75.   #--------------------------------------------------------------------------
  76.   def skill_state_penetration(skill, element_id, user)
  77.     if skill.element_set.include?(element_id)
  78.       # 反射フラグリセット
  79.       user.refrexed = false
  80.       # 貫通フラグをセット
  81.       user.penetration = true
  82.     end
  83.   end
  84.   #--------------------------------------------------------------------------
  85.   # ● フレーム更新 (メインフェーズ ステップ 4 : 対象側アニメーション)
  86.   #--------------------------------------------------------------------------
  87.   alias xrxs_magic_refrex_update_phase4_step4 update_phase4_step4
  88.   def update_phase4_step4(battler)
  89.     # 対象側アニメーション
  90.     xrxs_magic_refrex_update_phase4_step4(battler)
  91.     # 魔法反射(貫通しない場合)
  92.     for target in $game_party.actors + $game_troop.enemies - battler.target
  93.       next if target.refrexed == nil or target.refrexed == false
  94.     #  target.animation_id = MAGIC_REFREX_ANIMATION_ID
  95.     #  target.animation_hit = (target.damage != "Miss")
  96.       target.animation.push([MAGIC_REFREX_ANIMATION_ID,
  97.                                           (target.damage[battler] != "Miss")])
  98.       # 反射フラグリセット
  99.       target.refrexed = false
  100.     end
  101.     for target in battler.target
  102.       # 反射フラグリセット
  103.       target.refrexed = false
  104.     end
  105.     # 貫通フラグリセット
  106.     battler.penetration = false
  107.   end
  108.   #--------------------------------------------------------------------------
  109.   # ○ 魔法反射ステートのID取得
  110.   #--------------------------------------------------------------------------
  111.   def get_magical_refrex_id
  112.     if @xrxs27_magic_refrex_state_id == nil
  113.       result = nil
  114.       for i in 1 ... $data_skills.size
  115.         if $data_skills[i].name == MAGIC_REFREX_STATE_NAME
  116.           result = $data_skills[i].id
  117.           break
  118.         end
  119.       end
  120.       @xrxs27_magic_refrex_state_id = result
  121.     end
  122.     return @xrxs27_magic_refrex_state_id
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ○ 反射貫通属性のID取得
  126.   #--------------------------------------------------------------------------
  127.   def get_refrex_penetration_id
  128.     if @xrxs27_refrex_penetration_element_id == nil
  129.       result = nil
  130.       for i in 1 ... $data_system.elements.size
  131.         if $data_system.elements[i] == REFREX_PENETRATION_ELEMENT_NAME
  132.           result = i
  133.           break
  134.         end
  135.       end
  136.       @xrxs27_refrex_penetration_element_id = result
  137.     end
  138.     return @xrxs27_refrex_penetration_element_id
  139.   end
  140. end
  141. #==============================================================================
  142. # ■ Game_Battler
  143. #==============================================================================
  144. class Game_Battler
  145.   attr_accessor :refrexed
  146.   attr_accessor :penetration
  147. end

复制代码

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
不常在线,有事PM
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
35 小时
注册时间
2008-1-6
帖子
141
5
 楼主| 发表于 2008-2-15 20:31:53 | 只看该作者
实在太感谢您了~~{/qiang}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
35 小时
注册时间
2008-1-6
帖子
141
6
 楼主| 发表于 2008-2-15 20:36:18 | 只看该作者
能否再提个问题!如果我想做成受魔法攻击时只防御而不反击,又该如何改脚本呢?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

冰王子

梦石
0
星屑
50
在线时间
34 小时
注册时间
2008-1-27
帖子
1875
7
发表于 2008-2-16 04:11:05 | 只看该作者
以下引用hykwf233于2008-2-15 12:36:18的发言:

能否再提个问题!如果我想做成受魔法攻击时只防御而不反击,又该如何改脚本呢?

你的意思是受到魔法攻击时,伤害减半吗?默认的防御是伤害减到一半左右
不常在线,有事PM
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
35 小时
注册时间
2008-1-6
帖子
141
8
 楼主| 发表于 2008-2-16 08:05:32 | 只看该作者
不懂!但还是很感谢你了~{/wx}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

冰王子

梦石
0
星屑
50
在线时间
34 小时
注册时间
2008-1-27
帖子
1875
9
发表于 2008-2-16 15:12:05 | 只看该作者
你还没回答我问题呢?
不常在线,有事PM
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
35 小时
注册时间
2008-1-6
帖子
141
10
 楼主| 发表于 2008-2-23 02:50:56 | 只看该作者
以下引用凌冰于2008-2-16 7:12:05的发言:

你还没回答我问题呢?

其实我的意思就是做个保护罩的模式咯!
但去覆盖"魔法反击"哦~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-30 12:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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