I'm haveing the strangest problem and i was wondering if perhaps any of you guys could/would help. I implemented a fillet and a cook skill on my mud but evry time i use the cook skill it crashes the mud. I think its a memory issue because when i run the mud after the crash it crashes before i even connect. The error GDB gives is: Program received signal SIGPIPE, Broken pipe. 0x4001aab8 in spell_info () If i'm not mistaken it should be pretty much drop-in code except for the skill assighnments (which i know i have right, ive checked over and over). Any help is greatly appreciated. The offending code for the skills is: ACMD(do_fillet) { struct obj_data *obj, *fillet; char name[50]; one_argument(argument, arg); if (!*arg) send_to_char("fillet what?\r\n", ch); else if (!(obj = get_obj_in_list_vis(ch, arg, world[ch->in_room].contents))) { sprintf(buf, "I can't seem to find %s %s.\r\n", AN(arg), arg); send_to_char(buf, ch); } else if (GET_OBJ_TYPE(obj) != ITEM_CONTAINER || GET_OBJ_VAL(obj, 3) != 1) { send_to_char("You can't fillet that.\r\n", ch); } else { if (number(1, 101) > GET_SKILL(ch, SKILL_FILLET)) { send_to_char("You can't seem to find the right place to cut.", ch); } else { fillet = create_obj(); fillet->item_number = NOTHING; fillet->in_room = NOWHERE; fillet->name = str_dup("fillet"); strcpy(name, "a fillet "); strcat(name, strstr(obj->description, "of")); fillet->description = str_dup(name); strcpy(name, "a fillet "); strcat(name, strstr(obj->short_description, "of")); fillet->short_description = str_dup(name); GET_OBJ_TYPE(fillet) = ITEM_FOOD; GET_OBJ_WEAR(fillet) = ITEM_WEAR_TAKE; GET_OBJ_EXTRA(fillet) = 0; GET_OBJ_VAL(fillet, 0) = 8; GET_OBJ_VAL(fillet, 3) = 1; GET_OBJ_WEIGHT(fillet) = 1; GET_OBJ_TIMER(fillet) = 0; GET_OBJ_TIMER(obj) -= 5; obj_to_char(fillet, ch); act("$n fillets $p.", FALSE, ch, obj, 0, TO_ROOM); act("You fillet $p.", FALSE, ch, obj, 0, TO_CHAR); } } } ACMD(do_cook) { struct obj_data *obj; one_argument(argument, arg); if (!*arg) send_to_char("Cook what?\r\n", ch); else if (!(obj = get_obj_in_list_vis(ch, arg, ch->carrying))) { sprintf(buf, "I can't seem to find %s %s.\r\n", AN(arg), arg); send_to_char(buf, ch); } else if (GET_OBJ_TYPE(obj) != ITEM_FOOD) { send_to_char("You can't cook that.\r\n", ch); } else { act("$n cooks $p.", FALSE, ch, obj, 0, TO_ROOM); act("You cook $p.", FALSE, ch, obj, 0, TO_CHAR); if (GET_OBJ_VAL(obj, 2) == 0 && number(1, 101) <= GET_SKILL(ch, SKILL_COOK)) { GET_OBJ_VAL(obj, 3) = 0; GET_OBJ_VAL(obj, 2) = 1; strcat(obj->short_description, " (fully cooked)"); } } } +-----------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://cspo.queensu.ca/~fletcher/Circle/list_faq.html | +-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/18/00 PST