lua腳本授權代碼
1. 剛學的LUA,有的地方不明白,向各位高手求教不明白下面的代碼,能詳細說明下嗎
arg表示lua函數被調用時 的參數
你只要展開一下大概就知道是什麼了
比如我這里這一段代碼
for i,v in pairs(arg) do
print(v)
end
運行後可以看到
-e
.lua
lua
io.stdout:setvbuf 'no'
我們就可以知道我們的lua解釋器的名字為lua,lua文件當前文件名為.lua
你也可以到CMD下運行 lua文件 會發現不一樣的結果
總首改橘之arg參數就是描殲漏述你調用腳本時的各個參數
寫lua腳本的話 一定要有個好的縮進 不然會導致代碼的誤解
printResult = "" --定義一個空字元串
function print(...) --重新寫一個print函數
for i,v in ipairs(arg) do --函數的運行內容為遍歷arg的所有參數 具體的實現方法為 將所有的字元串連接起來 最後再輸出
printResult = printResult .. tostring(v) .. "\t"
end
printResult = printResult .. "\n"
end
這個代碼大體上思路是沒問題 但是有一個地方做的不好
就是 要輸出的內容 如果為多個字元串的話 就比如你這里 是arg的多個參數
你這里是把所有的字元串連結到一起再輸出 實際的話 你這里多了一個連接的操作
不如直接使用io.write 或者將所有的字元串保存在一個table里 最後使用 table.concat連接輸出
因為當字元串的組成項過多的時候 連接字元串的代價就非常大了
大個比方 將1M 個1B 的字元串 連接者團起來
要執行1M次 光是內存的佔用量就達到0.5MB*1MB 已經是接近0,5G的內存調用
內存的執行非常沒效率 很浪費時間和資源
2. 農行掌上銀行提示lua 腳本錯誤代碼
重裝吧。可能是依賴丟失之類的
3. lua賬號密碼讀取腳本實現教程
lua游戲腳本中,有許多是需要登錄許多小號,這些小號一般存放在一個文檔里,腳本運行時需要讀取這些數據。
下面有個txt文檔,記錄這賬號與密碼的數據,如下
其中,左邊為賬號,右邊為密碼,中間用空格隔開(空格數不確定)。賬號允許使用中英文、數字、符號(但不允許有空格),密碼允許使用中英文、數字、符號(允許有空格,但不允許出現在最前或最後),忽略每行的首尾空格。
下面在電腦上進行測試,由於我的電腦的操作系統是Windows簡體中文版,也就是系統的字元編碼為GBK。而手機採用的字元編碼一版是UTF-8(特別要注意這點!)
為了避免亂碼,將txt文檔與lua文件均採用和系統的字元編碼相同的編碼(很重要!)
對於GBK編碼的系統,保存時,選擇ANSI(記事本默認保存的就是這個格式)
如果用於手機上運行,則選擇UTF-8
lua實現:
運行結果:
稍作修改即可應用於手機端,這里以iOS作為演示:
日誌:
本程序的主要難點在於,逐行讀取的迭代器lines()函數、trim()函數實現、賬號密碼的匹配、table的操作。
其中用到的自定義函數string.trim()大家可以記一下,方便在自己的程序里調用,還是挺實用的。
4. ios越獄後裝了觸動精靈,腳本.luac打開需要授權碼,有人會破解嗎有酬金
進入cydia--管理--軟體源--編輯/添加--源地址:
進入觸動精靈源地知睜唯址--安裝【觸動精靈】插搭培件(版本已經更新到1.43)
將iOS設備連接電腦打開PP助手(Win)版--文件--系統文件(越獄)--路徑:/User/Media/TouchSprite/lua,將腳本文件導入。(注意:如果找不到路徑,請運行一次「觸早叢動精靈")
腳本下載鏈接:
4
重啟一下機器,打開機器,打開觸摸精靈,刷新找出天天連萌的腳本,點擊一下,會顯示選擇。
5
打開游戲,開始時,按音量-開始腳本,結束時,按音量-結束。
5. 如何在java中使用Lua腳本語言
LuaJava實際上就是按照Lua官方文檔, 把Lua的C介面通過JNI包裝成Java的庫. 下載, 裡面是一個.dll, 一個.jar. 把.dll放到java.library.path下, 再把.lib放到classpath中, helloworld運行OK.
但是, 測試的時候, 很快發現了第一個問題: 在調用LuaJava中提供的LuaState.pushInteger方法的時候, 出現了錯誤 :Unsatisfied Link Error. 其他的LuaState.pushNumber方法倒是沒有問題. 用Depends工具看了下, 這個.dll居然沒有導出pushInteger這個函數。
(1).下載LuaJava的源代碼, 查看了下Luajava.c 和 Luajava.h, 發現果然裡面有點問題, 在.h裡面定義了JNI中對應Java函數的C函數
JNIEXPORT void JNICALL Java_org_keplerproject_luajava_LuaState__1pushInteger
但是.c中沒有實現這個函數. 無語, 看來大馬虎哪都有啊. 幸虧有源代碼, 照貓畫虎在Luajava.c中加上這個函數的實現,
(2).然後編譯. 編譯也出現了問題了, 官方文檔中說可以用VC++來Build, 但是沒有說官方用的是什麼版本. 我用VC2005就不行. 好在Luajava比較小, 就一個.h 一個 .c , 在VC中新建一個.dll項目, 把文件加進去, 修改一下build參數 (Include 需要加上lua的頭文件, lib中需要加上lua的.lib文件, 另外要選上Compile as C Code (/TC)) Build, 通過了.
這時再在Java中調用pushInteger方法就沒有問題了.
在測試中, 發現Luajava提供的文檔中, 對於Lua腳本怎麼調用Java對象/方法很詳細, 但是在Java中怎麼調用Lua函數/取得返回值 就沒有. 參考了http://www.lua.org/manual/5.1/manual.html#lua_CFunction的Lua C文檔, 實現了傳遞對象到Lua中並取得返回值的代碼:
Test1: 測試傳遞簡單類型, 並取得返回值:
Lua 腳本(test.lua):
function test(a,b)
return a+b
end
Java代碼:
static {
//載入Lua5.1.dll, 因為LuaJava最後還是要調用Lua的東西
System.loadLibrary("lua5.1");
}
public static void main(String[] argu) throws LuaException {
LuaState L = LuaStateFactory.newLuaState();
L.openLibs();
//讀入Lua腳本
int error = L.LdoFile("test.lua");
if (error != 0) {
System.out.println("Read/Parse lua file error. Exit.");
return;
}
//找到函數test
L.getField(LuaState.LUA_GLOBALSINDEX, "test");
//參數1壓棧
L.pushInteger(1);
//參數2壓棧
L.pushInteger(2);
//調用!! 一共兩個參數, 1個返回值
L.call(2, 1);
//保存返回值, 到a中
L.setField(LuaState.LUA_GLOBALSINDEX, "a");
//讀入a
LuaObject l = L.getLuaObject("a");
//列印結果.
System.out.println("Result is " + l.getString());
L.close();
}
測試2: 傳遞Java對象
class Value {
public int i;
public void inc() {
i++;
}
public int get() {
return i;
}
public String toString() {
return "Value is " + i;
}
}
Lua腳本: (該腳本中調用兩次對象的inc方法, 並調用get方法輸出結果)
function test1(v)
v:inc();
v:inc();
print("In lua: " .. v:get());
return v
end
Java 代碼: (前面都一樣, 略)
//找到函數est1
L.getField(LuaState.LUA_GLOBALSINDEX, "test1");
//生成新的對象供測試
Value v = new Value();
//對象壓棧
L.pushObjectValue(v);
//調用函數test1, 此時1個參數, 1個返回值
L.call(1, 1);
//結果放在b中.
L.setField(LuaState.LUA_GLOBALSINDEX, "b");
LuaObject l = L.getLuaObject("b");
System.out.println("Result is " + l.getObject());
總結:運行結果:
Result is Value is 2
In lua: 2
和預期的一致.
6. lua腳本命令 游戲私服
你沒說清楚啊,你是不會觸發還是不會寫腳本,還是不知道在哪寫腳本,我碼山猛不知道你用的是什麼引擎,也不知道你的文件結構什麼樣子的,舉個例子吧,你可以在D:\mirserver8yue\Mir200\Envir\MapQuest_def\qmanage.txt中寫[@Login]
#IF
CheckLevelex > 0
#ACT
#CALL [\會員系統\會員分類.txt] @會員唯核分類
;這里的路徑看你的服務端的構造,調用此文本,實現各種會員功能的實現,然後打開這個會員分類.txt,編寫代碼
[@會員分類]
{
#IF
checknamelist ..\QuestDiary\會員系統\會員名單.txt ;這是查看會員名單裡面是否有這個人
#ACT
這邊寫你的會員功能或者函數鏈接
#ELSESAY
對不遲橋起。您暫時還不是終生會員
}
要是看不懂加Q1009959598
7. lua腳本怎麼寫出來一個自動點開某程序功能的代碼
如下代碼 :
ret = NPCDialog( "Hello bitch" )
if ret == OK then print("OK") end
對於策劃而言,NPCDialog應該是阻塞的,除家操作此對話框,點擊OK或者關閉,不然該函數不會返回。而對於宿主程序C++而言,如何實現這個函數呢:
static int do_npc_dialog( lua_State *L )
{
const char *content = lua_tostring( L, -1 );
lua_pushnumber( ret );
return 1;
}
8. lua滑鼠宏代碼
羅技滑鼠宏壓槍lua腳本local,fireStatusfalse設族慶瞎置一個全局變差枯量,控制是否啟用該功能SetBacklightColor0,0,255設置兆空背光。
9. lua腳本。(懂c/c++的也請進) 簡單`
確實是Lua格式的腳本。
spr = Sprite.new("sprite.png", 24, 32, VRAM)
這句是聲明了Sprite類的一個對象。(當然事實上lua的對象都是由table模擬的。)
spr:addAnimation({0,1,2,1}, 300) -- Walk up
「:」是Lua對象調用方法的語法,{0,1,2,1}是Lua的特有數據結構table,--是lua的注釋說明。
其他的while循環和if條件語句和c的含義一樣。
看來這大概就是個控制人物在屏幕移動的腳本吧。
建議你去找點lua的入門書看看就了解的清楚了。