mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 05:43:46 +03:00
142 lines
3.9 KiB
Lua
142 lines
3.9 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
|
|
PLUGIN.targetedLandlineEndpointID = nil
|
|
PLUGIN.targetedLandlinePBX = nil
|
|
PLUGIN.targetedLandlineExt = nil
|
|
PLUGIN.targetedLandlineName = nil
|
|
|
|
do
|
|
surface.CreateFont("phoneMonoDebug", {
|
|
font = "Consolas",
|
|
size = 16,
|
|
extended = true,
|
|
weight = 1200
|
|
})
|
|
end
|
|
|
|
function PLUGIN:InitializedPlugins()
|
|
local color = Color(255, 0, 255)
|
|
local function drawConnectorESP(client, entity, x, y, factor)
|
|
ix.util.DrawText(
|
|
"Landline Phone",
|
|
x,
|
|
y - math.max(10, 32 * factor),
|
|
color,
|
|
TEXT_ALIGN_CENTER,
|
|
TEXT_ALIGN_CENTER,
|
|
nil,
|
|
math.max(255 * factor, 80)
|
|
)
|
|
end
|
|
|
|
ix.observer:RegisterESPType("landline_phone", drawConnectorESP, "Landline Phone")
|
|
end
|
|
|
|
net.Receive("EnterLandlineDial", function()
|
|
PLUGIN.targetedLandlineEndpointID = net.ReadInt(15)
|
|
PLUGIN.targetedLandlinePBX = net.ReadInt(5)
|
|
PLUGIN.targetedLandlineExt = net.ReadInt(11)
|
|
PLUGIN.targetedLandlineName = net.ReadString()
|
|
PLUGIN.landlineEntIdx = net.ReadInt(17)
|
|
|
|
if (PLUGIN.panel) then
|
|
LocalPlayer():Notify("Obecnie używasz telefonu!")
|
|
else
|
|
vgui.Create("ixLandlineDial")
|
|
end
|
|
end)
|
|
|
|
net.Receive("ixConnectedCallStatusChange", function()
|
|
local active = net.ReadBool()
|
|
local inCall = net.ReadBool()
|
|
|
|
if (active) then
|
|
PLUGIN.offHook = true
|
|
end
|
|
|
|
if (active and inCall) then
|
|
PLUGIN.otherSideActive = true
|
|
PLUGIN.otherSideRinging = false
|
|
PLUGIN.currentCallStatus = ""
|
|
|
|
net.Start("RunGetPeerName")
|
|
net.SendToServer()
|
|
|
|
timer.Simple(0.25, function()
|
|
-- wait for the vgui panel to come up (if we're picking up in this state)
|
|
LocalPlayer():StopSound("landline_ringtone.wav")
|
|
LocalPlayer():StopSound("landline_dialtone.wav")
|
|
end)
|
|
else
|
|
PLUGIN.otherSideRinging = false
|
|
PLUGIN.otherSideActive = false
|
|
PLUGIN.currentCallStatus = "OCZEKIWANIE"
|
|
PLUGIN.currentCallPeerName = "Nieznany"
|
|
|
|
if (PLUGIN.panel) then
|
|
LocalPlayer():StopSound("landline_dialtone.wav")
|
|
LocalPlayer():EmitSound("landline_dialtone.wav", 40, 100, 1, CHAN_STATIC)
|
|
end
|
|
end
|
|
end)
|
|
|
|
net.Receive("OnGetPeerName", function()
|
|
PLUGIN.currentCallPeerName = net.ReadString()
|
|
end)
|
|
|
|
net.Receive("LineTestChat", function()
|
|
local text = net.ReadString()
|
|
local chatIcon = ix.util.GetMaterial("willardnetworks/chat/message_icon.png")
|
|
local color = Color(105, 157, 178)
|
|
local formattedText = string.format("[PHONE] %s: \"%s\"", "Test linii", text or "Błąd!")
|
|
|
|
if (ix.option.Get("standardIconsEnabled")) then
|
|
chat.AddText(chatIcon, color, formattedText)
|
|
else
|
|
chat.AddText(color, formattedText)
|
|
end
|
|
end)
|
|
|
|
net.Receive("LineStatusUpdate", function()
|
|
PLUGIN.currentLineStatus = net.ReadString()
|
|
if (PLUGIN.currentLineStatus ~= ix.phone.switch.DialStatus.Success and
|
|
PLUGIN.currentLineStatus ~= ix.phone.switch.DialStatus.DebugMode) then
|
|
|
|
LocalPlayer():StopSound("landline_ringtone.wav")
|
|
LocalPlayer():EmitSound("landline_dialtone.wav", 40, 100, 1, CHAN_STATIC)
|
|
elseif (PLUGIN.currentLineStatus == ix.phone.switch.DialStatus.LineBusy) then
|
|
LocalPlayer():EmitSound("landline_line_busy.wav", 40, 100, 1, CHAN_STATIC)
|
|
|
|
elseif (PLUGIN.currentLineStatus == ix.phone.switch.DialStatus.Success or
|
|
PLUGIN.currentLineStatus == ix.phone.switch.DialStatus.DebugMode) then
|
|
timer.Simple(0.25, function()
|
|
-- wait for the vgui panel to come up (if we're picking up in this state)
|
|
LocalPlayer():StopSound("landline_dialtone.wav")
|
|
end)
|
|
end
|
|
end)
|
|
|
|
net.Receive("ForceHangupLandlinePhone", function()
|
|
if (PLUGIN.panel and PLUGIN.panel.Close) then
|
|
PLUGIN.panel:Close()
|
|
|
|
PLUGIN.offHook = false
|
|
PLUGIN.otherSideRinging = false
|
|
PLUGIN.otherSideActive = false
|
|
PLUGIN.currentCallStatus = "OCZEKIWANIE"
|
|
PLUGIN.currentCallPeerName = "Nieznany"
|
|
|
|
net.Start("RunHangupLandline")
|
|
net.SendToServer()
|
|
end
|
|
end)
|