Re: [NEWBIE]Innate Racial Skills

From: Magnus Jardstam (msjm@hotmail.com)
Date: 12/20/99


>I want to add Innate Racial SKILLS.  Like Werewolves getting a skill called
>Claw.

Hmm... If you mean they have a skill practiced from start that everyone is
able to prac then try the following:

class.c:

Search for:
void do_start(struct char_data * ch)

Put this in before the advance_level(ch);

  switch (GET_RACE(ch)) {

  case RACE_WOLVERINE:
    SET_SKILL(ch, SKILL_CLAW, 10);
    break;
  /* Add more races here */
  }

This will start all new players of the race wolverine with the skill claw at
10%. Change it to suit your needs.

Now to get it to show when typing practice:

In spec_procs.c:

Search for:
void list_skills(struct char_data * ch)

Change void list_skills to this one:

void list_skills(struct char_data * ch)
{
  int i, sortpos;

  if (!GET_PRACTICES(ch))
    strcpy(buf, "You have no practice sessions remaining.\r\n");
  else
    sprintf(buf, "You have %d practice session%s remaining.\r\n",
            GET_PRACTICES(ch), (GET_PRACTICES(ch) == 1 ? "" : "s"));

  sprintf(buf + strlen(buf), "You know of the following %ss:\r\n",
SPLSKL(ch));

  strcpy(buf2, buf);

  for (sortpos = 1; sortpos < MAX_SKILLS; sortpos++) {
    i = spell_sort_info[sortpos];
    if (strlen(buf2) >= MAX_STRING_LENGTH - 32) {
      strcat(buf2, "**OVERFLOW**\r\n");
      break;
    }
    if ((GET_LEVEL(ch) >= spell_info[i].min_level[(int) GET_CLASS(ch)]) ||
        ((GET_SKILL(ch, i) > 0) && (GET_LEVEL(ch) < LVL_GOD))) {
      sprintf(buf, "%-20s %s\r\n", spells[i], how_good(GET_SKILL(ch, i)));
      strcat(buf2, buf);
    }
  }

  page_string(ch->desc, buf2, 1);
}

The reason with this line; ((GET_SKILL(ch, i) > 0) && (GET_LEVEL(ch) <
LVL_GOD))) { is to print all skills you know, and so your immortals will not
get every skill they know listed in practice since that includes !UNUSED!
skills which are quite annoying to have there. Change LVL_GOD to the minimum
level your immortals gets all skills at (check do_restore in act.wizard.c if
you don't know, default I think is LVL_GRGOD).

That should be all needed. Good luck.

Magnus Jardstam
______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html  |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/15/00 PST