gmod GameMode Lua。 IsPlayer重新调整nill值

时间:2016-03-16 18:25:21

标签: lua garrys-mod

我正在尝试制作一个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()是一个零值,即使它应该返回一个布尔值。它指向除了IsPlayer()之外的其他行,并且它表示它是IsPlayer()

1 个答案:

答案 0 :(得分:0)

  1. 你在第3行有一个拼写错误.dminfo
  2. 您应该缩小您的多个IsPlayer()来电实际上是哪个
  3. dmgInfo是一个没有函数IsPlayer()
  4. 的CTakeDamageInfo
  5. 单行Lua评论使用--而不是//
  6. 打开

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

    如果你调用一个函数并且它的值为nil,那么检查它是否存在。或者甚至更好,请检查这一点,因为您首先使用该功能。

    为了防止你在一分钟内回来,CTtakeDamageInfo也没有函数Team()

    查看CTDamageInfo:GetAttacker()