Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WoW Lua-如何获得1.13中的法术等级(经典)_Lua_World Of Warcraft - Fatal编程技术网

WoW Lua-如何获得1.13中的法术等级(经典)

WoW Lua-如何获得1.13中的法术等级(经典),lua,world-of-warcraft,Lua,World Of Warcraft,我试图获取一个法术的等级,但是GetSpellInfo不返回第二个参数(等级)。如果我跑步: /dump GetSpellInfo(5782) 我明白了 每个法术和等级的组合似乎都有一个唯一的ID: 5185 = Healing Touch (rank1) 5186 = Healing Touch (rank2) 5187 = Healing Touch (rank3) 5188 = Healing Touch (rank4) 5189 = Healing Touch (rank5) 6778

我试图获取一个法术的等级,但是GetSpellInfo不返回第二个参数(等级)。如果我跑步:

/dump GetSpellInfo(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的情况下获得法术等级

我正在使用的mod(LunarSphere)从法术书中获得了一个阻力

我将其与button SetAttribute一起使用:

self:SetAttribute("*spell-S01", "Healing Touch")
为最高级别或

self:SetAttribute("*spell-S01", "Healing Touch(rank 3)")
为了一个特定的等级


谢谢

它们只是不同的咒语。在某些情况下,我们倾向于将它们视为同一咒语的不同等级,这会让我们感到尴尬

作为插件提供的整体服务的一部分,您可能需要对已排序的拼写进行DB,并在自己的表中进行查找

等级(字符串)-法术提示中的等级线,例如“等级2”。返回一些其他的分类(如召唤的“召唤”) (拼写)或空字符串(如果没有等级)

因此,如果他们想为该咒语添加一行,那么“排名”只是为了在UI中显示额外的一行

就像UI API中的许多东西一样,它们只是用来支持UI的,而且大多是实用的,并且是显示或实现WoW UI功能所必需的

local subTextOrRank = GetSpellSubtext(spellId)
这将获取等级的显示行,更新的引擎可能不会返回该等级的拼写信息。”GetSpellSubtext'可能返回等级文本,也可能不返回等级文本,如果该拼写是否缓存在客户端上,或者您每次都看到它工作

我过去曾使用过这个法术列表作为快速参考:

对于回答有关客户静态可用数据的许多问题:

以下是来自WoW Classic当前版本的客户端拼写表示例:

这是同一个魔兽世界经典版本的拼写表:

在这里,你可以看到,他们确实制作了一个表格,列出了用户界面显示所需的内容,并且没有比这更复杂或更深刻的内容

如果你仔细阅读列表,你可以看到或想象它基本上是手工完成的,因此可能会有错误,或者可能有帮助排名描述字段但破坏一致性的文本。这一点很重要,要注意,如果出于编程目的而依赖表字符串字段,则需要注意并向秩测试中添加异常


你可以尝试在加载时滚动法术列表,并在运行中建立等级列表,但请注意该表中有21000个法术。如果你只担心玩家的法术,你可以为你自己的插件制作一个小的预建列表,作为一个表存储,它将是一个只有数百个的表。你可以有一个基本的英文名字和一个最小和最大的排名字段


我认为循环中的“GetSpellSubtext”在本地客户端上吐出一个Lua表,再加上这些表和滚动一个小DB,可能会为您打破日志阻塞。

非常感谢您的回答!我想我可能会使用
GetSpellBookItemName
逃脱,因为我正在处理一个drop事件,我有可用的spellbook插槽ID,
GetSpellBookItemName
将在
spellSubName
中返回拼写等级。
local subTextOrRank = GetSpellSubtext(spellId)
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