gmod 游戏模式 Lua。 IsPlayer 返回空值

gmod GameMode Lua. IsPlayer retuning nill value

我正在尝试制作 gmod 游戏模式。在我的 init.lua 中,我想要这样团队成员就不会互相伤害。所以我使用了这段代码

function GM:EntityTakeDamage( target, dmginfo )
    if ( target:IsPlayer() and dmginfo:IsPlayer() ) then
        if (dmginfo:Team() == target:Team()) then
            dmginfo:ScaleDamage( 0.0 ) // Sets damage to 0
        end
    end
end

但是它给我一个错误,告诉我 IsPlayer() 是一个 nil 值,即使它应该返回一个布尔值。除了带有 IsPlayer() 的行之外,它没有指向其他行,它说它是 IsPlayer()

  1. 你在第 3 行有错字。dminfo
  2. 您应该缩小多次 IsPlayer() 调用中实际为零的范围
  3. dmgInfo 是一个没有函数的 CTakeDamageInfo IsPlayer()
  4. 单行Lua评论用--打开,不是//

https://wiki.garrysmod.com/page/Category:CTakeDamageInfo

如果你调用一个函数并且它说它是 nil,那么检查它是否存在。或者更好的是,在您首先使用该功能之前先检查一下。

并且为了防止您在一分钟后回来,CTtakeDamageInfo 也没有函数 Team()

查看 CTDamageInfo:GetAttacker()