u/Lowbrow_fishing

▲ 10 r/MUD

Dark Hope MUD - Built On The Idea That MUDs Should Be Fun

I'd just like to thank all the new players who have stopped by to check us out. I also want to give a big thanks to those of you that have been leaving 5 star reviews at Mudverse and Mudvault. I can't tell you how much I appreciate that and the amount of positive support all of you have been showing. Dark Hope was always centered around the idea that MUD's should be fun to play, first and foremost. The features, the game play, and the atmosphere are focused on making the MUD as enjoyable an experience as possible, from the Welcome Wagon that assists new players, to cool features like combos in combat, unique pets called "mascots" that grow in power as you do, and a bevy of skills/spells that are more than just "do more damage" or "give AC buff". We've always wanted to push what a MUD could be, and our biggest motivation has always been, "how cool would it be if we did this?" Even the atmosphere is relaxed. We don't enforce RP, but you are free to play what way if you wish. Dark Hope isn't trying to force any one play style on you. Play how you like to play. That's the entire point. We're always trying to keep things fresh and new. So, feel free to check us out at darkhopemud.com TLS port 6778, or you can check out the web site at darkhopemud.com and connect through our custom web client (complete with all the GMCP tools you've come to expect - aliases, triggers, speedwalks, mapping, and more). We hope to see you there!

reddit.com
u/Lowbrow_fishing — 5 days ago
▲ 0 r/MUD

New LLM Loremaster Added To Dark Hope MUD!

I've been teasing this for a couple of weeks now, but it's time to officially announce the arrival of Arcanus, the loremaster of DHM. As far as I know, he's the first of is kind. He's an actual LLM built from the Gemma model and coded specifically to interact with DHM. It was not easy, but with some creative thinking and good old fashioned stubbornness, Arcanus is live at the Picnic area in Midgaard. As of now, he can answer questions about MUD lore, races, classes, skills/spells, or even specific topics from the help files. He remains in-character at all times (he comes with a 3 layered defense mechanism to prevent abuse). As of now, his limitations are - he can only respond to one player at a time. If he has to search the help files or his lore database, the answers will be considerably slower, his answers still might take some time to generate (20-40 seconds on average), still he always has something interesting to say. And I plan on expanding and improving him down the road. So come by DHM and check him out - darkhopemud.com port 6777 or SSL port 6778.

We also have a host of great features, such as -

300 mortal levels

Dual-Class at level 100

Specialization trees for players over level 200 (regardless of class)

An original combat system and allows players to break the bones of their opponent (or get their own bones broken if they aren't careful) and pull off combos that can alter a fight in a single round.

Permanent pets called mascots/familiars that are custom to each player, gain levels, gain skills, have their own set of commands and powers, and have their own unique equipment.

Powerful and rare objects known as artifacts, these are literally the tools and weapons of the gods. They have their own ego, intelligence, and special powers. They can easily dominate a weaker player. But sometimes the power is worth it!

Mounted combat, where the type of mount matters and different mounts have different abilities.

A web-based client that has powerful scripting (based on Tintin++), GMCP compatibility (for automaps, vitals, separate profiles, and more). Just click the "Play Now" button and off you go!

There's just too much too list here, you'll have to come and see it for yourself!

reddit.com
u/Lowbrow_fishing — 20 days ago
▲ 16 r/MUD

Dark Hope MUD - New Features Added And More On The Way!

First of all, I just want to say a big THANK YOU to everyone who has stopped by since I decided to put this old MUD back online. I never thought there would be players connected to DHM ever again, and it was really special to see so many of you deciding to check it out! That being said, I was never one for sitting still, even when the MUD was offline I worked on it all the time and that hasn't changed at all. So here's a rundown on what I've been working on, a recap of the game's core features, and what you can expect next, because what I'm currently cooking up is easily the most ambitious thing I have ever tried.

First up, coded and added more Skills/Spells for the level 200+ specializations, such as Plant Seed, the snippet of which you can find here on this sub. This allows players to "grow" plants that yield very special fruit that give a powerful buff - a boost to all spell powers by 50 levels - albeit for a very brief time.

Coded Mix Herbs for the Herbalism specialization, which allows player to make soothing poultices that greatly enhance mana/hp/move regeneration.

Added a bevy of druid spells, including Ivy Vines, which trap foes in a tangle of vines that prevents them from fleeing. Rose Thorns, which is a step up and also reduces the AC of the opponent as well as does continual damage. And Invoke Totem, which allows a druid to call for aid from the spirits of the wild. Different totem spirits will respond based on level, and area type, such as eagles, sharks, and even bears and dragons.

Added Study skill for Sages, which allows them to quest for powerful new skills by assembling Tomes. These are permanent boosts, such as 5% increase in exp gained or a boost in spell power by 5 levels. Bonuses against good/evil foes are being coded and will be added soon.

Also made big strides with the web-client. Added GMCP interface, so now the web-client has vitals, spell affects, and even an automapper. The room names even match the color-coding scheme of the MUD so they render properly. This is in addition to the powerful scripting tools it already had for aliases, triggers, speedwalk paths, and more. Just click "connect" and off you go! You can even use different profiles for different characters with the new profile feature!

Coming up is a new series of NPC mobs that have an AI backend, lore masters, quest givers, and much more. These characters will "feel" real! It's not "ChatGPT in a MUD". These are based on custom models built and tailored specifically for the MUD, and they will act like it. This is easily the most intensive thing I have ever tried to code and add. But if I do this right, It will be something nobody has ever done on a MUD before! The basic framework is in place and I begun testing on some early architecture. But so far, everything looks promising! It's a risky move, for sure, but I've always wanted to push the limits of what a MUD can do.

All that is in addition to our regular features:

Over 10,00 rooms spread out over 120 areas and 3 regions, 300 mortal levels, dual class at level 100, specialization trees (regardless of class) at level 200, mounted combat that matters, broken bones and combos in combat, 10 custom classes and 10 custom races, custom pets called "mascots" at level 50 that save, gain levels, and have their own set of commands and equipment; each mascot is unique to their owner, ancient items called "artifacts" that their own intelligence, ego, and distinct powers, Limited and optional PVP, Player owned clans, and so much more!

So, if you want to play an old-school hack-n-slash MUD, where RP isn't enforced, stop by. We'd really like to see you! You can find us at darkhopemud.com and connect through the web client, or connect through your favorite client at darkhopemud.com port 6777. We'll see you there!

reddit.com
u/Lowbrow_fishing — 27 days ago
▲ 16 r/MUD

Dark Hope MUD Is Back Online!

After almost 20 years of being offline, Dark Hope MUD is back! After finding this sub and seeing how many players still are passionate about MUDs, I thought it might be good to open Dark Hope back up to all players. I've been steadily working on it even though it was not open to the public because it was always my baby. DHM is an old Envy codebase that's been completely reworked into something original (of the original 35K lines of code, less than 10K of that is left, plus an additional 40K lines of custom code added on top of that). It's mainly Hack-n-Slash but I've been adding more LBD (learn by doing) features, especially the new specialization for high level players. It's only me right now running it because it's been offline for so longs. However, the code has been updated to work on modern hardware and is stable. Here are some of the features Dark Hope has to offer:

RP casual - Do or don't. However you like to play best. Rule #1 is always to have fun.

300 mortal levels.

Dual-class at level 100 (choose another class to learn skills/spells in without losing what you already have).

Specialization trees for players above level 200, regardless of class.

10 playable classes that were mostly custom coded for Dark Hope MUD.

10 playable races, from the staples of Elves and Dwarves to Minotaurs and Faeries. Race choice matters but no class is barred from any race.

Special pets called mascots that are saveable and come with their own set of commands, can gain levels, can learn skills based on your primary class, have their own equipment, and are unique to each player. These are special mobs that grow with you. Available via a quest at level 50.

Very large world of over 100 areas spread out over 3 main regions. You'll never run out of new places to explore.

If questing is your thing, there are tons of available quests for players of all levels.

Special items called "artifacts" that have their own ego, will, and alignment. These can be imbued with powers but be warned, you don't equip an artifact as much as negotiate with using it. And the stronger ones will easily dominate lower players and or weak-willed characters. But sometimes the power is worth it.

Combat that allows you to break bones or bust out combos.

And so much more!

You can find out more by visiting darkhopemud.com Where you will also find a built-in mud client that has aliases, triggers, and speedwalking commands built-in. Or you can connect using your own preferred client. Check

reddit.com
u/Lowbrow_fishing — 1 month ago
▲ 16 r/MUD

Dark Hope MUD Is Back Online!

After nearly 20 years offline, Dark Hope MUD is back! I've been working on it constantly over those years and so much was added. But after having found this sub and seeing how many people still enjoyed MUDding, I thought I might as well put the old codebase back into action with a few caveats: First, It's just me by myself. There is no other staff. I've updated the code for modern hardware and the latest gcc compilers, but there still might be crashes. It runs stable enough for me, but I figured I better warn you anyway. Second: It's an old-school Hack-n-Slash MUD, but I'm adding more LBD (learn by doing) elements. It's NON RP Enforced. Play how you like to play, but let others do the same. Here are a list of the features that were coded specifically for DHM:

300 mortal levels

Dual class at level 100 (pick another class to gain skills/spells in)

Non-PVP, but there is a PVP battle/tournament system.

10 classes, most of which have custom coded skills and spells you won't find anywhere else.

10 playable races, from the standard Elves and Dwarves, to the mighty Minotaurs and tiny Faeries. No class restriction on races.

Player owned and run clans.

Specialization trees (regardless of class) at level 200 with exceptionally powerful skills and spells.

Special mobs called mascots/familiars that are saveable, level up, gain skills, have their own unique commands, and can wear custom armor and weapons. These are unique to each player. Available via a quest at level 50.

Special items called artifacts that can be imbued with powers, have their own will and ego, and are exceptionally rare.

Over 120 areas. It's a large mud spread out over several regions. You'll never run out of new places to explore.

True mounted combat. Different types of mounts that come with different combat bonuses. Horses, Sharks, Pegasi, Dragons, you name it.

And so many more features that I won't list here.

And I'm always adding new features. Even though it was offline, this mud was my baby and I never stopped working on it.

The website is a bit rough yet. You figure after working on it for 10+ years I'd have it done by now. But it's 90% complete. You can find info about classes, including skill/spell lists, maps to areas, and there's even a built in MUD client with aliases, triggers, and other features built in. You can find it at: https://darkhopemud.com

reddit.com
u/Lowbrow_fishing — 1 month ago
▲ 1 r/MUD

Just A Test To See If I Can Share This Code Snippet.

Below here is a code snippet I wrote for my MUD (currently offline,
 but that may change soon).  The goal is to A.) see how well I'm 
actually able to share snippets here without being able to attach .txt or
 .c files and B.) see how easy it is for anyone to follow what I've 
done.  So with no small degree of trepidation and a hearty handful
 of intrepidity, here goes -

/*
 *  Plant Seed Version 1.0
 *  Copyright 2026 Theodryck
 *
 * This code snippet is the for the skill Plant Seed, which allows players
 * grow plants that have magical fruit.  The player must have a seed, a shovel
 * and be outside in order to use this skill. This is meant to be a very
 * powerful ability for only extremely high level characters.  Feel free
 * to manipulate the object VNUMS as you need to.  For the shovel, I used
 * the one that comes with the stock area Cemetary - VNUM 3604.  The idea
 * is simple: create a plot in a room (an object with no take or hold flags)
 * put a timer on it, when that hits 0, extract the object and replace it with
 * the plant, which is a type of container, and the fruit is loaded inside.
 * Once the fruit is "picked", the plant vanishes with a message.  I'll try
 * to make this as easy and straightforward to use as I can. Feel free to
 * use it as you like so long as the original documentation is unchanged
 * and credit for this code is given -- Theo
 */
 
 /*First, let's get all the declarations out of the way. In merc.h add these */
 
 #define AFF_POWER                  BV36 /*If you haven't adjusted your bitvectors to handle 64 bits, you'll have to */
                                         /*set this to a 32 bit integer below BV31; possibly repurpose an existing bitvector */
 
#define OBJ_VNUM_PLOT                 7
#define OBJ_VNUM_BEAN                24
#define OBJ_VNUM_SHOVEL            3604 /*Adjust these VNUMS as needed */
#define OBJ_VNUM_PLANT               25
#define OBJ_VNUM_FRUIT               26

#define ITEM_PLOT                37 /*Adjust these numbers to fit your needs*/
#define ITEM_BEAN                38

/* In the DO_FUN section we add this: */
DECLARE_DO_FUN(  do_plant_seed ) ; /* Specialization skill --Theo */

/* And in the SPELL_FUN section we add this: */
DECLARE_SPELL_FUN(  spell_power_aura    );

/*That's all for merc.h */

/* In bit.c we'll need to add to the item tables for the new item types */

/*the struct for type_flags[]:*/
const struct flag_type type_flags[ ]=
{
    {"light",            ITEM_LIGHT,         TRUE},
    {"scroll",           ITEM_SCROLL,        TRUE},
    {"wand",             ITEM_WAND,          TRUE},
    {"staff",            ITEM_STAFF,         TRUE},
    {"weapon",           ITEM_WEAPON,        TRUE},
    {"treasure",         ITEM_TREASURE,      TRUE},
    {"armor",            ITEM_ARMOR,         TRUE},
    {"potion",           ITEM_POTION,        TRUE},
    {"furniture",        ITEM_FURNITURE,     TRUE}, <---------Find this table
    {"trash",            ITEM_TRASH,         TRUE},
    {"container",        ITEM_CONTAINER,     TRUE},
    {"drink-container",  ITEM_DRINK_CON,     TRUE},
    {"key",              ITEM_KEY,           TRUE},
    {"food",             ITEM_FOOD,          TRUE},
    {"money",            ITEM_MONEY,         TRUE},
    {"boat",             ITEM_BOAT,          TRUE},
    {"npc_corpse",       ITEM_CORPSE_NPC,    TRUE},
    {"pc_corpse",        ITEM_CORPSE_PC,    FALSE},
    {"fountain",         ITEM_FOUNTAIN,      TRUE},
    {"pill",             ITEM_PILL,          TRUE},
    {"portal",           ITEM_PORTAL,        TRUE},
    {"warp_stone",       ITEM_WARP_STONE,    TRUE},
    {"clothing",         ITEM_CLOTHING,      TRUE},
    {"ranged_weapon",    ITEM_RANGED_WEAPON, TRUE},
    {"ammo",             ITEM_AMMO,          TRUE},
    {"gem",              ITEM_GEM,           TRUE},
    
    /*Add these to it*/
    {   "plot",                 ITEM_PLOT,              TRUE    },    /*New item types do_plant_seed() function --Theo */

/* Next in db.c we need to add the name types to the switch statment*/

/* Find this switch statement*/

  /*
     * Mess with object properties.
     */
    switch ( obj->item_type )
    {
    default:
bug( "Read_object: vnum %d bad type.", pObjIndex->vnum );
break;

    case ITEM_LIGHT:
    case ITEM_TREASURE:
    case ITEM_FURNITURE:
    case ITEM_TRASH:
    case ITEM_CONTAINER:
    case ITEM_DRINK_CON:
    case ITEM_KEY:
    case ITEM_FOOD:
    case ITEM_BOAT:
    case ITEM_CORPSE_NPC:
    case ITEM_CORPSE_PC:
    case ITEM_FOUNTAIN:
    case ITEM_PORTAL:
    case ITEM_WARP_STONE:
    case ITEM_AMMO:
    case ITEM_GEM:
    
    /*Add this to the bottom of it BEFORE the 'break;'*/
    case ITEM_PLOT:
    
 /**************************COPY BELOW HERE************************/  
 
 /* The main function, I have a dedicated .c file for things of this type,
  * but you can just put it at the end of fight.c if you don't have anywhere
  * else that you use.
  */

void do_plant_seed( CHAR_DATA * ch, char * argument )
{
    OBJ_DATA *seed;
    OBJ_DATA *shovel;
    OBJ_DATA *plot;
    OBJ_DATA *ground;
    
    /* First we need to check and see if player has the right items */

     for ( seed = ch->carrying; seed; seed = seed->next_content ) 
    {
if ( seed->pIndexData->vnum == OBJ_VNUM_SEED )
    break;
    }
    
    if ( !IS_OUTSIDE( ch ) )
    {
send_to_char( "You gonna hack through the floor?  You have to be outside in order to work the ground.\n\r", ch );
return;
    }
    
    /* Gotta have a seed to be able to plant */    
    if ( !seed )
    {
send_to_char( "You do not have a magical seed.\n\r", ch );
return;
    }
    
    /* Need to be using a shovel to work the ground */
    
    shovel = ( get_eq_char ( ch, WEAR_WIELD ) );
    
    if( !shovel || shovel->pIndexData->vnum != OBJ_VNUM_SHOVEL )
    { 
     send_to_char("You need a shovel to work the ground!\n\r", ch );
     return;
    }
    
    for ( ground = ch->in_room->contents; ground;ground = ground->next_content )
     {
     if ( ground->item_type == ITEM_PLOT)
      {
            send_to_char("There is already a plot of dirt here!\n\r",ch);
            return;

          }
          
        if( ground->pIndexData->vnum == OBJ_VNUM_PLANT )
         {
             send_to_char( "Harvest the fruit that's here already before trying to plant another seed.\n\r", ch );
             return;
         }    
     }

    plot = create_object( get_obj_index( OBJ_VNUM_PLOT ), 0 );
    obj_to_room( plot, ch->in_room );

    plot->timer = number_fuzzy( 10 );

    act( "You work the ground to create a plot.", ch, plot, NULL, TO_CHAR );
    act( "$n works the ground to create a plot.",   ch, plot, NULL, TO_ROOM );

    extract_obj( seed );
    return;
}

        /***************************END OF FUNCTION******************************/


/* 
 * in magic.c we need to add a couple of bits to do_cast( ) because the power aura
 * ability asociated with the plant seed skill.  It increases the power of spells
 *  by 50% and decreases mana cost by half. If you wish the fruit to give a players
 * different ability, then you can just omit this part and subsitute your own spell
 * instead. If you do plan on using power aura as-is, find this section concerning 
 * casting with gems in function do_cast()
 */
 if ( gem_mana > 0 )
{
    take_mana_char( ch, mana/2, skill_table[sn].mana_type );

    if ( gem_mana < mana / 2 )
ch->mana -= mana/2 - gem_mana;
}
else
    ch->mana -= mana/2;
    }
    else
    {
if ( gem_mana > 0 )
{
    take_mana_char( ch, mana, skill_table[sn].mana_type );

    if ( gem_mana < mana )
ch->mana -= mana - gem_mana;
}


/* Immediately after, add this code */

 /**************************COPY BELOW HERE************************/
 if (ch->level < 100 && !IS_SET( ch->affected_by, AFF_POWER ) )
          {
             ch->mana -= mana;
        (*skill_table[sn].spell_fun) ( sn,URANGE( 1, ch->level, 100 ),ch, vo );
          }
        else if ( ch->level >= 100 && !IS_SET( ch->affected_by, AFF_POWER ) )
         {
             ch->mana -= mana;
       
            (*skill_table[sn].spell_fun) (sn, URANGE (1,dlevel,100),ch, vo );                                                         

         }
         else /* For players affected by the aura of power spell */
         {
              dlevel += 50;
              mana = mana / 2;                                      
              ch->mana -= mana;
              (*skill_table[sn].spell_fun) (sn, URANGE (1,dlevel,150),ch, vo );
         }    
         
         /*******************END COPY**********************/
 
/*
 * We also need to create a spell in magic.c that will handle the magical abilities 
 * of the object created.
 *
/* This "spell" just sets a bit that we can use.  I use it to increase 
 * the power of spells by 50% as well as halve the mana cost. You can
 * change this to suit your own needs.
 */

  /**************************COPY BELOW HERE************************/
void spell_power_aura( int sn, int level, CHAR_DATA *ch, void *vo )
{
    CHAR_DATA  *victim = (CHAR_DATA *) vo;
    AFFECT_DATA af;
    int       chance;
    char      buf[MAX_STRING_LENGTH];
     
     sn = skill_lookup( "power aura" ); /*This is to set sn to the "proper" values listed in const.c  --Theo */

    if ( is_affected( victim, sn ) )
return;

    af.type      = sn;
    af.duration  = number_fuzzy( 10 );  /* All we want is to set the bit AFF_POWER which we can then use elswere -- Theo */
    af.location  = APPLY_NONE;
    af.modifier  = 0;
    af.bitvector = AFF_POWER;
    affect_to_char( victim, &af );
    

    send_to_char( "An aura of {bPOWER{x surrounds you!\n\r", victim );
    act( "An aura of {bPOWER{x surrounds $n!\n\r",
victim, NULL, NULL, TO_ROOM );

    return;
}
          /*******************END COPY**********************/
/* And since we added a spell, we need to add it to the skill_table[] in const.c  Add it right to the end
* of the struct.  Just above where you see this - }; */
  /**************************COPY BELOW HERE************************/

"power aura",{ L_ARC },
spell_power_aura,TAR_CHAR_DEFENSIVE,POS_STANDING,
NULL,5,12,
"","Your {bPOWERFUL{x aura fades...",
SCHOOL_CONJURATION,
MANA_EARTH
    },
/*******************END COPY**********************/
/* We need to add a few things to update.c in obj_update
 * in order to turn the plot into a plant that loads the 
 * fruit for picking
 */
 
 /*Add these variables to the start of obj_update( ) */
    OBJ_DATA  *plant;
    OBJ_DATA  *fruit;
    int        num;
    
 /* In obj_update( ) look for the switch statement and add this: */
  switch ( obj->item_type )
    {
    default:              message = "$p vanishes.";         break;
    case ITEM_FOUNTAIN:   message = "$p dries up.";         break;
    case ITEM_PLOT:       message =  "The fruits of hard work have paid off and $p has fully matured."; break; <-------Add this line here.
    case ITEM_CORPSE_NPC: 

    case ITEM_CORPSE_PC:  message = "$p decays into dust.";
    
/* A little further down you'll see this block of code: */
    if ( obj->carried_by )
    {
        act( message, obj->carried_by, obj, NULL, TO_CHAR );
    }
    else
      if ( obj->in_room && ( rch = obj->in_room->people ) )
      {
    act( message, rch, obj, NULL, TO_ROOM );
    act( message, rch, obj, NULL, TO_CHAR );
          }
          
/* Add this right below it: */

  /**************************COPY BELOW HERE************************/
             /* 
              * For "do_plant" specialization
              * if obj is a plot, remove it and replace
              * with a plant bearing fruit 
              * --Theo
              */
             
         if( obj->pIndexData->vnum == OBJ_VNUM_PLOT )
          {
            plant = create_object( get_obj_index( OBJ_VNUM_PLANT ), 0 );
            obj_to_room( plant, obj->in_room );
                
            for( num = 1; num <= ( number_fuzzy( 2 )  ); num++  )       /* Each plant yeilds between 1-3 fruit */
             {
                fruit = ( create_object( get_obj_index( OBJ_VNUM_FRUIT ) , 0 ) );
                obj_to_obj( fruit, plant );
             } 
          } 
          
        /**************END COPY********************/       
        
/* In act_object.c, in the function do_get( ), we need to add a bit
 * of code to get the plant to vanish once the fruit has been picked.
 */
 
/* First we need to see if player only takes one fruit at a time and check that
 * to see if anything remains in the plant, and if not, extract the plant.
 * So find this block of code -
 */
 if ( str_cmp( arg1, "all" ) && str_prefix( "all.", arg1 ) )
{
    /* 'get obj container' */
    obj = get_obj_list( ch, arg1, container->contains );

    if ( !obj )
    {
act( "I see nothing like that in the $T.",
    ch, NULL, arg2, TO_CHAR );
return;
    }
    
        get_obj( ch, obj, container );
                
/* Immediately after, add this code to check the contents of the plant.
 * Make sure the added code is INSIDE the braces for the if statement. 
 */
       /**************************COPY BELOW HERE************************/
       
 if ( (container->pIndexData->vnum == OBJ_VNUM_PLANT) && !container->contains )
  { 
    act( "$p has given up its fruit and withers to the ground.", ch, container, NULL, TO_ROOM );
act( "$p has given up its fruit and withers to the ground.", ch, container, NULL, TO_CHAR );
extract_obj( container );

found = TRUE;
  } 
         /**************END COPY********************/   
         
 /* And then find the else statement right after that looks for "get all container" */
 else
{
    /* 'get all container' or 'get all.obj container' */
            OBJ_DATA *obj_next;

    found = FALSE;
    for ( obj = container->contains; obj; obj = obj_next )
    {
                obj_next = obj->next_content;

  if ( obj->deleted )
      continue;

  if ( ( arg1[3] == '\0' || is_name( &arg1[4], obj->name ) )
     && can_see_obj( ch, obj ) )
   {
    found = TRUE;
    get_obj( ch, obj, container );
   
/* Add this code right after.  Again, make sure you add the code INSIDE the braces for the if statement.  
 * Otherwise it might compile, but it won't work.
 */
         /**************************COPY BELOW HERE************************/
         
            if ( (container->pIndexData->vnum == OBJ_VNUM_PLANT) && (arg1[3] == '\0') )
             { 
                act( "$p has given up its fruit and withers to the ground.", ch, container, NULL, TO_ROOM );
                act( "$p has given up its fruit and withers to the ground.", ch, container, NULL, TO_CHAR );
                extract_obj( container );
                  
             }
        /**************END COPY********************/   
        
/* And lastly, we need to add the "plant seed" command to the command table in interp.c */

    { "plant seed" ,   do_plant_seed,   POS_STANDING,    0,  LOG_NORMAL, 1,},  /* Plant seed skill -- Theo */

/* That's all for the code parts */
/*****ITEMS NEEDED****/

/* 
 * I created these in limbo.are, but you can use any area you want
 */
 
/*The seed */
#39
magical seed~
a magical seed~
A small white seed sits on the ground.~
~
37 0 1
0~ 0~ 0~ 0~ 0~
1 0 00

/*The plot */
#7
dirt plot~
a plot of dirt~
A plot of dirt used for gardening is here.~
~
37 0 0
0~ 0~ 0~ 0~ 0~
0 0 00

/*The plant - with color code. You can adjust the long_descr to be A Magical plant is growing here. if you don't have/want the color.*/
/* NOTE: This is a container that only holds 1kg*/
#25
magical plant~
a magical plant~
{o{gA {wM{yA{wG{yI{wC{yA{wL{g plant is growing here.{x~
~
15 68 0
1~ 0~ 0~ 0~ 0~
0 0 00

/*The magical fruit, again with color code. */
#26
magical fruit~
{o{gA '/{wM{yA{wG{yI{wC{yA{wL{g\' {mF{cr{ru{ci{mt{x~
A {ygolden{x {o{mf{cr{ru{ci{mt{x that seems to call to you lies on the ground...~
~
26 0 1
100~ power aura~  ~  ~  ~
1 100 00
#30
clean parchment~
a clean parchment~
A clean parchment lies here~
~
2 0 16385
0~  ~  ~  ~  ~

/* 
 * And that should be all there is.  It should be fairly straightforward to install on most
 * DIKU/Merc/Envy/whatever variants.  You can adjust things to make it based on learned percentage
 * like you would any other spell or skill, or you can do what I do and link it to a check_improve( )
 * function that checks to see if the skill is improved slightly with each use.
 */
reddit.com
u/Lowbrow_fishing — 2 months ago
▲ 9 r/MUD

Code Snippets?

Ever since places like ftp,game,org and mudbytes.com went offline it seems like code snippets for MUDs have been in short supply. Many of the snippets I wrote were available through places like that. Though orcs.biz has an archive of those sites, which have nearly all of those old snippets. Is there any new place to post or download snippets? I still write MUD code quite often and a lot of it I'd like to share. I just compiled a snippet for an ability to plant a seed in a plot, have the plant grow, the plant bears fruit that give buffs when eaten. After all the fruit is picked, the plant withers and dies. Are there any good sites out there where I might be able to post this snippet and maybe a few more like it?

u/Lowbrow_fishing — 2 months ago
▲ 9 r/MUD

Hack-n-Slash - RP - LBD, What's The Type Of MUD You Prefer?

I started out playing a hack-n-slash MUD called Dragon Swords way back in '94, and I ended up playing there for a long time. Sure, 120-130 people on and tons of social interactivity were great, but I always liked HnS. I never was much one for RP, I always preferred a more casual environment. I'm wondering what types of MUDs everyone else liked. ROM, Circle, Merc, something else? I liked Envy best and Merc was a close second. I had more fun than I can remember back then, investing way too much of my life into my characters. I'm asking because as I mentioned before, I still have the code base from the MUD I built and ran from 1997-2008. I'm thinking of bringing it back if people would be interested.

reddit.com
u/Lowbrow_fishing — 2 months ago
▲ 16 r/MUD

Old Merc/Envy MUD player. Played one, Built Another.

I should have looked this sub up sooner. Gotta figure there would still be those who were into MUDs. Those old games will always be near and dear to my heart. I started playing back in '94 on a heavily modified Merc MUD called 'Dragon Swords', which I think is still around. I worked my way up to being an immortal and played there for years. I even went back in 2010 for another long run.

I was a pretty good coder back in the day, and a ton of my snippets are still probably floating around out there somewhere. In 1997, I launched my own MUD; a heavily modified Envy/UltraEnvy called 'Age of Infinity'. I had a pretty good player base, not huge, but good. About 40 were on at any given time during its peak. I took it down, totally reworked it (again) and relaunched as 'Dark Hope' MUD in 2000. It ran until 2008. I still have the code and I work on it all the time, not that anyone but me will ever see it, but it's still a fun little project and keeps my coding skills at least somewhat active.

Anyway, nice to see this sub. I might like to spend some time here.

reddit.com
u/Lowbrow_fishing — 2 months ago