mirror of
https://github.com/tbamud/tbamud.git
synced 2025-09-22 05:50:48 +02:00
- Removed the do_oasis function and called the Xedit commands directly (thanks Rhade).
- Updated idle timer to keep track of imms too (thanks Jamdog). - Standardized OLC messages. - Removed special procedures that were replaced with trigedit. - Updated README.WIN, README.MSVC8, and README.CYGWIN. --Rumble
This commit is contained in:
parent
f34cc2c8ed
commit
7f65248b2a
26 changed files with 534 additions and 1006 deletions
5
FAQ
5
FAQ
|
@ -1,7 +1,6 @@
|
|||
Frequently Asked Questions (FAQ) for tbaMUD with Answers
|
||||
|
||||
Updated: Apr 2007
|
||||
|
||||
Frequently Asked Questions (FAQ) for tbaMUD with Answers
|
||||
|
||||
This file is intended to cover common questions related to tbaMUD. Any
|
||||
contributions and corrections are more than welcome. It is currently
|
||||
maintained by Rumble of the Builder Academy. Please stop by the Builder
|
||||
|
|
21
README
21
README
|
@ -1,7 +1,6 @@
|
|||
tbaMUD README File
|
||||
---------------------
|
||||
Updated: Apr 2007
|
||||
|
||||
tbaMUD README
|
||||
-------------
|
||||
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:
|
||||
|
@ -32,29 +31,21 @@ Many of these instructions are outdated, please feel free to update them.
|
|||
AMIGA - If you are using an Amiga running AmigaDOS. (If you're running
|
||||
NetBSD or Linux on an Amiga, use README.UNIX instead.)
|
||||
ARC - If you are using an Acorn running RiscOS.
|
||||
|
||||
BORLAND - For those using Borland under Windows.
|
||||
|
||||
CYGWIN - If you are using Cygwin shell in Windows (Updated 12/2006).
|
||||
|
||||
CYGWIN - If you are using Cygwin shell in Windows.
|
||||
MSVC# - If you are using MSVC.
|
||||
|
||||
OS2 - If you are using OS/2 Warp Connect v3.0 or OS/2 v2.x.
|
||||
|
||||
UNIX - If you have any type UNIX system, including Linux, MkLinux, Ultrix,
|
||||
HP/UX, Solaris, SunOS, IRIX, FreeBSD, OpenBSD, NetBSD, BSDi,
|
||||
Macintosh OS X, etc.
|
||||
|
||||
VMS - If you happen to be on OpenVMS.
|
||||
|
||||
WATCOM - If using WATCOM under Windows.
|
||||
|
||||
WIN - If you are using Windows.
|
||||
|
||||
If you are interested in porting tbaMUD to a new platform, see the
|
||||
file doc/porting.txt for some tips.
|
||||
If you are interested in porting tbaMUD to a new platform, see the 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,
|
||||
about 10 megs of disk space and 16 megs of memory should be sufficient.
|
||||
For large, public MUDs with a large player base, 30 megs to 50 megs of
|
||||
disk space and at least 32 megs of memory are recommended. Free memory
|
||||
|
|
|
@ -5,6 +5,13 @@ The Builder Academy
|
|||
builderacademy.net 9091
|
||||
|
||||
tbaMUD 3.52
|
||||
[Mar 27 2007] - Rumble
|
||||
Removed the do_oasis function and called the Xedit commands directly (thanks Rhade).
|
||||
[Mar 25 2007] - Rumble
|
||||
Updated idle timer to keep track of imms too (thanks Jamdog).
|
||||
Standardized OLC messages.
|
||||
Removed special procedures that were replaced with trigedit.
|
||||
Updated README.WIN, README.MSVC8, and README.CYGWIN.
|
||||
[Mar 20 2007] - Rumble
|
||||
Added object type CHAIR (thanks Dark).
|
||||
Added ZZZ directories to plrfiles and plrvars (thanks Zizazat).
|
||||
|
@ -26,7 +33,7 @@ tbaMUD 3.52
|
|||
Added send_cannot_edit function (thanks Rhade).
|
||||
[Feb 26 2007] - Rumble
|
||||
updated CYGWIN.README, FAQ, and README
|
||||
Added in game changelog command (thanks Rhade).
|
||||
Added an in game changelog command (thanks Rhade).
|
||||
Moved do_file to act.wizard.c.
|
||||
Alphabetized Makefile.in, yeah I'm anal like that.
|
||||
Clarified licheck so people know to enter Q to accept the license and quit.
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
Compiling tbaMUD
|
||||
Updated: Apr 2007
|
||||
Compiling tbaMUD
|
||||
under Microsoft Windows using CygWin
|
||||
|
||||
tbaMUD compiles under Cygwin without needing any special modifications.
|
||||
|
@ -33,6 +34,25 @@ another form of Unix:
|
|||
example "C:\tbaMUD". "cd c:/tbaMUD" "dir" in the listed files you should see
|
||||
one called configure. DO NOT go into the SRC directory yet.
|
||||
|
||||
OPTIONAL: Make the following change to src/Makefile.in to make copyover work:
|
||||
|
||||
--- Makefile.in.old 2007-02-26 05:52:19.000000000 +0100
|
||||
+++ Makefile.in 2007-03-26 17:21:56.000000000 +0200
|
||||
@@ -61,6 +61,8 @@ circle:
|
||||
$(MAKE) $(BINDIR)/circle
|
||||
|
||||
$(BINDIR)/circle : $(OBJFILES)
|
||||
+ @-rm $(BINDIR)/circleold.exe
|
||||
+ @-mv $(BINDIR)/circle.exe $(BINDIR)/circleold.exe
|
||||
$(CC) -o $(BINDIR)/circle $(PROFILE) $(OBJFILES) $(LIBS)
|
||||
|
||||
clean:
|
||||
|
||||
The above is a "patch" file. All you need to do is add the two lines with
|
||||
the +'s to your file Makefile.in. If you are still confused check out these
|
||||
links on how to patch: http://www.circlemud.org/cdp/wtfaq/handpatch.html
|
||||
http://cwg.lazuras.org/modules.php?name=Forums&file=viewtopic&t=757
|
||||
|
||||
4) Run the configure script by typing "./configure". This will automatically
|
||||
detect what programs and library functions are available, and create the
|
||||
files "Makefile" and "conf.h" based on the results.
|
||||
|
@ -62,12 +82,8 @@ reading the forums at http://cwg.lazuras.org/ or stop by TBA for assistance.
|
|||
|
||||
It really can not be stressed enough: READ EVERYTHING.
|
||||
|
||||
Credit where credit is due:
|
||||
|
||||
Some parts of this document have been derived or outright copied from other
|
||||
files by: Jeremy Elson, David Goldstein, Tony Robbins, and George Greer
|
||||
Authors: Jeremy Elson, David Goldstein, Tony Robbins, and George Greer.
|
||||
|
||||
Rumble
|
||||
Rumble@builderacademy.net
|
||||
The Builder Academy
|
||||
builderacademy.net 9091
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
Updated: Apr 2007
|
||||
Compiling CircleMUD under Microsoft Windows XP
|
||||
using Microsoft Visual C++ 2005 (8.0)
|
||||
|
||||
|
@ -68,4 +69,17 @@ George Greer
|
|||
greerga@circlemud.org
|
||||
|
||||
Jason Pullara
|
||||
webmaster@geekstreak.com
|
||||
webmaster@geekstreak.com
|
||||
|
||||
To eliminate warnings like these:
|
||||
warning C4996: 'strcpy': This function or variable may be unsafe.
|
||||
warning C4996: 'getch': The POSIX name for this item is deprecated.
|
||||
Do this:
|
||||
In Solution Explorer
|
||||
Right click the 'project'
|
||||
Select 'Properties' which brings up the Property Pages dialog
|
||||
Expand 'Configuration Properties'
|
||||
Expand 'C/C++'
|
||||
Click on Preprocessor
|
||||
At the end of the 'Preprocessor Definitions' add:
|
||||
;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE
|
||||
|
|
|
@ -1,52 +1,38 @@
|
|||
Compiling CircleMUD
|
||||
under Microsoft Windows 95 and NT
|
||||
by Jeremy Elson
|
||||
For help, write to help@circlemud.org
|
||||
|
||||
|
||||
There are a number of different compilers available for Microsoft Windows
|
||||
95 and NT that can be used to compile CircleMUD. Each compiler works
|
||||
differently, so each compiler has a different set of instructions.
|
||||
|
||||
For up-to-date information on compiling CircleMUD under Windows, check out
|
||||
Rob Baumstark's page at http://shirak.circlemud.net/
|
||||
Updated: Apr 2007
|
||||
Compiling tbaMUD
|
||||
under Microsoft Windows
|
||||
|
||||
There are a number of different compilers available for Microsoft Windows that
|
||||
can be used to compile tbaMUD. Each compiler works differently, so each
|
||||
compiler has a different set of instructions.
|
||||
|
||||
We currently have instructions for using the following compilers:
|
||||
|
||||
1. Cygnus CYGWIN (Formerly Cygnus GNU-Win32). This is a FREE
|
||||
compiler for Microsoft Windows 95 and NT! If you don't own a
|
||||
compiler, you can just download this one off the net and get
|
||||
Circle up and running in no time. Read the file README.CYGWIN
|
||||
(submitted by David Goldstein <goldstei@cs.sunysb.edu>).
|
||||
Please note however that the CYGWIN system is not recommended
|
||||
for those unfamiliar with the Unix environment.
|
||||
1. Cygnus CYGWIN (Formerly Cygnus GNU-Win32). This is a FREE compiler for
|
||||
Microsoft Windows! If you don't own a compiler, you can just download this
|
||||
one off the net and get tbaMUD up and running in no time. Read the file
|
||||
README.CYGWIN.
|
||||
|
||||
2. Microsoft Visual C++ version 4.x -- read the file README.MSVC4
|
||||
2. Microsoft Visual C++ version 4.x -- read the file README.MSVC4.
|
||||
|
||||
3. Microsoft Visual C++ version 5.x -- read the file README.MSVC5
|
||||
3. Microsoft Visual C++ version 5.x -- read the file README.MSVC5.
|
||||
|
||||
4. Borland C++ -- read the file README.BORLAND
|
||||
4. Microsoft Visual C++ version 6.x -- read the file README.MSVC6.
|
||||
|
||||
5. Watcom C++ v.11 -- read the file README.WATCOM
|
||||
5. Microsoft Visual C++ version 8.x -- read the file README.MSVC8. This is
|
||||
also called Microsoft Visual C++ 2005 and the express edition is free and
|
||||
can be downloaded from Microsoft.
|
||||
|
||||
6. Borland C++ -- read the file README.BORLAND
|
||||
|
||||
It should be possible to compile CircleMUD using other compilers that are
|
||||
not listed here, or other versions of these compilers -- as long as they
|
||||
support long filenames, etc. However, we don't have instructions handy
|
||||
for those compilers. Rob's page (http://www.connect.ab.ca/~rbmstrk) has
|
||||
a lot of useful information about compiling under Windows; try looking
|
||||
there for tips.
|
||||
7. Watcom C++ v.11 -- read the file README.WATCOM
|
||||
|
||||
However, it not easy (and maybe even impossible) to compile at all
|
||||
under Windows 3.x or DOS because they lack a number of features that
|
||||
Circle requires such as the Win32 API and long filenames. It is
|
||||
theoretically possible to compile under Windows 3.x by finding 3.x API
|
||||
equivalents to the Win32 API calls, and changing all the filenames in
|
||||
the entire distribution to fit the 8.3 DOS/Win3.x filenaming standard,
|
||||
but I will never do this.
|
||||
It should be possible to compile tbaMUD using other compilers that are not
|
||||
listed here, or other versions of these compilers -- as long as they support
|
||||
long filenames, etc. However, we don't have instructions handy for those
|
||||
compilers. Feel free to submit your own.
|
||||
|
||||
Have fun!
|
||||
For help, check out http://www.cwg.lazuras.org
|
||||
|
||||
Jeremy Elson
|
||||
(To get help, write to help@circlemud.org)
|
||||
Originally written by: Jeremy Elson
|
||||
|
|
|
@ -734,7 +734,7 @@ is 4-20 points damage.
|
|||
The question often comes up as to what damage a weapon should inflict. I
|
||||
will attempt to explain. To understand damage you first need to know hitpoints.
|
||||
A player starts with 10 hitpoints. Then they gain a certain amount depending on
|
||||
their class when they level. Stock CircleMUD uses the following: Magic Users
|
||||
their class when they level. Stock tbaMUD uses the following: Magic Users
|
||||
gain 3-8, Clerics 5-10, Thieves 7-13, Warriors 10-15. So a level 1 Warrior
|
||||
will have 20-25 hitpoints. Now, let us apply common sense. A weapon that does
|
||||
25 points of damage could kill a level 1 player in one hit. While a weapon with
|
||||
|
@ -847,19 +847,16 @@ These are numerous and I will add them as people ask questions about them.
|
|||
#31
|
||||
CYGWIN README.CYGWIN README-CYGWIN COMPILER SHELLS
|
||||
|
||||
The README.Cygwin that comes with CircleMUD is outdated. Below is current and
|
||||
works as of December 2006.
|
||||
|
||||
Compiling CircleMUD
|
||||
Compiling tbaMUD
|
||||
under Microsoft Windows using CygWin
|
||||
|
||||
CircleMUD 3.1 compiles under Cygwin without needing any special modifications.
|
||||
tbaMUD compiles under Cygwin without needing any special modifications.
|
||||
This free pseudo-Unix environment for Windows includes the "bash" shell, "gcc"
|
||||
family of compilers, and a full set of programs and libraries for Windows users
|
||||
to compile and run programs from source code intended for Unix. It can be
|
||||
downloaded from: http://cygwin.com/
|
||||
|
||||
Compiling Circle under Cygwin is basically the same as it would be under
|
||||
Compiling tbaMUD under Cygwin is basically the same as it would be under
|
||||
another form of Unix:
|
||||
|
||||
1) Download from: http://cygwin.com/setup.exe
|
||||
|
@ -872,18 +869,17 @@ another form of Unix:
|
|||
Click Next.
|
||||
Install, follow prompts.
|
||||
|
||||
2) Download and uncompress the latest version of CircleMUD. TBA is now
|
||||
recommending everyone use CWG (CircleMUD With Goodies) Buddha since it comes
|
||||
pre-packaged with many important features like OLC and Trigedit. Join the
|
||||
forum and download Buddha at: http://cwg.lazuras.org/ The forums will
|
||||
also be a great resource for any problems that come up. Once you download
|
||||
and uncompress Buddha (I use winRAR) read through the /doc directory.
|
||||
2) Download and uncompress the latest version of tbaMUD:
|
||||
http://cwg.lazuras.org/modules.php?name=Downloads&d_op=viewdownload&cid=16
|
||||
Join the forums as they will be a great resource for any problems that you
|
||||
encounter. Once you download and uncompress tbaMUD (I use winRAR) read
|
||||
through the /doc directory.
|
||||
|
||||
3) Start the Cygwin "bash" shell by double clicking the Cygwin Icon. This will
|
||||
open a telnet looking window that mimics a *nix server where you can run the
|
||||
MUD. Go to the directory where you extracted CircleMUD by using the "cd" change
|
||||
MUD. Go to the directory where you extracted tbaMUD by using the "cd" change
|
||||
directory command and "dir" directory listing to find the correct files. For
|
||||
example "C:\circle". "cd c:/circle" "dir" in the listed files you should see
|
||||
example "C:\tbaMUD". "cd c:/tbaMUD" "dir" in the listed files you should see
|
||||
one called configure. DO NOT go into the SRC directory yet.
|
||||
|
||||
4) Run the configure script by typing "./configure". This will automatically
|
||||
|
@ -895,12 +891,12 @@ another form of Unix:
|
|||
an executable, you can also try "sh configure", "sh ./configure",
|
||||
"bash configure" and "bash ./configure" until one of them works.
|
||||
|
||||
5) NOW change to the /circle/src directory "cd src", and type "make", and watch
|
||||
CircleMUD and the additional utilities included in the Circle distribution
|
||||
automatically being compiled and placed in /circle/bin.
|
||||
5) NOW change to the /tbaMUD/src directory "cd src", and type "make", and watch
|
||||
tbaMUD and the additional utilities included in the tbaMUD distribution
|
||||
automatically being compiled and placed in /tbaMUD/bin.
|
||||
|
||||
6) Go back to /circle, and run the MUD either directly by typing
|
||||
"bin/circle", or by using the "./autorun &" script.
|
||||
6) Go back to /tbaMUD, and run the MUD either directly by typing
|
||||
"bin/tbaMUD", or by using the "./autorun &" script.
|
||||
|
||||
7) Start a telnet program. Open a connection to your own machine "localhost"
|
||||
on port 4000. You should see the MUD's login screen welcoming you. The
|
||||
|
@ -908,20 +904,17 @@ another form of Unix:
|
|||
|
||||
If you have problems, read this document again. Most of the questions received
|
||||
in email or which are posted to USENET newsgroups are answered in this file, or
|
||||
in other documents included in the CircleMUD distribution. If you are still
|
||||
in other documents included in the tbaMUD distribution. If you are still
|
||||
having problems and you're *sure* that your question is not answered in this
|
||||
document or in one of the others files in the /circle/doc directory, try
|
||||
reading the through the CircleMUD website at: http://www.circlemud.org
|
||||
document or in one of the others files in the /tbaMUD/doc directory, try
|
||||
reading the forums at http://cwg.lazuras.org/ or stop by TBA for assistance.
|
||||
|
||||
It really can not be stressed enough: READ EVERYTHING.
|
||||
|
||||
Credit where credit is due:
|
||||
|
||||
Some parts of this document have been derived or outright copied from other
|
||||
files in the CircleMUD distribution by:
|
||||
Jeremy Elson
|
||||
David Goldstein
|
||||
Tony Robbins
|
||||
George Greer
|
||||
files by: Jeremy Elson, David Goldstein, Tony Robbins, and George Greer
|
||||
|
||||
Rumble
|
||||
Rumble@@builderacademy.net
|
||||
|
@ -932,9 +925,9 @@ See also: CODING, DOWNLOADS
|
|||
#31
|
||||
TILDES ~
|
||||
|
||||
On stock CircleMUD a tilde is used in the world files to denote an end of line.
|
||||
This way the files can be saved and read. Because of this adding a tilde in any
|
||||
of the editors on older versions of CircleMUD could make the MUD unbootable.
|
||||
On tbaMUD a tilde is used in the world files to denote an end of line. This way
|
||||
the files can be saved and read. Because of this adding a tilde in any of the
|
||||
editors on older versions of CircleMUD could make the MUD unbootable.
|
||||
|
||||
See also: WORLD-FILE
|
||||
#31
|
||||
|
@ -1062,23 +1055,21 @@ CWG BUDDHA SUNTZU RASPUTIN CIRCLEMUD-WITH-GOODIES
|
|||
|
||||
CWG is short for CircleMUD with Goodies. It is a customized codebase free
|
||||
to download from http://cwg.lazuras.org/. It comes in three versions: Buddha,
|
||||
Suntzu, and Rasputin.
|
||||
Suntzu, and Rasputin. CWG is also nice enough to host the tbaMUD forums and
|
||||
downloads section.
|
||||
|
||||
See also: RESOURCES
|
||||
#31
|
||||
SOURCES RESOURCES CODEBASE FTP DOWNLOADS DOCUMENTATION OLC-SOURCE CODEOLC OLCCODE OLC-CODE CODE-OLC WTFAQ MAILING-LISTS FORUMS MAILINGLISTS GROUPS
|
||||
|
||||
Source: http://cwg.lazuras.org/modules.php?name=Downloads&d_op=viewdownload&cid=16
|
||||
CWG: http://cwg.lazuras.org/
|
||||
Stock: ftp://ftp.circlemud.org/pub/CircleMUD/3.x/
|
||||
Trigedit: http://builderacademy.net/Oasis_DG_pages/contents/downloads.htm
|
||||
GDB: http://www.cs.clemson.edu/~ihcho/courses/cs360/common/gdb.html
|
||||
|
||||
Documentation:
|
||||
http://www.circlemud.org
|
||||
ftp://ftp.circlemud.org/pub/CircleMUD/3.x/uncompressed/circle-3.1/doc/
|
||||
http://builderacademy.net/Oasis_DG_pages/index.html
|
||||
http://www.circlemud.org/cdp/wtfaq/
|
||||
http://developer.circlemud.org/
|
||||
|
||||
You should join the following forums and mailing lists. Learn how to search
|
||||
them for any problems you have:
|
||||
|
@ -1264,7 +1255,7 @@ road.
|
|||
what you intended to have there all along. Novels have editors, and so
|
||||
should any zone.
|
||||
|
||||
2) Add secrets! Reward players for participating in game that the zone
|
||||
2) Add secrets! Reward players for participating in the game that the zone
|
||||
represents. Always include at least one interesting thing per three or so
|
||||
rooms. For example, have a bench in the garden or a table loaded to the
|
||||
room. Many objects don't have to do anything, just break up the sparse
|
||||
|
@ -1497,7 +1488,7 @@ road.
|
|||
browns, and yellows unless you can make that description only show during
|
||||
that season.
|
||||
|
||||
@cNOTE: If you would like to use this information for your game, you may do so
|
||||
@cNOTE:@n If you would like to use this information for your game, you may do so
|
||||
so long as you copy the entirety as is, keep Elaseth's copyright label
|
||||
at the top of it, and make any corrections as specific to your mud in
|
||||
parenthesis. If you wish to use this as a basis for your own building
|
||||
|
@ -1708,7 +1699,7 @@ http://www.degraeve.com/img2txt.php
|
|||
|
||||
See also: TBAMAP, MAPPING
|
||||
#31
|
||||
ABBREVIATIONS
|
||||
ABBREVIATIONS ABBREVS
|
||||
|
||||
We have added abbreviations so you do not have to type everything exactly as
|
||||
it appears. This also means that when you enter keywords in OLC you do not have
|
||||
|
@ -1841,7 +1832,7 @@ Be original, finish what you start, have fun, and don't forget to breathe!
|
|||
#31
|
||||
CALENDAR CALENDER MONTHS WEEKS DAYS HOURS
|
||||
|
||||
The CircleMUD calendar consists of 75 seconds per minute, 35 days a month and
|
||||
The tbaMUD calendar consists of 75 seconds per minute, 35 days a month and
|
||||
17 months a year.
|
||||
|
||||
Days of the week:
|
||||
|
@ -2113,11 +2104,10 @@ FREEZE THAW FREEZING FROZEN
|
|||
Usage: freeze [target]
|
||||
thaw [target]
|
||||
|
||||
FREEZE, originally invented here at CircleMUD (we think), is used to prevent
|
||||
a player from playing. If frozen, the game will ignore all commands entered
|
||||
by the player, including QUIT, until the player is unfrozen with THAW.
|
||||
Obviously, this command should only be used in extreme disciplinary
|
||||
circumstances.
|
||||
FREEZE is used to prevent a player from playing. If frozen, the game will
|
||||
ignore all commands entered by the player, including QUIT, until the player is
|
||||
unfrozen with THAW. Obviously, this command should only be used in extreme
|
||||
disciplinary circumstances.
|
||||
|
||||
#31
|
||||
GOTO TRANSFER TRANSPORT TELEPORT
|
||||
|
@ -2272,7 +2262,7 @@ NOHASSLE HASSLE DARK NO_HASSLE DISABLE NOHASSEL HASSEL NO-HASSLE
|
|||
|
||||
Usage: nohassle
|
||||
|
||||
Toggles a flag to prevent aggressive monsters from attacking and also prevents
|
||||
Toggles a flag to prevent aggressive monsters from attacking, and also prevents
|
||||
immortals from firing triggers. If you wish to test triggers you must turn
|
||||
nohassle off.
|
||||
|
||||
|
@ -2439,7 +2429,7 @@ TIME TICKS
|
|||
|
||||
Usage: time
|
||||
|
||||
Gives you the current game time. CircleMUD uses zulu time 0-24 hours. There are
|
||||
Gives you the current game time. tbaMUD uses zulu time 0-24 hours. There are
|
||||
75 seconds per minute, 35 days per month, and 17 months per year. 1 MUD year
|
||||
takes about 12 days.
|
||||
|
||||
|
@ -2677,7 +2667,7 @@ entity by its Vnum. Vnums are not seen by mortal players. Each zone also has
|
|||
a Vnum. The zone Vnum for any zone is simply the room, mob, object, shop, or
|
||||
trigger Vnum divided by 100. For example, The Builder Academy is zone 13,
|
||||
consisting of Vnums 1300 to 1399.
|
||||
CircleMUD worlds are divided into distinct sections called zones. Each
|
||||
tbaMUD worlds are divided into distinct sections called zones. Each
|
||||
zone typically consists of a single region of the MUD's virtual world with a
|
||||
consistent storyline. Each zone can define its own rooms, mobs, objects,
|
||||
shops, and triggers. A single zone typically contains 100 rooms, 100 mobs, 100
|
||||
|
@ -2692,7 +2682,7 @@ See also: TERMINOLOGY, VNUM, SHOW-ZONES, AREAS
|
|||
#31
|
||||
GCC
|
||||
|
||||
Several people have problems with configuring CircleMUD in cygwin the first
|
||||
Several people have problems with configuring tbaMUD in cygwin the first
|
||||
time. They will get an error saying "GCC could not be found" This means a C
|
||||
compiler was not installed because you failed to follow the directions under
|
||||
HELP CYGWIN. Reread them and add the compiler to the default download.
|
||||
|
@ -3176,7 +3166,7 @@ wait 1 s
|
|||
%load% <obj|mob> <vnum> [name [position]]
|
||||
|
||||
This command loads a mob or object into the game. No-take objects loaded to
|
||||
a mob will load to the room.
|
||||
an actor will load to the room. NO_RENT objects can not be loaded.
|
||||
|
||||
load an object to room: %load% obj 1300
|
||||
load a mob to room : %load% mob 1300
|
||||
|
@ -3207,7 +3197,7 @@ See also: POSITIONS
|
|||
#31
|
||||
%TELEPORT% WTELEPORT OTELEPORT MTELEPORT PORTALS %TRANSPORT% TRIG-TELEPORT
|
||||
|
||||
Stock CircleMUD does not have an object type portal. This is instead done with
|
||||
Stock tbaMUD does not have an object type portal. This is instead done with
|
||||
trigedit.
|
||||
|
||||
%teleport% <victim> <location>
|
||||
|
@ -3876,8 +3866,6 @@ findmob.<room vnum X>(<mob vnum Y>)
|
|||
&%var% - it, you, he/she Example: @RTSTAT 91@n
|
||||
*%var% - it, you, him/her
|
||||
^%var% - its, your, his/her
|
||||
object only
|
||||
'%obj% - something, name
|
||||
|
||||
Use \ for do not parse, or %% for %.
|
||||
|
||||
|
@ -4008,7 +3996,7 @@ next_in_room - The next mob/player in the room as a variable (id) nice to
|
|||
pos() - %actor.pos% returns position. Subfield modifies. Sleeping,
|
||||
resting, sitting, fighting, standing. @RTSTAT 1399, 20997@n
|
||||
prac() - The actor's number of practices. Subfield modifies.
|
||||
race - The actor's race, as a string. (not used in stock Circle)
|
||||
race - The actor's race, as a string. (not used in tbaMUD)
|
||||
room - The room the actor is in as a room variable.
|
||||
sex - The actor's sex, as a string: MALE, FEMALE, or NEUTRAL.
|
||||
skill() - The percentage of learnedness in the skill subfield.
|
||||
|
@ -4748,7 +4736,7 @@ See also: TIMER, %TIMER%, %TIME%
|
|||
#31
|
||||
TRIGEDIT-ADVANCED-EXAMPLES
|
||||
|
||||
To add life to the worlds CircleMUD uses something called triggers. There are
|
||||
To add life to the worlds tbaMUD uses something called triggers. There are
|
||||
three things in game that can have triggers attached to them: mobiles, objects,
|
||||
and rooms. Examples of common triggers include:
|
||||
|
||||
|
@ -5311,12 +5299,16 @@ positions to an array. See the examples below.
|
|||
|
||||
@RTSTAT 150, 41005, 1325, 57715@n
|
||||
#31
|
||||
ASSEMBLIES ASSEMBLE ASSEMBLY VEHICLES MAKE BAKE BREW CRAFT FLETCH KNIT MIX THATCH WEAVE ASSEDIT FORGE
|
||||
|
||||
These are no longer implemented here since the same thing can be done with
|
||||
Trigedit.
|
||||
TRIG-EXAMPLES ASSEMBLIES ASSEMBLE ASSEMBLY VEHICLES MAKE BAKE BREW CRAFT FLETCH KNIT MIX THATCH WEAVE ASSEDIT FORGE SMOKE SMOKING CIGARS CIGARETTES PIPES SHOTGUN BLAST SHOOT RANGED-WEAPONS FIRE-WEAPONS BOWS QUIVERS MISSILES GUNS
|
||||
|
||||
@RTSTAT 38, 48, 335@n
|
||||
These are not implemented since the same thing can be done with trigedit.
|
||||
|
||||
Assemblies: @RTSTAT 38, 48, 335@n
|
||||
Smokables: @RTSTAT 159@n
|
||||
Furniture: @RTSTAT 1399@n
|
||||
Weapons: @RTSTAT 1361, 9000, 11840, 13005@n
|
||||
|
||||
See Also: @RTRIG-QUESTS@n
|
||||
#31
|
||||
DG_AFFECTS SCRIPT-AFFLICTED AFFLICTED DG-AFFECTS DG-AFFECTS %DG_AFFECT% DG-EFFECT DG_EFFECT
|
||||
|
||||
|
@ -5440,29 +5432,6 @@ all these options.
|
|||
Warning: Some clients will give you problems since they use special characters
|
||||
like the / character (Avplay, Mush, and SimpleMU).
|
||||
|
||||
#31
|
||||
FURNITURE COUCH CHAIR
|
||||
|
||||
There is no object type for furniture since this is stock CircleMUD. But it
|
||||
can be done through trigedit. Just set the object type to OTHER and attach a
|
||||
trigger similar to the example below. Just change the word chair to the name
|
||||
you desire.
|
||||
|
||||
Example: @RTSTAT 1399@n
|
||||
#31
|
||||
SMOKE SMOKING CIGARS CIGARETTES PIPES
|
||||
|
||||
Smokable objects are not implemented on CircleMUD. The same effect may be
|
||||
created through trigedit.
|
||||
|
||||
@RTSTAT 159@n
|
||||
#31
|
||||
SHOTGUN BLAST SHOOT RANGED-WEAPONS FIRE-WEAPONS BOWS QUIVERS MISSILES GUNS
|
||||
|
||||
Object type Fire Weapon and MISSILE are not implemented in CircleMUD. The
|
||||
same effect may be created through trigedit.
|
||||
|
||||
@RTSTAT 1361, 9000, 11840, 13005@n
|
||||
#31
|
||||
TRIGEDIT TRIGS TRIGEDITOR TRIGGEREDIT TRIGGER-EDIT TRIGGERS DG-SCRIPTS TRIG-HELP SCRIPTS MOBPROGS MPROGS PROGS SCRIPTING TRIGMENU
|
||||
|
||||
|
@ -5502,12 +5471,7 @@ male PC 'Rumble' IDNum: [ 3531], In room [ 0]
|
|||
|
||||
See also: REMOTE, RDELETE
|
||||
#31
|
||||
ASSEMBLIES ASSEMBLE ASSEMBLY VEHICLES MAKE BAKE BREW CRAFT FLETCH KNIT MIX THATCH WEAVE ASSEDIT FORGE
|
||||
|
||||
See: @RTRIG-EXAMPLES@n
|
||||
|
||||
#31
|
||||
TRIG-QUESTS TRIGEDIT-QUESTS AUTOQUEST QUESTS QUESTPOINTS QUEST-POINTS QUESTMASTERS TRIG-EXAMPLES TRIGEDIT-EXAMPLES QUEST-MOBS QUESTMOBS QEDIT TRIG_EXAMPLES
|
||||
TRIG-QUESTS TRIGEDIT-QUESTS AUTOQUEST QUESTS QUESTPOINTS QUEST-POINTS QUESTMASTERS QUEST-MOBS QUESTMOBS QEDIT TRIG_EXAMPLES
|
||||
|
||||
Many zones have their own quests and examples within them, such as:
|
||||
|
||||
|
@ -5516,7 +5480,7 @@ Assembly Examples: @RTSTAT 38, 48, 335, GOTO 366@n
|
|||
Questshop Example: @RTSTAT 167, GOTO 265@n
|
||||
Fizban's Questshop Example: @RTSTAT 57705-57707@n
|
||||
|
||||
See Also Examples: BOATS, PORTALS, GUNS, ASSASSINS
|
||||
See Also Examples: TRIG-EXAMPLES, BOATS, PORTALS, GUNS, ASSASSINS
|
||||
#31
|
||||
CANBESEEN %CANBESEEN% %ACTOR.CANBESEEN%
|
||||
|
||||
|
@ -6886,7 +6850,7 @@ $S his/her target of staff/wand/scroll/potion
|
|||
|
||||
PROPER USAGE: @RVSTAT OBJ 350@n
|
||||
#31
|
||||
OEDIT-TYPES OBJECT-TYPES OBJ-TYPES OBJ-WEAPONS TRASH
|
||||
OEDIT-TYPES OBJECT-TYPES OBJ-TYPES OBJ-WEAPONS TRASH FURNITURE COUCH CHAIRS
|
||||
|
||||
5) Type : @cUNDEFINED@n
|
||||
This specifies what type an object is defined as; also controls the meanings
|
||||
|
@ -6916,6 +6880,7 @@ of value0 through value4 (option C). The Type Flag must be one of the following:
|
|||
21 PEN Item is a pen.
|
||||
22 BOAT Item is a boat; allows you to traverse water (noswim).
|
||||
23 FOUNTAIN Item is a fountain.
|
||||
24 CHAIR Item is a chair people can sit in.
|
||||
|
||||
Good items should be very rare, and hard to get. Lousy items should require
|
||||
much less effort. Give the most powerful items actually to a mob; Thieves and
|
||||
|
@ -7718,13 +7683,14 @@ about being a newbie here.
|
|||
#31
|
||||
ALIAS-EXAMPLES
|
||||
|
||||
To set up aliases to use older CircleMUD building commands:
|
||||
To set up aliases to use older tbaMUD building commands:
|
||||
|
||||
alias poofin set self poofin $*
|
||||
alias poofout set self poofout $*
|
||||
alias poofs score
|
||||
alias cheat return
|
||||
alias mail at postmaster mail $*
|
||||
alias history history all
|
||||
|
||||
See also: ALIASES
|
||||
#31
|
||||
|
@ -7739,6 +7705,19 @@ head and legs X2.
|
|||
|
||||
See also: MEDIT-AC
|
||||
#31
|
||||
PLIST PLAYERLIST P-LIST PLAYER-LIST
|
||||
|
||||
Usage: plist [minlev[-maxlev]] [-n name] [-d days] [-h hours] [-i] [-m]
|
||||
|
||||
This command allows immortals to search through the player files using
|
||||
specific criteria.
|
||||
|
||||
Examples:
|
||||
plist 0 - List everyone level 0.
|
||||
plist -i -h 2 - List all immortals that have logged in in the past hour.
|
||||
|
||||
See Also: LAST
|
||||
#31
|
||||
TOGGLES CONFIGURE SETTINGS
|
||||
|
||||
Usage: toggle
|
||||
|
@ -7776,12 +7755,12 @@ See also: AREAS
|
|||
#0
|
||||
AREAS ZONES
|
||||
|
||||
These zones are maintained in the latest CircleMUD format with DG Scripts on
|
||||
These zones are maintained in the latest tbaMUD format with DG Scripts on
|
||||
The Builder Academy (TBA) telnet://builderacademy.net:9091/
|
||||
|
||||
These areas include all donated areas from TBA, CircleMUD FTP, and stock. TBA
|
||||
is always looking for new submissions or help on improving the current zones.
|
||||
Please report any bugs, typos, ideas, or submissions to:
|
||||
These areas include all donated areas from tbaMUD. We are always looking for
|
||||
new submissions or help on improving the current zones. Please report any bugs,
|
||||
typos, ideas, or submissions to:
|
||||
|
||||
Rumble
|
||||
The Builder Academy
|
||||
|
@ -7988,7 +7967,7 @@ you went idle.
|
|||
#0
|
||||
STOCK
|
||||
|
||||
This is a listing of stock areas available with CircleMUD.
|
||||
This is a listing of stock areas.
|
||||
|
||||
0 Limbo -- DikuMud
|
||||
9 River Island Of Minos -- Mahatma of HexOynx
|
||||
|
@ -8436,16 +8415,13 @@ the body you are wearing the armor. Some items have a special bonus, and
|
|||
subtract from the AC directly. Negative AC is better.
|
||||
|
||||
#0
|
||||
PASSWORD PW
|
||||
PASSWORDS PW
|
||||
|
||||
A secret series of characters that enables a user to access a file,
|
||||
computer, or program. On multi-user systems, each user must enter his or her
|
||||
password before the computer will respond to commands. The password helps
|
||||
ensure that unauthorized users do not access the computer. In addition, data
|
||||
files and programs may require a password. Ideally, the password should be
|
||||
something that nobody could guess. In practice, most people choose a password
|
||||
that is easy to remember, such as their name or their initials. This is one
|
||||
reason it is relatively easy to break into most computer systems.
|
||||
Ideally, your password should be something that nobody could guess. In
|
||||
reality, most people choose a password that is easy to remember and they never
|
||||
change it. While passwords on most MUDs are encrypted there is no rule that
|
||||
they have to be. So please NEVER use a password on a MUD that you use anywhere
|
||||
else. Choose a separate MUDding password and change it occasionally.
|
||||
|
||||
If you forget your password any IMP can reset it for you.
|
||||
#0
|
||||
|
@ -8562,14 +8538,15 @@ traveling and require some rest to continue.
|
|||
See also: MANA, HITPOINTS
|
||||
#0
|
||||
CIRCLEMUD CREDITS
|
||||
C I R C L E M U D 3 . 5
|
||||
|
||||
CircleMUD was developed from DikuMUD (Gamma 0.0) by Jeremy "Ras" Elson at
|
||||
Johns Hopkins University's Department of Computer Science. All code unique
|
||||
to CircleMUD is protected under a copyright by the Trustees of the Johns
|
||||
Hopkins University.
|
||||
t b a M U D 3 . 5 1
|
||||
|
||||
Many, many people contributed to CircleMUD in one way or another throughout
|
||||
tbaMUD (formerly known as CircleMUD) was developed from DikuMUD (Gamma 0.0) by
|
||||
Jeremy "Ras" Elson at Johns Hopkins University's Department of Computer Science.
|
||||
All code unique to tbaMUD is protected under a copyright by the Trustees of
|
||||
the Johns Hopkins University.
|
||||
|
||||
Many, many people contributed to tbaMUD in one way or another throughout
|
||||
the course of its development. Although it is impossible for me to remember
|
||||
them all, I'd like to extend special thanks to certain people:
|
||||
|
||||
|
@ -8594,16 +8571,15 @@ them all, I'd like to extend special thanks to certain people:
|
|||
...plus everyone else in the Circle community who has submitted material!
|
||||
Thanks everyone!
|
||||
|
||||
Anonymous FTP: ftp.circlemud.org or ftp2.circlemud.org in pub/CircleMUD
|
||||
Bugs and Help: builderacademy.net 9091
|
||||
URL: http://www.circlemud.org/
|
||||
Mailing List: listserv@@post.queensu.ca
|
||||
(write "subscribe circle <first name> <last name>")
|
||||
URL: http://tbaMUD.com/
|
||||
Mailing List: http://cwg.lazuras.org/
|
||||
|
||||
--Jeremy Elson
|
||||
|
||||
CircleMUD is currently being developed by The Builder Academy and all bugs and
|
||||
requests for help should be directed to: builderacademy.net 9091
|
||||
tbaMUD (formerly known as CircleMUD) is currently being developed by The
|
||||
Builder Academy. All bugs and requests for help should be directed to:
|
||||
builderacademy.net 9091
|
||||
|
||||
--Rumble
|
||||
#0
|
||||
|
@ -9754,11 +9730,10 @@ Accumulative: -
|
|||
Duration : Instantaneous
|
||||
Level : Mage level 6.
|
||||
|
||||
If possible you will know exactly where an object is, or the
|
||||
name of the person using it. If more than one object by the
|
||||
same name exists, you will get a listing of several objects.
|
||||
The maximum number of objects you can simultaneously locate is
|
||||
your level divided by 2.
|
||||
If possible you will know exactly where an object is, or the name of the person
|
||||
using it. If more than one object by the same name exists, you will get a
|
||||
listing of several objects. The maximum number of objects you can
|
||||
simultaneously locate is your level divided by 2.
|
||||
#0
|
||||
MAGIC-MISSILE
|
||||
|
||||
|
@ -10011,14 +9986,14 @@ See also: HOUSES
|
|||
#0
|
||||
POLICIES INFO NEWS POLICY VERSION UPDATES
|
||||
|
||||
These commands show you important information about CircleMUD. It is a good
|
||||
These commands show you important information about tbaMUD. It is a good
|
||||
idea to read them every once in a while.
|
||||
|
||||
info - useful information about the game for beginners
|
||||
news - latest changes to the code and areas
|
||||
policy - policies on topics like player killing
|
||||
credits - the people who made CircleMUD possible!
|
||||
version - displays the current CircleMUD version number
|
||||
credits - the people who made tbaMUD possible!
|
||||
version - displays the current tbaMUD version number
|
||||
|
||||
#0
|
||||
INVENTORY
|
||||
|
@ -10169,7 +10144,7 @@ Usage: notell
|
|||
Use NO<channel> if you wish to stop using and seeing that channel. A
|
||||
(no<channel>) flag will appear after your name in the WHO list.
|
||||
|
||||
See also: TOGGLE, FLAGS, TELL, TOGGLE, WHO
|
||||
See also: TOGGLE, FLAGS, TELL, WHO
|
||||
#0
|
||||
OFFER RENTING UNRENTING UN-RENTING
|
||||
|
||||
|
@ -10964,22 +10939,24 @@ you are logged in the MUD or not.
|
|||
BACKDOOR HACKING
|
||||
|
||||
Not a good thing to be searching for help on. Your IP address has been logged
|
||||
and we will be contacting your service provider. Just Kidding. CircleMUD is
|
||||
and we will be contacting your service provider. Just Kidding. tbaMUD is
|
||||
actually very stable. I have never heard of one being hacked except via weak or
|
||||
compromised passwords.
|
||||
|
||||
#0
|
||||
DIKU ROM DBX DBZ SMAUG
|
||||
|
||||
These are other types of MUD codebases. We only focus on the latest version
|
||||
of CircleMUD here.
|
||||
These are other types of MUD codebases. We only focus on tbaMUD (the codebase
|
||||
formerly known as CircleMUD).
|
||||
|
||||
#0
|
||||
HISTORY
|
||||
|
||||
Usage: history
|
||||
Usage: history < all | say | gossip | wiznet | tell | shout | grats | holler | auction >
|
||||
|
||||
Shows last 100 communications your player has seen while in the game.
|
||||
Automatically clears after you check it or leave the game.
|
||||
This command displays what has been said over the channel you input along
|
||||
with a time stamp for when it was sent. History all will list the history of
|
||||
all channels.
|
||||
|
||||
See also: CHANNELS
|
||||
#0
|
||||
|
@ -11045,6 +11022,33 @@ Thanks to ...
|
|||
|
||||
Share and enjoy.
|
||||
MERC Industries
|
||||
#0
|
||||
PROMOTE PROMOTIONS ADVANCEMENTS RAISES LVLS LEVELS GAINS 31 32 33 34 RANKS RANKING HIRING
|
||||
|
||||
Here at The Builder Academy the level of an immortal generally denotes
|
||||
their skill at building. This makes it easier for people to know who is in
|
||||
charge, who they can ask for help, and who they should be wary of taking tips
|
||||
from. I encourage everyone to help each other. Just realize that if the person
|
||||
is not at least level 32 they may have relatively little experience.
|
||||
|
||||
Level 31 (Immortal) Anyone who is new to TBA and is working on their trial vnum
|
||||
or zone.
|
||||
Level 32 (God) An experienced builder that has proven their knowledge and is
|
||||
willing to teach others. Level 32 and above is considered staff.
|
||||
Level 33 (Greater God) An experienced builder that has contributed significantly
|
||||
to TBA.
|
||||
Level 34 (Implementor) Welcor and I (Rumble). Welcor codes, I administrate.
|
||||
|
||||
Do not bother asking to be advanced, and if that is why you are here, you
|
||||
are wasting your time. Note, this does not mean you are not a quality builder,
|
||||
but TBA is not your typical MUD. On the contrary, we are here as dedicated
|
||||
people to help you learn to build. Because of this the only chance of
|
||||
advancement is if you are willing to learn to build and then help teach others.
|
||||
If you are willing to give back to the tbaMUD community, and have the
|
||||
necessary skills to do so, you will be advanced and given further privileges
|
||||
to help teach others. Generally, if you have to ask for a promotion you will be
|
||||
less likely to receive it. Performance is everything here.
|
||||
|
||||
#0
|
||||
HEIACH XTBA
|
||||
|
||||
|
@ -11111,7 +11115,7 @@ feeble essences, where he pretends to not be overly competent and actually
|
|||
humble and helpful, but whatever you do...don't be fooled! It should be obvious
|
||||
from the fact he's built 4 rooms in that many years that he is spending most
|
||||
of his time elsewhere...on much darker motives than building happy zones
|
||||
for CircleMUD players.
|
||||
for tbaMUD players.
|
||||
|
||||
#0
|
||||
PRAISE REVIEWS RATINGS
|
||||
|
@ -11252,7 +11256,7 @@ service-oriented, and non-judgmental about building abilities.
|
|||
|
||||
If you wish to participate in any of the above, I believe we uniquely
|
||||
suit your needs. The only drawback is that while many building
|
||||
techniques are universal, we specifically teach the use of CircleMUD
|
||||
techniques are universal, we specifically teach the use of tbaMUD
|
||||
3.1 with DG-Scripts 1.0.12 and OasisOLC 2.0.6.
|
||||
|
||||
Happy Building!
|
||||
|
@ -11280,7 +11284,7 @@ talented, has something to learn. Advice and honest opinions are
|
|||
given when requested, but at the same time every builder has the
|
||||
freedom to both experiment with unconventional building techniques,
|
||||
as well as a chance to learn or get better with traditional
|
||||
CircleMUD tools.
|
||||
tbaMUD tools.
|
||||
|
||||
This is a place for builders who love to build, and the building
|
||||
happens in the friendliest atmosphere you could possibly imagine. I
|
||||
|
@ -11533,29 +11537,40 @@ CHALLENGE
|
|||
That is what you will find here at TBA.
|
||||
|
||||
#0
|
||||
TBA PROJECT BACKGROUND STORY HISTORY INTRODUCTION ACADEMY COMMUNITY OVERVIEW
|
||||
TBAMUD PROJECT BACKGROUND STORY HISTORY INTRODUCTION ACADEMY COMMUNITY OVERVIEW VISION TBA-VISION
|
||||
|
||||
TBA stands for The Builder Academy.
|
||||
@RGOTO 3@n to enter the Builder Academy tutorial.
|
||||
|
||||
A normal MUD will have a background (theme, plot, story, whatever you want
|
||||
to call it) which a builder is expected to work from. TBA does not have
|
||||
any such background. If you want to build a zone for a MUD then use their
|
||||
background. Otherwise, you may build whatever your heart desires.
|
||||
TbaMUD's vision is to provide the MUDding community a stable and functional
|
||||
codebase that includes an in-depth World and help files that makes it ready
|
||||
to be molded into a custom MUD by its coders and builders. We also provide
|
||||
multiple resources to allow for feedback, contribution, and the sharing of
|
||||
ideas within the MUDding community to ensure constant development and
|
||||
improvements.
|
||||
|
||||
TBA stands for The Builder Academy.
|
||||
TbaMUD 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
|
||||
of spells, skills, classes, and races, tbaMUD will disappoint you. 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 highly stable, developed,
|
||||
organized, and well documented "blank slate" MUD on which you can put your OWN
|
||||
ideas for spells, skills, and classes, then tbaMUD is what what you are looking
|
||||
for.
|
||||
|
||||
I created TBA in October of 2000 on Cruel World which was being run by
|
||||
Zemial and Welcor. I then began combining my own experience with the work of
|
||||
others into an extensive tutorial zone, help files, and examples. Welcor and
|
||||
I ended up separating TBA from Cruel World to further enhance our training of
|
||||
new builders. Welcor has taken over the development of Trigedit and has
|
||||
contributed extensively to the current version of Oasis OLC. TBA now has many
|
||||
purposes. It functions as a test port for Trigedit, Oasis OLC, CircleMUD, and
|
||||
stock CircleMUD zones. And, of course, we are still open to anyone willing to
|
||||
learn, teach, or help develop CircleMUD. We have also teamed up with Zizazat
|
||||
of CWG to combine our efforts.
|
||||
TBA was created in 2000 on Cruel World which was being run by Zemial and Welcor.
|
||||
I began combining my own experience with the work of others into an extensive
|
||||
tutorial zone, help files, and examples. Welcor and I ended up separating TBA
|
||||
from Cruel World to further enhance our training of new builders. Welcor has
|
||||
taken over the development of Trigedit and has contributed extensively to what
|
||||
has now evolved into the tbaMUD release.
|
||||
|
||||
We are a low stress, no deadline, training environment. Where anyone with
|
||||
After offering several times to take over CircleMUD development TBA released
|
||||
CircleMUD 3.5 and later changed the codebase name to tbaMUD. TBA now has many
|
||||
purposes including: Developing trigedit, OLC, the tbaMUD codebase, and all the
|
||||
zones.
|
||||
|
||||
TBA is a low stress, no deadline, training environment. Where anyone with
|
||||
motivation can work at their own pace to learn as much or as little as they
|
||||
wish. Numerous people are available to answer questions and give advice.
|
||||
|
||||
|
@ -11620,33 +11635,6 @@ and fill out the application.
|
|||
|
||||
See also: OLC, REDIT, MEDIT, OEDIT, ZEDIT, SEDIT, TRIGEDIT, AEDIT
|
||||
|
||||
#0
|
||||
PROMOTE PROMOTIONS ADVANCEMENTS RAISES LVLS LEVELS GAINS 31 32 33 34 RANKS RANKING HIRING
|
||||
|
||||
Here at The Builder Academy the level of an immortal generally denotes
|
||||
their skill at building. This makes it easier for people to know who is in
|
||||
charge, who they can ask for help, and who they should be wary of taking tips
|
||||
from. I encourage everyone to help each other. Just realize that if the person
|
||||
is not at least level 32 they may have relatively little experience.
|
||||
|
||||
Level 31 (Immortal) Anyone who is new to TBA and is working on their trial vnum
|
||||
or zone.
|
||||
Level 32 (God) An experienced builder that has proven their knowledge and is
|
||||
willing to teach others. Level 32 and above is considered staff.
|
||||
Level 33 (Greater God) An experienced builder that has contributed significantly
|
||||
to TBA.
|
||||
Level 34 (Implementor) Welcor and I (Rumble). Welcor codes, I administrate.
|
||||
|
||||
Do not bother asking to be advanced, and if that is why you are here, you
|
||||
are wasting your time. Note, this does not mean you are not a quality builder,
|
||||
but TBA is not your typical MUD. On the contrary, we are here as dedicated
|
||||
people to help you learn to build. Because of this the only chance of
|
||||
advancement is if you are willing to learn to build and then help teach others.
|
||||
If you are willing to give back to the CircleMUD community, and have the
|
||||
necessary skills to do so, you will be advanced and given further privileges
|
||||
to help teach others. Generally, if you have to ask for a promotion you will be
|
||||
less likely to receive it. Performance is everything here.
|
||||
|
||||
#0
|
||||
RANDOM-THOUGHTS BIGGEST EGO
|
||||
|
||||
|
@ -11661,69 +11649,112 @@ builders to the helpfiles.
|
|||
|
||||
@RTSTAT 41095@n
|
||||
#0
|
||||
THE-MUD-CONNECTOR TMC MUD-CONNECTOR
|
||||
THE-MUD-CONNECTOR TMC MUD-CONNECTOR MUDCONNECTOR
|
||||
|
||||
Most of our traffic comes through word of mouth or TMC reviews. If you are so
|
||||
inclined please leave a review about your experience with TBA at:
|
||||
http://mudconnector.com/mud-bin/adv_search.cgi?Mode=MUD&mud=The+Builder+Academy
|
||||
|
||||
The most challenging aspect of running a mud is finding good
|
||||
builders. You will hear this from the admin of every MUD that has ever
|
||||
been. In the past it has always been up to each individual MUD to find
|
||||
and usually train their own builders. This works, but I think the
|
||||
MUDding community can come up with something better. That is why I
|
||||
created The Builder Academy.
|
||||
|
||||
We have been open to anyone interested in learning or teaching how
|
||||
to build using Oasis OLC with dg scripts since 2000. TBA has expanded
|
||||
to also be used to develop stock zones for CircleMUD.
|
||||
|
||||
TBA has trained 1000's of builders and has an extensive tutorial
|
||||
and help file system. No pressure, no deadline, just come learn,
|
||||
teach, or help develop CircleMUD. Give back to the community we have
|
||||
all taken so much from. TBA is a MUDding resource. Take advantage of
|
||||
it so we can improve the entire MUDding community.
|
||||
|
||||
TBA can also be used by other MUDs as a builder's port. Just send
|
||||
us your newbie builders. We will teach them and then you can have
|
||||
them back with the zones they built.
|
||||
|
||||
We are always open to anyone willing to learn, teach, or help
|
||||
develop our newly released tbaMUD codebase (the codebase formerly
|
||||
known as CircleMUD).
|
||||
|
||||
See also: REVIEWS
|
||||
#0
|
||||
TBA-ADVERTISING
|
||||
Mud Created: October, 2000
|
||||
|
||||
Mud Created: 2000
|
||||
The Builder Academy
|
||||
Code Base: [Circlemud] 3.1
|
||||
Latest CircleMUD with OasisOLC and DG Scripts
|
||||
Site: builderacademy.net 9091 [206.123.75.138]
|
||||
Code Base: [tbaMUD] the latest version
|
||||
Site: builderacademy.net 9091 [88.80.193.39]
|
||||
Admin Email: rumble@@builderacademy.net
|
||||
Theme: Teaching Builders, CircleMUD and DG Scripts development
|
||||
Theme: Teaching Builders and tbaMUD codebase development
|
||||
http://www.builderacademy.net/
|
||||
telnet://builderacademy.net:9091
|
||||
|
||||
Since 2000 The Builder Academy has been training new builders and
|
||||
developing the CircleMUD codebase, Oasis OLC, and trigedit. After years
|
||||
of stock CircleMUD stagnation TBA offered to take over stock CircleMUD
|
||||
development several times. TBA unofficially released CircleMUD 3.5 in
|
||||
2006 and later released the codebase under the name tbaMUD. TbaMUD is
|
||||
holding true to the original CircleMUD vision with a few additions. The
|
||||
largest difference is the inclusion of Oasis OLC, trigedit, in-depth
|
||||
tutorials, help files, and examples. TBA will continue development and is
|
||||
always open to feedback and recommendations from the MUDding community.
|
||||
TBA is foremost a MUDding resource with the goal of improving the MUDding
|
||||
community.
|
||||
|
||||
The tbaMUD vision:
|
||||
TbaMUD's vision is to provide the MUDding community a stable and
|
||||
functional codebase that includes an in-depth World and help files that
|
||||
makes it ready to be molded into a custom MUD by its coders and builders.
|
||||
We also provide multiple resources to allow for feedback, contribution,
|
||||
and the sharing of ideas within the MUDding community to ensure constant
|
||||
development and improvements.
|
||||
TbaMUD 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 of spells, skills, classes, and races, tbaMUD will
|
||||
disappoint you. 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 highly stable, developed, organized, and well documented
|
||||
"blank slate" MUD on which you can put your OWN ideas for spells, skills,
|
||||
and classes, then tbaMUD is what what you are looking for.
|
||||
|
||||
The source:
|
||||
http://tbamud.com/Oasis_DG_pages/downloads/patches/tbamud-3.51.tgz
|
||||
The forums:
|
||||
http://cwg.lazuras.org/
|
||||
|
||||
Rumble
|
||||
The Builder Academy
|
||||
builderacademy.net 9091
|
||||
|
||||
The most challenging aspect of running a mud is finding good builders. You
|
||||
will hear this from the admin of every MUD that has ever been. In the past it
|
||||
has always been up to each individual MUD to find and usually train their own
|
||||
builders. This works, but I think the CircleMUD community can come up with
|
||||
has always been up to each individual MUD to find and attempt to train their
|
||||
own builders. This works, but I think the MUDding community can come up with
|
||||
something better. That is why I created The Builder Academy.
|
||||
|
||||
We have been open to anyone interested in learning or teaching how to build
|
||||
using Oasis OLC with dg scripts since 2000. The current developer of DG scripts,
|
||||
Welcor, uses The Builder's Academy (TBA) as the development port for DG
|
||||
scripts.
|
||||
Now TBA has expanded to also be used to develop stock zones for CircleMUD.
|
||||
TBA has been open to anyone interested in learning or teaching how to build
|
||||
using Oasis OLC with dg scripts since 2000. TBA is now being used to develop
|
||||
the tbaMUD codebase (formerly known as CircleMUD)
|
||||
|
||||
TBA has trained thousands of builders and has an extensive tutorial and help
|
||||
file system. No pressure, no deadline, just come learn, teach, or help develop
|
||||
CircleMUD. Give back to the community we have all taken so much from. TBA is a
|
||||
CircleMUD resource. Take advantage of it so we can improve all of CircleMUD.
|
||||
TBA can also be used by other MUDs as a builder's port. Just send us your
|
||||
tbaMUD. Give back to the community we have all taken so much from. TBA is a
|
||||
MUDding resource. Please take advantage of it so we can improve all of the
|
||||
MUDding community.
|
||||
|
||||
TBA can even be used by other MUDs as a builder's port. Just send us your
|
||||
newbie builders. We will teach them and then you can have them back with the
|
||||
zones they built.
|
||||
|
||||
We are always open to anyone willing to learn, teach, or help develop stock
|
||||
CircleMUD,Oasis OLC, and DG scripts.
|
||||
|
||||
TBA has been open to anyone interested in learning or teaching how to
|
||||
build using Oasis OLC with DG Scripts since 2000. The current developer of
|
||||
DG scripts and Oasis OLC, Welcor, uses TBA as the development port for both.
|
||||
TBA is also developing stock and other zones that are free to download.
|
||||
|
||||
TBA has trained thousands of builders and has an extensive tutorial and help
|
||||
file system. No pressure, no deadline, just come learn, teach, or help develop
|
||||
CircleMUD. Give back to the community we have all taken so much from. TBA is a
|
||||
CircleMUD resource. Take advantage of it so we can improve all of CircleMUD.
|
||||
TBA can also be used by other MUDs as a builder's port. Just send us your
|
||||
newbie builders. We will teach them and then you can have them back with the
|
||||
zones they built.
|
||||
|
||||
We have now opened up a player's port running CWG Buddha to test and develop
|
||||
zones. We have 177 zones ready for testing and free to download. Check it out
|
||||
at: builderacademy.net 9092 [65.69.46.147]
|
||||
We are always open to anyone willing to learn, teach, or help develop tbaMUD.
|
||||
|
||||
Rumble
|
||||
The Builder Academy
|
||||
builderacademy.net 9091 [206.123.75.138]
|
||||
builderacademy.net 9091 [88.80.193.39]
|
||||
#0
|
||||
FAMOUS QUOTES
|
||||
|
||||
|
@ -11827,7 +11858,7 @@ administration: builderacademy.net 9091
|
|||
WELCOR
|
||||
|
||||
Welcor is the head coder of The Builder Academy and uses TBA to develop
|
||||
Trigedit and OLC for all of CircleMUD.
|
||||
the tbaMUD codebase.
|
||||
|
||||
#0
|
||||
USAGE
|
||||
|
@ -11861,6 +11892,7 @@ http://www.slayn.net/web/
|
|||
http://www.bylur.net/free/#110
|
||||
http://xnixhosting.homeunix.org -- Contact Reaplo
|
||||
http://www.planetmud.net/
|
||||
www.evileyehosting.com
|
||||
|
||||
#0
|
||||
THANKSGIVING
|
||||
|
|
183
lib/text/news
183
lib/text/news
|
@ -1,91 +1,92 @@
|
|||
(lib/text/news)
|
||||
|
||||
THE tbaMUD HERALD
|
||||
"We addict players for their own enjoyment."
|
||||
February, 2007
|
||||
|
||||
|
||||
NEW COMMANDS AND NEW MUD BEHAVIOR:
|
||||
---------------------------------
|
||||
** Over 100 new socials, check them out and feel free to suggest new ones.
|
||||
|
||||
** You will now be notified when you have new mail.
|
||||
|
||||
** New toggles: autoloot, autogold, autosplit, autosac, and autoassist.
|
||||
|
||||
** Improved toggle command allowing more options.
|
||||
|
||||
** You can now use the history command to see the last 100 communications
|
||||
from all the channels. It clears upon viewing or log off.
|
||||
|
||||
** Your mail will now be saved so you will not lose it when you log off.
|
||||
|
||||
** You can now use the AFK toggle to let people see you are gone under
|
||||
who.
|
||||
|
||||
** You now have almost 180 stock zones to play.
|
||||
|
||||
** You can now interact with rooms, mobs, and objects through triggers.
|
||||
|
||||
** Multiple objects will now be stacked and preceeded by a quantity so
|
||||
your inventory won't be as long. (3) A waybread.
|
||||
|
||||
** Over 100 new socials, and the gemote command to use socials over the
|
||||
gossip channel. Socials can now target bodyparts too, behave.
|
||||
|
||||
** You can now use color! @RHELP COLORCODES@n.
|
||||
|
||||
** Added new invisible mobs and objects so everything may not be as it
|
||||
appears (not even visible with detect invis).
|
||||
|
||||
** Added an online dictionary. Tell m-w <word>.
|
||||
|
||||
** The player description length has been increased so please write a
|
||||
decent description for yourself.
|
||||
|
||||
** You can now set your pagelength with the same command.
|
||||
|
||||
** You can now "look around" to see anything of interest in the room. But,
|
||||
some things may still be hidden and require further investigation.
|
||||
|
||||
** You can now use "all" and "all.x" very generally with the get, put,
|
||||
drop, junk, donate, give, wear and remove commands. Type HELP GET
|
||||
for more info.
|
||||
|
||||
** The "track" function will show you the first step on the shortest
|
||||
path to anyone in the game.
|
||||
|
||||
** You can now remove your own messages from the board. Also, if you
|
||||
put someone else's name in parentheses in the message header, they
|
||||
will be able to remove the message too.
|
||||
|
||||
** The MIDGAARD MAIL SYSTEM is now complete. The Post Office is north
|
||||
of the entrance to the Grunting Boar inn. Stamps cost 150 coins.
|
||||
|
||||
** Fountains have now been implemented. You can drink from fountains
|
||||
or fill containers from fountains using the FILL command.
|
||||
|
||||
** The SHOUT command, as always, only reaches people in your zone (you
|
||||
can see who these people are by typing WHERE). The HOLLER command
|
||||
reaches everyone in the game but costs extra movement points.
|
||||
|
||||
** When you are writing a message, you will now not be interrupted
|
||||
by tells, shouts, emotes, socials, and even people talking in the
|
||||
same room.
|
||||
|
||||
*****************************************************************************
|
||||
IF YOU LEAVE THE GAME FOR MORE THAN AN HOUR, either by renting or plain
|
||||
quitting, your hit points, move points, and mana will be fully restored
|
||||
when you come back! This doesn't work if you're poisoned.
|
||||
*****************************************************************************
|
||||
|
||||
** Use the ASSIST command to engage in mortal combat with someone in the
|
||||
room who is getting pummeled.
|
||||
|
||||
** Use the SPLIT command to split gold among the members of your group
|
||||
(including yourself) who are in the room. i.e. If you are in a group
|
||||
with 4 other people who are in the room with you, type "SPLIT 100"
|
||||
to give each of them 20 coins.
|
||||
|
||||
** You can use the VISIBLE command to break a spell of invisibility before
|
||||
it expires.
|
||||
|
||||
(lib/text/news)
|
||||
|
||||
THE tbaMUD HERALD
|
||||
"We addict players for their own enjoyment."
|
||||
February, 2007
|
||||
|
||||
|
||||
NEW COMMANDS AND NEW MUD BEHAVIOR:
|
||||
---------------------------------
|
||||
** Over 100 new socials, check them out and feel free to suggest new ones.
|
||||
|
||||
** You will now be notified when you have new mail.
|
||||
|
||||
** New toggles: autoloot, autogold, autosplit, autosac, and autoassist.
|
||||
|
||||
** Improved toggle command allowing more options.
|
||||
|
||||
** You can now use the history command to see the last 100 communications
|
||||
from all the channels. It clears upon viewing or log off.
|
||||
|
||||
** Your mail will now be saved so you will not lose it when you log off.
|
||||
|
||||
** You can now use the AFK toggle to let people see you are gone under
|
||||
who.
|
||||
|
||||
** You now have almost 180 stock zones to play.
|
||||
|
||||
** You can now interact with rooms, mobs, and objects through triggers.
|
||||
|
||||
** Multiple objects will now be stacked and preceeded by a quantity so
|
||||
your inventory won't be as long. (3) A waybread.
|
||||
|
||||
** Over 100 new socials, and the gemote command to use socials over the
|
||||
gossip channel. Socials can now target bodyparts too, behave.
|
||||
|
||||
** You can now use color! @RHELP COLORCODES@n.
|
||||
|
||||
** Added new invisible mobs and objects so everything may not be as it
|
||||
appears (not even visible with detect invis).
|
||||
|
||||
** Added an online dictionary. Tell m-w <word>.
|
||||
|
||||
** The player description length has been increased so please write a
|
||||
decent description for yourself.
|
||||
|
||||
** You can now set your pagelength with the same command.
|
||||
|
||||
** You can now "look around" to see anything of interest in the room. But,
|
||||
some things may still be hidden and require further investigation.
|
||||
|
||||
** You can now use "all" and "all.x" very generally with the get, put,
|
||||
drop, junk, donate, give, wear and remove commands. Type HELP GET
|
||||
for more info.
|
||||
|
||||
** The "track" function will show you the first step on the shortest
|
||||
path to anyone in the game.
|
||||
|
||||
** You can now remove your own messages from the board. Also, if you
|
||||
put someone else's name in parentheses in the message header, they
|
||||
will be able to remove the message too.
|
||||
|
||||
** The MIDGAARD MAIL SYSTEM is now complete. The Post Office is north
|
||||
of the entrance to the Grunting Boar inn. Stamps cost 150 coins.
|
||||
|
||||
** Fountains have now been implemented. You can drink from fountains
|
||||
or fill containers from fountains using the FILL command.
|
||||
|
||||
** The SHOUT command, as always, only reaches people in your zone (you
|
||||
can see who these people are by typing WHERE). The HOLLER command
|
||||
reaches everyone in the game but costs extra movement points.
|
||||
|
||||
** When you are writing a message, you will now not be interrupted
|
||||
by tells, shouts, emotes, socials, and even people talking in the
|
||||
same room.
|
||||
|
||||
*****************************************************************************
|
||||
IF YOU LEAVE THE GAME FOR MORE THAN AN HOUR, either by renting or plain
|
||||
quitting, your hit points, move points, and mana will be fully restored
|
||||
when you come back! This doesn't work if you're poisoned.
|
||||
*****************************************************************************
|
||||
|
||||
** Use the ASSIST command to engage in mortal combat with someone in the
|
||||
room who is getting pummeled.
|
||||
|
||||
** Use the SPLIT command to split gold among the members of your group
|
||||
(including yourself) who are in the room. i.e. If you are in a group
|
||||
with 4 other people who are in the room with you, type "SPLIT 100"
|
||||
to give each of them 20 coins.
|
||||
|
||||
** You can use the VISIBLE command to break a spell of invisibility before
|
||||
it expires.
|
||||
|
|
38
src/aedit.c
38
src/aedit.c
|
@ -8,7 +8,6 @@
|
|||
|
||||
#include "conf.h"
|
||||
#include "sysdep.h"
|
||||
|
||||
#include "structs.h"
|
||||
#include "interpreter.h"
|
||||
#include "handler.h"
|
||||
|
@ -34,13 +33,7 @@ void aedit_setup_existing(struct descriptor_data *d, int real_num);
|
|||
void aedit_save_internally(struct descriptor_data *d);
|
||||
void aedit_save_to_disk(struct descriptor_data *d);
|
||||
|
||||
/*
|
||||
* Utils and exported functions.
|
||||
*/
|
||||
|
||||
/*------------------------------------------------------------------------*\
|
||||
Utils and exported functions.
|
||||
\*------------------------------------------------------------------------*/
|
||||
/* Utils and exported functions. */
|
||||
|
||||
ACMD(do_oasis_aedit)
|
||||
{
|
||||
|
@ -48,7 +41,11 @@ ACMD(do_oasis_aedit)
|
|||
struct descriptor_data *d;
|
||||
int i;
|
||||
|
||||
if (CONFIG_NEW_SOCIALS == 0) {
|
||||
/* No building as a mob or while being forced. */
|
||||
if (IS_NPC(ch) || !ch->desc || STATE(ch->desc) != CON_PLAYING)
|
||||
return;
|
||||
|
||||
if (CONFIG_NEW_SOCIALS == 0) {
|
||||
send_to_char(ch, "Socials cannot be edited at the moment.\r\n");
|
||||
return;
|
||||
}
|
||||
|
@ -81,9 +78,7 @@ ACMD(do_oasis_aedit)
|
|||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Give descriptor an OLC structure.
|
||||
*/
|
||||
/* Give descriptor an OLC structure. */
|
||||
if (d->olc) {
|
||||
mudlog(BRF, LVL_IMMORT, TRUE, "SYSERR: do_oasis: Player already had olc structure.");
|
||||
free(d->olc);
|
||||
|
@ -115,7 +110,6 @@ ACMD(do_oasis_aedit)
|
|||
mudlog(CMP, LVL_IMMORT, TRUE, "OLC: %s starts editing actions.", GET_NAME(ch));
|
||||
}
|
||||
|
||||
|
||||
void aedit_setup_new(struct descriptor_data *d) {
|
||||
CREATE(OLC_ACTION(d), struct social_messg, 1);
|
||||
OLC_ACTION(d)->command = strdup(OLC_STORAGE(d));
|
||||
|
@ -141,8 +135,6 @@ void aedit_setup_new(struct descriptor_data *d) {
|
|||
OLC_VAL(d) = 0;
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
void aedit_setup_existing(struct descriptor_data *d, int real_num) {
|
||||
CREATE(OLC_ACTION(d), struct social_messg, 1);
|
||||
OLC_ACTION(d)->command = strdup(soc_mess_list[real_num].command);
|
||||
|
@ -181,8 +173,6 @@ void aedit_setup_existing(struct descriptor_data *d, int real_num) {
|
|||
aedit_disp_menu(d);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void aedit_save_internally(struct descriptor_data *d) {
|
||||
struct social_messg *new_soc_mess_list = NULL;
|
||||
int i;
|
||||
|
@ -212,9 +202,6 @@ void aedit_save_internally(struct descriptor_data *d) {
|
|||
aedit_save_to_disk(d); /* autosave by Rumble */
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
void aedit_save_to_disk(struct descriptor_data *d) {
|
||||
FILE *fp;
|
||||
int i;
|
||||
|
@ -257,11 +244,7 @@ void aedit_save_to_disk(struct descriptor_data *d) {
|
|||
remove_from_save_list(AEDIT_PERMISSION, SL_ACTION);
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
/* Menu functions */
|
||||
|
||||
/* the main menu */
|
||||
/* The Main Menu. */
|
||||
void aedit_disp_menu(struct descriptor_data * d) {
|
||||
struct social_messg *action = OLC_ACTION(d);
|
||||
struct char_data *ch = d->character;
|
||||
|
@ -332,10 +315,7 @@ void aedit_disp_menu(struct descriptor_data * d) {
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* The main loop
|
||||
*/
|
||||
|
||||
/* The main loop. */
|
||||
void aedit_parse(struct descriptor_data * d, char *arg) {
|
||||
int i;
|
||||
|
||||
|
|
|
@ -41,6 +41,10 @@ ACMD(do_oasis_cedit)
|
|||
struct descriptor_data *d;
|
||||
char buf1[MAX_STRING_LENGTH];
|
||||
|
||||
/* No building as a mob or while being forced. */
|
||||
if (IS_NPC(ch) || !ch->desc || STATE(ch->desc) != CON_PLAYING)
|
||||
return;
|
||||
|
||||
/* Parse any arguments. */
|
||||
one_argument(argument, buf1);
|
||||
|
||||
|
|
|
@ -44,6 +44,10 @@ ACMD(do_oasis_trigedit)
|
|||
int number, real_num;
|
||||
struct descriptor_data *d;
|
||||
|
||||
/* No building as a mob or while being forced. */
|
||||
if (IS_NPC(ch) || !ch->desc || STATE(ch->desc) != CON_PLAYING)
|
||||
return;
|
||||
|
||||
/* Parse any arguments. */
|
||||
skip_spaces(&argument);
|
||||
if (!*argument || !isdigit(*argument)) {
|
||||
|
|
|
@ -361,9 +361,9 @@ int delete_object(obj_rnum rnum)
|
|||
struct obj_data *obj, *tmp;
|
||||
int shop, j;
|
||||
|
||||
if (rnum == NOWHERE || rnum > top_of_objt)
|
||||
return FALSE;
|
||||
|
||||
if (rnum == NOTHING || rnum > top_of_objt)
|
||||
return NOTHING;
|
||||
|
||||
obj = &obj_proto[rnum];
|
||||
|
||||
zone_rnum zrnum = real_zone_by_thing(GET_OBJ_VNUM(obj));
|
||||
|
@ -457,5 +457,5 @@ int delete_object(obj_rnum rnum)
|
|||
|
||||
save_objects(zrnum);
|
||||
|
||||
return TRUE;
|
||||
return rnum;
|
||||
}
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
|
||||
#include "conf.h"
|
||||
#include "sysdep.h"
|
||||
|
||||
#include "structs.h"
|
||||
#include "utils.h"
|
||||
#include "db.h"
|
||||
|
@ -204,12 +203,8 @@ int in_save_list(zone_vnum zone, int type)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
* Used from do_show(), ideally.
|
||||
*/
|
||||
void do_show_save_list(struct char_data *ch)
|
||||
/* Used from do_show(), ideally. */
|
||||
ACMD(do_show_save_list)
|
||||
{
|
||||
if (save_list == NULL)
|
||||
send_to_char(ch, "All world files are up to date.\r\n");
|
||||
|
|
|
@ -6,18 +6,14 @@
|
|||
************************************************************************/
|
||||
|
||||
#define STRING_TERMINATOR '~'
|
||||
|
||||
#define CONFIG_GENOLC_MOBPROG 0
|
||||
|
||||
/* from modify.c */
|
||||
void smash_tilde(char *str);
|
||||
|
||||
void smash_tilde(char *str); /* from modify.c */
|
||||
int genolc_checkstring(struct descriptor_data *d, char *arg);
|
||||
int remove_from_save_list(zone_vnum, int type);
|
||||
int add_to_save_list(zone_vnum, int type);
|
||||
int in_save_list(zone_vnum, int type);
|
||||
void strip_cr(char *);
|
||||
void do_show_save_list(struct char_data *);
|
||||
int save_all(void);
|
||||
char *str_udup(const char *);
|
||||
void copy_ex_descriptions(struct extra_descr_data **to, struct extra_descr_data *from);
|
||||
|
|
|
@ -111,6 +111,10 @@ ACMD(do_oasis_hedit)
|
|||
struct descriptor_data *d;
|
||||
int i;
|
||||
|
||||
/* No building as a mob or while being forced. */
|
||||
if (IS_NPC(ch) || !ch->desc || STATE(ch->desc) != CON_PLAYING)
|
||||
return;
|
||||
|
||||
if (!can_edit_zone(ch, HEDIT_PERMISSION)) {
|
||||
send_to_char(ch, "You don't have access to editing help files.\r\n");
|
||||
return;
|
||||
|
|
|
@ -183,6 +183,7 @@ ACMD(do_score);
|
|||
ACMD(do_send);
|
||||
ACMD(do_set);
|
||||
ACMD(do_show);
|
||||
ACMD(do_show_save_list);
|
||||
ACMD(do_shutdown);
|
||||
ACMD(do_sit);
|
||||
ACMD(do_skillset);
|
||||
|
@ -250,7 +251,7 @@ cpp_extern const struct command_info cmd_info[] = {
|
|||
/* now, the main list */
|
||||
{ "at" , "at" , POS_DEAD , do_at , LVL_IMMORT, 0 },
|
||||
{ "advance" , "adv" , POS_DEAD , do_advance , LVL_GOD, 0 },
|
||||
{ "aedit" , "aed" , POS_DEAD , do_oasis , LVL_GOD, SCMD_OASIS_AEDIT },
|
||||
{ "aedit" , "aed" , POS_DEAD , do_oasis_aedit, LVL_GOD, 0 },
|
||||
{ "alias" , "ali" , POS_DEAD , do_alias , 0, 0 },
|
||||
{ "afk" , "afk" , POS_DEAD , do_gen_tog , 0, SCMD_AFK },
|
||||
{ "assist" , "as" , POS_FIGHTING, do_assist , 1, 0 },
|
||||
|
@ -270,7 +271,7 @@ cpp_extern const struct command_info cmd_info[] = {
|
|||
{ "bug" , "bug" , POS_DEAD , do_gen_write, 0, SCMD_BUG },
|
||||
|
||||
{ "cast" , "c" , POS_SITTING , do_cast , 1, 0 },
|
||||
{ "cedit" , "cedit" , POS_DEAD , do_oasis , LVL_IMPL, SCMD_OASIS_CEDIT },
|
||||
{ "cedit" , "cedit" , POS_DEAD , do_oasis_cedit, LVL_IMPL, 0 },
|
||||
{ "changelog", "cha" , POS_DEAD , do_changelog, LVL_IMPL, 0 },
|
||||
{ "check" , "ch" , POS_STANDING, do_not_here , 1, 0 },
|
||||
{ "checkload", "checkl" , POS_DEAD , do_checkloadstatus, LVL_GOD, 0 },
|
||||
|
@ -326,7 +327,7 @@ cpp_extern const struct command_info cmd_info[] = {
|
|||
{ "gtell" , "gt" , POS_SLEEPING, do_gsay , 0, 0 },
|
||||
|
||||
{ "help" , "h" , POS_DEAD , do_help , 0, 0 },
|
||||
{ "hedit" , "hedit" , POS_DEAD , do_oasis , LVL_GOD , SCMD_OASIS_HEDIT },
|
||||
{ "hedit" , "hedit" , POS_DEAD , do_oasis_hedit, LVL_GOD , 0 },
|
||||
{ "hindex" , "hind" , POS_DEAD , do_hindex , 0, 0 },
|
||||
{ "helpcheck", "helpch" , POS_DEAD , do_helpcheck, LVL_IMPL, 0 },
|
||||
{ "hide" , "hi" , POS_RESTING , do_hide , 1, 0 },
|
||||
|
@ -362,8 +363,8 @@ cpp_extern const struct command_info cmd_info[] = {
|
|||
|
||||
{ "motd" , "motd" , POS_DEAD , do_gen_ps , 0, SCMD_MOTD },
|
||||
{ "mail" , "mail" , POS_STANDING, do_not_here , 1, 0 },
|
||||
{ "medit" , "med" , POS_DEAD , do_oasis , LVL_BUILDER, SCMD_OASIS_MEDIT },
|
||||
{ "mlist" , "mlist" , POS_DEAD , do_oasis , LVL_BUILDER, SCMD_OASIS_MLIST },
|
||||
{ "medit" , "med" , POS_DEAD , do_oasis_medit, LVL_BUILDER, 0 },
|
||||
{ "mlist" , "mlist" , POS_DEAD , do_oasis_list , LVL_BUILDER, SCMD_OASIS_MLIST },
|
||||
{ "mute" , "mute" , POS_DEAD , do_wizutil , LVL_GOD, SCMD_SQUELCH },
|
||||
|
||||
{ "news" , "news" , POS_SLEEPING, do_gen_ps , 0, SCMD_NEWS },
|
||||
|
@ -381,9 +382,9 @@ cpp_extern const struct command_info cmd_info[] = {
|
|||
{ "open" , "o" , POS_SITTING , do_gen_door , 0, SCMD_OPEN },
|
||||
{ "order" , "ord" , POS_RESTING , do_order , 1, 0 },
|
||||
{ "offer" , "off" , POS_STANDING, do_not_here , 1, 0 },
|
||||
{ "olc" , "olc" , POS_DEAD , do_oasis , LVL_BUILDER, SCMD_OLC_SAVEINFO },
|
||||
{ "olist" , "olist" , POS_DEAD , do_oasis , LVL_BUILDER, SCMD_OASIS_OLIST },
|
||||
{ "oedit" , "oedit" , POS_DEAD , do_oasis , LVL_BUILDER, SCMD_OASIS_OEDIT },
|
||||
{ "olc" , "olc" , POS_DEAD , do_show_save_list, LVL_BUILDER, 0 },
|
||||
{ "olist" , "olist" , POS_DEAD , do_oasis_list, LVL_BUILDER, SCMD_OASIS_OLIST },
|
||||
{ "oedit" , "oedit" , POS_DEAD , do_oasis_oedit, LVL_BUILDER, 0 },
|
||||
|
||||
{ "put" , "p" , POS_RESTING , do_put , 0, 0 },
|
||||
{ "peace" , "pe" , POS_DEAD , do_peace , LVL_BUILDER, 0 },
|
||||
|
@ -417,8 +418,8 @@ cpp_extern const struct command_info cmd_info[] = {
|
|||
{ "rescue" , "resc" , POS_FIGHTING, do_rescue , 1, 0 },
|
||||
{ "restore" , "resto" , POS_DEAD , do_restore , LVL_GOD, 0 },
|
||||
{ "return" , "retu" , POS_DEAD , do_return , 0, 0 },
|
||||
{ "redit" , "redit" , POS_DEAD , do_oasis , LVL_BUILDER, SCMD_OASIS_REDIT },
|
||||
{ "rlist" , "rlist" , POS_DEAD , do_oasis , LVL_BUILDER, SCMD_OASIS_RLIST },
|
||||
{ "redit" , "redit" , POS_DEAD , do_oasis_redit, LVL_BUILDER, 0 },
|
||||
{ "rlist" , "rlist" , POS_DEAD , do_oasis_list, LVL_BUILDER, SCMD_OASIS_RLIST },
|
||||
{ "rclone" , "rclone" , POS_DEAD , do_room_copy, LVL_BUILDER, 0 },
|
||||
{ "roomflags", "roomflags", POS_DEAD , do_gen_tog , LVL_IMMORT, SCMD_SHOWVNUMS },
|
||||
|
||||
|
@ -429,7 +430,7 @@ cpp_extern const struct command_info cmd_info[] = {
|
|||
{ "save" , "sav" , POS_SLEEPING, do_save , 0, 0 },
|
||||
{ "saveall" , "saveall" , POS_DEAD , do_saveall , LVL_BUILDER, 0},
|
||||
{ "sell" , "sell" , POS_STANDING, do_not_here , 0, 0 },
|
||||
{ "sedit" , "sedit" , POS_DEAD , do_oasis , LVL_BUILDER, SCMD_OASIS_SEDIT },
|
||||
{ "sedit" , "sedit" , POS_DEAD , do_oasis_sedit, LVL_BUILDER, 0 },
|
||||
{ "send" , "send" , POS_SLEEPING, do_send , LVL_GOD, 0 },
|
||||
{ "set" , "set" , POS_DEAD , do_set , LVL_IMMORT, 0 },
|
||||
{ "shout" , "sho" , POS_RESTING , do_gen_comm , 0, SCMD_SHOUT },
|
||||
|
@ -439,7 +440,7 @@ cpp_extern const struct command_info cmd_info[] = {
|
|||
{ "sip" , "sip" , POS_RESTING , do_drink , 0, SCMD_SIP },
|
||||
{ "skillset" , "skillset", POS_SLEEPING, do_skillset , LVL_GRGOD, 0 },
|
||||
{ "sleep" , "sl" , POS_SLEEPING, do_sleep , 0, 0 },
|
||||
{ "slist" , "slist" , POS_SLEEPING, do_oasis , LVL_BUILDER, SCMD_OASIS_SLIST },
|
||||
{ "slist" , "slist" , POS_SLEEPING, do_oasis_list, LVL_BUILDER, SCMD_OASIS_SLIST },
|
||||
{ "sneak" , "sneak" , POS_STANDING, do_sneak , 1, 0 },
|
||||
{ "snoop" , "snoop" , POS_DEAD , do_snoop , LVL_GOD, 0 },
|
||||
{ "socials" , "socials" , POS_DEAD , do_commands , 0, SCMD_SOCIALS },
|
||||
|
@ -460,9 +461,9 @@ cpp_extern const struct command_info cmd_info[] = {
|
|||
{ "toggle" , "toggle" , POS_DEAD , do_toggle , 0, 0 },
|
||||
{ "track" , "track" , POS_STANDING, do_track , 0, 0 },
|
||||
{ "transfer" , "transfer", POS_SLEEPING, do_trans , LVL_GOD, 0 },
|
||||
{ "trigedit" , "trigedit", POS_DEAD , do_oasis , LVL_BUILDER, SCMD_OASIS_TRIGEDIT},
|
||||
{ "trigedit" , "trigedit", POS_DEAD , do_oasis_trigedit, LVL_BUILDER, 0 },
|
||||
{ "typo" , "typo" , POS_DEAD , do_gen_write, 0, SCMD_TYPO },
|
||||
{ "tlist" , "tlist" , POS_DEAD , do_oasis , LVL_BUILDER, SCMD_OASIS_TLIST },
|
||||
{ "tlist" , "tlist" , POS_DEAD , do_oasis_list, LVL_BUILDER, SCMD_OASIS_TLIST },
|
||||
{ "tstat" , "tstat" , POS_DEAD , do_tstat , LVL_BUILDER, 0 },
|
||||
|
||||
{ "unlock" , "unlock" , POS_SITTING , do_gen_door , 0, SCMD_UNLOCK },
|
||||
|
@ -497,8 +498,8 @@ cpp_extern const struct command_info cmd_info[] = {
|
|||
{ "write" , "write" , POS_STANDING, do_write , 1, 0 },
|
||||
|
||||
{ "zreset" , "zreset" , POS_DEAD , do_zreset , LVL_BUILDER, 0 },
|
||||
{ "zedit" , "zedit" , POS_DEAD , do_oasis , LVL_BUILDER, SCMD_OASIS_ZEDIT },
|
||||
{ "zlist" , "zlist" , POS_DEAD , do_oasis , LVL_BUILDER, SCMD_OASIS_ZLIST },
|
||||
{ "zedit" , "zedit" , POS_DEAD , do_oasis_zedit, LVL_BUILDER, 0 },
|
||||
{ "zlist" , "zlist" , POS_DEAD , do_oasis_list, LVL_BUILDER, SCMD_OASIS_ZLIST },
|
||||
{ "zcheck" , "zcheck" , POS_DEAD , do_zcheck , LVL_GOD, 0 },
|
||||
{ "zpurge" , "zpurge" , POS_DEAD , do_zpurge , LVL_BUILDER, 0 },
|
||||
|
||||
|
|
|
@ -212,24 +212,13 @@ struct alias_data {
|
|||
#define SCMD_LOCK 3
|
||||
#define SCMD_PICK 4
|
||||
|
||||
/* do_olc */
|
||||
#define SCMD_OASIS_REDIT 0
|
||||
#define SCMD_OASIS_OEDIT 1
|
||||
#define SCMD_OASIS_ZEDIT 2
|
||||
#define SCMD_OASIS_MEDIT 3
|
||||
#define SCMD_OASIS_SEDIT 4
|
||||
#define SCMD_OASIS_CEDIT 5
|
||||
#define SCMD_OLC_SAVEINFO 7
|
||||
#define SCMD_OASIS_RLIST 8
|
||||
#define SCMD_OASIS_MLIST 9
|
||||
#define SCMD_OASIS_OLIST 10
|
||||
#define SCMD_OASIS_SLIST 11
|
||||
#define SCMD_OASIS_ZLIST 12
|
||||
#define SCMD_OASIS_TRIGEDIT 13
|
||||
#define SCMD_OASIS_AEDIT 14
|
||||
#define SCMD_OASIS_TLIST 15
|
||||
#define SCMD_OASIS_LINKS 16
|
||||
#define SCMD_OASIS_HEDIT 17
|
||||
/* do_oasis_Xlist */
|
||||
#define SCMD_OASIS_RLIST 0
|
||||
#define SCMD_OASIS_MLIST 1
|
||||
#define SCMD_OASIS_OLIST 2
|
||||
#define SCMD_OASIS_SLIST 3
|
||||
#define SCMD_OASIS_ZLIST 4
|
||||
#define SCMD_OASIS_TLIST 5
|
||||
|
||||
/* do_last */
|
||||
#define SCMD_LIST_ALL 1
|
||||
|
|
|
@ -49,6 +49,10 @@ ACMD(do_oasis_medit)
|
|||
char buf1[MAX_STRING_LENGTH];
|
||||
char buf2[MAX_STRING_LENGTH];
|
||||
|
||||
/* No building as a mob or while being forced. */
|
||||
if (IS_NPC(ch) || !ch->desc || STATE(ch->desc) != CON_PLAYING)
|
||||
return;
|
||||
|
||||
/* Parse any arguments */
|
||||
buf3 = two_arguments(argument, buf1, buf2);
|
||||
|
||||
|
@ -763,7 +767,7 @@ void medit_parse(struct descriptor_data *d, char *arg)
|
|||
|
||||
case MEDIT_DELETE:
|
||||
if (*arg == 'y' || *arg == 'Y') {
|
||||
if (delete_mobile(GET_MOB_RNUM(OLC_MOB(d))))
|
||||
if (delete_mobile(GET_MOB_RNUM(OLC_MOB(d))) != NOBODY)
|
||||
write_to_output(d, "Mobile deleted.\r\n");
|
||||
else
|
||||
write_to_output(d, "Couldn't delete the mobile!\r\n");
|
||||
|
|
237
src/oasis.c
237
src/oasis.c
|
@ -7,7 +7,6 @@
|
|||
|
||||
#include "conf.h"
|
||||
#include "sysdep.h"
|
||||
|
||||
#include "structs.h"
|
||||
#include "utils.h"
|
||||
#include "interpreter.h"
|
||||
|
@ -24,15 +23,10 @@
|
|||
#include "screen.h"
|
||||
#include "dg_olc.h"
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
/** External Functions **/
|
||||
/******************************************************************************/
|
||||
/* External Functions */
|
||||
int is_name(const char *str, const char *namelist);
|
||||
|
||||
/******************************************************************************/
|
||||
/** Internal Data Structures **/
|
||||
/******************************************************************************/
|
||||
/* Internal Data Structures */
|
||||
struct olc_scmd_info_t {
|
||||
const char *text;
|
||||
int con_type;
|
||||
|
@ -51,131 +45,20 @@ struct olc_scmd_info_t {
|
|||
|
||||
const char *nrm, *grn, *cyn, *yel;
|
||||
|
||||
/******************************************************************************/
|
||||
/** Internal Functions **/
|
||||
/******************************************************************************/
|
||||
/* Internal Functions */
|
||||
void free_config(struct config_data *data);
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
* Only player characters should be using OLC anyway.
|
||||
*/
|
||||
/* Only player characters should be using OLC anyway. */
|
||||
void clear_screen(struct descriptor_data *d)
|
||||
{
|
||||
if (PRF_FLAGGED(d->character, PRF_CLS))
|
||||
write_to_output(d, "[H[J");
|
||||
}
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
* Exported ACMD do_oasis function.
|
||||
*
|
||||
* This function is the OLC interface. It deals with all the
|
||||
* generic OLC stuff, then passes control to the sub-olc sections.
|
||||
*
|
||||
* UPDATE:
|
||||
* I believe that yes, putting the code together that is common in all of the
|
||||
* olc functions is good to a certain extent, but the do_oasis command was
|
||||
* getting ridiculous. Therefore, I have separated them into separate
|
||||
* functions that get called from in do_oasis....yes, similar code, but it is
|
||||
* easier to handle.... - Kip Potter
|
||||
*/
|
||||
ACMD(do_oasis)
|
||||
{
|
||||
/*
|
||||
* No screwing around as a mobile.
|
||||
*/
|
||||
if (IS_NPC(ch) || !ch->desc)
|
||||
return;
|
||||
|
||||
/*
|
||||
* Prevent forcing people in OLC to edit other stuff.
|
||||
* 'force' just lets command_interpreter() handle the input,
|
||||
* regardless of the state of the victim.
|
||||
* This can wreck havoc if people are i OLC already
|
||||
* - ie. their input would have been redirected by nanny(), and
|
||||
* never get to command_interpreter().
|
||||
* -- Welcor 09/03
|
||||
* - thanks to Mark Garringer (zizazat@hotmail.com) for the bug report.
|
||||
*/
|
||||
if (STATE(ch->desc) != CON_PLAYING)
|
||||
return;
|
||||
|
||||
switch (subcmd) {
|
||||
/*
|
||||
* The command to see what needs to be saved, typically 'olc'.
|
||||
*/
|
||||
case SCMD_OLC_SAVEINFO:
|
||||
do_show_save_list(ch);
|
||||
break;
|
||||
|
||||
case SCMD_OASIS_CEDIT:
|
||||
do_oasis_cedit(ch, argument, cmd, subcmd);
|
||||
break;
|
||||
|
||||
case SCMD_OASIS_ZEDIT:
|
||||
do_oasis_zedit(ch, argument, cmd, subcmd);
|
||||
break;
|
||||
|
||||
case SCMD_OASIS_REDIT:
|
||||
do_oasis_redit(ch, argument, cmd, subcmd);
|
||||
break;
|
||||
|
||||
case SCMD_OASIS_OEDIT:
|
||||
do_oasis_oedit(ch, argument, cmd, subcmd);
|
||||
break;
|
||||
|
||||
case SCMD_OASIS_MEDIT:
|
||||
do_oasis_medit(ch, argument, cmd, subcmd);
|
||||
break;
|
||||
|
||||
case SCMD_OASIS_SEDIT:
|
||||
do_oasis_sedit(ch, argument, cmd, subcmd);
|
||||
break;
|
||||
|
||||
case SCMD_OASIS_RLIST:
|
||||
case SCMD_OASIS_MLIST:
|
||||
case SCMD_OASIS_OLIST:
|
||||
case SCMD_OASIS_SLIST:
|
||||
case SCMD_OASIS_ZLIST:
|
||||
case SCMD_OASIS_TLIST:
|
||||
do_oasis_list(ch, argument, cmd, subcmd);
|
||||
break;
|
||||
|
||||
case SCMD_OASIS_LINKS:
|
||||
do_oasis_links(ch, argument, cmd, subcmd);
|
||||
break;
|
||||
|
||||
case SCMD_OASIS_TRIGEDIT:
|
||||
do_oasis_trigedit(ch, argument, cmd, subcmd);
|
||||
break;
|
||||
|
||||
case SCMD_OASIS_AEDIT:
|
||||
do_oasis_aedit(ch, argument, cmd, subcmd);
|
||||
break;
|
||||
|
||||
case SCMD_OASIS_HEDIT:
|
||||
do_oasis_hedit(ch, argument, cmd, subcmd);
|
||||
break;
|
||||
|
||||
default:
|
||||
log("SYSERR: (OLC) Invalid subcmd passed to do_oasis, subcmd - (%d)", subcmd);
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------*\
|
||||
Exported utilities
|
||||
\*------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* Set the colour string pointers for that which this char will
|
||||
* see at color level NRM. Changing the entries here will change
|
||||
* the colour scheme throughout the OLC.
|
||||
*/
|
||||
/* Exported utilities */
|
||||
/* Set the color string pointers for that which this char will see at color
|
||||
* level NRM. Changing the entries here will change the colour scheme
|
||||
* throughout the OLC. */
|
||||
void get_char_colors(struct char_data *ch)
|
||||
{
|
||||
nrm = CCNRM(ch, C_NRM);
|
||||
|
@ -184,23 +67,16 @@ void get_char_colors(struct char_data *ch)
|
|||
yel = CCYEL(ch, C_NRM);
|
||||
}
|
||||
|
||||
/*
|
||||
* This procedure frees up the strings and/or the structures
|
||||
* attatched to a descriptor, sets all flags back to how they
|
||||
* should be.
|
||||
*/
|
||||
/* This procedure frees up the strings and/or the structures attatched to a
|
||||
* descriptor, sets all flags back to how they should be. */
|
||||
void cleanup_olc(struct descriptor_data *d, byte cleanup_type)
|
||||
{
|
||||
/*
|
||||
* Clean up WHAT?
|
||||
*/
|
||||
/* Clean up WHAT? */
|
||||
if (d->olc == NULL)
|
||||
return;
|
||||
|
||||
/*
|
||||
* Check for a room. free_room doesn't perform
|
||||
* sanity checks, we must be careful here.
|
||||
*/
|
||||
/* Check for a room. free_room doesn't perform sanity checks, we must be
|
||||
* careful here. */
|
||||
if (OLC_ROOM(d)) {
|
||||
switch (cleanup_type) {
|
||||
case CLEANUP_ALL:
|
||||
|
@ -220,38 +96,28 @@ void cleanup_olc(struct descriptor_data *d, byte cleanup_type)
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for an existing object in the OLC. The strings
|
||||
* aren't part of the prototype any longer. They get added
|
||||
* with strdup().
|
||||
*/
|
||||
/* Check for an existing object in the OLC. The strings aren't part of the
|
||||
* prototype any longer. They get added with strdup(). */
|
||||
if (OLC_OBJ(d)) {
|
||||
free_object_strings(OLC_OBJ(d));
|
||||
free(OLC_OBJ(d));
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for a mob. free_mobile() makes sure strings are not in
|
||||
* the prototype.
|
||||
*/
|
||||
/* Check for a mob. free_mobile() makes sure strings are not in the
|
||||
* prototype. */
|
||||
if (OLC_MOB(d))
|
||||
free_mobile(OLC_MOB(d));
|
||||
|
||||
/*
|
||||
* Check for a zone. cleanup_type is irrelevant here, free() everything.
|
||||
*/
|
||||
/* Check for a zone. cleanup_type is irrelevant here, free() everything. */
|
||||
if (OLC_ZONE(d)) {
|
||||
free(OLC_ZONE(d)->name);
|
||||
free(OLC_ZONE(d)->cmd);
|
||||
free(OLC_ZONE(d));
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for a shop. free_shop doesn't perform sanity checks, we must
|
||||
* be careful here.
|
||||
* OLC_SHOP(d) is a _copy_ - no pointers to the original. Just go ahead
|
||||
* and free it all.
|
||||
*/
|
||||
/* Check for a shop. free_shop doesn't perform sanity checks, we must be
|
||||
* careful here. OLC_SHOP(d) is a _copy_ - no pointers to the original. Just
|
||||
* go ahead and free it all. */
|
||||
if (OLC_SHOP(d))
|
||||
free_shop(OLC_SHOP(d));
|
||||
|
||||
|
@ -284,33 +150,23 @@ void cleanup_olc(struct descriptor_data *d, byte cleanup_type)
|
|||
}
|
||||
}
|
||||
|
||||
/* free storage if allocated (for tedit and aedit) */
|
||||
/* and Triggers */
|
||||
/*
|
||||
* this is the command list - it's been copied to disk already,
|
||||
* so just free it -- Welcor
|
||||
*/
|
||||
/* Free storage if allocated (tedit, aedit, and trigedit). This is the command
|
||||
* list - it's been copied to disk already, so just free it -Welcor. */
|
||||
if (OLC_STORAGE(d)) {
|
||||
free(OLC_STORAGE(d));
|
||||
OLC_STORAGE(d) = NULL;
|
||||
}
|
||||
/*
|
||||
* Free this one regardless. If we've left olc, we've either made
|
||||
* a fresh copy of it in the trig index, or we lost connection.
|
||||
* Either way, we need to get rid of this.
|
||||
*/
|
||||
/* Free this one regardless. If we've left olc, we've either made a fresh
|
||||
* copy of it in the trig index, or we lost connection. Either way, we need
|
||||
* to get rid of this. */
|
||||
if (OLC_TRIG(d)) {
|
||||
free_trigger(OLC_TRIG(d));
|
||||
OLC_TRIG(d) = NULL;
|
||||
}
|
||||
/*
|
||||
* OLC_SCRIPT is always set as trig_proto of OLC_OBJ/MOB/ROOM.
|
||||
* Therefore it should not be free'd here.
|
||||
*/
|
||||
/* OLC_SCRIPT is always set as trig_proto of OLC_OBJ/MOB/ROOM. Therefore it
|
||||
* should not be free'd here. */
|
||||
|
||||
/*
|
||||
* Restore descriptor playing status.
|
||||
*/
|
||||
/* Restore descriptor playing status. */
|
||||
if (d->character) {
|
||||
REMOVE_BIT(PLR_FLAGS(d->character), PLR_WRITING);
|
||||
act("$n stops using OLC.", TRUE, d->character, NULL, NULL, TO_ROOM);
|
||||
|
@ -331,10 +187,8 @@ void cleanup_olc(struct descriptor_data *d, byte cleanup_type)
|
|||
d->olc = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* This function is an exact duplicate of the tag_argument function found in
|
||||
* one of the ascii patches located on the circlemud ftp website.
|
||||
*/
|
||||
/* This function is an exact duplicate of the tag_argument function found in
|
||||
* one of the ascii patches located on the circlemud ftp website. */
|
||||
void split_argument(char *argument, char *tag)
|
||||
{
|
||||
char *tmp = argument, *ttag = tag, *wrt = argument;
|
||||
|
@ -360,34 +214,17 @@ void split_argument(char *argument, char *tag)
|
|||
|
||||
void free_config(struct config_data *data)
|
||||
{
|
||||
/****************************************************************************/
|
||||
/** Free strings. **/
|
||||
/****************************************************************************/
|
||||
/* Free strings. */
|
||||
free_strings(data, OASIS_CFG);
|
||||
|
||||
/****************************************************************************/
|
||||
/** Free the data structure. **/
|
||||
/****************************************************************************/
|
||||
/* Free the data structure. */
|
||||
free(data);
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
/** **/
|
||||
/** Function : can_edit_zone() **/
|
||||
/** **/
|
||||
/** Description : Checks to see if a builder can modify the specified **/
|
||||
/** zone. **/
|
||||
/** **/
|
||||
/** Arguments : **/
|
||||
/** ch **/
|
||||
/** The character requesting access to modify this zone. **/
|
||||
/** rnum **/
|
||||
/** The real number of the zone attempted to be modified. **/
|
||||
/** **/
|
||||
/** Returns : Returns TRUE if the builder has access, otherwise **/
|
||||
/** FALSE. **/
|
||||
/** **/
|
||||
/******************************************************************************/
|
||||
/* Checks to see if a builder can modify the specified zone. Ch is the imm
|
||||
* requesting access to modify this zone. Rnum is the real number of the zone
|
||||
* attempted to be modified. Returns TRUE if the builder has access, otherwisei
|
||||
* FALSE. */
|
||||
int can_edit_zone(struct char_data *ch, zone_rnum rnum)
|
||||
{
|
||||
/* no access if called with bad arguments */
|
||||
|
|
|
@ -346,7 +346,7 @@ int Crash_clean_file(char *name)
|
|||
return FALSE;
|
||||
|
||||
/* Open so that permission problems will be flagged now, at boot time. */
|
||||
if (!(fl = fopen(fname, "rw"))) {
|
||||
if (!(fl = fopen(fname, "r"))) {
|
||||
if (errno != ENOENT) /* if it fails, NOT because of no file */
|
||||
log("SYSERR: OPENING OBJECT FILE %s (4): %s", fname, strerror(errno));
|
||||
return FALSE;
|
||||
|
|
|
@ -62,6 +62,10 @@ ACMD(do_oasis_oedit)
|
|||
char buf1[MAX_STRING_LENGTH];
|
||||
char buf2[MAX_STRING_LENGTH];
|
||||
|
||||
/* No building as a mob or while being forced. */
|
||||
if (IS_NPC(ch) || !ch->desc || STATE(ch->desc) != CON_PLAYING)
|
||||
return;
|
||||
|
||||
/* Parse any arguments. */
|
||||
buf3 = two_arguments(argument, buf1, buf2);
|
||||
|
||||
|
@ -1175,7 +1179,7 @@ void oedit_parse(struct descriptor_data *d, char *arg)
|
|||
break;
|
||||
case OEDIT_DELETE:
|
||||
if (*arg == 'y' || *arg == 'Y') {
|
||||
if (delete_object(GET_OBJ_RNUM(OLC_OBJ(d))))
|
||||
if (delete_object(GET_OBJ_RNUM(OLC_OBJ(d))) != NOTHING)
|
||||
write_to_output(d, "Object deleted.\r\n");
|
||||
else
|
||||
write_to_output(d, "Couldn't delete the object!\r\n");
|
||||
|
|
|
@ -40,6 +40,10 @@ ACMD(do_oasis_redit)
|
|||
int number = NOWHERE, save = 0, real_num;
|
||||
struct descriptor_data *d;
|
||||
|
||||
/* No building as a mob or while being forced. */
|
||||
if (IS_NPC(ch) || !ch->desc || STATE(ch->desc) != CON_PLAYING)
|
||||
return;
|
||||
|
||||
/* Parse any arguments. */
|
||||
buf3 = two_arguments(argument, buf1, buf2);
|
||||
|
||||
|
|
|
@ -60,6 +60,10 @@ ACMD(do_oasis_sedit)
|
|||
char buf1[MAX_INPUT_LENGTH];
|
||||
char buf2[MAX_INPUT_LENGTH];
|
||||
|
||||
/* No building as a mob or while being forced. */
|
||||
if (IS_NPC(ch) || !ch->desc || STATE(ch->desc) != CON_PLAYING)
|
||||
return;
|
||||
|
||||
/* Parse any arguments. */
|
||||
buf3 = two_arguments(argument, buf1, buf2);
|
||||
|
||||
|
|
|
@ -10,13 +10,11 @@
|
|||
|
||||
#include "conf.h"
|
||||
#include "sysdep.h"
|
||||
|
||||
#include "structs.h"
|
||||
#include "db.h"
|
||||
#include "interpreter.h"
|
||||
#include "utils.h"
|
||||
|
||||
|
||||
/* external globals */
|
||||
extern int mini_mud;
|
||||
|
||||
|
@ -41,7 +39,6 @@ void ASSIGNMOB(mob_vnum mob, SPECIAL(fname));
|
|||
void ASSIGNOBJ(obj_vnum obj, SPECIAL(fname));
|
||||
|
||||
/* functions to perform assignments */
|
||||
|
||||
void ASSIGNMOB(mob_vnum mob, SPECIAL(fname))
|
||||
{
|
||||
mob_rnum rnum;
|
||||
|
@ -72,11 +69,7 @@ void ASSIGNROOM(room_vnum room, SPECIAL(fname))
|
|||
log("SYSERR: Attempt to assign spec to non-existant room #%d", room);
|
||||
}
|
||||
|
||||
|
||||
/* ********************************************************************
|
||||
* Assignments *
|
||||
******************************************************************** */
|
||||
|
||||
/* Assignments */
|
||||
/* assign special procedures to mobiles */
|
||||
void assign_mobiles(void)
|
||||
{
|
||||
|
|
345
src/spec_procs.c
345
src/spec_procs.c
|
@ -10,7 +10,6 @@
|
|||
|
||||
#include "conf.h"
|
||||
#include "sysdep.h"
|
||||
|
||||
#include "structs.h"
|
||||
#include "utils.h"
|
||||
#include "comm.h"
|
||||
|
@ -39,23 +38,10 @@ void list_skills(struct char_data *ch);
|
|||
SPECIAL(guild);
|
||||
SPECIAL(dump);
|
||||
SPECIAL(mayor);
|
||||
void npc_steal(struct char_data *ch, struct char_data *victim);
|
||||
SPECIAL(snake);
|
||||
SPECIAL(thief);
|
||||
SPECIAL(magic_user);
|
||||
SPECIAL(guild_guard);
|
||||
SPECIAL(puff);
|
||||
SPECIAL(fido);
|
||||
SPECIAL(janitor);
|
||||
SPECIAL(cityguard);
|
||||
SPECIAL(pet_shops);
|
||||
SPECIAL(bank);
|
||||
|
||||
|
||||
/* ********************************************************************
|
||||
* Special procedures for mobiles *
|
||||
******************************************************************** */
|
||||
|
||||
/* Special procedures for mobiles */
|
||||
int spell_sort_info[MAX_SKILLS + 1];
|
||||
|
||||
int compare_spells(const void *x, const void *y)
|
||||
|
@ -145,7 +131,6 @@ void list_skills(struct char_data *ch)
|
|||
page_string(ch->desc, buf2, TRUE);
|
||||
}
|
||||
|
||||
|
||||
SPECIAL(guild)
|
||||
{
|
||||
int skill_num, percent;
|
||||
|
@ -189,8 +174,6 @@ SPECIAL(guild)
|
|||
return (TRUE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
SPECIAL(dump)
|
||||
{
|
||||
struct obj_data *k;
|
||||
|
@ -224,7 +207,6 @@ SPECIAL(dump)
|
|||
return (TRUE);
|
||||
}
|
||||
|
||||
|
||||
SPECIAL(mayor)
|
||||
{
|
||||
char actbuf[MAX_INPUT_LENGTH];
|
||||
|
@ -318,324 +300,7 @@ SPECIAL(mayor)
|
|||
return (FALSE);
|
||||
}
|
||||
|
||||
|
||||
/* ********************************************************************
|
||||
* General special procedures for mobiles *
|
||||
******************************************************************** */
|
||||
|
||||
|
||||
void npc_steal(struct char_data *ch, struct char_data *victim)
|
||||
{
|
||||
int gold;
|
||||
|
||||
if (IS_NPC(victim))
|
||||
return;
|
||||
if (GET_LEVEL(victim) >= LVL_IMMORT)
|
||||
return;
|
||||
if (!CAN_SEE(ch, victim))
|
||||
return;
|
||||
|
||||
if (AWAKE(victim) && (rand_number(0, GET_LEVEL(ch)) == 0)) {
|
||||
act("You discover that $n has $s hands in your wallet.", FALSE, ch, 0, victim, TO_VICT);
|
||||
act("$n tries to steal gold from $N.", TRUE, ch, 0, victim, TO_NOTVICT);
|
||||
} else {
|
||||
/* Steal some gold coins */
|
||||
gold = (GET_GOLD(victim) * rand_number(1, 10)) / 100;
|
||||
if (gold > 0) {
|
||||
GET_GOLD(ch) += gold;
|
||||
GET_GOLD(victim) -= gold;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Quite lethal to low-level characters.
|
||||
*/
|
||||
SPECIAL(snake)
|
||||
{
|
||||
if (cmd || GET_POS(ch) != POS_FIGHTING || !FIGHTING(ch))
|
||||
return (FALSE);
|
||||
|
||||
if (IN_ROOM(FIGHTING(ch)) != IN_ROOM(ch) || rand_number(0, GET_LEVEL(ch)) != 0)
|
||||
return (FALSE);
|
||||
|
||||
act("$n bites $N!", 1, ch, 0, FIGHTING(ch), TO_NOTVICT);
|
||||
act("$n bites you!", 1, ch, 0, FIGHTING(ch), TO_VICT);
|
||||
call_magic(ch, FIGHTING(ch), 0, SPELL_POISON, GET_LEVEL(ch), CAST_SPELL);
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
|
||||
SPECIAL(thief)
|
||||
{
|
||||
struct char_data *cons;
|
||||
|
||||
if (cmd || GET_POS(ch) != POS_STANDING)
|
||||
return (FALSE);
|
||||
|
||||
for (cons = world[IN_ROOM(ch)].people; cons; cons = cons->next_in_room)
|
||||
if (!IS_NPC(cons) && GET_LEVEL(cons) < LVL_IMMORT && !rand_number(0, 4)) {
|
||||
npc_steal(ch, cons);
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
|
||||
SPECIAL(magic_user)
|
||||
{
|
||||
struct char_data *vict;
|
||||
|
||||
if (cmd || GET_POS(ch) != POS_FIGHTING)
|
||||
return (FALSE);
|
||||
|
||||
/* pseudo-randomly choose someone in the room who is fighting me */
|
||||
for (vict = world[IN_ROOM(ch)].people; vict; vict = vict->next_in_room)
|
||||
if (FIGHTING(vict) == ch && !rand_number(0, 4))
|
||||
break;
|
||||
|
||||
/* if I didn't pick any of those, then just slam the guy I'm fighting */
|
||||
if (vict == NULL && IN_ROOM(FIGHTING(ch)) == IN_ROOM(ch))
|
||||
vict = FIGHTING(ch);
|
||||
|
||||
/* Hm...didn't pick anyone...I'll wait a round. */
|
||||
if (vict == NULL)
|
||||
return (TRUE);
|
||||
|
||||
if (GET_LEVEL(ch) > 13 && rand_number(0, 10) == 0)
|
||||
cast_spell(ch, vict, NULL, SPELL_POISON);
|
||||
|
||||
if (GET_LEVEL(ch) > 7 && rand_number(0, 8) == 0)
|
||||
cast_spell(ch, vict, NULL, SPELL_BLINDNESS);
|
||||
|
||||
if (GET_LEVEL(ch) > 12 && rand_number(0, 12) == 0) {
|
||||
if (IS_EVIL(ch))
|
||||
cast_spell(ch, vict, NULL, SPELL_ENERGY_DRAIN);
|
||||
else if (IS_GOOD(ch))
|
||||
cast_spell(ch, vict, NULL, SPELL_DISPEL_EVIL);
|
||||
}
|
||||
|
||||
if (rand_number(0, 4))
|
||||
return (TRUE);
|
||||
|
||||
switch (GET_LEVEL(ch)) {
|
||||
case 4:
|
||||
case 5:
|
||||
cast_spell(ch, vict, NULL, SPELL_MAGIC_MISSILE);
|
||||
break;
|
||||
case 6:
|
||||
case 7:
|
||||
cast_spell(ch, vict, NULL, SPELL_CHILL_TOUCH);
|
||||
break;
|
||||
case 8:
|
||||
case 9:
|
||||
cast_spell(ch, vict, NULL, SPELL_BURNING_HANDS);
|
||||
break;
|
||||
case 10:
|
||||
case 11:
|
||||
cast_spell(ch, vict, NULL, SPELL_SHOCKING_GRASP);
|
||||
break;
|
||||
case 12:
|
||||
case 13:
|
||||
cast_spell(ch, vict, NULL, SPELL_LIGHTNING_BOLT);
|
||||
break;
|
||||
case 14:
|
||||
case 15:
|
||||
case 16:
|
||||
case 17:
|
||||
cast_spell(ch, vict, NULL, SPELL_COLOR_SPRAY);
|
||||
break;
|
||||
default:
|
||||
cast_spell(ch, vict, NULL, SPELL_FIREBALL);
|
||||
break;
|
||||
}
|
||||
return (TRUE);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* ********************************************************************
|
||||
* Special procedures for mobiles *
|
||||
******************************************************************** */
|
||||
|
||||
SPECIAL(guild_guard)
|
||||
{
|
||||
int i;
|
||||
struct char_data *guard = (struct char_data *)me;
|
||||
const char *buf = "The guard humiliates you, and blocks your way.\r\n";
|
||||
const char *buf2 = "The guard humiliates $n, and blocks $s way.";
|
||||
|
||||
if (!IS_MOVE(cmd) || AFF_FLAGGED(guard, AFF_BLIND))
|
||||
return (FALSE);
|
||||
|
||||
if (GET_LEVEL(ch) >= LVL_IMMORT)
|
||||
return (FALSE);
|
||||
|
||||
for (i = 0; guild_info[i].guild_room != NOWHERE; i++) {
|
||||
/* Wrong guild or not trying to enter. */
|
||||
if (GET_ROOM_VNUM(IN_ROOM(ch)) != guild_info[i].guild_room || cmd != guild_info[i].direction)
|
||||
continue;
|
||||
|
||||
/* Allow the people of the guild through. */
|
||||
if (!IS_NPC(ch) && GET_CLASS(ch) == guild_info[i].pc_class)
|
||||
continue;
|
||||
|
||||
send_to_char(ch, "%s", buf);
|
||||
act(buf2, FALSE, ch, 0, 0, TO_ROOM);
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
SPECIAL(puff)
|
||||
{
|
||||
char actbuf[MAX_INPUT_LENGTH];
|
||||
|
||||
if (cmd)
|
||||
return (FALSE);
|
||||
|
||||
switch (rand_number(0, 60)) {
|
||||
case 0:
|
||||
do_say(ch, strcpy(actbuf, "My god! It's full of stars!"), 0, 0); /* strcpy: OK */
|
||||
return (TRUE);
|
||||
case 1:
|
||||
do_say(ch, strcpy(actbuf, "How'd all those fish get up here?"), 0, 0); /* strcpy: OK */
|
||||
return (TRUE);
|
||||
case 2:
|
||||
do_say(ch, strcpy(actbuf, "I'm a very female dragon."), 0, 0); /* strcpy: OK */
|
||||
return (TRUE);
|
||||
case 3:
|
||||
do_say(ch, strcpy(actbuf, "I've got a peaceful, easy feeling."), 0, 0); /* strcpy: OK */
|
||||
return (TRUE);
|
||||
default:
|
||||
return (FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
SPECIAL(fido)
|
||||
{
|
||||
struct obj_data *i, *temp, *next_obj;
|
||||
|
||||
if (cmd || !AWAKE(ch))
|
||||
return (FALSE);
|
||||
|
||||
for (i = world[IN_ROOM(ch)].contents; i; i = i->next_content) {
|
||||
if (!IS_CORPSE(i))
|
||||
continue;
|
||||
|
||||
act("$n savagely devours a corpse.", FALSE, ch, 0, 0, TO_ROOM);
|
||||
for (temp = i->contains; temp; temp = next_obj) {
|
||||
next_obj = temp->next_content;
|
||||
obj_from_obj(temp);
|
||||
obj_to_room(temp, IN_ROOM(ch));
|
||||
}
|
||||
extract_obj(i);
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
SPECIAL(janitor)
|
||||
{
|
||||
struct obj_data *i;
|
||||
|
||||
if (cmd || !AWAKE(ch))
|
||||
return (FALSE);
|
||||
|
||||
for (i = world[IN_ROOM(ch)].contents; i; i = i->next_content) {
|
||||
if (!CAN_WEAR(i, ITEM_WEAR_TAKE))
|
||||
continue;
|
||||
if (GET_OBJ_TYPE(i) != ITEM_DRINKCON && GET_OBJ_COST(i) >= 15)
|
||||
continue;
|
||||
act("$n picks up some trash.", FALSE, ch, 0, 0, TO_ROOM);
|
||||
obj_from_room(i);
|
||||
obj_to_char(i, ch);
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
|
||||
SPECIAL(cityguard)
|
||||
{
|
||||
struct char_data *tch, *evil, *spittle;
|
||||
int max_evil, min_cha;
|
||||
|
||||
if (cmd || !AWAKE(ch) || FIGHTING(ch))
|
||||
return (FALSE);
|
||||
|
||||
max_evil = 1000;
|
||||
min_cha = 6;
|
||||
spittle = evil = NULL;
|
||||
|
||||
for (tch = world[IN_ROOM(ch)].people; tch; tch = tch->next_in_room) {
|
||||
if (!CAN_SEE(ch, tch))
|
||||
continue;
|
||||
|
||||
if (!IS_NPC(tch) && PLR_FLAGGED(tch, PLR_KILLER)) {
|
||||
act("$n screams 'HEY!!! You're one of those PLAYER KILLERS!!!!!!'", FALSE, ch, 0, 0, TO_ROOM);
|
||||
hit(ch, tch, TYPE_UNDEFINED);
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
if (!IS_NPC(tch) && PLR_FLAGGED(tch, PLR_THIEF)) {
|
||||
act("$n screams 'HEY!!! You're one of those PLAYER THIEVES!!!!!!'", FALSE, ch, 0, 0, TO_ROOM);
|
||||
hit(ch, tch, TYPE_UNDEFINED);
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
if (FIGHTING(tch) && GET_ALIGNMENT(tch) < max_evil && (IS_NPC(tch) || IS_NPC(FIGHTING(tch)))) {
|
||||
max_evil = GET_ALIGNMENT(tch);
|
||||
evil = tch;
|
||||
}
|
||||
|
||||
if (GET_CHA(tch) < min_cha) {
|
||||
spittle = tch;
|
||||
min_cha = GET_CHA(tch);
|
||||
}
|
||||
}
|
||||
|
||||
if (evil && GET_ALIGNMENT(FIGHTING(evil)) >= 0) {
|
||||
act("$n screams 'PROTECT THE INNOCENT! BANZAI! CHARGE! ARARARAGGGHH!'", FALSE, ch, 0, 0, TO_ROOM);
|
||||
hit(ch, evil, TYPE_UNDEFINED);
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
/* Reward the socially inept. */
|
||||
if (spittle && !rand_number(0, 9)) {
|
||||
static int spit_social;
|
||||
|
||||
if (!spit_social)
|
||||
spit_social = find_command("spit");
|
||||
|
||||
if (spit_social > 0) {
|
||||
char spitbuf[MAX_NAME_LENGTH + 1];
|
||||
|
||||
strncpy(spitbuf, GET_NAME(spittle), sizeof(spitbuf)); /* strncpy: OK */
|
||||
spitbuf[sizeof(spitbuf) - 1] = '\0';
|
||||
|
||||
do_action(ch, spitbuf, spit_social, 0);
|
||||
return (TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
|
||||
#define PET_PRICE(pet) (GET_LEVEL(pet) * 300)
|
||||
|
||||
SPECIAL(pet_shops)
|
||||
{
|
||||
char buf[MAX_STRING_LENGTH], pet_name[256];
|
||||
|
@ -699,13 +364,7 @@ SPECIAL(pet_shops)
|
|||
return (FALSE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ********************************************************************
|
||||
* Special procedures for objects *
|
||||
******************************************************************** */
|
||||
|
||||
|
||||
/* Special procedures for objects */
|
||||
SPECIAL(bank)
|
||||
{
|
||||
int amount;
|
||||
|
|
|
@ -42,6 +42,10 @@ ACMD(do_oasis_zedit)
|
|||
char buf1[MAX_STRING_LENGTH];
|
||||
char buf2[MAX_STRING_LENGTH];
|
||||
|
||||
/* No building as a mob or while being forced. */
|
||||
if (IS_NPC(ch) || !ch->desc || STATE(ch->desc) != CON_PLAYING)
|
||||
return;
|
||||
|
||||
/* Parse any arguments. */
|
||||
buf3 = two_arguments(argument, buf1, buf2);
|
||||
|
||||
|
@ -670,7 +674,7 @@ void zedit_parse(struct descriptor_data *d, char *arg)
|
|||
case 'q':
|
||||
case 'Q':
|
||||
if (OLC_ZONE(d)->age || OLC_ZONE(d)->number) {
|
||||
write_to_output(d, "Do you wish to save your changes? (y/n) : ");
|
||||
write_to_output(d, "Do you wish to save your changes? : ");
|
||||
OLC_MODE(d) = ZEDIT_CONFIRM_SAVESTRING;
|
||||
} else {
|
||||
write_to_output(d, "No changes made.\r\n");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue