This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You know where to find it...

This is a number of LPC scripts to enable a NPC being programed with AIML, the Artificial Intelligence Mark-up Language. Thou it does not make your NPC intelligent, there is still some work required. So don't expect too much. See http://www.aiml.info/ for some info about AIML.

There is a number of AIML sets available, you may check sourceforge for a start. However, to make something special out of a NPC, you will have to create your own AIML set, at least partly. No AIML set is included here (beside of a few really stupid test cases).

To use it, your NPC needs to be derived from aiml:

inherit "/i/tools/aiml" // or wherever you put it

at initialization of the monster, call something like

aiml_init("/i/tools/aiml/substitutions.xml", // substitution file
     "/room/haus/monster/hermes.aiml"); // actual vocabluary

take care that the messages in the room are forwarded to the function
aiml_answer, the following works for me:

set_parse_conversation(this_object(), ({
     ""aiml_answer: .*"
}));


As you will probably have to integrate it into your mudlib, have a look at aiml.c, it hold basically all interfaces to the mudlib.

Limitations:

Download here.

Sent comments and bug reports to aiml@holzhey.de

A C version of this algorithm may be available for commercial use. Contact me in case of interest.

Constanze Holzhey, 9th Feb. 2003