*** src/speech.c.old Thu Apr 10 14:06:54 2003 --- src/speech.c Fri Apr 11 12:04:06 2003 *************** *** 903,914 **** --- 903,922 ---- } *tp = '\0'; *tp2 = '\0'; + + if (!(Connected(target) && Dark(target) && !Hasprivs(player))) (void) atr_add(player, "LASTPAGED", tbuf, GOD, NOTHING); /* Reset tbuf to use later */ tp = tbuf; /* Figure out the one success message, and send it */ + if (Connected(target) && Dark(target) && !Hasprivs(player)){ + page_return(player, target, "Away", "AWAY", + tprintf(T("%s is not connected."), Name(target))); + notify_format(player, T("Unable to page: %s"), Name(target)); + } + else { if (key == 1) notify_format(player, T("Long distance to %s%s: %s%s%s"), ((gcount > 1) && (!multipage)) ? "(blind) " : "", tbuf2, *************** *** 917,926 **** notify_format(player, T("You paged %s%s with '%s'."), ((gcount > 1) && (!multipage)) ? "(blind) " : "", tbuf2, message); ! /* Figure out the 'name' of the player */ if (PAGE_ALIASES && (a = atr_get_noparent(player, "ALIAS"))) current = tprintf("%s (%s)", Name(player), uncompress(a->value)); else current = (char *) Name(player); --- 925,936 ---- notify_format(player, T("You paged %s%s with '%s'."), ((gcount > 1) && (!multipage)) ? "(blind) " : "", tbuf2, message); ! } /* Figure out the 'name' of the player */ if (PAGE_ALIASES && (a = atr_get_noparent(player, "ALIAS"))) current = tprintf("%s (%s)", Name(player), uncompress(a->value)); + else if (Dark(player)) + current = tprintf("%s (Dark)", Name(player)); else current = (char *) Name(player); *************** *** 957,963 **** notify_format(good[i], "[#%d] %s", player, tbuf); else notify(good[i], tbuf); ! page_return(player, good[i], "Idle", "IDLE", NULL); } --- 967,973 ---- notify_format(good[i], "[#%d] %s", player, tbuf); else notify(good[i], tbuf); ! if (!(Connected(target) && Dark(target) && !Hasprivs(player))) page_return(player, good[i], "Idle", "IDLE", NULL); } *** options.h.old Fri Apr 18 10:07:21 2003 --- options.h Fri Apr 18 10:10:12 2003 *************** *** 178,183 **** --- 178,194 ---- */ #define QUOTA /* */ + /* If defined, Wizards get one step closer to becoming absolute dark. + * When paged by mortals, if you (a Wizard) are Dark, your AWAY message + * is displayed as well as the other 'disconnected' messages. This way + * it appears to the mortal that you are offline. However, the message + * that the player pages you with is still seen by you. This simulates + * disconnection and prevents such probes that test whether you are online + * through paging. If defined, this overrules the page_alias option in + * mush.cnf. + */ + #define REAL_DARK + /*------------------------------ DB ----------------------------------*/ /* With EMPTY_ATTRS, empty (no value) attributes are retained on