> Is there any way that i can create an item, say a "magic leaf" that
> if a
> certain class eats it, they gain 10hp, but if any other class eats
> it, they
> lose 10hp?
If you have dgScipts, you can add a new trigger type for
eaten objects. There is a tutorial on this on the same site
as dgScripts and dgEvents (the plaintext one, not the flashy
black bground graphic frames one).
Otherwise, you can use spec_procs:
SPECIAL(hp_leaf){
if(GET_CLASS(ch) == CLASS_XXX && cmd == /
CMD_FOOD){
send_to_char("You eat the leaf blah blah.", ch);
GET_HIT(ch) = MIN(GET_HIT(ch) + 10, \
GET_MAX_HIT(ch))
}
}
where CLASS_XXX is the class that gets the gain
(I hope it's CLASS_DRUID cause druids are cool)
In structs.h #define CMD_FOOD -100 /*random negative number for
id*/
in act.item.c, find
if (subcmd == SCMD_EAT)
extract_obj(food);
replace w/
if (subcmd == SCMD_EAT){
if (GET_OBJ_SPEC(i) != NULL)
GET_OBJ_SPEC(i) (ch, i, CMD_FOOD, /
NULL);
extract_obj(food);
}
then in spec_assign at the top
SPECIAL(hp_leaf);
and near the bottom
ASSIGNOBJ(666, hp_leaf);
where 666 is the vnum of the leaf obj
Hope it works,
Blaize
*****************************
* I hate my email word processor *
*****************************
________________________________________________________________
GET INTERNET ACCESS FROM JUNO!
Juno offers FREE or PREMIUM Internet access for less!
Join Juno today! For your FREE software, visit:
http://dl.www.juno.com/get/web/.
--
+---------------------------------------------------------------+
| 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