I have changed my color to be only on or off but ran into a few problems. When I type 'color on/off' it works fine, but if I type anything other that on or off it will crash within search_block. Here is the code. static const char *ctypes[] = {"off", "on", "/n"}; ACMD(do_color) { int tp; char arg2[MAX_INPUT_LENGTH]; if (IS_NPC(ch)) return; half_chop(argument, arg, arg2); //one_argument(argument, arg); if (!*arg) { show_color(ch); return; } if (((tp = search_block(arg, ctypes, FALSE)) == -1)) { send_to_char("Usage: color { On, Off }\r\n", ch); return; } if (!tp) REMOVE_BIT(PRF_FLAGS(ch), PRF_COLOR_ON); else { REMOVE_BIT(PRF_FLAGS(ch), PRF_COLOR_ON); SET_BIT(PRF_FLAGS(ch), PRF_COLOR_ON); } sprintf(buf, "Your /cRc/cGo/cYl/cBo/cPr/c0 is now %s.\r\n", ctypes[tp]); send_to_char(buf, ch); } int search_block(char *arg, const char **list, int exact) { register int i, l; /* Make into lower case, and get length of string */ for (l = 0; *(arg + l); l++) *(arg + l) = LOWER(*(arg + l)); if (exact) { for (i = 0; **(list + i) != '\n'; i++) if (!strcmp(arg, *(list + i))) return (i); } else { if (!l) l = 1; /* Avoid "" to match the first available * string */ for (i = 0; **(list + i) != '\n'; i++) <------Error point to this line if (!strncmp(arg, *(list + i), l)) return (i); } return -1; } One more questio: Why are the fill words taken out in one_argument, and what would happen if they werent removed? Thanks for the help... +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST