使用LUA開發WOW外掛程式 ACE3庫的理解 一

2021-04-19 22:28:20 字數 973 閱讀 8827

玩wow已經有半年了,蹭了半年電腦,在兄弟的帶領下把小戰士公升級到了70,就放在那沒動了,呵呵。本身是學計算機的,不能荒廢了學業哈,所以就開始研究起lua,想做個屬於自己的外掛程式,雖說照著網上的教程可以寫出來個簡單的外掛程式,可是自己硬是硬著頭皮啃了下ace3庫,這幾天終於有點眉目了,慢慢來,打算每天寫一點,終有一天會把那玩意搞透的哈,呵呵。

廢話少說,開始第一篇--《libstub》

按照原始碼上的注釋,這是乙個簡單的庫版本管理的工具(stub不知怎麼翻譯)。事實上,它只是乙個table,然後將自己儲存在了_g(也就是全域性環境中), 如果按照table的定義呢,這個libstub可以按照如下形式描寫:

libstub =

minors = {}

}緊接著,註冊自己(就是把自己新增到)_g中,用到**:_g[2] = libstub 

這個libstub提供了兩個函式:newlibrary(major, minor)和getlibrary(major, silent),這兩個函式大家看名字就能明白是幹什麼用的。第乙個函式呢就是根據你所給定的庫的版本號來在libstub中增加一條記錄,例如:如果如此呼叫:

libstub:newlibrary("a", "b")

首先通過以下兩句來判斷這個庫有沒有新的版本(其中的self當然就是libstub)

local oldminor = self.minors["a"] --取出以字串major為索引儲存在libstub.minors中的版本號

if oldminor and oldminor >= "b" then return nil end--判斷庫是否存在以及是否是新的版本存在

庫的管理也就體現在以上兩段吧...     

如果庫存在,也沒有比當前請求的庫版本要新的存在,則以主版本為索引儲存(下次可以再次通過版本號來獲得相同的庫。

今天先寫到這明天再補充,第一回寫,累了。。。可能還是寫得不太明白,呵呵                                     

apisix外掛程式開發 lua版

1.編寫外掛程式logstash.lua 位置 usr local apisix apisix plugins logstash.lua local core require apisix.core local plugin name logstash local schema local m fu...

openresty 二 使用lua開發

在openresty中使用lua開發 在 usr local openresty nginx conf nginx.conf,修改檔案配置,把下面的新增到要訪問的location中 default type text html content by lua ngx.say hello,world 新...

QT使用外掛程式開發介面

首先特別感謝外掛程式創作者飛揚青雲 feiyangqingyun 第二步安裝 d qt qt5.5.1 5.5 mingw492 32 plugins designer中 第三步開發 找到qt安裝目錄的plugins的同級目錄中的bin資料夾 d qt qt5.5.1 5.5 mingw492 32...