【问题标题】:attempt to index a boolean value (local 'target')尝试索引一个布尔值(本地“目标”)
【发布时间】:2021-03-09 16:46:06
【问题描述】:

我已经研究了解决此问题的不同方法,但完全不了解。我已经尝试过修复所有可能的代码,但仍然没有成功。

RegisterServerEvent('housing:attemptsale')
AddEventHandler('housing:attemptsale',
function(args,price,hid,model)
    local src = source
    local user = exports["np-base"]:getModule("Player"):GetUser(src)
    local char = user:getCurrentCharacter()
    local target = exports["np-base"]:getModule("Player"):GetUser(args)
    local targetchar = user:getCurrentCharacter()
    
    if target:getCash() >= price then
        target:removeMoney(price)
        exports.ghmattimysql:execute("UPDATE houses SET `cid` = @cid, `price` = @price, `model` = @model WHERE `id` = @id", {
            ['@cid'] = targetchar.id,
            ['@price'] = price,
            ['@id'] = hid,
            ['@model'] = model
        })
    else
        TriggerClientEvent('DoShortHudText', args, 'You dont got money', 2)
    end
end)

【问题讨论】:

    标签: lua fivem


    【解决方案1】:

    由于您没有提供有关您正在使用的功能的任何资源,因此我们无能为力。

    其实这很简单。

    您正在索引一个布尔值本地目标。

    这意味着您正在执行target:something()target.somethingtarget[something] 之类的操作。

    在这里创建targetlocal target = exports["np-base"]:getModule("Player"):GetUser(args)

    然后你这样做target:getCash()。此时target 是一个布尔值,这意味着它要么是true,要么是false

    所以你知道exports["np-base"]:getModule("Player"):GetUser(args) 返回了truefalse

    现在你有两个选择。

    • 找出函数返回布尔值而不是您期望的值的原因并解决此问题
    • 如果target 不可索引,则不要索引target

    【讨论】:

    • 感谢您的提示。我是新人,所以我不确定您所说的资源是什么意思?
    • 手册、文档、任何指向更多源代码的链接、任何可以告诉我们您正在使用哪些功能的东西。你不应该期望人们详细了解这个星球上的每个 Lua API,如果他们想提供帮助,你也不应该打扰他们搜索这些信息
    猜你喜欢
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 2016-12-27
    • 2020-06-18
    • 2014-06-25
    • 2017-03-12
    相关资源
    最近更新 更多