創建你的第一個劍三插件

創建你的第一個劍三插件

來自專欄 少年哞哞的煩惱也不知道從何開始寫起,因為寫插件之前得先懂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用得廣泛嗎?

TAG:劍俠情緣網路版叄 | Lua |