Login
User Name:

Password:



Register

Forgot your password?
do_owhere recursive
Author: Khonsu
Submitted by: Khonsu
Changes list / Addchange
Author: Khonsu
Submitted by: Khonsu
6Dragons mp3 sound pack
Author: Vladaar
Submitted by: Vladaar
AFKMud 2.2.3
Author: AFKMud Team
Submitted by: Samson
SWFOTEFUSS 1.5
Author: Various
Submitted by: Samson
Users Online
AhrefsBot, Bing

Members: 0
Guests: 22
Stats
Files
Topics
Posts
Members
Newest Member
489
3,791
19,644
596
Elwood

Today's Birthdays
There are no member birthdays today.
» SmaugMuds » 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 12:53 pm   
Go to the top of the page
Go to the bottom of the page

Samson
Black Hand
GroupAdministrators
Posts3,685
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 >>