創建你的第一個劍三插件
來自專欄 少年哞哞的煩惱也不知道從何開始寫起,因為寫插件之前得先懂Lua,但是想想自己的水平還不能夠寫好這個內容,於是決定先從劍三插件的創建開始,默認讀者老爺你已經會了Lua。
本篇教程講指導你創建一個簡單的插件:Hello World,主要介紹插件的結構和基本知識。這個插件的功能就是在進入遊戲後在聊天欄輸出HelloWorld
劍三插件的目錄結構(1):定義插件集
正式服的劍三插件都放置於JX3inzhcninterface下,正式服版本需要key驗證,否則會被判為非法插件。本教程基於體服開發和撰寫,所以插件路徑為JX3_EXPinzhcn_expinterface
interface文件夾下,每一個文件夾就是一個插件集合,插件集的信息根據該文件夾根目錄下的Package.ini內的信息進行顯示,這裡我們在interface下創建一個Test文件夾,即我們創建一個叫Test的插件集。
第二步我們在Test文件夾里新建一個txt文本,並重命名為Package.ini。然後用記事本或者其他能打開文本文檔的工具打開都可以。
然後把下面一段內容複製進去並保存
Package.ini
[Package]name=Testdesc=學習插件開發
Package],表示這個文件夾是一個package,即定義了一個插件集
name=Test,是插件集的名字
desc=學習插件開發,定義了插件集的說明
保存後進遊戲查看插件管理,效果如下:
劍三插件的目錄結構(1):定義子插件
在插件集內,每一個文件夾就是一個插件,文件夾名就是插件的名字。
我們在Test文件夾下新建一個文件夾叫HelloWorld,並在HelloWorld文件夾內新建三個文本文檔,依次改名為info.ini,HelloWorld.ini,HelloWorld.lua。
Info.ini:是插件的信息文件,遊戲程序將通過它來讀取插件的名稱、說明和要執行的lua腳本,所以這個文件是很重要的。
HelloWorld.lua:就是插件lua腳本,一個插件可以有多個lua腳本,通過info.ini的設置來執行。HelloWorld.ini:是插件的界面配置文件,帶有界面的插件就需要這個界面文件了,現在我們先不管它。接下來我們依次來說明下詳細的內容配置。info.ini
[HelloWorld]default=1desc=插件的介紹。lua_0=HelloWorld.luaname=插件的名字package=Testversion=1.0
第一行的方框中的內容必須是這個插件的文件夾名,否則會無法載入插件
default=1:表示該插件默認啟用,即打開插件管理界面的時候,你會看到默認勾選
desc=:插件的介紹,插件的介紹內容
lua_0=:後面就是插件的lua腳本的路徑了,如果有多個腳本,就可以繼續寫lua_1=xxx lua_2=xxx ……,遊戲會從lua_0開始按順序載入。
name=:插件的名字,在插件管理界面顯示的信息
package=:後面填寫隸屬於哪個插件集文件夾
version=1.0:目前都寫1.0
效果如下:
編寫Lua腳本
先來個最簡單的,直接用記事本打開剛剛創建的HelloWorld.lua,輸入如下代碼:
OutputMessage("MSG_SYS", "Hello World
")
保存並小退一下看看:
Hello World後面那
關於OutputMessage函數:這是個函數可以輸出字元串、變數,一般的用法是OutputMessage(szType, szMsg),Type是輸出信息類型("MSG_SYS"是黃字的系統信息),szMsg是要輸出的字元串,具體參考劍三白名單API。
是一個換行的轉義符,顧名思義,所用就是在這一行結尾來一個換行,這樣可以避免讓下一行內容緊接著這一行,影響閱讀。關於轉義符的用法可以自行上網搜索。
推薦閱讀:
※用 Nginx + Lua(OpenResty) 開發高性能 Web 應用
※為什麼很多編程語言用 end 作為區塊結束符,而放棄花括弧?
※有什麼用Lua做的好玩的項目嘛?
※公式計算機的另一種實現思路
※actor模型除了erlang和skynet用得廣泛嗎?