On Fri, 27 Nov 1998, The Realms of Tremaria wrote: >Also, Mr. Greer metioned that log() entries are my best friend. I agree, >for that is how I resolved where the problem was occuring and what the >problem is. log() entries do not tell me why things happen as they do, >and that is what I am really looking for so I can correct these errors >before they happen. Ok, I'll be a bit more explicit: void say_spell(struct char_data * ch, int spellnum, struct char_data * tch, struct obj_data * tobj) { char lbuf[256]; struct char_data *i; int j, ofs = 0; *buf = '\0'; strcpy(lbuf, spells[spellnum]); log("Starting the loop. (%d)", time()); while (*(lbuf + ofs)) { log("String left='%s' ofs=%d", lbuf + ofs, ofs); for (j = 0; *(syls[j].org); j++) { if (!strncmp(syls[j].org, lbuf + ofs, strlen(syls[j].org))) { strcat(buf, syls[j].news); ofs += strlen(syls[j].org); } } } log("It's not the loop, honest. (%d)", time()); if (tch != NULL && tch->in_room == ch->in_room) { [...etc...] Then whatever the first character of 'string left' is repeatedly is your problem. So you'll probably want to add that to the table. -- George Greer, greerga@circlemud.org | Genius may have its limitations, but http://mouse.van.ml.org/ (mostly) | stupidity is not thus handicapped. http://www.van.ml.org/CircleMUD/ | -- Elbert Hubbard +------------------------------------------------------------+ | 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