尝试索引布尔值(本地“target”)

我已经尝试了不同的方法来解决这个问题,但完全不理解。我已经尝试过以每种可能的方式修复代码,但仍然没有成功。

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, '你没有钱', 2)
    end
end)
点赞
用户2858170
用户2858170

由于您没有提供您使用的那些函数的任何资源,因此我们无法为您做太多事情。

实际上这很简单。

您正在对布尔值本地目标进行索引。

这意味着您正在做类似于 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 不可索引,则不要对其执行索引操作。
2021-03-09 20:52:23