Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local overrides = {
- PhysObj = {
- "AddAngleVelocity",
- "AddVelocity",
- "ApplyForceCenter",
- "ApplyForceOffset",
- "CalculateVelocityOffset",
- "SetVelocity",
- "SetVelocityInstantaneous",
- "SetPos",
- "AlignAngles",
- },
- Entity = {
- "SetPos",
- "SetBonePosition",
- "SetLocalPos",
- "SetLocalVelocity",
- "SetVelocity",
- "SetLocalAngles",
- "SetAngles",
- "AlignAngles",
- "LocalToWorldAngles",
- "SetRenderAngles",
- "SetRenderOrigin",
- },
- Player = {
- "SetRenderAngles",
- "SetEyeAngles",
- "SnapEyeAngles",
- },
- CMoveData = {
- "SetMoveAngles",
- "SetOrigin",
- },
- CUserCMD = {
- "SetViewAngles",
- },
- CLuaEmitter = {
- "SetPos",
- },
- }
- local args
- local v
- local function CheckArgs(...)
- args = ({...})
- for i=1, #args do
- v = args[i]
- if (type(v) == "Angle" or type(v) == "Vector") and (CLIENT and FindMetaTable(type(v)).HasINF or SERVER and v.HasINF) and v:HasINF() then
- error(("Tried to use %s(%s) which contains an infinite number!"):format(type(v), tostring(v)), 3)
- end
- end
- end
- for meta_name, functions in pairs(overrides) do
- local meta = FindMetaTable(meta_name)
- if meta then
- for _, func_name in pairs(functions) do
- if meta[func_name] then
- meta[func_name .. "NoINFCheck"] = meta[func_name .. "NoINFCheck"] or meta[func_name]
- meta[func_name] = function(self, ...)
- CheckArgs(...)
- return meta[func_name .. "NoINFCheck"](self, ...)
- end
- end
- end
- end
- end
- function math.IsINF(v)
- return v and tostring(v) == "inf" or tostring(v) == "-inf" or tostring(v) == "1.#INF" or tostring(v) == "-1.#INF" or false
- end
- local IsINF = math.IsINF
- local VECTOR = FindMetaTable("Vector")
- if VECTOR then
- function VECTOR:HasINF()
- return IsINF(self.x) or IsINF(self.y) or IsINF(self.z) or false
- end
- end
- local ANGLE = FindMetaTable("Angle")
- if ANGLE then
- function ANGLE:HasINF()
- return IsINF(self.p) or IsINF(self.y) or IsINF(self.r) or false
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment