Project1

标题: 请教关于反击技能的问题。 [打印本页]

作者: kittyblain    时间: 2012-10-26 01:50
标题: 请教关于反击技能的问题。
恩,游戏里的反击技能,是默认使用普通攻击来反击对手的,不知道可不可以用事件来自行设置反击的技能呢?
这样敌人一攻击,就会自动使用设置好的技能反击,而不是普通攻击?
作者: 铅笔描绘的思念    时间: 2012-10-26 01:50
本帖最后由 铅笔描绘的思念 于 2012-10-26 11:20 编辑
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Game_BattlerBase
  4. #------------------------------------------------------------------------------
  5. #  管理战斗者的类。主要含有能力值计算的方法。Game_Battler 类的父类。
  6. #==============================================================================
  7. $counter_attack_skill_id = 1
  8. class Game_BattlerBase
  9.   #--------------------------------------------------------------------------
  10.   # ● 获取反击攻击的技能 ID
  11.   #--------------------------------------------------------------------------
  12.   def counter_attack_skill_id
  13.     return $counter_attack_skill_id
  14.   end
  15. end

  16. #encoding:utf-8
  17. #==============================================================================
  18. # ■ Scene_Battle
  19. #------------------------------------------------------------------------------
  20. #  战斗画面
  21. #==============================================================================

  22. class Scene_Battle < Scene_Base
  23.   #--------------------------------------------------------------------------
  24.   # ● 发动反击
  25.   #--------------------------------------------------------------------------
  26.   def invoke_counter_attack(target, item)
  27.     @log_window.display_counter(target, item)
  28.     attack_skill = $data_skills[target.counter_attack_skill_id]
  29.     @subject.item_apply(target, attack_skill)
  30.    
  31.     @log_window.display_use_item(target, attack_skill)
  32.    
  33.     refresh_status
  34.     @log_window.display_action_results(@subject, attack_skill)
  35.   end
  36. end
复制代码
事件脚本里+ $counter_attack_skill_id = x 反击时使用x号技能。。


升级版。。。。。。。
RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Game_BattlerBase
  4. #------------------------------------------------------------------------------
  5. #  管理战斗者的类。主要含有能力值计算的方法。Game_Battler 类的父类。
  6. #==============================================================================
  7.  
  8. class Game_BattlerBase
  9.   attr_accessor        :counter_attack_skill_id
  10.   alias old_initialize initialize
  11.   #--------------------------------------------------------------------------
  12.   # ● 初始化对象
  13.   #--------------------------------------------------------------------------
  14.   def initialize
  15.     old_initialize
  16.     @counter_attack_skill_id = 1
  17.   end
  18. end
  19.  
  20. #encoding:utf-8
  21. #==============================================================================
  22. # ■ Scene_Battle
  23. #------------------------------------------------------------------------------
  24. #  战斗画面
  25. #==============================================================================
  26.  
  27. class Scene_Battle < Scene_Base
  28.   #--------------------------------------------------------------------------
  29.   # ● 发动反击
  30.   #--------------------------------------------------------------------------
  31.   def invoke_counter_attack(target, item)
  32.     @log_window.display_counter(target, item)
  33.     attack_skill = $data_skills[target.counter_attack_skill_id]
  34.     @subject.item_apply(target, attack_skill)
  35.     @log_window.display_use_item(target, attack_skill)
  36.     refresh_status
  37.     @log_window.display_action_results(@subject, attack_skill)
  38.   end
  39. end

@kittyblain插Main前  事件应该是做不到。。。
作者: kittyblain    时间: 2012-10-26 11:39
铅笔描绘的思念 发表于 2012-10-26 01:50
事件脚本里+ $counter_attack_skill_id = x 反击时使用x号技能。。


升级版。。。。。。。

是不是插入完这一段脚本后,还需要建立事件, 在事件脚本里选择
角色的反击技能呢?
作者: kittyblain    时间: 2012-10-26 11:44
kittyblain 发表于 2012-10-26 11:39
是不是插入完这一段脚本后,还需要建立事件, 在事件脚本里选择
角色的反击技能呢? ...

哦,然后括号里的x就替换成角色的编号,而y则替换成技能的编号,是这样吗?
作者: kittyblain    时间: 2012-10-26 11:54
铅笔描绘的思念 发表于 2012-10-26 01:50
事件脚本里+ $counter_attack_skill_id = x 反击时使用x号技能。。


升级版。。。。。。。

功能已经实现了非常感谢!
作者: lirn    时间: 2012-12-5 00:06
@铅笔描绘的思念

升级版的可以发来示范来看看?


是不是这样,我的怎么觉得好像没有效果?
作者: kittyblain    时间: 2012-12-7 20:15
lirn 发表于 2012-12-5 00:06
@铅笔描绘的思念

升级版的可以发来示范来看看?

猫用的是一个并行的公共事件来设置这段脚本- -
这样游戏中的默认反击技能(比如魔法反射)就会使用你设定好的那个技能了。。。。
作者: lirn    时间: 2012-12-7 21:13
kittyblain 发表于 2012-12-7 20:15
猫用的是一个并行的公共事件来设置这段脚本- -
这样游戏中的默认反击技能(比如魔法反射)就会使用你设 ...

就是没有效果。公共事件我也试过,但实际被怪物攻击的反击还是普通攻击
因为我用的是后知后觉横版,我也为反击设置了另外的动画。所以一眼就看得出来,不知道两者是不是有冲突。
作者: kittyblain    时间: 2012-12-10 01:15
lirn 发表于 2012-12-7 21:13
就是没有效果。公共事件我也试过,但实际被怪物攻击的反击还是普通攻击
因为我用的是后知后觉横版,我也 ...

可能是脚本冲突吧- -
猫是事件党,游戏里基本上没有安插别的脚本,因此没有什么冲突。




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