I just hate when you add something new to your mud, and all of these new "features" pop up... ;) It seems that after adding in the 'aedit' patch (i did it manually, i dont trust the patch program) that any of my other OLC-related things to not work, ie zedit, medit, et cetera. I am almost 100% positive that the "feature" happens in the do_olc function. After running this function step-by-step, I cannot even begin to guess at what may be wrong, except possibly a missing or misplace }, but I can't seem to find it. And this is trying almost 18 or so hours straight. ;) Well any help is appreciated, and thanks in advance! (And yes, I've RTFM, and the archives ;)) -Matthias Elsdragon (rest of code to be continued) //BEGIN ACMD(do_olc) { int number = -1, save = 0, real_num; struct descriptor_data *d; /* * No screwing around as a mobile. */ if (IS_NPC(ch)) return; if (subcmd == SCMD_OLC_SAVEINFO) { olc_saveinfo(ch); return; } /* * Parse any arguments. */ two_arguments(argument, buf1, buf2); if (!*buf1) /* No argument given. */ { switch (subcmd) { case SCMD_OLC_ZEDIT: case SCMD_OLC_REDIT: number = world[IN_ROOM(ch)].number; break; case SCMD_OLC_OEDIT: case SCMD_OLC_MEDIT: case SCMD_OLC_SEDIT: case SCMD_OLC_TRIGEDIT: sprintf(buf, "Specify a %s VNUM to edit.\r\n", olc_scmd_info[subcmd].text); send_to_char(buf, ch); return; /* -mm 42500 */ case SCMD_OASIS_AEDIT: send_to_char("Specify an action to edit.\r\n", ch); return; } } else if (!isdigit(*buf1)) { if (strn_cmp("save", buf1, 4) == 0) { if (!*buf2) { if (GET_OLC_ZONE(ch)) { save = 1; number = (GET_OLC_ZONE(ch) * 100); } else { /* -mm 42500 */ if (subcmd != SCMD_OASIS_AEDIT) { if ((number = (*buf2 ? atoi(buf2) : (GET_OLC_ZONE(ch) ? GET_OLC_ZONE(ch) : -1)) * 100) < 0 ) { send_to_char("Save which zone?\r\n", ch); return; } } else { save = 1; number = atoi(buf2) * 100; } } } else if (subcmd == SCMD_OASIS_AEDIT) number = 0; else if (subcmd == SCMD_OLC_ZEDIT && GET_LEVEL(ch) >= LVL_IMPL) { if ((strn_cmp("new", buf1, 3) == 0) && *buf2) zedit_new_zone(ch, atoi(buf2)); else send_to_char("Specify a new zone number.\r\n", ch); return; } else { send_to_char("Yikes! Stop that, someone will get hurt!\r\n", ch); return; } } /* * If a numeric argument was given, get it. */ if (number == -1) number = atoi(buf1); /* * Check that whatever it is isn't already being edited. */ for (d = descriptor_list; d; d = d->next) if (d->connected == olc_scmd_info[subcmd].con_type) if (d->olc && OLC_NUM(d) == number) { /* -mm 42500 */ if (subcmd == SCMD_OASIS_AEDIT) sprintf(buf, "Actions are already being editted by %s.\r\n", (CAN_SEE(ch, d->character) ? GET_NAME(d->character) : "someone")); else sprintf(buf, "That %s is currently being edited by %s.\r\n", olc_scmd_info[subcmd].text, PERS(d->character, ch)); send_to_char(buf, ch); return; } d = ch->desc; /* * Give descriptor an OLC struct. */ CREATE(d->olc, struct olc_data, 1); /* * Find the zone. */ if (subcmd != SCMD_OASIS_AEDIT) { if ((OLC_ZNUM(d) = real_zone(number)) == -1) { send_to_char("Sorry, there is no zone for that number!\r\n", ch); free(d->olc); d->olc = NULL; return; } } else if ((!(GET_LEVEL(ch) < LVL_IMPL)) && (!ch->player_specials->saved.olc_zone == AEDIT_PERMISSION)) { send_to_char("You do not have permission to edit actions.\r\n", ch); free(d->olc); return; } /* * Everyone but IMPLs can only edit zones they have been assigned. */ if ((GET_LEVEL(ch) < LVL_IMPL) && (zone_table[OLC_ZNUM(d)].number != GET_OLC_ZONE(ch))) { send_to_char("You do not have permission to edit this zone.\r\n", ch); free(d->olc); return; } +------------------------------------------------------------+ | 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 : 04/10/01 PDT