add sborka

This commit is contained in:
2026-03-31 10:27:04 +03:00
commit f5e5f56c84
2345 changed files with 382127 additions and 0 deletions

View File

@@ -0,0 +1,158 @@
PLUGIN.name = "Chat Control"
PLUGIN.author = "RefoselDev"
PLUGIN.description = "Удаление ненужных типов чатов"
hook.Add("InitializedChatClasses", "ixChatControl.RemoveChats", function()
ix.chat.classes.it = nil
ix.chat.classes.connect = nil
ix.chat.classes.disconnect = nil
ix.chat.classes.event = nil
ix.chat.Register("rp", {
OnChatAdd = function(self, speaker, text)
local name = IsValid(speaker) and speaker:Name() or "Console"
chat.AddText(Color(26, 221, 0), "[RP] ", name, ": ", text)
end,
prefix = {"/rp", "/RP"},
description = "Чат РП отыгровок",
color = Color(150, 200, 255),
CanHear = function(self, speaker, listener)
return listener:GetCharacter() != nil
end,
deadCanChat = false
})
-- Чат между фракциями
ix.chat.Register("adgl", {
OnChatAdd = function(self, speaker, text)
local name = IsValid(speaker) and speaker:Name() or "Console"
local prefix = "[ФРАКЦИЯ] "
local prefixColor = Color(255, 200, 100)
if (IsValid(speaker) and speaker:GetCharacter()) then
local faction = speaker:GetCharacter():GetFaction()
if (faction == FACTION_RUSSIAN) then
prefix = "[ВС РФ → ВСУ] "
prefixColor = Color(255, 196, 0)
elseif (faction == FACTION_UKRAINE) then
prefix = "[ВСУВС РФ] "
prefixColor = Color(255, 196, 0)
end
end
chat.AddText(prefixColor, prefix, Color(255, 255, 255), name, ": ", text)
end,
prefix = {"/adgl"},
description = "Чат между фракциями",
color = Color(255, 200, 100),
CanHear = function(self, speaker, listener)
-- Слышат только игроки с персонажем и определенной фракцией
if (!listener:GetCharacter()) then
return false
end
local listenerFaction = listener:GetCharacter():GetFaction()
return listenerFaction == FACTION_RUSSIAN or listenerFaction == FACTION_UKRAINE
end,
deadCanChat = false
})
-- Объявления стороны
ix.chat.Register("ad", {
OnChatAdd = function(self, speaker, text)
local name = IsValid(speaker) and speaker:Name() or "Console"
local prefix = "[ОБЪЯВЛЕНИЕ] "
local prefixColor = Color(200, 200, 200)
if (IsValid(speaker) and speaker:GetCharacter()) then
local faction = speaker:GetCharacter():GetFaction()
if (faction == FACTION_RUSSIAN) then
prefix = "[ВС РФ] "
prefixColor = Color(255, 100, 100)
elseif (faction == FACTION_UKRAINE) then
prefix = "[ВСУ] "
prefixColor = Color(255, 196, 0)
end
end
chat.AddText(prefixColor, prefix, Color(255, 255, 255), name, ": ", text)
end,
prefix = {"/ad"},
description = "Объявления стороны",
color = Color(200, 200, 200),
CanHear = function(self, speaker, listener)
-- Слышат только игроки той же фракции
if (!listener:GetCharacter() or !speaker:GetCharacter()) then
return false
end
local speakerFaction = speaker:GetCharacter():GetFaction()
local listenerFaction = listener:GetCharacter():GetFaction()
return speakerFaction == listenerFaction
end,
deadCanChat = false
})
-- Чат подразделения
ix.chat.Register("podr", {
OnChatAdd = function(self, speaker, text)
local name = IsValid(speaker) and speaker:Name() or "Console"
local prefix = "[ПОДРАЗДЕЛЕНИЕ] "
local prefixColor = Color(100, 150, 255)
if (IsValid(speaker) and speaker:GetCharacter()) then
local character = speaker:GetCharacter()
local faction = character:GetFaction()
local podrID = (character.GetPodr and character:GetPodr()) or 1
local factionTable = ix.faction.indices[faction]
if (factionTable and factionTable.Podr and factionTable.Podr[podrID]) then
local podrName = factionTable.Podr[podrID].name or "Неизвестно"
prefix = "["..podrName.."] "
if (faction == FACTION_RUSSIAN) then
prefixColor = Color(255, 196, 0)
elseif (faction == FACTION_UKRAINE) then
prefixColor = Color(255, 196, 0)
end
end
end
chat.AddText(prefixColor, prefix, Color(255, 255, 255), name, ": ", text)
end,
prefix = {"/podr", "/p"},
description = "Чат подразделения",
color = Color(100, 150, 255),
CanHear = function(self, speaker, listener)
-- Слышат только игроки той же фракции и того же подразделения
if (!listener:GetCharacter() or !speaker:GetCharacter()) then
return false
end
local speakerChar = speaker:GetCharacter()
local listenerChar = listener:GetCharacter()
local speakerFaction = speakerChar:GetFaction()
local listenerFaction = listenerChar:GetFaction()
if (speakerFaction != listenerFaction) then
return false
end
local speakerPodr = (speakerChar.GetPodr and speakerChar:GetPodr()) or 1
local listenerPodr = (listenerChar.GetPodr and listenerChar:GetPodr()) or 1
return speakerPodr == listenerPodr
end,
deadCanChat = false
})
if (SERVER) then
print("[Chat Control] Удалены чаты: it, connect, disconnect, event")
print("[Chat Control] Добавлены чаты: /rp, /adgl, /ad, /podr")
end
end)