Lua - 如何检查列表是否包含元素
2014-3-22 19:49:30
收藏:0
阅读:112
评论:1
我需要帮助我的 Lua 游戏脚本。我需要检查游戏中的库存是否包含列表中的任何 ID。
这是我的列表的一部分:
local Game_Items = {
{id = 7436, name = "angelic axe", value = 5000},
{id = 3567, name = "blue robe", value = 10000},
{id = 3418, name = "bonelord shield", value = 1200},
{id = 3079, name = "boots of haste", value = 30000},
{id = 7412, name = "butcher's axe", value = 18000},
{id = 3381, name = "crown armor", value = 12000}
}
下面的代码可能看起来有点奇怪,因为您不知道它是用来干什么的,但基本上它是这样的:上面的列表是我的游戏中的项目列表,而游戏中有一个存储物品和物品的库存。现在我想检查我的库存是否包含这些 ID 中的任何一个。
我尝试手动添加了 2 个 ID,它起作用了,但我的物品列表总共包含超过 500 个物品,我不想全部写出来。有办法把整个列表放进去并检查吗?
if not table.contains({ 3035, 3043, Game_Items[id] }, tempItemCounter.id) then
这是我到目前为止尝试的内容。前两个 ID 3035 和 3043 工作,然后我尝试了我的整个列表并仅检查了 ID。但我不知道该怎么做。那段代码不起作用。能否帮我将整个 ID 列表包含在 table.contains 中?
基本上想在那一行中包含整个列表,而不手动输入所有 ID。 Game_Items[id]不应该管用吗?难道里面的所有“ID”不都是“Game_Items”吗?
谢谢!
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
不,这并不意味着那样。如果
foo是一个表,则foo[id]将查找在foo中被称为id的字段,例如一个字符串(因此,如果id是 1,则会得到foo [1],如果id是 “bar”,则会得到foo.bar等)。你不能一行完成它,但是可以创建一个函数,让你编写你的 if 条件。我不确定
tempItemCounter是什么,但是假设你的库存是一个键映射到以下形式条目的映射:inventory = { [1234] = {....}, [1235] = {....}, ... }每个整数键都是唯一的,假设你想要只有当所有项目都在库存中时才为真,则可以这样做:
function isAllInInventory(items, inventory) for i,item in ipairs(items) do if inventory[item.id] == nil return false end end return true end if isAllInInventory(Game_Items, inventory) then ... end