mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 13:53:45 +03:00
572 lines
22 KiB
Lua
572 lines
22 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 mapButtonIndex = {
|
||
|
|
["BOE_CitizenReminder1"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Przypomnienie dla wszystkich mieszkańców Miasta Dwadzieścia Cztery: *Cywilizowane* społeczeństwo jest *bezpieczne* i *bogate*. Odegraj *swoją* rolę w wyniesieniu ludzkości do gwiazd, zgłaszając tych, którzy uważają, że droga ludzkości do sukcesu jest nie do przyjęcia.", false, nil, {speakerName = "Głos Miasta"})
|
||
|
|
end)
|
||
|
|
end,
|
||
|
|
position = Vector(13125.000000, 3581.000000, 2160.000000)
|
||
|
|
},
|
||
|
|
["BOE_CitizenReminder2"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Przypomnienie dla wszystkich mieszkańców Miasta Dwadzieścia Cztery: Kontynuacja gatunku ludzkiego spoczywa w rękach Uniwersalnej Unii. Od nas zależy utrzymanie więzi, które trzymają nas razem. Zrób *swoją* część w wyniesieniu naszego gatunku do gwiazd.", false, nil, {speakerName = "Głos Miasta"})
|
||
|
|
end)
|
||
|
|
end,
|
||
|
|
position = Vector(13125.000000, 3581.000000, 2144.000000)
|
||
|
|
},
|
||
|
|
["BOE_CitizenReminder3"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Przypomnienie dla wszystkich mieszkańców Miasta Dwadzieścia Cztery: *Magiczne myślenie* jest narzędziem ekstremistów. Nie pozwólcie sobie na uleganie kłamstwom i niemożliwym do odrzucenia żądaniom skrajnych elementów.", false, nil, {speakerName = "Głos Miasta"})
|
||
|
|
end)
|
||
|
|
end,
|
||
|
|
position = Vector(13125.000000, 3581.000000, 2128.000000)
|
||
|
|
},
|
||
|
|
["BOE_CitizenReminder4"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Przypomnienie dla wszystkich mieszkańców Miasta Dwadzieścia Cztery: Zjednoczenie Ziemi jest tylko częścią procesu, który wyniesie nasz gatunek. Bądź częścią tego procesu. Ty i twoja rodzina będziecie wdzięczni.", false, nil, {speakerName = "Głos Miasta"})
|
||
|
|
end)
|
||
|
|
end,
|
||
|
|
position = Vector(13104.400391, 3536.360107, 2160.000000)
|
||
|
|
},
|
||
|
|
["BOE_CitizenReminder5"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Przypomnienie dla wszystkich mieszkańców Miasta Dwadzieścia Cztery: Uniwersalna Unia jest cywilizowanym organem, który działa w najlepszym interesie naszego społeczeństwa i gatunku, niezależnie od tego, kim są. Nie pozwól, aby elementy marginesu zerwały więź która jest między nimi.", false, nil, {speakerName = "Głos Miasta"})
|
||
|
|
end)
|
||
|
|
end,
|
||
|
|
position = Vector(13104.400391, 3536.360107, 2144.000000)
|
||
|
|
},
|
||
|
|
["BOE_WorkerAnnouncement"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Uwaga wszyscy pracujący mieszkańcy Miasta Dwadzieścia Cztery: Zaplanowana sesja robocza jest gotowa. Prosimy o udanie się do odpowiedniego magazynu w celu przydzielenia zadań.", false, nil, {speakerName = "Głos Miasta"})
|
||
|
|
end)
|
||
|
|
end,
|
||
|
|
position = Vector(13104.400391, 3536.360107, 2128.000000)
|
||
|
|
},
|
||
|
|
["BOE_SuspendedRations"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Uwaga wszyscy mieszkańcy Miasta Dwadzieścia Cztery: W związku z działaniami elementów pobocznych, pobór racji zostaje tymczasowo zawieszony.", false, nil, {speakerName = "Głos Miasta"})
|
||
|
|
end)
|
||
|
|
end,
|
||
|
|
position = Vector(12952.000000, 4119.000000, 2169.000000)
|
||
|
|
},
|
||
|
|
["BOE_RationAnnouncement"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Uwaga wszyscy mieszkańcy Miasta Dwadzieścia Cztery: Wasze racje żywnościowe są już dostępne do odbioru. Prosimy o jak najszybsze udanie się do terminalu dystrybucji racji żywnościowych.", false, nil, {speakerName = "Głos Miasta"})
|
||
|
|
end)
|
||
|
|
end,
|
||
|
|
position = Vector(12952.000000, 4119.000000, 2144.000000)
|
||
|
|
},
|
||
|
|
["CA_CitizenReminder1"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Przypomnienie dla wszystkich mieszkańców Miasta Dwadzieścia Cztery: *Cywilizowane* społeczeństwo jest *bezpieczne* i *bogate*. Odegraj *swoją* rolę w wyniesieniu ludzkości do gwiazd, zgłaszając tych, którzy uważają, że droga ludzkości do sukcesu jest nie do przyjęcia.", false, nil, {speakerName = "Głos Miasta"})
|
||
|
|
end)
|
||
|
|
end,
|
||
|
|
position = Vector(14551.900391, 3651.979980, 2157.689941)
|
||
|
|
},
|
||
|
|
["CA_CitizenReminder2"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Przypomnienie dla wszystkich mieszkańców Miasta Dwadzieścia Cztery: Kontynuacja gatunku ludzkiego spoczywa w rękach Uniwersalnej Unii. Od nas zależy utrzymanie więzi, które trzymają nas razem. Zrób *swoją* część w wyniesieniu naszego gatunku do gwiazd.", false, nil, {speakerName = "Głos Miasta"})
|
||
|
|
end)
|
||
|
|
end,
|
||
|
|
position = Vector(14551.900391, 3651.979980, 2141.689941)
|
||
|
|
},
|
||
|
|
["CA_CitizenReminder3"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Przypomnienie dla wszystkich mieszkańców Miasta Dwadzieścia Cztery: *Magiczne myślenie* jest narzędziem ekstremistów. Nie pozwólcie sobie na uleganie kłamstwom i niemożliwym do odrzucenia żądaniom skrajnych elementów.", false, nil, {speakerName = "Głos Miasta"})
|
||
|
|
end)
|
||
|
|
end,
|
||
|
|
position = Vector(14551.900391, 3651.979980, 2125.689941)
|
||
|
|
},
|
||
|
|
["CA_CitizenReminder4"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Przypomnienie dla wszystkich mieszkańców Miasta Dwadzieścia Cztery: Zjednoczenie Ziemi jest tylko częścią procesu, który wyniesie nasz gatunek. Bądź częścią tego procesu. Ty i twoja rodzina będziecie wdzięczni.", false, nil, {speakerName = "Głos Miasta"})
|
||
|
|
end)
|
||
|
|
end,
|
||
|
|
position = Vector(14515.900391, 3623.800049, 2155.689941)
|
||
|
|
},
|
||
|
|
["CA_CitizenReminder5"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Przypomnienie dla wszystkich mieszkańców Miasta Dwadzieścia Cztery: Uniwersalna Unia jest cywilizowanym organem, który działa w najlepszym interesie naszego społeczeństwa i gatunku, niezależnie od tego, kim są. Nie pozwól, aby elementy marginesu zerwały więź która jest między nimi.", false, nil, {speakerName = "Głos Miasta"})
|
||
|
|
end)
|
||
|
|
end,
|
||
|
|
position = Vector(14515.900391, 3623.800049, 2139.689941)
|
||
|
|
},
|
||
|
|
["CA_WorkerAnnouncement"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (client:Team() == FACTION_WORKERS or client:Team() == FACTION_MEDICAL or client:IsCombine() or client:IsAdmin()) then
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Uwaga wszyscy pracujący mieszkańcy Miasta Dwadzieścia Cztery: Zaplanowana sesja robocza jest gotowa. Prosimy o udanie się do odpowiedniego magazynu w celu przydzielenia zadań.", false, nil, {speakerName = "Głos Miasta"})
|
||
|
|
end)
|
||
|
|
else
|
||
|
|
return "Nie posiadasz pozwolenia do ogłoszenia workshiftu!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(14515.900391, 3623.800049, 2123.689941)
|
||
|
|
},
|
||
|
|
["CA_JudgementWaiver"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!ix.JwLocked) then
|
||
|
|
local steamIDs = string.Explode(",", ix.config.Get("judgementWaiverPermission", ""), false)
|
||
|
|
|
||
|
|
if (table.HasValue(steamIDs, client:SteamID())) then
|
||
|
|
if (!ix.JudgementWaiverEnabled) then
|
||
|
|
ix.JudgementWaiverEnabled = true
|
||
|
|
ix.JwLocked = true
|
||
|
|
|
||
|
|
local jwRelay = ents.FindByName("jw_on_logic")
|
||
|
|
jwRelay[1]:Fire("Trigger")
|
||
|
|
|
||
|
|
for _, alarm in ipairs(ents.FindByClass("ambient_generic")) do
|
||
|
|
if (alarm:GetName() == "tower_alarm" or alarm:GetName() == "tower_alarm1") then
|
||
|
|
alarm:Fire("PlaySound")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
timer.Simple(19, function()
|
||
|
|
ix.chat.Send(Entity(0), "worlddispatch", "Uwaga jednostki naziemne. Wykryto działania inwazyjne pochodzenia antyobywatelskiego. Kod odpowiedzi: Engage. Quell. Inquire.")
|
||
|
|
|
||
|
|
timer.Simple(16, function()
|
||
|
|
ix.chat.Send(Entity(0), "worlddispatch", "Alarm, jednostki reagowania. Kod aktualizacji: FLUSH; ESCORT; CONTINUE.")
|
||
|
|
|
||
|
|
timer.Simple(13, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Uwaga, Miasto Dwadzieścia Cztery: Judgement Waiver w toku.. Wszyscy mieszkańcy są zobowiązani do powrotu do swoich domów. Dyrektywy zostały wysłane do lokalnych zespołów Civil Protection. Współpracujcie, a wasze bezpieczeństwo będzie zapewnione.", false, nil, {speakerName = "Głos Miasta"})
|
||
|
|
|
||
|
|
timer.Simple(20.5, function()
|
||
|
|
ix.chat.Send(Entity(0), "worlddispatch", "Alarm: Odnowienie administracji w toku. Kod dostosowania alokacji aktywów: FLINT; INSPECT; EXTIRPATE. Priorytet: NATYCHMIAST.")
|
||
|
|
|
||
|
|
timer.Simple(17, function()
|
||
|
|
ix.chat.Send(Entity(0), "worlddispatch", "Alarm bezpieczeństwa. Krytyczny bunt antyobywatelski. Wysłano zespoły techniczne do bloków 49, 64, 77. Zachować priorytet.")
|
||
|
|
|
||
|
|
timer.Simple(15.5, function()
|
||
|
|
ix.chat.Send(Entity(0), "worlddispatch", "Uwaga, jednostki naziemne: Niepowodzenie misji będzie skutkować stałym przydziałem pozaziemskim. Przypomnienie kodu: SACRIFICE, COAGULATE, CLAMP.")
|
||
|
|
|
||
|
|
ix.JwLocked = false
|
||
|
|
end)
|
||
|
|
end)
|
||
|
|
end)
|
||
|
|
end)
|
||
|
|
end)
|
||
|
|
end)
|
||
|
|
else
|
||
|
|
ix.JudgementWaiverEnabled = false
|
||
|
|
ix.JwLocked = true
|
||
|
|
|
||
|
|
local jwRelay = ents.FindByName("jw_stop_logic")
|
||
|
|
jwRelay[1]:Fire("Trigger")
|
||
|
|
|
||
|
|
for _, alarm in ipairs(ents.FindByClass("ambient_generic")) do
|
||
|
|
if (alarm:GetName() == "tower_alarm" or alarm:GetName() == "tower_alarm1") then
|
||
|
|
alarm:Fire("StopSound")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
timer.Simple(20, function()
|
||
|
|
ix.JwLocked = false
|
||
|
|
end)
|
||
|
|
end
|
||
|
|
else
|
||
|
|
client:Notify("Nie możesz zainicjować Judgement Waiver!")
|
||
|
|
end
|
||
|
|
else
|
||
|
|
client:Notify("Poczekaj, zanim przełączysz Judgement Waiver!")
|
||
|
|
end
|
||
|
|
|
||
|
|
return true -- Stopping the button logic because it's broken.
|
||
|
|
end,
|
||
|
|
position = Vector(14547.500000, 3583.310059, 2152.510010)
|
||
|
|
},
|
||
|
|
["CA_SocialInfection"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (client:Team() == FACTION_OTA or client:IsAdmin()) then
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(Entity(0), "worlddispatch", "Uwaga Jednostki Naziemne! Inwazyjne działania pochodzenia Antyobywatelskiego w toku. Kod: ENGAGE; QUELL; INQUIRE.")
|
||
|
|
|
||
|
|
timer.Simple(12, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Uwaga rezydenci Miasta Dwadzieścia Cztery! Wykryto dysfunkcje społeczną. Wdrożono procedury mające na celu zwalczenie niepokojów społecznych. Pamiętajcie - współpraca z Civil Protection jest kluczem do bezpieczeństwa.", false, nil, {speakerName = "Informator Miasta"})
|
||
|
|
|
||
|
|
timer.Simple(16.5, function()
|
||
|
|
ix.chat.Send(Entity(0), "worlddispatch", "Uwaga Jednostki Naziemne! Inwazyjne działania pochodzenia Antyobywatelskiego w toku. Kod: ENGAGE; QUELL; INQUIRE.")
|
||
|
|
end)
|
||
|
|
end)
|
||
|
|
end)
|
||
|
|
else
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby ogłosić Social Infection!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(14547.599609, 3583.320068, 2129.510010)
|
||
|
|
},
|
||
|
|
["CA_RationAnnouncement"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (client:IsCombine() or client:IsAdmin()) then
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Uwaga rezydenci Miasta Dwudziestego Czwartego! Wasze godzinne racje żywnościowe są już dostępne do odebrania. Prosimy o udanie się do Terminala Dystrybucji Racji, kiedy bedzie to dla was najdogodniejsze.", false, nil, {speakerName = "Informator Miasta"})
|
||
|
|
end)
|
||
|
|
else
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby ogłosić dystrybucje racji!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(14600.299805, 3599.760010, 2152.510010)
|
||
|
|
},
|
||
|
|
["CA_SuspendedRations"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (client:IsCombine() or client:IsAdmin()) then
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Uwaga rezydenci Miasta Dwudziestego Czwartego! Ze względu na działania skrajnych elementów, godzinny przydział racji żywnościowych został tymczasowo zawieszony.", false, nil, {speakerName = "Informator Miasta"})
|
||
|
|
end)
|
||
|
|
else
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby ogłosić zakończenie dystrybucji racji!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(14600.400391, 3599.860107, 2129.510010)
|
||
|
|
},
|
||
|
|
["RDC_SuspendedRations"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (client:IsCombine() or client:IsAdmin()) then
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Uwaga rezydenci Miasta Dwudziestego Czwartego! Ze względu na działania skrajnych elementów, godzinny przydział racji żywnościowych został tymczasowo zawieszony.", false, nil, {speakerName = "Informator Miasta"})
|
||
|
|
end)
|
||
|
|
else
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby ogłosić zakończenie dystrybucji racji!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(7199.000000, 7970.990234, 186.000000)
|
||
|
|
},
|
||
|
|
["RDC_RationAnnouncement"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (client:IsCombine() or client:IsAdmin()) then
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Uwaga rezydenci Miasta Dwudziestego Czwartego! Wasze godzinne racje żywnościowe są już dostępne do odebrania. Prosimy o udanie się do Terminala Dystrybucji Racji, kiedy bedzie to dla was najdogodniejsze.", false, nil, {speakerName = "Informator Miasta"})
|
||
|
|
end)
|
||
|
|
else
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby ogłosić dystrybucje racji!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(7161.000000, 7881.009766, 178.009995)
|
||
|
|
},
|
||
|
|
["CWU_WorkerAnnouncement"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (client:Team() == FACTION_WORKERS or client:Team() == FACTION_MEDICAL or client:IsCombine() or client:IsAdmin()) then
|
||
|
|
timer.Simple(2, function()
|
||
|
|
ix.chat.Send(nil, "broadcast", "Uwaga wszyscy pracujący rezydenci Miasta Dwudziestego Czwartego! Wasza zaplanowana sesja robocza jest gotowa do realizacji. Proszę udać się do odpowiedniego bloku produkcyjnego w celu przydzielenia zadania.", false, nil, {speakerName = "Informator Miasta"})
|
||
|
|
end)
|
||
|
|
else
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby ogłosić cykl pracy!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(5778.000000, 8457.000000, 514.000000)
|
||
|
|
},
|
||
|
|
["VIC_CheckpointAlarm"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!client:IsCombine() and !client:IsAdmin()) then
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby aktywować alarm w punkcie kontrolnym!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(5691.950195, 6677.560059, 617.989990)
|
||
|
|
},
|
||
|
|
["VIC_CheckpointGate"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!client:IsCombine() and !client:IsAdmin()) then
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby sterować bramą punktu kontrolnego!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(5507.040039, 6572.029785, 631.940002)
|
||
|
|
},
|
||
|
|
["WIL_CheckpointAlarm"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!client:IsCombine() and !client:IsAdmin()) then
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby aktywować alarm w punkcie kontrolnym!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(9379.519531, 7912.979980, 673.630005)
|
||
|
|
},
|
||
|
|
["WIL_CheckpointGate"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!client:IsCombine() and !client:IsAdmin()) then
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby sterować bramą punktu kontrolnego!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(9538.040039, 7801.029785, 686.940002)
|
||
|
|
},
|
||
|
|
["SEW_Forcefields"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!client:IsAdmin()) then
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby sterować polami siłowymi!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(8484.000000, 9752.000000, -1128.000000)
|
||
|
|
},
|
||
|
|
["ADM_Explosion1"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!client:IsAdmin()) then
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby skorzystać z tego przycisku!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(11280.000000, 4544.500000, 1061.000000)
|
||
|
|
},
|
||
|
|
["ADM_Explosion2"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!client:IsAdmin()) then
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby skorzystać z tego przycisku!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(11184.000000, 4544.500000, 1061.000000)
|
||
|
|
},
|
||
|
|
["ADM_Wind"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!client:IsAdmin()) then
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby skorzystać z tego przycisku!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(11104.000000, 4544.500000, 1060.000000)
|
||
|
|
},
|
||
|
|
["ADM_Thunder"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!client:IsAdmin()) then
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby skorzystać z tego przycisku!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(10952.500000, 4728.009766, 1060.000000)
|
||
|
|
},
|
||
|
|
["ADM_CloudsEnable"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!client:IsAdmin()) then
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby skorzystać z tego przycisku!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(10952.500000, 4800.009766, 1060.000000)
|
||
|
|
},
|
||
|
|
["ADM_CloudsDisable"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!client:IsAdmin()) then
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby skorzystać z tego przycisku!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(10952.500000, 4888.009766, 1060.000000)
|
||
|
|
},
|
||
|
|
["ADM_Alarm1"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!client:IsAdmin()) then
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby skorzystać z tego przycisku!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(11112.000000, 5055.500000, 1060.000000)
|
||
|
|
},
|
||
|
|
["ADM_Alarm2"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!client:IsAdmin()) then
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby skorzystać z tego przycisku!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(11208.000000, 5055.500000, 1060.000000)
|
||
|
|
},
|
||
|
|
["ADM_ManhackAlert"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!client:IsAdmin()) then
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby skorzystać z tego przycisku!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(11288.000000, 5055.500000, 1060.000000)
|
||
|
|
},
|
||
|
|
["ADM_ScannerAlert"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!client:IsAdmin()) then
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby skorzystać z tego przycisku!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(11463.500000, 4951.990234, 1060.000000)
|
||
|
|
},
|
||
|
|
["ADM_Battle1"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!client:IsAdmin()) then
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby skorzystać z tego przycisku!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(11463.500000, 4871.990234, 1060.000000)
|
||
|
|
},
|
||
|
|
["ADM_Battle2"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!client:IsAdmin()) then
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby skorzystać z tego przycisku!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(11463.500000, 4799.990234, 1060.000000)
|
||
|
|
},
|
||
|
|
["ADM_TrainHorn"] = {
|
||
|
|
OnPressed = function(self, client)
|
||
|
|
if (!client:IsAdmin()) then
|
||
|
|
return "Nie posiadasz wystarczających permisji, aby skorzystać z tego przycisku!"
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
position = Vector(11463.500000, 4719.990234, 1060.000000)
|
||
|
|
},
|
||
|
|
["BOE_Anthem"] = {
|
||
|
|
position = Vector(11878.599609, 3844.679932, 2111.100098)
|
||
|
|
},
|
||
|
|
["BOE_Intro"] = {
|
||
|
|
position = Vector(12253.500000, 4019.989990, 2109.350098)
|
||
|
|
},
|
||
|
|
["BOE_Outro"] = {
|
||
|
|
position = Vector(12350.000000, 4019.989990, 2109.350098)
|
||
|
|
},
|
||
|
|
["BOE_NewsIntro"] = {
|
||
|
|
position = Vector(12444.000000, 4019.989990, 2109.350098)
|
||
|
|
},
|
||
|
|
["BOE_CloseupCamera"] = {
|
||
|
|
position = Vector(12542.000000, 3981.500000, 2108.000000)
|
||
|
|
},
|
||
|
|
["BOE_SpeechIntro"] = {
|
||
|
|
position = Vector(12561.000000, 3919.000000, 2095.010010)
|
||
|
|
},
|
||
|
|
["BOE_Applause"] = {
|
||
|
|
position = Vector(12765.500000, 3783.010010, 2111.350098)
|
||
|
|
},
|
||
|
|
["BOE_Laugher"] = {
|
||
|
|
position = Vector(12685.500000, 3783.010010, 2111.350098)
|
||
|
|
},
|
||
|
|
["BOE_Set1Camera"] = {
|
||
|
|
position = Vector(12602.000000, 3782.330078, 2111.350098)
|
||
|
|
},
|
||
|
|
["BOE_CamerasOff"] = {
|
||
|
|
position = Vector(12329.000000, 3783.000000, 2111.350098)
|
||
|
|
},
|
||
|
|
["BOE_Intermission"] = {
|
||
|
|
position = Vector(12263.000000, 3783.000000, 2111.350098)
|
||
|
|
},
|
||
|
|
["BOE_TechnicalIssues"] = {
|
||
|
|
position = Vector(12191.000000, 3783.000000, 2111.350098)
|
||
|
|
},
|
||
|
|
["BOE_Set2Camera"] = {
|
||
|
|
position = Vector(12107.000000, 3782.330078, 2111.350098)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
local mapDoorIndex = {
|
||
|
|
["BrokenNexusDoor1"] = {
|
||
|
|
position = Vector(13319.000000, 9391.000000, 530.000000),
|
||
|
|
autoclose = 6
|
||
|
|
},
|
||
|
|
["BrokenNexusDoor2"] = {
|
||
|
|
position = Vector(13607.000000, 9391.000000, 530.000000),
|
||
|
|
autoclose = 6
|
||
|
|
},
|
||
|
|
["BrokenCheckpointDoor"] = {
|
||
|
|
position = Vector(8900.000000, 5992.000000, 338.000000),
|
||
|
|
autoclose = 6
|
||
|
|
},
|
||
|
|
["cmu_door"] = {
|
||
|
|
locked = true
|
||
|
|
},
|
||
|
|
["cmu_door1"] = {
|
||
|
|
locked = true
|
||
|
|
},
|
||
|
|
["rationshutter"] = {
|
||
|
|
locked = true
|
||
|
|
},
|
||
|
|
["d2_slumsdoor"] = {
|
||
|
|
locked = true
|
||
|
|
},
|
||
|
|
["depot_gate"] = {
|
||
|
|
locked = true
|
||
|
|
},
|
||
|
|
["depot_gate1"] = {
|
||
|
|
locked = true
|
||
|
|
},
|
||
|
|
["nexus_gate"] = {
|
||
|
|
locked = true
|
||
|
|
},
|
||
|
|
["nexus_gate1"] = {
|
||
|
|
locked = true
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function PLUGIN:InitPostEntity()
|
||
|
|
if (game.GetMap() == "rp_city24_v3") then
|
||
|
|
for _, button in ipairs(ents.FindByClass("func_button")) do
|
||
|
|
if (button:GetName() == "jw_off") then button:Remove() continue end -- Remove the button since we're handling JW toggle logic.
|
||
|
|
|
||
|
|
for buttonName, buttonData in pairs(mapButtonIndex) do
|
||
|
|
if (button:GetPos() == buttonData.position) then
|
||
|
|
button:SetName(buttonName)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
for _, door in ipairs(ents.FindByClass("func_door")) do
|
||
|
|
for doorName, doorData in pairs(mapDoorIndex) do
|
||
|
|
if (doorData.position and door:GetPos() == doorData.position) then
|
||
|
|
door:SetName(doorName)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function PLUGIN:PlayerUse(client, entity)
|
||
|
|
if (game.GetMap() == "rp_city24_v3") then
|
||
|
|
if (entity:GetClass() == "func_button") then
|
||
|
|
local curTime = CurTime()
|
||
|
|
|
||
|
|
if (!client.nextUse or client.nextUse <= curTime) then
|
||
|
|
local buttonData = mapButtonIndex[entity:GetName()]
|
||
|
|
|
||
|
|
client.nextUse = curTime + 1
|
||
|
|
|
||
|
|
if (buttonData) then
|
||
|
|
if (buttonData.OnPressed and type(buttonData.OnPressed) == "function") then
|
||
|
|
local noPress = buttonData:OnPressed(client)
|
||
|
|
|
||
|
|
if (!noPress) then
|
||
|
|
entity:Fire("Use")
|
||
|
|
elseif (type(noPress) == "string") then
|
||
|
|
client:Notify(noPress)
|
||
|
|
end
|
||
|
|
else
|
||
|
|
entity:Fire("Use")
|
||
|
|
end
|
||
|
|
|
||
|
|
ix.log.Add(client, "mapButtonPressed", entity:GetName())
|
||
|
|
else
|
||
|
|
entity:Fire("Use")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
return false
|
||
|
|
elseif (entity:GetClass() == "func_door" or entity:GetClass() == "func_door_rotating") then
|
||
|
|
local doorData = mapDoorIndex[entity:GetName()]
|
||
|
|
|
||
|
|
if (doorData) then
|
||
|
|
if (doorData.locked) then
|
||
|
|
return false
|
||
|
|
elseif (doorData.autoclose) then
|
||
|
|
timer.Simple(doorData.autoclose, function()
|
||
|
|
entity:Fire("Close")
|
||
|
|
end)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|