Coding skills is about as simple or complex as the skill you are coding.
If the skill is not to do anything, like melee or attack, it just needs
to look like this:

inherit "/std/skills/skill";

void create() {
    ::create();
}

Now if you actually want the skill to DO something, it gets a little
more complex.
Define another function in the skill file called:
void skill_func(object from, object at, string args);

NOTE: when a player uses a skill there is NO automatic roll against skill
level. if you want to know the player's %skill level with that skill, it is
stored in:
    props["skill level"]

from is who is using the skill
at is what the skill is being used on
args are optional extra arguements that the skill may need.
Note: the player uses a skill like this:
use <skill> at <target> with <optional args>
so keep that in mind.

Also, if you want to limit skill use by only allowing a certain number of
uses / day etc., put the following line in skill_func:
	from->set_last_use(string skill)
where string skill is the skill name in quotes.  This will set the last
use time to the current mud time.  To know the amount of seconds since 
the last use...

First put:
#include <clock.h>
at the top of your file
Then, 
	time() - (int)from->query_last_use(string skill);
will give the number of seconds since the skill was last used.  Similarly,
You may use:
	(time() - (int)from->query_last_use(string skill))/MINUTE
	(time() - (int)from->query_last_use(string skill))/HOUR
	(time() - (int)from->query_last_use(string skill))/DAY
	(time() - (int)from->query_last_use(string skill))/WEEK
	(time() - (int)from->query_last_use(string skill))/MONTH
	(time() - (int)from->query_last_use(string skill))/YEAR

to get the time from the last use in the respective units.
(in MUD TIME not real time)
See help calendar for more on the mud clock.

NOTE NOTE NOTE:  After the skill is finished executing ALWAYS call
    remove();
or else it will eat up memory.  I will get VERY mad if you code a skill
that doesn't do this.

ALSO, define a function:
void info();
that writes out help on the skill.

The skill.c automatically checks for the target, and in the above
create function, you may want to include the following:
set_property("no target",1)
	-This will cause the skill to error if the player supplied
	  a target.
set_property("target type","player");
	-The target must be a player.
set_property("target type","living");
	-The target must be a monster or player.
set_property("target type","any");
	-The target may be anything (default)
set_property("must be present",1);
	-The target must be in the same room or in the inventory
	  of the player.

If any part of these docs are unclear, mail me (Diewarzau), and
I'll straighten them out.  Thanx.
