RELEASED on 8 jan 1999. ARMWEAP.C is a program designed to allow mortals to build and buy their own armors and weapons. Without gods assistance. The program control everythings: The cost of add on stats, which stats and slots are allow, and more... 1. SYSTEM REQUIREMENTS : - REQUIRED : CircleMUD 3.0 BPL 12. - REQUIRED : Oasis 1.6. (Not tested on a different versions of these requirements. but, could works too...) - SUGGESTED : colourcode2.txt (snippets-patch). so, you won't need to fix the text too much. unless, you don't like it;-) - SUGGESTED : abbrevs.txt (snippets-patch). so, you won't need to type VERY long commands... 2. BUGS, COMMENTS : (i'll appreciate any feed back) send me an email at : castillo7@hotmail.com 3. INSTALLING Armorer and weaponist : (Sorry, it's not a real .patch) ;----------------------------------------------------------------------------- file: Makefile in : OBJFILES , add to the end : arweap.o in : CXREF_FILES, add to the end : arweap.c add to the end of the file: armweap.o: armweap.c conf.h sysdep.h structs.h utils.h comm.h interpreter.h \ handler.h db.h spells.h olc.h $(CC) -c $(CFLAGS) armweap.c (notes: - before $(CC) -c $(CFLAGS) armweap.c "it is a , not spaces..." - there must be no space after the \ on the first line...) file: interpreter.c in : const struct command_info cmd_info[] = { add : {"want", POS_RESTING, do_not_here, 0, 0}, add : {"reset", POS_RESTING, do_not_here, 0, 0}, file: spec_assign.c in : void assign_mobiles (void) { around fews SPECIAL(), add : SPECIAL(armorer); add : SPECIAL(weaponist); around fews ASSIGNMOB(), add : ASSIGNMOB(vnum of your mob, armorer); add : ASSIGNMOB(vnum of your 2th mob, weaponist); file: olc.c in : /* * Everyone but IMPLs can only edit zones they have been assigned. */ if ((GET_LEVEL(ch) < LVL_IMPL) && (zone_table[OLC_ZNUM(d)].number != GET_OLC_ZONE(ch))) { send_to_char("You do not have permission to edit this zone.\r\n", ch); free(d->olc); return; } if (save) { replace : if ((GET_LEVEL(ch) < LVL_IMPL) && by : if ((GET_LEVEL(ch) < LVL_IMPL) && (cmd != LVL_IMPL) && in : if (!type) { send_to_char("Oops, I forgot what you wanted to save.\r\n", ch); return; } sprintf(buf, "Saving all %ss in zone %d.\r\n", type, zone_table[OLC_ZNUM(d)].number); send_to_char(buf, ch); sprintf(buf, "OLC: %s saves %s info for zone %d.", GET_NAME(ch), type, zone_table[OLC_ZNUM(d)].number); mudlog(buf, CMP, MAX(LVL_BUILDER, GET_INVIS_LEV(ch)), TRUE); replace : send_to_char(buf, ch); by : if (GET_LEVEL(ch) >= LVL_IMMORT) send_to_char(buf, ch); file: armweap.c edit : int zones_system [] = {x, x, ...}; edit : short allow_wear [NUM_ITEM_WEARS] = {x, x, ...}; edit : short allow_stat [NUM_APPLIES] = {x, x, ...}; edit : short allow_attack [NUM_ATTACK_TYPES] = {x, x, ...}; edit : signed int stat_limits [NUM_APPLIES][2] = {{x, x}, {x, x}, ...}; edit : short weapon_limits [3][2] = {{x, x}, {x, x}, {x, x}}; edit : short wear_price [NUM_ITEM_WEARS] = {x, x, ...}; edit : short stat_price [NUM_APPLIES] = {x, x, ...}; edit : short attack_price [NUM_ATTACK_TYPES] = {x, x, ...}; edit : short neg_stat [NUM_APPLIES] = {x, x, ...); notes: Be sure these fields meet your wish... the defaults prices and limits are kinda crap... has been choose for testing purpose only. And be sure these fields correspond to your MUD. eg: if you're MUD is having new equipements slot like EAR or such. you'll need to add 1 more entry in the fields. Same check goes to any new types of attacks (weapons).). ;----------------------------------------------------------------------------- That's all. and good luck! Castillo. castillo7@hotmail.com