站内搜索

搜索
热搜: 活动 交友 discuz

iFAction 世界需要你的想象力!

[小技巧] 【ACT教程】获取生成敌人/召唤兽Mod的ID

6

主题

14

帖子

150

积分

iF基础方块

Rank: 3Rank: 3

积分
150
发表于 2022-8-2 01:07:37 | 显示全部楼层 |阅读模式
本帖最后由 Heiko 于 2022-8-6 06:48 编辑

前言
软件还有几天就到期了,不打算续费/买永久订阅了,还是回去深造我的RM,软件挺好的潜力很大,嗯


正题
系统生成的敌人ID翻翻脚本或者log一下相关脚本就可以发现,生成的敌人的ID是从 100000 开始的,这个是固定的。


配合相关脚本自然就可以获取到系统生成的第一位敌人的数据,地图没有ID为100000的敌人直接去获取它的数据是会报错的。
  1. RV.NowMap.findEnemy(100000).getData()
复制代码
log打印一下会获取它的数据信息
  1. log(RV.NowMap.findEnemy(100000).getData())
复制代码




按照打印出来的数据,获取单项数据



例如:
  1. RV.NowMap.findEnemy(100000).getData().id       //获取100000ID的敌人在数据库中的ID
复制代码
比较简单的获取方法就这样

进阶
直接获取在地图中生成的敌人,判断它的ID是否等于数据库中的某个ID


获取地图中第一个敌人的信息,是个数组,从零开始算,没有这个敌人直接获取也不会报错。
  1. RV.NowMap.getEnemys()[0]
复制代码
我的想法是既然可以获取第一个敌人的数据,那直接获取最后一个敌人的信息也没问题。而且是数组,那就更容易获取了,稍微度娘了一下。
  1. RV.NowMap.getEnemys()[RV.NowMap.getEnemys().length - 1]  //这样写,或者像下面那样写也可以获取到数组最后一位
复制代码
  1. RV.NowMap.getEnemys().slice(-1)[0]
复制代码


获取到的数据如下,可以看到可以获取到敌人在地图中的ID ,也就是index
那么判断地图中的生成的某个ID的敌人是不是我要的那位就容易多了


获取地图中最后一位敌人在地图中的ID
  1. RV.NowMap.getEnemys()[RV.NowMap.getEnemys().length - 1].index
复制代码
引用一开始说到的脚本
  1. RV.NowMap.findEnemy(100000).getData().id //获取地图ID为100000的敌人在数据库中的ID
复制代码
替换一下
  1. RV.NowMap.findEnemy(RV.NowMap.getEnemys()[RV.NowMap.getEnemys().length - 1].index).getData().id   //获取地图最后生成的敌人在数据库中的ID
复制代码

需要 填数值 的脚本,往里套 返回数值 的脚本

知道生成敌人的ID直接进行判断即可,例:

条件分支--脚本--RV.NowMap.findEnemy(RV.NowMap.getEnemys()[RV.NowMap.getEnemys().length - 1].index).getData().id == 10


如果地图中最后生成的敌人的数据库ID等于10就怎样怎样,获取它的HPMP各种也是一样的操作就不多写了,多log多尝试很容易学会的,记得勾自动+并行,实时获取才能实时判断


更多的延伸扩展需要自己动脑了

本帖子中包含更多资源

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

x
黄粱一梦终不悔
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系我们
QQ群:977585123
iFAction下载
Windows客户端
反馈
意见建议
iFAction

iFAction

京ICP备15053274号-1

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.