在我的代码中,我想做一个脚本,在这个脚本中,你偷了一辆车,把它送来,并为这辆车得到一定的钱。我做了一个表格,定义了每辆车能得到多少钱。我可以让钥匙工作,所以我的脚本确实可以识别汽车。
local cars = {
["panto"] = '5',
["oracle"] = '10',
["felon"] = '15',
["sentinel"] = '20',
["ratloader"] = '25',
["dune"] = '30',
["buccaneer"] = '35'
}
这是表格,然后我将其转换。
local voertuigen = {}
for k,_ in pairs(cars) do
table.insert(voertuigen, k)
我是荷兰人,所以我用了一些荷兰变量,有点混乱,还在努力中;)
voertuig = (voertuigen[math.random(1, #voertuigen)])
这一部分写在if语句里面,但这不是问题,当我试图引用到 voertuig
作为一个键,因为它是一个变量,键存储在其中,所以不能使用。
salaris = cars.voertuig
当我想自己解决这个问题的时候,我看到了 print(cars.oracle)
(表中的一个键)确实有效,但当我使用
voertuig = oracle
print(cars.voertuig)
它的返回。SCRIPT ERROR: @carjob/cj_client.lua:114: attempt to concatenate a nil value (upvalue 'voertuig')
我希望我提供的代码足够让你理解,我希望你们中的一个人可以帮助我。 先谢谢你!
请注意字符串值和变量的区别。
local a = {"name"}
a.name
是语法糖的 a["name"]
在你的例子中 vertuig = oracle
相当于 voertuig= nil
因为 oracle
是一个零值。
cars.voertuig
也是nil。因为你从未给 cars["voertuig"]
.
你想做这样的事情:
vertuig = "oracle"
print(cars[voertuig])
哪儿 cars[voertuig]
决心 cars["oracle"]
请参考Lua手册,了解如何正确索引表值。
voertuig = (voertuigen[math.random(1, #voertuigen)])
salaris = cars[voertuig]
同时尽可能使用局部变量。