[NEWBIE] OLC/OLC2

From: Nick Stout (cyberman_64@hotmail.com)
Date: 02/20/99


Hello.
I added a new olc zone # for builders so they could have access to 2
zones at once. I defined these accordingly, and everything works, except
for one minor mistake, and i'm not exactly sure why.
In olc.c (for OasisOLC), the permission checks seem to be scrambled.

if ((GET_LEVEL(ch) < LVL_COIMPL) && (zone_table[OLC_ZNUM(d)].number !=
GET_OLC_ZONE(ch)) &&
((GET_LEVEL(ch) < LVL_COIMPL) && (zone_table[OLC_ZNUM(d)].number !=
GET_OLCS_ZONE(ch))))
{
send_to_char("You do not have permission to edit this zone.\r\n",ch);
free(d->olc);
return;
} else if ((!(GET_LEVEL(ch) < LVL_IMPL)) &&
(!ch->player_specials->saved.olc_zone == AEDIT_PERMISSION) &&
(!ch->player_specials->saved.olcs_zone == AEDIT_PERMISSION)) {
send_to_char("You do not have permission to edit actions.\r\n", ch);
free(d->olc);
return;
} else if ((!(GET_LEVEL(ch) < LVL_BUILDER)) &&
(!ch->player_specials->saved.olc_zone == HEDIT_PERMISSION) &&
(!ch->player_specials->saved.olcs_zone == HEDIT_PERMISSION)) {
send_to_char("You do not have permission to edit helpfiles.\r\n", ch);
free(d->olc);
return;
}

Yes.. This is mailer code and it's really sloppy... But here's my
problem.
I set the player's olc OR olcs to my AEDIT_PERMISSION (999) and it
doesn't work, but if i set olc to 999 and olcs to 0 (or vice versa), it
does work properly, and lets the person edit both Socials and Zone 0.
Same with HEDIT_PERMISSION (666). Same way.
Does anyone see the problem? I know it's boolean, but i couldn't seem to
sort out the logic for it.
-CyberMan

______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html  |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/15/00 PST