• Lua Error?
    1 replies, posted
Lua Error: [@gamemodes\terrortown\gamemode\tags.lua:17] bad argument #1 to 'crc32' (string expected, got no value)(Hook: Initialize) know what that means? ---- Adding informative info to sv_tags include('crcs.lua') local base_dir = "gamemodes/" .. GM.FolderName .. "/" local crc32 = util.CRC local fread = file.Read function GM:CheckFileConsistency() MsgN("Checking TTT file consistency.") self.LocalCRCs = {} self.ModdedScripts = {} -- Loop over crc table and check values against local files for fname, crc in pairs(self.CRCs) do -- Why does util.CRC return a string? local crc_local = crc32(fread(base_dir .. fname, true)) self.LocalCRCs[fname] = crc_local if crc_local != crc then table.insert(self.ModdedScripts, fname) Dev(1, Format("Script %s is modded: %s != %s", fname, crc, crc_local)) end end end local function IsModded(fname) return GAMEMODE.CRCs[fname] != GAMEMODE.LocalCRCs[fname] end local knife_scripts = { "entities/weapons/weapon_ttt_knife/shared.lua", "entities/entities/ttt_knife_proj/shared.lua" }; local function IsModdedKnife() for k, v in pairs(knife_scripts) do if IsModded(v) then return true end end return false end -- we only want to show the modded_knife tag if we modded more than the knife local function IsModdedGame() for k, v in pairs(GAMEMODE.ModdedScripts) do -- any modded script that is not part of the knife == modded game if not table.HasValue(knife_scripts, v) then return true end end return false end -- Tagname -> predicate map, if predicate returns anything but false or nil, tag -- is added. If the return value is a string, it replaces the tagname. GM.TagPredicates = { ["ttt:version"] = function(gm) return "ttt:v" .. gm.Version end, ["ttt:custom_weapons"] = function(gm) return gm.Customized end, ["ttt:language"] = function(gm) local lng = GetConVarString("ttt_lang_serverdefault") or "english" if lng != "english" and lng != "" then return "ttt:language_" .. string.gsub(lng, "([^%w]*)", "") end end, ["ttt:modded_game"] = IsModdedGame, ["ttt:modded_knife"] = IsModdedKnife, ["ttt:vanilla"] = function(gm) return ((not gm.Customized) and (#gm.ModdedScripts == 0) and GetConVarNumber("ttt_haste") == 1 and KARMA.IsEnabled() and DetectiveMode()) end }; function GM:UpdateServerTags(remove_only) if not self.LocalCRCs then self:CheckFileConsistency() end local tags_old = GetConVarString("sv_tags") -- Strip out any tags we might have added before tags_old = string.gsub(tags_old, "(,ttt:[^,]*)", "") Dev(1, "Old tags: " .. tags_old) -- Generate new tag list local tags_new = "" if not remove_only then for tag, pred in pairs(self.TagPredicates) do local t = pred(self) if t then tags_new = tags_new .. "," .. (type(t) == "string" and t or tag) end end Dev(1, "Adding to sv_tags: " .. tags_new) end RunConsoleCommand("sv_tags", tags_old .. tags_new) end
Use Lua tags: [.LUA] [./LUA]
Sorry, you need to Log In to post a reply to this thread.