mirror of
https://github.com/tbamud/tbamud.git
synced 2025-09-22 05:50:48 +02:00
- Fixed oat and wat (thanks Rhade).
- Numerous social fixes (thanks Rhade, Fizban, and Amber). - Removed do_insult. - Cleaned up hedit formatting and fixed possible bug from editing a help file you can't view (thanks Rhade). - Fixed cast ' ' so it won't cast armor (thanks Rhade). --Rumble
This commit is contained in:
parent
787c392e0a
commit
f2bb44ceb1
13 changed files with 170 additions and 268 deletions
|
@ -261,7 +261,7 @@ CircleMUD 3.5
|
||||||
|
|
||||||
Release history:
|
Release history:
|
||||||
Version 3.51 release: February, 2007
|
Version 3.51 release: February, 2007
|
||||||
Version 3.5 release: December 11, 2006
|
Version 3.5 release: December, 2006
|
||||||
Version 3.1 (yes, no beta pl): November 18, 2002
|
Version 3.1 (yes, no beta pl): November 18, 2002
|
||||||
Version 3.00 beta pl22 release: October 4, 2002
|
Version 3.00 beta pl22 release: October 4, 2002
|
||||||
Version 3.00 beta pl21 release: April 15, 2002
|
Version 3.00 beta pl21 release: April 15, 2002
|
||||||
|
@ -290,4 +290,4 @@ Version 2.11 release: September 19, 1993
|
||||||
Version 2.10 release: September 1, 1993
|
Version 2.10 release: September 1, 1993
|
||||||
Version 2.02 release: Late August 1993
|
Version 2.02 release: Late August 1993
|
||||||
Version 2.01 release: Early August 1993
|
Version 2.01 release: Early August 1993
|
||||||
Version 2.00 release: July 16, 1993 (Initial public release)
|
Version 2.00 release: July 16, 1993 (Initial public release)
|
||||||
|
|
153
FAQ
153
FAQ
|
@ -1,8 +1,8 @@
|
||||||
Frequently Asked Questions (FAQ) for CircleMUD with Answers
|
Frequently Asked Questions (FAQ) for tbaMUD with Answers
|
||||||
|
|
||||||
Updated: Dec 2006
|
Updated: Apr 2007
|
||||||
|
|
||||||
This file is intended to cover common questions related to CircleMUD. Any
|
This file is intended to cover common questions related to tbaMUD. Any
|
||||||
contributions and corrections are more than welcome. It is currently
|
contributions and corrections are more than welcome. It is currently
|
||||||
maintained by Rumble of the Builder Academy. Please stop by the Builder
|
maintained by Rumble of the Builder Academy. Please stop by the Builder
|
||||||
Academy if you have any corrections or additions: builderacademy.net 9091
|
Academy if you have any corrections or additions: builderacademy.net 9091
|
||||||
|
@ -23,35 +23,35 @@ Table of Contents
|
||||||
|
|
||||||
1.3 I want to build my own MUD. Where do I start?
|
1.3 I want to build my own MUD. Where do I start?
|
||||||
|
|
||||||
1.4 What is CircleMUD?
|
1.4 What is tbaMUD?
|
||||||
|
|
||||||
1.5 What is the history of CircleMUD?
|
1.5 What is the history of tbaMUD?
|
||||||
|
|
||||||
1.6 Where is the original CircleMUD so I can check it out?
|
1.6 Where is the original CircleMUD so I can check it out?
|
||||||
|
|
||||||
1.7 Will the CircleMUD creators visit my mud?
|
1.7 Will the tbaMUD creators visit my mud?
|
||||||
|
|
||||||
1.8 What is UNIX?
|
1.8 What is UNIX?
|
||||||
|
|
||||||
|
|
||||||
2. Resources
|
2. Resources
|
||||||
|
|
||||||
2.1 Where do I find the source code for CircleMUD?
|
2.1 Where do I find the source code for tbaMUD?
|
||||||
|
|
||||||
2.2 Where do I find areas, etc. for CircleMUD?
|
2.2 Where do I find areas, etc. for tbaMUD?
|
||||||
|
|
||||||
2.3 I have questions about CircleMUD. Where should I go?
|
2.3 I have questions about tbaMUD. Where should I go?
|
||||||
|
|
||||||
2.4 How do I subscribe/unsubscribe to the Mailing List?
|
2.4 How do I subscribe/unsubscribe to the Mailing List?
|
||||||
|
|
||||||
2.5 To what platforms has CircleMUD been ported?
|
2.5 To what platforms has tbaMUD been ported?
|
||||||
|
|
||||||
2.6 How can I submit code or areas for use with CircleMUD?
|
2.6 How can I submit code or areas for use with tbaMUD?
|
||||||
|
|
||||||
2.7 How do I use a patch file and how can I make one?
|
2.7 How do I use a patch file and how can I make one?
|
||||||
|
|
||||||
|
|
||||||
3. Compiling CircleMUD
|
3. Compiling tbaMUD
|
||||||
|
|
||||||
3.1 Why do I get many syntax errors with Sun's ``cc'' compiler?
|
3.1 Why do I get many syntax errors with Sun's ``cc'' compiler?
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ Table of Contents
|
||||||
3.3 When I try to compile, why do I get a lot of undefined symbols
|
3.3 When I try to compile, why do I get a lot of undefined symbols
|
||||||
referenced in comm.o for functions like socket, accept, and bind?
|
referenced in comm.o for functions like socket, accept, and bind?
|
||||||
|
|
||||||
3.4 Every time I try to compile Circle (or any other piece of software)
|
3.4 Every time I try to compile tbaMUD (or any other piece of software)
|
||||||
under Linux, it gives me errors and says it cannot find include header
|
under Linux, it gives me errors and says it cannot find include header
|
||||||
files in the linux/ and asm/ directories. What can I do?
|
files in the linux/ and asm/ directories. What can I do?
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ Table of Contents
|
||||||
3.13 How can I handle directories in C?
|
3.13 How can I handle directories in C?
|
||||||
|
|
||||||
|
|
||||||
4. Running CircleMUD
|
4. Running tbaMUD
|
||||||
|
|
||||||
4.1 I typed ``autorun'' but then my terminal just froze.
|
4.1 I typed ``autorun'' but then my terminal just froze.
|
||||||
|
|
||||||
|
@ -101,13 +101,13 @@ Table of Contents
|
||||||
|
|
||||||
4.5 I just got this SIGPIPE, what is it and what Can I Do About It?
|
4.5 I just got this SIGPIPE, what is it and what Can I Do About It?
|
||||||
|
|
||||||
4.6 When I run Circle under Linux, it tells me ``gethostbyaddr:
|
4.6 When I run tbaMUD under Linux, it tells me ``gethostbyaddr:
|
||||||
connection refused'' when the MUD boots, and then dies. Why?
|
connection refused'' when the MUD boots, and then dies. Why?
|
||||||
|
|
||||||
4.7 When I run Circle under Windows, it tells me ``Winsock error
|
4.7 When I run tbaMUD under Windows, it tells me ``Winsock error
|
||||||
#10047'' when the MUD boots, and then dies. Why?
|
#10047'' when the MUD boots, and then dies. Why?
|
||||||
|
|
||||||
4.8 When I run Circle under Windows, players can't rent---their
|
4.8 When I run tbaMUD under Windows, players can't rent---their
|
||||||
equipment is just dropped on the ground, syslogs don't work, so what
|
equipment is just dropped on the ground, syslogs don't work, so what
|
||||||
is the problem?
|
is the problem?
|
||||||
|
|
||||||
|
@ -136,16 +136,16 @@ Table of Contents
|
||||||
4.17 I run my MUD on a unix system and the pfile/rent file works great,
|
4.17 I run my MUD on a unix system and the pfile/rent file works great,
|
||||||
but on my home system it's all screwed up. What gives?
|
but on my home system it's all screwed up. What gives?
|
||||||
|
|
||||||
4.18 How do I get the CircleMUD to autoload when the Linux server is
|
4.18 How do I get the tbaMUD to autoload when the Linux server is
|
||||||
restarted?
|
restarted?
|
||||||
|
|
||||||
4.19 My server shuts down my MUD everytime I logoff. How do I keep the
|
4.19 My server shuts down my MUD everytime I logoff. How do I keep the
|
||||||
MUD running when I logoff?
|
MUD running when I logoff?
|
||||||
|
|
||||||
|
|
||||||
5. CircleMUD 3.X Questions
|
5. tbaMUD Questions
|
||||||
|
|
||||||
5.1 Why does CircleMUD use BUF switches all through the code, what's
|
5.1 Why does tbaMUD use BUF switches all through the code, what's
|
||||||
happening here?
|
happening here?
|
||||||
|
|
||||||
5.2 How do I add a new class? How do I add more levels? etc?
|
5.2 How do I add a new class? How do I add more levels? etc?
|
||||||
|
@ -157,17 +157,15 @@ ______________________________________________________________________
|
||||||
|
|
||||||
1.1. I've never played a MUD before. What should I do?
|
1.1. I've never played a MUD before. What should I do?
|
||||||
|
|
||||||
Don't try to use your own copy of CircleMUD! There are two levels of MUD
|
Don't try to use your own copy of tbaMUD! There are two levels of MUD
|
||||||
users: players and administrators. Administrators do what you're trying to
|
users: players and administrators. Administrators do what you're trying to
|
||||||
do now -- get a copy of a MUD's source code, compile it, and run it.
|
do now -- get a copy of a MUD's source code, compile it, and run it.
|
||||||
Players use MUDs that are being administered by someone else. If you try to
|
Players use MUDs that are being administered by someone else. If you try to
|
||||||
actually run a MUD before you've ever played one, you'll get very confused
|
actually run a MUD before you've ever played one, you'll get very confused
|
||||||
indeed! Your best bet for now is to play someone else's MUD first. There
|
indeed! Your best bet for now is to play someone else's MUD first. There
|
||||||
are a large number of excellent MUDs out there already, some of which are
|
are a large number of excellent MUDs out there already, some of which are
|
||||||
based on CircleMUD code. A good place to start looking is the MUD Connector
|
based on tbaMUD code. A good place to start looking is the MUD Connector
|
||||||
at:
|
at: http://mudconnector.com/
|
||||||
|
|
||||||
http://mudconnector.com/
|
|
||||||
|
|
||||||
|
|
||||||
1.2. I'm new to C and/or coding. What do I do?
|
1.2. I'm new to C and/or coding. What do I do?
|
||||||
|
@ -214,9 +212,9 @@ By checking the FTP Site under contrib.
|
||||||
*know* the FAQ.
|
*know* the FAQ.
|
||||||
|
|
||||||
|
|
||||||
1.4. What is CircleMUD?
|
1.4. What is tbaMUD?
|
||||||
|
|
||||||
CircleMUD is a DikuMUD derivitave, developed by Jeremy Elson and is from the
|
TbaMUD is a DikuMUD derivitave, developed by Jeremy Elson as CircleMUD from
|
||||||
Gamma v0.0 of DikuMUD created by Hans Henrik Staerfeldt, Katja Nyboe, Tom
|
Gamma v0.0 of DikuMUD created by Hans Henrik Staerfeldt, Katja Nyboe, Tom
|
||||||
Madsen, Michael Seifert and Sebastian Hammer at DIKU (Computer Science
|
Madsen, Michael Seifert and Sebastian Hammer at DIKU (Computer Science
|
||||||
Instutute at Copenhagen University). Note that CircleMUD is a Diku
|
Instutute at Copenhagen University). Note that CircleMUD is a Diku
|
||||||
|
@ -225,20 +223,19 @@ notably it cannot be used to make money in ANY way, the original developers'
|
||||||
names must be in the login screen and that the credits command always presents
|
names must be in the login screen and that the credits command always presents
|
||||||
the same information, etc.
|
the same information, etc.
|
||||||
|
|
||||||
Quoting from CircleMUD's release.doc:
|
TbaMUD is highly developed from the programming side, but highly UNdeveloped
|
||||||
|
|
||||||
CircleMUD is highly developed from the programming side, but highly UNdeveloped
|
|
||||||
on the game-playing side. So, if you're looking for a huge MUD with billions
|
on the game-playing side. So, if you're looking for a huge MUD with billions
|
||||||
of spells, skills, classes, races, and areas, Circle will probably disappoint
|
of spells, skills, classes, and races, tbaMUD will probably disappoint you
|
||||||
you severely. Circle still has only the 4 original Diku classes, the original
|
severely. TbaMUD still has only the 4 original Diku classes, the original
|
||||||
spells, and the original skills. On the other hand, if you're looking for a
|
spells, and the original skills. On the other hand, if you're looking for a
|
||||||
highly stable, well-developed, well-organized "blank slate" MUD on which you
|
highly stable, well-developed, well-organized "blank slate" MUD on which you
|
||||||
can put your OWN ideas for spells, skills, classes, and areas, then Circle
|
can put your OWN ideas for spells, skills, and classes, then tbaMUD is what
|
||||||
might be just what you're looking for."
|
what you are looking for."
|
||||||
|
|
||||||
|
|
||||||
1.5. What is the history of CircleMUD?
|
1.5. What is the history of tbaMUD?
|
||||||
|
|
||||||
|
Version 3.51 release: February, 2007
|
||||||
Version 3.5 release: December 2006
|
Version 3.5 release: December 2006
|
||||||
Version 3.1 (yes, no beta pl): November 18, 2002
|
Version 3.1 (yes, no beta pl): November 18, 2002
|
||||||
Version 3.00 beta pl22 release: October 4, 2002
|
Version 3.00 beta pl22 release: October 4, 2002
|
||||||
|
@ -271,21 +268,20 @@ Version 2.01 release: Early August 1993
|
||||||
Version 2.00 release: July 16, 1993 (Initial public release)
|
Version 2.00 release: July 16, 1993 (Initial public release)
|
||||||
|
|
||||||
|
|
||||||
1.6. Where is the original CircleMUD so I can check it out?
|
1.6. Where is the original tbaMUD so I can check it out?
|
||||||
|
|
||||||
The Builder Academy
|
The Builder Academy
|
||||||
builderacademy.net 9091
|
builderacademy.net 9091
|
||||||
|
|
||||||
|
|
||||||
1.7 Will the CircleMUD creators visit my mud?
|
1.7 Will the tbaMUD creators visit my mud?
|
||||||
|
|
||||||
While there is a possibility that one (or more) of the CircleMUD creators
|
While there is a possibility that one (or more) of the tbaMUD creators
|
||||||
will drop by your MUD for a visit, to play, or to simply look around, there
|
will drop by your MUD for a visit, to play, or to simply look around,
|
||||||
is a slim chance that they will even identify themselves.
|
there is a slim chance that they will identify themselves. You won't.
|
||||||
|
We don't want free wizzes or favors for our work here. In fact, we
|
||||||
Would you like to see us on your MUD? You won't. We don't want free wizzes
|
will state categorically that if anyone comes on your MUD claiming to be
|
||||||
or favors for our work here. In fact, we will state categorically that if
|
associated with us, they aren't.
|
||||||
anyone comes on your MUD claiming to be associated with us, they aren't.
|
|
||||||
|
|
||||||
|
|
||||||
1.8. What is UNIX?
|
1.8. What is UNIX?
|
||||||
|
@ -308,28 +304,24 @@ and Microsoft does not make a variant.
|
||||||
|
|
||||||
2. Resources
|
2. Resources
|
||||||
|
|
||||||
2.1. Where do I find the source code for CircleMUD?
|
2.1. Where do I find the source code for tbaMUD?
|
||||||
|
|
||||||
Circle's complete source code and areas are available for download at:
|
TbaMUD's complete source code and areas are available for download at:
|
||||||
|
|
||||||
http://cwg.lazuras.org/modules.php?name=Downloads
|
http://cwg.lazuras.org/modules.php?name=Downloads
|
||||||
|
|
||||||
There is also a CircleMUD Home Page that is outdated at:
|
There is also a tbaMUD Home Page at:
|
||||||
|
|
||||||
http://www.circlemud.org/
|
http://tbaMUD.com/
|
||||||
|
|
||||||
The latest information can be found at:
|
|
||||||
|
|
||||||
http://cwg.lazuras.org/modules.php?name=Forums
|
|
||||||
|
|
||||||
|
|
||||||
2.2. Where do I find areas, etc. for CircleMUD?
|
2.2. Where do I find areas, etc. for tbaMUD?
|
||||||
|
|
||||||
All donated areas have been added to the latest version of CircleMUD. If you
|
All donated areas have been added to the latest version of tbaMUD. If you
|
||||||
wish to donate some of your own work stop by the Builder Academy.
|
wish to donate some of your own work stop by the Builder Academy.
|
||||||
|
|
||||||
|
|
||||||
2.3. I have questions about CircleMUD. Where should I go?
|
2.3. I have questions about tbaMUD. Where should I go?
|
||||||
|
|
||||||
If you have general questions about the MUD such as how to get it running,
|
If you have general questions about the MUD such as how to get it running,
|
||||||
how to add new spells, how to add new skills, etc., the first place you
|
how to add new spells, how to add new skills, etc., the first place you
|
||||||
|
@ -349,36 +341,31 @@ http://groups.yahoo.com/group/dg_scripts/
|
||||||
|
|
||||||
2.4. How do I subscribe/unsubscribe to the Mailing List?
|
2.4. How do I subscribe/unsubscribe to the Mailing List?
|
||||||
|
|
||||||
There is a CircleMUD mailing list for coders, builders, and administrators.
|
The CWG forums are available at:
|
||||||
To subscribe, send a message to the list server <listserv@post.queensu.ca>
|
http://cwg.lazuras.org/modules.php?name=Forums
|
||||||
with a message body of subscribe circle <first name> <last name>. To
|
|
||||||
unsubscribe from the list send a message to <listserv@post.queensu.ca> with
|
The older and less active CircleMUD mailing list can be found here:
|
||||||
the words unsubscribe circle as the message body. DO NOT send subscription
|
http://post.queensu.ca/cgi-bin/listserv/wa?SUBED1=circle&A=1
|
||||||
or unsubscription requests to the list in general. There are hundreds of
|
|
||||||
people on the list, and it will only irritate a ton of people who have no
|
|
||||||
power to remove you from the list. Read the Mailing List FAQ
|
|
||||||
(http://qsilver.queensu.ca/~fletchra/Circle/list_faq.html) for more
|
|
||||||
information.
|
|
||||||
|
|
||||||
|
|
||||||
2.5. To what platforms has CircleMUD been ported?
|
2.5. To what platforms has tbaMUD been ported?
|
||||||
|
|
||||||
CircleMUD is very portable because it uses the GNU autoconf system, meaning you
|
TbaMUD is very portable because it uses the GNU autoconf system, meaning you
|
||||||
only need to type ``configure'' to have it automatically determine various
|
only need to type ``configure'' to have it automatically determine various
|
||||||
features of your system and configure the code accordingly. CircleMUD compiles
|
features of your system and configure the code accordingly. TbaMUD compiles
|
||||||
without changes under most BSD and SVR4 systems, including SunOS, Solaris,
|
without changes under most BSD and SVR4 systems, including SunOS, Solaris,
|
||||||
Ultrix, IRIX, AIX, Linux, BSD/OS, HP/UX, and others.
|
Ultrix, IRIX, AIX, Linux, BSD/OS, HP/UX, and others.
|
||||||
|
|
||||||
CircleMUD has also been ported to various non-UNIX platforms. You can now
|
TbaMUD has also been ported to various non-UNIX platforms. You can now
|
||||||
compile Circle under OS/2 2.x and 3.x with the OS/2 port of gcc, Windows using
|
compile it under OS/2 2.x and 3.x with the OS/2 port of gcc, Windows using
|
||||||
Microsoft Visual C++ version 4.0 or 5.0, Cygwin, Borland (now Inprise) C++ 4.5,
|
Microsoft Visual C++ version 4.0 or 5.0, Cygwin, Borland (now Inprise) C++,
|
||||||
Watcom v.11, Cygnus GNU-WIN32, LCC, Macintosh with CodeWarrior, Amiga, and
|
Watcom v.11, Cygnus GNU-WIN32, LCC, Macintosh with CodeWarrior, Amiga, and
|
||||||
Acorn RiscOS.
|
Acorn RiscOS.
|
||||||
|
|
||||||
|
|
||||||
2.6. How can I submit code or areas for use with CircleMUD?
|
2.6. How can I submit code or areas for use with tbaMUD?
|
||||||
|
|
||||||
Stop by the Builder Academy. builderacademy.net 9091
|
Stop by the Builder Academy. builderacademy.net 9091 or visit the CWG forums.
|
||||||
|
|
||||||
|
|
||||||
2.7. How do I use a patch file and how can I make one?
|
2.7. How do I use a patch file and how can I make one?
|
||||||
|
@ -429,11 +416,11 @@ o The rest of the lines are just there to give you an idea of where
|
||||||
to change.
|
to change.
|
||||||
|
|
||||||
|
|
||||||
3. Compiling CircleMUD
|
3. Compiling tbaMUD
|
||||||
|
|
||||||
3.1. Why do I get many syntax errors with Sun's ``cc'' compiler?
|
3.1. Why do I get many syntax errors with Sun's ``cc'' compiler?
|
||||||
|
|
||||||
Because Circle is written in ANSI C, and Sun's standard cc compiler isn't
|
Because tbaMUD is written in ANSI C, and Sun's standard cc compiler isn't
|
||||||
capable of compiling ANSI C code. You can try acc, Sun's ANSI C compiler,
|
capable of compiling ANSI C code. You can try acc, Sun's ANSI C compiler,
|
||||||
but it costs extra money to get it from Sun so your sysadmin may not have
|
but it costs extra money to get it from Sun so your sysadmin may not have
|
||||||
installed it. Most don't. The best solution is to get the GCC compiler
|
installed it. Most don't. The best solution is to get the GCC compiler
|
||||||
|
@ -444,7 +431,7 @@ have enough time and space.
|
||||||
3.2. Why do I get all sorts of errors with ``crypt'' functions and
|
3.2. Why do I get all sorts of errors with ``crypt'' functions and
|
||||||
header files?
|
header files?
|
||||||
|
|
||||||
(This information applies ONLY to Version 3.0 of the code.) CircleMUD
|
(This information applies ONLY to Version 3.0 of the code). TbaMUD
|
||||||
normally uses the UNIX crypt() function to enrypt players' passwords.
|
normally uses the UNIX crypt() function to enrypt players' passwords.
|
||||||
Because of export restrictions imposed by the U.S., some systems do not have
|
Because of export restrictions imposed by the U.S., some systems do not have
|
||||||
the crypt() function. ``configure'' will usually be able to figure out
|
the crypt() function. ``configure'' will usually be able to figure out
|
||||||
|
@ -474,7 +461,7 @@ If you're using V2.20 and you have this error, the best thing to do is
|
||||||
simply to use V3.0 instead. If you insist on using 2.20, go into the
|
simply to use V3.0 instead. If you insist on using 2.20, go into the
|
||||||
Makefile and search for the comment next to ``SVR4''.
|
Makefile and search for the comment next to ``SVR4''.
|
||||||
|
|
||||||
3.4. Every time I try to compile Circle (or any other piece of soft- ware)
|
3.4. Every time I try to compile tbaMUD (or any other piece of software)
|
||||||
under Linux, it gives me errors and says it cannot find include header
|
under Linux, it gives me errors and says it cannot find include header
|
||||||
files in the linux/ and asm/ directories. What can I do?
|
files in the linux/ and asm/ directories. What can I do?
|
||||||
|
|
||||||
|
@ -594,7 +581,7 @@ For example, the equivalents for SYSV are:
|
||||||
|
|
||||||
3.11. My compiler doesn't have ``strdup()'', what can I do?
|
3.11. My compiler doesn't have ``strdup()'', what can I do?
|
||||||
|
|
||||||
Use Circle's built-in str_dup() function instead.
|
Use tbaMUD's built-in str_dup() function instead.
|
||||||
|
|
||||||
|
|
||||||
3.12. I am having trouble with my ``makefile'', what could be the problem?
|
3.12. I am having trouble with my ``makefile'', what could be the problem?
|
||||||
|
@ -651,7 +638,7 @@ The dirent structure contains only two useful elements, the file's name
|
||||||
Thanks to Daniel Koepke for the above.
|
Thanks to Daniel Koepke for the above.
|
||||||
|
|
||||||
|
|
||||||
4. Running CircleMUD
|
4. Running tbaMUD
|
||||||
|
|
||||||
4.1. I typed ``autorun'' but then my terminal just froze.
|
4.1. I typed ``autorun'' but then my terminal just froze.
|
||||||
|
|
||||||
|
@ -708,7 +695,7 @@ command. To stop the program from stoping at SIGPIPE, you would give GDB the
|
||||||
command `handle SIGPIPE nostop'
|
command `handle SIGPIPE nostop'
|
||||||
|
|
||||||
|
|
||||||
4.6. When I run Circle under Linux, it tells me ``gethostbyaddr: con-
|
4.6. When I run tbaMUD under Linux, it tells me ``gethostbyaddr: con-
|
||||||
nection refused'' when the MUD boots, and then dies. Why?
|
nection refused'' when the MUD boots, and then dies. Why?
|
||||||
|
|
||||||
You need to make sure you have Networking and TCP/IP support compiled into
|
You need to make sure you have Networking and TCP/IP support compiled into
|
||||||
|
@ -726,7 +713,7 @@ questions about which kernel features you want; make sure to answer ``Y'' to
|
||||||
``Networking support'' and ``TCP/IP support''.
|
``Networking support'' and ``TCP/IP support''.
|
||||||
|
|
||||||
|
|
||||||
4.7. When I run Circle under Windows, it tells me ``Winsock error
|
4.7. When I run tbaMUD under Windows, it tells me ``Winsock error
|
||||||
#10047'' when the MUD boots, and then dies. Why?
|
#10047'' when the MUD boots, and then dies. Why?
|
||||||
|
|
||||||
You need to configure TCP/IP networking from the Network Control Panel, even
|
You need to configure TCP/IP networking from the Network Control Panel, even
|
||||||
|
@ -736,7 +723,7 @@ select ``Add Protocol'', and under the vendor ``Microsoft'', choose
|
||||||
the drivers onto your hard drive.
|
the drivers onto your hard drive.
|
||||||
|
|
||||||
|
|
||||||
4.8. When I run Circle under Windows, players can't rent---their
|
4.8. When I run tbaMUD under Windows, players can't rent---their
|
||||||
equipment is just dropped on the ground, syslogs don't work, so what
|
equipment is just dropped on the ground, syslogs don't work, so what
|
||||||
is the problem?
|
is the problem?
|
||||||
|
|
||||||
|
@ -747,7 +734,7 @@ in them.) This is fixed in Circle 3.0 patchlevel 12 and above. Before
|
||||||
patchlevel 12, you can fix it simply by manually creating the needed
|
patchlevel 12, you can fix it simply by manually creating the needed
|
||||||
directories:
|
directories:
|
||||||
|
|
||||||
CD \Circle30bpl11
|
CD \tbamud-3.51
|
||||||
cd lib\plrobjs
|
cd lib\plrobjs
|
||||||
mkdir A-E
|
mkdir A-E
|
||||||
mkdir F-J
|
mkdir F-J
|
||||||
|
|
6
README
6
README
|
@ -1,8 +1,8 @@
|
||||||
tbaMUD README File
|
tbaMUD README File
|
||||||
---------------------
|
---------------------
|
||||||
Updated: Jan 2006
|
Updated: Apr 2007
|
||||||
|
|
||||||
All requests for help or bugs should be reported there: builderacademy.net 9091.
|
All requests for help or bugs should be reported to: builderacademy.net 9091.
|
||||||
|
|
||||||
Information about CircleMUD can be found at the CircleMUD Home Page and FTP:
|
Information about CircleMUD can be found at the CircleMUD Home Page and FTP:
|
||||||
http://www.circlemud.org
|
http://www.circlemud.org
|
||||||
|
@ -51,7 +51,7 @@ WATCOM - If using WATCOM under Windows.
|
||||||
|
|
||||||
WIN - If you are using Windows.
|
WIN - If you are using Windows.
|
||||||
|
|
||||||
If you are interested in porting CircleMUD to a new platform, see the
|
If you are interested in porting tbaMUD to a new platform, see the
|
||||||
file doc/porting.txt for some tips.
|
file doc/porting.txt for some tips.
|
||||||
|
|
||||||
For a small, private MUD, or a MUD used only for testing and development,
|
For a small, private MUD, or a MUD used only for testing and development,
|
||||||
|
|
|
@ -40,7 +40,6 @@ extern char *class_abbrevs[];
|
||||||
|
|
||||||
/* extern functions */
|
/* extern functions */
|
||||||
ACMD(do_action);
|
ACMD(do_action);
|
||||||
ACMD(do_insult);
|
|
||||||
bitvector_t find_class_bitvector(const char *arg);
|
bitvector_t find_class_bitvector(const char *arg);
|
||||||
int level_exp(int chclass, int level);
|
int level_exp(int chclass, int level);
|
||||||
char *title_male(int chclass, int level);
|
char *title_male(int chclass, int level);
|
||||||
|
@ -994,7 +993,7 @@ int search_help(char *argument, int level)
|
||||||
else
|
else
|
||||||
top = mid - 1;
|
top = mid - 1;
|
||||||
}
|
}
|
||||||
return -1;
|
return NOWHERE;
|
||||||
}
|
}
|
||||||
|
|
||||||
ACMD(do_help)
|
ACMD(do_help)
|
||||||
|
@ -1020,9 +1019,8 @@ ACMD(do_help)
|
||||||
}
|
}
|
||||||
|
|
||||||
space_to_minus(argument);
|
space_to_minus(argument);
|
||||||
mid = search_help(argument, GET_LEVEL(ch));
|
|
||||||
|
|
||||||
if (mid < 0) {
|
if ((mid = search_help(argument, GET_LEVEL(ch))) == NOWHERE) {
|
||||||
send_to_char(ch, "There is no help on that word.\r\n");
|
send_to_char(ch, "There is no help on that word.\r\n");
|
||||||
mudlog(NRM, MAX(LVL_IMPL, GET_INVIS_LEV(ch)), TRUE,
|
mudlog(NRM, MAX(LVL_IMPL, GET_INVIS_LEV(ch)), TRUE,
|
||||||
"%s tried to get help on %s", GET_NAME(ch), argument);
|
"%s tried to get help on %s", GET_NAME(ch), argument);
|
||||||
|
@ -1968,7 +1966,7 @@ ACMD(do_toggle)
|
||||||
if ((result = PRF_TOG_CHK(ch, PRF_AFK)))
|
if ((result = PRF_TOG_CHK(ch, PRF_AFK)))
|
||||||
act("$n is now away from $s keyboard.", TRUE, ch, 0, 0, TO_ROOM);
|
act("$n is now away from $s keyboard.", TRUE, ch, 0, 0, TO_ROOM);
|
||||||
else {
|
else {
|
||||||
act("$n has return to $s keyboard.", TRUE, ch, 0, 0, TO_ROOM);
|
act("$n has returned to $s keyboard.", TRUE, ch, 0, 0, TO_ROOM);
|
||||||
if (has_mail(GET_IDNUM(ch)))
|
if (has_mail(GET_IDNUM(ch)))
|
||||||
send_to_char(ch, "You have mail waiting.\r\n");
|
send_to_char(ch, "You have mail waiting.\r\n");
|
||||||
}
|
}
|
||||||
|
@ -2092,7 +2090,7 @@ ACMD(do_commands)
|
||||||
if ((complete_cmd_info[i].minimum_level >= LVL_IMMORT) != wizhelp)
|
if ((complete_cmd_info[i].minimum_level >= LVL_IMMORT) != wizhelp)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!wizhelp && socials != (complete_cmd_info[i].command_pointer == do_action || complete_cmd_info[i].command_pointer == do_insult))
|
if (!wizhelp && socials != (complete_cmd_info[i].command_pointer == do_action))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (wizhelp && complete_cmd_info[i].command_pointer == do_action)
|
if (wizhelp && complete_cmd_info[i].command_pointer == do_action)
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
/* local functions */
|
/* local functions */
|
||||||
int find_action(int cmd);
|
int find_action(int cmd);
|
||||||
ACMD(do_action);
|
ACMD(do_action);
|
||||||
ACMD(do_insult);
|
|
||||||
void free_social_messages(void);
|
void free_social_messages(void);
|
||||||
void free_action(struct social_messg *mess);
|
void free_action(struct social_messg *mess);
|
||||||
void free_command_list(void);
|
void free_command_list(void);
|
||||||
|
@ -108,55 +107,6 @@ ACMD(do_action)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ACMD(do_insult)
|
|
||||||
{
|
|
||||||
char arg[MAX_INPUT_LENGTH];
|
|
||||||
struct char_data *victim;
|
|
||||||
|
|
||||||
one_argument(argument, arg);
|
|
||||||
|
|
||||||
if (*arg) {
|
|
||||||
if (!(victim = get_char_vis(ch, arg, NULL, FIND_CHAR_ROOM)))
|
|
||||||
send_to_char(ch, "Can't hear you!\r\n");
|
|
||||||
else {
|
|
||||||
if (victim != ch) {
|
|
||||||
send_to_char(ch, "You insult %s.\r\n", GET_NAME(victim));
|
|
||||||
|
|
||||||
switch (rand_number(0, 2)) {
|
|
||||||
case 0:
|
|
||||||
if (GET_SEX(ch) == SEX_MALE) {
|
|
||||||
if (GET_SEX(victim) == SEX_MALE)
|
|
||||||
act("$n accuses you of fighting like a woman!", FALSE, ch, 0, victim, TO_VICT);
|
|
||||||
else
|
|
||||||
act("$n says that women can't fight.", FALSE, ch, 0, victim, TO_VICT);
|
|
||||||
} else { /* Ch == Woman */
|
|
||||||
if (GET_SEX(victim) == SEX_MALE)
|
|
||||||
act("$n accuses you of having the smallest... (brain?)",
|
|
||||||
FALSE, ch, 0, victim, TO_VICT);
|
|
||||||
else
|
|
||||||
act("$n tells you that you'd lose a beauty contest against a troll.",
|
|
||||||
FALSE, ch, 0, victim, TO_VICT);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
act("$n calls your mother a bitch!", FALSE, ch, 0, victim, TO_VICT);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
act("$n tells you to get lost!", FALSE, ch, 0, victim, TO_VICT);
|
|
||||||
break;
|
|
||||||
} /* end switch */
|
|
||||||
|
|
||||||
act("$n insults $N.", TRUE, ch, 0, victim, TO_NOTVICT);
|
|
||||||
} else { /* ch == victim */
|
|
||||||
send_to_char(ch, "You feel insulted.\r\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
send_to_char(ch, "I'm sure you don't want to insult *everybody*...\r\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* this function adds in the loaded socials and assigns them a command # */
|
/* this function adds in the loaded socials and assigns them a command # */
|
||||||
void create_command_list(void)
|
void create_command_list(void)
|
||||||
{
|
{
|
||||||
|
@ -237,7 +187,6 @@ void free_social_messages(void)
|
||||||
free_action(mess);
|
free_action(mess);
|
||||||
}
|
}
|
||||||
free(soc_mess_list);
|
free(soc_mess_list);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void free_action(struct social_messg *mess) {
|
void free_action(struct social_messg *mess) {
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
#include "interpreter.h" /* alias_data */
|
#include "interpreter.h" /* alias_data */
|
||||||
|
|
||||||
cpp_extern const char *circlemud_version =
|
cpp_extern const char *circlemud_version =
|
||||||
"tbaMUD, version 3.51";
|
"tbaMUD, version 3.52";
|
||||||
|
|
||||||
cpp_extern const char *oasisolc_version =
|
cpp_extern const char *oasisolc_version =
|
||||||
"OasisOLC 2.0.6";
|
"OasisOLC 2.0.6";
|
||||||
|
|
|
@ -726,33 +726,40 @@ OCMD(do_osetval)
|
||||||
/* submitted by PurpleOnyx - tkhasi@shadowglen.com*/
|
/* submitted by PurpleOnyx - tkhasi@shadowglen.com*/
|
||||||
OCMD(do_oat)
|
OCMD(do_oat)
|
||||||
{
|
{
|
||||||
char location[MAX_INPUT_LENGTH], arg2[MAX_INPUT_LENGTH];
|
room_rnum loc = NOWHERE;
|
||||||
int vnum = 0, rnum = 0;
|
struct char_data *ch;
|
||||||
obj_data *object;
|
struct obj_data *object;
|
||||||
|
char arg[MAX_INPUT_LENGTH], *command;
|
||||||
|
|
||||||
half_chop(argument, location, arg2);
|
command = any_one_arg(argument, arg);
|
||||||
|
|
||||||
if (!*location || !*arg2 || !isdigit(*location)) {
|
if (!*arg) {
|
||||||
obj_log(obj, "oat: bad syntax : %s", argument);
|
obj_log(obj, "oat called with no args");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
vnum = atoi(location);
|
skip_spaces(&command);
|
||||||
rnum = real_room(vnum);
|
|
||||||
|
|
||||||
if (rnum == NOWHERE) {
|
if (!*command) {
|
||||||
obj_log(obj, "oat: location not found");
|
obj_log(obj, "oat called without a command");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
object = read_object(GET_OBJ_VNUM(obj), VIRTUAL);
|
if (isdigit(*arg)) loc = real_room(atoi(arg));
|
||||||
if (!object)
|
else if ((ch = get_char_by_obj(obj, arg))) loc = IN_ROOM(ch);
|
||||||
|
|
||||||
|
if (loc == NOWHERE) {
|
||||||
|
obj_log(obj, "oat: location not found (%s)", arg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(object = read_object(GET_OBJ_VNUM(obj), VIRTUAL)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
obj_to_room(object, rnum);
|
obj_to_room(object, loc);
|
||||||
obj_command_interpreter(object, arg2);
|
obj_command_interpreter(object, command);
|
||||||
|
|
||||||
if (object->in_room == rnum)
|
if (object->in_room == loc)
|
||||||
extract_obj(object);
|
extract_obj(object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -560,26 +560,34 @@ WCMD(do_wdamage) {
|
||||||
script_damage(ch, dam);
|
script_damage(ch, dam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WCMD(do_wat)
|
||||||
|
{
|
||||||
|
room_rnum loc = NOWHERE;
|
||||||
|
struct char_data *ch;
|
||||||
|
char arg[MAX_INPUT_LENGTH], *command;
|
||||||
|
|
||||||
WCMD(do_wat) {
|
command = any_one_arg(argument, arg);
|
||||||
char location[MAX_INPUT_LENGTH], arg2[MAX_INPUT_LENGTH];
|
|
||||||
int vnum = 0;
|
|
||||||
room_data *r2;
|
|
||||||
|
|
||||||
half_chop(argument, location, arg2);
|
if (!*arg) {
|
||||||
|
wld_log(room, "wat called with no args");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!*location || !*arg2 || !isdigit(*location)) {
|
skip_spaces(&command);
|
||||||
wld_log(room, "wat: bad syntax");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
vnum = atoi(location);
|
|
||||||
if (NOWHERE == real_room(vnum)) {
|
|
||||||
wld_log(room, "wat: location not found");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
r2 = &world[real_room(vnum)];
|
if (!*command) {
|
||||||
wld_command_interpreter(r2, arg2);
|
wld_log(room, "wat called without a command");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isdigit(*arg)) loc = real_room(atoi(arg));
|
||||||
|
else if ((ch = get_char_by_room(room, arg))) loc = IN_ROOM(ch);
|
||||||
|
|
||||||
|
if (loc == NOWHERE) {
|
||||||
|
wld_log(room, "wat: location not found (%s)", arg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
wld_command_interpreter(&world[loc], command);
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct wld_command_info wld_cmd_info[] = {
|
const struct wld_command_info wld_cmd_info[] = {
|
||||||
|
|
121
src/hedit.c
121
src/hedit.c
|
@ -6,7 +6,6 @@
|
||||||
|
|
||||||
#include "conf.h"
|
#include "conf.h"
|
||||||
#include "sysdep.h"
|
#include "sysdep.h"
|
||||||
|
|
||||||
#include "structs.h"
|
#include "structs.h"
|
||||||
#include "comm.h"
|
#include "comm.h"
|
||||||
#include "interpreter.h"
|
#include "interpreter.h"
|
||||||
|
@ -75,9 +74,9 @@ void load_help(FILE *fl, char *name)
|
||||||
/* If we ran out of buffer space, eat the rest of the entry. */
|
/* If we ran out of buffer space, eat the rest of the entry. */
|
||||||
while (*line != '#')
|
while (*line != '#')
|
||||||
get_one_line(fl, line);
|
get_one_line(fl, line);
|
||||||
|
|
||||||
}
|
}
|
||||||
if (*line == '#'){
|
|
||||||
|
if (*line == '#') {
|
||||||
if (sscanf(line, "#%d", &el.min_level) != 1){
|
if (sscanf(line, "#%d", &el.min_level) != 1){
|
||||||
log("SYSERR: Help entry does not have a min level. %s", key);
|
log("SYSERR: Help entry does not have a min level. %s", key);
|
||||||
el.min_level = 0;
|
el.min_level = 0;
|
||||||
|
@ -113,7 +112,7 @@ ACMD(do_oasis_hedit)
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!can_edit_zone(ch, HEDIT_PERMISSION)) {
|
if (!can_edit_zone(ch, HEDIT_PERMISSION)) {
|
||||||
send_to_char(ch, "You don't have access to editing Help files.\r\n");
|
send_to_char(ch, "You don't have access to editing help files.\r\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,25 +139,21 @@ ACMD(do_oasis_hedit)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Give descriptor an OLC structure. */
|
||||||
/*
|
|
||||||
* Give descriptor an OLC structure.
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (d->olc) {
|
if (d->olc) {
|
||||||
mudlog(BRF, LVL_IMMORT, TRUE, "SYSERR: do_oasis: Player already had olc structure.");
|
mudlog(BRF, LVL_IMMORT, TRUE, "SYSERR: do_oasis: Player already had olc structure.");
|
||||||
free(d->olc);
|
free(d->olc);
|
||||||
}
|
}
|
||||||
CREATE(d->olc, struct oasis_olc_data, 1);
|
|
||||||
|
|
||||||
|
CREATE(d->olc, struct oasis_olc_data, 1);
|
||||||
OLC_NUM(d) = 0;
|
OLC_NUM(d) = 0;
|
||||||
OLC_STORAGE(d) = strdup(argument);
|
OLC_STORAGE(d) = strdup(argument);
|
||||||
OLC_ZNUM(d) = search_help(OLC_STORAGE(d), GET_LEVEL(ch));
|
OLC_ZNUM(d) = search_help(OLC_STORAGE(d), LVL_IMPL);
|
||||||
|
|
||||||
for(i = 0; i < (int)strlen(argument); i++)
|
for(i = 0; i < (int)strlen(argument); i++)
|
||||||
argument[i] = toupper(argument[i]);
|
argument[i] = toupper(argument[i]);
|
||||||
|
|
||||||
if (OLC_ZNUM(d) <= 0)
|
if (OLC_ZNUM(d) == NOWHERE)
|
||||||
hedit_setup_new(d, OLC_STORAGE(d));
|
hedit_setup_new(d, OLC_STORAGE(d));
|
||||||
else
|
else
|
||||||
hedit_setup_existing(d, OLC_ZNUM(d));
|
hedit_setup_existing(d, OLC_ZNUM(d));
|
||||||
|
@ -170,11 +165,7 @@ ACMD(do_oasis_hedit)
|
||||||
mudlog(CMP, LVL_IMMORT, TRUE, "OLC: %s starts editing help files.", GET_NAME(d->character));
|
mudlog(CMP, LVL_IMMORT, TRUE, "OLC: %s starts editing help files.", GET_NAME(d->character));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Utils and exported functions. */
|
||||||
/*------------------------------------------------------------------------*\
|
|
||||||
Utils and exported functions.
|
|
||||||
\*------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
void hedit_setup_new(struct descriptor_data *d, char *new_key)
|
void hedit_setup_new(struct descriptor_data *d, char *new_key)
|
||||||
{
|
{
|
||||||
CREATE(OLC_HELP(d), struct help_index_element, 1);
|
CREATE(OLC_HELP(d), struct help_index_element, 1);
|
||||||
|
@ -186,32 +177,22 @@ void hedit_setup_new(struct descriptor_data *d, char *new_key)
|
||||||
OLC_VAL(d) = 0;
|
OLC_VAL(d) = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
void hedit_setup_existing(struct descriptor_data *d, int rnum)
|
void hedit_setup_existing(struct descriptor_data *d, int rnum)
|
||||||
{
|
{
|
||||||
/*
|
/* Build a copy of the help entry for editing.*/
|
||||||
* Build a copy of the help entry for editing.
|
|
||||||
*/
|
|
||||||
CREATE(OLC_HELP(d), struct help_index_element, 1);
|
CREATE(OLC_HELP(d), struct help_index_element, 1);
|
||||||
/*
|
/* Allocate space for all strings. */
|
||||||
* Allocate space for all strings.
|
|
||||||
*/
|
|
||||||
OLC_HELP(d)->keywords = strdup(help_table[rnum].keywords ?
|
OLC_HELP(d)->keywords = strdup(help_table[rnum].keywords ?
|
||||||
help_table[rnum].keywords : "UNDEFINED\r\n");
|
help_table[rnum].keywords : "UNDEFINED\r\n");
|
||||||
OLC_HELP(d)->entry = strdup(help_table[rnum].entry ?
|
OLC_HELP(d)->entry = strdup(help_table[rnum].entry ?
|
||||||
help_table[rnum].entry : "undefined\r\n");
|
help_table[rnum].entry : "undefined\r\n");
|
||||||
OLC_HELP(d)->min_level = help_table[rnum].min_level;
|
OLC_HELP(d)->min_level = help_table[rnum].min_level;
|
||||||
|
|
||||||
/*
|
/* Attach copy of help entry to player's descriptor. */
|
||||||
* Attach copy of help entry to player's descriptor.
|
|
||||||
*/
|
|
||||||
OLC_VAL(d) = 0;
|
OLC_VAL(d) = 0;
|
||||||
hedit_disp_menu(d);
|
hedit_disp_menu(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
void hedit_save_internally(struct descriptor_data *d)
|
void hedit_save_internally(struct descriptor_data *d)
|
||||||
{
|
{
|
||||||
struct help_index_element *new_help_table = NULL;
|
struct help_index_element *new_help_table = NULL;
|
||||||
|
@ -230,7 +211,6 @@ void hedit_save_internally(struct descriptor_data *d)
|
||||||
hedit_save_to_disk(d);
|
hedit_save_to_disk(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*------------------------------------------------------------------------*/
|
|
||||||
void hedit_save_to_disk(struct descriptor_data *d)
|
void hedit_save_to_disk(struct descriptor_data *d)
|
||||||
{
|
{
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
|
@ -249,37 +229,26 @@ void hedit_save_to_disk(struct descriptor_data *d)
|
||||||
strncpy(buf1, help_table[i].entry ? help_table[i].entry : "Empty\n\r", sizeof(buf1) - 1);
|
strncpy(buf1, help_table[i].entry ? help_table[i].entry : "Empty\n\r", sizeof(buf1) - 1);
|
||||||
strip_cr(buf1);
|
strip_cr(buf1);
|
||||||
|
|
||||||
/*
|
/* Forget making a buffer, lets just write the thing now. */
|
||||||
* Forget making a buffer, lets just write the thing now.
|
|
||||||
*/
|
|
||||||
fprintf(fp, "%s" "#%d\n", buf1, help_table[i].min_level);
|
fprintf(fp, "%s" "#%d\n", buf1, help_table[i].min_level);
|
||||||
}
|
}
|
||||||
/*
|
/* Write final line and close. */
|
||||||
* Write final line and close.
|
|
||||||
*/
|
|
||||||
fprintf(fp, "$~\n");
|
fprintf(fp, "$~\n");
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
do_reboot(d->character, strcpy(buf, "xhelp"), 0, 0);
|
do_reboot(d->character, strcpy(buf, "xhelp"), 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**************************************************************************
|
/* Menu functions */
|
||||||
Menu functions
|
/* The main menu. */
|
||||||
**************************************************************************/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The main menu.
|
|
||||||
*/
|
|
||||||
void hedit_disp_menu(struct descriptor_data *d)
|
void hedit_disp_menu(struct descriptor_data *d)
|
||||||
{
|
{
|
||||||
clear_screen(d);
|
clear_screen(d);
|
||||||
write_to_output(d,
|
write_to_output(d,
|
||||||
|
|
||||||
"\r\n@c-------------------------------------------------------------------------@n\r\n"
|
"-- Help file editor\r\n"
|
||||||
" @CHelpfile Editor@n \r\n"
|
"1) Keywords : %s\r\n"
|
||||||
"@c-------------------------------------------------------------------------@n\r\n"
|
"2) Entry :\r\n%s"
|
||||||
"@g1@n) Keyword [@G%-12s@g]@n\r\n"
|
"@g3@n) Min Level : @c%d@n\r\n"
|
||||||
"@g2@n) Entry : \n@y%s\r\n"
|
|
||||||
"@g3@n) Min Level : @c%d@n\r\n"
|
|
||||||
"@gQ@n) Quit\r\n"
|
"@gQ@n) Quit\r\n"
|
||||||
"Enter choice : ",
|
"Enter choice : ",
|
||||||
|
|
||||||
|
@ -290,17 +259,13 @@ void hedit_disp_menu(struct descriptor_data *d)
|
||||||
OLC_MODE(d) = HEDIT_MAIN_MENU;
|
OLC_MODE(d) = HEDIT_MAIN_MENU;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**************************************************************************
|
/* The main loop */
|
||||||
The main loop
|
|
||||||
**************************************************************************/
|
|
||||||
|
|
||||||
void hedit_parse(struct descriptor_data *d, char *arg)
|
void hedit_parse(struct descriptor_data *d, char *arg)
|
||||||
{
|
{
|
||||||
char buf[MAX_STRING_LENGTH];
|
char buf[MAX_STRING_LENGTH];
|
||||||
char *oldtext = '\0';
|
char *oldtext = '\0';
|
||||||
int number;
|
int number;
|
||||||
|
|
||||||
|
|
||||||
switch (OLC_MODE(d)) {
|
switch (OLC_MODE(d)) {
|
||||||
case HEDIT_CONFIRM_SAVESTRING:
|
case HEDIT_CONFIRM_SAVESTRING:
|
||||||
switch (*arg) {
|
switch (*arg) {
|
||||||
|
@ -310,16 +275,12 @@ void hedit_parse(struct descriptor_data *d, char *arg)
|
||||||
mudlog(TRUE, MAX(LVL_BUILDER, GET_INVIS_LEV(d->character)), CMP, buf);
|
mudlog(TRUE, MAX(LVL_BUILDER, GET_INVIS_LEV(d->character)), CMP, buf);
|
||||||
write_to_output(d, "Help files saved to disk.\r\n");
|
write_to_output(d, "Help files saved to disk.\r\n");
|
||||||
hedit_save_internally(d);
|
hedit_save_internally(d);
|
||||||
/*
|
/* Do NOT free strings! Just the help structure. */
|
||||||
* Do NOT free strings! Just the help structure.
|
|
||||||
*/
|
|
||||||
cleanup_olc(d, CLEANUP_STRUCTS);
|
cleanup_olc(d, CLEANUP_STRUCTS);
|
||||||
break;
|
break;
|
||||||
case 'n':
|
case 'n':
|
||||||
case 'N':
|
case 'N':
|
||||||
/*
|
/* Free everything up, including strings, etc. */
|
||||||
* Free everything up, including strings, etc.
|
|
||||||
*/
|
|
||||||
cleanup_olc(d, CLEANUP_ALL);
|
cleanup_olc(d, CLEANUP_ALL);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -378,9 +339,7 @@ void hedit_parse(struct descriptor_data *d, char *arg)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HEDIT_ENTRY:
|
case HEDIT_ENTRY:
|
||||||
/*
|
/* We will NEVER get here, we hope. */
|
||||||
* We will NEVER get here, we hope.
|
|
||||||
*/
|
|
||||||
mudlog(TRUE, LVL_BUILDER, BRF, "SYSERR: Reached HEDIT_ENTRY case in parse_hedit");
|
mudlog(TRUE, LVL_BUILDER, BRF, "SYSERR: Reached HEDIT_ENTRY case in parse_hedit");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -395,15 +354,11 @@ void hedit_parse(struct descriptor_data *d, char *arg)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
/*
|
/* We should never get here. */
|
||||||
* We should never get here.
|
|
||||||
*/
|
|
||||||
mudlog(TRUE, LVL_BUILDER, BRF, "SYSERR: Reached default case in parse_hedit");
|
mudlog(TRUE, LVL_BUILDER, BRF, "SYSERR: Reached default case in parse_hedit");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/*
|
/* If we get this far, something has been changed. */
|
||||||
* If we get this far, something has been changed.
|
|
||||||
*/
|
|
||||||
OLC_VAL(d) = 1;
|
OLC_VAL(d) = 1;
|
||||||
hedit_disp_menu(d);
|
hedit_disp_menu(d);
|
||||||
}
|
}
|
||||||
|
@ -415,7 +370,7 @@ void hedit_string_cleanup(struct descriptor_data *d, int terminator)
|
||||||
default:
|
default:
|
||||||
hedit_disp_menu(d);
|
hedit_disp_menu(d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ACMD(do_helpcheck)
|
ACMD(do_helpcheck)
|
||||||
|
@ -431,7 +386,7 @@ ACMD(do_helpcheck)
|
||||||
|
|
||||||
for (i = 1; *(complete_cmd_info[i].command) != '\n'; i++) {
|
for (i = 1; *(complete_cmd_info[i].command) != '\n'; i++) {
|
||||||
if (complete_cmd_info[i].command_pointer != do_action) {
|
if (complete_cmd_info[i].command_pointer != do_action) {
|
||||||
if (search_help((char *) complete_cmd_info[i].command, GET_LEVEL(ch)) < 0) {
|
if (search_help((char *) complete_cmd_info[i].command, LVL_IMPL) == NOWHERE) {
|
||||||
nlen = snprintf(buf + len, sizeof(buf) - len, " %-20.20s%s",
|
nlen = snprintf(buf + len, sizeof(buf) - len, " %-20.20s%s",
|
||||||
complete_cmd_info[i].command, (++count % 3 ? "|":"\r\n"));
|
complete_cmd_info[i].command, (++count % 3 ? "|":"\r\n"));
|
||||||
if (len + nlen >= sizeof(buf) || nlen < 0)
|
if (len + nlen >= sizeof(buf) || nlen < 0)
|
||||||
|
@ -449,7 +404,6 @@ ACMD(do_helpcheck)
|
||||||
*buf = '\0';
|
*buf = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ACMD(do_hindex)
|
ACMD(do_hindex)
|
||||||
{
|
{
|
||||||
int len, count = 0, i;
|
int len, count = 0, i;
|
||||||
|
@ -488,19 +442,18 @@ void free_help(struct help_index_element *help)
|
||||||
free(help);
|
free(help);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void free_help_table(void)
|
void free_help_table(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (help_table) {
|
if (help_table) {
|
||||||
for (i = 0; i <= top_of_h_table; i++) {
|
for (i = 0; i <= top_of_h_table; i++) {
|
||||||
if (help_table[i].keywords)
|
if (help_table[i].keywords)
|
||||||
free(help_table[i].keywords);
|
free(help_table[i].keywords);
|
||||||
if (help_table[i].entry && !help_table[i].duplicate)
|
if (help_table[i].entry && !help_table[i].duplicate)
|
||||||
free(help_table[i].entry);
|
free(help_table[i].entry);
|
||||||
}
|
|
||||||
free(help_table);
|
|
||||||
}
|
}
|
||||||
top_of_h_table = 0;
|
free(help_table);
|
||||||
|
}
|
||||||
|
top_of_h_table = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -118,7 +118,6 @@ ACMD(do_helpcheck);
|
||||||
ACMD(do_hide);
|
ACMD(do_hide);
|
||||||
ACMD(do_hit);
|
ACMD(do_hit);
|
||||||
ACMD(do_house);
|
ACMD(do_house);
|
||||||
ACMD(do_insult);
|
|
||||||
ACMD(do_inventory);
|
ACMD(do_inventory);
|
||||||
ACMD(do_invis);
|
ACMD(do_invis);
|
||||||
ACMD(do_kick);
|
ACMD(do_kick);
|
||||||
|
@ -351,7 +350,6 @@ cpp_extern const struct command_info cmd_info[] = {
|
||||||
{ "imotd" , "imo" , POS_DEAD , do_gen_ps , LVL_IMMORT, SCMD_IMOTD },
|
{ "imotd" , "imo" , POS_DEAD , do_gen_ps , LVL_IMMORT, SCMD_IMOTD },
|
||||||
{ "immlist" , "imm" , POS_DEAD , do_gen_ps , 0, SCMD_IMMLIST },
|
{ "immlist" , "imm" , POS_DEAD , do_gen_ps , 0, SCMD_IMMLIST },
|
||||||
{ "info" , "info" , POS_SLEEPING, do_gen_ps , 0, SCMD_INFO },
|
{ "info" , "info" , POS_SLEEPING, do_gen_ps , 0, SCMD_INFO },
|
||||||
{ "insult" , "insult" , POS_RESTING , do_insult , 0, 0 },
|
|
||||||
{ "invis" , "invi" , POS_DEAD , do_invis , LVL_IMMORT, 0 },
|
{ "invis" , "invi" , POS_DEAD , do_invis , LVL_IMMORT, 0 },
|
||||||
|
|
||||||
{ "junk" , "j" , POS_RESTING , do_drop , 0, SCMD_JUNK },
|
{ "junk" , "j" , POS_RESTING , do_drop , 0, SCMD_JUNK },
|
||||||
|
|
|
@ -49,7 +49,7 @@
|
||||||
#define PFDEF_HUNGER 0
|
#define PFDEF_HUNGER 0
|
||||||
#define PFDEF_THIRST 0
|
#define PFDEF_THIRST 0
|
||||||
#define PFDEF_DRUNK 0
|
#define PFDEF_DRUNK 0
|
||||||
#define PFDEF_OLC 65535
|
#define PFDEF_OLC NOWHERE
|
||||||
#define PFDEF_PAGELENGTH 22
|
#define PFDEF_PAGELENGTH 22
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -542,10 +542,12 @@ ACMD(do_cast)
|
||||||
}
|
}
|
||||||
t = strtok(NULL, "\0");
|
t = strtok(NULL, "\0");
|
||||||
|
|
||||||
|
skip_spaces(&s);
|
||||||
|
|
||||||
/* spellnum = search_block(s, spells, 0); */
|
/* spellnum = search_block(s, spells, 0); */
|
||||||
spellnum = find_skill_num(s);
|
spellnum = find_skill_num(s);
|
||||||
|
|
||||||
if ((spellnum < 1) || (spellnum > MAX_SPELLS)) {
|
if ((spellnum < 1) || (spellnum > MAX_SPELLS) || !*s) {
|
||||||
send_to_char(ch, "Cast what?!?\r\n");
|
send_to_char(ch, "Cast what?!?\r\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
* You are supposed to compare this with the macro CIRCLEMUD_VERSION()
|
* You are supposed to compare this with the macro CIRCLEMUD_VERSION()
|
||||||
* in utils.h. See there for usage.
|
* in utils.h. See there for usage.
|
||||||
*/
|
*/
|
||||||
#define _CIRCLEMUD 0x030510 /* Major/Minor/Patchlevel - MMmmPP */
|
#define _CIRCLEMUD 0x030520 /* Major/Minor/Patchlevel - MMmmPP */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If you want equipment to be automatically equipped to the same place
|
* If you want equipment to be automatically equipped to the same place
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue