执行此代码时,我收到错误"尝试调用全局'forId'(零值)"
function execute(args)
local itemid = 526
local bone = forId(itemid) -- this is where the error occurs
end
function forId(bid)
local xp = 0.0
if bid == 526 or bid == 528 or bid == 2530 or bid == 2859 then
xp = 4.5
elseif bid == 3179 or bid == 3180 or bid == 3183 or bid == 3185 then
xp = 5.0
elseif bid == 530 then
xp = 53
elseif bid == 532 or bid == …Run Code Online (Sandbox Code Playgroud) 我已经学习Lua几个星期了,这是我一次又一次的关键点.我试图阅读有关此主题的帖子和书籍.
我使用Lua查询软件监控系统(Nimsoft),我的数据在表格中返回给我.
我不会发布整个输出,但这里是一个我认为将描述结构的片段:
表referance是"h_resp"
root:
domain:nevil-nmsdom
robotlist:
1:
ssl_mode:0
os_user2:
origin:nevil-nmshub
os_major:UNIX
ip:192.168.1.58
os_minor:Linux
addr:/nevil-nmsdom/nevil-nmshub/nevil-multibot_03
status:0
license:1
last_inst_change:1340754931
created:1341306789
offline:0
last_change:1341306869
lastupdate:1344522976
autoremove:0
os_user1:
flags:1
os_description:Linux 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64
name:nevil-multibot_03
metric_id:M64FB142FE77606C2E924DD91FFCC3BB4
device_id:DDFF83AB8CD8BC99B88221524F9320D22
heartbeat:900
port:48100
version:5.52 Dec 29 2011
2: etc...etc....
Run Code Online (Sandbox Code Playgroud)
我使用我在这个论坛上找到的tdump函数来实现这一目标.
for k,v in pairs(h_resp) do
print(k.." ",v)
end
Run Code Online (Sandbox Code Playgroud)
给我顶级水平,我理解这一点.
domain nevil-nmsdom
robotlist table:0x22136a0
Run Code Online (Sandbox Code Playgroud)
然后我试着得到"机器人名单"
for k,v in pairs(h_resp.robotlist) do
print(k.." ",v)
end
Run Code Online (Sandbox Code Playgroud)
正如您在下面看到的那样,索引是整数,并且是另一个表.
1 table:0x237e530
0 table:0x22112a0
3 table:0x2211460
2 table:0x2392ee0
5 …Run Code Online (Sandbox Code Playgroud) 刚尝试执行一个小的Lua脚本,但不幸的是我做错了.我没有更多的想法可能是错误.
function checkPrime( n )
for i = 2, n-1, 1 do
if n % i == 0 then
return false
end
end
return true
end
Run Code Online (Sandbox Code Playgroud)
口译员说:
lua: /home/sebastian/luatest/test.lua:3: `then' expected near `%'
Run Code Online (Sandbox Code Playgroud)
我认为这不是一件大事,也许很清楚是什么问题.但不知怎的,我现在看不到它.
我现在的情况是
if A and B and C then
X
end
Run Code Online (Sandbox Code Playgroud)
如果我理解正确的话,这意味着只有满足所有三个条件(A、B 和 C),它才会执行 X。
这本身就很好,但是,我需要/希望它同时也检查一些类似于“or if”语句的东西。
如果 A 和 B 和 C [或如果] A 和 D [或如果] A 和 E 则 X 结束
意思是我希望它在满足 A、B 和 C 时,或者满足 A 和 D,或者满足 A 和 E 时执行 X。我该如何去做呢?
在我开始之前,我会说我是Lua的初学者,所以可能不知道所有正确的术语,但我会尽力解释我所追求的.
我有一个data包含其他表的table().当data首次创建,它可以具有任何数量的在其内部表(I期望这是1和50之间).
我想将每个表分配给它自己的变量.
如果我知道有多少表,那么这很容易使用table1 = data[1]; table2 = data[2],依此类推.
我已经完成了计数,data以便我知道条目的数量,所以我想要做的是自动创建变量,给它们一个名称并为其分配相应的表.
所以我们说data包含10个表.那么我想变量,创建名为table1,table2,table3等等.table1应该是data[1],table2应该是data[2]等等.
我确定我应该创建一个循环,每次都有一个count=count+1创建附加到变量的数字.
我遇到的问题是我不知道如何创建一个名为'table'+count(table1)的变量.
我如何一起加入2?
我正在做一个涉及文件读取的项目,我需要知道文件中的确切行数.有谁知道如何计算文件中的行数而不必读取整个文件?我的意思是Lua中有内置函数吗?提前致谢.