當前位置:首頁 » 網頁前端 » lua腳本關鍵詞
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

lua腳本關鍵詞

發布時間: 2022-06-08 11:45:39

『壹』 問一個關於LUA的關鍵詞

ticket是鍵名
是沒寫完的吧

完整的大概應該是這樣
my_table =
{
["ticket"] = {"TOPLEFT", UIParent, "TOPLEFT", 20, -20},
['ticket2'] = {"TOPLEFT", UIParent, "TOPLEFT", 20, -20},
}

這樣的話可以使用下面的代碼:
local name = 'ticket'
my_table[name]; // 值就是 {"TOPLEFT", UIParent, "TOPLEFT", 20, -20}

『貳』 游戲腳本語言lua,相關的一些東西

LZ要學LUA的話一定要去看書 Programming in Lua不一定要買紙質的 至少要有個電子檔的 在序言里就已經說了 Lua本身是作為一種擴展語言來定位的 所以本身沒有很強大的庫 而它優勢在於擴展性和兼容性 大部分功能都必須依賴外部的庫 本身只有一些很簡單的庫函數可供調用 但是作為學習的話 那些強大的庫大可不必看 基本的那些庫學起來已經需要好一段時間了
至於腳本和C等的調用問題 雖然兩者都可相互調用,但是畢竟windows與C相連接更緊密,所以一般來說 都是C調用lua 但是當腳本里需要實現一些需要使用c來寫程序的時候也會在lua中調用c
lua腳本和C綁定的問題 c寫的VC程序在windows下是可以直接運行的,lua寫的如果沒有解釋器是無法直接運行的 所以一般來說寫lua程序 想要直接使用的話都會用C來調用

『叄』 Lua 這個腳本語言一般都用來干什麼,有什麼優點

腳本語言有很多種,像是我們常見的Cmd命令也可以算是一種腳本,你說的腳本語言應該是Web應用程序的腳本。

這類的常見的有JavaScript、VBScript、Perl、PHP、Python、Ruby。

腳本語言的特點是語法簡單,一般以文本形式保存,並且不需要編譯成目標程序,在調用的時候直接解釋。這可以當做是腳本語言的判斷標准,比如說JavaScript,你只需要用記事本新建一個Html文件,在裡面加上一段腳本就可以了,在瀏覽器打開Html文件時自然會調用JS腳本。

總之你能用記事本寫出程序,不需要編譯環境生成目標程序的基本上就是腳本語言。

『肆』 LUA腳本的幾個疑問

關於dostring中的局部變數 這里剛好是有個特殊情況的

我用的luaforwindows直接運行的 沒dostring 就先用loadstring了

locala=1
print(loadstring("a=123")())
print(a,_G.a)

這里a = 123執行時 不會給局部變數a進行賦值操作,而是修改了全局變數a

對於到底是局部變數還是全局變數的判斷 依據的是 使用這個變數的這個區域 在使用之前 是否有過局部變數的聲明

比如

a=1
print(a)
locala=2
print(a,_G.a)

這樣就能看到2個不同的a

而在function Msg(x,y)中

是因為x和y是被當作實參傳過來的 函數里的實參 在函數內部都是作為局部變數來使用 所以xy是局部而a是全局

『伍』 怎麼使用lua腳本

LUA腳本語言基本使用方法是本文要將介紹的內容,主要是來學習Lua腳本語言的使用方法,具體內容來看本文詳解。
先要把下邊這些語句加入到VC中的頭文件,一般是加到StdAfx.h中
extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" #pragma comment(lib, "lualib.lib") #pragma comment(lib, "lua.lib") }

然後一般來說都使用一個全局的LUA庫定義的這個東西
lua_State* g_Lua;

並且在工程處初始化時也給LUA初始化
g_Lua = lua_open(); **加這句 /* load Lua base libraries */ 網上一些教材中這么寫的 lua_baselibopen(g_Lua); 不過我這簡單的例子中不用到這些也行 lua_tablibopen(g_Lua); lua_iolibopen(g_Lua); lua_strlibopen(g_Lua); lua_mathlibopen(g_Lua);

緊接著聲明介面函數,注冊上函數
lua_register(g_Lua, "Message", myMessage);

好,初始化部分完了,看看介面函數的寫法。
函數必須這樣的格式來寫
static int Func(lua_State *L) { 靜態型函數,而且必須帶參數為lua_State結構指針 返回的值是代表返回的數據個數,比如return 2;就可以代表 返回兩個整數啊,浮點數什麼的,象LUA的腳本編寫就可以這樣 i, j = Func() , 這樣就表示可以從Func介面函數中得到兩個返回值了 return 0; }

執行腳本語句可以讀文件,也可以直接讀函數名
注冊了
lua_register(g_Lua, "Message", myMessage); static int myMessage(lua_State *L) { OutputDebugString("OK"); return 0; } lua_dofile(g_Lua, strCurPath); //讀文件,必須給出完整的文件路徑名稱 lua_dostring(g_Lua, "Message()"); //直接讀函數

文件中只要寫上
Message()

就可以了。

『陸』 用Lua腳本來掃描一個日誌文件,找出裡面的關鍵字

逐行讀取進行匹配
local file = io.open("log.txt","r") --打開log
for l in file:lines() do --逐行讀取
if string.match(l,"error") then --如果存在字元串『error』
print(l) --輸出
end
end
file:close()

『柒』 lua腳本語言的概念解釋

Lua 教程
lua
Lua 是一種輕量小巧的腳本語言,用標准C語言編寫並以源代碼形式開放, 其設計目的是為了嵌入應用程序中,從而為應用程序提供靈活的擴展和定製功能。
Lua 是巴西里約熱內盧天主教大學(Pontifical Catholic University of Rio de Janeiro)里的一個研究小組於 1993 年開發的,該小組成員有:Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo。
設計目的
其設計目的是為了嵌入應用程序中,從而為應用程序提供靈活的擴展和定製功能。
Lua 特性
輕量級: 他用標准C語言編寫並以源代碼形式開放,編譯後僅僅一百餘K,可以很方便的嵌入別的程序里。
可擴展: Lua提供了非常易於使用的擴展介面和機制:由宿主語言(通常是C或C++)提供這些功能,Lua可以使用它們,就像是本來就內置的功能一樣。
其它特性:
支持面向過程(procere-oriented)編程和函數式編程(functional programming);
自動內存管理;只提供了一種通用類型的表(table),用它可以實現數組,哈希表,集合,對象;
語言內置模式匹配;閉包(closure);函數也可以看作一個值;提供多線程(協同進程,並非操作系統所支持的線程)支持;
通過閉包和table可以很方便地支持面向對象編程所需要的一些關鍵機制,比如數據抽象,虛函數,繼承和重載等。
Lua 應用場景
游戲開發
獨立應用腳本
Web 應用腳本
擴展和資料庫插件如:MySQL Proxy 和 MySQL WorkBench
安全系統,如入侵檢測系統
第一個 Lua 程序
接下來我們使用 Lua 來輸出"Hello World!"
實例(Lua 5.3)
print("Hello World!")

『捌』 lua腳本怎麼取出自己想要的的部分字元

你好,以前沒接觸過lua,剛自己試了一下,就按照你問題中的"23^Hello^你好^2000^world.txt"這個字元串為例,以^為分隔符來說吧:
---------------start---------------
str = "23^Hello^你好^2000^world.txt"
list = table.pack()
for w in string.gmatch(str, "[^^]+") do
print(w)
table.insert(list, w)
end
---------------start---------------
解釋:代碼共6行,
第1行:定義一個變數str,內容為"23^Hello^你好^2000^world.txt",這也是我們要處理的字元串.
第二行: 定義一個空列表,它是用在下面的for循環中,存放以"^"作為分隔符的每一部分
第三行:簡單來看是個for循環,深入一點來看,也就是string.gmatch(str,"[^^]+")這部分需要解釋一下,它表示調用的是string庫的gmatch()函數,這個函數有兩個參數,第1個參數為要處理的字元串,咱們這里就是上面定義的str,第二個參數就是我們要在這個字元串中匹配什麼樣的內容,這里的匹配內容寫的是"[^^]+",學過正則的很好理解,單純的[abc]表示匹配任意單個字元a或b或c,有一點特殊的是一旦[]中的字元是以^打頭的,則表示匹配任意非[]中列出的字元,如[^abc]表示匹配任意除abc外的其它任一字元,所以[^^]解釋為匹配除^外的任一字元,舉例來說,如果我們有字元串"23^Hello",如果用[^^]匹配的話,最終得到的是7個單個字元,即"2","3","H","e","l","l","o",顯示這不符合我們的題意,所以在這基礎上改進了一下,即在其後又加了個+號,[^^]+,這里的+號表示盡可能多地匹配它前面內容,這里也就是盡可能多地匹配[^^],所以[^^]+在處理"23^Hello"的時候,結果得到的就是"23","Hello".這里關於用到的這個正則說的不是太清楚,多練練就明白了。最後,第3行把函數部分給替換掉後,可以理解為:for w in [23,Hello,你好,2000,world.txt],每次從[]中取一個值賦給w,然後執行for下面的語句,接著往下看
第4行,接第3行尾,就是把每次賦給w的值都列印出來
第5行,將每次賦給w的值都追加到列表list中
第6行,for循環語法上的閉合關鍵字,這個沒啥說的
到此,我們得到了一個列表值為[23,Hello,你好,2000,world.txt]的list,此時我們就可以使用list[n]來取我們想要的值了 。
*.如果你要問上面最3條最後不都有[23,Hello,你好,2000,world.txt]了嘛,為啥還要那麼麻煩,直接使用string.gmatch()函數不就行了嘛,其實第3條結尾我那麼寫只是為了讓你好理解,實際上gmatch()函數的返回值並不是列表,而是一個可迭代的函數,而for循環的作用就是把gmatch()函數返回的這個可迭代的函數中的每個元素都取出來並賦給列表list
*.說的有點啰嗦了,希望對你有幫助吧,另外,我從沒用過lua,也是剛查了查,自己實踐了一下,希望不會形成誤導

『玖』 lua腳本文本翻譯

inst可以看做一個人,lives_left 是他的一個部位。
inst.components.childspawner.onchildkilledfn這就是inst的部位的部位,比如胳膊上的毛
inst.components.childspawner:StopRegen()這冒號後面就是inst某個部位的一些動作,比如:胳膊 動起來
後面同理 .點後面就相當於部位 :冒號後面就是動作
inst:RemoveComponent("childspawner")括弧裡面就是動作的指令,比如:向上動,向下動

『拾』 lua的io,讀取文件,匹配關鍵字,獲取內容下面內容.並返回

FileStream fs = new FileStream("d:\\a.txt", FileMode.Open); StreamReader m_streamReader = new StreamReader(fs); m_streamReader.BaseStream.Seek(0, SeekOrigin.Begin); string arry = ""; string strLine = m_streamReader.ReadLine(); do { string[] split = strLine.Split('='); string a = split[0]; if (a.ToLower() == "ip") { arry += strLine + "\n"; } strLine = m_streamReader.ReadLine(); } while (strLine != null && strLine != ""); m_streamReader.Close(); m_streamReader.Dispose(); fs.Close(); fs.Dispose(); Console.Write(arry); Console.ReadLine(); 如果你要大小寫也要匹配的話把.ToLower() 去掉就行了