向数组添加名称,检查数组是否存在,运行代码

友人

几个小时前,lua还是一个全新的人,我在C ++和Java方面有一定的背景知识,但没什么令人惊奇的。

我正在尝试为一款游戏插件,以检查周围的玩家,如果可以(在10码内)打招呼。

它的效果很好,只不过我只希望每个玩家运行一次,否则它会变得垃圾且烦人,经常向人们打招呼。

我想最好的方法是将它们的字符名称存储在数组中,但是我在努力理解数组的语法。

     function Wave()
        local totalObjects = GetObjectCount()
        local shouldMessage = false
        local player = GetActivePlayer()
        arrayNames = {}
        for i = 1, totalObjects do
            local object = GetObjectWithIndex(i)
            if object ~= player and UnitIsPlayer(object) == true and UnitIsDead(object) == false then
                local yards = GetDistanceBetweenObjects(player, object)
                 local name = ObjectName(object)

                  ----------------- The beginning of my issue ----------------

                if yards < 10 and arrayNames[i] ~= name then -- if name isnt in array already?
                    arrayNames[i] = name -- trying to add the name to array
                    print(arrayNames[i])

                    break
                end
            end         


    end
    if storeName then   
    end
end
尼菲姆

问题在于,每次调用Wave后,您的表都会被清除。这是因为您arrayNames = {}在函数内部,所以每次运行该表时都会将其设置为一个新的空表。您可以arrayNamesWave函数外部定义或将其更改为arrayNames = arrayNames or {}第二个选项。第二个选项将设置为arrayNames等于arrayNames定义时的值,如果未定义,则设置为新表。


另外

您的代码仅检查name特定索引处的数组中是否存在,而不检查整个数组。如果玩家的索引可以更改,那么您可能会使用此方法再次打招呼。

您也需要遍历整个数组,以确保您尚未与这个人打招呼。这意味着,随着您与越来越多的人打招呼,支票会越来越长

建议不要使用数组,而不要使用数组:

if yards < 10 and not arrayNames[name] then -- if name isnt in set already?
    arrayNames[name] = true -- trying to add the name to set
    print(name)

    break
end

只需使用name键作为键将其添加到表中,并将其设置为该值true将为您的检查提供O(1)性能。

这是有关布景的更多信息:https : //en.wikipedia.org/wiki/Set_(abstract_data_type)

在计算机科学中,集合是一种抽象数据类型,可以存储唯一值而没有任何特定顺序。它是有限集的数学概念的计算机实现。与大多数其他集合类型不同,通常不从集合中检索特定元素,而是测试集合中成员资格的值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

向JavaScript数组添加名称

来自分类Dev

检查数组中是否存在

来自分类Dev

检查数组是否存在Swift

来自分类Dev

检查数组元素是否存在

来自分类Dev

检查数组中是否存在数组?

来自分类Dev

检查数组中是否存在数组

来自分类Dev

检查id是否存在于数组中并将项添加到数组中

来自分类Dev

如果外部数组的名称=='something',则向JSON数组添加值

来自分类Dev

检查数组元素是否存在的安全方法?

来自分类Dev

检查数组中是否存在元素

来自分类Dev

如何检查数组中是否存在空集?

来自分类Dev

检查Postgres数组中是否存在NULL

来自分类Dev

检查数组中是否存在函数

来自分类Dev

想要检查数组中是否存在变量

来自分类Dev

检查数组的先前节点是否存在

来自分类Dev

检查数组中是否存在对象

来自分类Dev

如何检查numpy数组是否已经存在?

来自分类Dev

检查数组中是否存在值

来自分类Dev

检查数组javascript中是否存在值

来自分类Dev

检查json数组中是否存在值

来自分类Dev

检查数组的先前节点是否存在

来自分类Dev

检查cookie数组元素是否存在

来自分类Dev

检查Javascript数组中是否存在标签

来自分类Dev

检查是否存在NSURL数组的索引

来自分类Dev

检查数组中是否存在对象

来自分类Dev

WordPress检查数组中是否存在值

来自分类Dev

检查数组中是否存在rpm包

来自分类Dev

如何检查数组键是否存在?

来自分类Dev

检查数组中是否存在键/值对