User Name:


Forgot your password?
Vote for Us!
auth_update crash
Dec 23, 2017, 10:15 pm
By Remcon
Dec 18, 2017, 7:21 pm
By Remcon
parse description bug
Dec 15, 2017, 10:08 pm
By Remcon
Couple bugs
Dec 12, 2017, 5:42 pm
By Remcon
Bug in disarm( )
Nov 12, 2017, 6:54 pm
By GatewaySysop
6Dragons 4.4
Author: Vladaar
Submitted by: Vladaar
LoP 1.46
Author: Remcon
Submitted by: Remcon
LOP 1.45
Author: Remcon
Submitted by: Remcon
LOP Heroes Edition
Author: Vladaar
Submitted by: Vladaar
Heroes sound extras
Author: Vladaar
Submitted by: Vladaar
Users Online
CommonCrawl, Sogou, Yahoo!, Exalead, Vladaar, Yandex

Members: 1
Guests: 25
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 >>