mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
104 lines
2.8 KiB
Lua
104 lines
2.8 KiB
Lua
--[[
|
|
| This file was obtained through the combined efforts
|
|
| of Madbluntz & Plymouth Antiquarian Society.
|
|
|
|
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
|
| Maloy, DrPepper10 @ RIP, Atle!
|
|
|
|
|
| Visit for more: https://plymouth.thetwilightzone.ru/
|
|
--]]
|
|
|
|
|
|
local PLUGIN = PLUGIN
|
|
local ix = ix
|
|
|
|
local LocalPlayer = LocalPlayer
|
|
local IsValid = IsValid
|
|
local draw = draw
|
|
|
|
function PLUGIN:HUDPaint(width, height, alpha)
|
|
if (!IsValid(LocalPlayer())) then
|
|
return
|
|
end
|
|
|
|
local character = LocalPlayer():GetCharacter()
|
|
if (character and IsValid(ix.gui.chat) and ix.gui.chat:IsVisible() and ix.gui.chat.bActive) then
|
|
local radioChannels = {}
|
|
--local quick = {}
|
|
for k in pairs(LocalPlayer():GetLocalVar("radioChannels", {})) do
|
|
--[[
|
|
local quickCom = LocalPlayer():HasQuickComms(k)
|
|
if (quickCom) then
|
|
quick[quickCom] = k
|
|
continue
|
|
end
|
|
--]]
|
|
|
|
radioChannels[#radioChannels + 1] = k
|
|
end
|
|
table.sort(radioChannels, ix.radio.sortFunc)
|
|
|
|
for k, v in ipairs(radioChannels) do
|
|
radioChannels[k] = ix.radio:FindByID(v).name
|
|
end
|
|
|
|
--[[
|
|
local seen = false
|
|
if (!table.IsEmpty(quick)) then
|
|
for i = 1, 5 do
|
|
if (!seen and !quick[i]) then
|
|
quick[i] = "none"
|
|
elseif (quick[i]) then
|
|
seen = true
|
|
quick[i] = ix.radio:FindByID(quick[i]).name
|
|
end
|
|
end
|
|
end
|
|
--]]
|
|
|
|
local channelsText = L("radioChannels")..": "..((#radioChannels > 0) and table.concat(radioChannels, ", ") or L("radioNone"))
|
|
--local quickText = L("quickChannels")..": "..((#quick > 0) and table.concat(quick, ", ") or L("radioNone"))
|
|
|
|
local currChannel = ix.radio:FindByID(character:GetRadioChannel())
|
|
local currentText = L("radioSpeaking").." : "..(currChannel and currChannel.name or L("radioNone"))
|
|
|
|
local x, y = ix.gui.chat:GetPos()
|
|
y = y - SScaleMin(20 / 3)
|
|
x = x + 10
|
|
draw.SimpleTextOutlined(currentText, "DebugFixedRadio",
|
|
x, y, Color(255, 255, 255), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP, 1, Color(0, 0, 0))
|
|
|
|
--[[
|
|
if (#quick > 0) then
|
|
y = y - ScreenScale(20 / 3)
|
|
draw.SimpleTextOutlined(quickText, "DebugFixed",
|
|
x, y, Color(255, 255, 255), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP, 1, Color(0, 0, 0))
|
|
end
|
|
--]]
|
|
|
|
if (#radioChannels > 0) then
|
|
y = y - SScaleMin(20 / 3)
|
|
draw.SimpleTextOutlined(channelsText, "DebugFixedRadio",
|
|
x, y, Color(255, 255, 255), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP, 1, Color(0, 0, 0))
|
|
end
|
|
end
|
|
end
|
|
|
|
net.Receive("ixRadioChannels", function(len)
|
|
local id = net.ReadUInt(32)
|
|
local character = ix.char.loaded[id]
|
|
local channels = {}
|
|
|
|
local total = net.ReadUInt(16)
|
|
for _ = 1, total do
|
|
channels[#channels + 1] = net.ReadString()
|
|
end
|
|
|
|
character.vars.radioChannels = channels
|
|
end)
|
|
|
|
function PLUGIN:InitializedPlugins()
|
|
CHAT_RECOGNIZED["radio"] = true
|
|
CHAT_RECOGNIZED["radio_eavesdrop"] = true
|
|
CHAT_RECOGNIZED["radio_eavesdrop_yell"] = true
|
|
end |