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

Project1

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

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1057
在线时间
208 小时
注册时间
2019-4-11
帖子
59
跳转到指定楼层
1
发表于 2019-6-21 01:23:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

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

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

评分只能写+1...

Lv1.梦旅人

梦石
0
星屑
121
在线时间
28 小时
注册时间
2019-5-17
帖子
7
2
发表于 2019-6-21 18:51:58 | 只看该作者
在职业里面加特殊能力-物理反击几率+魔法反射几率100%
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36397
在线时间
10791 小时
注册时间
2009-3-15
帖子
4813
3
发表于 2019-6-21 19:28:55 | 只看该作者
RUBY 代码复制
  1. a=$scene.instance_variable_get(:@active_battler)
  2. $game_variables[300]=a.index


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

点评

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

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
39587
在线时间
1920 小时
注册时间
2010-11-14
帖子
3320

R考场第七期纪念奖

4
发表于 2019-6-21 23:23:34 | 只看该作者
本帖最后由 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


效果:

点评

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

评分

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

查看全部评分

用头画头像,用脚写脚本
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 19:02

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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