merentha_fluffos_v2/
merentha_fluffos_v2/bin/
merentha_fluffos_v2/fluffos-2.9-ds2.03/
merentha_fluffos_v2/fluffos-2.9-ds2.03/ChangeLog.old/
merentha_fluffos_v2/fluffos-2.9-ds2.03/Win32/
merentha_fluffos_v2/fluffos-2.9-ds2.03/compat/
merentha_fluffos_v2/fluffos-2.9-ds2.03/compat/simuls/
merentha_fluffos_v2/fluffos-2.9-ds2.03/include/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/clone/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/command/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/data/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/etc/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/include/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/inherit/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/inherit/master/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/log/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/single/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/single/tests/compiler/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/single/tests/efuns/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/single/tests/operators/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/u/
merentha_fluffos_v2/fluffos-2.9-ds2.03/tmp/
merentha_fluffos_v2/fluffos-2.9-ds2.03/windows/
merentha_fluffos_v2/lib/cfg/
merentha_fluffos_v2/lib/cfg/races/
merentha_fluffos_v2/lib/cmds/abilities/
merentha_fluffos_v2/lib/cmds/actions/
merentha_fluffos_v2/lib/cmds/spells/
merentha_fluffos_v2/lib/daemon/include/
merentha_fluffos_v2/lib/daemon/services/
merentha_fluffos_v2/lib/doc/
merentha_fluffos_v2/lib/doc/building/
merentha_fluffos_v2/lib/doc/help/classes/
merentha_fluffos_v2/lib/doc/help/general/
merentha_fluffos_v2/lib/doc/help/races/
merentha_fluffos_v2/lib/doc/help/skills/
merentha_fluffos_v2/lib/doc/help/stats/
merentha_fluffos_v2/lib/doc/man/efuns/
merentha_fluffos_v2/lib/doc/man/lfuns/
merentha_fluffos_v2/lib/doc/news/
merentha_fluffos_v2/lib/doc/old/
merentha_fluffos_v2/lib/doc/old/concepts/
merentha_fluffos_v2/lib/doc/old/lpc/constructs/
merentha_fluffos_v2/lib/doc/old/lpc/types/
merentha_fluffos_v2/lib/domains/ROOMS/
merentha_fluffos_v2/lib/domains/obj/armour/
merentha_fluffos_v2/lib/domains/obj/monsters/
merentha_fluffos_v2/lib/domains/obj/other/
merentha_fluffos_v2/lib/domains/obj/weapons/
merentha_fluffos_v2/lib/realms/petrarch/
merentha_fluffos_v2/lib/save/daemons/
merentha_fluffos_v2/lib/save/rid/
merentha_fluffos_v2/lib/save/users/a/
merentha_fluffos_v2/lib/save/users/p/
merentha_fluffos_v2/lib/save/users/t/
merentha_fluffos_v2/lib/std/login/
merentha_fluffos_v2/lib/std/obj/
merentha_fluffos_v2/win32/
This file is intended to describe the special magic and combat rounds
which exit in the Merentha Lib.

In most MUDs you will have a command for fighters called 'whirl'.  This
command will have a fighter whirl and hit his enemy, usually in the same
round they typed the command.  This, although it works, does not leave the
defendant any chance to escape.

The special magic and combat rounds are a way to give the target a
fighting chance.  Both the special magic and combat rounds work the same
and so I will only describe how the combat rounds work, since the same is
true for magic.

First the functions:

          Magic                                 Combat
    set_casting()                           set_special()
    set_casting_damage()                    set_special_damage()
    set_magic_casting()                     set_combat_special()

Now a description of how it all works.  You will create a command in
/cmds/abilities/ and I've it a name, for example whirl.c.  This file will
then check if the caster is able to use this command and so forth, and
from inside this file the functions set_special(), set_special_damage()
and set_combat_special() are called.

Notice that there is no set_target() function.  So if you set your combat
special to hit in 3 rounds time and by that time the target has changed
you will hit your new target.  Fortunalty the way the code is this
shouldn't happen, but it could.  This may be upgraded in the next system
to include a set_target().

Also note that there is no set for defense or anything like that.  The
reason being is that I have intentionally left this for the whirl.c
command.  Though there are general formulas used for normal combat rounds
to determin hits/misses and damage it is logical to assume that these
formulas would not be used to judge hits from special combat rounds.

So now.....

Lets say in your whirl.c command you have determined that the whirl will
take 1 round to hit, do 25 points of damage.  You will then add something
similar to:
  message("skill", "You whirl at your target.", this_player());
  this_player()->set_special(1);
  this_player()->set_special_damage(25);
  this_player()->set_combat_special( ({
      "You hit your target.",
      "You get hit with a whirl.",
      this_player()->query_cap_name()+" hits his target."
    }) );

Then 1 round later your 25 hp hit will occure on your target and the
messages will be displayed.  You will of course want to display messages
to the target and others in the room initally like the one you displayed
before the set_special() call.

If you decide your whirl misses I would suggest still using these calls,
just set the damage to 0 instead of 25 and a default miss message will be
displayed.

I hope this helps.  Magic is done the exact same way.  I have placed some
examples in /cmds/abilities/ and /cmds/spells/ to show in greater detail
some ways to use these calls.