找回密码
 点一下
查看: 6289|回复: 31

怎么获得DotA里英雄技能ID,物品ID和野怪ID?

[复制链接]
发表于 2007-12-14 16:23:32 | 显示全部楼层 |阅读模式
我发现英雄的ID可以从DotA的源代码里获得.比如矮人狙击手可以搜索"Sniper",找到ID是'Usyl'或1433631084
.
但是怎样获得所有英雄的技能ID和物品ID呢?源代码里找不到,上了很多网站也没找到答案.

请高手帮忙!

还有,怎样获得DotA里的野怪的ID?

谢谢!
发表于 2007-12-14 16:33:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2007-12-14 16:54:36 | 显示全部楼层
多谢!

我是WE和Jass的新手,想要写DotA的AI.如果问的问题比较白痴,请见谅.
回复

使用道具 举报

发表于 2007-12-14 17:06:05 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2007-12-14 17:23:52 | 显示全部楼层
多谢everguo.

虽然我是WE和Jass的新手,但是开发程序却有N多年的经验了(N远>10).

我知道这不是一件容易的事,也不是一件可以在短期完成的事,但是我已经决心做了,而且我有信心.
回复

使用道具 举报

 楼主| 发表于 2007-12-16 22:56:48 | 显示全部楼层
物品编辑器里Ctrl+D果然可以看到ID,不过不全,很多技能、物品、野怪的ID都找不到。

请问还有什么办法?比如用JASS可以做到吗?
回复

使用道具 举报

发表于 2007-12-16 23:37:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2007-12-17 12:18:54 | 显示全部楼层
DOTA不是slk加密吗?
物品编辑器里当然不全
回复

使用道具 举报

发表于 2007-12-17 12:29:49 | 显示全部楼层
CampaignAbilityStrings.txt里应该有技能ID把
[Aamk]
Name=Attribute Bonus
Tip=属性附加 - [|cffffcc00等级 1|r],属性附加 - [|cffffcc00等级 2|r],属性附加 - [|cffffcc00等级 3|r],属性附加 - [|cffffcc00等级 4|r]
Ubertip="增加英雄总共2点的敏捷、智力和力量。","增加英雄总共4点的敏捷、智力和力量。","增加英雄总共6点的敏捷、智力和力量。","增加英雄总共8点的敏捷、智力和力量。"
Researchtip=学习 属性附加[|cffffcc00U|r] - [|cffffcc00等级 %d|r]|n(Attribute Bonus)
Researchubertip="永久增加英雄2点的敏捷、智力和力量。"
Researchhotkey=U

ItemStrings.txt里是物品ID
[bspd]
Name=速度之靴|nBoots of Speed
Hotkey=S
Tip=购买 速度之靴(|cffffcc00S|r)|nBoots of Speed
Ubertip="提升50的移动速度。|n|n提升效果不能和远行鞋,假腿,或者其它速度之靴叠加。"
Description=提升50的移动速度。|n|n提升效果不能和远行鞋,假腿,或者其它速度之靴叠加。

新建文件夹.zip

42 KB, 下载次数: 208

回复

使用道具 举报

发表于 2007-12-17 13:09:11 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2007-12-17 13:22:54 | 显示全部楼层
他就是做Ai的。。。。而且实力强劲。。
回复

使用道具 举报

发表于 2007-12-17 13:26:57 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2007-12-17 14:23:23 | 显示全部楼层
To everguo:

我实在想不通你是凭什么看出我"有明显的改图倾向"的. 如果没有事实依据,这样说是不是有"那么一点点"过分?

回头说这个主题,你说"这问题与JASS无关",我觉得并非如此.

可以用trigger+ForGroup()+GetEnumUnit()+GetUnitTypeId()来获得游戏中存在的任何单位的ID.
只不过这种方法很难得到完整的ID清单.比如某一个时间不存在某种野怪,那就必须先涨级,打掉几处野怪,等野怪刷新,刷新后如果还没有就重复操作,直到刷出这种野怪,然后触发trigger,记录下ID.这样做很麻烦.另外,比如我想知道育母蜘蛛的寄生蜘蛛和次级寄生蜘蛛的ID,我就必须退出游戏,手选育母蜘蛛,等游戏开始,成功释放技能,触发trigger,记录寄生蜘蛛的ID,继续玩游戏,直到寄生蜘蛛杀了一个敌人,产生出次级寄生蜘蛛,再触发trigger,记录次级寄生蜘蛛的ID.如果我想知道地穴编织者的观察者的ID,我就要退出游戏,选地穴编织者再玩一遍.这是很繁琐的过程,效率很低.我想知道更加高效,最好是得到所有ID清单的办法.


To: 骀鏄

多谢! 回头看看去.
回复

使用道具 举报

发表于 2007-12-17 14:34:31 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2007-12-17 15:16:08 | 显示全部楼层
这没什么.

我一开始以为通过Blizzard提供的函数可以做到这一点,只不过我没找到这样的函数. 我发帖的时候以为这是一个只有JASS才能解决的问题,所以发在这里了. 我上一个帖子也提供了用JASS"部分"解决这个问题的方案. 看了骀鏄提供的信息才知道不用JASS就能解决这个问题.
回复

使用道具 举报

发表于 2007-12-17 15:42:01 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2007-12-17 16:34:46 | 显示全部楼层
不影响.

我自己可以解密DotA.不管怎样,谢谢.
回复

使用道具 举报

发表于 2007-12-18 01:58:34 | 显示全部楼层
如果楼主只是想知道英雄的技能ID以及物品ID之类的,而且只是要知道ID,而不需要直接能复制粘贴的话。
可以考虑让WAR3自己输出ID。当然,这比较麻烦,算是不太好的办法。

比如,增加一个单位使用技能的触发器。然后在动作中把技能ID输出到屏幕。
然后同样的注册操作物品的事件,然后输出物品ID。
单位ID的话,同样也可以注册玩家选择单位之类的事件,然后输出触发单位的ID。

当然,这只是一个比较笨,但是一定有结果的办法。
回复

使用道具 举报

 楼主| 发表于 2007-12-20 16:45:56 | 显示全部楼层
谢谢amp34.
你说的这个方法对大多数技能ID有用,不过不能释放的技能就没办法了,比如被动技/光环等.
物品也是一样,很多物品不能使用的.
不过还是谢谢你.多一种思路总是好的.虽然这里用不上,也许哪天别的问题就用的上了.呵呵.
回复

使用道具 举报

发表于 2007-12-20 18:23:53 | 显示全部楼层
噢。被动技能也是可以的呀。
比如学习的时候,就有学习的技能的说。

物品的话,只是在操作物品的时候,比如捡起来这个动作,当然,如果有一些物品是没办法得到的。那就没办法老。

另外楼主如果打算做AI。需要找人测试的话。偶倒是可以推荐几个常在线的。嗯嗯。

噢噢,忘了,如果是物品的光环的话,MS米有学习的说。
不记得有米有单位获得技能的事情老。好像素米有的,如果真的米有的话,只能通过物品ID,然后查看对应的技能老。

不过即使是SLK,同样可以看到数据的说。

有好多解压工具可以解出DOTA的全部(基本上)文件,以楼主的水平来说,应该是没啥问题的。嗯嗯。
http://bbs.islga.org/read.php?tid=7305
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-24 23:40 , Processed in 0.059707 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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