我想降级(排名下降)我的公会中每一位具有特定排名的成员
---有什么想法如何在魔兽世界API中做到这一点
(我猜所有公会成员的名字都会循环测试是否降级?如果是,请写个例子)
感谢您将来的回答:)
当我玩的时候,我总是看到的第一个地方是wowwiki。这是公会功能列表。看起来你可以从1到GetNumGuildMember
调用GetGuildRosterInfo
(或者直到GetGuildRosterInfo(N)
返回nil
)来获取玩家名称和等级,然后调用GuildDemote
来降级玩家。
类似这样的东西(完全未经测试;这些天我甚至没有安装魔兽世界):
for i=1,GetNumGuildMembers() do
local name, rank = GetGuildRosterInfo(i)
if rank == "The rank you're iterested in" then
GuildDemote(name)
end
end
你们可以在游戏中试用API调用。你们甚至可以在游戏中编写大部分插件。当我玩的时候,我为自己写了很多插件,并发表了一些。其中一个(哈克)是游戏中的Lua脚本编辑器。我想有人在那上面捡了球,并一直保持着。你应该去找这样的东西。
这是对OP关于能够在宏中执行此操作的其余问题的澄清。
这是我在一个宏中得到的东西,格式化后你可以在这里阅读:
/run for i=0,0 do local instanceName, instanceDesc, backgroundTexture, buttonTexture,
titleBackground, mapID, instanceLink = EJ_GetSearchResult(i); if mapID then print
(i,instanceName, mapID) end end
/dump GetLFGDungeonInfo(20)
这是相同的格式化内容,以便您可以将其jsut复制并粘贴到宏中。每个命令都在一行上。您可以有多个按顺序运行的命令:
/run for i=0,0 do local instanceName, instanceDesc, backgroundTexture, buttonTexture, titleBackground, mapID, instanceLink = EJ_GetSearchResult(i); if mapID then print(i,instanceName, mapID) end end
/dump GetLFGDungeonInfo(20)
以下是公认的答案:
for i=1,GetNumGuildMembers() do
local name, rank = GetGuildRosterInfo(i)
if rank == "The rank you're iterested in" then
GuildDemote(name)
end
end
在这里,它被格式化为粘贴到宏中:
/run for i=1,GetNumGuildMembers() do local name, rank = GetGuildRosterInfo(i); if rank == "The rank you're iterested in" then GuildDemote(name) end end
注意分号";"在同一行的同一块中的两个语句之间。这是一种很好的做法,可以使代码变得清晰易懂。