Ok, due to overwhelming responses, I'm posting the mix code here. However, if I see this anywhere else, with someone elses name on it, I will personally hunt your punk ass down and kick it real hard. Just give me credit. make sure whatever file you put this in, it contains this: extern char *spells[]; Now, what you've all been waiting for.... void make_potion(struct char_data *ch, int potion, struct obj_data *container) { struct obj_data *final_potion; int can_make = FALSE, mana, dam; /* Modify this list to suit which spells you want to be able to mix. */ switch (potion) { case SPELL_SHIELD: case SPELL_CURE_BLIND: case SPELL_CURE_LIGHT: case SPELL_CURE_CRITIC: case SPELL_DETECT_MAGIC: case SPELL_DETECT_INVIS: case SPELL_DETECT_POISON: case SPELL_REMOVE_POISON: case SPELL_REMOVE_CURSE: case SPELL_STRENGTH: case SPELL_WORD_OF_RECALL: case SPELL_SENSE_LIFE: case SPELL_WATERWALK: case SPELL_FLY: case SPELL_HASTE: case SPELL_INFRAVISION: case SPELL_ENLARGE: case SPELL_REGENERATION: case SPELL_HEAL: can_make = TRUE; break; default: break; } if (can_make == FALSE) { send_to_char("You that spell cannot be mixed into a potion.\r\n", ch); return; } else if (number(1, 3) == 3) { send_to_char("As you begin mixing the potion, it violently explodes!\r\n", ch); act("$n begins to mix a potion, and it suddenly explodes!", FALSE, ch, 0, 0, TO_ROOM); extract_obj(container); dam = number(5, 50); GET_HIT(ch) -= dam; update_pos(ch); return; } /* requires x3 mana to mix a potion than the spell */ mana = mag_manacost(ch, potion) * 3; if (GET_MANA(ch) - mana > 0) { GET_MANA(ch) -= mana; sprintf(buf, "You create a potion labeled '%s'.\r\n", spells[potion]); send_to_char(buf, ch); act("$n creates a potion!", FALSE, ch, 0, 0, TO_ROOM); extract_obj(container); } else { send_to_char("You don't have enough mana for mixing that potion!\r\n", ch); return; } final_potion = create_obj(); final_potion->item_number = NOTHING; final_potion->in_room = NOWHERE; final_potion->name = str_dup("potion"); sprintf(buf2, "A potion labeled '%s' lies here.", spells[potion]); final_potion->description = str_dup(buf2); sprintf(buf2, "A potion labeled '%s'", spells[potion]); final_potion->short_description = str_dup(buf2); GET_OBJ_TYPE(final_potion) = ITEM_POTION; GET_OBJ_WEAR(final_potion) = ITEM_WEAR_TAKE; GET_OBJ_EXTRA(final_potion) = ITEM_NORENT; GET_OBJ_VAL(final_potion, 0) = GET_LEVEL(ch); GET_OBJ_VAL(final_potion, 1) = potion; GET_OBJ_VAL(final_potion, 2) = -1; GET_OBJ_VAL(final_potion, 3) = -1; GET_OBJ_WEIGHT(final_potion) = 1; GET_OBJ_RENT(final_potion) = 0; obj_to_char(final_potion, ch); } ACMD(do_brew) { struct obj_data *container; struct obj_data *obj, *next_obj; char bottle_name[MAX_STRING_LENGTH]; char spell_name[MAX_STRING_LENGTH]; int potion, found = FALSE; two_arguments(argument, bottle_name, spell_name); if ((GET_CLASS(ch) == CLASS_WARRIOR || GET_CLASS(ch) == CLASS_THIEF) && GET_LEVEL(ch) < LVL_IMMORT) { send_to_char("You have no idea how to mix potions!\r\n", ch); return; } if (!*bottle_name || !*spell_name) { send_to_char("What do you wish to mix in where?\r\n", ch); return; } for (obj = ch->carrying; obj; obj = next_obj) { next_obj = obj->next_content; if (obj == NULL) return; else if (!(container = get_obj_in_list_vis(ch, bottle_name, ch->carrying))) continue; else found = TRUE; } if (found != FALSE && (GET_OBJ_TYPE(container) != ITEM_CONTAINER && GET_OBJ_TYPE(container) != ITEM_DRINKCON)) { send_to_char("That item is not a container!\r\n", ch); return; } if (found == FALSE) { sprintf(buf, "You don't have %s in your inventory!\r\n", bottle_name); send_to_char(buf, ch); return; } potion = find_skill_num(spell_name); if ((potion < 1) || (potion > MAX_SPELLS)) { send_to_char("Mix what spell?!?\r\n", ch); return; } if (GET_LEVEL(ch) < spell_info[potion].min_level[(int) GET_CLASS(ch)]) { send_to_char("You do not know how to make that potion!\r\n", ch); return; } if (GET_SKILL(ch, potion) == 0) { send_to_char("You are unfamiliar potion.\r\n", ch); return; } make_potion(ch, potion, container); } From goamkows@kirk.geog.sc.edu Tue, 23 Jul 96 8:52:48 EDT X-SystemInfo: MyE-Mail: EMail X-Message-No: 2831 (database) From: goamkows <goamkows@kirk.geog.sc.edu> To: circle <circle@pvv.ntnu.no> Subject: Re: CODE: Races, Clans, Classes, Tribes, languages and a drunkspeech Date: Tue, 23 Jul 96 08:52:00 Message-ID: <CMM.0.90.0.838126368.goamkows@janeway.geog.sc.edu> Reply-To: goamkows@kirk.geog.sc.edu (goamkows) X-POP3-Rcpt: lk4150@per Return-Path: owner-circle@pvv.ntnu.no Received: from flipper.pvv.ntnu.no (43@flipper.pvv.ntnu.no [129.241.210.200]) by per.cybercity.dk (8.6.12/8.6.12) with ESMTP id OAA15194 for <lk4150@krull.dk>; Tue, 23 Jul 1996 14:53:19 +0200 Received: (from majordomo@localhost) by flipper.pvv.ntnu.no (8.7.5/8.6.12) id OAA24064 for circle-outgoing; Tue, 23 Jul 1996 14:48:40 +0200 Received: from otis.cla.sc.edu (otis.cla.sc.edu [129.252.1.2]) by flipper.pvv.ntnu.no (8.7.5/8.6.12) with SMTP id OAA24058 for <circle@pvv.ntnu.no>; Tue, 23 Jul 1996 14:48:17 +0200 Received: from kirk.geog.sc.edu by otis.cla.sc.edu (4.1/SMI-4.1)id AA04610; Tue, 23 Jul 96 08:48:11 EDT Received: from janeway.geog.sc.edu by kirk.geog.sc.edu (4.1/SMI-4.1)id AA29089; Tue, 23 Jul 96 07:43:20 EDT Sender: owner-circle@pvv.ntnu.no Precedence: bulk :P > This is madness. I think the best method of implementing languages is to :P > keep them scrambled... if you've got a decent learn by use system going :P > all that learn insanity will be taken care of automatically, and people :P > will generally understand more based upon their SKILL in the language... :P > ie. it is scrambled 100 - SKILL percent. The problem with making words :P > recognizable is that a good chunk of mudders are also coders, and writing :P > a small program or even a tintin script to decode languages based upon :P > known words would be fairly simple... then the person passes that little :P > tidbit to all his friends, it gets put up on an ftp site or web page, and :P > everyone is seeing foriegn laguages in clear text... back to square one. well, go to the library, get yourself a book on the german engima machines and set up a similar procedure :) it took a team of the best mathematicians in the world to figure it out, so i think it should stop the average mudder from being able to decode languages ;) <g> From goamkows@kirk.geog.sc.edu Tue, 23 Jul 96 9:09:11 EDT X-SystemInfo: MyE-Mail: EMail X-Message-No: 2832 (database) From: goamkows <goamkows@kirk.geog.sc.edu> To: circle <circle@pvv.ntnu.no> Subject: problems adding in new files Date: Tue, 23 Jul 96 09:09:00 Message-ID: <CMM.0.90.0.838127351.goamkows@janeway.geog.sc.edu> Reply-To: goamkows@kirk.geog.sc.edu (goamkows) X-POP3-Rcpt: lk4150@per Return-Path: owner-circle@pvv.ntnu.no Received: from flipper.pvv.ntnu.no (43@flipper.pvv.ntnu.no [129.241.210.200]) by per.cybercity.dk (8.6.12/8.6.12) with ESMTP id PAA15260 for <lk4150@krull.dk>; Tue, 23 Jul 1996 15:12:20 +0200 Received: (from majordomo@localhost) by flipper.pvv.ntnu.no (8.7.5/8.6.12) id PAA24225 for circle-outgoing; Tue, 23 Jul 1996 15:05:00 +0200 Received: from otis.cla.sc.edu (otis.cla.sc.edu [129.252.1.2]) by flipper.pvv.ntnu.no (8.7.5/8.6.12) with SMTP id PAA24213 for <circle@pvv.ntnu.no>; Tue, 23 Jul 1996 15:04:36 +0200 Received: from kirk.geog.sc.edu by otis.cla.sc.edu (4.1/SMI-4.1)id AA04806; Tue, 23 Jul 96 09:04:34 EDT Received: from janeway.geog.sc.edu by kirk.geog.sc.edu (4.1/SMI-4.1)id AA29102; Tue, 23 Jul 96 07:59:42 EDT Sender: owner-circle@pvv.ntnu.no Precedence: bulk with almost everything that adds in new files (event.c, extras.c, alias.c, et.al.), whenever i add them, when i try to compile it gives my 'conflicting definitions for qsort' or something to that effect. only eric's ident files have worked without problem :) i've tried moving the #includes for conf.h and sysdep.h to every feasible location before, after and inbetween all the other includes, as well as trying several other things, but nothing seems to work :( anybody have any idea how to get around this?
This archive was generated by hypermail 2b30 : 12/07/00 PST