>From: Gicker <gicker42@HOTMAIL.COM> >Hi, I added a new field to the spell_info struct and now it won't set the >name properly. > >Example > >I type practice and I see: > >************************************************************************* >* SKILLS * >************************************************************************* >* !UNUSED! 100 * !UNUSED! 100 * >* !UNUSED! 100 * !UNUSED! 100 * >* !UNUSED! 100 * !UNUSED! 100 * >* !UNUSED! 100 * !UNUSED! 100 * >* !UNUSED! 100 * !UNUSED! 100 * >* !UNUSED! 100 * * >************************************************************************* >* Skill Points: 0000 * >************************************************************************* > >Here are some snippets from my code: >void list_skills(struct char_data * ch) // Reconstructed by Jason Yarber >{ > int i, sortpos, pracs, side = 0; > > strcpy(buf, "\n"); > sprintf(buf, >"&y************************************************************************* >&n\r\n"); > sprintf(buf, "%s&y* &WSKILLS >&y*&n\r\n", buf); > sprintf(buf, >"%s&y*********************************************************************** >**&n\r\n", buf); > > strcpy(buf2, buf); > > for (sortpos = MAX_SPELLS + 1; sortpos <= SKILLS_IN; sortpos++) { > i = spell_sort_info[sortpos]; > if (strlen(buf2) >= MAX_STRING_LENGTH - 32) { > strcat(buf2, "**OVERFLOW**\r\n"); > break; > } > if (GET_SKILL(ch, i) >= 0) { > if(side == 0) { > sprintf(buf, "&y* &C%-20.20s &c%11d ", spell_info[i].name, >GET_SKILL(ch, i)); > strcat(buf2, buf); // The above, ^ should always be safe to do. > side++; > } > else { > sprintf(buf, "&y* &C%-20.20s &c%11d &y*&n\r\n", >spell_info[i].name, >GET_SKILL(ch, i)); > strcat(buf2, buf); > side = 0; > } > } > } > > if(side == 1) { > sprintf(buf, "&y* *&n\r\n"); > strcat(buf2, buf); > } > if (!GET_SKILL_POINTS(ch)) > pracs = 0; > else > pracs = GET_SKILL_POINTS(ch); > sprintf(buf, >"&y************************************************************************* >&n\r\n"); > sprintf(buf, "%s&y* &WSkill Points: &w%-4.4d >&y*&n\r\n", buf, pracs); > sprintf(buf, >"%s&y*********************************************************************** >**&n\r\n", buf); > strcat(buf2, buf); > page_string(ch->desc, buf2, 1); >} Well, obviously you changed your list_skill function. Your problem lies in the loop above that strcats/sprintf into buf. All you have to do is go over the old code and see what check you removed. This is the check you probably missed: if (spell_info[i].name != unused_spellname) _________________________________________________________________ Chat with friends online, try MSN Messenger: http://messenger.msn.com -- +---------------------------------------------------------------+ | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html | | Newbie List: http://groups.yahoo.com/group/circle-newbies/ | +---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 06/25/03 PDT