User Name:


Forgot your password?
Vote for Us!
Nov 28, 2018, 10:10 am
By Keirath
First Immortal
Oct 12, 2018, 12:02 pm
By GatewaySysop
Bug in do_climb( )
Jun 5, 2018, 5:31 pm
By joeyfogas
question on overland code
May 31, 2018, 10:03 am
By joeyfogas
KaVir's Protocol Snip
May 15, 2018, 7:57 pm
By joeyfogas
tintin++ ogg sound player script for linux
Author: Robert Smith
Submitted by: Vladaar
6Dragons ogg Soundpack
Author: Vladaar
Submitted by: Vladaar
6Dragons 4.4
Author: Vladaar
Submitted by: Vladaar
LoP 1.46
Author: Remcon
Submitted by: Remcon
LOP 1.45
Author: Remcon
Submitted by: Remcon
Users Online
CommonCrawl, Bing

Members: 0
Guests: 9
Newest Member
Today's Birthdays
There are no member birthdays today.
Related Links
» SmaugMuds.org » Codebases » AFKMud Support & Development » How do I add new Specfuns?
Forum Rules | Mark all | Recent Posts

How do I add new Specfuns?
< Newer Topic :: Older Topic > Mini-guide

Pages:<< prev 1 next >>
Post is unread #1 Jan 7, 2004, 10:53 am
Go to the top of the page
Go to the bottom of the page

Black Hand
JoinedJan 1, 2002

This is a guide for how to create new specfuns for AFKMud.

Specfuns in Smaug require the following steps:

1. The code for the specfun itself.
2. A DECLARE_SPEC_FUN statement in special.c
3. 2 entries in the specfun tables in special.c

For AFKMud, steps 2 and 3 are not required. Step 1 needs to be done in a slightly different manner. For a specfun to work, it must be of type SPECF instead of bool.

Smaug Example:

bool some_special( CHAR_DATA *ch )

AFKMud example:

SPECF some_special( CHAR_DATA *ch )

The main difference is in the use of the SPECF macro. This was necessary in order to get g++ to accept the use of the dlsym code while also retaining compatibility with plain gcc for those who prefer that. The details aren't terribly important to know.

You will then need to add the name of the specfun to the specfuns.dat file in your system directory so the code will be able to populate the OLC tables with it. Just follow the format of the ones already in it to accomplish that.

Converting specfuns from Smaug code will need to keep these changes in mind to make those specfuns work.
Pages:<< prev 1 next >>