示例#1
0
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;
}
示例#2
0
dbref
mesg_dbref_read(dbref player, dbref what, dbref perms, char *buf)
{
    dbref obj = mesg_dbref_raw(player, what, perms, buf);

    if (obj == UNKNOWN) return obj;
    if (!mesg_read_perms(player, perms, obj)) {
        obj = PERMDENIED;
    }
    return obj;
}
示例#3
0
dbref
mesg_dbref(int descr, dbref player, dbref what, dbref perms, char *buf, int mesgtyp)
{
	dbref obj = mesg_dbref_raw(descr, player, what, perms, buf);

	if (obj == UNKNOWN)
		return obj;
	if (!mesg_read_perms(player, perms, obj, mesgtyp)) {
		obj = PERMDENIED;
	}
	return obj;
}
示例#4
0
int
mesg_local_perms(dbref player, dbref perms, dbref obj, int mesgtyp)
{
	if (getloc(obj) != NOTHING && OWNER(perms) == OWNER(getloc(obj)))
		return 1;
	if (isneighbor(perms, obj))
		return 1;
	if (isneighbor(player, obj))
		return 1;
	if (mesg_read_perms(player, perms, obj, mesgtyp))
		return 1;
	return 0;
}
示例#5
0
int
mesg_proximity_perms(dbref player, dbref perms, dbref obj)
{

    if (obj == player) return 1;
    if (isneighbor(player, obj)) return 1;
    if (isneighbor(perms, obj)) return 1;
    if ((getloc(obj) != NOTHING) && 
         may_read_nowizperm(OWNER(perms), getloc(obj)))
        return 1;
    if (mesg_read_perms(player, perms, obj)) return 1;
    return 0;
}