Re: QP System

From: bobat (bobat@pacbell.net)
Date: 02/13/00


To make Quest points given out by mobs on their deaths you could easily add
one variable for mobs.
add this to struct char_data: int quest_points;

Then add the variable to your dg_scripts.c add this little bit to
find_replacement() :
     else if (!str_cmp(field, "quest_points"))
 sprintf(str, "%d", GET_MOB_QPOINTS(c));

then in db.c add the variable so mobs at load time can have it.
change this:
 if (sscanf(line, " %d %d %d %d ", t, t + 1, t + 2, t + 3) != 3) {
    log("SYSERR: Format error in last line of mob #%d\n"
 "...expecting line of form '# # #'", nr);
    exit(1);
  }

to this :
 if (sscanf(line, " %d %d %d %d %d", t, t + 1, t + 2, t + 3, t + 4) != 4) {
    log("SYSERR: Format error in last line of mob #%d\n"
 "...expecting line of form '# # # #'", nr);
    exit(1);
  }

Then when you have the mob database all switched around to work with this
you need to create a DEATH TRIGGER
for the mobs who will use this. I don't know their format off hand but it's
going to be easy to figure out. Just have the mob
upon it's death do something like:    eval %actor.quest_points%
(%self.quest_points%+%actor.quest_points%)
I'm not sure off-hand if dg would clear the %actor.quest_points% before
applying the variable so you might have to do it like this:
eval temp %self.quest_points%
eval %actor.quest_points% (%self.quest_points+%temp%)

Enjoy.


     +------------------------------------------------------------+
     | 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