Project1

标题: 如何获取特定被攻击的角色伤害来源的敌人在敌群中的ID [打印本页]

作者: sxjkjly8010    时间: 2019-6-21 01:23
标题: 如何获取特定被攻击的角色伤害来源的敌人在敌群中的ID
本帖最后由 sxjkjly8010 于 2019-6-22 11:11 编辑

想要使一个特定角色在受到伤害时,对伤害来源的敌人造成一个特殊技能的反击效果,但是无法获取敌人在敌群中的ID(第几个敌人),请问怎么获取那个敌人在敌群中的到一个30号的变量中呢?

评分只能写+1...
作者: shenweizhiguang    时间: 2019-6-21 18:51
在职业里面加特殊能力-物理反击几率+魔法反射几率100%
作者: soulsaga    时间: 2019-6-21 19:28
RUBY 代码复制
  1. a=$scene.instance_variable_get(:@active_battler)
  2. $game_variables[300]=a.index


不知可不可以..你试一下
作者: KB.Driver    时间: 2019-6-21 23:23
本帖最后由 KB.Driver 于 2019-6-21 23:47 编辑

先参考系统的反击(对受到的物理攻击用普通攻击反击)


然后用相同的方法写一个就行:
RUBY 代码复制
  1. #==============================================================================
  2. # ■ 自定义技能反击 by Calendar99
  3. #------------------------------------------------------------------------------
  4. #  略。
  5. #==============================================================================
  6.  
  7. module CLD99
  8.   module SpecialInvoke
  9.  
  10.     # 反击表
  11.     #
  12.     # 格式:
  13.     # 英雄编号 => 反击技能编号
  14.     #
  15.     LIST = {
  16.       1 => 80,
  17.       2 => 1
  18.     }   
  19.  
  20.   end  
  21. end
  22.  
  23. class Scene_Battle
  24.   #--------------------------------------------------------------------------
  25.   # ● [别名修改]发动技能/物品
  26.   #--------------------------------------------------------------------------
  27.   alias invoke_item_for_special invoke_item
  28.   def invoke_item(target, item)
  29.     invoke_item_for_special(target, item) # 原方法
  30.     if @subject.enemy? && target.actor?
  31.       if skill_id = CLD99::SpecialInvoke::LIST[target.actor.id]
  32.         invoke_special_attack(target, skill_id)
  33.       end
  34.     end
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● [追加]特殊反击
  38.   #--------------------------------------------------------------------------
  39.   def invoke_special_attack(target, skill_id)
  40.     counter_skill = $data_skills[skill_id]
  41.     @log_window.display_counter_special(target, counter_skill)
  42.     @subject.item_apply(target, counter_skill)
  43.     refresh_status
  44.     @log_window.display_action_results(@subject, counter_skill)
  45.   end
  46. end
  47.  
  48. class Window_BattleLog
  49.   #--------------------------------------------------------------------------
  50.   # ● 显示反击
  51.   #--------------------------------------------------------------------------
  52.   def display_counter_special(target, item)
  53.     back_one
  54.     Sound.play_evasion
  55.     add_text(sprintf("%s使用%s进行反击!", target.name, item.name))
  56.     wait
  57.   end
  58. end


效果:





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