Re: Dual Classing [NEWBIE]

From: Dana Luther (dtluther@mindspring.com)
Date: 06/08/00


>I understand all this, but how do I set it so that they can only 'advance'
>if they are at a certin level? And what would be needed to make the advance
>command (i know, code that checks your current class, level, and both
return
>true then it changes your level to 0 and class to the next one [bowman or
>sharpshooter], but i need the code)


ACMD(do_class_advance)
{
  .....normal variable info here...

 ....standard don't mess around as NPC code here...

  if (GET_LEVEL(ch) >= X)  {   <--- insert the level you want them to be to
do this in the place of the big X
     switch (GET_CLASS(ch))
        case CLASS_ARCHER:
          GET_CLASS(ch) = CLASS_BOWMAN;
          act("You have advanced into the specialization of bowmen!", TRUE,
ch, 0, 0, TO_CHAR);
          act("$n has reached a new level of specialization.", FALSE, ch, 0,
0, TO_ROOM);
        break;
        case CLASS_MAGIC_USER:
           GET_CLASS(ch) = CLASS_SUPERMAGE;
        .... blah blah blah  *wink*..... <-- insert all the possible class
combinations here
        break;
        default:
            log("SYSERR: Unknown class sent to do_class_advance!");
        break;
     etc. etc. etc.
  }

}

That's the REALLY bare bones of it, simply altering their class. It should
be enough to point you in the right direction though. It doesn't take into
account that they get any other bonus at the time of advancement. If you're
using events, you'll want to make sure you free and re-enqueue the events
that are class related for this character (i.e., if your mages are set up to
regen better mana or something, who knows what you might have).
This also doesn't take into consideration that you might want them to
fulfill some other requirement than level (which I'd assume you'd want, but
wouldn't actually need. Some quest they must complete which sets a FLAG on
them as "ready to advance" or somewhat)

This is pretty simple stuff that you'd figure out simply by reviewing some
of the code for a few minutes. Just open up the utils.h file and start
reading it. You'll find all ways you could possibly want to access the
information about a character, room, or object there.

There are so many ways to do the advance up a class that I can't even begin
to tell you how, but basically, you determine how you want to reference it
(I assume you'd do it as another class option -> CLASS_BOWMAN    with the
alteration for IS_ARCHER  covering CLASS_ARCHER and CLASS_BOWMAN as was
mentioned in a previous post.

I really can't stress reading the files enough. Just look through them.
There are TONS of explanations in there about how to do things and what the
various functions are for.  I took a few moments to do this just to start
you in some direction, but that's about as far as I can take it being this
abstract. There are probably lots of other ways to go about doing this, this
is just one. Start reading and expiramenting. And back everything up first.

Dana


     +------------------------------------------------------------+
     | 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 : 04/10/01 PDT