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.