{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Courier New;}{\f1\fswiss\fcharset0 Arial;}} {\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\f0\fs20 I wrote this up one night in about 45 minutes or so. It's not the greatest way of doing this I know, but a friend of mine asked me if I could create a small mining code that wouldn't be difficult to add, and this is just what I came up with. In the do_mining code you will have to build the pick axe object, and remove the ch->in_room checks. You don't have to contact me or anything if you use this, maybe if you could just add something into the helpfile for it or whatever you wanna do, that would be cool. I'm also putting in the junk command I added later on to get rid of the materials since I only allow for 30 materials total to be held. Also, this could easily be converted to make you actually mine the objects for the materials, I just use a point system cause it was fast and easy to do.\par \par Josh Erickson -AKA- Azmodian - Coder for Malacious Bliss\par \par \par ----Merc.h-----\par I did this in my char_data, you can add it into either char_data or pc_data\par \par int gld;\par int silv;\par int ore;\par int adamantium;\par int thorium;\par \par ----Save.c-----\par in fwrite_char I added this under fprintf ( fp, "Exp %ld\\n", ch->exp );\par \par fprintf ( fp, "Gld %d\\n", ch->gld );\par fprintf ( fp, "Slv %d\\n", ch->silv );\par fprintf ( fp, "Adama %d\\n", ch->adamantium );\par fprintf ( fp, "Thorium %d\\n", ch->thorium );\par fprintf ( fp, "Ore %d\\n", ch->ore );\par \par further down in fread_char \par \par in case 'A' under KEY ( "Act2", ch->act2, fread_flag ( fp ) );\par \par add--> KEY ( "Adama", ch->adamantium, fread_number ( fp ) );\par \par in case 'G' under KEY ( "Gold", ch->gold, fread_number ( fp ) );\par \par add--> KEY ( "Gld", ch->gld, fread_number ( fp ) );\par \par in case 'S' under KEY ( "Silv", ch->silver, fread_number ( fp ) );\par \par add--> KEY ( "Slv", ch->silv, fread_number ( fp ) );\par \par in case 'T' above KEY ( "Tier", ch->pcdata->tier, fread_number ( fp ) );\par \par add--> KEY ( "Thorium", ch->thorium, fread_number ( fp ) );\par \par Ok, now if you are running a stock version of rot/rom, or if you haven't yet added anything needed for a case 'O' yet, look for case 'N', now since I don't know what your fread_char has in it. right above case 'P':--\par \par add--> case 'O':\par KEY ( "Ore", ch->ore, fread_number ( fp ) );\par break;\par \par ----that should take care of save.c----\par \par ----act_info.c----\par \par Or wherever you wanna add the mining command.\par \par void do_mine(CHAR_DATA *ch, char *argument)\par \{\par char arg[MAX_INPUT_LENGTH];\par OBJ_DATA *pick;\par int mnum;\par \par mnum = ch->gld + ch->silv + ch->ore + ch->adamantium + ch->thorium;\par \par one_argument ( argument, arg );\par \par pick = get_eq_char ( ch, WEAR_HOLD );\par \par if ( arg[0] == '\\0')\par \{\par send_to_char ( "You can mine the Following materials: Ore Silver Gold Thorium Adamantium", ch );\par return;\par \}\par \par if ( pick == NULL )\par \{\par send_to_char ( "You are not holding anything!\\n\\r", ch );\par return;\par \}\par \par if ( pick->pIndexData->vnum != 99 )\par \{\par send_to_char ( "You must be holding a pick axe to mine!\\n\\r", ch);\par return;\par \}\par \par if ( mnum >= 30 )\par \{\par send_to_char ( "You are already carrying your limit in materials, you may not carry more than 30 pieces at a time\\n\\r", ch );\par return;\par \}\par \par if ( !str_cmp (arg, "ore" ) && ch->in_room->vnum >= 9500 && ch->in_room->vnum <= 9519 )\par \{\par if (number_percent () > 90 )\par \{\par send_to_char ( "You begin to mine.....", ch);\par WAIT_STATE ( ch, 60 );\par send_to_char ("You have found a piece of Ore\\n\\r", ch);\par send_to_char ("\\n\\r", ch );\par send_to_char ("You are exhausted, you must wait a little bit", ch );\par ch->ore += 1;\par \}\par else\par \{\par send_to_char ("You begin to mine.....You found nothing", ch );\par WAIT_STATE ( ch, 10 );\par return;\par \}\par \}\par \par if ( !str_cmp (arg, "silver" ) && ch->in_room->vnum >= 9540 && ch->in_room->vnum <= 9559 )\par \{\par if (number_percent () > 90 )\par \{\par send_to_char ( "You begin to mine.....", ch);\par WAIT_STATE ( ch, 60 );\par send_to_char ("You have found a piece of silver\\n\\r", ch);\par send_to_char ("\\n\\r", ch );\par send_to_char ("You are exhausted, you must wait a little bit", ch );\par ch->silv += 1;\par \}\par else\par \{\par send_to_char ("You begin to mine.....You found nothing", ch );\par WAIT_STATE ( ch, 10 );\par return;\par \}\par \}\par \par if ( !str_cmp (arg, "gold" ) && ch->in_room->vnum >= 9520 && ch->in_room->vnum <= 9539 )\par \{\par if (number_percent () > 90 )\par \{\par send_to_char ( "You begin to mine.....", ch);\par WAIT_STATE ( ch, 60 );\par send_to_char ("You have found a piece of gold\\n\\r", ch);\par send_to_char ("\\n\\r", ch );\par send_to_char ("You are exhausted, you must wait a little bit", ch );\par ch->gld += 1;\par \}\par else\par \{\par send_to_char ("You begin to mine.....You found nothing", ch );\par WAIT_STATE ( ch, 10 );\par return;\par \}\par \}\par \par if ( !str_cmp (arg, "thorium" ) && ch->in_room->vnum >= 9560 && ch->in_room->vnum <= 9579 )\par \{\par if (number_percent () > 90 )\par \{\par send_to_char ( "You begin to mine.....", ch);\par WAIT_STATE ( ch, 60 );\par send_to_char ("You have found a piece of Thorium\\n\\r", ch);\par send_to_char ("\\n\\r", ch );\par send_to_char ("You are exhausted, you must wait a little bit", ch );\par ch->thorium += 1;\par \}\par else\par \{\par send_to_char ("You begin to mine.....You found nothing", ch );\par WAIT_STATE ( ch, 10 );\par return;\par \}\par \}\par \par if ( !str_cmp (arg, "adamantium" ) )\par \{\par if (number_percent () > 90 && ch->in_room->vnum >= 9580 && ch->in_room->vnum <= 9599 )\par \{\par send_to_char ( "You begin to mine.....", ch);\par WAIT_STATE ( ch, 60 );\par send_to_char ("You have found a piece of Adamantium\\n\\r", ch);\par send_to_char ("\\n\\r", ch );\par send_to_char ("You are exhausted, you must wait a little bit", ch );\par ch->adamantium += 1;\par \}\par else\par \{\par send_to_char ("You begin to mine.....You found nothing", ch );\par WAIT_STATE ( ch, 10 );\par return;\par \}\par \}\par \}\par \f1\par \par \f0 void do_junk(CHAR_DATA *ch, char *argument)\par \{\par char arg1[MAX_INPUT_LENGTH];\par char arg2[MAX_INPUT_LENGTH];\par long value;\par \par \par smash_tilde ( argument );\par argument = one_argument ( argument, arg1 );\par strcpy ( arg2, argument );\par \par if ( arg1[0] == '\\0' || arg2[0] == '\\0')\par \{\par send_to_char ("Syntax: junk <material> <amount>\\n\\r", ch );\par return;\par \}\par \par value = is_number ( arg2 ) ? atol ( arg2 ) : 1;\par \par if ( !str_cmp ( arg1, "ore" ) && ch->ore >= value )\par \{\par printf_to_char ( ch, "You toss out %ld ore\\n\\r", value );\par ch->ore -= value;\par \}\par else if ( !str_cmp ( arg1, "silver" ) && ch->silv >= value)\par \{\par printf_to_char ( ch, "You toss out %ld silver\\n\\r", value);\par ch->silv -= value;\par \}\par else if ( !str_cmp ( arg1, "gold" ) && ch->gld >= value)\par \{\par printf_to_char (ch, "You toss out %ld gold\\n\\r", value);\par ch->gld -= value;\par \}\par else if ( !str_cmp ( arg1, "adamantium" ) && ch->adamantium >= value )\par \{\par printf_to_char (ch, "You toss out %ld adamantium\\n\\r", value );\par ch->adamantium -= value;\par \}\par else if ( !str_cmp ( arg1, "thorium" ) && ch->thorium >= value )\par \{\par printf_to_char (ch, "You toss out %ld thorium\\n\\r", value );\par ch->thorium -= value;\par \}\par else\par \{\par send_to_char ("You can't do that\\n\\r", ch );\par \}\par return;\par \par \}\par \f1\par \par Now, that you got everything in, go into interp.c and interp.h and declare the commands, compile, and go. It should go in with no problems. Enjoy!\par }