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

Project1

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

[已经解决] 关于战斗技能特效的问题

[复制链接]

Lv4.逐梦者

梦石
0
星屑
7957
在线时间
958 小时
注册时间
2015-2-10
帖子
248
跳转到指定楼层
1
发表于 2015-7-3 22:12:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
呵呵,大家好,没错,我就是那个逗比,我又来问问题了,如标题,我是想请教一下关于战斗技能特效的问题的,本来可以在华为网盘下载的脚本,现在网盘挂了!所以现在只能来请教了……
①全域化:该技能攻击范围为敌方全体和我方全体。
②随机敌方单体:随机对敌方单体使用。
③随机我方单体:随机对我方单体使用。
④吸血:对对方造成多少伤害,就回复多少血。
⑤SP伤害:对HP造成的伤害变为对SP造成伤害。
⑥SP吸收:对对方造成多少伤害,就改为对对方造成相同的SP伤害且使用者回复相同的SP。
⑦魔法反射:处于该状态的角色,任何魔法攻击会反弹给使用者。
⑧物理封印:封印物理特技。
⑨物理反射:处于该状态的角色,任何物理攻击会反弹给使用者。
⑩祈祷:处于该状态的角色死亡后立即复活,即使是全体死亡也不会游戏结束,会立即复活。
问题还是挺多的,不过以前都有了,只是可以下载的华为网盘都挂了,所以请脚本高手见谅。

点评

你好,我姓华,单名一个为字。。。好吧,其实我也正在找  发表于 2015-7-3 23:12
记得技术区现在很少有脚本存在华为网盘嗒!全是华为的错!  发表于 2015-7-3 22:25

Lv2.观梦者

梦石
0
星屑
615
在线时间
84 小时
注册时间
2012-8-12
帖子
178
2
发表于 2015-7-4 01:32:34 | 只看该作者
技术区内找找百变宝典和天罡宝典
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7957
在线时间
958 小时
注册时间
2015-2-10
帖子
248
3
 楼主| 发表于 2015-7-4 07:29:38 | 只看该作者
火焰卷轴 发表于 2015-7-4 01:32
技术区内找找百变宝典和天罡宝典

没有啊!搜是搜到了,但是都是一些其它帖子,不知道有什么用!可不可以直接把脚本发过来啊?
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
615
在线时间
84 小时
注册时间
2012-8-12
帖子
178
4
发表于 2015-7-4 17:06:15 | 只看该作者
“公共事件的战斗特效”完美版(附范例).zip (201.88 KB, 下载次数: 113)
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7957
在线时间
958 小时
注册时间
2015-2-10
帖子
248
5
 楼主| 发表于 2015-7-4 17:39:59 | 只看该作者
火焰卷轴 发表于 2015-7-4 17:06

怎么用啊?这是我所要求的第几个效果来着?
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
305
在线时间
853 小时
注册时间
2014-5-5
帖子
948
6
发表于 2015-7-8 12:52:30 | 只看该作者
本帖最后由 邪月长啸 于 2015-7-8 12:55 编辑

吸血吸蓝
  1. #==============================================================================
  2. #★【攻击效果】★    《魔法盾,吸血,吸蓝》
  3. #------------------------------------------------------------------------------
  4. #   by  芯☆淡茹水
  5. #------------------------------------------------------------------------------
  6. #(该脚本为简易版,不显示角色因吸血;吸蓝等HP,SP改变而显示的数字。)
  7. #(角色具体的HP;SP改变的值,请看角色的HP;SP血槽。)
  8. #==============================================================================
  9. #◆ 使用方法:
  10. #              复制该脚本,插入到 main 前。
  11. #==============================================================================
  12. #◆ 说明:
  13. #------------------------------------------------------------------------------
  14. #Ⅰ魔法盾:     使用“魔法盾”特技,附加一个“魔法盾”的状态。当角色处于该状态
  15. #        时,受到的总伤害 = hp伤害 + sp伤害。hp,sp的具体伤害百分比,下面有设置。
  16. #
  17. #              当角色 sp = 0 时,自动解除该“魔法盾”状态,受到的伤害全部恢复为
  18. #        hp 伤害。也可在数据库设置该“魔法盾”状态解除的条件。(比如持续几回合)
  19. #------------------------------------------------------------------------------
  20. #Ⅱ吸血:这个不用多介绍,下面有吸血量是总伤害的百分比设置。
  21. #  (百分比的设置:比如设置为 50  也就是 50% 。 攻击敌人的伤害是 100 的话,
  22. #    自身回复 HP 50 ;攻击敌人的伤害是 150 的话,自身回复 HP 75 ;,,,,)
  23. #------------------------------------------------------------------------------
  24. #Ⅲ吸蓝:使用吸蓝特技,被攻击者只减少 SP 。如果被攻击者 SP = 0 。使用吸蓝特技
  25. #        的伤害为 0 ,吸蓝无效。下面有吸蓝量百分比设置。
  26. #==============================================================================
  27. #◆ 设置项:
  28. #------------------------------------------------------------------------------
  29. INT_STATE_ID = 2          #“魔法盾”状态 ID 。
  30. INT_HP = 20                #“魔法盾”状态下 HP 减少的百分比。
  31. INT_SP = 80                #“魔法盾”状态下 SP 减少的百分比。
  32. SKILLRECOVER_HP_ID = 82    # 吸血特技 ID 。
  33. RECOVER_HP = 50            # 吸的 HP 量为总伤害的百分比。
  34. SKILLRECOVER_SP_ID = 83    # 吸蓝特技 ID 。
  35. RECOVER_SP = 50            # 吸收的 SP 量为对方失去 SP 的百分比。
  36. #==============================================================================
  37. class Game_Battler
  38.   #---------------------------------------------------------------------------
  39.   def attack_effect(attacker)
  40.     self.critical = false
  41.     hit_result = (rand(100) < attacker.hit)
  42.     if hit_result == true
  43.       atk = [attacker.atk - self.pdef / 2, 0].max
  44.       self.damage = atk * (20 + attacker.str) / 20
  45.       self.damage *= elements_correct(attacker.element_set)
  46.       self.damage /= 100
  47.       if self.damage > 0
  48.         if rand(100) < 4 * attacker.dex / self.agi
  49.           self.damage *= 2
  50.           self.critical = true
  51.         end
  52.         if self.guarding?
  53.           self.damage /= 2
  54.         end
  55.       end
  56.       if self.damage.abs > 0
  57.         amp = [self.damage.abs * 15 / 100, 1].max
  58.         self.damage += rand(amp+1) + rand(amp+1) - amp
  59.       end
  60.       eva = 8 * self.agi / attacker.dex + self.eva
  61.       hit = self.damage < 0 ? 100 : 100 - eva
  62.       hit = self.cant_evade? ? 100 : hit
  63.       hit_result = (rand(100) < hit)
  64.     end
  65.     if hit_result == true
  66.       remove_states_shock
  67.       if states.include?(INT_STATE_ID)
  68.         if self.sp == 0
  69.           self.hp -= self.damage
  70.           remove_state(INT_STATE_ID)
  71.         else
  72.           self.hp -= self.damage * INT_HP / 100
  73.           self.sp -= self.damage * INT_SP / 100
  74.         end
  75.       else
  76.        self.hp -= self.damage
  77.       end
  78.       @state_changed = false
  79.       states_plus(attacker.plus_state_set)
  80.       states_minus(attacker.minus_state_set)
  81.     else
  82.       self.damage = "Miss"
  83.       self.critical = false
  84.     end
  85.     return true
  86.   end
  87.   #----------------------------------------------------------------------------
  88.   def skill_effect(user, skill)
  89.     self.critical = false
  90.     if ((skill.scope == 3 or skill.scope == 4) and self.hp == 0) or
  91.        ((skill.scope == 5 or skill.scope == 6) and self.hp >= 1)
  92.       return false
  93.     end
  94.     effective = false
  95.     effective |= skill.common_event_id > 0
  96.     hit = skill.hit
  97.     if skill.atk_f > 0
  98.       hit *= user.hit / 100
  99.     end
  100.     hit_result = (rand(100) < hit)
  101.     effective |= hit < 100
  102.     if hit_result == true
  103.       power = skill.power + user.atk * skill.atk_f / 100
  104.       if power > 0
  105.         power -= self.pdef * skill.pdef_f / 200
  106.         power -= self.mdef * skill.mdef_f / 200
  107.         power = [power, 0].max
  108.       end
  109.       rate = 20
  110.       rate += (user.str * skill.str_f / 100)
  111.       rate += (user.dex * skill.dex_f / 100)
  112.       rate += (user.agi * skill.agi_f / 100)
  113.       rate += (user.int * skill.int_f / 100)
  114.       self.damage = power * rate / 20
  115.       self.damage *= elements_correct(skill.element_set)
  116.       self.damage /= 100
  117.       if self.damage > 0
  118.         if self.guarding?
  119.           self.damage /= 2
  120.         end
  121.       end
  122.       if skill.variance > 0 and self.damage.abs > 0
  123.         amp = [self.damage.abs * skill.variance / 100, 1].max
  124.         self.damage += rand(amp+1) + rand(amp+1) - amp
  125.       end
  126.       eva = 8 * self.agi / user.dex + self.eva
  127.       hit = self.damage < 0 ? 100 : 100 - eva * skill.eva_f / 100
  128.       hit = self.cant_evade? ? 100 : hit
  129.       hit_result = (rand(100) < hit)
  130.       effective |= hit < 100
  131.     end
  132.     if hit_result == true
  133.       if skill.power != 0 and skill.atk_f > 0
  134.         remove_states_shock
  135.         effective = true
  136.       end
  137.       last_hp = self.hp
  138.       if skill.id == SKILLRECOVER_SP_ID
  139.         if self.sp == 0
  140.           self.damage = 0
  141.           self.hp -= self.damage
  142.         else
  143.           self.sp -= self.damage
  144.           user.sp += self.damage * RECOVER_SP / 100
  145.         end
  146.       else
  147.         if states.include?(INT_STATE_ID)
  148.           if self.sp == 0
  149.             self.hp -= self.damage
  150.             remove_state(INT_STATE_ID)
  151.           else
  152.             self.hp -= self.damage * INT_HP / 100
  153.             self.sp -= self.damage * INT_SP / 100
  154.           end
  155.         else
  156.           self.hp -= self.damage
  157.         end
  158.       end
  159.       effective |= self.hp != last_hp
  160.       @state_changed = false
  161.       effective |= states_plus(skill.plus_state_set)
  162.       effective |= states_minus(skill.minus_state_set)
  163.       if skill.id == SKILLRECOVER_HP_ID
  164.         user.hp += self.damage * RECOVER_HP / 100
  165.       end
  166.       if skill.power == 0
  167.         self.damage = ""
  168.         unless @state_changed
  169.           self.damage = "Miss"
  170.         end
  171.       end
  172.     else
  173.       self.damage = "Miss"
  174.     end
  175.     unless $game_temp.in_battle
  176.       self.damage = nil
  177.     end
  178.     return effective
  179.   end
  180. end
  181. #==============================================================================
复制代码
魔法反射
  1. # ▼▲▼ XRXS27. 特殊効果 SuperEX「魔法反射」 ver.1.03 ▼▲▼
  2. # by 桜雅 在土, clum-sea

  3. #==============================================================================
  4. # □ カスタマイズポイント
  5. #==============================================================================
  6. class Scene_Battle
  7.   MAGIC_REFREX_STATE_NAME         = "魔法反弹"   # 「魔法反射」ステート名
  8.   MAGIC_REFREX_ANIMATION_ID       =  98          #  魔法反射のアニメーションID
  9.   REFREX_PENETRATION_ELEMENT_NAME = "魔法反弹"   # 「反射貫通」属性名
  10. end
  11. class Scene_Battle
  12.   #--------------------------------------------------------------------------
  13.   # ○ スキルが魔法であるかどうか
  14.   #--------------------------------------------------------------------------
  15.   def skill_is_a_magic?(skill)
  16.     return false unless skill.is_a?(RPG::Skill)
  17.     return (skill.int_f > skill.str_f)
  18.   end
  19. end

  20. #=============================================================================
  21. # ◇ 「魔法反射」ステート by 桜雅 在土
  22. #=============================================================================
  23. class Scene_Battle
  24.   #--------------------------------------------------------------------------
  25.   # ● スキルまたはアイテムの対象側バトラー設定
  26.   #--------------------------------------------------------------------------
  27.   alias xrxs_magic_refrex_set_target_battlers set_target_battlers
  28.   def set_target_battlers(scope)
  29.     xrxs_magic_refrex_set_target_battlers(scope)
  30.     # スキル使用時
  31.     if @active_battler.current_action.kind == 1
  32.       # 魔法である場合
  33.       if skill_is_a_magic?(@skill)
  34.         element_id = get_refrex_penetration_id
  35.         # スキルに反射貫通が付加されているか。
  36.         skill_state_penetration(@skill, element_id, @active_battler)
  37.         if @active_battler.penetration != true
  38.           # 検索
  39.           for target in @target_battlers.dup
  40.             # 魔法反射ステートにかかっているか?
  41.             state_id = get_magical_refrex_id
  42.             if state_id != nil and target.state?(state_id)
  43.               # 反射---
  44.               target.refrexed = true
  45.               @target_battlers.delete(target)
  46.               unless @target_battlers.include?(@active_battler)
  47.                 @target_battlers.push(@active_battler)
  48.               end
  49.               # ---反射の設定完了
  50.             end
  51.           end
  52.         end
  53.       end
  54.     end
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● スキルに反射貫通属性が付加されているか
  58.   #--------------------------------------------------------------------------
  59.   def skill_state_penetration(skill, element_id, user)
  60.     if skill.element_set.include?(element_id)
  61.       # 反射フラグリセット
  62.       user.refrexed = false
  63.       # 貫通フラグをセット
  64.       user.penetration = true
  65.     end
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● フレーム更新 (メインフェーズ ステップ 4 : 対象側アニメーション)
  69.   #--------------------------------------------------------------------------
  70.   alias xrxs_magic_refrex_update_phase4_step4 update_phase4_step4
  71.   def update_phase4_step4
  72.     # 対象側アニメーション
  73.     xrxs_magic_refrex_update_phase4_step4
  74.     # 魔法反射(貫通しない場合)
  75.     for target in $game_party.actors + $game_troop.enemies - @target_battlers
  76.       next if target.refrexed == nil or target.refrexed == false
  77.       target.animation_id = MAGIC_REFREX_ANIMATION_ID
  78.       target.animation_hit = (target.damage != "Miss")
  79.       # 反射フラグリセット
  80.       target.refrexed = false
  81.     end
  82.     for target in @target_battlers
  83.       # 反射フラグリセット
  84.       target.refrexed = false
  85.     end
  86.     # 貫通フラグリセット
  87.     @active_battler.penetration = false
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ○ 魔法反射ステートのID取得
  91.   #--------------------------------------------------------------------------
  92.   def get_magical_refrex_id
  93.     if @xrxs27_magic_refrex_state_id == nil
  94.       result = nil
  95.       for i in 1 ... $data_states.size
  96.         if $data_states[i].name[/\A#{MAGIC_REFREX_STATE_NAME}\Z/]
  97.           result = $data_states[i].id
  98.           break
  99.         end
  100.       end
  101.       @xrxs27_magic_refrex_state_id = result
  102.     end
  103.     return @xrxs27_magic_refrex_state_id
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ○ 反射貫通属性のID取得
  107.   #--------------------------------------------------------------------------
  108.   def get_refrex_penetration_id
  109.     if @xrxs27_refrex_penetration_element_id == nil
  110.       result = nil
  111.       for i in 1 ... $data_system.elements.size
  112.         if $data_system.elements[i] == REFREX_PENETRATION_ELEMENT_NAME
  113.           result = i
  114.           break
  115.         end
  116.       end
  117.       @xrxs27_refrex_penetration_element_id = result
  118.     end
  119.     return @xrxs27_refrex_penetration_element_id
  120.   end
  121. end
  122. #==============================================================================
  123. # ■ Game_Battler
  124. #==============================================================================
  125. class Game_Battler
  126.   attr_accessor :refrexed
  127.   attr_accessor :penetration
  128. end
复制代码
物理技能封印没有,反射到是有个
  1. # ▼▲▼ xrxs27a. 特殊効果 SuperEX「魔法反射」 ver.1.03 ▼▲▼
  2. # by 桜雅 在土, clum-sea

  3. #==============================================================================
  4. # □ カスタマイズポイント
  5. #==============================================================================
  6. class Scene_Battle
  7.   SKILL_REFREX_STATE_NAME         = "攻击反弹"   # 「魔法反射」ステート名
  8.   SKILL_REFREX_ANIMATION_ID       =  98          #  魔法反射のアニメーションID
  9.   REFREX_PENETRATION_SKILL_ELEMENT_NAME = "攻击反弹"   # 「反射貫通」属性名
  10. end
  11. class Scene_Battle
  12.   #--------------------------------------------------------------------------
  13.   # ○ スキルが魔法であるかどうか
  14.   #--------------------------------------------------------------------------
  15.   def skill1_is_a_magic?(skill)
  16.     return false unless skill.is_a?(RPG::Skill)
  17.     return (skill.int_f > skill.str_f)
  18.   end
  19. end

  20. #=============================================================================
  21. # ◇ 「魔法反射」ステート by 桜雅 在土
  22. #=============================================================================
  23. class Scene_Battle
  24.   #--------------------------------------------------------------------------
  25.   # ● スキルまたはアイテムの対象側バトラー設定
  26.   #--------------------------------------------------------------------------
  27.   alias xrxs_skill_refrex_set_target_battlers set_target_battlers
  28.   def set_target_battlers(scope)
  29.     xrxs_skill_refrex_set_target_battlers(scope)
  30.     # スキル使用時
  31.     if @active_battler.current_action.kind == 1
  32.       # 魔法である場合
  33.       unless skill1_is_a_magic?(@skill)
  34.         element_id = get_refrex_skill_penetration_id
  35.         # スキルに反射貫通が付加されているか。
  36.         skill_state_penetration_skill(@skill, element_id, @active_battler)
  37.         if @active_battler.penetration != true
  38.           # 検索
  39.           for target in @target_battlers.dup
  40.             # 魔法反射ステートにかかっているか?
  41.             state_id = get_skillal_refrex_id
  42.             if state_id != nil and target.state?(state_id)
  43.               # 反射---
  44.               target.refrexed = true
  45.               @target_battlers.delete(target)
  46.               unless @target_battlers.include?(@active_battler)
  47.                 @target_battlers.push(@active_battler)
  48.               end
  49.               # ---反射の設定完了
  50.             end
  51.           end
  52.         end
  53.       end
  54.     end
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● スキルに反射貫通属性が付加されているか
  58.   #--------------------------------------------------------------------------
  59.   def skill_state_penetration_skill(skill, element_id, user)
  60.     if skill.element_set.include?(element_id)
  61.       # 反射フラグリセット
  62.       user.refrexed = false
  63.       # 貫通フラグをセット
  64.       user.penetration = true
  65.     end
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● フレーム更新 (メインフェーズ ステップ 4 : 対象側アニメーション)
  69.   #--------------------------------------------------------------------------
  70.   alias xrxs_skill_refrex_update_phase4_step4 update_phase4_step4
  71.   def update_phase4_step4
  72.     # 対象側アニメーション
  73.     xrxs_skill_refrex_update_phase4_step4
  74.     # 魔法反射(貫通しない場合)
  75.     for target in $game_party.actors + $game_troop.enemies - @target_battlers
  76.       next if target.refrexed == nil or target.refrexed == false
  77.       target.animation_id = SKILL_REFREX_ANIMATION_ID
  78.       target.animation_hit = (target.damage != "Miss")
  79.       # 反射フラグリセット
  80.       target.refrexed = false
  81.     end
  82.     for target in @target_battlers
  83.       # 反射フラグリセット
  84.       target.refrexed = false
  85.     end
  86.     # 貫通フラグリセット
  87.     @active_battler.penetration = false
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ○ 魔法反射ステートのID取得
  91.   #--------------------------------------------------------------------------
  92.   def get_skillal_refrex_id
  93.     if @xrxs27a_skill_refrex_state_id == nil
  94.       result = nil
  95.       for i in 1 ... $data_states.size
  96.         if $data_states[i].name[/\A#{SKILL_REFREX_STATE_NAME}\Z/]
  97.           result = $data_states[i].id
  98.           break
  99.         end
  100.       end
  101.       @xrxs27a_skill_refrex_state_id = result
  102.     end
  103.     return @xrxs27a_skill_refrex_state_id
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ○ 反射貫通属性のID取得
  107.   #--------------------------------------------------------------------------
  108.   def get_refrex_skill_penetration_id
  109.     if @xrxs27a_refrex_penetration_element_id == nil
  110.       result = nil
  111.       for i in 1 ... $data_system.elements.size
  112.         if $data_system.elements[i] == REFREX_PENETRATION_SKILL_ELEMENT_NAME
  113.           result = i
  114.           break
  115.         end
  116.       end
  117.       @xrxs27a_refrex_penetration_element_id = result
  118.     end
  119.     return @xrxs27a_refrex_penetration_element_id
  120.   end
  121. end
  122. #==============================================================================
  123. # ■ Game_Battler
  124. #==============================================================================
  125. class Game_Battler
  126.   attr_accessor :refrexed
  127.   attr_accessor :penetration
  128. end
复制代码
随机敌单体没有,随机敌多体可以吗?
RUBY 代码复制
  1. class Scene_Battle
  2.   def set_target_battlers(item, type)
  3.  
  4.     @多秒_特技 = {} # 初始化多秒功能哈希
  5.     @多秒_物品 = {} # 初始化多秒功能哈希
  6.  
  7.     # ---------------------------
  8.     # 特技多秒 设置
  9.     # ---------------------------
  10.  
  11.     @多秒_特技[57] = 3 # 57号技能 秒3 默认十字斩秒三
  12.  
  13.     # ---------------------------
  14.     # 物品多秒 设置
  15.     # ---------------------------
  16.  
  17.     @多秒_物品[40] = 5 # 40号物品 秒5 设置 : 敌单体即可 HP 回复量 为负值
  18.  
  19.     # ------------------------------------------------------
  20.     # PS 如果设置了多秒 数据库 中效果范围怎么设置都可以
  21.     # 但必须明确是对敌使用还是对同伴使用,并且明确 是否
  22.     # HP 0 时使用!
  23.     # ------------------------------------------------------
  24.  
  25.     if @active_battler.is_a?(Game_Enemy)
  26.       case item.scope
  27.       when 1  # 敌单体
  28.         index = @active_battler.current_action.target_index
  29.         @target_battlers.push($game_party.smooth_target_actor(index))
  30.         敌方秒(0, item, 0, type, $game_party.smooth_target_actor(index))
  31.       when 2  # 敌全体
  32.         index = @active_battler.current_action.target_index
  33.         for actor in $game_party.actors
  34.           if actor.exist?
  35.             @target_battlers.push(actor)
  36.           end
  37.         end
  38.         敌方秒(0, item, 0, type, $game_party.smooth_target_actor(index))
  39.       when 3  # 我方单体
  40.         index = @active_battler.current_action.target_index
  41.         @target_battlers.push($game_troop.smooth_target_enemy(index))
  42.         敌方秒(0, item, 1, type, $game_troop.smooth_target_enemy(index))
  43.       when 4  # 我方全体
  44.         index = @active_battler.current_action.target_index
  45.         for enemy in $game_troop.enemies
  46.           if enemy.exist?
  47.             @target_battlers.push(enemy)
  48.           end
  49.         end
  50.         敌方秒(0, item, 1, type, $game_troop.smooth_target_enemy(index))
  51.       when 5  # 我方单体 (HP 0)
  52.         index = @active_battler.current_action.target_index
  53.         enemy = $game_troop.enemies[index]
  54.         if enemy != nil and enemy.hp0?
  55.           @target_battlers.push(enemy)
  56.         end
  57.         敌方秒(1, item, 1, type, $game_troop.smooth_target_enemy(index))
  58.       when 6  # 我方全体 (HP 0)
  59.         index = @active_battler.current_action.target_index
  60.         for enemy in $game_troop.enemies
  61.           if enemy != nil and enemy.hp0?
  62.             @target_battlers.push(enemy)
  63.           end
  64.         end
  65.         敌方秒(1, item, 1, type, $game_troop.smooth_target_enemy(index))
  66.       when 7  # 使用者
  67.         @target_battlers.push(@active_battler)
  68.       end
  69.     end
  70.     if @active_battler.is_a?(Game_Actor)
  71.       # 效果范围分支
  72.       case item.scope
  73.       when 1  # 敌单体
  74.         index = @active_battler.current_action.target_index
  75.         @target_battlers.push($game_troop.smooth_target_enemy(index))
  76.         我方秒(0, item, 0, type, $game_troop.smooth_target_enemy(index))
  77.       when 2  # 敌全体
  78.         index = @active_battler.current_action.target_index
  79.         for enemy in $game_troop.enemies
  80.           if enemy.exist?
  81.             @target_battlers.push(enemy)
  82.           end
  83.         end
  84.         我方秒(0, item, 0, type, $game_troop.smooth_target_enemy(index))
  85.       when 3  # 我方单体
  86.         index = @active_battler.current_action.target_index
  87.         @target_battlers.push($game_party.smooth_target_actor(index))
  88.         我方秒(0, item, 1, type, $game_party.smooth_target_actor(index))
  89.       when 4  # 我方全体
  90.         index = @active_battler.current_action.target_index
  91.         for actor in $game_party.actors
  92.           if actor.exist?
  93.             @target_battlers.push(actor)
  94.           end
  95.         end
  96.         我方秒(0, item, 1, type, $game_party.smooth_target_actor(index))
  97.       when 5  # 我方单体 (HP 0)
  98.         index = @active_battler.current_action.target_index
  99.         actor = $game_party.actors[index]
  100.         if actor != nil and actor.hp0?
  101.           @target_battlers.push(actor)
  102.         end
  103.         我方秒(1, item, 1, type, $game_party.smooth_target_actor(index))
  104.       when 6  # 我方全体 (HP 0)
  105.         index = @active_battler.current_action.target_index
  106.         for actor in $game_party.actors
  107.           if actor != nil and actor.hp0?
  108.             @target_battlers.push(actor)
  109.           end
  110.         end
  111.         我方秒(1, item, 1, type, $game_party.smooth_target_actor(index))
  112.       when 7  # 使用者
  113.         @target_battlers.push(@active_battler)
  114.       end
  115.     end
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● 生成特技行动结果
  119.   #--------------------------------------------------------------------------
  120.   def make_skill_action_result
  121.     # 获取特技
  122.     @skill = $data_skills[@active_battler.current_action.skill_id]
  123.     # 如果不是强制行动
  124.     unless @active_battler.current_action.forcing
  125.       # 因为 SP 耗尽而无法使用的情况下
  126.       unless @active_battler.skill_can_use?(@skill.id)
  127.         # 清除强制行动对像的战斗者
  128.         $game_temp.forcing_battler = nil
  129.         # 移至步骤 1
  130.         @phase4_step = 1
  131.         return
  132.       end
  133.     end
  134.     # 消耗 SP
  135.     @active_battler.sp -= @skill.sp_cost
  136.     # 刷新状态窗口
  137.     @status_window.refresh
  138.     # 在帮助窗口显示特技名
  139.     @help_window.set_text(@skill.name, 1)
  140.     # 设置动画 ID
  141.     @animation1_id = @skill.animation1_id
  142.     @animation2_id = @skill.animation2_id
  143.     # 设置公共事件 ID
  144.     @common_event_id = @skill.common_event_id
  145.     # 设置对像侧战斗者
  146.  
  147.     # ---------------------------------------
  148.     set_target_battlers(@skill, 0)
  149.     # ---------------------------------------
  150.  
  151.     # 应用特技效果
  152.     for target in @target_battlers
  153.       target.skill_effect(@active_battler, @skill)
  154.     end
  155.   end
  156.   #--------------------------------------------------------------------------
  157.   # ● 生成物品行动结果
  158.   #--------------------------------------------------------------------------
  159.   def make_item_action_result
  160.     # 获取物品
  161.     @item = $data_items[@active_battler.current_action.item_id]
  162.     # 因为物品耗尽而无法使用的情况下
  163.     unless $game_party.item_can_use?(@item.id)
  164.       # 移至步骤 1
  165.       @phase4_step = 1
  166.       return
  167.     end
  168.     # 消耗品的情况下
  169.     if @item.consumable
  170.       # 使用的物品减 1
  171.       $game_party.lose_item(@item.id, 1)
  172.     end
  173.     # 在帮助窗口显示物品名
  174.     @help_window.set_text(@item.name, 1)
  175.     # 设置动画 ID
  176.     @animation1_id = @item.animation1_id
  177.     @animation2_id = @item.animation2_id
  178.     # 设置公共事件 ID
  179.     @common_event_id = @item.common_event_id
  180.     # 确定对像
  181.     index = @active_battler.current_action.target_index
  182.     target = $game_party.smooth_target_actor(index)
  183.     # 设置对像侧战斗者
  184.  
  185.     # ---------------------------------------
  186.     set_target_battlers(@item, 1)
  187.     # ---------------------------------------
  188.  
  189.     # 应用物品效果
  190.     for target in @target_battlers
  191.       target.item_effect(@item)
  192.     end
  193.   end
  194.  
  195.   def 敌方秒(n, item, t, type, 目标)
  196.     # ----------------------------------------
  197.     return if @多秒_特技[item.id].nil? and @多秒_物品[item.id].nil?
  198.     @target_battlers = []
  199.     case t
  200.     when 0
  201.       for actor in $game_party.actors
  202.         @target_battlers.push(actor) if actor.exist?
  203.       end
  204.     when 1
  205.       for enemy in $game_troop.enemies
  206.         @target_battlers.push(enemy) if enemy.exist?
  207.       end
  208.     end
  209.     return if @多秒_特技[item.id] >= @target_battlers.size
  210.     while @target_battlers.size > @多秒_特技[item.id]
  211.       a = rand(@target_battlers.size)
  212.       unless a == @target_battlers.size - 1 or
  213.         # 如果用了我发布的嘲讽状态脚本 请把后边的注释去掉!
  214.         @target_battlers[a] == 目标# or @target_battlers[a].state? Wall
  215.         @target_battlers.delete_at(a)
  216.       end
  217.     end
  218.     # -------------------------------------------
  219.   end
  220.   #   参数   是否hp0 项目 对敌还是对友 特技还是物品 目标
  221.   def 我方秒(n, item, t, type, 目标)
  222.     # ----------------------------------------
  223.     return if @多秒_特技[item.id].nil? and @多秒_物品[item.id].nil?
  224.     @target_battlers = []
  225.     case type
  226.     when 0 # 特技
  227.       case t
  228.       when 0
  229.         for enemy in $game_troop.enemies
  230.           case n
  231.           when 0
  232.             @target_battlers.push(enemy) if enemy.exist?
  233.           when 1
  234.             @target_battlers.push(enemy) unless enemy.exist?
  235.           end
  236.         end
  237.       when 1
  238.         for actor in $game_party.actors
  239.           case n
  240.           when 0
  241.             @target_battlers.push(actor) if actor.exist?
  242.           when 1
  243.             @target_battlers.push(actor) unless actor.exist?
  244.           end
  245.         end
  246.       end
  247.       return if @多秒_特技[item.id] >= @target_battlers.size
  248.       while @target_battlers.size > @多秒_特技[item.id]
  249.         a = rand(@target_battlers.size)
  250.         unless a == @target_battlers.size - 1 or
  251.           @target_battlers[a] == 目标
  252.           @target_battlers.delete_at(a)
  253.         end
  254.       end
  255.     when 1 # 物品
  256.       case t
  257.       when 0
  258.         for enemy in $game_troop.enemies
  259.           case n
  260.           when 0
  261.             @target_battlers.push(enemy) if enemy.exist?
  262.           when 1
  263.             @target_battlers.push(enemy) unless enemy.exist?
  264.           end
  265.         end
  266.       when 1
  267.         for actor in $game_party.actors
  268.           case n
  269.           when 0
  270.             @target_battlers.push(actor) if actor.exist?
  271.           when 1
  272.             @target_battlers.push(actor) unless actor.exist?
  273.           end
  274.         end
  275.       end
  276.       return if @多秒_物品[item.id] >= @target_battlers.size
  277.       while @target_battlers.size > @多秒_物品[item.id]
  278.         a = rand(@target_battlers.size)
  279.         unless a == @target_battlers.size - 1 or
  280.           @target_battlers[a] == 目标
  281.           @target_battlers.delete_at(a)
  282.         end
  283.       end
  284.     end
  285.     # ----------------------------------------
  286.   end
  287. end


祈祷复活
RUBY 代码复制
  1. class Game_Battler
  2.     def remove_states_auto
  3.     for i in @states_turn.keys.clone
  4.  
  5.       if @states_turn[i] > 0
  6.         @states_turn[i] -= 1
  7.       elsif rand(100) < $data_states[i].auto_release_prob
  8.         remove_state(i)
  9.         remove_state(1)  if i == 3
  10.         self.hp = self.maxhp if i == 3
  11.       end
  12.     end
  13.   end
  14. end
  15.  
  16. class Scene_Battle
  17.   def update_phase4
  18.     fuhuo
  19.     case @phase4_step
  20.     when 1
  21.       update_phase4_step1
  22.     when 2
  23.       update_phase4_step2
  24.     when 3
  25.       update_phase4_step3
  26.     when 4
  27.       update_phase4_step4
  28.     when 5
  29.       update_phase4_step5
  30.     when 6
  31.       update_phase4_step6
  32.     end
  33.   end
  34.  
  35.  
  36.   def fuhuo
  37.     for i in 0...$game_party.actors.size
  38.       if $game_party.actors[i].state?(2) and
  39.         $game_party.actors[i].state?(1) and
  40.         !$game_party.actors[i].state?(3)
  41.         $game_party.actors[i].add_state(3)
  42.       end
  43.     end
  44.     for i in 0...$game_troop.enemies.size
  45.       if $game_troop.enemies[i].state?(2) and
  46.         $game_troop.enemies[i].state?(1) and
  47.         !$game_troop.enemies[i].state?(3)
  48.         $game_troop.enemies[i].add_state(3)
  49.       end
  50.     end
  51.   end
  52. end


其余的你自己找  

评分

参与人数 1星屑 +150 收起 理由
RyanBern + 150 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7957
在线时间
958 小时
注册时间
2015-2-10
帖子
248
7
 楼主| 发表于 2015-7-8 20:48:58 | 只看该作者
其它的我都找到了,谢谢你的脚本!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 10:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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