>我试图获取一个法术的排名,但GetSpellInfo没有返回第二个参数(rank(。如果我运行:
/dump GetSpellInfo( 5782 )
我得到
[1]="Fear"
[3]="136813"
[4]="1500"
[5]="0"
[6]="20"
[7]="5782"
每个法术和等级的组合似乎都有一个唯一的ID:
5185 = Healing Touch (rank1)
5186 = Healing Touch (rank2)
5187 = Healing Touch (rank3)
5188 = Healing Touch (rank4)
5189 = Healing Touch (rank5)
6778 = Healing Touch (rank6)
8903 = Healing Touch (rank7)
9758 = Healing Touch (rank8)
如何获得给定ID的法术等级?
我正在研究的模组(LunarSphere(从魔法书中得到了拖累。
我正在将其与按钮SetAttribute一起使用:
self:SetAttribute("*spell-S01", "Healing Touch")
对于最高等级或
self:SetAttribute("*spell-S01", "Healing Touch(rank 3)")
对于特定等级
谢谢!
它们只是不同的咒语。这使得某些事情变得尴尬,我们倾向于将它们视为同一咒语的不同等级。
您可能需要创建排名法术的数据库,并在自己的表格中进行查找,作为插件提供的整体服务的一部分。
https://wowwiki.fandom.com/wiki/API_GetSpellInfo
等级(字符串( - 来自咒语工具提示的等级线,例如"等级 2"。返回一些其他分类(如召唤的"召唤" 拼写(或空字符串(如果没有等级(。
因此,"排名"仅用于在UI中显示额外的行,如果他们想为该咒语添加一个。
像UI API中的许多东西一样,它们只是为了支持UI,而且大多是实用的,只是显示或执行WoW UI功能所必需的。
local subTextOrRank = GetSpellSubtext(spellId)
这将获取排名的显示行,较新的引擎可能不会返回拼写信息。"GetSpellSubtext"可能会也可能不会返回排名文本,如果拼写是否缓存在客户端上,或者您最终看到它每次都有效。
我过去曾使用此拼写列表作为快速参考:
http://kyle.13th-floor.org/wow/spells/spells_2_4_0.txt
为了回答有关客户端静态可用数据的许多问题:
https://wow.tools/dbc/
以下是当前版本的魔兽世界经典版中的客户端拼写名称表的示例:
https://wow.tools/dbc/?dbc=spellname&build=1.13.3.32836#search=&page=1
以下是来自同一魔兽世界经典版本的拼写表:
https://wow.tools/dbc/?dbc=spell&build=1.13.3.32836#search=&page=1
ID, NameSubtext_lang, Description_lang, AuraDescription_lang
1
3
4
5, , Instantly Kills the target. I hope you feel good about yourself now.....
7
10, Rank 1, Ice shards pelt the target area doing $o1 Frost damage over $d.
11
在这里,您可以看到他们实际上制作了一个表格,列出了显示UI所需的内容,并且没有比这更复杂或更深入的表格。
如果你向下阅读列表可以看到或想象它基本上是手工完成的,因此可能会有错误,或者可能有有助于排名描述字段但破坏一致性的文本。请务必注意,如果您要依赖表字符串字段进行编程,则需要了解并向排名测试添加例外。
您可以尝试在加载时滚动浏览法术列表并动态构建排名列表,但请注意,该表中有 21,000 个法术。如果你只担心玩家的法术,你可以制作一个迷你的预建列表,存储为你自己的插件的表格,它将是一个只有数百个表格。您可以拥有基本的英文名称以及排名的最小和最大字段。
我认为循环中的"GetSpellSubtext"在本地客户端上吐出Lua表,与表结合使用并滚动一个小数据库可能会为您打破日志堵塞。