I was wondering I loved your code, and would like to implement something similar to that. I was testing it out before I modified it and I got an error in the sprinttype which the sprinttype is here: sprinttype(GET_OBJ_VAL(obj, 2), drinks, buf2); it appears that the "drinks" is not valid if anybody has any idea what to replace it with could you please respond. I have honestly never really used the command sprinttype so I am unsure of its use. Thanks, Adam ---------- > From: Ulrik Sannsell <hood@ludd.luth.se> > To: CIRCLE@post.queensu.ca > Subject: [CODE] > Date: Sunday, September 28, 1997 6:19 AM > > Ok i got a small problem with a special procedure i wrote a while back. > This specials idea is that every time you sip from the holy_grail it > changes its liquid type to next in list. And when you drink from it and > its empty it refills itself and here is where my problem is. When i > refill the grail it changes it's liquid to the original liquid , the one > set when object is created. Don't think there would be something wrong > with my code but i posts it as well. > > SPECIAL(holy_grail) > { > struct obj_data *obj; > struct char_data *victim = NULL; > const int grail_vnum = 21; > int type; > > /* Command is neither sip or drink. */ > if(!(CMD_IS("sip") || CMD_IS("drink"))) > return 0; > > one_argument(argument, buf); > if (!generic_find(buf, FIND_OBJ_INV, ch, &victim, &obj)) > return 0; /* Object not found */ > if(GET_OBJ_VNUM(obj) != 21) /* Is not the grail exiting */ > return 0; > > if(CMD_IS("sip")) > { > /* Changes the contents of the grail to next type in Liquid list > */ > GET_OBJ_VAL(obj, 2) = GET_OBJ_VAL(obj, 2) + 1; > /* Make sure we don't go over NUM_LIQ_TYPES */ > if(GET_OBJ_VAL(obj, 2) >= NUM_LIQ_TYPES) > GET_OBJ_VAL(obj, 2) = 0; > /* Print out some messages to room and character */ > sprinttype(GET_OBJ_VAL(obj, 2), drinks, buf2); > sprintf(buf, "As you take a sip from $p it's contents suddenly > changes to %s", buf2); > act(buf, FALSE, ch, obj, NULL, TO_CHAR); > act("As $n sips from $p it's contents suddenly changes", FALSE, > ch, obj, NULL, TO_ROOM); > return 1; > } > else > { > /* If the grail is empty refill it */ > if(GET_OBJ_VAL(obj, 1) == 0) > { > /* Refill it to maximum */ > GET_OBJ_VAL(obj, 1) = GET_OBJ_VAL(obj, 0); > act("You see $p refill before youre very eyes. AMAZING!!", > FALSE, ch, obj, NULL, TO_CHAR); > act("As $n drinks the last drop from $p it refills.", FALSE, > ch, obj, NULL, TO_ROOM); > return 1; > } > else > return 0; > } > } > > > Ulrik > > > +------------------------------------------------------------+ > | Ensure that you have read the CircleMUD Mailing List FAQ: | > | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | > +------------------------------------------------------------+ +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST