win.messagePrint("这是一个测试字符串");
只能指定字符串(string)类型的参数。
如果在发布的时候选择不显示信息窗口,则所有win.messagePrint函数将被自动忽略。
如果输出信息的第一个字符为@,将会自动生成一个循环转动的字符标记。示例如下:
如果输出信息的第一个字符为@,将会自动生成一个循环转动的字符标记。示例如下:
for i=1,20 do --循环10次
win.messagePrint("@ i="..i);
delay(200); --延时0.2秒
if( not nStop() ) then break end;--如果按了全部停止热键就退出循环
end;
2、用对话框输出信息
win.messageBox("信息","标题");
win.messageBox("信息");
第一个参数指定要显示的信息,第二个参数指定标题,第二个参数可以省略
只能指定字符串(string)类型或数值(number)类型的参数。
3、使用控制台窗口输出信息
打开控制台窗口:
调用函数 win.consoleOpen()
关闭控制台窗口:
调用函数 win.consoleClose();
点击“全部停止”关闭控制台窗口。
点击“全部停止热键” (默认为 Ctrl + Alt + L )
在控制台输出信息:
使用 print(...) 函数,支持任意多个任意类型的参数,
print会自动调用tostring将参数转换为字符串。
使用 io.write(...)函数,支持任意多个字符串(string)或数值(number)参数,不支持其他数据类型。
在控制台读取用户输入的信息:
n = io.read("*n"); 等待用户输入一行直到输入回车并然后返回数字值,不是数字返回nil值
l = io.read("*l"); 等待用户输入一行直到输入回车然后返回字符串下面是一个简单的示例
1、理解LAS脚本程序错误信息
切换到“源码编辑”界面,点击工具栏第一个按钮“新建源码”,然后输入下面的代码:
按F5快捷键运行上面的代码,我们看到错误信息详细的标明了错误所在的位置、错误原因:

b = 后面应当写表达式才是一个完整的赋值语句,分号不应当直接出现在等号后面。
"LAS脚本块内部标识"是模拟精灵内部生成的用来标记一段脚本程序的。char:0x3B是错误所在字符的十六进制字节码。
分号的十六进制字节码就是0x3B。
2、理解fap模拟程序错误信息
fap模拟程序通常在"脚本区块"中编写脚本代码,"脚本区块"实际上就是一个匿名函数.

通俗的说就是强行制造一个错误.使用error函数抛出一个错误.
error (message [, level])
终止最后一个受保护的函数的运行,返回错误信息message,而该函数的出错信息不会返回.
参数level指定了出错信息所反映的位置,取默认值1时,指向调用出错的函数的位置,取2时,指向引起error的函数被调用的位置,依此类推。
有了这个参数就可以准确的指出到底是谁导致了错误。
level这个函数可能有点难以理解,如果你弄不明白可以省略( 省略则使用默认值 1 )。
下面我们用两个例子来解释一下level参数的用法。

assert(条件,"出错信息") ;
assert首先计算两个参数的值,并检测第一个参数的结果,如果为false,则抛出错误(assert的第二个参数指定出错信息)。
请您试试运行 assert(false,"出错了") 这句脚本,您将看到弹出您指定的错误信息。
再试试运行 assert(true,"出错了") 这句脚本,因为断言成功,不再提示错误。
如果第一个参数不为false(或者其他不是nil的值),断言成功,会返回第一个参数,第二个参数的值。如果第一个参数是一个函数,则返回函数的返回值。
我们看这句代码 str = string.load("c:\\no-file.txt");
打开并读取 c:\xxxx.txt中的文本并返回给str变量。
现在我们希望用 assert断言string.load是否成功。您可能会想到这样写

有的函数第二个返回值会返回错误信息,这时候我们可以直接将函数的第二个返回值作为assert的第二个参数。
示例:
assert会返回多个值,但是我们可以用一个变量来接收返回值丢弃其他的返回值。
我们也可以用括号强制assert只能返回一个值。请运行下面的代码,注意他们的区别。
有时候,我们需要自已捕获运行时错误,而不是由模拟精灵来进行错误处理。
pcall (func, arg1, arg2, ...)
保护模式调用他的第一个参数func(函数对象)并运行,第二个参数以后的参数作为函数func的参数。
执行func时如果没有异常和错误,pcall返回true和函数func返回的任何值;否则返回nil加错误信息.
错误信息不一定非要是一个字符串,传递给error的任何信息都会被pcall返回.请看下面的例子:
虽然你可以使用任何类型的值作为错误信息,通常情况下,我们使用字符串来描述遇到的错误信息
2、xpcall函数
xpcall (func, err)
类似于pcall,但允许指定错误处理函数.
err是一个错误处理函数,xpcall首先调用func,如果遇到错误,将错误参数传递给err函数处理
然后xpcall返回false,然后返回err函数的所有返回值。
xpcall在栈释放以前调用错误处理函数err,所以在err函数中可以调用debug库中的函数收集错误相关的信息。
而pcall返回错误信息的时候他已经释放了保存错误发生情况的栈的信息。不能调用debug库收集错误相关的信息。
如果调用func没有发生错误,xpcall返回true,然后返回func函数的所有返回值。