• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            WoW API中的Lua

            在大多數(shù)Lua語法分析中可以獲得這些標(biāo)準(zhǔn)Lua函數(shù). 無可爭辯, 我們可以查閱Lua網(wǎng)站, 但是一些少了的函數(shù)被Blizzard進(jìn)行了調(diào)整. 下面列出了所有Lua函數(shù).

            WoW API中的Lua

            注意在WoWAPI沒有提供所有標(biāo)準(zhǔn)的Lua函數(shù), 很顯然, 操作系統(tǒng)以及文件I/O庫是不支持的

            Lua函數(shù)

            這些函數(shù)都是Lua編程語言的一部分, 點(diǎn)擊這里了解更多.

            • assert(value) - 檢查一個(gè)值是否為非nil, 若不是則(如果在wow.exe打開調(diào)試命令)顯示對(duì)話框以及輸出錯(cuò)誤調(diào)試信息

            • collectgarbage() - 垃圾收集器. (新增于1.10.1)

            • date(format, time) - 返回當(dāng)前用戶機(jī)器上的時(shí)間.

            • error("error message",level) - 發(fā)生錯(cuò)誤時(shí),輸出一條定義的錯(cuò)誤信息.使用pcall() (見下面)捕捉錯(cuò)誤.

            • gcinfo() - 返回使用中插件內(nèi)存的占用量(kb)以及當(dāng)前垃圾收集器的使用量(kB).

            • getfenv(function or integer) - 返回此表已獲取函數(shù)的堆棧結(jié)構(gòu)或者堆棧等級(jí)

            • getmetatable(obj, mtable) - 獲取當(dāng)前的元表或者用戶數(shù)據(jù)對(duì)象.

            • loadstring("Lua code") - 分析字符串中的lua代碼塊并且將結(jié)果作為一個(gè)函數(shù)返回

            • next(table, index) - 返回下一個(gè)key,一對(duì)表值.允許遍歷整個(gè)表

            • pcall(func, arg1, arg2, ...) - 受保護(hù)調(diào)用. 執(zhí)行函數(shù)內(nèi)容,同時(shí)捕獲所有的異常和錯(cuò)誤.

            • select(index, list) - 返回選擇此列表中的商品數(shù)值.或者是此件物品在列表中的索引值

            • setfenv(function or integer, table) - 設(shè)置此表已獲取函數(shù)的堆棧結(jié)構(gòu)或者堆棧等級(jí)

            • setmetatable(obj, mtable) - 設(shè)置當(dāng)前表的元表或者用戶數(shù)據(jù)對(duì)象

            • time(table) - 返回從一個(gè)unix時(shí)間值

            • type(var) - 判斷當(dāng)前變量的類型, "number", "string", "table", "function" 或者 "userdata".

            • unpack(table) - 解壓一個(gè)表.返回當(dāng)前表中的所有值.

            • xpcall(func, err) - 返回一個(gè)布爾值指示成功執(zhí)行的函數(shù)以及調(diào)用失敗的錯(cuò)誤信息.另外運(yùn)行函數(shù)或者錯(cuò)誤的返回值

            數(shù)學(xué)函數(shù)

            這些表函數(shù)同樣可以參考Lua函數(shù)庫(他們都是以math.開頭, 詳情參閱數(shù)學(xué)庫了解更多信息).

            三角函數(shù)是沒有參考的, 包括角度->弧度的轉(zhuǎn)換.暴雪的版本使用角度.而Lua的標(biāo)準(zhǔn)數(shù)學(xué)庫則使用的弧度.

            • abs(value) - 返回當(dāng)前數(shù)值的絕對(duì)值

            • acos(value) - 返回此角度值的弧余弦值.

            • asin(value) - 返回此角度值的弧正弦值

            • atan(value) - 返回此角度值的弧正切值

            • atan2(y, x) - 在角度中, 返回Y/X的弧正切值.

            • ceil(value) - 返回一個(gè)整數(shù), 不管小數(shù)點(diǎn)后面是多少, 整數(shù)部分都進(jìn)1

            • cos(degrees) - 返回角度的余弦值

            • deg(radians) - 弧度轉(zhuǎn)換角度

            • exp(value) - 返回此值的指數(shù)值

            • floor(value) - 返回此值的整數(shù)值

            • frexp(num) - 返回當(dāng)前數(shù)字小數(shù)點(diǎn)后的數(shù)值以及小數(shù)點(diǎn)后的位數(shù)

            • ldexp(value, 倍數(shù)) - 輸出此數(shù)值的倍數(shù)

            • log(value) - 返回此值的自然對(duì)數(shù) (以e為底數(shù))

            • log10(value) - 返回以10為底數(shù)的值

            • max(value[, values...]) - 在一堆值中查找最大值

            • min(value[,values...]) - 在一堆值中查找最小值

            • mod(value,modulus) - 返回此值的余數(shù)

            • rad(degrees) - 角度轉(zhuǎn)換弧度

            • random([ [lower,] upper]) - 返回一個(gè)隨機(jī)數(shù)字 (可選界限為整數(shù)值)

            • randomseed(seed) - 為偽隨機(jī)數(shù)字生成器設(shè)定種子

            • sin(degrees) - 返回當(dāng)前角度的正弦值

            • sqrt(value) - 返回?cái)?shù)值的平方根值(比如100的平方根為10)

            • tan(degrees) - 返回當(dāng)前角度的正切值

            字符串庫

            這些表函數(shù)同樣可以參考Lua字符串庫(他們都是以string.開頭, 參考字符串庫了解更多信息)

            • format(formatstring[, value[, ...]]) - 格式化字符串

            • gsub(string,pattern,replacement[, limitCount]) - 全局替換

            • strbyte(string[, index]) - 轉(zhuǎn)換字符串為整數(shù)值(可以指定某個(gè)字符).

            • strchar(asciiCode[, ...]) - 轉(zhuǎn)換整數(shù)為相對(duì)應(yīng)的字符

            • strfind(string, pattern[, initpos[, plain]]) - 在一個(gè)指定的目標(biāo)字符串中搜索指定的內(nèi)容(第三個(gè)參數(shù)為索引),返回其具體位置.

            • strlen(string) - 返回當(dāng)前字符串的字符數(shù)

            • strlower(string) - 將字符串的字母轉(zhuǎn)換為小寫格式

            • strmatch(string, pattern[, initpos]) - 與strfind不同的是,macth返回的是具體值,而find返回的是此值的位置

            • strrep(seed,count) - 返回一個(gè)字符串種子副本的個(gè)數(shù)

            • strsub(string, index[, endIndex]) - 返回字符串指定位置的值.

            • strupper(string) - 將字符串的字母轉(zhuǎn)為大寫格式

            • tonumber(arg[, base]) - 若參數(shù)能轉(zhuǎn)為數(shù)字則返回一個(gè)數(shù)值.可以指定轉(zhuǎn)換的類型.默認(rèn)為十進(jìn)制整數(shù)

            • tostring(arg) - 轉(zhuǎn)換參數(shù)為字符串

            下面的字符串函數(shù)是wow獨(dú)有的

            • strtrim(string) - 去除字符串前后空格

            • strsplit(delimiter, string) - 分割字符串

            • strjoin(delimiter, string, string[, ...]) - 根據(jù)定界符將字符串連接起來

            表函數(shù)

            這些表函數(shù)同樣可以參考Lua表庫 (他們都是以"table.開頭", 查閱Table庫 f了解更多信息).

            也知道, 很多表都被設(shè)計(jì)為只有數(shù)字索引, 開始于1并且沒有結(jié)尾(如like {[1] = "foo", [3] = "bar"} --- [2]是不存在的所以為nil值).工作時(shí),與任何其他表并沒有差別,但很可能會(huì)產(chǎn)生意想不到的結(jié)果. 在編寫lua中, 這個(gè)也就是通常所說的bug

            • foreach(table,function) - 為表中的每個(gè)元素執(zhí)行函數(shù)

            • foreachi(table,function) - 為表中的每個(gè)元素執(zhí)行函數(shù), 按順序訪問(不推薦, 可以使用ipairs代替)

            • getn(table) - 當(dāng)作為一個(gè)聊表時(shí), 返回當(dāng)前表的大小. 現(xiàn)在已經(jīng)廢棄了, 你可以直接使用#符號(hào).使用#(table)代替table.getn(table)

            • ipairs(table) - 返回一個(gè)迭代型整數(shù)遍歷表。

            • pairs(table) - 返回一個(gè)迭代遍歷表

            • sort(table[, comp]) - 對(duì)一個(gè)數(shù)組進(jìn)行排序, 還可以指定一個(gè)可選的次序函數(shù)

            • tinsert(table[, pos], value) - 將一個(gè)元素插入指定的位置(默認(rèn)在表的最后)

            • tremove(table[, pos]) - 刪除指定位置的元素(默認(rèn)表最后一個(gè))

            Bit Functions

            魔獸世界包含了Lua BitLib庫(他們都是以 "bit."開頭). 與C的位運(yùn)算相同.位運(yùn)算庫并非Lua標(biāo)準(zhǔn)函數(shù)庫的一部分, 但是在WoW 1.9中得到了應(yīng)用

            • bit.bnot(a) - 返回一個(gè)a的補(bǔ)充

            • bit.band(w1,...) - 返回w的位與

            • bit.bor(w1,...) - 返回w的位或

            • bit.bxor(w1,...) - 返回w的位異或

            • bit.lshift(a,b) - 返回a向左偏移到b位

            • bit.rshift(a,b) - 返回a邏輯右偏移到b位

            • bit.arshift(a,b) - 返回a算術(shù)偏移到b位

            • bit.mod(a,b) - 返回a除以b的整數(shù)余數(shù)

            Lua是一個(gè)腳本語言, 使用這些函數(shù)來對(duì)你的數(shù)據(jù)結(jié)構(gòu)進(jìn)行比對(duì)是十分慢的. 除非你有一個(gè)非常大的數(shù)據(jù)庫以及需要保護(hù)的RAM使用, 保存你的信息到幾個(gè)或個(gè)別的變量中.

            筆記

            • 所有的字符都有他們的元表設(shè)置到全局字符串表, 因此一些字符串函數(shù)可以直接寫在冒號(hào)前面進(jìn)行調(diào)用:

            切換行號(hào)
               1 local s = string.format(input, arg1, arg2, ...)
               2 
               3 -- 可以寫成這樣
               4 local s = input:format(arg1, arg2, ...)  -- input將作為第一個(gè)參數(shù), 復(fù)制到代碼上, 這就是冒號(hào)語法
            
            • 這同樣可以使用在字符串上, "%d":format(arg1)不是有效的lua代碼,你可以寫成

            切換行號(hào)
               1 ("%d"):format(arg1)
            
            • 自從使用字符串表, 一些函數(shù)放在字符串表里也是同樣可以工作的, 下面的例子是有效的:

            切換行號(hào)
               1 function string.print(a)
               2  return print(a)
               3 end
               4 ("test"):print()
            

            雖然你應(yīng)盡量避免填充字符串表與你的函數(shù)。

            posted on 2009-01-11 16:28 RedLight 閱讀(6750) 評(píng)論(0)  編輯 收藏 引用 所屬分類: RPG游戲邏輯設(shè)計(jì)

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            導(dǎo)航

            統(tǒng)計(jì)

            公告


            Name: Galen
            QQ: 88104725

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            相冊(cè)

            My Friend

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久人妻少妇嫩草AV无码蜜桃| 久久妇女高潮几次MBA| 亚洲午夜久久久久久噜噜噜| 久久久精品波多野结衣| 久久97久久97精品免视看| 久久精品国产一区二区三区日韩| 日本人妻丰满熟妇久久久久久| 婷婷五月深深久久精品| 亚洲欧美伊人久久综合一区二区| 久久国产免费直播| 久久精品中文闷骚内射| 狠狠干狠狠久久| 很黄很污的网站久久mimi色| 国产精品99久久久久久董美香| 999久久久免费国产精品播放| 久久99精品国产99久久6男男| 天天爽天天爽天天片a久久网| 国产精品无码久久综合网| 无码精品久久一区二区三区| 色欲av伊人久久大香线蕉影院 | 九九精品99久久久香蕉| 国产精品久久久久影院色 | 久久精品一区二区影院| 亚洲七七久久精品中文国产| 伊人久久精品无码av一区| 99久久国产综合精品麻豆| segui久久国产精品| 国内精品久久久久影院老司| 国产精品女同久久久久电影院| 久久99精品久久只有精品| 久久久精品视频免费观看| 欧美精品乱码99久久蜜桃| 日本久久久精品中文字幕| 亚洲国产成人精品无码久久久久久综合 | 久久乐国产综合亚洲精品| 久久国产乱子伦免费精品| 久久影视国产亚洲| 996久久国产精品线观看| 精品久久久无码人妻中文字幕| 99久久综合国产精品二区| 久久综合久久自在自线精品自|