#include <sys/types.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include "merc.h" void do_materials(CHAR_DATA * ch, char *argument) { char arg[MAX_INPUT_LENGTH]; char buf[MAX_STRING_LENGTH]; OBJ_DATA *obj = NULL; int x; send_to_char( "#L[#7Material#L][#7Amount#L][#7Lb Needed#L][#7Toughness#L][#7AFF#L]\n\r",ch); sprintf(buf, "#0[#oCopper#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->rawmaterial[M_COPPER], LB_METAL, T_COPPER); send_to_char(buf, ch); sprintf(buf, "#0[#YGold#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->rawmaterial[M_GOLD], LB_METAL, T_GOLD); send_to_char(buf, ch); sprintf(buf, "#0[#7Ivory#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+125 Damroll\n\r", ch->rawmaterial[M_IVORY], LB_OTHER, T_IVORY); send_to_char(buf, ch); sprintf(buf, "#0[#cM#Ci#ct#Ch#cr#Ci#cl#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Hp\n\r", ch->rawmaterial[M_MITHRIL], LB_METAL, T_MITHRIL); send_to_char(buf, ch); sprintf(buf, "#0[#oWood#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Hp\n\r", ch->rawmaterial[M_WOOD], LB_METAL, T_WOOD); send_to_char(buf, ch); sprintf(buf, "#0[#7O#gr#Gg#ga#7n#gi#Gc#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7Regeneration\n\r", ch->rawmaterial[M_ORGANIC], LB_OTHER, T_ORGANIC); send_to_char(buf, ch); sprintf(buf, "#0[#7Diamond#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7Sanctuary\n\r", ch->rawmaterial[M_DIAMOND], LB_GEM, T_DIAMOND); send_to_char(buf, ch); sprintf(buf, "#0[#7Platinum#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+125 Hitroll\n\r", ch->rawmaterial[M_PLATINUM], LB_METAL, T_PLATINUM); send_to_char(buf, ch); sprintf(buf, "#0[#CAdamantite#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Hp\n\r", ch->rawmaterial[M_ADAMANTITE], LB_METAL, T_ADAMANTITE); send_to_char(buf, ch); sprintf(buf, "#0[Tin#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Move\n\r", ch->rawmaterial[M_TIN], LB_METAL, T_TIN); send_to_char(buf, ch); sprintf(buf, "#0[#nEbony#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7-100 Ac\n\r", ch->rawmaterial[M_EBONY], LB_OTHER, T_EBONY); send_to_char(buf, ch); sprintf(buf, "#0[#RR#ru#Rb#ry#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7Haste\n\r", ch->rawmaterial[M_RUBY], LB_GEM, T_RUBY); send_to_char(buf, ch); sprintf(buf, "#0[#7L#Gi#7m#Ge#7s#Gt#7o#Gn#7e#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Move\n\r", ch->rawmaterial[M_LIMESTONE], LB_OTHER, T_LIMESTONE); send_to_char(buf, ch); sprintf(buf, "#0[#YTopaz#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7Detect Hidden\n\r", ch->rawmaterial[M_TOPAZ], LB_GEM, T_TOPAZ); send_to_char(buf, ch); sprintf(buf, "#0[#pAmethyst#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7Fly\n\r", ch->rawmaterial[M_AMETHYST], LB_GEM, T_AMETHYST); send_to_char(buf, ch); sprintf(buf, "#0[#GJade#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7Infravision\n\r", ch->rawmaterial[M_JADE], LB_GEM, T_JADE); send_to_char(buf, ch); sprintf(buf, "#0[#nOnyx#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7Sneak\n\r", ch->rawmaterial[M_ONYX], LB_GEM, T_ONYX); send_to_char(buf, ch); sprintf(buf, "#0[#GE#gm#Ge#gr#Ga#gl#Gd#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7Slash through armor\n\r", ch->rawmaterial[M_EMERALD], LB_GEM, T_EMERALD); send_to_char(buf, ch); sprintf(buf, "#0[#7Pearl#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7Invis\n\r", ch->rawmaterial[M_PEARL], LB_GEM, T_PEARL); send_to_char(buf, ch); sprintf(buf, "#0[#7Opal#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7Pass Door\n\r", ch->rawmaterial[M_OPAL], LB_GEM, T_OPAL); send_to_char(buf, ch); sprintf(buf, "#0[#LSapphire#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7Chaos Shield\n\r", ch->rawmaterial[M_SAPPHIRE], LB_GEM, T_SAPPHIRE); send_to_char(buf, ch); sprintf(buf, "#0[#oLeather#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7-100 Ac\n\r", ch->rawmaterial[M_LEATHER], LB_OTHER, T_LEATHER); send_to_char(buf, ch); sprintf(buf, "#0[#0Iron#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7-100 Ac\n\r", ch->rawmaterial[M_IRON], LB_METAL, T_IRON); send_to_char(buf, ch); sprintf(buf, "#0[#7Quartz#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7-100Ac\n\r", ch->rawmaterial[M_QUARTZ], LB_GEM, T_QUARTZ); send_to_char(buf, ch); sprintf(buf, "#0[#CM#ca#Cr#cb#Cl#ce#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Hp \n\r", ch->rawmaterial[M_MARBLE], LB_OTHER, T_MARBLE); send_to_char(buf, ch); sprintf(buf, ":#0[#0Silver#0]#n %-10d #L[#7%d#L] #L[#7%d#L] #7-100 Ac\n\r", ch->rawmaterial[M_SILVER], LB_METAL, T_SILVER); send_to_char(buf, ch); sprintf(buf, "#0[#oWool#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Move\n\r", ch->rawmaterial[M_WOOL], LB_OTHER, T_WOOL); send_to_char(buf, ch); sprintf(buf, "#0[#LCloth#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Move\n\r", ch->rawmaterial[M_CLOTH], LB_OTHER, T_CLOTH); send_to_char(buf, ch); sprintf(buf, "#0[#cAluminium#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] \n\r", ch->rawmaterial[M_ALUMINIUM], LB_METAL, T_ALUMINIUM); send_to_char(buf, ch); sprintf(buf, "#0[#PBismuth#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] \n\r", ch->rawmaterial[M_BISMUTH], LB_OTHER, T_BISMUTH); send_to_char(buf, ch); sprintf(buf, "#0[#0Cobalt#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] \n\r", ch->rawmaterial[M_COBALT], LB_OTHER, T_COBALT); send_to_char(buf, ch); sprintf(buf, "#0[#PGallium#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] \n\r", ch->rawmaterial[M_GALLIUM], LB_OTHER, T_GALLIUM); send_to_char(buf, ch); sprintf(buf, "#0[#PIndium#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] \n\r", ch->rawmaterial[M_INDIUM], LB_OTHER, T_INDIUM); send_to_char(buf, ch); sprintf(buf, "#0[#0Lead#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] \n\r", ch->rawmaterial[M_LEAD], LB_OTHER, T_LEAD); send_to_char(buf, ch); sprintf(buf, "#0[#7Magnesium#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] \n\r", ch->rawmaterial[M_MAGNESIUM], LB_OTHER, T_MAGNESIUM); send_to_char(buf, ch); sprintf(buf, "#0[#RMercury#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] \n\r", ch->rawmaterial[M_MERCURY], LB_OTHER, T_MERCURY); send_to_char(buf, ch); sprintf(buf, "#0[#0Nickel#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] \n\r", ch->rawmaterial[M_NICKEL], LB_OTHER, T_NICKEL); send_to_char(buf, ch); sprintf(buf, "#0[#PPotassium#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] \n\r", ch->rawmaterial[M_POTASSIUM], LB_OTHER, T_POTASSIUM); send_to_char(buf, ch); sprintf(buf, "#0[#oUranium#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] \n\r", ch->rawmaterial[M_URANIUM], LB_OTHER, T_URANIUM); send_to_char(buf, ch); sprintf(buf, "#0[#cTitanium#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] \n\r", ch->rawmaterial[M_TITANIUM], LB_OTHER, T_TITANIUM); send_to_char(buf, ch); sprintf(buf, "#0[#PZinc#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] \n\r", ch->rawmaterial[M_ZINC], LB_OTHER, T_ZINC); send_to_char(buf, ch); sprintf(buf, "#0[#PZirconium#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] \n\r", ch->rawmaterial[M_ZIRCONIUM], LB_OTHER, T_ZIRCONIUM); send_to_char(buf, ch); sprintf(buf, "#0[#oCarbon#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] \n\r", ch->rawmaterial[M_CARBON], LB_OTHER, T_CARBON); send_to_char(buf, ch); sprintf(buf, "#0[#PPalladium#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] \n\r", ch->rawmaterial[M_PALLADIUM], LB_OTHER, T_PALLADIUM); send_to_char(buf, ch); return; } void do_alloys(CHAR_DATA * ch, char *argument) { char arg[MAX_INPUT_LENGTH]; char buf[MAX_STRING_LENGTH]; OBJ_DATA *obj = NULL; int x; send_to_char( "#L[#7Material#L][#7Amount#L][#7Lb Needed#L][#7Toughness#L][#7AFF#L]\n\r",ch); sprintf(buf, "#0[#7Steel#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Hp\n\r", ch->rawmaterial[M_STEEL], LB_METAL, T_STEEL); send_to_char(buf, ch); sprintf(buf, "#0[#7Brass#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Hp\n\r", ch->rawmaterial[M_BRASS], LB_METAL, T_BRASS); send_to_char(buf, ch); sprintf(buf, "#0[#7Bronze#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Hp\n\r", ch->rawmaterial[M_BRONZE], LB_METAL, T_BRONZE); send_to_char(buf, ch); sprintf(buf, "#0[#7Duralumin#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] \n\r", ch->alloy[A_DURALUMIN], LB_METAL, T_DURALUMIN); send_to_char(buf, ch); sprintf(buf, "#0[#7Rose Metal#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->alloy[A_ROSE_METAL], LB_METAL, T_ROSE_METAL); send_to_char(buf, ch); sprintf(buf, "#0[#7Galfenol#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->alloy[A_GALFENOL], LB_METAL, T_GALFENOL); send_to_char(buf, ch); sprintf(buf, "#0[#7Galinstan#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->alloy[A_GALINSTAN], LB_METAL, T_GALINSTAN); send_to_char(buf, ch); sprintf(buf, "#0[#7Electrum#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->alloy[A_ELECTRUM], LB_METAL, T_ELECTRUM); send_to_char(buf, ch); sprintf(buf, "#0[#7Rose Gold#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->alloy[A_ROSE_GOLD], LB_METAL, T_ROSE_GOLD); send_to_char(buf, ch); sprintf(buf, "#0[#7White Gold#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->alloy[A_WHITE_GOLD], LB_METAL, T_WHITE_GOLD); send_to_char(buf, ch); sprintf(buf, "#0[#7Fields Metal#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->alloy[A_FIELDS_METAL], LB_METAL, T_FIELDS_METAL); send_to_char(buf, ch); sprintf(buf, "#0[#7Kovar#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->alloy[A_KOVAR], LB_METAL, T_KOVAR); send_to_char(buf, ch); sprintf(buf, "#0[#7Solder#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->alloy[A_SOLDER], LB_METAL, T_SOLDER); send_to_char(buf, ch); sprintf(buf, "#0[#7Magnox#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->alloy[A_MAGNOX], LB_METAL, T_MAGNOX); send_to_char(buf, ch); sprintf(buf, "#0[#7Silver Amalgam#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->alloy[A_SILVER_AMALGAM], LB_METAL, T_SILVER_AMALGAM); send_to_char(buf, ch); sprintf(buf, "#0[#7Gold Amalgam#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->alloy[A_GOLD_AMALGAM], LB_METAL, T_GOLD_AMALGAM); send_to_char(buf, ch); sprintf(buf, "#0[#7Alnico#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->alloy[A_ALNICO], LB_METAL, T_ALNICO); send_to_char(buf, ch); sprintf(buf, "#0[#7Platinum Sterling#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->alloy[A_PLATINUM_STERLING], LB_METAL, T_PLATINUM_STERLING); send_to_char(buf, ch); sprintf(buf, "#0[#7Sterling Silver#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->alloy[A_STERLING_SILVER], LB_METAL, T_STERLING_SILVER); send_to_char(buf, ch); sprintf(buf, "#0[#7Pewter#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->alloy[A_PEWTER], LB_METAL, T_PEWTER); send_to_char(buf, ch); sprintf(buf, "#0[#7Staballoy#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->alloy[A_STABALLOY], LB_METAL, T_STABALLOY); send_to_char(buf, ch); sprintf(buf, "#0[#7Zircaloy#0]#n: %-10d #L[#7%d#L] #L[#7%d#L] #7+400 Mana\n\r", ch->alloy[A_ZIRCALOY], LB_METAL, A_ZIRCALOY); send_to_char(buf, ch); return; } void do_destroy(CHAR_DATA * ch, char *argument) { char arg[MAX_INPUT_LENGTH]; char buf[MAX_STRING_LENGTH]; OBJ_DATA *obj; int amount, material, x; one_argument(argument, arg); if (arg[0] == '\0') { send_to_char("What object do you wish to deconstruct?\n\r", ch); return; } if ((obj = get_obj_carry( ch, arg) ) == NULL) { send_to_char( "You are not carrying that item.\n\r", ch ); return; } amount = obj->weight; material = obj->material; if (material >= 1 && material <= 100) ch->rawmaterial[material] += amount; if (IS_SET(obj->c_material, C_COPPER)) ch->rawmaterial[M_COPPER] += LB_METAL; if (IS_SET(obj->c_material, C_GOLD)) ch->rawmaterial[M_GOLD] += LB_METAL; if (IS_SET(obj->c_material, C_IVORY)) ch->rawmaterial[M_IVORY] += LB_OTHER; if (IS_SET(obj->c_material, C_MITHRIL)) ch->rawmaterial[M_MITHRIL] += LB_METAL; if (IS_SET(obj->c_material, C_WOOD)) ch->rawmaterial[M_WOOD] += LB_METAL; if (IS_SET(obj->c_material, C_ORGANIC)) ch->rawmaterial[M_ORGANIC] += LB_OTHER; if (IS_SET(obj->c_material, C_DIAMOND)) ch->rawmaterial[M_DIAMOND] += LB_GEM; if (IS_SET(obj->c_material, C_PLATINUM)) ch->rawmaterial[M_PLATINUM] += LB_METAL; if (IS_SET(obj->c_material, C_ADAMANTITE)) ch->rawmaterial[M_ADAMANTITE] += LB_METAL; if (IS_SET(obj->c_material, C_TIN)) ch->rawmaterial[M_TIN] += LB_METAL; if (IS_SET(obj->c_material, C_EBONY)) ch->rawmaterial[M_EBONY] += LB_OTHER; if (IS_SET(obj->c_material, C_RUBY)) ch->rawmaterial[M_RUBY] += LB_GEM; if (IS_SET(obj->c_material, C_LIMESTONE)) ch->rawmaterial[M_LIMESTONE] += LB_OTHER; if (IS_SET(obj->c_material, C_TOPAZ)) ch->rawmaterial[M_TOPAZ] += LB_GEM; if (IS_SET(obj->c_material, C_AMETHYST)) ch->rawmaterial[M_AMETHYST] += LB_GEM; if (IS_SET(obj->c_material, C_JADE)) ch->rawmaterial[M_JADE] += LB_GEM; if (IS_SET(obj->c_material, C_ONYX)) ch->rawmaterial[M_ONYX] += LB_GEM; if (IS_SET(obj->c_material, C_EMERALD)) ch->rawmaterial[M_EMERALD] += LB_GEM; if (IS_SET(obj->c_material, C_PEARL)) ch->rawmaterial[M_PEARL] += LB_GEM; if (IS_SET(obj->c_material, C_OPAL)) ch->rawmaterial[M_OPAL] += LB_GEM; if (IS_SET(obj->c_material, C_SAPPHIRE)) ch->rawmaterial[M_SAPPHIRE] += LB_GEM; if (IS_SET(obj->c_material, C_LEATHER)) ch->rawmaterial[M_LEATHER] += LB_OTHER; if (IS_SET(obj->c_material, C_IRON)) ch->rawmaterial[M_IRON] += LB_METAL; if (IS_SET(obj->c_material, C_QUARTZ)) ch->rawmaterial[M_QUARTZ] += LB_GEM; if (IS_SET(obj->c_material, C_MARBLE)) ch->rawmaterial[M_MARBLE] += LB_OTHER; if (IS_SET(obj->c_material, C_SILVER)) ch->rawmaterial[M_SILVER] += LB_METAL; if (IS_SET(obj->c_material, C_WOOL)) ch->rawmaterial[M_WOOL] += LB_OTHER; if (IS_SET(obj->c_material, C_CLOTH)) ch->rawmaterial[M_CLOTH] += LB_OTHER; // old alloys if (IS_SET(obj->c_material, C_STEEL)) ch->rawmaterial[M_STEEL] += LB_METAL; if (IS_SET(obj->c_material, C_BRASS)) ch->rawmaterial[M_BRASS] += LB_METAL; if (IS_SET(obj->c_material, C_BRONZE)) ch->rawmaterial[M_BRONZE] += LB_METAL; // new alloys if (IS_SET(obj->alloy, A_DURALUMIN)) ch->rawmaterial[A_DURALUMIN] += LB_OTHER; if (IS_SET(obj->alloy, A_ROSE_METAL)) ch->rawmaterial[A_ROSE_METAL] += LB_OTHER; if (IS_SET(obj->alloy, A_GALFENOL)) ch->rawmaterial[A_GALFENOL] += LB_OTHER; if (IS_SET(obj->alloy, A_GALINSTAN)) ch->rawmaterial[A_GALINSTAN] += LB_OTHER; if (IS_SET(obj->alloy, A_ELECTRUM)) ch->rawmaterial[A_ELECTRUM] += LB_OTHER; if (IS_SET(obj->alloy, A_ROSE_GOLD)) ch->rawmaterial[A_ROSE_GOLD] += LB_OTHER; if (IS_SET(obj->alloy, A_WHITE_GOLD)) ch->rawmaterial[A_WHITE_GOLD] += LB_OTHER; if (IS_SET(obj->alloy, A_FIELDS_METAL)) ch->rawmaterial[A_FIELDS_METAL] += LB_OTHER; if (IS_SET(obj->alloy, A_KOVAR)) ch->rawmaterial[A_KOVAR] += LB_OTHER; if (IS_SET(obj->alloy, A_SOLDER)) ch->rawmaterial[A_SOLDER] += LB_OTHER; if (IS_SET(obj->alloy, A_MAGNOX)) ch->rawmaterial[A_MAGNOX] += LB_OTHER; if (IS_SET(obj->alloy, A_SILVER_AMALGAM)) ch->rawmaterial[A_SILVER_AMALGAM] += LB_OTHER; if (IS_SET(obj->alloy, A_GOLD_AMALGAM)) ch->rawmaterial[A_GOLD_AMALGAM] += LB_OTHER; if (IS_SET(obj->alloy, A_ALNICO)) ch->rawmaterial[A_ALNICO] += LB_OTHER; if (IS_SET(obj->alloy, A_PLATINUM_STERLING)) ch->rawmaterial[A_PLATINUM_STERLING] += LB_OTHER; if (IS_SET(obj->alloy, A_STERLING_SILVER)) ch->rawmaterial[A_STERLING_SILVER] += LB_OTHER; if (IS_SET(obj->alloy, A_PEWTER)) ch->rawmaterial[A_PEWTER] += LB_OTHER; if (IS_SET(obj->alloy, A_STABALLOY)) ch->rawmaterial[A_STABALLOY] += LB_OTHER; if (IS_SET(obj->alloy, A_ZIRCALOY)) ch->rawmaterial[A_ZIRCALOY] += LB_OTHER; extract_obj( obj ); send_to_char("#0You #7harvest#0 the #7object#0 for raw materials.#n\n\r", ch); return; } void do_mix(CHAR_DATA * ch, char *argument) { OBJ_DATA *obj; OBJ_INDEX_DATA *pObjIndex; char name[MSL]; char buf[MSL]; int hitroll = 0; int damroll = 0; int hp = 0; int mana = 0; int move = 0; int wear = 0; int armor = 0; int rnum = 53; char arg1[MAX_STRING_LENGTH]; argument = one_argument( argument, arg1 ); if (arg1[0] == '\0') { send_to_char("What Alloy do want to create?\n\r", ch); send_to_char("Duralumin: Aluminium, Copper\n\r", ch); send_to_char("Rose Metal: Bismuth, Lead, Tin\n\r", ch); send_to_char("Galfenol: Iron, Gallium\n\r", ch); send_to_char("Brass: Zinc Copper\n\r", ch); send_to_char("Bronze: Tin, Aluminium, Copper\n\r", ch); send_to_char("Galistan: Indium, Tin, Gallium\n\r", ch); send_to_char("Electrum: Gold, Silver, Copper\n\r", ch); send_to_char("Rose Gold: Copper Gold\n\r", ch); send_to_char("White Gold: Nickel, Gold, Palladium\n\r", ch); send_to_char("Fields Metal: Indium, Bismuth, Tin\n\r", ch); send_to_char("Steel: Iron, Carbon\n\r", ch); send_to_char("Kovar: Nickel, Cobalt, Iron\n\r", ch); send_to_char("Solder: Lead, Tin\n\r", ch); send_to_char("Magnox: Aluminium, Magnesium\n\r", ch); send_to_char("Silver: Amalgam: Mercury, Silver\n\r", ch); send_to_char("Gold: Amalgam: Mercury, Gold\n\r", ch); send_to_char("Alnico: Aluminium, Cobalt, Nickel\n\r", ch); send_to_char("Platinum Sterling: Silver, Platinum\n\r", ch); send_to_char("Sterling Silver: Copper, Silver\n\r", ch); send_to_char("Pewter: Lead, Tin, Copper\n\r", ch); send_to_char("Staballoy: Uranium, Titanium\n\r", ch); send_to_char("Zircalloy: Zirconium, Tin\n\r", ch); return; } if (!str_prefix(arg1, "zircalloy"))// Zircalloy: Zirconium, Tin { if (ch->rawmaterial[M_ZIRCONIUM] < LB_OTHER) { sprintf( buf, "#0You dont have enough Zirconium.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_TIN] < LB_METAL) { sprintf( buf, "#0You dont have enough Tin.#n"); send_to_char(buf, ch); return; } ch->alloy[A_ZIRCALOY] += 8; sprintf( buf, "#0You mix Zirconium and Tin to make Zircalloy.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "staballoy"))// Staballoy: Uranium, Titanium { if (ch->rawmaterial[M_URANIUM] < LB_OTHER) { sprintf( buf, "#0You dont have enough Uranium.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_TITANIUM] < LB_METAL) { sprintf( buf, "#0You dont have enough Titanium.#n"); send_to_char(buf, ch); return; } ch->alloy[A_STABALLOY] += 8; sprintf( buf, "#0You mix Uranium and Titanium to make Staballoy.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "pewter"))// Pewter: Lead, Tin, Copper { if (ch->rawmaterial[M_LEAD] < LB_METAL) { sprintf( buf, "#0You dont have enough Lead.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_TIN] < LB_METAL) { sprintf( buf, "#0You dont have enough Tin.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_SILVER] < LB_METAL) { sprintf( buf, "#0You dont have enough Silver.#n"); send_to_char(buf, ch); return; } ch->alloy[A_STERLING_SILVER] += 15; sprintf( buf, "#0You mix Sterling Silver.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "sterlingsilver"))// Sterling Silver: Copper, Silver { if (ch->rawmaterial[M_SILVER] < LB_METAL) { sprintf( buf, "#0You dont have enough Silver.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_COPPER] < LB_METAL) { sprintf( buf, "#0You dont have enough Copper.#n"); send_to_char(buf, ch); return; } ch->alloy[A_STERLING_SILVER] += 10; sprintf( buf, "#0You mix silver and copper to make Sterling Silver.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "platinumsterling"))// Platinum Sterling: Silver, Platinum { if (ch->rawmaterial[M_SILVER] < LB_METAL) { sprintf( buf, "#0You dont have enough Silver.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_PLATINUM] < LB_METAL) { sprintf( buf, "#0You dont have enough Platinum.#n"); send_to_char(buf, ch); return; } ch->alloy[A_PLATINUM_STERLING] += 10; sprintf( buf, "#0You mix platinum and Silver to make Platinum Sterling.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "Alnico"))// Alnico: Aluminium, Cobalt, Nickel { if (ch->rawmaterial[M_COBALT] < LB_METAL) { sprintf( buf, "#0You dont have enough Cobalt.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_ALUMINIUM] < LB_METAL) { sprintf( buf, "#0You dont have enough Aluminium.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_NICKEL] < LB_METAL) { sprintf( buf, "#0You dont have enough Nickel.#n"); send_to_char(buf, ch); return; } ch->alloy[A_ALNICO] += 15; sprintf( buf, "#0You mix Aluminium, Cobalt and Nickel to make Alnico.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "goldamalgam"))// Silver Amalgam { if (ch->rawmaterial[M_GOLD] < LB_METAL) { sprintf( buf, "#0You dont have enough Gold.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_MERCURY] < LB_OTHER) { sprintf( buf, "#0You dont have enough Mercury.#n"); send_to_char(buf, ch); return; } ch->alloy[A_GOLD_AMALGAM] += 8; sprintf( buf, "#0You mix Gold and Mercury to make Gold Amalgam#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "silveramalgam"))// Silver Amalgam { if (ch->rawmaterial[M_SILVER] < LB_METAL) { sprintf( buf, "#0You dont have enough Silver.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_MERCURY] < LB_OTHER) { sprintf( buf, "#0You dont have enough Mercury.#n"); send_to_char(buf, ch); return; } ch->alloy[A_SILVER_AMALGAM] += 8; sprintf( buf, "#0You mix Silver and Mercury to make Silver Amalgam#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "magnox"))// Aluminium Magnesium { if (ch->rawmaterial[M_ALUMINIUM] < LB_METAL) { sprintf( buf, "#0You dont have enough Aluminium.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_MAGNESIUM] < LB_OTHER) { sprintf( buf, "#0You dont have enough Magnesium.#n"); send_to_char(buf, ch); return; } ch->alloy[A_MAGNOX] += 8; sprintf( buf, "#0You mix Aluminium and Magnesium to make Magnox.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "solder"))// Solder: Lead, Tin { if (ch->rawmaterial[M_LEAD] < LB_OTHER) { sprintf( buf, "#0You dont have enough Lead.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_TIN] < LB_METAL) { sprintf( buf, "#0You dont have enough Tin.#n"); send_to_char(buf, ch); return; } ch->alloy[A_SOLDER] += 8; sprintf( buf, "#0You mix Lead and Tin to make Solder.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "kovar"))// Kovar: Nickel, Cobalt, Iron { if (ch->rawmaterial[M_NICKEL] < LB_METAL) { sprintf( buf, "#0You dont have enough Nickel.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_COBALT] < LB_METAL) { sprintf( buf, "#0You dont have enough Cobalt.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_IRON] < LB_METAL) { sprintf( buf, "#0You dont have enough Iron.#n"); send_to_char(buf, ch); return; } ch->alloy[A_KOVAR] += 15; sprintf( buf, "#0You mix Nickel, Cobalt and Iron to make Kovar.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "steel"))// Steel: Iron, Carbon { if (ch->rawmaterial[M_IRON] < LB_METAL) { sprintf( buf, "#0You dont have enough Iron.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_CARBON] < LB_OTHER) { sprintf( buf, "#0You dont have enough Carbon.#n"); send_to_char(buf, ch); return; } ch->rawmaterial[M_STEEL] += 8; sprintf( buf, "#0You mix Iron and Carbon to make Steel.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "fieldsmetal"))// Fields Metal: Indium, Bismuth, Tin { if (ch->rawmaterial[M_TIN] < LB_METAL) { sprintf( buf, "#0You dont have enough Tin.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_BISMUTH] < LB_OTHER) { sprintf( buf, "#0You dont have enough Bismuth.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_INDIUM] < LB_OTHER) { sprintf( buf, "#0You dont have enough Indium.#n"); send_to_char(buf, ch); return; } ch->alloy[A_FIELDS_METAL] += 11; sprintf( buf, "#0You mix Tin, Bismuth and Indium to make Fields Metal.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "whitegold"))// White Gold: Nickel, Gold, Palladium { if (ch->rawmaterial[M_GOLD] < LB_METAL) { sprintf( buf, "#0You dont have enough Gold.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_PALLADIUM] < LB_OTHER) { sprintf( buf, "#0You dont have enough Palladium.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_NICKEL] < LB_METAL) { sprintf( buf, "#0You dont have enough Nickel.#n"); send_to_char(buf, ch); return; } ch->alloy[A_WHITE_GOLD] += 13; sprintf( buf, "#0You mix Gold, Nickel and Palladium to make White Gold.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "rosegold"))// Rose Gold: Copper Gold { if (ch->rawmaterial[M_GOLD] < LB_METAL) { sprintf( buf, "#0You dont have enough Gold.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_COPPER] < LB_METAL) { sprintf( buf, "#0You dont have enough Copper.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_GALLIUM] < LB_OTHER) { sprintf( buf, "#0You dont have enough Gallium.#n"); send_to_char(buf, ch); return; } ch->alloy[A_ROSE_GOLD] += 13; sprintf( buf, "#0You mix Gold and Copper to make Rose Gold.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "Electrum"))// Electrum: Gold, Silver, Copper { if (ch->rawmaterial[M_GOLD] < LB_METAL) { sprintf( buf, "#0You dont have enough Gold.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_SILVER] < LB_METAL) { sprintf( buf, "#0You dont have enough Silver.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_COPPER] < LB_METAL) { sprintf( buf, "#0You dont have enough Copper.#n"); send_to_char(buf, ch); return; } ch->alloy[A_ELECTRUM] += 15; sprintf( buf, "#0You mix Gold, Silver, and Copper to make Electrum.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "Galistan"))// Galistan: Indium, Tin, Gallium { if (ch->rawmaterial[M_TIN] < LB_METAL) { sprintf( buf, "#0You dont have enough Tin.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_INDIUM] < LB_OTHER) { sprintf( buf, "#0You dont have enough Indium.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_GALLIUM] < LB_OTHER) { sprintf( buf, "#0You dont have enough Gallium.#n"); send_to_char(buf, ch); return; } ch->alloy[A_GALINSTAN] += 11; sprintf( buf, "#0You mix Tin, Indium, Gallium to make Galistan.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "Bronze"))// Bronze: Tin, Aluminium, Copper { if (ch->rawmaterial[M_TIN] < LB_METAL) { sprintf( buf, "#0You dont have enough Tin.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_ALUMINIUM] < LB_METAL) { sprintf( buf, "#0You dont have enough aluminium.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_COPPER] < LB_METAL) { sprintf( buf, "#0You dont have enough aluminium.#n"); send_to_char(buf, ch); return; } ch->rawmaterial[C_BRONZE] += 15; sprintf( buf, "#0You mix Tin, Aluminium and Copper to make Bronze.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "Brass"))// Brass: Zinc Copper { if (ch->rawmaterial[M_ZINC] < LB_OTHER) { sprintf( buf, "#0You dont have enough copper.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_COPPER] < LB_METAL) { sprintf( buf, "#0You dont have enough aluminium.#n"); send_to_char(buf, ch); return; } ch->rawmaterial[C_BRASS] += (LB_OTHER + LB_METAL); sprintf( buf, "#0You mix Zinc and Copper to make Brass.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "Duralumin"))// Duralumin: Aluminium, Copper { if (ch->rawmaterial[M_COPPER] < LB_METAL) { sprintf( buf, "#0You dont have enough copper.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_ALUMINIUM] < LB_METAL) { sprintf( buf, "#0You dont have enough aluminium.#n"); send_to_char(buf, ch); return; } ch->alloy[A_DURALUMIN] += 10; sprintf( buf, "#0You mix Copper and Aluminium to make Duralumin.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "rosemetal")) // Rose Metal: Bismuth, Lead, Tin { if (ch->rawmaterial[M_TIN] < 5) { sprintf( buf, "#0You dont have enough Tin.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_LEAD] < 5) { sprintf( buf, "#0You dont have enough Lead.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_BISMUTH] < 5) { sprintf( buf, "#0You dont have enough Bismuth.#n"); send_to_char(buf, ch); return; } ch->alloy[A_ROSE_METAL] += 15; sprintf( buf, "#0You mix Tin, Lead and Bismuth to make Rose Metal.#n"); send_to_char(buf, ch); return; } if (!str_prefix(arg1, "galfenol")) // Galfenol: Iron, Gallium { if (ch->rawmaterial[M_IRON] < LB_METAL) { sprintf( buf, "#0You dont have enough iron.#n"); send_to_char(buf, ch); return; } if (ch->rawmaterial[M_GALLIUM] < LB_METAL) { sprintf( buf, "#0You dont have enough Gallium.#n"); send_to_char(buf, ch); return; } ch->alloy[A_GALFENOL] += 10; sprintf( buf, "#0You mix Iron and Gallium to make Galfenol.#n"); send_to_char(buf, ch); return; } /* if (obj->alloy A_DURALUMIN)) ch->rawmaterial[A_DURALUMIN] += LB_OTHER; if (IS_SET(obj->alloy, A_ROSE_METAL)) ch->rawmaterial[A_ROSE_METAL] += LB_OTHER; if (IS_SET(obj->alloy, A_GALFENOL)) ch->rawmaterial[A_GALFENOL] += LB_OTHER; if (IS_SET(obj->alloy, A_GALINSTAN)) ch->rawmaterial[A_GALINSTAN] += LB_OTHER; if (IS_SET(obj->alloy, A_ELECTRUM)) ch->rawmaterial[A_ELECTRUM] += LB_OTHER; if (IS_SET(obj->alloy, A_ROSE_GOLD)) ch->rawmaterial[A_ROSE_GOLD] += LB_OTHER; if (IS_SET(obj->alloy, A_WHITE_GOLD)) ch->rawmaterial[A_WHITE_GOLD] += LB_OTHER; if (IS_SET(obj->alloy, A_FIELDS_METAL)) ch->rawmaterial[A_FIELDS_METAL] += LB_OTHER; if (IS_SET(obj->alloy, A_KOVAR)) ch->rawmaterial[A_KOVAR] += LB_OTHER; if (IS_SET(obj->alloy, A_SOLDER)) ch->rawmaterial[A_SOLDER] += LB_OTHER; if (IS_SET(obj->alloy, A_MAGNOX)) ch->rawmaterial[A_MAGNOX] += LB_OTHER; if (IS_SET(obj->alloy, A_SILVER_AMALGAM)) ch->rawmaterial[A_SILVER_AMALGAM] += LB_OTHER; if (IS_SET(obj->alloy, A_GOLD_AMALGAM)) ch->rawmaterial[A_GOLD_AMALGAM] += LB_OTHER; if (IS_SET(obj->alloy, A_ALNICO)) ch->rawmaterial[A_ALNICO] += LB_OTHER; if (IS_SET(obj->alloy, A_PLATINUM_STERLING)) ch->rawmaterial[A_PLATINUM_STERLING] += LB_OTHER; if (IS_SET(obj->alloy, A_STERLING_SILVER)) ch->rawmaterial[A_STERLING_SILVER] += LB_OTHER; if (IS_SET(obj->alloy, A_PEWTER)) ch->rawmaterial[A_PEWTER] += LB_OTHER; if (IS_SET(obj->alloy, A_STABALLOY)) ch->rawmaterial[A_STABALLOY] += LB_OTHER; if (IS_SET(obj->alloy, A_ZIRCALOY)) ch->rawmaterial[A_ZIRCALOY] += LB_OTHER; */ return; } void do_smith( CHAR_DATA *ch, char *argument ) { OBJ_DATA *obj; OBJ_INDEX_DATA *pObjIndex; char name[MSL]; char buf[MSL]; int hitroll = 0; int damroll = 0; int hp = 0; int mana = 0; int move = 0; int wear = 0; int armor = 0; int rnum = 53; char arg1[MAX_STRING_LENGTH]; char arg2[MAX_STRING_LENGTH]; char arg3[MAX_STRING_LENGTH]; argument = one_argument( argument, arg1 ); argument = one_argument( argument, arg2 ); argument = one_argument( argument, arg3 ); if ( arg1[0] == '\0' || arg2[0] == '\0' || arg3[0] == '\0') { send_to_char( "Blade Material: steel, adamantite, mithril \n\r", ch ); send_to_char( "Hilt Material: Iron, Gold, Bronze, Ebony Platinum, Silver \n\r", ch ); send_to_char( " Ivory, Marble, Limestone, Quartz \n\r", ch ); // * ivory = curse ebony = blind crystal(quartz) = dispel evil marble = drain // * gold = lightning bronze = acid sandstone(Iron) = fire limestone = poison send_to_char( "Wpn Type :see prof \n\r", ch ); // send_to_char( " \n\r", ch ); send_to_char( "Syntax: smith <wpntype> <hilt> <blade>\n\r", ch ); return; } if ( rnum == 0 || ( pObjIndex = get_obj_index( rnum ) ) == NULL ) { stc( "Missing object, please notify a member of the staff.\n\r", ch ); return; } obj = create_object( pObjIndex, 53); obj->item_type = ITEM_WEAPON; if (!str_prefix(arg1, "dagger")){ obj->value[3] = 0; sprintf( name, "Dagger");} if (!str_prefix(arg1, "knife")){ obj->value[3] = 1; sprintf( name, "Knife");} if (!str_prefix(arg1, "spear")){ obj->value[3] = 2; sprintf( name, "Spear");} if (!str_prefix(arg1, "shortsword")){ obj->value[3] = 3; sprintf( name, "Shortsword");} if (!str_prefix(arg1, "staff")){ obj->value[3] = 4; sprintf( name, "Staff");} if (!str_prefix(arg1, "broadsword")){ obj->value[3] = 5; sprintf( name, "Broadsword");} if (!str_prefix(arg1, "longsword")){ obj->value[3] = 6; sprintf( name, "Longsword");} if (!str_prefix(arg1, "bastardsword")){ obj->value[3] = 7; sprintf( name, "Bastard Sword");} if (!str_prefix(arg1, "two-handed longsword")){ obj->value[3] = 8; sprintf( name, "Two-Handed Longsword");} if (!str_prefix(arg1, "axe")){ obj->value[3] = 9; sprintf( name, "Axe");} if (!str_prefix(arg1, "mace")){ obj->value[3] = 10; sprintf( name, "Mace");} if (!str_prefix(arg1, "whip")){ obj->value[3] = 11; sprintf( name, "Whip");} if (!str_prefix(arg1, "warhammer")){ obj->value[3] = 12; sprintf( name, "Warhammer");} if (!str_prefix(arg1, "flail")){ obj->value[3] = 13; sprintf( name, "Flail");} if (!str_prefix(arg1, "morningstar")){ obj->value[3] = 14;sprintf( name, "Morningstar");} if (!str_prefix(arg1, "polearm")){ obj->value[3] = 15; sprintf( name, "Polearm");} if (!str_prefix(arg1, "club")){ obj->value[3] = 16; sprintf( name, "Club");} if (!str_prefix(arg1, "sickle")){ obj->value[3] = 17; sprintf( name, "Sickle");} if (!str_prefix(arg2, "copper")) { if (ch->rawmaterial[M_COPPER] < 5) { stc( "#0You do not have enough copper.\n\r", ch ); return; } SET_BIT(obj->c_material, C_COPPER); mana = 400; add_affect( obj, APPLY_MANA, mana ); } if (!str_prefix(arg2, "gold")) { if (ch->rawmaterial[M_GOLD] < 5) { stc( "#0You do not have enough gold.\n\r", ch ); return; } SET_BIT(obj->c_material, C_GOLD); mana = 400; add_affect( obj, APPLY_MANA, mana ); } if (!str_prefix(arg2, "ivory")) { if (ch->rawmaterial[M_IVORY] < 2) { stc( "#0You do not have enough Ivory.\n\r", ch ); return; } SET_BIT(obj->c_material, C_IVORY); damroll = 125; add_affect( obj, APPLY_DAMROLL, damroll ); } if (!str_prefix(arg2, "steel")) { if (ch->rawmaterial[M_STEEL] < 5) { stc( "#0You do not have enough steel.\n\r", ch ); return; } SET_BIT(obj->c_material, C_STEEL); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg2, "mithril")) { if (ch->rawmaterial[M_MITHRIL] < 5) { stc( "#0You do not have enough mithril.\n\r", ch ); return; } SET_BIT(obj->c_material, C_MITHRIL); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg2, "wood")) { if (ch->rawmaterial[M_WOOD] < 5) { stc( "#0You do not have enough Wood.\n\r", ch ); return; } SET_BIT(obj->c_material, C_WOOD); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg2, "platinum")) { if (ch->rawmaterial[M_PLATINUM] < 2) { stc( "#0You do not have enough platinum.\n\r", ch ); return; } SET_BIT(obj->c_material, C_PLATINUM); hitroll = 125; add_affect( obj, APPLY_HITROLL, hitroll ); } if (!str_prefix(arg2, "adamantite")) { if (ch->rawmaterial[M_ADAMANTITE] < 5) { stc( "#0You do not have enough adamantite.\n\r", ch ); return; } SET_BIT(obj->c_material, C_ADAMANTITE); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg2, "brass")) { if (ch->rawmaterial[M_BRASS] < 5) { stc( "#0You do not have enough Brass.\n\r", ch ); return; } SET_BIT(obj->c_material, C_BRASS); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg2, "bronze")) { if (ch->rawmaterial[M_BRONZE] < 5) { stc( "#0You do not have enough bronze.\n\r", ch ); return; } SET_BIT(obj->c_material, C_BRONZE); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg2, "ebony")) { if (ch->rawmaterial[M_EBONY] < 2) { stc( "#0You do not have enough ebony.\n\r", ch ); return; } SET_BIT(obj->c_material, C_EBONY); armor = -100; add_affect( obj, APPLY_AC, armor ); } if (!str_prefix(arg2, "limestone")) { if (ch->rawmaterial[M_LIMESTONE] < 2) { stc( "#0You do not have enough Limestone.\n\r", ch ); return; } SET_BIT(obj->c_material, C_LIMESTONE); move = 400; add_affect( obj, APPLY_MOVE, move ); } if (!str_prefix(arg2, "iron")) { if (ch->rawmaterial[M_IRON] < 5) { stc( "#0You do not have enough iron.\n\r", ch ); return; } SET_BIT(obj->c_material, C_IRON); armor = -100; add_affect( obj, APPLY_AC, armor ); } if (!str_prefix(arg2, "quartz")) { if (ch->rawmaterial[M_QUARTZ] < 2) { stc( "#0You do not have enough Quartz.\n\r", ch ); return; } SET_BIT(obj->c_material, C_QUARTZ); armor = -100; add_affect( obj, APPLY_AC, armor ); } if (!str_prefix(arg2, "marble")) { if (ch->rawmaterial[M_MARBLE] < 2) { stc( "#0You do not have enough Marble.\n\r", ch ); return; } SET_BIT(obj->c_material, C_MARBLE); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg2, "silver")) { if (ch->rawmaterial[M_SILVER] < 5) { stc( "#0You do not have enough Silver.\n\r", ch ); return; } SET_BIT(obj->c_material, C_SILVER); armor = -100; add_affect( obj, APPLY_AC, armor ); } // ------------------ ARG3 ------------------- if (!str_prefix(arg3, "copper")) { if (ch->rawmaterial[M_COPPER] < 5) { stc( "#0You do not have enough copper.\n\r", ch ); return; } SET_BIT(obj->c_material, C_COPPER); mana = 400; add_affect( obj, APPLY_MANA, mana ); } if (!str_prefix(arg3, "gold")) { if (ch->rawmaterial[M_GOLD] < 5) { stc( "#0You do not have enough gold.\n\r", ch ); return; } SET_BIT(obj->c_material, C_GOLD); mana = 400; add_affect( obj, APPLY_MANA, mana ); } if (!str_prefix(arg3, "ivory")) { if (ch->rawmaterial[M_IVORY] < 2) { stc( "#0You do not have enough Ivory.\n\r", ch ); return; } SET_BIT(obj->c_material, C_IVORY); damroll = 125; add_affect( obj, APPLY_DAMROLL, damroll ); } if (!str_prefix(arg3, "steel")) { if (ch->rawmaterial[M_STEEL] < 5) { stc( "#0You do not have enough steel.\n\r", ch ); return; } SET_BIT(obj->c_material, C_STEEL); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg3, "mithril")) { if (ch->rawmaterial[M_MITHRIL] < 5) { stc( "#0You do not have enough mithril.\n\r", ch ); return; } SET_BIT(obj->c_material, C_MITHRIL); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg3, "wood")) { if (ch->rawmaterial[M_WOOD] < 5) { stc( "#0You do not have enough Wood.\n\r", ch ); return; } SET_BIT(obj->c_material, C_WOOD); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg3, "platinum")) { if (ch->rawmaterial[M_PLATINUM] < 2) { stc( "#0You do not have enough platinum.\n\r", ch ); return; } SET_BIT(obj->c_material, C_PLATINUM); hitroll = 125; add_affect( obj, APPLY_HITROLL, hitroll ); } if (!str_prefix(arg3, "adamantite")) { if (ch->rawmaterial[M_ADAMANTITE] < 5) { stc( "#0You do not have enough adamantite.\n\r", ch ); return; } SET_BIT(obj->c_material, C_ADAMANTITE); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg3, "brass")) { if (ch->rawmaterial[M_BRASS] < 5) { stc( "#0You do not have enough Brass.\n\r", ch ); return; } SET_BIT(obj->c_material, C_BRASS); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg3, "bronze")) { if (ch->rawmaterial[M_BRONZE] < 5) { stc( "#0You do not have enough bronze.\n\r", ch ); return; } SET_BIT(obj->c_material, C_BRONZE); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg3, "ebony")) { if (ch->rawmaterial[M_EBONY] < 2) { stc( "#0You do not have enough ebony.\n\r", ch ); return; } SET_BIT(obj->c_material, C_EBONY); armor = -100; add_affect( obj, APPLY_AC, armor ); } if (!str_prefix(arg3, "limestone")) { if (ch->rawmaterial[M_LIMESTONE] < 2) { stc( "#0You do not have enough Limestone.\n\r", ch ); return; } SET_BIT(obj->c_material, C_LIMESTONE); move = 400; add_affect( obj, APPLY_MOVE, move ); } if (!str_prefix(arg3, "iron")) { if (ch->rawmaterial[M_IRON] < 5) { stc( "#0You do not have enough iron.\n\r", ch ); return; } SET_BIT(obj->c_material, C_IRON); armor = -100; add_affect( obj, APPLY_AC, armor ); } if (!str_prefix(arg3, "quartz")) { if (ch->rawmaterial[M_QUARTZ] < 2) { stc( "#0You do not have enough Quartz.\n\r", ch ); return; } SET_BIT(obj->c_material, C_QUARTZ); armor = -100; add_affect( obj, APPLY_AC, armor ); } if (!str_prefix(arg3, "marble")) { if (ch->rawmaterial[M_MARBLE] < 2) { stc( "#0You do not have enough Marble.\n\r", ch ); return; } SET_BIT(obj->c_material, C_MARBLE); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg3, "silver")) { if (ch->rawmaterial[M_SILVER] < 5) { stc( "#0You do not have enough Silver.\n\r", ch ); return; } SET_BIT(obj->c_material, C_SILVER); armor = -100; add_affect( obj, APPLY_AC, armor ); } if (IS_SET(obj->c_material, C_COPPER)) { ch->rawmaterial[M_COPPER] -= LB_METAL; obj->toughness += T_COPPER; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_GOLD)) { ch->rawmaterial[M_GOLD] -= LB_METAL; obj->toughness += T_GOLD; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_IVORY)) { ch->rawmaterial[M_IVORY] -= LB_OTHER; obj->toughness += T_IVORY; obj->weight += LB_OTHER; } if (IS_SET(obj->c_material, C_STEEL)) { ch->rawmaterial[M_STEEL] -= LB_METAL; obj->toughness += T_STEEL; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_MITHRIL)) { ch->rawmaterial[M_MITHRIL] -= LB_METAL; obj->toughness += T_MITHRIL; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_WOOD)) { ch->rawmaterial[M_WOOD] -= LB_METAL; obj->toughness += T_WOOD; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_PLATINUM)) { ch->rawmaterial[M_PLATINUM] -= LB_METAL; obj->toughness += T_PLATINUM; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_ADAMANTITE)) { ch->rawmaterial[M_ADAMANTITE] -= LB_METAL; obj->toughness += T_ADAMANTITE; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_BRASS)) { ch->rawmaterial[M_BRASS] -= LB_METAL; obj->toughness += T_BRASS; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_BRONZE)) { ch->rawmaterial[M_BRONZE] -= LB_METAL; obj->toughness += T_BRONZE; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_EBONY)) { ch->rawmaterial[M_EBONY] -= LB_OTHER; obj->toughness += T_EBONY; obj->weight += LB_OTHER; } if (IS_SET(obj->c_material, C_LIMESTONE)) { ch->rawmaterial[M_LIMESTONE] -= LB_OTHER; obj->toughness += T_LIMESTONE; obj->weight += LB_OTHER; } if (IS_SET(obj->c_material, C_IRON)) { ch->rawmaterial[M_IRON] -= LB_METAL; obj->toughness += T_IRON; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_QUARTZ)) { ch->rawmaterial[M_QUARTZ] -= LB_OTHER; obj->toughness += T_QUARTZ; obj->weight += LB_OTHER; } if (IS_SET(obj->c_material, C_MARBLE)) { ch->rawmaterial[M_MARBLE] -= LB_OTHER; obj->toughness += T_MARBLE; obj->weight += LB_OTHER; } if (IS_SET(obj->c_material, C_SILVER)) { ch->rawmaterial[M_SILVER] -= LB_METAL; obj->toughness += T_SILVER; obj->weight += LB_METAL; } if (obj->toughness > 100) obj->toughness = 100; obj->value[0] = 14000; obj->value[1] = number_range (100,300); obj->value[2] = number_range (300,500); obj->level = 55; sprintf( buf,"#7The %s#n", name ); free_string( obj->short_descr ); obj->short_descr = str_dup( buf ); sprintf( buf ,"#7A %s lies on the ground.#n", name ); free_string( obj->description ); obj->description = str_dup( buf ); sprintf( buf, "%s %s ", ch->name, name ); free_string( obj->name ); obj->name = str_dup( buf ); obj_to_char( obj, ch ); obj->questowner = str_dup(ch->pcdata->switchname); act( "$p #7appears in your hands.#n", ch, obj, NULL, TO_CHAR ); act( "$p #7appears in $n's hands.#n", ch, obj, NULL, TO_ROOM ); return; } void do_forge( CHAR_DATA *ch, char *argument ) { OBJ_DATA *obj; OBJ_INDEX_DATA *pObjIndex; char name[MSL]; char buf[MSL]; int hitroll = 0; int damroll = 0; int hp = 0; int mana = 0; int move = 0; int wear = 0; int armor = 0; int rnum = 52; char arg1[MAX_STRING_LENGTH]; char arg2[MAX_STRING_LENGTH]; char arg3[MAX_STRING_LENGTH]; argument = one_argument( argument, arg1 ); argument = one_argument( argument, arg2 ); argument = one_argument( argument, arg3 ); if ( arg1[0] == '\0' || arg2[0] == '\0' || arg3[0] == '\0') { send_to_char( "material: copper, gold, iron, steel, adamantite, mithril \n\r", ch ); send_to_char( " wood, wool, cloth, platinum, organic, leather, silver \n\r", ch ); send_to_char( " tin, brass, bronze \n\r", ch ); send_to_char( "Gem: ruby, topaz, amethyst, jade, topaz, onyx, pearl\n\r", ch ); send_to_char( " sapphire, opal, emerald, diamond \n\r", ch ); send_to_char( "Other: marble, quartz, ebony, ivory \n\r", ch ); send_to_char( "item: bracer, greaves, collar, plate, ring, helmet, shield \n\r", ch ); send_to_char( " boots, sleeves, gauntlets, cloak, belt, mask \n\r", ch ); send_to_char( "Syntax: forge <item> <mat1> <mat2>\n\r", ch ); return; } if (str_prefix(arg1, "bracer") && str_prefix(arg1, "greaves") && str_prefix(arg1, "collar") && str_prefix(arg1, "plate") && str_prefix(arg1, "ring") && str_prefix(arg1, "helmet") && str_prefix(arg1, "boots") && str_prefix(arg1, "sleeves") && str_prefix(arg1, "gauntlets") && str_prefix(arg1, "cloak") && str_prefix(arg1, "belt") && str_prefix(arg1, "mask") && str_prefix(arg1, "shield")) { send_to_char( "That is not the name of a valid piece of Armor. \n\r", ch); return; } if ( rnum == 0 || ( pObjIndex = get_obj_index( rnum ) ) == NULL ) { stc( "Missing object, please notify a member of the staff.\n\r", ch ); return; } obj = create_object(pObjIndex, 52); // send_to_char( "item: bracer, greaves, collar, plate, ring, helmet \n\r", ch ); if (!str_prefix(arg1, "bracer")) { wear = ITEM_WEAR_WRIST; sprintf( name, "Bracer" ); SET_BIT( obj->wear_flags, wear ); } if (!str_prefix(arg1, "greaves")) { wear = ITEM_WEAR_LEGS; sprintf( name, "Greaves" ); SET_BIT( obj->wear_flags, wear ); } if (!str_prefix(arg1, "collar")) { wear = ITEM_WEAR_NECK; sprintf( name, "Collar" ); SET_BIT( obj->wear_flags, wear ); } if (!str_prefix(arg1, "plate")) { wear = ITEM_WEAR_BODY; sprintf( name, "Plate" ); SET_BIT( obj->wear_flags, wear ); } if (!str_prefix(arg1, "ring")) { wear = ITEM_WEAR_FINGER; sprintf( name, "Ring" ); SET_BIT( obj->wear_flags, wear ); } if (!str_prefix(arg1, "helmet")) { wear = ITEM_WEAR_HEAD; sprintf( name, "Helmet" ); SET_BIT( obj->wear_flags, wear ); } // send_to_char( " boots, sleeves, gauntlets, cloak, belt, mask \n\r", ch ); if (!str_prefix(arg1, "boots")) { wear = ITEM_WEAR_FEET; sprintf( name, "Boots" ); SET_BIT( obj->wear_flags, wear ); } if (!str_prefix(arg1, "sleeves")) { wear = ITEM_WEAR_ARMS; sprintf( name, "Sleeves" ); SET_BIT( obj->wear_flags, wear ); } if (!str_prefix(arg1, "gauntlets")) { wear = ITEM_WEAR_HANDS; sprintf( name, "Gauntlets" ); SET_BIT( obj->wear_flags, wear ); } if (!str_prefix(arg1, "cloak")) { wear = ITEM_WEAR_ABOUT; sprintf( name, "Cloak" ); SET_BIT( obj->wear_flags, wear ); } if (!str_prefix(arg1, "belt")) { wear = ITEM_WEAR_WAIST; sprintf( name, "Belt" ); SET_BIT( obj->wear_flags, wear ); } if (!str_prefix(arg1, "mask")) { wear = ITEM_WEAR_FACE; sprintf( name, "Faceplate" ); SET_BIT( obj->wear_flags, wear ); } if (!str_prefix(arg1, "shield")) { wear = ITEM_WEAR_SHIELD; sprintf( name, "Shield" ); SET_BIT( obj->wear_flags, wear ); } if (!str_prefix(arg2, "copper")) { if (ch->rawmaterial[M_COPPER] < 5) { stc( "#0You do not have enough copper.\n\r", ch ); return; } SET_BIT(obj->c_material, C_COPPER); mana = 400; add_affect( obj, APPLY_MANA, mana ); } if (!str_prefix(arg2, "gold")) { if (ch->rawmaterial[M_GOLD] < 5) { stc( "#0You do not have enough gold.\n\r", ch ); return; } SET_BIT(obj->c_material, C_GOLD); mana = 400; add_affect( obj, APPLY_MANA, mana ); } if (!str_prefix(arg2, "ivory")) { if (ch->rawmaterial[M_IVORY] < 2) { stc( "#0You do not have enough Ivory.\n\r", ch ); return; } SET_BIT(obj->c_material, C_IVORY); damroll = 125; add_affect( obj, APPLY_DAMROLL, damroll ); } if (!str_prefix(arg2, "steel")) { if (ch->rawmaterial[M_STEEL] < 5) { stc( "#0You do not have enough steel.\n\r", ch ); return; } SET_BIT(obj->c_material, C_STEEL); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg2, "mithril")) { if (ch->rawmaterial[M_MITHRIL] < 5) { stc( "#0You do not have enough mithril.\n\r", ch ); return; } SET_BIT(obj->c_material, C_MITHRIL); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg2, "wood")) { if (ch->rawmaterial[M_WOOD] < 5) { stc( "#0You do not have enough Wood.\n\r", ch ); return; } SET_BIT(obj->c_material, C_WOOD); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg2, "organic")) { if (ch->rawmaterial[M_ORGANIC] < 5) { stc( "#0You do not have enough organic material.\n\r", ch ); return; } SET_BIT(obj->c_material, C_ORGANIC); obj->value[3] = 14; // Regen } if (!str_prefix(arg2, "diamond")) { if (ch->rawmaterial[M_DIAMOND] < 1) { stc( "#0You do not have enough diamonds.\n\r", ch ); return; } SET_BIT(obj->c_material, C_DIAMOND); obj->value[3] = 9; // Sanc } if (!str_prefix(arg2, "platinum")) { if (ch->rawmaterial[M_PLATINUM] < 2) { stc( "#0You do not have enough platinum.\n\r", ch ); return; } SET_BIT(obj->c_material, C_PLATINUM); hitroll = 125; add_affect( obj, APPLY_HITROLL, hitroll ); } if (!str_prefix(arg2, "adamantite")) { if (ch->rawmaterial[M_ADAMANTITE] < 5) { stc( "#0You do not have enough adamantite.\n\r", ch ); return; } SET_BIT(obj->c_material, C_ADAMANTITE); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg2, "brass")) { if (ch->rawmaterial[M_BRASS] < 5) { stc( "#0You do not have enough Brass.\n\r", ch ); return; } SET_BIT(obj->c_material, C_BRASS); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg2, "bronze")) { if (ch->rawmaterial[M_BRONZE] < 5) { stc( "#0You do not have enough bronze.\n\r", ch ); return; } SET_BIT(obj->c_material, C_BRONZE); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg2, "tin")) { if (ch->rawmaterial[M_TIN] < 5) { stc( "#0You do not have enough TIN.\n\r", ch ); return; } SET_BIT(obj->c_material, C_TIN); move = 400; add_affect( obj, APPLY_MOVE, move ); } if (!str_prefix(arg2, "ebony")) { if (ch->rawmaterial[M_EBONY] < 2) { stc( "#0You do not have enough ebony.\n\r", ch ); return; } SET_BIT(obj->c_material, C_EBONY); armor = -100; add_affect( obj, APPLY_AC, armor ); } if (!str_prefix(arg2, "ruby")) { if (ch->rawmaterial[M_RUBY] < 1) { stc( "#0You do not have a ruby.\n\r", ch ); return; } SET_BIT(obj->c_material, C_RUBY); obj->value[3] = 14; // Haste } if (!str_prefix(arg2, "limestone")) { if (ch->rawmaterial[M_LIMESTONE] < 2) { stc( "#0You do not have enough Limestone.\n\r", ch ); return; } SET_BIT(obj->c_material, C_LIMESTONE); move = 400; add_affect( obj, APPLY_MOVE, move ); } if (!str_prefix(arg2, "topaz")) { if (ch->rawmaterial[M_TOPAZ] < 1) { stc( "#0You do not have enough Topaz.\n\r", ch ); return; } SET_BIT(obj->c_material, C_TOPAZ); obj->value[3] = 10; // Detect hidden } if (!str_prefix(arg2, "amethyst")) { if (ch->rawmaterial[M_AMETHYST] < 1) { stc( "#0You do not have an Amethyst.\n\r", ch ); return; } SET_BIT(obj->c_material, C_AMETHYST); obj->value[3] = 3; // Fly } if (!str_prefix(arg2, "jade")) { if (ch->rawmaterial[M_JADE] < 1) { stc( "#0You do not have enough Jade.\n\r", ch ); return; } SET_BIT(obj->c_material, C_JADE); obj->value[3] = 4; // Infra } if (!str_prefix(arg2, "onyx")) { if (ch->rawmaterial[M_ONYX] < 1) { stc( "#0You do not have enough Onyx.\n\r", ch ); return; } SET_BIT(obj->c_material, C_ONYX); obj->value[3] = 18; // Sneak } if (!str_prefix(arg2, "emerald")) { if (ch->rawmaterial[M_EMERALD] < 1) { stc( "#0You do not have an Emerald.\n\r", ch ); return; } SET_BIT(obj->c_material, C_EMERALD); obj->value[3] = 15; // sup cut } if (!str_prefix(arg2, "pearl")) { if (ch->rawmaterial[M_PEARL] < 1) { stc( "#0You do not have a Pearl.\n\r", ch ); return; } SET_BIT(obj->c_material, C_PEARL); obj->value[3] = 5; // invis } if (!str_prefix(arg2, "opal")) { if (ch->rawmaterial[M_OPAL] < 1) { stc( "#0You do not have an opal.\n\r", ch ); return; } SET_BIT(obj->c_material, C_OPAL); obj->value[3] = 6; // pass door } if (!str_prefix(arg2, "sapphire")) { if (ch->rawmaterial[M_SAPPHIRE] < 1) { stc( "#0You do not have a Sapphire.\n\r", ch ); return; } SET_BIT(obj->c_material, C_SAPPHIRE); obj->value[3] = 12; // chaos shield } if (!str_prefix(arg2, "leather")) { if (ch->rawmaterial[M_LEATHER] < 5) { stc( "#0You do not have enough leather.\n\r", ch ); return; } SET_BIT(obj->c_material, C_LEATHER); armor = -100; add_affect( obj, APPLY_AC, armor ); } if (!str_prefix(arg2, "iron")) { if (ch->rawmaterial[M_IRON] < 5) { stc( "#0You do not have enough iron.\n\r", ch ); return; } SET_BIT(obj->c_material, C_IRON); armor = -100; add_affect( obj, APPLY_AC, armor ); } if (!str_prefix(arg2, "quartz")) { if (ch->rawmaterial[M_QUARTZ] < 2) { stc( "#0You do not have enough Quartz.\n\r", ch ); return; } SET_BIT(obj->c_material, C_QUARTZ); armor = -100; add_affect( obj, APPLY_AC, armor ); } if (!str_prefix(arg2, "marble")) { if (ch->rawmaterial[M_MARBLE] < 2) { stc( "#0You do not have enough Marble.\n\r", ch ); return; } SET_BIT(obj->c_material, C_MARBLE); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg2, "silver")) { if (ch->rawmaterial[M_SILVER] < 5) { stc( "#0You do not have enough Silver.\n\r", ch ); return; } SET_BIT(obj->c_material, C_SILVER); armor = -100; add_affect( obj, APPLY_AC, armor ); } if (!str_prefix(arg2, "wool")) { if (ch->rawmaterial[M_WOOL] < 5) { stc( "#0You do not have enough wool.\n\r", ch ); return; } SET_BIT(obj->c_material, C_WOOL); move = 400; add_affect( obj, APPLY_MOVE, move ); } if (!str_prefix(arg2, "cloth")) { if (ch->rawmaterial[M_CLOTH] < 5) { stc( "#0You do not have enough Cloth.\n\r", ch ); return; } SET_BIT(obj->c_material, C_CLOTH); move = 400; add_affect( obj, APPLY_MOVE, move ); } // ARG 3!!!!! if (!str_prefix(arg3, "copper")) { if (ch->rawmaterial[M_COPPER] < 5) { stc( "#0You do not have enough copper.\n\r", ch ); return; } SET_BIT(obj->c_material, C_COPPER); mana = 400; add_affect( obj, APPLY_MANA, mana ); } if (!str_prefix(arg3, "gold")) { if (ch->rawmaterial[M_GOLD] < 5) { stc( "#0You do not have enough gold.\n\r", ch ); return; } SET_BIT(obj->c_material, C_GOLD); mana = 400; add_affect( obj, APPLY_MANA, mana ); } if (!str_prefix(arg3, "ivory")) { if (ch->rawmaterial[M_IVORY] < 2) { stc( "#0You do not have enough Ivory.\n\r", ch ); return; } SET_BIT(obj->c_material, C_IVORY); damroll = 125; add_affect( obj, APPLY_DAMROLL, damroll ); } if (!str_prefix(arg3, "steel")) { if (ch->rawmaterial[M_STEEL] < 5) { stc( "#0You do not have enough steel.\n\r", ch ); return; } SET_BIT(obj->c_material, C_STEEL); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg3, "mithril")) { if (ch->rawmaterial[M_MITHRIL] < 5) { stc( "#0You do not have enough mithril.\n\r", ch ); return; } SET_BIT(obj->c_material, C_MITHRIL); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg3, "wood")) { if (ch->rawmaterial[M_WOOD] < 5) { stc( "#0You do not have enough Wood.\n\r", ch ); return; } SET_BIT(obj->c_material, C_WOOD); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg3, "organic")) { if (ch->rawmaterial[M_ORGANIC] < 5) { stc( "#0You do not have enough organic material.\n\r", ch ); return; } SET_BIT(obj->c_material, C_ORGANIC); obj->value[3] = 14; // Regen } if (!str_prefix(arg3, "diamond")) { if (ch->rawmaterial[M_DIAMOND] < 1) { stc( "#0You do not have enough diamonds.\n\r", ch ); return; } SET_BIT(obj->c_material, C_DIAMOND); obj->value[3] = 9; // Sanc } if (!str_prefix(arg3, "platinum")) { if (ch->rawmaterial[M_PLATINUM] < 2) { stc( "#0You do not have enough platinum.\n\r", ch ); return; } SET_BIT(obj->c_material, C_PLATINUM); hitroll = 125; add_affect( obj, APPLY_HITROLL, hitroll ); } if (!str_prefix(arg3, "adamantite")) { if (ch->rawmaterial[M_ADAMANTITE] < 5) { stc( "#0You do not have enough adamantite.\n\r", ch ); return; } SET_BIT(obj->c_material, C_ADAMANTITE); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg3, "brass")) { if (ch->rawmaterial[M_BRASS] < 5) { stc( "#0You do not have enough Brass.\n\r", ch ); return; } SET_BIT(obj->c_material, C_BRASS); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg3, "bronze")) { if (ch->rawmaterial[M_BRONZE] < 5) { stc( "#0You do not have enough bronze.\n\r", ch ); return; } SET_BIT(obj->c_material, C_BRONZE); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg3, "tin")) { if (ch->rawmaterial[M_TIN] < 5) { stc( "#0You do not have enough TIN.\n\r", ch ); return; } SET_BIT(obj->c_material, C_TIN); move = 400; add_affect( obj, APPLY_MOVE, move ); } if (!str_prefix(arg3, "ebony")) { if (ch->rawmaterial[M_EBONY] < 2) { stc( "#0You do not have enough ebony.\n\r", ch ); return; } SET_BIT(obj->c_material, C_EBONY); armor = -100; add_affect( obj, APPLY_AC, armor ); } if (!str_prefix(arg3, "ruby")) { if (ch->rawmaterial[M_RUBY] < 1) { stc( "#0You do not have a ruby.\n\r", ch ); return; } SET_BIT(obj->c_material, C_RUBY); obj->value[3] = 14; // Haste } if (!str_prefix(arg3, "limestone")) { if (ch->rawmaterial[M_LIMESTONE] < 2) { stc( "#0You do not have enough Limestone.\n\r", ch ); return; } SET_BIT(obj->c_material, C_LIMESTONE); move = 400; add_affect( obj, APPLY_MOVE, move ); } if (!str_prefix(arg3, "topaz")) { if (ch->rawmaterial[M_TOPAZ] < 1) { stc( "#0You do not have enough Topaz.\n\r", ch ); return; } SET_BIT(obj->c_material, C_TOPAZ); obj->value[3] = 10; // Detect hidden } if (!str_prefix(arg3, "amethyst")) { if (ch->rawmaterial[M_AMETHYST] < 1) { stc( "#0You do not have an Amethyst.\n\r", ch ); return; } SET_BIT(obj->c_material, C_AMETHYST); obj->value[3] = 3; // Fly } if (!str_prefix(arg3, "jade")) { if (ch->rawmaterial[M_JADE] < 1) { stc( "#0You do not have enough Jade.\n\r", ch ); return; } SET_BIT(obj->c_material, C_JADE); obj->value[3] = 4; // Infra } if (!str_prefix(arg3, "onyx")) { if (ch->rawmaterial[M_ONYX] < 1) { stc( "#0You do not have enough Onyx.\n\r", ch ); return; } SET_BIT(obj->c_material, C_ONYX); obj->value[3] = 18; // Sneak } if (!str_prefix(arg3, "emerald")) { if (ch->rawmaterial[M_EMERALD] < 1) { stc( "#0You do not have an Emerald.\n\r", ch ); return; } SET_BIT(obj->c_material, C_EMERALD); obj->value[3] = 15; // sup cut } if (!str_prefix(arg3, "pearl")) { if (ch->rawmaterial[M_PEARL] < 1) { stc( "#0You do not have a Pearl.\n\r", ch ); return; } SET_BIT(obj->c_material, C_PEARL); obj->value[3] = 5; // invis } if (!str_prefix(arg3, "opal")) { if (ch->rawmaterial[M_OPAL] < 1) { stc( "#0You do not have an opal.\n\r", ch ); return; } SET_BIT(obj->c_material, C_OPAL); obj->value[3] = 6; // pass door } if (!str_prefix(arg3, "sapphire")) { if (ch->rawmaterial[M_SAPPHIRE] < 1) { stc( "#0You do not have a Sapphire.\n\r", ch ); return; } SET_BIT(obj->c_material, C_SAPPHIRE); obj->value[3] = 12; // chaos shield } if (!str_prefix(arg3, "leather")) { if (ch->rawmaterial[M_LEATHER] < 5) { stc( "#0You do not have enough leather.\n\r", ch ); return; } SET_BIT(obj->c_material, C_LEATHER); armor = -100; add_affect( obj, APPLY_AC, armor ); } if (!str_prefix(arg3, "iron")) { if (ch->rawmaterial[M_IRON] < 5) { stc( "#0You do not have enough iron.\n\r", ch ); return; } SET_BIT(obj->c_material, C_IRON); armor = -100; add_affect( obj, APPLY_AC, armor ); } if (!str_prefix(arg3, "quartz")) { if (ch->rawmaterial[M_QUARTZ] < 2) { stc( "#0You do not have enough Quartz.\n\r", ch ); return; } SET_BIT(obj->c_material, C_QUARTZ); armor = -100; add_affect( obj, APPLY_AC, armor ); } if (!str_prefix(arg3, "marble")) { if (ch->rawmaterial[M_MARBLE] < 2) { stc( "#0You do not have enough Marble.\n\r", ch ); return; } SET_BIT(obj->c_material, C_MARBLE); hp = 400; add_affect( obj, APPLY_HIT, hp ); } if (!str_prefix(arg3, "silver")) { if (ch->rawmaterial[M_SILVER] < 5) { stc( "#0You do not have enough Silver.\n\r", ch ); return; } SET_BIT(obj->c_material, C_SILVER); armor = -100; add_affect( obj, APPLY_AC, armor ); } if (!str_prefix(arg3, "wool")) { if (ch->rawmaterial[M_WOOL] < 5) { stc( "#0You do not have enough wool.\n\r", ch ); return; } SET_BIT(obj->c_material, C_WOOL); move = 400; add_affect( obj, APPLY_MOVE, move ); } if (!str_prefix(arg3, "cloth")) { if (ch->rawmaterial[M_CLOTH] < 5) { stc( "#0You do not have enough Cloth.\n\r", ch ); return; } SET_BIT(obj->c_material, C_CLOTH); move = 400; add_affect( obj, APPLY_MOVE, move ); } if (IS_SET(obj->c_material, C_COPPER)) { ch->rawmaterial[M_COPPER] -= LB_METAL; obj->toughness += T_COPPER; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_GOLD)) { ch->rawmaterial[M_GOLD] -= LB_METAL; obj->toughness += T_GOLD; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_IVORY)) { ch->rawmaterial[M_IVORY] -= LB_OTHER; obj->toughness += T_IVORY; obj->weight += LB_OTHER; } if (IS_SET(obj->c_material, C_STEEL)) { ch->rawmaterial[M_STEEL] -= LB_METAL; obj->toughness += T_STEEL; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_MITHRIL)) { ch->rawmaterial[M_MITHRIL] -= LB_METAL; obj->toughness += T_MITHRIL; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_WOOD)) { ch->rawmaterial[M_WOOD] -= LB_METAL; obj->toughness += T_WOOD; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_ORGANIC)) { ch->rawmaterial[M_ORGANIC] -= LB_METAL; obj->toughness += T_ORGANIC; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_DIAMOND)) { ch->rawmaterial[M_DIAMOND] -= LB_OTHER; obj->toughness += T_DIAMOND; obj->weight += LB_OTHER; } if (IS_SET(obj->c_material, C_PLATINUM)) { ch->rawmaterial[M_PLATINUM] -= LB_METAL; obj->toughness += T_PLATINUM; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_ADAMANTITE)) { ch->rawmaterial[M_ADAMANTITE] -= LB_METAL; obj->toughness += T_ADAMANTITE; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_BRASS)) { ch->rawmaterial[M_BRASS] -= LB_METAL; obj->toughness += T_BRASS; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_BRONZE)) { ch->rawmaterial[M_BRONZE] -= LB_METAL; obj->toughness += T_BRONZE; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_TIN)) { ch->rawmaterial[M_TIN] -= LB_METAL; obj->toughness += T_TIN; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_EBONY)) { ch->rawmaterial[M_EBONY] -= LB_OTHER; obj->toughness += T_EBONY; obj->weight += LB_OTHER; } if (IS_SET(obj->c_material, C_RUBY)) { ch->rawmaterial[M_RUBY] -= LB_GEM; obj->toughness += T_RUBY; obj->weight += LB_GEM; } if (IS_SET(obj->c_material, C_LIMESTONE)) { ch->rawmaterial[M_LIMESTONE] -= LB_OTHER; obj->toughness += T_LIMESTONE; obj->weight += LB_OTHER; } if (IS_SET(obj->c_material, C_TOPAZ)) { ch->rawmaterial[M_TOPAZ] -= LB_GEM; obj->toughness += T_TOPAZ; obj->weight += LB_GEM; } if (IS_SET(obj->c_material, C_AMETHYST)) { ch->rawmaterial[M_AMETHYST] -= LB_GEM; obj->toughness += T_AMETHYST; obj->weight += LB_GEM; } if (IS_SET(obj->c_material, C_JADE)) { ch->rawmaterial[M_JADE] -= LB_GEM; obj->toughness += T_JADE; obj->weight += LB_GEM; } if (IS_SET(obj->c_material, C_ONYX)) { ch->rawmaterial[M_ONYX] -= LB_GEM; obj->toughness += T_ONYX; obj->weight += LB_GEM; } if (IS_SET(obj->c_material, C_EMERALD)) { ch->rawmaterial[M_EMERALD] -= LB_GEM; obj->toughness += T_EMERALD; obj->weight += LB_GEM; } if (IS_SET(obj->c_material, C_PEARL)) { ch->rawmaterial[M_PEARL] -= LB_GEM; obj->toughness += T_PEARL; obj->weight += LB_GEM; } if (IS_SET(obj->c_material, C_OPAL)) { ch->rawmaterial[M_OPAL] -= LB_GEM; obj->toughness += T_OPAL; obj->weight += LB_GEM; } if (IS_SET(obj->c_material, C_SAPPHIRE)) { ch->rawmaterial[M_SAPPHIRE] -= LB_GEM; obj->toughness += T_SAPPHIRE; obj->weight += LB_GEM; } if (IS_SET(obj->c_material, C_LEATHER)) { ch->rawmaterial[M_LEATHER] -= LB_OTHER; obj->toughness += T_LEATHER; obj->weight += LB_OTHER; } if (IS_SET(obj->c_material, C_IRON)) { ch->rawmaterial[M_IRON] -= LB_METAL; obj->toughness += T_IRON; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_QUARTZ)) { ch->rawmaterial[M_QUARTZ] -= LB_OTHER; obj->toughness += T_QUARTZ; obj->weight += LB_OTHER; } if (IS_SET(obj->c_material, C_MARBLE)) { ch->rawmaterial[M_MARBLE] -= LB_OTHER; obj->toughness += T_MARBLE; obj->weight += LB_OTHER; } if (IS_SET(obj->c_material, C_SILVER)) { ch->rawmaterial[M_SILVER] -= LB_METAL; obj->toughness += T_SILVER; obj->weight += LB_METAL; } if (IS_SET(obj->c_material, C_WOOL)) { ch->rawmaterial[M_WOOL] -= LB_OTHER; obj->toughness += T_WOOL; obj->weight += LB_OTHER; } if (IS_SET(obj->c_material, C_CLOTH)) { ch->rawmaterial[M_CLOTH] -= LB_OTHER; obj->toughness += T_CLOTH; obj->weight += LB_OTHER; } if (obj->toughness > 100) obj->toughness = 100; /* hitroll = 1LB_OTHER0; damroll = 120; armor = -200; add_affect( obj, APPLY_HITROLL, hitroll ); add_affect( obj, APPLY_DAMROLL, damroll ); add_affect( obj, APPLY_AC, armor ); */ obj->material = 0; obj->item_type = ITEM_ARMOR; obj->questowner = str_dup( ch->name ); sprintf( buf, "%s#n", name ); free_string( obj->short_descr ); obj->short_descr = str_dup( buf ); sprintf( buf, "%s#n lies on the ground.", name ); free_string( obj->description ); obj->description = str_dup( buf ); sprintf( buf, "%s ", name ); free_string( obj->name ); obj->name = str_dup( buf ); obj_to_char( obj, ch ); return; }