This repository has been archived by the owner on Sep 23, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 10
/
Readme.txt
175 lines (136 loc) · 8.31 KB
/
Readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
MegaHAL module for eggdrop
Version 3.5
By Jason Hutchens and Zev ^Baron^ Toledano (megahal at thelastexit.net)
Artificially Intelligent conversation with learning capability and
psychotic personality.
+----------------------------------------------------------------------------+
| |
| Copyright (C) 2009 Zev Toledano |
| Copyright (C) 1999 Jason Hutchens |
| |
| 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 Public License for more |
| details. |
| |
| You should have received a copy of the GNU General Public License along |
| with this program; if not, write to the Free Software Foundation, Inc., |
| 675 Mass Ave, Cambridge, MA 02139, USA. |
| |
+----------------------------------------------------------------------------+
Note: The original AI work and program was written by J. Hutchens in 1999.
This eggdrop version was coded by Zev Toledano and it necessitated
various major changes to the brain structure and code in order to keep the
brain at a manageable size and stop it from growing ad infinitum.
Numerous commands and fun features were added as well. In other words, this is
NOT merely a port but a different version of MegaHAL.
Important: Old brains (*.brn files) from the original MegaHAL program will NOT
work with this version! You must start a new one. For a list of version changes,
see the megahal.c file.
If this program formats your hard drive by mistake, or gets your dog pregnant,
keep your complaints to yourself. If you wish to thank me or send reasonable
suggestions and new ideas for improvement, send me an email at megahal at thelastexit.net
J. Hutchens is NO longer working on it since 1999 and it has changed a lot since.
This was tested on eggdrops versions 1.5.x and higher only.
-----------------------------
HOW TO GET IT RUNNING
1. Unzip or untar-gzip the package into the src/mod/ directory of your eggdrop.
2. Compile your eggdrop as usual from the main source directory.
3. Either 'make install' your eggdrop or copy the megahal.so file to your
eggdrop/modules directory.
4. Copy the megahal.aux .trn .ban and .swp files to the main eggdrop directory
together with the eggdrop binary.
5. Load the module either with "loadmodule megahal" or in the conf using
".loadmod megahal".
6. Copy the optional megahal.tcl script into your eggdrop/scripts directory and
load it as well (in the conf: "source scripts/megahal.tcl").
If you don't use the tcl script, you must set the BOTNICK variables in megahal.c
before compiling.
-----------------------------
COMMANDS
Note that many of the following commands are added by the optional megahal.tcl script.
Feel free to bind more commands to DCC or public as necessary using the provided
TCL commands.
PUBLIC (in channels)
Any line with the botnick in it will get the bot to respond.
To teach it something use - <botnick>: bla bla
.braininfo - displays current brain information such as size, etc.
.megaver - displays version information
Bot masters only:
.forget <text> - this will try to forget the specified text by finding an
original phrase that matches the text as closely as possible.
.forgetword <word> - this will forget all phrases containing that word
.savebrain - saves the brain, dictionary and phrase files. Note that the brain
is automatically saved once every hour and when the bot goes down.
.talkfrequency <#oflines> - sets how often the bot should respond to chatter in
public channels.
Bot owners only:
.trimbrain <#ofnodes> - trims the brain down to roughly the specified size.
.lobotomy - backups the current brain, deletes it and starts a new one.
.restorebrain - looks for megahal.old and restores it, deleting the current one.
.learningmode <on/off> - sets whether the bot should learn from <botnick>: etc
or only converse.
DCC
To teach it something (and to get a response) use - .<botnick> bla bla
.megaver - displays version information
Bot masters only:
.forget <text> - this will try to forget the specified text by finding an
original phrase that matches the text as closely as possible.
TCL
savebrain - duh
reloadbrain - take a guess
trimbrain <#ofnodes> - same as the public command
learningmode <on/off> - ditto
talkfrequency <#oflines> - ditto
setmegabotnick <botnick> - this sets the botnick to look out for in all public
chatter. The botnick bindings still have to be
changed separately though (see megahal.tcl).
setmaxcontext <size> - use this to change the context size of a brain
dynamically. Valid values are 1-5. 2 is highly
recommended, 3 is much more boring but it will also
produce much more coherent sentences. 1 will make it
babble incoherently a lot of the time and 4-5 will turn
it into a parrot instead of a fun AI.
reloadphrases - this will reload the brain from scratch but by relearning all
the phrases in the megahal.phr file only. You can edit the phr
file or restore an old one this way and weed out the brain.
learnfile <filename> - this will learn all the phrases it finds in the specified
file and add them to the current brain.
The following are only useful for people interested in sticking their fingers
into the brain. They are hacks, not user friendly services!
treesize <subbranch> <forwards/backwards> - displays four numbers that give info
on the specified branch:
1. # of branches
2. # of all subbranches/nodes
3. the count counter
4. the usage counter
viewbranch <subbranch> <forwards/backwards> - shows the actual words contained
in a branch and all its subranches
together with the usage counter
for each word.
<subbranch> - set this to -1 for the main branch, any other number for a
specified subbranch (it can only go one level down)
<forwards/backwards> - 0 for the forward tree, 1 for backward tree
TCL VARIABLES
talkfreq - int - see talkfrequency command
learnfreq - int - how often to learn phrases said in the channels
maxsize - int - max brain size. see trimbrain command
maxreplywords - int - max size for replies. This can help keep those endless
incoherent sentences under control
surprise - int - 0 for off, 1 for on. If on, the AI tries to generate more
surprising replies.
talkexcludechans - string - space delimited list of chans to exclude from the
public chatter (talkfrequency).
respondexcludechans - string - space delimited list of chans to exclude from
the bot responses (all lines with the botnick in them)
responsekeywords - string - space delimited list of keywords besides the botnick to respond to
floodmega - couplet - flood settings (how many lines in how many seconds)
-----------------------------
The original source code and information can be found at http://www.amristar.com.au/~hutch/
For more information, see also the readme-old.txt file.
Zev Toledano