Project1

标题: 攻击附带法术 [打印本页]

作者: 黑米馒头    时间: 2015-1-15 20:03
标题: 攻击附带法术
本帖最后由 黑米馒头 于 2015-1-16 07:10 编辑

如何使角色物理攻击敌人的时候,有一定几率使用法术攻击敌人。

可能没说清楚,补充下:
当角色身上有特定技能的时候,角色攻击敌人结束会发动改技能再攻击敌人1次。

就是 打1下发动特技。
作者: chd114    时间: 2015-1-15 21:46
比如普攻一定几率打出个火球术?是这个意思吧?
作者: 美丽晨露    时间: 2015-1-15 21:49
可以通过装备武器的不同实现这种效果。
这是魔女之前在游戏中使用过的一个脚本。
不知道合适不。
  1. #==============================================================================
  2. # 【 武器攻击发动特技 】
  3. #==============================================================================
  4. #  by ->  芯☆淡茹水
  5. #==============================================================================
  6. # ** 使用方法 **
  7. #                  复制该脚本,插入到 main 前。
  8. #==============================================================================
  9. ### 设置 ##
  10. #------------------------------------------------------------------------------
  11. # 攻击时有几率发动特技的武器 ID
  12. WEAPON_ID = [13,14,15]
  13. # 发动的特技 ID,与上面武器 ID 相对应。上面的第一个,对应下面的第一个,,,,
  14. SKILL_ID  = [52, 53, 54]
  15. # 攻击时发动特技的几率百分比  %  。
  16. PERCENT = 50
  17. #==============================================================================
  18. class Scene_Battle
  19.   def update_phase4_step2
  20.     # 如果不是强制行动
  21.     unless @active_battler.current_action.forcing
  22.       # 限制为 [敌人为普通攻击] 或 [我方为普通攻击] 的情况下
  23.       if @active_battler.restriction == 2 or @active_battler.restriction == 3
  24.         # 设置行动为攻击
  25.         @active_battler.current_action.kind = 0
  26.         @active_battler.current_action.basic = 0
  27.       end
  28.       # 限制为 [不能行动] 的情况下
  29.       if @active_battler.restriction == 4
  30.         # 清除行动强制对像的战斗者
  31.         $game_temp.forcing_battler = nil
  32.         # 移至步骤 1
  33.         @phase4_step = 1
  34.         return
  35.       end
  36.     end
  37.     # 清除对像战斗者
  38.     @target_battlers = []
  39.     # 行动种类分支
  40.     case @active_battler.current_action.kind
  41.     when 0  # 基本
  42. #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  43.       # 如果战斗者是角色
  44.       if @active_battler.is_a?(Game_Actor) and
  45.         @active_battler.current_action.basic == 0
  46.          # 如果 WEAPON_ID 数组有战斗者当前的武器ID
  47.         if WEAPON_ID.include?(@active_battler.weapon_id)
  48.           # 随机 100 小于 百分比 的情况下
  49.           if rand(100) < PERCENT
  50.             # 将 i 代入 0 到 WEAPON_ID 的最大个数
  51.             for i in 0...WEAPON_ID.size
  52.               # 如果战斗者的武器 ID 等于 WEAPON_ID[i]
  53.               if @active_battler.weapon_id == WEAPON_ID[i]
  54.                 # 获取与 WEAPON_ID 相对应的特技ID SKILL_ID
  55.                 skill = $data_skills[SKILL_ID[i]]
  56.                 # 帮助窗口显示特技名
  57.                 @help_window.set_text("莉露发动武器特效" , 1)
  58.                 # 获取特技动画
  59.                 @animation1_id = skill.animation1_id
  60.                 @animation2_id = skill.animation2_id
  61.                 # 获取公共事件
  62.                 @common_event_id = skill.common_event_id
  63.                 # 特技有效范围
  64.                 set_target_battlers(skill.scope)
  65.                 # 应用特技效果
  66.                 for target in @target_battlers
  67.                   target.skill_effect(@active_battler, skill)
  68.                 end
  69.               end
  70.             end
  71.             # 其他情况,全部为基本行动类
  72.           else
  73.             make_basic_action_result
  74.           end
  75.         else
  76.           make_basic_action_result
  77.         end
  78.       else
  79.         make_basic_action_result
  80.       end
  81. #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  82.     when 1  # 特技
  83.       make_skill_action_result
  84.     when 2  # 物品
  85.       make_item_action_result
  86.     end
  87.     # 移至步骤 3
  88.     if @phase4_step == 2
  89.       @phase4_step = 3
  90.     end
  91.   end
  92. end
  93. #==============================================================================
复制代码

作者: chd114    时间: 2015-1-16 21:11
美丽晨露 发表于 2015-1-15 04:49
可以通过装备武器的不同实现这种效果。
这是魔女之前在游戏中使用过的一个脚本。
不知道合适不。 ...
  1. #==============================================================================
  2. # 【 武器攻击发动特技 】
  3. #==============================================================================
  4. #  by ->  芯☆淡茹水
  5. #==============================================================================
  6. # ** 使用方法 **
  7. #                  复制该脚本,插入到 main 前。
  8. #==============================================================================
  9. ### 设置 ##
  10. #------------------------------------------------------------------------------
  11. # 攻击时有几率发动特技的武器 ID
  12. WEAPON_ID = [13,14,15]
  13. # 发动的特技 ID,与上面武器 ID 相对应。上面的第一个,对应下面的第一个,,,,
  14. SKILL_ID  = [52, 53, 54]
  15. # 攻击时发动特技的几率百分比  %  。
  16. PERCENT = 50
  17. #==============================================================================
  18. class Scene_Battle
  19.   def update_phase4_step2
  20.     # 如果不是强制行动
  21.     unless @active_battler.current_action.forcing
  22.       # 限制为 [敌人为普通攻击] 或 [我方为普通攻击] 的情况下
  23.       if @active_battler.restriction == 2 or @active_battler.restriction == 3
  24.         # 设置行动为攻击
  25.         @active_battler.current_action.kind = 0
  26.         @active_battler.current_action.basic = 0
  27.       end
  28.       # 限制为 [不能行动] 的情况下
  29.       if @active_battler.restriction == 4
  30.         # 清除行动强制对像的战斗者
  31.         $game_temp.forcing_battler = nil
  32.         # 移至步骤 1
  33.         @phase4_step = 1
  34.         return
  35.       end
  36.     end
  37.     # 清除对像战斗者
  38.     @target_battlers = []
  39.     # 行动种类分支
  40.     case @active_battler.current_action.kind
  41.     when 0  # 基本
  42. #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  43.       # 如果战斗者是角色
  44.       if @active_battler.is_a?(Game_Actor) and
  45.         @active_battler.current_action.basic == 0
  46.          # 如果 WEAPON_ID 数组有战斗者当前的武器ID
  47.         if WEAPON_ID.include?(@active_battler.weapon_id)
  48.           # 随机 100 小于 百分比 的情况下
  49.           if rand(100) < PERCENT
  50.             # 将 i 代入 0 到 WEAPON_ID 的最大个数
  51.             for i in 0...WEAPON_ID.size
  52.               # 如果战斗者的武器 ID 等于 WEAPON_ID[i]
  53.               if @active_battler.weapon_id == WEAPON_ID[i]
  54.                 # 获取与 WEAPON_ID 相对应的特技ID SKILL_ID
  55.                 skill = $data_skills[SKILL_ID[i]]
  56.                 if @active_battler.skill_learn?(skill)
  57.                   # 帮助窗口显示特技名
  58.                   @help_window.set_text(@active_battler.name+"突然发动了"+skill.name+"!" , 1)
  59.                   # 获取特技动画
  60.                   @animation1_id = skill.animation1_id
  61.                   @animation2_id = skill.animation2_id
  62.                   # 获取公共事件
  63.                   @common_event_id = skill.common_event_id
  64.                   # 特技有效范围
  65.                   set_target_battlers(skill.scope)
  66.                   # 应用特技效果
  67.                   for target in @target_battlers
  68.                     target.skill_effect(@active_battler, skill)
  69.                   end
  70.                 end
  71.               end
  72.             end
  73.             # 其他情况,全部为基本行动类
  74.           else
  75.             make_basic_action_result
  76.           end
  77.         else
  78.           make_basic_action_result
  79.         end
  80.       else
  81.         make_basic_action_result
  82.       end
  83. #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  84.     when 1  # 特技
  85.       make_skill_action_result
  86.     when 2  # 物品
  87.       make_item_action_result
  88.     end
  89.     # 移至步骤 3
  90.     if @phase4_step == 2
  91.       @phase4_step = 3
  92.     end
  93.   end
  94. end
  95. #==============================================================================
复制代码
那么发动的时候要判定一下角色学没学这个技能···只要把露露发的脚本修改下就好了···




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1