mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 13:53:45 +03:00
Upload
This commit is contained in:
104
gamemodes/helix/plugins/radio/cl_hooks.lua
Normal file
104
gamemodes/helix/plugins/radio/cl_hooks.lua
Normal file
@@ -0,0 +1,104 @@
|
||||
--[[
|
||||
| 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
|
||||
Reference in New Issue
Block a user