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:
struct spell_info_type {
byte min_position; /* Position for caster */
int mana_min; /* Min amount of mana used by a spell (highest lev) */
int mana_max; /* Max amount of mana used by a spell (lowest lev) */
int mana_change; /* Change in mana used by spell from lev to lev */
int min_level[NUM_CLASSES];
int routines;
byte violent;
int targets; /* See below for use with TAR_XXX */
const char *name;
int use_untrained;
};
void spello(int spl, const char *name, int max_mana, int min_mana,
int mana_change, int minpos, int targets, int violent, int routines, int
use_untrained)
// prototype is the same as above
{
int i;
for (i = 0; i < NUM_CLASSES; i++)
spell_info[spl].min_level[i] = LVL_IMMORT;
spell_info[spl].mana_max = max_mana;
spell_info[spl].mana_min = min_mana;
spell_info[spl].mana_change = mana_change;
spell_info[spl].min_position = minpos;
spell_info[spl].targets = targets;
spell_info[spl].violent = violent;
spell_info[spl].routines = routines;
spell_info[spl].name = name;
spell_info[spl].use_untrained = use_untrained;
}
#define skillo(skill, name, use_untrained) spello(skill, name, 0, 0, 0, 0,
0, 0, 0, use_untrained);
void mag_assign_spells(void)
{
int i;
/* Do not change the loop below. */
for (i = 0; i <= TOP_SPELL_DEFINE; i++)
unused_spell(i);
/* Do not change the loop above. */
spello(SPELL_ANIMATE_DEAD, "animate dead", 35, 10, 3, POS_STANDING,
TAR_OBJ_ROOM, FALSE, MAG_SUMMONS, FALSE);
// ...
skillo(SKILL_BACKSTAB, "backstab", FALSE);
skillo(SKILL_BASH, "bash", TRUE);
}
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);
}
Any help would be much appreciated
Steve Squires
--
+---------------------------------------------------------------+
| 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