//内容可能经楼主删改(格式\表述\缩进等)
Lua 是遊戲本身允許玩家在部落之家中,執行遊戲以外的程式。
使用方法是在部落之家中輸入/lua,並輸入想執行的程式
注意,以下原因可能導致Lua無法使用:
奶酪未滿 1000
沒有 /np 權限
超過 64000 個字元
首先你必須知道,遊戲提供的函式(function)以及事件(event),請參閱以下網址
http://atelier801.com/topic?f=5&t=451587#m3一、指令
在一些小遊戲中,常常會有指令的存在(例: !help)
其實,做法非常簡單,在上述遊戲提供的事件中,
可以找到 eventChatCommand ( playerName, command )
其中有兩個參數,playerName 以及 command,分別指的是
playerName:輸入指令的玩家名
command:玩家輸入的指令
那我們要如何使用事件呢?
只要在事件名稱的前方加上 function ,換行後加上 end
其實不只這種做法,這邊提供我個人比較常用的。
給個例子,當玩家輸入 !mort 即死亡
Lua代码:
function eventChatCommand ( playerName, command )
if command == "mort" then
tfm.exec.killPlayer(playerName)
end
end
讓我們一句一句來解析,第一句如果剛剛有認真看,應該是沒問題
不過這裡有一點要提醒,同一個lua裡面,一個事件只能出現一次,
接下來如果有接觸過程式的人,應該都很熟,
if 是用來判斷條件是否滿足的,若滿足則執行以下程式,一個 if 也必須搭配一個 end
這邊提供用來判斷的依據
==:等於
>=:大於等於
<=:小於等於
~=:不等於
要注意的是,程式中的 == (equal) 不可用 = (assign) 代替
所以 if command == "mort" then 的意思是,當輸入的指令等於 mort 時,
執行 tfm.exec.killPlayer(playerName) ,即殺死輸入該指令玩家,
值得注意的點是,這邊的每個參數都是 字串(String) ,所以當 command == "mort" 時的 mort 才須用 " " 框住,
代表 mort 須是一個字串,
以下提供常用數據的類型:
整數(Integer)
字串(String)
布林值(Boolean):只可為 True 或 False
陣列(Table) //楼主注:可能指数组
這些就是會遇到的數據類型,
若整數類型的數據需判斷時,只需在 == 後加上整數值即可,不須 " ",
(例: if score == 0 then)
字串類型則須加上 " ",
布林值只可為 是(True) 或 否(False)
指令的部分大概就到這邊,如果喜歡我的教學,歡迎右下角點個喜歡,
如果還有問題,也歡迎在下方提問。
如果有講錯的地方 歡迎指正
FAQ
Q : 每次打指令都會顯示在聊天欄上,真的很煩,有沒有方法可以消除呢?
A : system.disableChatCommandDisplay("這邊輸入你的指令", true) 把這行加入你的程式就可以了喔