Login
User Name:

Password:



Register
Forgot your password?
Vote for Us!
Bug in disarm( )
Nov 12, 2017, 6:54 pm
By GatewaySysop
Bug in will_fall( )
Oct 23, 2017, 1:35 am
By GatewaySysop
Bug in do_zap( ), do_brandish( )
Oct 18, 2017, 1:52 pm
By GatewaySysop
Bug in get_exp_worth( )
Oct 10, 2017, 1:26 am
By GatewaySysop
Bug in do_drag( )
Oct 8, 2017, 12:40 am
By GatewaySysop
LOP Heroes Edition
Author: Vladaar
Submitted by: Vladaar
Heroes sound extras
Author: Vladaar
Submitted by: Vladaar
6Dragons 4.3
Author: Vladaar
Submitted by: Vladaar
Memwatch
Author: Johan Lindh
Submitted by: Vladaar
Beastmaster 6D sound files
Author: Vladaar
Submitted by: Vladaar
Users Online
CommonCrawl, Yandex, DotBot

Members: 0
Guests: 6
Stats
Files
Topics
Posts
Members
Newest Member
476
3,704
19,231
608
LAntorcha
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

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