mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
Upload
This commit is contained in:
141
gamemodes/darkrp/plugins/phone/cl_hooks.lua
Normal file
141
gamemodes/darkrp/plugins/phone/cl_hooks.lua
Normal file
@@ -0,0 +1,141 @@
|
||||
--[[
|
||||
| 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("Şu anda telefon kullanıyorsun!")
|
||||
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 = "WAITING"
|
||||
PLUGIN.currentCallPeerName = "Unknown"
|
||||
|
||||
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\"", "Line Test", text or "Error!")
|
||||
|
||||
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 = "WAITING"
|
||||
PLUGIN.currentCallPeerName = "Unknown"
|
||||
|
||||
net.Start("RunHangupLandline")
|
||||
net.SendToServer()
|
||||
end
|
||||
end)
|
||||
Reference in New Issue
Block a user