diff --git a/code/game/objects/devices/PDA/PDA.dm b/code/game/objects/devices/PDA/PDA.dm
index a5741d8e00f..901fbecbcf5 100755
--- a/code/game/objects/devices/PDA/PDA.dm
+++ b/code/game/objects/devices/PDA/PDA.dm
@@ -510,14 +510,14 @@
last_text = world.time
-// var/AnsweringMS = 0
+ var/AnsweringMS = 0
for (var/obj/machinery/message_server/MS in world)
MS.send_pda_message("[P.owner]","[owner]","[t]")
-// if(MS.active)
-// AnsweringMS++
+ if(MS.active)
+ AnsweringMS++
-// if(!AnsweringMS)
-// return
+ if(!AnsweringMS)
+ return
tnote += "→ To [P.owner]:
[t]
"
P.tnote += "← From [owner]:
[t]
"
@@ -544,7 +544,7 @@
// pAI Message
else
-/* var/AnsweringMS = 0
+ var/AnsweringMS = 0
for (var/obj/machinery/message_server/MS in world)
MS.send_pda_message("[P]","[src]","[t]")
if(MS.active)
@@ -552,7 +552,7 @@
if(!AnsweringMS)
return
-*/
+
tnote += "→ To [P]:
[t]
"
P.tnote += "← From [src]:
[t]
"
diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm
index f5d96760133..30338c21fc4 100644
--- a/code/modules/mob/living/silicon/pai/software.dm
+++ b/code/modules/mob/living/silicon/pai/software.dm
@@ -170,8 +170,14 @@
if(isnull(P)||P.toff)
return
+ var/AnsweringMS = 0
for (var/obj/machinery/message_server/MS in world)
MS.send_pda_message("[P.owner]","[src]","[t]")
+ if(MS.active)
+ AnsweringMS++
+
+ if(!AnsweringMS)
+ return
tnote += "→ To [P.owner]:
[t]
"
P.tnote += "← From [src]:
[t]
"
@@ -195,12 +201,18 @@
else
var/mob/living/silicon/pai/P = target
- tnote += "→ To [P]:
[t]
"
- P.tnote += "← From [src]:
[t]
"
-
-
+ var/AnsweringMS = 0
for (var/obj/machinery/message_server/MS in world)
MS.send_pda_message("[P]","[src]","[t]")
+ if(MS.active)
+ AnsweringMS++
+
+ if(!AnsweringMS)
+ return
+
+
+ tnote += "→ To [P]:
[t]
"
+ P.tnote += "← From [src]:
[t]
"
if (prob(15)) //Give the AI a chance of intercepting the message
var/who = src
diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm
index 721c5f00f70..d4c5de435f5 100644
--- a/code/modules/research/message_server.dm
+++ b/code/modules/research/message_server.dm
@@ -54,6 +54,16 @@
var/list/datum/data_pda_msg/pda_msgs = list()
var/list/datum/data_rc_msg/rc_msgs = list()
+ var/active = 1
+
+/obj/machinery/message_server/process()
+ if((stat & (BROKEN|NOPOWER)) && active)
+ active = 0
+ return
+
+ update_icon()
+ return
+
/obj/machinery/message_server/proc/send_pda_message(var/recipient = "",var/sender = "",var/message = "")
pda_msgs += new/datum/data_pda_msg(recipient,sender,message)
@@ -61,8 +71,22 @@
rc_msgs += new/datum/data_rc_msg(recipient,sender,message,stamp,id_auth)
/obj/machinery/message_server/attack_hand(user as mob)
- user << "\blue There seem to be some parts missing from this server. They should arrive on the station in a few days, give or take a few CentCom delays."
+// user << "\blue There seem to be some parts missing from this server. They should arrive on the station in a few days, give or take a few CentCom delays."
+ user << "You toggle PDA message passing from [active ? "On" : "Off"] to [active ? "Off" : "On"]"
+ active = !active
+ update_icon()
+ return
+
+/obj/machinery/message_server/update_icon()
+ if((stat & (BROKEN|NOPOWER)))
+ icon_state = "server-nopower"
+ else if (!active)
+ icon_state = "server-off"
+ else
+ icon_state = "server-on"
+
+ return
/datum/feedback_variable