mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +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, "[HAUT-PARLEURS]", "Rappel à tous les résidents de Cité-8 : Une société *civile* est une société *sûre* et *prospère*. Faites *votre* part pour amener l'humanité vers les étoiles, en signalant ceux qui jugent inacceptable le chemin de l'humanité vers le succès.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
end)
|
|||
|
|
end,
|
|||
|
|
position = Vector(13125.000000, 3581.000000, 2160.000000)
|
|||
|
|
},
|
|||
|
|
["BOE_CitizenReminder2"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
timer.Simple(2, function()
|
|||
|
|
ix.chat.Send(nil, "[HAUT-PARLEURS]", "Rappel à tous les habitants de Cité-8 : La continuation de l'espèce humaine repose entre les mains de l'Union Universelle. C'est à nous de maintenir les liens qui nous unissent. Faites *votre* part pour amener notre espèce vers les étoiles.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
end)
|
|||
|
|
end,
|
|||
|
|
position = Vector(13125.000000, 3581.000000, 2144.000000)
|
|||
|
|
},
|
|||
|
|
["BOE_CitizenReminder3"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
timer.Simple(2, function()
|
|||
|
|
ix.chat.Send(nil, "[HAUT-PARLEURS]", "Rappel à tous les habitants de Cité-8 : *Pensée magique* est un outil d'extrémistes. Ne vous laissez pas soumettre aux mensonges et aux demandes irrémédiables des éléments marginaux.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
end)
|
|||
|
|
end,
|
|||
|
|
position = Vector(13125.000000, 3581.000000, 2128.000000)
|
|||
|
|
},
|
|||
|
|
["BOE_CitizenReminder4"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
timer.Simple(2, function()
|
|||
|
|
ix.chat.Send(nil, "[HAUT-PARLEURS]", "Rappel à tous les habitants de la Cité-8 : l'unification de la Terre n'est qu'une partie du processus qui transcendera notre espèce. Faites partie de ce processus. Vous et votre famille serez reconnaissants.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
end)
|
|||
|
|
end,
|
|||
|
|
position = Vector(13104.400391, 3536.360107, 2160.000000)
|
|||
|
|
},
|
|||
|
|
["BOE_CitizenReminder5"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
timer.Simple(2, function()
|
|||
|
|
ix.chat.Send(nil, "[HAUT-PARLEURS]", "Rappel à tous les résidents de Cité-8 : L'Union universelle est une autorité civilisée qui travaille dans le meilleur intérêt de notre société et de notre espèce, quels qu'ils soient. Ne laissez pas les éléments marginaux rompre le lien entre les deux.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
end)
|
|||
|
|
end,
|
|||
|
|
position = Vector(13104.400391, 3536.360107, 2144.000000)
|
|||
|
|
},
|
|||
|
|
["BOE_WorkerAnnouncement"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
timer.Simple(2, function()
|
|||
|
|
ix.chat.Send(nil, "[HAUT-PARLEURS]", "À l'attention de tous les résidents actifs de Cité-8 : votre session de travail prévue est prête à être terminée. Veuillez vous rendre à l'entrepôt respectif pour l'attribution des tâches.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
end)
|
|||
|
|
end,
|
|||
|
|
position = Vector(13104.400391, 3536.360107, 2128.000000)
|
|||
|
|
},
|
|||
|
|
["BOE_SuspendedRations"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
timer.Simple(2, function()
|
|||
|
|
ix.chat.Send(nil, "[HAUT-PARLEURS]", "Attention à tous les habitants de la Cité-8 : En raison des actions des éléments marginaux, la prise horaire de rationnement a été temporairement suspendue.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
end)
|
|||
|
|
end,
|
|||
|
|
position = Vector(12952.000000, 4119.000000, 2169.000000)
|
|||
|
|
},
|
|||
|
|
["BOE_RationAnnouncement"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
timer.Simple(2, function()
|
|||
|
|
ix.chat.Send(nil, "[HAUT-PARLEURS]", "À l'attention de tous les résidents de la Cité-8 : votre apport horaire de rations est maintenant disponible pour récupération. Veuillez vous rendre au terminal de distribution de rations dès que possible.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
end)
|
|||
|
|
end,
|
|||
|
|
position = Vector(12952.000000, 4119.000000, 2144.000000)
|
|||
|
|
},
|
|||
|
|
["CA_CitizenReminder1"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
timer.Simple(2, function()
|
|||
|
|
ix.chat.Send(nil, "[HAUT-PARLEURS]", "Rappel à tous les résidents de City-8 : Une société *civile* est une société *sûre* et *prospère*. Faites *votre* part pour amener l'humanité vers les étoiles, en signalant ceux qui jugent inacceptable le chemin de l'humanité vers le succès.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
end)
|
|||
|
|
end,
|
|||
|
|
position = Vector(14551.900391, 3651.979980, 2157.689941)
|
|||
|
|
},
|
|||
|
|
["CA_CitizenReminder2"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
timer.Simple(2, function()
|
|||
|
|
ix.chat.Send(nil, "[HAUT-PARLEURS]", "Rappel à tous les habitants de la Cité-8 : La continuation de l'espèce humaine repose entre les mains de l'Union Universelle. C'est à nous de maintenir les liens qui nous unissent. Faites *votre* part pour amener notre espèce vers les étoiles.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
end)
|
|||
|
|
end,
|
|||
|
|
position = Vector(14551.900391, 3651.979980, 2141.689941)
|
|||
|
|
},
|
|||
|
|
["CA_CitizenReminder3"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
timer.Simple(2, function()
|
|||
|
|
ix.chat.Send(nil, "[HAUT-PARLEURS]", "Rappel à tous les habitants de Cité-8 : *Magical-Thinking* est un outil d'extrémistes. Ne vous laissez pas soumettre aux mensonges et aux demandes irrémédiables des éléments marginaux", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
end)
|
|||
|
|
end,
|
|||
|
|
position = Vector(14551.900391, 3651.979980, 2125.689941)
|
|||
|
|
},
|
|||
|
|
["CA_CitizenReminder4"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
timer.Simple(2, function()
|
|||
|
|
ix.chat.Send(nil, "[HAUT-PARLEURS]", "Rappel à tous les habitants de la Cité-8 : l'unification de la Terre n'est qu'une partie du processus qui transcendera notre espèce. Faites partie de ce processus. Vous et votre famille serez reconnaissants.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
end)
|
|||
|
|
end,
|
|||
|
|
position = Vector(14515.900391, 3623.800049, 2155.689941)
|
|||
|
|
},
|
|||
|
|
["CA_CitizenReminder5"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
timer.Simple(2, function()
|
|||
|
|
ix.chat.Send(nil, "[HAUT-PARLEURS]", "Rappel à tous les résidents de Cité-8 : L'Union universelle est une autorité civilisée qui travaille dans le meilleur intérêt de notre société et de notre espèce, quels qu'ils soient. Ne laissez pas les éléments marginaux rompre le lien entre les deux.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
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, "[HAUT-PARLEURS]", "À l'attention de tous les résidents actifs de Cité-8 : votre session de travail prévue est prête à être terminée. Veuillez vous rendre à l'entrepôt respectif pour l'attribution des tâches.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
end)
|
|||
|
|
else
|
|||
|
|
return "Vous n'êtes pas autorisé à annoncer une session de travail !"
|
|||
|
|
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", "Attention, s'il vous plaît. Alerte, Unités terrestres : Opération invasive d'origine anti-citoyenne. Code de réponse : ENGAGE ; RÉPRIMER; RENSEIGNER.")
|
|||
|
|
|
|||
|
|
timer.Simple(16, function()
|
|||
|
|
ix.chat.Send(Entity(0), "worlddispatch", "Unités d'alerte, d'intervention. Code de mise à jour : FLUSH ; ESCORTE; CONTINUER.")
|
|||
|
|
|
|||
|
|
timer.Simple(13, function()
|
|||
|
|
ix.chat.Send(nil, "[HAUT-PARLEURS]", "Attention, Cité-13 : Renonciation au jugement est maintenant en vigueur immédiatement. Tous les habitants sont désormais dans l'obligation de regagner leur domicile. Des directives ont été envoyées aux équipes de protection locales. Coopérez et votre sécurité est assurée.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
|
|||
|
|
timer.Simple(20.5, function()
|
|||
|
|
ix.chat.Send(Entity(0), "worlddispatch", "Alerte de sécurité : réadministration en cours. Code d'ajustement de l'allocation d'actifs : FLINT ; INSPECTER; EXTIRPER. Priorité : IMMÉDIATE.")
|
|||
|
|
|
|||
|
|
timer.Simple(17, function()
|
|||
|
|
ix.chat.Send(Entity(0), "worlddispatch", "Alerte de sécurité : Insurrection civile critique. Déployez des équipes de techniciens dans les blocs 49, 64, 77. Maintenez la priorité.")
|
|||
|
|
|
|||
|
|
timer.Simple(15.5, function()
|
|||
|
|
ix.chat.Send(Entity(0), "worlddispatch", "Alerte de sécurité : rappel, équipes au sol : l'échec de la mission entraînera une relocalisation permanente. Code de réponse : INFRACTION ; MANŒUVRE; INOCULER.")
|
|||
|
|
|
|||
|
|
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("Vous n'êtes pas autorisé à initier une dispense de jugement!")
|
|||
|
|
end
|
|||
|
|
else
|
|||
|
|
client:Notify("Veuillez patienter avant d'activer la renonciation au jugement !")
|
|||
|
|
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", "Alerte, Unités terrestres : Opération invasive d'origine anti-citoyenne. Code de réponse : ENGAGE ; RÉPRIMER; RENSEIGNER.")
|
|||
|
|
|
|||
|
|
timer.Simple(12, function()
|
|||
|
|
ix.chat.Send(nil, "[HAUT-PARLEURS]", "Attention, Cité-13 : Une infection sociale a été détectée. Des pratiques pour lutter contre les procédures de troubles sont en train d'être promulguées. N'oubliez pas - la coopération avec la protection civile est la * clé * de la sécurité.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
|
|||
|
|
timer.Simple(16.5, function()
|
|||
|
|
ix.chat.Send(Entity(0), "worlddispatch", "Alerte, Unités terrestres : Opération invasive d'origine anti-citoyenne. Code de réponse : ENGAGE ; RÉPRIMER; RENSEIGNER.")
|
|||
|
|
end)
|
|||
|
|
end)
|
|||
|
|
end)
|
|||
|
|
else
|
|||
|
|
return "Vous n'êtes pas autorisé à appeler une infection sociale !"
|
|||
|
|
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, "[HAUT-PARLEURS]", "À l'attention de tous les résidents de la Cité-8 : votre apport horaire de rations est maintenant disponible pour récupération. Veuillez vous rendre au terminal de distribution de rations dès que possible.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
end)
|
|||
|
|
else
|
|||
|
|
return "Vous n'êtes pas autorisé à activer la distribution de rations !"
|
|||
|
|
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, "[HAUT-PARLEURS]", "Attention à tous les habitants de la Cité-8 : En raison des actions des éléments marginaux, la prise horaire de rationnement a été temporairement suspendue.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
end)
|
|||
|
|
else
|
|||
|
|
return "Vous n'êtes pas autorisé à désactiver la distribution de rations !"
|
|||
|
|
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, "[HAUT-PARLEURS]", "Attention à tous les habitants de la Cité-8 : En raison des actions des éléments marginaux, la prise horaire de rationnement a été temporairement suspendue.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
end)
|
|||
|
|
else
|
|||
|
|
return "Vous n'êtes pas autorisé à désactiver la distribution de rations !"
|
|||
|
|
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, "[HAUT-PARLEURS]", "À l'attention de tous les résidents de la Cité-8 : votre apport horaire de rations est maintenant disponible pour récupération. Veuillez vous rendre au terminal de distribution de rations dès que possible.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
end)
|
|||
|
|
else
|
|||
|
|
return "Vous n'êtes pas autorisé à activer la distribution de rations !"
|
|||
|
|
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, "[HAUT-PARLEURS]", "À l'attention de tous les résidents actifs de Cité-8 : votre session de travail prévue est prête à être terminée. Veuillez vous rendre à l'entrepôt respectif pour l'attribution des tâches.", false, nil, {speakerName = "City Announcer"})
|
|||
|
|
end)
|
|||
|
|
else
|
|||
|
|
return "Vous n'êtes pas autorisé à annoncer une session de travail !"
|
|||
|
|
end
|
|||
|
|
end,
|
|||
|
|
position = Vector(5778.000000, 8457.000000, 514.000000)
|
|||
|
|
},
|
|||
|
|
["VIC_CheckpointAlarm"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
if (!client:IsCombine() and !client:IsAdmin()) then
|
|||
|
|
return "Vous n'êtes pas autorisé à activer l'alarme de point de contrôle !"
|
|||
|
|
end
|
|||
|
|
end,
|
|||
|
|
position = Vector(5691.950195, 6677.560059, 617.989990)
|
|||
|
|
},
|
|||
|
|
["VIC_CheckpointGate"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
if (!client:IsCombine() and !client:IsAdmin()) then
|
|||
|
|
return "Vous n'êtes pas autorisé à contrôler la porte du point de contrôle !"
|
|||
|
|
end
|
|||
|
|
end,
|
|||
|
|
position = Vector(5507.040039, 6572.029785, 631.940002)
|
|||
|
|
},
|
|||
|
|
["WIL_CheckpointAlarm"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
if (!client:IsCombine() and !client:IsAdmin()) then
|
|||
|
|
return "Vous n'êtes pas autorisé à activer l'alarme de point de contrôle !"
|
|||
|
|
end
|
|||
|
|
end,
|
|||
|
|
position = Vector(9379.519531, 7912.979980, 673.630005)
|
|||
|
|
},
|
|||
|
|
["WIL_CheckpointGate"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
if (!client:IsCombine() and !client:IsAdmin()) then
|
|||
|
|
return "Vous n'êtes pas autorisé à contrôler la porte du point de contrôle !"
|
|||
|
|
end
|
|||
|
|
end,
|
|||
|
|
position = Vector(9538.040039, 7801.029785, 686.940002)
|
|||
|
|
},
|
|||
|
|
["SEW_Forcefields"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
if (!client:IsAdmin()) then
|
|||
|
|
return "Vous n'êtes pas autorisé à contrôler les champs de force !"
|
|||
|
|
end
|
|||
|
|
end,
|
|||
|
|
position = Vector(8484.000000, 9752.000000, -1128.000000)
|
|||
|
|
},
|
|||
|
|
["ADM_Explosion1"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
if (!client:IsAdmin()) then
|
|||
|
|
return "Vous n'êtes pas autorisé à utiliser ce bouton !"
|
|||
|
|
end
|
|||
|
|
end,
|
|||
|
|
position = Vector(11280.000000, 4544.500000, 1061.000000)
|
|||
|
|
},
|
|||
|
|
["ADM_Explosion2"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
if (!client:IsAdmin()) then
|
|||
|
|
return "Vous n'êtes pas autorisé à utiliser ce bouton !"
|
|||
|
|
end
|
|||
|
|
end,
|
|||
|
|
position = Vector(11184.000000, 4544.500000, 1061.000000)
|
|||
|
|
},
|
|||
|
|
["ADM_Wind"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
if (!client:IsAdmin()) then
|
|||
|
|
return "Vous n'êtes pas autorisé à utiliser ce bouton !"
|
|||
|
|
end
|
|||
|
|
end,
|
|||
|
|
position = Vector(11104.000000, 4544.500000, 1060.000000)
|
|||
|
|
},
|
|||
|
|
["ADM_Thunder"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
if (!client:IsAdmin()) then
|
|||
|
|
return "Vous n'êtes pas autorisé à utiliser ce bouton !"
|
|||
|
|
end
|
|||
|
|
end,
|
|||
|
|
position = Vector(10952.500000, 4728.009766, 1060.000000)
|
|||
|
|
},
|
|||
|
|
["ADM_CloudsEnable"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
if (!client:IsAdmin()) then
|
|||
|
|
return "Vous n'êtes pas autorisé à utiliser ce bouton !"
|
|||
|
|
end
|
|||
|
|
end,
|
|||
|
|
position = Vector(10952.500000, 4800.009766, 1060.000000)
|
|||
|
|
},
|
|||
|
|
["ADM_CloudsDisable"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
if (!client:IsAdmin()) then
|
|||
|
|
return "Vous n'êtes pas autorisé à utiliser ce bouton !"
|
|||
|
|
end
|
|||
|
|
end,
|
|||
|
|
position = Vector(10952.500000, 4888.009766, 1060.000000)
|
|||
|
|
},
|
|||
|
|
["ADM_Alarm1"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
if (!client:IsAdmin()) then
|
|||
|
|
return "Vous n'êtes pas autorisé à utiliser ce bouton !"
|
|||
|
|
end
|
|||
|
|
end,
|
|||
|
|
position = Vector(11112.000000, 5055.500000, 1060.000000)
|
|||
|
|
},
|
|||
|
|
["ADM_Alarm2"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
if (!client:IsAdmin()) then
|
|||
|
|
return "Vous n'êtes pas autorisé à utiliser ce bouton !"
|
|||
|
|
end
|
|||
|
|
end,
|
|||
|
|
position = Vector(11208.000000, 5055.500000, 1060.000000)
|
|||
|
|
},
|
|||
|
|
["ADM_ManhackAlert"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
if (!client:IsAdmin()) then
|
|||
|
|
return "Vous n'êtes pas autorisé à utiliser ce bouton !"
|
|||
|
|
end
|
|||
|
|
end,
|
|||
|
|
position = Vector(11288.000000, 5055.500000, 1060.000000)
|
|||
|
|
},
|
|||
|
|
["ADM_ScannerAlert"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
if (!client:IsAdmin()) then
|
|||
|
|
return "Vous n'êtes pas autorisé à utiliser ce bouton !"
|
|||
|
|
end
|
|||
|
|
end,
|
|||
|
|
position = Vector(11463.500000, 4951.990234, 1060.000000)
|
|||
|
|
},
|
|||
|
|
["ADM_Battle1"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
if (!client:IsAdmin()) then
|
|||
|
|
return "Vous n'êtes pas autorisé à utiliser ce bouton !"
|
|||
|
|
end
|
|||
|
|
end,
|
|||
|
|
position = Vector(11463.500000, 4871.990234, 1060.000000)
|
|||
|
|
},
|
|||
|
|
["ADM_Battle2"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
if (!client:IsAdmin()) then
|
|||
|
|
return "Vous n'êtes pas autorisé à utiliser ce bouton !"
|
|||
|
|
end
|
|||
|
|
end,
|
|||
|
|
position = Vector(11463.500000, 4799.990234, 1060.000000)
|
|||
|
|
},
|
|||
|
|
["ADM_TrainHorn"] = {
|
|||
|
|
OnPressed = function(self, client)
|
|||
|
|
if (!client:IsAdmin()) then
|
|||
|
|
return "Vous n'êtes pas autorisé à utiliser ce bouton !"
|
|||
|
|
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
|