• Why is not working the faction in nutscript HL2RP?
    0 replies, posted
The Combine Overwatch faction transformation Civil Protection similar faction. sh_schema SCHEMA.name = "Half-Life" SCHEMA.introName = "NutScript Half-Life RP for Singleplayer and Listen Servers" SCHEMA.author = "Chillycheese" SCHEMA.desc = "Under occupation of the Combine Empire." function SCHEMA:isCombineFaction(faction) return faction == FACTION_CP or faction == FACTION_OW end do local playerMeta = FindMetaTable("Player") function playerMeta:isCombine() return SCHEMA:isCombineFaction(self:Team()) end function playerMeta:getCombineRank() local name = self:Name() for k, v in ipairs(SCHEMA.scnRanks) do local rank = string.PatternSafe(v) if (name:find("[%D+]"..rank.."[%D+]")) then return v end end for k, v in ipairs(SCHEMA.rctRanks) do local rank = string.PatternSafe(v) if (name:find("[%D+]"..rank.."[%D+]")) then return v end end for k, v in ipairs(SCHEMA.unitRanks) do local rank = string.PatternSafe(v) if (name:find("[%D+]"..rank.."[%D+]")) then return v end end for k, v in ipairs(SCHEMA.eliteRanks) do local rank = string.PatternSafe(v) if (name:find("[%D+]"..rank.."[%D+]")) then return v end end for k, v in ipairs(SCHEMA.BetaRanks) do local rank = string.PatternSafe(v) if (name:find("[%D+]"..rank.."[%D+]")) then return v end end     for k, v in ipairs(SCHEMA.TestRanks) do local rank = string.PatternSafe(v) if (name:find("[%D+]"..rank.."[%D+]")) then return v end end end function playerMeta:isCombineRank(rank) if (type(rank) == "table") then local name = self:Name() for k, v in ipairs(rank) do local rank = string.PatternSafe(v) if (name:find("[%D+]"..rank.."[%D+]")) then return v end end return false else return self:getCombineRank() == rank end end function playerMeta:getRank() for k, v in ipairs(team.GetPlayers(FACTION_CP)) do local eliteRanks = string.Explode(",", nut.config.get("rankElite", "RCT"):gsub("%s", "")) local unitRanks = string.Explode(",", nut.config.get("rankUnit", "RCT"):gsub("%s", "")) local name = string.PatternSafe(v:Name()) for k, v in ipairs(eliteRanks) do if (name:find(v)) then return CLASS_CP_ELITE end end for k, v in ipairs(unitRanks) do if (name:find(v)) then return CLASS_CP_UNIT end end return CLASS_CP_RCT end end function playerMeta:getRank() for k, v in ipairs(team.GetPlayers(FACTION_OW)) do local TestRanks = string.Explode(",", nut.config.get("rankTest", "Beta"):gsub("%s", "")) local name = string.PatternSafe(v:Name()) for k, v in ipairs(TestRanks) do if (name:find(v)) then return CLASS_OW_Test end end return CLASS_OW_Beta end end sh_config -- Customize the beep sounds here, before and after voices. SCHEMA.beepSounds = {} SCHEMA.beepSounds[FACTION_CP] = { on = { "npc/overwatch/radiovoice/on1.wav", "npc/overwatch/radiovoice/on3.wav", "npc/metropolice/vo/on2.wav" }, off = { "npc/metropolice/vo/off1.wav", "npc/metropolice/vo/off2.wav", "npc/metropolice/vo/off3.wav", "npc/metropolice/vo/off4.wav", "npc/overwatch/radiovoice/off2.wav", "npc/overwatch/radiovoice/off2.wav" } } SCHEMA.beepSounds[FACTION_OW] = { on = { "npc/combine_soldier/vo/on1.wav", "npc/combine_soldier/vo/on2.wav" }, off = { "npc/combine_soldier/vo/off1.wav", "npc/combine_soldier/vo/off2.wav", "npc/combine_soldier/vo/off3.wav" } } -- Sounds play after the player has died. SCHEMA.deathSounds = {} SCHEMA.deathSounds[FACTION_CP] = { "npc/metropolice/die1.wav", "npc/metropolice/die2.wav", "npc/metropolice/die3.wav", "npc/metropolice/die4.wav" } SCHEMA.deathSounds[FACTION_OW] = { "npc/combine_soldier/die1.wav", "npc/combine_soldier/die2.wav", "npc/combine_soldier/die3.wav" } -- Sounds the player makes when injured. SCHEMA.painSounds = {} SCHEMA.painSounds[FACTION_CP] = { "npc/metropolice/pain1.wav", "npc/metropolice/pain2.wav", "npc/metropolice/pain3.wav", "npc/metropolice/pain4.wav" } SCHEMA.painSounds[FACTION_OW] = { "npc/combine_soldier/pain1.wav", "npc/combine_soldier/pain2.wav", "npc/combine_soldier/pain3.wav" } -- Civil Protection name prefix. SCHEMA.cpPrefix = "CP-" SCHEMA.OWPrefix = "OW-" -- How long the Combine digits are. SCHEMA.digitsLen = 5 -- Rank information. SCHEMA.rctRanks = {"RCT"} SCHEMA.unitRanks = {"05", "04", "03", "02", "01", "OfC"} SCHEMA.eliteRanks = {"EpU", "DvL", "SeC"} SCHEMA.scnRanks = {"SCN", "CLAW.SCN"} SCHEMA.BetaRanks = {"Beta"} SCHEMA.TestRanks = {"Test"} -- What model each rank should be. SCHEMA.rankModels = { ["RCT"] = "models/police.mdl", [SCHEMA.unitRanks] = "models/dpfilms/metropolice/hl2concept.mdl", ["OfC"] = "models/dpfilms/metropolice/policetrench.mdl", ["EpU"] = "models/dpfilms/metropolice/elite_police.mdl", ["DvL"] = "models/dpfilms/metropolice/blacop.mdl", ["SeC"] = "models/dpfilms/metropolice/phoenix_police.mdl", ["SCN"] = "models/combine_scanner.mdl", ["CLAW.SCN"] = "models/shield_scanner.mdl", ["Beta"] = "models/combine_univers_prisonguard.mdl" ["Test"] = "models/combine_elite_univers.mdl" } -- The default player data when using /data SCHEMA.defaultData = [[ Points: Infractions: ]] sh_overwatch FACTION.name = "fOverwatchName" FACTION.desc = "fOverwatchDesc" FACTION.color = Color(181, 94, 94) FACTION.isDefault = false FACTION.models = { "models/combine_univers.mdl" } FACTION.weapons = {} FACTION.pay = 30 FACTION.isGloballyRecognized = true function FACTION:onGetDefaultName(client) if (SCHEMA.digitsLen >= 1) then local digits = math.random(tonumber("1"..string.rep("0", SCHEMA.digitsLen-1)), tonumber(string.rep("9", SCHEMA.digitsLen))) return SCHEMA.OWPrefix..table.GetFirstValue(SCHEMA.BetaRanks).."."..digits, true else return SCHEMA.OWPrefix..table.GetFirstValue(SCHEMA.BetaRanks), true end end FACTION_OW = FACTION.index and two ranks sh_ow_Test CLASS.name = "Combine Overwatch Test" CLASS.desc = "The bottom of the Overwatch." CLASS.faction = FACTION_OW function CLASS:onCanBe(client) return client:isCombineRank(SCHEMA.TestRanks) end CLASS_OW_Test = CLASS.index sh_ow_BETA CLASS.name = "Combine Overwatch Beta" CLASS.desc = "The bottom of the Overwatch." CLASS.faction = FACTION_OW function CLASS:onCanBe(client) return client:isCombineRank(SCHEMA.BetaRanks) end CLASS_OW_Beta = CLASS.index What's the mistake? Thank you in advance for your help.
Sorry, you need to Log In to post a reply to this thread.