int mesg_local_perms(dbref player, dbref perms, dbref obj) { if (OWNER(perms) == OWNER(getloc(obj))) return 1; if (isneighbor(perms, obj)) return 1; if (isneighbor(player, obj)) return 1; if (Mageperms(perms)) return 1; if (mesg_read_perms(player, perms, obj)) return 1; return 0; }
dbref mesg_dbref_mage(int descr, dbref player, dbref what, dbref perms, char *buf) { dbref obj = mesg_dbref_raw(descr, player, what, perms, buf); if (obj == UNKNOWN) return obj; if (!Mageperms(perms) && OWNER(perms) != OWNER(obj)) { obj = PERMDENIED; } return obj; }
const char * mfn_delay(MFUNARGS) { char *argchr, *cmdchr; int i = atoi(argv[0]); if (i < 1) i = 1; #ifdef WIZZED_DELAY if (!Mageperms(perms)) ABORT_MPI("delay",NOPERM_MESG); #endif cmdchr = get_mvar("cmd"); argchr = get_mvar("arg"); i = add_mpi_event(i, player, getloc(player), perms, argv[1], cmdchr, argchr, (mesgtyp & MPI_ISLISTENER), (!(mesgtyp & MPI_ISPRIVATE))); sprintf(buf, "%d", i); return buf; }