2013-08-25 117 views
3

我想降級(等級下降)我公會的每一個成員與特定的等級(例如,所有新成員,以收入者比重)魔獸世界API:降級所有人級別?

---任何想法如何在魔獸API的世界做到這一點?

(IM猜測在所有公會成員的姓名一些循環測試,如果排名和降級然後 - ?請寫例如如果是這樣)

感謝您對未來的答案:)

+0

我不是魔獸專家,但根據[網站](http://www.wowwiki.com/World_of_Warcraft_API#Introduction)其API是用Lua編寫的,而不是C。也許你應該刪除C標籤並添加Lua標籤。 –

+0

@wowapier Lua與C唯一共同之處在於它是一種編程語言。除此之外,他們不可能更加不同。 JavaScript是Lua的親吻表親(動態類型化,垃圾收集,閉包,通過原型繼承等),至少具有類C *語法*。 Lua甚至沒有這個。 – Mud

+0

我指着它比帕斯卡爾更像C - 你自己說「親吻堂兄」<仍然有關 - 還是我不明白爲什麼有人會排列這個問題?它是一個非常有趣的問題... – wowapier

回答

3

當我出場,我總是看的第一個地方是wowwiki。以下是guild functions的列表。看起來你可以調用GetGuildRosterInfo從1到GetNumGuildMember(或直到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調用。你甚至可以在遊戲中編寫大部分插件。當我玩的時候,我爲自己寫了不少插件併發布了a few。其中一個(Hack)是一個遊戲中的Lua腳本編輯器。我認爲有人已經拿起球並繼續前進。你應該看看得到那樣的東西。

+0

好的,謝謝你的提示,但是如何將它寫在更多的行上? (Lua頁面似乎在更多行上有它們的循環(你也是如此))當我嘗試這樣做時,它不起作用 – wowapier

+0

Lua大部分不關心空白。您可以將整個腳本寫在一行上。不過,更好的辦法是獲得像DevPad這樣的東西,這樣你就可以在遊戲中編寫可讀代碼。 – Mud

+2

好吧,我試圖把你的代碼放入瀏覽器地址字段中,然後粘貼到/ run後,它現在似乎可以工作:)感謝這個例子! :) - 但還有一個問題 - 它真的不能在遊戲宏中直接在更多行上完成? :( – wowapier

1

這是關於能夠在宏中執行此操作的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) 

這是同樣的事情格式化,這樣你可以僅僅指剛複製並粘貼到一個宏。每個命令都在一行上。你可以有這些sequentialy運行多個命令:再次

/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 

通知的simicolon ';'在同一行的同一個塊中的兩個語句之間。這是使代碼明確且易於閱讀的好習慣。