Lua 如何修复加里的Mod武器的冷却时间?(尝试将nil与number进行比较)
我正在加里的Mod中制作一种武器,它有三个功能,同时使用鼠标键和R键。由于Garry很酷,我可以使用SetNextPrimaryFire和SetNextSecondaryFire轻松设置鼠标按钮攻击的延迟。不幸的是,没有像为其他键设置的那样方便的功能。所以,一个陌生人建议我试试这个Lua 如何修复加里的Mod武器的冷却时间?(尝试将nil与number进行比较),lua,garrys-mod,Lua,Garrys Mod,我正在加里的Mod中制作一种武器,它有三个功能,同时使用鼠标键和R键。由于Garry很酷,我可以使用SetNextPrimaryFire和SetNextSecondaryFire轻松设置鼠标按钮攻击的延迟。不幸的是,没有像为其他键设置的那样方便的功能。所以,一个陌生人建议我试试这个 function SWEP:SetNextUltFire(time) self.ultdelay = time end function SWEP:Think() if self.Owner:Ke
function SWEP:SetNextUltFire(time)
self.ultdelay = time
end
function SWEP:Think()
if self.Owner:KeyPressed( IN_RELOAD ) and self.ultdelay <= CurTime() then
walkspeed = 800
runspeed = 800
self:EmitSound(self.WeaponSounds2[math.random(1,#self.WeaponSounds2)], 100, 100)
self.Owner:SetWalkSpeed(800);self.Owner:SetRunSpeed(800)
firerate = 0.15
timer.Create("stopult", 10, 1, function()
self.Owner:SetWalkSpeed(250);self.Owner:SetRunSpeed(500);
firerate = 0.3; self:SendWeaponAnim( ACT_VM_RELOAD );self:SetNextPrimaryFire( CurTime() + 2.8 );
walkspeed = 250; runspeed = 500 end)
self:SetNextUltFire(CurTime()+15)
end
end
如果我删除并self.ultdelay尝试将第103行更改为:
if self.Owner:KeyPressed( IN_RELOAD ) and (not self.ultdelay or self.ultdelay <= CurTime()) then
需要执行此操作的原因是,在SWEP:Initialize中没有将ultdelay设置为任何值,因此它试图比较一个尚未设置的值,因此会显示错误消息。CurTime在哪里定义?如果ultdelay是通过函数定义的,并且您确定它是一个数字,那么唯一剩下的就是CurTime,它可能被设置为nil。