查看: 3734|回复: 5

[已经解决] 如何获取特定被攻击的角色伤害来源的敌人在敌群中的ID

[复制链接]
梦石
0
星屑
1581
在线时间
253 小时
注册时间
2019-4-11
回帖
32
发表于 2019-6-21 01:23:28 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 sxjkjly8010 于 2019-6-22 11:11 编辑

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

评分只能写+1...
梦石
0
星屑
121
在线时间
28 小时
注册时间
2019-5-17
回帖
6
发表于 2019-6-21 18:51:58 | 显示全部楼层
在职业里面加特殊能力-物理反击几率+魔法反射几率100%
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-6-21 19:28:55 | 显示全部楼层
[pre lang="ruby"]a=$scene.instance_variable_get(:@active_battler)
$game_variables[300]=a.index[/pre]

不知可不可以..你试一下

点评

VA没有$scene,用的是SceneManager.scene。另外VA没有active_battler,是迭代BattleManager.next_subject  发表于 2019-6-21 22:41
回复

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2019-6-21 23:23:34 | 显示全部楼层
本帖最后由 KB.Driver 于 2019-6-21 23:47 编辑

先参考系统的反击(对受到的物理攻击用普通攻击反击)
QQ截图20190621224640.png

然后用相同的方法写一个就行:
[pre lang="ruby"]#==============================================================================
# ■ 自定义技能反击 by Calendar99
#------------------------------------------------------------------------------
#  略。
#==============================================================================

module CLD99
  module SpecialInvoke
   
    # 反击表
    #
    # 格式:
    # 英雄编号 => 反击技能编号
    #
    LIST = {
      1 => 80,
      2 => 1
    }   
   
  end  
end

class Scene_Battle
  #--------------------------------------------------------------------------
  # ● [别名修改]发动技能/物品
  #--------------------------------------------------------------------------
  alias invoke_item_for_special invoke_item
  def invoke_item(target, item)
    invoke_item_for_special(target, item) # 原方法
    if @subject.enemy? && target.actor?
      if skill_id = CLD99::SpecialInvoke::LIST[target.actor.id]
        invoke_special_attack(target, skill_id)
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● [追加]特殊反击
  #--------------------------------------------------------------------------
  def invoke_special_attack(target, skill_id)
    counter_skill = $data_skills[skill_id]
    @log_window.display_counter_special(target, counter_skill)
    @subject.item_apply(target, counter_skill)
    refresh_status
    @log_window.display_action_results(@subject, counter_skill)
  end
end

class Window_BattleLog
  #--------------------------------------------------------------------------
  # ● 显示反击
  #--------------------------------------------------------------------------
  def display_counter_special(target, item)
    back_one
    Sound.play_evasion
    add_text(sprintf("%s使用%s进行反击!", target.name, item.name))
    wait
  end
end[/pre]

效果:
8.gif

点评

可惜不能显示技能动画,尝试添加播放动画提示找不到animation.id  发表于 2019-6-22 11:52

评分

参与人数 3星屑 +100 赞 +2 收起 理由
VIPArcher + 100 认可答案
sxjkjly8010 + 1 认可答案
fux2 + 1 我很赞同

查看全部评分

用头画头像,用脚写脚本
回复 1 0

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部