Lua!没想到

问题描述 投票:1回答:1

错误似乎在“!self.Replace”的第一行。我在尝试使用时总是会出错!在卢阿,如果有人可以帮助那就是伟大的。

 function ENT:Think()
    if ( !self.Replace ) && ( self:GetrHealth() <= 0 )  then

        self.Replace = true
        self.ReplaceTime = CurTime() + gMining.plugins[ "Rock Config" ].rockRespawn
        self.Pos = self:GetPos()
        if gMining.plugins[ "Rock Config" ].despawn then
            self:SetPos( self:GetPos() + Vector( 0, 0, -300 ) )
        elseif !gMining.plugins[ "Rock Config" ].despawn then
            self:SetRenderMode(RENDERMODE_TRANSADDFRAMEBLEND)
            if ( gMining.plugins[ "Rock Config" ].customColor == true ) then
                if gMining.mineralDB[ "gMining."..self.name ].enable == true then
                    self:SetColor( Color( gMining.mineralDB[ "gMining."..self.name ].color.r, gMining.mineralDB[ "gMining."..self.name ].color.g, gMining.mineralDB[ "gMining."..self.name ].color.b, gMining.plugins[ "Rock Config" ].rockTransparency ) )
                end
            else
                self:SetColor( Color( 255, 255, 255, gMining.plugins[ "Rock Config" ].rockTransparency ) )
            end

            self:Setvisible( 0 )
        end
    end;
lua garrys-mod
1个回答
3
投票

正如已经指出的那样,Lua使用关键字not进行逻辑反演,而不是运算符!。您发布的代码看起来像gLua:基于Lua 5.1的Lua变体,专为Garry的Mod设计。它与纯Lua 5.1的不同之处在于它实现了许多C风格的运算符,如here所列。尝试在常规Lua环境中运行gLua是行不通的,因为基础Lua不支持这些运算符,并且某些内置Lua函数在gLua中表现不同。

编辑:如果在gLua环境中执行,问题的原因可能是使用entity.GetrHealth:这不是基本功能,你打算entity.GetHealth

© www.soinside.com 2019 - 2024. All rights reserved.