Updated World and files for 3.58 release. --Rumble

This commit is contained in:
Rumble 2009-01-18 01:22:15 +00:00
parent eb99864f0b
commit 6f22042712
52 changed files with 763 additions and 803 deletions

View file

@ -34,12 +34,22 @@ OLC copy and delete options.
export (QQ's a zone into a tarball)t
Xlist (mlist, olist, rlist, zlist, slist, tlist, qlist)
(lots of major bugfixes too)
tbaMUD 3.58
[Jan 18 2009] - Rumble
Updated World and files for 3.58 release.
Bug fix for column_list to properly display commands, socials, wizhelp, etc. (thanks Jamdog)
[Jan 15 2009] - Fizban
Immortals can now never have their hands full when you attempt to hand them an item.
[Jan 13 2009] - Rumble
Questmaster variable changed from an rnum to a vnum. (thanks Jamdog)
Fixed a bug in dg_variables.c find_replacment with the new quest variable. (thanks Jamdog)
Fixed message when setting gold abnormally high.
[Jan 09 2009] - Fizban
Fixed a bug in do_rescue allowing players to get twice as many attacks per round. (thanks Zordrac)
Fixed a DIKU bug in do_rescue allowing players to get twice as many attacks per round. (thanks Zordrac)
Fixed Bug Where Questmaster rnums didn't previously update. (thanks Tails)
[Jan 05 2009] - Rumble
Fix to allow non-helper aggro mobs be agressive. (thanks Kvasir)
[Dec 28 2008] - Rumble
Added a "Syntax: export zone vnum" for the export command instead of defaulting to 0. (thanks Vatiken)
Fixed bad usage of num_of_saving_throws and moved define to structs.h. (thanks Vatiken)

View file

@ -810,11 +810,38 @@ TRIG-ERRORS TRIGEDIT-ERRORS TRIGEDIT-MISTAKES
These are numerous and I will add them as people ask questions about them.
Make sure nohassle is OFF.
Make sure nohassle is OFF. Command triggers (and some other functionality)
will not work for level 32 and above.
For mob triggers make sure the mob can see the actor, set INFRA in DARK rooms.
AFF_CHARM prevents triggers from firing.
As a general rule always use an ID (%actor%) not a name (%actor.name%) unless
you actually need to display the actors name.
GOOD: %send% %actor% Hi there, %actor.name%!
GOOD: %teleport% %actor% 0
GOOD: %force% %actor% kneel %self.name%
GOOD: mkill %actor%
BAD: %send% %actor.name% Hi there, %actor.name%!
BAD: %teleport% %actor.name% 0
BAD: %force% %actor.name% kneel
BAD: mkill %actor.name%
Another common mistake is the mis-use of set and eval.
GOOD: set fruit apple
GOOD: set num %random.5%
GOOD: eval num 4 * %random.3%
GOOD: eval text %%txt[%num%]%%
GOOD: set num 5
GOOD: set command %cmd% %arg%
BAD: eval num 5
BAD: eval num %random.4%
BAD: eval fruit apple
BAD: eval command %cmd% %arg%
See Also: ZEDIT-MISTAKES, SEDIT-MISTAKES
#31
CYGWIN README.CYGWIN README-CYGWIN COMPILER SHELLS
@ -941,7 +968,7 @@ as in "women's hemlines."
We rest our case. Now do whatever you want...after all, it is your area.
#31
OBJ-NOTES OBJECT-NOTES BOOKS PENS NOTES QUILLS NEWSPAPERS POSTITS POST-ITS OBJ-TYPE-NOTE PAPERS
OBJ-NOTES OBJECT-NOTES BOOKS PENS NOTES QUILLS NEWSPAPERS POSTITS POST-ITS OBJ-TYPE-NOTE PAPERS TYPE-NOTE
With Object Type NOTE you can then use the A-desc to write what you want
people to see when they read it. Players will then be able to write on the
@ -953,6 +980,8 @@ like 1 2 3 etc. Since the buffers can only hold so much text. You would need
to include instructions, something like this: to read another page type read #.
The player would type read 1, and would actually read page 1, then type read 2
and so on.
See Also: NOTE, MAP
#31
CWG BUDDHA SUNTZU RASPUTIN CIRCLEMUD-WITH-GOODIES
@ -965,26 +994,23 @@ See also: RESOURCES
#31
SOURCES RESOURCES CODEBASE FTP DOWNLOADS DOCUMENTATION WTFAQ FORUMS GROUPS
Source: http://cwg.lazuras.org/modules.php?name=Downloads&d_op=viewdownload&cid=16
Source: http://tbamud.com/
CWG: http://cwg.lazuras.org/
Trigedit: http://tbamud.com/Oasis_DG_pages/contents/downloads.htm
GDB: http://www.cs.clemson.edu/~ihcho/courses/cs360/common/gdb.html
Documentation:
http://tbamud.com/Oasis_DG_pages/index.html
http://tbamud.com/
http://www.circlemud.org/cdp/wtfaq/
http://developer.circlemud.org/contrib/
You should join the following forums and mailing lists. Learn how to search
them for any problems you have:
http://tbamud.com/
http://cwg.lazuras.org/
http://groups.yahoo.com/group/circle-newbies/
http://post.queensu.ca/cgi-bin/listserv/wa?SUBED1=circle&A=1
http://groups.yahoo.com/group/dg_scripts/
http://clubs.yahoo.com/clubs/areaswap
http://clubs.yahoo.com/clubs/buildersclub
http://clubs.yahoo.com/clubs/warlocksrealm
http://clubs.yahoo.com/clubs/codersclub
http://mudconnector.com/
Other stuff:
@ -1742,7 +1768,7 @@ Be original, finish what you start, have fun, and don't forget to breathe!
#31
CALENDAR CALENDER MONTHS WEEKS DAYS HOURS
The tbaMUD calendar consists of 75 seconds per minute, 35 days a month and
The tbaMUD calendar consists of 75 seconds per hour, 35 days a month and
17 months a year.
Days of the week:
@ -2403,7 +2429,7 @@ TIME TICKS
Usage: time
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
75 seconds per hour, 35 days per month, and 17 months per year. 1 MUD year
takes about 12 days.
/** Number of real life seconds per mud hour.
@ -2640,7 +2666,9 @@ Usage: uptime
Displays when the game was booted and calculates how long ago that was.
Record uptime: 39 days in 2006 (Rumble was on deployment)
Record uptime:
Up since Thu Nov 6 16:09:55 2008: 47 days, 9:28
#31
USERS STATUS
@ -4133,6 +4161,8 @@ pos() - %actor.pos% returns position. Subfield modifies. Sleeping,
resting, sitting, fighting, standing. @RTSTAT 1399, 20997@n
prac() - The actor's number of practices. Subfield adjusts.
pref() - Checks if actor has PRF flag enabled. @RTSTAT 1210@n
quest - Returns the current quest (or 0 if there's no current quest).
questdone(#) - Returns TRUE (1) if the quest vnum (#) has been completed.
questpoints() - Checks the actor's questpoints. Subfield modifies. @RHELP NOP@n
room - The room the actor is in as a room variable.
saving_para() - The actors saving throw for paralization. Subfield adjusts.
@ -4384,7 +4414,7 @@ TRIGEDIT-ROOM-GLOBAL TRIG-ROOM-GLOBAL
Not a trigger type by itself; used in conjunction with Random @RHELP
TRIGEDIT-ROOM-RANDOM@n and @RHELP TRIGEDIT-ROOM-TIME@n. While Random
and Time only trigger if players are in the same room, Global Random
and Time only trigger if players are in the same zone, Global Random
and Global Time will trigger regardless.
Numeric Arg : not used.
@ -4739,7 +4769,8 @@ Activated any time an object is given to the mobile.
Numeric Arg : percent chance this trigger will be activated.
Argument : not used.
With a return 0 the object is not transferred to the mobile.
With a return 0 the object is not transferred to the mobile. This will not work
if a wait is before the return 0.
Variables:
%actor% - the character handing the object to the mobile.
@ -5122,7 +5153,7 @@ TRIGEDIT-MOB-GLOBAL TRIG-MOB-GLOBAL
Not a trigger type by itself; used in conjunction with Random @RHELP
TRIGEDIT-MOB-RANDOM@n. While Random triggers only trigger if players
are in the same room, Global Random triggers will trigger regardless.
are in the same zone, Global Random triggers will trigger regardless.
Numeric Arg : not used.
Argument : not used.
@ -5544,7 +5575,7 @@ Smokables: @RTSTAT 159@n
Furniture: @RTSTAT 1399@n
Weapons: @RTSTAT 1361, 9000, 11840, 13005@n
See Also: @RTRIG-QUESTS@n
See Also: TRIG-QUESTS
#31
DG_AFFECTS DGAFFECT SCRIPT-AFFLICTED AFFLICTED DG-AFFECTS DG-AFFECTS %DG_AFFECT% DG-EFFECT DG_EFFECT DURATIONS TRIG-AFFECTS
@ -5667,7 +5698,7 @@ was on line 5 you can type /e5 <line with teh spelled correctly> or /d5. Learn
all these options.
Warning: Some clients will give you problems since they use special characters
like the / character (Avplay, Mush, and SimpleMU).
like the / character (MUDMaster 2k, Avplay, Mush, and SimpleMU).
#31
TRIGEDIT TRIGS TRIGEDITOR TRIGGEREDIT TRIGGER-EDIT TRIGGERS DG-SCRIPTS TRIG-HELP SCRIPTS MOBPROGS MPROGS PROGS SCRIPTING TRIGMENU
@ -5918,7 +5949,7 @@ XLIST %LIST%
By Xlist I meant to for you to replace the X with the type of list you want
to see. i.e. olist, mlist, rlist, zlist, slist, or qlist.
See also: OLIST, MLIST, RLIST, ZLIST, SLIST
See also: OLIST, MLIST, RLIST, TLIST, ZLIST, SLIST, QLIST
#31
TLIST TRIGLIST TRIG-LIST TRIGEDIT-LIST TRIGGERLIST TRIGGER-LIST
@ -6035,7 +6066,7 @@ number.
See also: SEDIT-MENU, SLIST, OLC
#31
ZEDIT ZEDIT-CREATE ZCREATE
ZEDIT
Usage: zedit [room vnum]
zedit new <new zone number> <bottom of zone> <top of zone> (Implementors only!)
@ -6048,7 +6079,7 @@ If no room number is specified, the current room is used as target.
@RGOTO 11@n to enter The Builder Academy hallway on how to use zedit.
See also: ZEDIT-MENU, OLC, SHOW-ZONES
See also: ZEDIT-MENU, ZEDIT-NEW, OLC, SHOW-ZONES
#31
BUILDWALKING BUILD-WALKING DIGWALK WALKDIG
@ -6510,8 +6541,10 @@ SEDIT-OPEN1 SEDIT-OPEN2 SEDIT-CLOSE1 SEDIT-CLOSE2 SEDIT-OPENS
3) Open 2 : @c0 @n4) Close 2 : @c0@n
The times (in MUD-hours) between which the shop is open. Two sets of
Open/Close pairs are allowed so that the shop can be open twice a day (for
example, once in the morning and once at night). There are 28 hours in a
MUD day.
example, once in the morning and once at night). There are 24 hours in a
MUD day so setting closed to >24 will ensure the shop is always open. If you
want the shopkeeper to only be open during normal working hours you can set
open1 to 9 and close1 to 5.
#31
SEDIT-RATES SEDIT-SELL-RATES SEDIT-BUY-RATES SEDIT-PRICE PRICES PRICING SEDIT-SELLRATE SELLRATE SEDIT-MENU-SELLRATE SELL-RATE
@ -6731,6 +6764,23 @@ ZEDIT-BUILDERS
The name of the builder creating the zone.
#31
ZEDIT-CREATE ZEDIT-CREATION ZONE-CREATE ZONE-CREATION ZCREATE
Usage: zedit new <new zone number> <bottom of zone> <top of zone>
Only Implementors can create new zones. Zones can be any size but must
consist of consecutive vnums.
Examples:
zedit new 1 100 199 - Creates zone 1 vnums 100 to 199.
zedit new 123 12300 12499 - Creates zone 123 vnums 12300 to 12499
Max zone number is 655. Max vnum is 65534.
65535 is reserved for corpses.
See Also: ZEDIT, ZEDIT-NEW
#31
ZEDIT-NEW-COMMAND ZEDIT-DOOR MOB-LOAD MOB-INVENTORY ZEDIT-NEWCOMMAND ZEDIT-LOADING ZLOADING ZEDIT-DOORS ZEDIT-REMOVE
@ -7736,8 +7786,8 @@ use /fi by typing it into the last line and hitting enter.
3) Goto next description: <NOT SET>
This option will allow you to make as many extra descriptions as you want.
To delete an extra description all you have to do is leave the keywords
or the Description blank and exit.
To delete an extra description all you have to do is clear the description
with the "/c" then "/s" and quit.
#31
REDIT-EXITS DOORFLAGS REDIT-KEYS PICKPROOF REDIT-EXIT-MENU EXIT-BASICS DOOR-FLAGS EXIT-MENU PURGE-EXITS
@ -11530,11 +11580,12 @@ actually very stable. I have never heard of one being hacked except via weak or
compromised passwords.
#0
DIKU ROM DBX DBZ SMAUG
DIKU ROM DBX DBZ SMAUG MUD-HISTORY
These are other types of MUD codebases. We only focus on tbaMUD (the codebase
formerly known as CircleMUD).
For a full history of MUDs, check out: http://en.wikipedia.org/wiki/Muds
#0
HISTORY
@ -11544,7 +11595,7 @@ Usage: history < all | say | gossip | wiznet | tell | shout | grats | holler | a
with a time stamp for when it was sent. History all will list the history of
all channels.
See also: CHANNELS
See also: CHANNELS, MUD-HISTORY
#0
COLORCODES COLOURCODES COLOR-CODES COLOUR-CODES COLORS COLOURS PCOLORS COLORCODING
@ -12487,6 +12538,7 @@ Fyre: i'll keep that in mind for the future
Fizban gossips, 'And remember being told what a pretty little girl I was'
Fizban: You kno what? I just decided I want to be a waitress at Fultons :P
Fizban gossips, 'Though I've had dreams with Detta in them ;) But those were uhh...different....'
Masok: Anyone else think that maybe we should randomly carpet bomb overly populated areas of poor or useless people?
Masok: You cant. I have metal underwear.

View file

@ -1,5 +1,5 @@
(lib/text/news)
THE 2008 tbaMUD HERALD
THE 2009 tbaMUD HERALD
"We addict players for their own enjoyment."
NEW COMMANDS AND NEW MUD BEHAVIOR:

View file

@ -397,8 +397,8 @@ The variable questmaster is waiting to set you.
or not you have done his quest. This way you can only do this quest once.
~
253962 0 0 0 0 0 0 0 0 E
0 20 10 1d1+0 1d1+0
0 0
1 20 9 0d0+10 1d2+0
10 100
8 8 1
E
T 192

View file

@ -15,4 +15,18 @@ concoct many different potions and is most famous for her liquid fire.
E
T 300
T 335
#301
naked magi~
the naked magi~
A magi sits against a wall wearing nothing but a towel.
~
Sweat gleams on her supple skin. Her black hair is wet and frames a round
face with slanted blue eyes. She is striking in her beauty and grace.
~
10 0 0 0 2112 0 0 0 0 E
0 20 10 1d1+0 1d1+0
0 0
8 8 2
E
T 305
$

View file

@ -1,12 +1,3 @@
#0
bug~
a bug~
This object is BAD! If you see it, there must be a bug in the game. Please
report it immediately using the BUG command.~
~
13 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0
0 0 0 0
#1
wings~
a pair of wings~
@ -40,10 +31,6 @@ The email listing of the gods is pinned against the wall.~
0 0 0 0
1 1 0 30
E
emails listing~
HELP CONTACT
~
E
wizlist~
Implementors
~~~~~~~~~~~
@ -60,6 +47,10 @@ wizlist~
Santa Shamra Shimmer Silvanos Smaug Snowlock Talgard Taylor
Theophilus Tocamat Torpidai Treestump Tuskony Zizazat
~
E
emails listing~
HELP CONTACT
~
#5
foraged berries~
some foraged berries~

View file

@ -1064,8 +1064,8 @@ visible.
0 0 0 0
0 0 0 0
E
june~
. .:IIIIHIHHIHHHII::I:.
september~
. .:IIIIHIHHIHHHII::I:.
:IIIIHIHHHHHHMMHHIHHIIHHIII:.
,.:HIHHHHHHHHHHHHHHHHHHHHHIHIHHII:.
.:IIHHHHHHHHMMMMMHHHHMMMHHMHHHIIIHIIII:
@ -1122,21 +1122,9 @@ IHHHHMHMMMMMMMHHHHHI:IT:TI:..:HI:.. ..:. . :IHII
::.:............. .. . ...AHIHIIIIIHHHI::""' 'VII:.. .. .
::.:.:.......... .. . ...HHHIIIIIIHHHI::. . 'VII::. . . ,
':::.:.:..... .. . . . ..:MHHIHIIIII:I::. . 'VII:::. .. .
:::::.:..:.... . . . ...AHHHHIHIIII:::. . 'VII:::. . . :.
:::::::.:..... .. . ....MHHHHHIHIII::.:.. . 'VII::. . ::
:::::::::.:.... .. ....:MHHHHIHII:I::::... . 'VI::. . ::I)
'::::::::::.:... .. ...:MHHHHIHIIII::::.. . 'VI:. ...:V
.:::::::::::.:.... . .AMMHHIHIII:I::::... . . I::. ...:-"
:.::I::::::::.:. . ..MMMHHIHIIII:I:::... . . .::. ,..-"
:..:II:I:::::.:.. . ..MMMHHIHIIIIIII:I::.... . . ..::""'
.::.:III:I::::::.:.. ..MMMMIVHIHIIIII:I::::.... . .....:,
.:.::..:III:I:::::.:... .MMHMAIVHHIHIIIII:I::::.. . ..::..:,
. .:::.::III:I::::.:... .VMMHMAIVHHHIHIIII:I::::.. ..:...:::
. :::I.:::III:I:::.::.. .:MMHHMAIVHHIHIIIII:I::::....:::.::::
.::IIH.:::III:I::::.:.. .MMHMHMAIVHHHIHIIIIII:I
~
E
april~
august~
. nHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHn.
.MS?MMMMMMMMMMMMMMMMMM?MM-MMMMMMMMMSHMMMMMMM
MMMMMH?MMMMMMMX*MM?MMX%MM/MMMMMM"HMMMMMMMMMMMM
@ -1189,7 +1177,7 @@ april~
%% % %%%%%%
~
E
March~
july~
. ,.--..
,::.'.. . . "VI:I:".':-.,.
,I::. .. . 'VHMHII:.::;:.:,..
@ -1255,6 +1243,183 @@ March~
':::.:... ..I::I::.:....:. .: .. ...::. . . III:II:. '
~
E
june~
. :AMMMMMMMMMMMMA:
:AMMMMMMMMMHHHHHMMMMMMMMA:
:AMHMMMMHHMHIHHIMMMHMMMMHHA:
:AM'MMMMMMHHIHHHIMMMMMIMMHHHH:
AM:IMMMMMHHIHIHHHIMMHHHHHHHHHH
AMIIHMMMMMHIHHHIHHIHHHHHHHHHHHH:
MMIHHMMMMMHHIHHHIHHHHHHHHHHHHHHH
AMMMMMHHHHHHI;;;;;;;IHHHI;;IHHHHH
MMMMHIIII;":AMMMMA ,[[, HH
MMMMHII; AW"'''' :: HH
IHHIHIII;:'' ,GFMF[ [MM[: IH
AHHIHII;::': ";[P,[ ;; :::: IH
IHHHIHII;;:: :[;: ;H
AHHHHHII;;;:: : : [ : ;H
IHHIIHI:[;;;:: ; ; ; , , IH
IHHIIHH:[;;;: ; ;: ':"::" '; IH
IHHIIHI:[;;: ::: ; ,,,, ' HH
:IHHHIHHMMA;::: [;;""""""[; AMI
;IHHHHIIHMM;: : : ;;[,,,,[; HHI
IIHHMMHHIHHM;:: '"""' AMHI
IIHHMMHMHHIIIM;:: AMMHI
IHHHMMHMHMHHHIHI;:: :AMMMHI
IHHHMMMMHMMHHHII;;;;:: :,;; MMMHHI
IHHHMMHHHHMMHHHI;:";;;;;;" MMMIH'
;IHHMMHMMMMHF"HHII MMMHH
IHHMMHV;;:: HHII;: : MMHHI
IHHMV;;::: HHII;: : : MMHI;
IHMV;;:: : "HII;: :: MMI;
:IHV;:: : 'HI: :: MM;
IV;:: : : "II;: ;
IH;;::: : ;;;I: ;
;M;;:::: : ';;;HI: '
MH;;:::: : ';;HI: ;
IM;;;::: : :[; ';I"I: ;
M;;;::: : : [;;,: ' : '
;;:::: : ::'' : ':
;;::: : : ': :
:;;:: : :: ':'
;;:: : : : '':
;;:: : : :;,:
;;:: : :: ;[[[,:
:;;:: : : ;;[[[;':
;;:: : : [:: : : ;[[[[;;[,
;:: : [;;;: : :, [[[[['[[;
;:: : :M;;: : :,[ [[[[ [['
;: : "[:: : ::[ ;[' ;[
;: : "[: : ::[ :' :'
:: :: : ", :::;[ :' :;
: :: ': : :::;[ ::' :;
:: ; : : ::::;[:,,::;;I' ;;
;;:;: : : : :::::::: '""' I[[;"'
;;;:: : : '::::' ;
;;;:: : : : ;
';;;;::: : : ': ;
';;:::: : :
M;:::: : ':
MMMI;:::: : ;
MMMMMA;::: :
AHHMMMMHA;:::: : ;
:MHHMMMMMMMA;: ' :
AHHHMMM;"TTTTL: : ;
AHHHHHHMMLLLLLH ': :
:MHHH:::;HHMMMMMA: : ;
:AHHH:::HH;;;;;MMM;: :
:MHH;: ;;;;;MMM:: : : ;
:MH;: : ';;;;MMM:: ': ':
,H;: ';;;MMM::: :':' ;
,;: : : : ;;;Y;H:: :
,;: : : : ';;;:; : : ; ;
[;:: : ;;:; ; ; ;
~
E
may~
. 8888 8888888
888888888888888888888888
8888:::8888888888888888888888888
8888::::::8888888888888888888888888888
88::::::::888:::8888888888888888888888888
88888888::::8:::::::::::88888888888888888888
888 8::888888::::::::::::::::::88888888888 888
88::::88888888::::m::::::::::88888888888 8
888888888888888888:M:::::::::::8888888888888
88888888888888888888::::::::::::M88888888888888
8888888888888888888888:::::::::M8888888888888888
8888888888888888888888:::::::M888888888888888888
8888888888888888::88888::::::M88888888888888888888
88888888888888888:::88888:::::M888888888888888 8888
88888888888888888:::88888::::M::;o*M*o;888888888 88
88888888888888888:::8888:::::M:::::::::::88888888 8
88888888888888888::::88::::::M:;:::::::::::888888888
8888888888888888888:::8::::::M::aAa::::::::M8888888888 8
88 8888888888::88::::8::::M:::::::::::::888888888888888 8888
88 88888888888:::8:::::::::M::::::::::;::88:88888888888888888
8 8888888888888:::::::::::M::"@@@@@@@"::::8w8888888888888888
88888888888:888::::::::::M:::::"@a@":::::M8i888888888888888
8888888888::::88:::::::::M88:::::::::::::M88z88888888888888888
8888888888:::::8:::::::::M88888:::::::::MM888!888888888888888888
888888888:::::8:::::::::M8888888MAmmmAMVMM888*88888888 88888888
888888 M:::::::::::::::M888888888:::::::MM88888888888888 8888888
8888 M::::::::::::::M88888888888::::::MM888888888888888 88888
888 M:::::::::::::M8888888888888M:::::mM888888888888888 8888
888 M::::::::::::M8888:888888888888::::m::Mm88888 888888 8888
88 M::::::::::::8888:88888888888888888::::::Mm8 88888 888
88 M::::::::::8888M::88888::888888888888:::::::Mm88888 88
8 MM::::::::8888M:::8888:::::888888888888::::::::Mm8 4
8M:::::::8888M:::::888:::::::88:::8888888::::::::Mm 2
88MM:::::8888M:::::::88::::::::8:::::888888:::M:::::M
8888M:::::888MM::::::::8:::::::::::M::::8888::::M::::M
88888M:::::88:M::::::::::8:::::::::::M:::8888::::::M::M
88 888MM:::888:M:::::::::::::::::::::::M:8888:::::::::M:
8 88888M:::88::M:::::::::::::::::::::::MM:88::::::::::::M
88888M:::88::M::::::::::*88*::::::::::M:88::::::::::::::M
888888M:::88::M:::::::::88@@88:::::::::M::88::::::::::::::M
888888MM::88::MM::::::::88@@88:::::::::M:::8::::::::::::::*8
88888 M:::8::MM:::::::::*88*::::::::::M:::::::::::::::::88@@
8888 MM::::::MM:::::::::::::::::::::MM:::::::::::::::::88@@
888 M:::::::MM:::::::::::::::::::MM::M::::::::::::::::*8
888 MM:::::::MMM::::::::::::::::MM:::MM:::::::::::::::M
88 M::::::::MMMM:::::::::::MMMM:::::MM::::::::::::MM
88 MM:::::::::MMMMMMMMMMMMMMM::::::::MMM::::::::MMM
88 MM::::::::::::MMMMMMM::::::::::::::MMMMMMMMMM
88 8MM::::::::::::::::::::::::::::::::::MMMMMM
~
E
January~
. 8888 8888888
888888888888888888888888
8888:::8888888888888888888888888
8888::::::8888888888888888888888888888
88::::::::888:::8888888888888888888888888
88888888::::8:::::::::::88888888888888888888
888 8::888888::::::::::::::::::88888888888 888
88::::88888888::::m::::::::::88888888888 8
888888888888888888:M:::::::::::8888888888888
88888888888888888888::::::::::::M88888888888888
8888888888888888888888:::::::::M8888888888888888
8888888888888888888888:::::::M888888888888888888
8888888888888888::88888::::::M88888888888888888888
88888888888888888:::88888:::::M888888888888888 8888
88888888888888888:::88888::::M::;o*M*o;888888888 88
88888888888888888:::8888:::::M:::::::::::88888888 8
88888888888888888::::88::::::M:;:::::::::::888888888
8888888888888888888:::8::::::M::aAa::::::::M8888888888 8
88 8888888888::88::::8::::M:::::::::::::888888888888888 8888
88 88888888888:::8:::::::::M::::::::::;::88:88888888888888888
8 8888888888888:::::::::::M::"@@@::::8w8888888888888888
88888888888:888::::::::::M:::::":::::M8i888888888888888
8888888888::::88:::::::::M88:::::::::::::M88z88888888888888888
8888888888:::::8:::::::::M88888:::::::::MM888!888888888888888888
888888888:::::8:::::::::M8888888MAmmmAMVMM888*88888888 88888888
888888 M:::::::::::::::M888888888:::::::MM88888888888888 8888888
8888 M::::::::::::::M88888888888::::::MM888888888888888 88888
888 M:::::::::::::M8888888888888M:::::mM888888888888888 8888
888 M::::::::::::M8888:888888888888::::m::Mm88888 888888 8888
88 M::::::::::::8888:88888888888888888::::::Mm8 88888 888
88 M::::::::::8888M::88888::888888888888:::::::Mm88888 88
8 MM::::::::8888M:::8888:::::888888888888::::::::Mm8 4
8M:::::::8888M:::::888:::::::88:::8888888::::::::Mm 2
88MM:::::8888M:::::::88::::::::8:::::888888:::M:::::M
8888M:::::888MM::::::::8:::::::::::M::::8888::::M::::M
88888M:::::88:M::::::::::8:::::::::::M:::8888::::::M::M
88 888MM:::888:M:::::::::::::::::::::::M:8888:::::::::M:
8 88888M:::88::M:::::::::::::::::::::::MM:88::::::::::::M
88888M:::88::M::::::::::*88*::::::::::M:88::::::::::::::M
888888M:::88::M:::::::::88@8:::::::::M::88::::::::::::::M
888888MM::88::MM::::::::88@8:::::::::M:::8::::::::::::::*8
88888 M:::8::MM:::::::::*88*::::::::::M:::::::::::::::::88@
8888 MM::::::MM:::::::::::::::::::::MM:::::::::::::::::88@
888 M:::::::MM:::::::::::::::::::MM::M::::::::::::::::*8
888 MM:::::::MMM::::::::::::::::MM:::MM:::::::::::::::M
88 M::::::::MMMM:::::::::::MMMM:::::MM::::::::::::MM
88 MM:::::::::MMMMMMMMMMMMMMM::::::::MMM::::::::MMM
88 MM::::::::::::MMMMMMM::::::::::::::MMMMMMMMMM
88 8MM::::::::::::::::::::::::::::::::::MMMMMM
~
E
february~
. :AMMMMMMMMMMMMA:
:AMMMMMMMMMHHHHHMMMMMMMMA:
@ -1328,184 +1493,7 @@ february~
[;:: : ;;:; ; ; ;
~
E
January~
. 8888 8888888
888888888888888888888888
8888:::8888888888888888888888888
8888::::::8888888888888888888888888888
88::::::::888:::8888888888888888888888888
88888888::::8:::::::::::88888888888888888888
888 8::888888::::::::::::::::::88888888888 888
88::::88888888::::m::::::::::88888888888 8
888888888888888888:M:::::::::::8888888888888
88888888888888888888::::::::::::M88888888888888
8888888888888888888888:::::::::M8888888888888888
8888888888888888888888:::::::M888888888888888888
8888888888888888::88888::::::M88888888888888888888
88888888888888888:::88888:::::M888888888888888 8888
88888888888888888:::88888::::M::;o*M*o;888888888 88
88888888888888888:::8888:::::M:::::::::::88888888 8
88888888888888888::::88::::::M:;:::::::::::888888888
8888888888888888888:::8::::::M::aAa::::::::M8888888888 8
88 8888888888::88::::8::::M:::::::::::::888888888888888 8888
88 88888888888:::8:::::::::M::::::::::;::88:88888888888888888
8 8888888888888:::::::::::M::"@@@::::8w8888888888888888
88888888888:888::::::::::M:::::":::::M8i888888888888888
8888888888::::88:::::::::M88:::::::::::::M88z88888888888888888
8888888888:::::8:::::::::M88888:::::::::MM888!888888888888888888
888888888:::::8:::::::::M8888888MAmmmAMVMM888*88888888 88888888
888888 M:::::::::::::::M888888888:::::::MM88888888888888 8888888
8888 M::::::::::::::M88888888888::::::MM888888888888888 88888
888 M:::::::::::::M8888888888888M:::::mM888888888888888 8888
888 M::::::::::::M8888:888888888888::::m::Mm88888 888888 8888
88 M::::::::::::8888:88888888888888888::::::Mm8 88888 888
88 M::::::::::8888M::88888::888888888888:::::::Mm88888 88
8 MM::::::::8888M:::8888:::::888888888888::::::::Mm8 4
8M:::::::8888M:::::888:::::::88:::8888888::::::::Mm 2
88MM:::::8888M:::::::88::::::::8:::::888888:::M:::::M
8888M:::::888MM::::::::8:::::::::::M::::8888::::M::::M
88888M:::::88:M::::::::::8:::::::::::M:::8888::::::M::M
88 888MM:::888:M:::::::::::::::::::::::M:8888:::::::::M:
8 88888M:::88::M:::::::::::::::::::::::MM:88::::::::::::M
88888M:::88::M::::::::::*88*::::::::::M:88::::::::::::::M
888888M:::88::M:::::::::88@8:::::::::M::88::::::::::::::M
888888MM::88::MM::::::::88@8:::::::::M:::8::::::::::::::*8
88888 M:::8::MM:::::::::*88*::::::::::M:::::::::::::::::88@
8888 MM::::::MM:::::::::::::::::::::MM:::::::::::::::::88@
888 M:::::::MM:::::::::::::::::::MM::M::::::::::::::::*8
888 MM:::::::MMM::::::::::::::::MM:::MM:::::::::::::::M
88 M::::::::MMMM:::::::::::MMMM:::::MM::::::::::::MM
88 MM:::::::::MMMMMMMMMMMMMMM::::::::MMM::::::::MMM
88 MM::::::::::::MMMMMMM::::::::::::::MMMMMMMMMM
88 8MM::::::::::::::::::::::::::::::::::MMMMMM
~
E
may~
. 8888 8888888
888888888888888888888888
8888:::8888888888888888888888888
8888::::::8888888888888888888888888888
88::::::::888:::8888888888888888888888888
88888888::::8:::::::::::88888888888888888888
888 8::888888::::::::::::::::::88888888888 888
88::::88888888::::m::::::::::88888888888 8
888888888888888888:M:::::::::::8888888888888
88888888888888888888::::::::::::M88888888888888
8888888888888888888888:::::::::M8888888888888888
8888888888888888888888:::::::M888888888888888888
8888888888888888::88888::::::M88888888888888888888
88888888888888888:::88888:::::M888888888888888 8888
88888888888888888:::88888::::M::;o*M*o;888888888 88
88888888888888888:::8888:::::M:::::::::::88888888 8
88888888888888888::::88::::::M:;:::::::::::888888888
8888888888888888888:::8::::::M::aAa::::::::M8888888888 8
88 8888888888::88::::8::::M:::::::::::::888888888888888 8888
88 88888888888:::8:::::::::M::::::::::;::88:88888888888888888
8 8888888888888:::::::::::M::"@@@@@@@"::::8w8888888888888888
88888888888:888::::::::::M:::::"@a@":::::M8i888888888888888
8888888888::::88:::::::::M88:::::::::::::M88z88888888888888888
8888888888:::::8:::::::::M88888:::::::::MM888!888888888888888888
888888888:::::8:::::::::M8888888MAmmmAMVMM888*88888888 88888888
888888 M:::::::::::::::M888888888:::::::MM88888888888888 8888888
8888 M::::::::::::::M88888888888::::::MM888888888888888 88888
888 M:::::::::::::M8888888888888M:::::mM888888888888888 8888
888 M::::::::::::M8888:888888888888::::m::Mm88888 888888 8888
88 M::::::::::::8888:88888888888888888::::::Mm8 88888 888
88 M::::::::::8888M::88888::888888888888:::::::Mm88888 88
8 MM::::::::8888M:::8888:::::888888888888::::::::Mm8 4
8M:::::::8888M:::::888:::::::88:::8888888::::::::Mm 2
88MM:::::8888M:::::::88::::::::8:::::888888:::M:::::M
8888M:::::888MM::::::::8:::::::::::M::::8888::::M::::M
88888M:::::88:M::::::::::8:::::::::::M:::8888::::::M::M
88 888MM:::888:M:::::::::::::::::::::::M:8888:::::::::M:
8 88888M:::88::M:::::::::::::::::::::::MM:88::::::::::::M
88888M:::88::M::::::::::*88*::::::::::M:88::::::::::::::M
888888M:::88::M:::::::::88@@88:::::::::M::88::::::::::::::M
888888MM::88::MM::::::::88@@88:::::::::M:::8::::::::::::::*8
88888 M:::8::MM:::::::::*88*::::::::::M:::::::::::::::::88@@
8888 MM::::::MM:::::::::::::::::::::MM:::::::::::::::::88@@
888 M:::::::MM:::::::::::::::::::MM::M::::::::::::::::*8
888 MM:::::::MMM::::::::::::::::MM:::MM:::::::::::::::M
88 M::::::::MMMM:::::::::::MMMM:::::MM::::::::::::MM
88 MM:::::::::MMMMMMMMMMMMMMM::::::::MMM::::::::MMM
88 MM::::::::::::MMMMMMM::::::::::::::MMMMMMMMMM
88 8MM::::::::::::::::::::::::::::::::::MMMMMM
~
E
june~
. :AMMMMMMMMMMMMA:
:AMMMMMMMMMHHHHHMMMMMMMMA:
:AMHMMMMHHMHIHHIMMMHMMMMHHA:
:AM'MMMMMMHHIHHHIMMMMMIMMHHHH:
AM:IMMMMMHHIHIHHHIMMHHHHHHHHHH
AMIIHMMMMMHIHHHIHHIHHHHHHHHHHHH:
MMIHHMMMMMHHIHHHIHHHHHHHHHHHHHHH
AMMMMMHHHHHHI;;;;;;;IHHHI;;IHHHHH
MMMMHIIII;":AMMMMA ,[[, HH
MMMMHII; AW"'''' :: HH
IHHIHIII;:'' ,GFMF[ [MM[: IH
AHHIHII;::': ";[P,[ ;; :::: IH
IHHHIHII;;:: :[;: ;H
AHHHHHII;;;:: : : [ : ;H
IHHIIHI:[;;;:: ; ; ; , , IH
IHHIIHH:[;;;: ; ;: ':"::" '; IH
IHHIIHI:[;;: ::: ; ,,,, ' HH
:IHHHIHHMMA;::: [;;""""""[; AMI
;IHHHHIIHMM;: : : ;;[,,,,[; HHI
IIHHMMHHIHHM;:: '"""' AMHI
IIHHMMHMHHIIIM;:: AMMHI
IHHHMMHMHMHHHIHI;:: :AMMMHI
IHHHMMMMHMMHHHII;;;;:: :,;; MMMHHI
IHHHMMHHHHMMHHHI;:";;;;;;" MMMIH'
;IHHMMHMMMMHF"HHII MMMHH
IHHMMHV;;:: HHII;: : MMHHI
IHHMV;;::: HHII;: : : MMHI;
IHMV;;:: : "HII;: :: MMI;
:IHV;:: : 'HI: :: MM;
IV;:: : : "II;: ;
IH;;::: : ;;;I: ;
;M;;:::: : ';;;HI: '
MH;;:::: : ';;HI: ;
IM;;;::: : :[; ';I"I: ;
M;;;::: : : [;;,: ' : '
;;:::: : ::'' : ':
;;::: : : ': :
:;;:: : :: ':'
;;:: : : : '':
;;:: : : :;,:
;;:: : :: ;[[[,:
:;;:: : : ;;[[[;':
;;:: : : [:: : : ;[[[[;;[,
;:: : [;;;: : :, [[[[['[[;
;:: : :M;;: : :,[ [[[[ [['
;: : "[:: : ::[ ;[' ;[
;: : "[: : ::[ :' :'
:: :: : ", :::;[ :' :;
: :: ': : :::;[ ::' :;
:: ; : : ::::;[:,,::;;I' ;;
;;:;: : : : :::::::: '""' I[[;"'
;;;:: : : '::::' ;
;;;:: : : : ;
';;;;::: : : ': ;
';;:::: : :
M;:::: : ':
MMMI;:::: : ;
MMMMMA;::: :
AHHMMMMHA;:::: : ;
:MHHMMMMMMMA;: ' :
AHHHMMM;"TTTTL: : ;
AHHHHHHMMLLLLLH ': :
:MHHH:::;HHMMMMMA: : ;
:AHHH:::HH;;;;;MMM;: :
:MHH;: ;;;;;MMM:: : : ;
:MH;: : ';;;;MMM:: ': ':
,H;: ';;;MMM::: :':' ;
,;: : : : ;;;Y;H:: :
,;: : : : ';;;:; : : ; ;
[;:: : ;;:; ; ; ;
~
E
july~
March~
. ,.--..
,::.'.. . . "VI:I:".':-.,.
,I::. .. . 'VHMHII:.::;:.:,..
@ -1571,7 +1559,7 @@ july~
':::.:... ..I::I::.:....:. .: .. ...::. . . III:II:. '
~
E
august~
april~
. nHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHn.
.MS?MMMMMMMMMMMMMMMMMM?MM-MMMMMMMMMSHMMMMMMM
MMMMMH?MMMMMMMX*MM?MMX%MM/MMMMMM"HMMMMMMMMMMMM
@ -1624,8 +1612,8 @@ august~
%% % %%%%%%
~
E
september~
. .:IIIIHIHHIHHHII::I:.
june~
. .:IIIIHIHHIHHHII::I:.
:IIIIHIHHHHHHMMHHIHHIIHHIII:.
,.:HIHHHHHHHHHHHHHHHHHHHHHIHIHHII:.
.:IIHHHHHHHHMMMMMHHHHMMMHHMHHHIIIHIIII:
@ -1682,6 +1670,18 @@ IHHHHMHMMMMMMMHHHHHI:IT:TI:..:HI:.. ..:. . :IHII
::.:............. .. . ...AHIHIIIIIHHHI::""' 'VII:.. .. .
::.:.:.......... .. . ...HHHIIIIIIHHHI::. . 'VII::. . . ,
':::.:.:..... .. . . . ..:MHHIHIIIII:I::. . 'VII:::. .. .
:::::.:..:.... . . . ...AHHHHIHIIII:::. . 'VII:::. . . :.
:::::::.:..... .. . ....MHHHHHIHIII::.:.. . 'VII::. . ::
:::::::::.:.... .. ....:MHHHHIHII:I::::... . 'VI::. . ::I)
'::::::::::.:... .. ...:MHHHHIHIIII::::.. . 'VI:. ...:V
.:::::::::::.:.... . .AMMHHIHIII:I::::... . . I::. ...:-"
:.::I::::::::.:. . ..MMMHHIHIIII:I:::... . . .::. ,..-"
:..:II:I:::::.:.. . ..MMMHHIHIIIIIII:I::.... . . ..::""'
.::.:III:I::::::.:.. ..MMMMIVHIHIIIII:I::::.... . .....:,
.:.::..:III:I:::::.:... .MMHMAIVHHIHIIIII:I::::.. . ..::..:,
. .:::.::III:I::::.:... .VMMHMAIVHHHIHIIII:I::::.. ..:...:::
. :::I.:::III:I:::.::.. .:MMHHMAIVHHIHIIIII:I::::....:::.::::
.::IIH.:::III:I::::.:.. .MMHMHMAIVHHHIHIIIIII:I
~
#186
scroll poem irish~
@ -1721,6 +1721,7 @@ A large wooden chest with bands of iron circling it is closed with its lock hang
15 0 0 0 0 a 0 0 0 0 0 0 0
50 5 -1 0
50 0 0 0
T 209
E
iron bound wooden chest~
The chest is in excellent condition. Made from a fine grain of wood it is

View file

@ -38,7 +38,7 @@ A washing machine rumbles steadily as it spins.~
E
washing machine~
Simple yet most effective, this smooth white appliance vibrates gently as it
goes about the important business of spotlifying soiled clothing.
goes about the important business of cleaning soiled clothing.
~
#11803
cloth nappy dingy white piece~

View file

@ -194,8 +194,8 @@ weapon level 34~
a level 34 weapon~
A level 34 weapon is used to test level restrictions~
~
12 0 0 0 0 ano 0 0 0 0 0 0 0
0 0 0 0
5 0 0 0 0 ano 0 0 0 0 0 0 0
11 2 2 0
1 1 0 34
#1266
Black Staff of Immortality~
@ -296,14 +296,14 @@ A piece of fireworks is planted in a champagne bottle.~
0 0 0 0
T 1297
E
firework new year piece~
This large rocket is about to go up! Strange colours will fill the sky!
~
E
bottle champagne~
The bottle is filled partially with water so it doesn't tilt over. Someone
has obviously drunk the champagne first.
~
E
firework new year piece~
This large rocket is about to go up! Strange colours will fill the sky!
~
#1299
christmas tree~
a christmas tree~

View file

@ -202,13 +202,13 @@ A small sword lies here.~
0 1 6 11
3 60 0 0
E
sword small~
The small sword seems to have an inscription of some sort inscription...
~
E
inscription~
It says: 'May this sword be a good companion. '
~
E
sword small~
The small sword seems to have an inscription of some sort inscription...
~
#322
sword long~
a long sword~
@ -241,6 +241,19 @@ A large flail is here.~
5 0 0 0 0 an 0 0 0 0 0 0 0
0 2 4 7
6 625 0 0
#326
towel white~
a white towel~
A white bleached towel is folded nicely here.~
~
12 0 0 0 0 ak 0 0 0 0 0 0 0
0 0 0 0
1 1 0 0
E
white towel~
The towel looks thick and plush. It appears to be woven from cotton and
bleached a bright white.
~
#330
torch~
a torch~
@ -615,13 +628,13 @@ A large, sociable bulletin board is mounted on a wall here.~
0 0 0 0
0 0 0 0
E
board~
If you can read this, the board is not working.
~
E
social bulletin~
Use 'look board' to read the board.
~
E
board~
If you can read this, the board is not working.
~
#397
board frozen bulletin~
a frozen bulletin board~
@ -631,13 +644,13 @@ A large bulletin board is here, carved from a block of ice.~
0 0 0 0
0 0 0 0
E
board~
If you can read this, the board is not working.
~
E
freeze bulletin~
Use 'look board' to read the board.
~
E
board~
If you can read this, the board is not working.
~
#398
board holy bulletin~
a holy bulletin board~
@ -647,13 +660,13 @@ A large bulletin board is mounted on a wall here. It glows with a faint aura.~
0 0 0 0
0 0 0 0
E
board~
If you can read this, the board is not working.
~
E
holy bulletin~
Use 'look board' to read the board.
~
E
board~
If you can read this, the board is not working.
~
#399
board bulletin~
a bulletin board~
@ -663,11 +676,11 @@ A large bulletin board is mounted on a wall here.~
0 0 0 0
0 0 0 0
E
board~
If you can read this, the board is not working.
~
E
bulletin~
Use 'look board' to read the board.
~
E
board~
If you can read this, the board is not working.
~
$~

View file

@ -1,14 +1 @@
#0
Undefined~
Quest definition is incomplete.~
There is no information on this quest.
~
You have completed the quest.
~
You have abandoned the quest.
~
-1 1 0 -1 -1 -1 -1
0 0 0 34 -1 -1 1
0 0 65535
S
$~

View file

@ -284,7 +284,7 @@ Tutorial Quest 1441 - Load 8ball~
* By Rumble of The Builder Academy tbamud.com 9091
* Quest Trigs 9-12. Drop the 8ball on their head when they enter.
wait 1 sec
%echoaround% %actor.name% A magic eight ball drops from the sky striking %actor.name% on the head.
%echoaround% %actor% A magic eight ball drops from the sky striking %actor.name% on the head.
%send% %actor% A magic eight ball drops from the sky striking you on the head.
%load% obj 1394
%damage% %actor% %random.5%
@ -1598,6 +1598,7 @@ set actor %random.char%
Room Command Example~
2 c 100
l~
* By Rumble of The Builder Academy tbamud.com 9091
if %cmd.mudcommand% == look && bridge /= %arg%
%send% %actor% As you look at the bridge a small form staggers out from underneath it.
%echoaround% %actor% As %actor.name% peers under the bridge a small form emerges.
@ -2500,7 +2501,7 @@ Puff - Random Advice~
0 ab 12
~
* By Rumble of The Builder Academy tbamud.com 9091
set man %random.197%
set max %random.197%
set text[1] My god! It's full of stars!
set text[2] How'd all those fish get up here?
set text[3] Some people are like Slinkies. Not really good for anything, but still bring a smile to your face when you push them down a flight of stairs.
@ -2712,7 +2713,7 @@ if %arg.room% != %actor.room% || %arg.id% == %actor.id%
end
set inroom %actor.room%
if %arg.inventory(80)%
%echoaround% %actor.name% %actor.name% blasts %arg.name% with %actor.hisher% paintball gun.
%echoaround% %actor% %actor.name% blasts %arg.name% with %actor.hisher% paintball gun.
%send% %actor% You blast %arg.name%.
%send% %arg% You lose!
%purge% %arg.inventory(80)%
@ -2734,7 +2735,7 @@ if %arg.room% != %actor.room% || %arg.id% == %actor.id%
end
set inroom %actor.room%
if %arg.inventory(81)%
%echoaround% %actor.name% %actor.name% blasts %arg.name% with %actor.hisher% paintball gun.
%echoaround% %actor% %actor.name% blasts %arg.name% with %actor.hisher% paintball gun.
%send% %actor% You blast %arg.name%.
%send% %arg% You lose!
%purge% %arg.inventory(81)%

View file

@ -2100,7 +2100,7 @@ if %self.contents.vnum% != 47
%load% obj 47
end
wait 2 sec
%echoaround% %actor.name% A magic eight ball drops from the sky striking %actor.name% on the head.
%echoaround% %actor% A magic eight ball drops from the sky striking %actor.name% on the head.
%send% %actor% A magic eight ball drops from the sky striking you on the head.
%damage% %actor% %random.5%
~
@ -2109,7 +2109,6 @@ Mob Quest Tutorial Example Quest completion - 25~
0 j 100
~
* By Rumble of The Builder Academy tbamud.com 9091
wait 1 sec
if %object.vnum% == 47 && !%actor.varexists(solved_example_quest_zone_0)%
dance
wait 1 sec

View file

@ -22,7 +22,7 @@ g~
* should be looking for 117xx, where xx is 00-99.
if %cmd.mudcommand% == get && ring /= %arg%
%send% %actor% You dig in the dirt and pick up the ring.
%echoaround% %actor.name% %actor.name% gets a ring from the dirt.
%echoaround% %actor% %actor.name% gets a ring from the dirt.
%load% obj 11700 %actor% inv
else
return 0
@ -38,7 +38,7 @@ steal~
* should be looking for 117xx, where xx is 00-99.
if %cmd.mudcommand% == steal && cello /= %arg%
%send% %actor% You steal the cello from the cello player who exclaims 'Hey!'
%echoaround% %actor.name% %actor.name% immaturely nabs the cello from the cello player's hands during the middle of a performance.
%echoaround% %actor% %actor.name% immaturely nabs the cello from the cello player's hands during the middle of a performance.
%load% obj 11708 %actor% inv
end
~
@ -175,7 +175,7 @@ touch~
* should be looking for 117xx, where xx is 00-99.
if %arg% == display
%send% %actor% You browse around the forbidden display and lift up the large sword. A clicking noise is made from the stand it is on, and suddenly, a huge crashing sound comes from the far west!
%echoaround% %actor.name% %actor.name% lifts the sword on the display and a gigantic crashing sound comes from the west!
%echoaround% %actor% %actor.name% lifts the sword on the display and a gigantic crashing sound comes from the west!
%at% 11704 %door% 11704 down flags a
%at% 11758 %load% obj 11737
%send% %actor% Salesman Derresor Maosund punches you in the face with anger for touching the display!!
@ -273,7 +273,7 @@ touch~
* should be looking for 117xx, where xx is 00-99.
if %arg% == nest
%send% %actor% You reach out for the squirrel's nest and touch it, but it falls toward the patch of sand and abruptly falls right through!
%echoaround% %actor.name% %actor.name% tries to reach out and touch the nest, like the 2-year-old %actor.heshe% is. %actor.heshe% drops the nest clumsily but the nest abruptly falls through the strange patch of sand!
%echoaround% %actor% %actor.name% tries to reach out and touch the nest, like the 2-year-old %actor.heshe% is. %actor.heshe% drops the nest clumsily but the nest abruptly falls through the strange patch of sand!
%door% 11755 down flags a
else
%send% %actor% Touch what?
@ -304,7 +304,7 @@ sit~
* should be looking for 117xx, where xx is 00-99.
if %cmd.mudcommand% == sit && %arg% /= stump
%echo% You sit down on the large stump and take a rest.
%echoaround% %actor.name% %actor.name% sits down on a stump and takes a quick rest.
%echoaround% %actor% %actor.name% sits down on a stump and takes a quick rest.
return 0
end
~
@ -318,7 +318,7 @@ pick~
* should be looking for 117xx, where xx is 00-99.
if %arg% == flowers
%send% %actor% You kneel beside the path, pick the flowers, and arrange them in a nice bouquet.
%echoaround% %actor.name% %actor.name% picks the exotic flowers beside the path and makes a bouquet from them.
%echoaround% %actor% %actor.name% picks the exotic flowers beside the path and makes a bouquet from them.
%load% obj 11735 %actor% inv
else
%send% %actor% Pick what??
@ -335,7 +335,7 @@ search~
* should be looking for 117xx, where xx is 00-99.
if %arg% == fireplace
%send% %actor% You search around the fireplace, and bump into the loose tile. Suddenly, the fire goes out, and the wall behind it opens up!
%echoaround% %actor.name% %actor.name% searches the fireplace, and before you know it, the wall to the north opens like a door!
%echoaround% %actor% %actor.name% searches the fireplace, and before you know it, the wall to the north opens like a door!
%door% 11725 north flags a
else
%send% %actor% Search what?

View file

@ -48,7 +48,7 @@ end
1 g 100
~
if %actor.room.vnum% == 11802
%echoaround% %actor.name% %actor.name% takes something from the dollhouse and seems to fade mysteriously away, leaving no trace.
%echoaround% %actor% %actor.name% takes something from the dollhouse and seems to fade mysteriously away, leaving no trace.
%teleport% %actor% 11801
wait 2 s
%send% %actor% You feel a little strange as everything starts to blur, shifting and changing shape until you are completely disorientated.

View file

@ -1835,6 +1835,8 @@ if %actor.varexists(TBA_trial_vnum)% && %actor.level% == 31
%send% %actor% Sedit, Trigedit, Dig, Rclone, Attach, Detach, and Vdelete are not required for your trial vnum.
elseif %cmd.mudcommand% == zpurge
%send% %actor% Zpurge is not required for your trial vnum. Use 'purge' or 'purge item.'
elseif %cmd.mudcommand% == sacrifice
%send% %actor% Sacrifice is disabled until your trial room is completed.
else
return 0
end

View file

@ -181,7 +181,7 @@ free~
2 g 100
~
wait 2 sec
%echoaround% %actor.name% A magic eight ball drops from the sky striking %actor.name% on the head.
%echoaround% %actor% A magic eight ball drops from the sky striking %actor.name% on the head.
%send% %actor% A magic eight ball drops from the sky striking you on the head.
%load% obj 47
%damage% %actor% %random.5%
@ -590,8 +590,8 @@ Mob Leave Example~
~
if (%actor.level% > 10)
say You may not leave here, %actor.name%.
%send% %actor.name% %self.name% prevents you from leaving the room.
%echoaround% %actor.name% As %actor.name% tries to leave the room, %self.name% stops %actor.himher%.
%send% %actor% %self.name% prevents you from leaving the room.
%echoaround% %actor% As %actor.name% tries to leave the room, %self.name% stops %actor.himher%.
return 0
end
~

View file

@ -1287,7 +1287,7 @@ test while~
set stunned %actor.hitp% - 1
%damage% %actor% %stunned%
eval num %random.99% + 1900
%teleport% %actor.name% %num%
%teleport% %actor% %num%
while %actor.inventory%
eval item %actor.inventory%
eval item_to_purge %%actor.inventory(%item.vnum%)%%

View file

@ -190,6 +190,30 @@ extract word5 5 %speech%
extract word6 6 %speech%
say %word6% %word5% %word4% %word3% %word2% %word1%?
~
#209
Open a Chest once per zone reset~
1 c 100
open~
* By Mordecai
if chest /= %arg%
* Verify that the player typed 'open chest'
* Has the player already opened this chest?
context %actor.id%
if %already_opened_chest%
%send% %actor% The chest has already been opened, and emptied.
else
* The first time! OK, open the chest.
%send% %actor% You get a jar of naphthalene from an iron bound chest.
%load% obj 306 %actor% inv
set already_opened_chest 1
global already_opened_chest
return 0
end
else
* Not 'open chest' - pass control back to the command parser
return 0
end
~
#212
Phoenix Rising - 219~
1 c 4

View file

@ -39,7 +39,7 @@ end
~
#23603
Remove Secret Door - 23667~
2 af 100
2 f 100
~
if %self.east%
%door% 23667 east purge 0

View file

@ -90,10 +90,10 @@ Fountain portal - 23855~
en~
if %cmd.mudcommand% == enter && fountain /= %arg%
%send% %actor% You dive into a large fountain.
%echoaround% %actor.name% %actor.name% dives into a large fountain.
%echoaround% %actor% %actor.name% dives into a large fountain.
%teleport% %actor% 23856
%force% %actor% look
%echoaround% %actor.name% %actor.name% emerges from a large fountain.
%echoaround% %actor% %actor.name% emerges from a large fountain.
else
%send% %actor% enter what?!
end
@ -164,10 +164,10 @@ Green portal entrance - 23863~
en~
if %cmd.mudcommand% == enter && green /= %arg%
%send% %actor% You enter a large green portal.
%echoaround% %actor.name% %actor.name% steps into a large green portal.
%echoaround% %actor% %actor.name% steps into a large green portal.
%teleport% %actor% 23864
%force% %actor% look
%echoaround% %actor.name% steps into a large green portal.
%echoaround% %actor% steps into a large green portal.
else
%send% %actor% enter what?!
end
@ -178,10 +178,10 @@ Blue portal entrance - 23861~
en~
if %cmd.mudcommand% == enter && blue /= %arg%
%send% %actor% You enter a large blue portal.
%echoaround% %actor.name% %actor.name% steps into a large blue portal.
%echoaround% %actor% %actor.name% steps into a large blue portal.
%teleport% %actor% 23862
%force% %actor% look
%echoaround% %actor.name% steps through a large blue portal.
%echoaround% %actor% steps through a large blue portal.
else
%send% %actor% enter what?!
end
@ -192,10 +192,10 @@ Red portal entrance - 23862~
en~
if %cmd.mudcommand% == enter && red /= %arg%
%send% %actor% You enter a large blue portal.
%echoaround% %actor.name% %actor.name% steps into a large blue portal.
%echoaround% %actor% %actor.name% steps into a large blue portal.
%teleport% %actor% 23862
%force% %actor% look
%echoaround% %actor.name% steps through a large blue portal.
%echoaround% %actor% steps through a large blue portal.
else
%send% %actor% enter what?!
end

View file

@ -1,98 +1,98 @@
#26700
Harem Master - 26706~
0 b 5
~
emote looks at his minions and growls, 'get to work, bitches!'
~
#26701
Slaves Bow - 26701-26704~
0 e 0
A fat harem master looks at his minions and growls, 'get to work, bitches!'~
wait 1 sec
bow master
~
#26702
Master Needs Assist - 26706~
0 k 10
~
emote screams loudly, 'HELP ME, MY SLAVES!'
~
#26703
Slaves Assist Master - 26701-26704~
0 e 0
A fat harem master screams loudly, 'HELP ME, MY SLAVES!'~
wait %random.6% sec
assist master
~
#26705
Fear Spell - 26710~
0 k 5
~
emote utters the words, 'pabrow'.
%force% %actor% flee
~
#26706
Butcher - 26713~
0 bg 5
~
emote begins sharpening %self.hisher% knife.
~
#26707
Tar Baby Follow - 26708~
0 b 10
~
set actor %random.char%
if %actor.is_pc%
mfollow %actor%
say Ho ho, hee hee, %actor.name% you are sooo funneeee!
%send% %actor% %self.name% looks at you with the cutest expression.
%echoaround% %actor% %self.name% looks at %actor.name% with the cutest expression.
end
~
#26708
Grand Inquisitor - 26719~
0 k 100
5~
switch %random.2%
case 1
emote utters the words, 'ordalaba'.
dg_cast 'energy drain' %actor%
break
case 2
emote evilly grins and snaps his hands.
dg_cast 'animate dead' corpse
order followers assist
break
default
break
done
~
#26709
High Priest of Terror - 26714~
0 k 5
~
switch %random.2%
case 1
emote utters the words, 'ordalaba'.
dg_cast 'charm' %actor
break
case 2
emote waves $s hands in a swirling motion.
dg_cast 'earthquake'
break
default
break
done
~
#26710
Near Death Trap - 26744~
2 g 100
~
* Near Death Trap stuns actor
wait 3 sec
set stunned %actor.hitp%
%damage% %actor% %stunned%
wait 3 sec
%send% %actor% The Gods allow your puny existence to continue.
~
$~
#26700
Harem Master - 26706~
0 b 5
~
emote looks at his minions and growls, 'get to work, bitches!'
~
#26701
Slaves Bow - 26701-26704~
0 e 0
A fat harem master looks at his minions and growls, 'get to work, bitches!'~
wait 1 sec
bow master
~
#26702
Master Needs Assist - 26706~
0 k 10
~
emote screams loudly, 'HELP ME, MY SLAVES!'
~
#26703
Slaves Assist Master - 26701-26704~
0 e 0
A fat harem master screams loudly, 'HELP ME, MY SLAVES!'~
wait %random.6% sec
assist master
~
#26705
Fear Spell - 26710~
0 k 5
~
emote utters the words, 'pabrow'.
%force% %actor% flee
~
#26706
Butcher - 26713~
0 b 10
~
emote begins sharpening %self.hisher% knife.
~
#26707
Tar Baby Follow - 26708~
0 b 10
~
set actor %random.char%
if %actor.is_pc%
mfollow %actor%
say Ho ho, hee hee, %actor.name% you are sooo funneeee!
%send% %actor% %self.name% looks at you with the cutest expression.
%echoaround% %actor% %self.name% looks at %actor.name% with the cutest expression.
end
~
#26708
Grand Inquisitor - 26719~
0 k 100
5~
switch %random.2%
case 1
emote utters the words, 'ordalaba'.
dg_cast 'energy drain' %actor%
break
case 2
emote evilly grins and snaps his hands.
dg_cast 'animate dead' corpse
order followers assist
break
default
break
done
~
#26709
High Priest of Terror - 26714~
0 k 5
~
switch %random.2%
case 1
emote utters the words, 'ordalaba'.
dg_cast 'charm' %actor
break
case 2
emote waves $s hands in a swirling motion.
dg_cast 'earthquake'
break
default
break
done
~
#26710
Near Death Trap - 26744~
2 g 100
~
* Near Death Trap stuns actor
wait 3 sec
set stunned %actor.hitp%
%damage% %actor% %stunned%
wait 3 sec
%send% %actor% The Gods allow your puny existence to continue.
~
$~

View file

@ -337,28 +337,28 @@ rdelete Zn27_shacklepass %actor.id%
2 c 100
kneel~
if %arg%==creature
%send% %actor.name% You kneel before the skeletal creature.
%send% %actor% You kneel before the skeletal creature.
wait 1 s
%send% %actor.name% You suddenly feel very strange as the creature gestures and an eerie mist surrounds you.
%send% %actor% You suddenly feel very strange as the creature gestures and an eerie mist surrounds you.
wait 3 s
%teleport% %actor.name% 2712
%teleport% %actor% 2712
%force% %actor% look
elseif %arg%==skeletal
%send% %actor.name% You kneel before the skeletal creature.
%send% %actor% You kneel before the skeletal creature.
wait 1 s
%send% %actor.name% You suddenly feel very strange as the creature gestures and an eerie mist surrounds you.
%send% %actor% You suddenly feel very strange as the creature gestures and an eerie mist surrounds you.
wait 3 s
%teleport% %actor.name% 2712
%teleport% %actor% 2712
%force% %actor% look
elseif %arg%==circle
%send% %actor.name% You kneel inside the circle.
%send% %actor% You kneel inside the circle.
wait 1 s
%send% %actor.name% You suddenly feel very strange as an eerie mist surrounds you.
%send% %actor% You suddenly feel very strange as an eerie mist surrounds you.
wait 3 s
%teleport% %actor.name% 2712
%teleport% %actor% 2712
%force% %actor% look
else
%send% %actor.name% Kneel to who?
%send% %actor% Kneel to who?
end
~
#2719
@ -530,19 +530,19 @@ if %self.carried_by%
eval actor %self.carried_by%
if %actor.fighting%
eval victim %actor.fighting%
%echoaround% %actor.name% @R%actor.name%'s doll suddenly opens its eyes and causes %victim.name% to shudder in pain.@n
%send% %actor.name% @RYour doll suddenly opens its eyes and causes %victim.name% to shudder in pain.@n
%echoaround% %actor% @R%actor.name%'s doll suddenly opens its eyes and causes %victim.name% to shudder in pain.@n
%send% %actor% @RYour doll suddenly opens its eyes and causes %victim.name% to shudder in pain.@n
%damage% %victim% 100
if (%actor.varexists(zn27_twice)%)
rdelete Zn27_twice %actor.id%
wait 3 s
%send% %actor.name% @RYour doll turns its head to look at you.@n
%send% %actor% @RYour doll turns its head to look at you.@n
wait 1 s
%send% %actor.name% @RYour doll says 'Thrice I have repaid my debt.'@n
%send% %actor% @RYour doll says 'Thrice I have repaid my debt.'@n
wait 1 s
%send% %actor.name% @RYour doll says 'And still I await my freedom.'@n
%send% %actor% @RYour doll says 'And still I await my freedom.'@n
wait 1 s
%send% %actor.name% @RThe doll suddenly transforms into a little girl and runs away.'@n
%send% %actor% @RThe doll suddenly transforms into a little girl and runs away.'@n
rdelete Zn27_offereddoll %actor.id%
%purge% %self%
elseif (%actor.varexists(zn27_once)%)
@ -805,7 +805,7 @@ test door~
enter~
if ("%arg%" == "space")
%send% %actor% A previously concealed space suddenly becomes apparant.
%echoaround% %actor.name% %actor.name% has discovered a hidden space!
%echoaround% %actor% %actor.name% has discovered a hidden space!
%door% 2740 down flags a
%door% 2740 down room 2741
%door% 2740 down description Nothing can be seen within this dark space.
@ -921,7 +921,7 @@ attach %arg%
test act~
1 c 7
look~
%force% %actor.name% %at% 2755 look
%force% %actor% %at% 2755 look
~
#2752
test speech~

View file

@ -1,6 +1,6 @@
#27100
Silk Trader - 27137~
0 bg 100
0 b 10
~
wait 1 sec
switch %random.23%
@ -95,7 +95,7 @@ done
~
#27101
Athos - 27153~
0 bg 50
0 b 10
~
wait 1 sec
switch %random.7%
@ -130,7 +130,7 @@ done
~
#27102
Hangman - 27102~
0 bg 100
0 b 10
~
wait 1 sec
switch %random.5%
@ -162,7 +162,7 @@ done
~
#27103
Butcher - 27142~
0 bg 5
0 b 10
~
wait 1 sec
switch %random.17%
@ -232,7 +232,7 @@ done
~
#27104
Stu - 27166~
0 bg 100
0 b 10
~
wait 1 sec
switch %random.14%
@ -287,7 +287,7 @@ done
~
#27105
Earl of Sundhaven - 27100~
0 bg 100
0 b 10
~
wait 1 sec
switch %random.9%
@ -332,16 +332,16 @@ Blinder - 27161~
~
%echo% %self.name% whispers, 'So, %actor.name%! You wouldst share my affliction!'
wait 1 sec
%send% %actor.name% %self.name%'s frayed cloak blows as he aims a bony finger at you.
%echoaround% %actor.name% %self.name%'s frayed cloak blows as he points at %actor.name%.
%send% %actor% %self.name%'s frayed cloak blows as he aims a bony finger at you.
%echoaround% %actor% %self.name%'s frayed cloak blows as he points at %actor.name%.
wait 1 sec
%send% %actor.name% A flash of pale fire explodes in your face!
%echoaround% %actor.name% A flash of pale fire explodes in %actor.name%'s face!
%send% %actor% A flash of pale fire explodes in your face!
%echoaround% %actor% A flash of pale fire explodes in %actor.name%'s face!
dg_cast 'blindness' %actor%
~
#27107
Idiot - 27115~
0 bg 100
0 b 10
~
wait 1 sec
switch %random.13%

View file

@ -79,38 +79,53 @@ if %actor.class% != cleric || %actor.align% < 350
end
~
#304
Room Enter - test trigger~
2 g 100
~
wait 50
wsend %actor% you enter a room
Room Command - Look at Painting~
2 c 100
l~
* By Rumble of The Builder Academy tbamud.com 9091
if %cmd.mudcommand% == look && painting /= %arg%
%send% %actor% As you stare at the painting the figures seem to start moving and acting out the scenes they portray.
%echoaround% %actor% %actor.name% stares at one of the paintings. A strange look coming over %actor.hisher% face.
else
* If it doesn't match let the command continue. Without a return 0 a player
* will not be able to "look" at anything else.
return 0
end
~
#305
car/cdr test~
0 d 100
*~
*by having * as the arg, it will not always display
* 'test' as %speech.car%
say speech: %speech%
say car: %speech.car%
say cdr: %speech.cdr%
Mob Greet Clothing Check~
0 g 100
~
* By Rumble of The Builder Academy tbamud.com 9091
if %actor.is_pc%
wait 1 sec
if %actor.eq(*)%
eval worn_about %actor.eq(about)%
if %worn_about.vnum% == 326
look %actor.name%
smile
else
say You always bathe in your clothes?
eyebrow
end
else
say at least get a towel, I don't want to see that.
end
end
~
#306
Mob Command - subfield test~
0 c 100
test~
* test to make sure %actor.skill(skillname)% works
say your hide ability is %actor.skill(hide)% percent.
*
* make sure %actor.eq(name)% works too
eval headgear %actor.eq(head)%
if %headgear%
say You have some sort of helmet on
else
say Where's your headgear?
halt
Room Entry - sneak check~
2 g 25
~
* By Rumble of The Builder Academy tbamud.com 9091
if %actor.is_pc%
if %actor.skill(sneak)% > 50
%send% %actor% You walk into the room, not waking any of the clerics.
else
%send% %actor% Your entry into the room wakes a few of the clerics.
%load% mob 340
end
end
say Fix your %headgear.name%
~
#307
Obj Remove - %transform% test~

View file

@ -159,9 +159,10 @@ switch %actor.level%
done
~
#3008
Death Trap~
Near Death Trap~
2 g 100
~
* By Rumble of The Builder Academy tbamud.com 9091
* Near Death Trap stuns actor
set stunned %actor.hitp%
%damage% %actor% %stunned%
@ -199,15 +200,16 @@ end
Stock Fido - 3062, 3066~
0 b 100
~
eval inroom %self.room%
eval item %inroom.contents%
set inroom %self.room%
set item %inroom.contents%
while %item%
* Target the next item in room. In case it is devoured.
set next_item %item.next_in_list%
* Check for a corpse. Corpse on TBA is vnum 65535. Stock is -1.
if %item.vnum% == 65535
if %item.vnum(65535)%
emote savagely devours a corpse.
%purge% %item%
halt
end
set item %next_item%
* Loop back

View file

@ -70,7 +70,7 @@ surrender~
~
#8306
Navigator (8306) Sings~
0 bg 100
0 b 10
~
eval song %random.4%
switch %song%
@ -141,7 +141,7 @@ done
~
#8307
Cabin Boy (8307) Mops~
0 bh 75
0 b 10
~
wait 2s
emote sings, 'Mop, mop, mop, all day long...'
@ -286,7 +286,7 @@ Polly (8313) Learn & Repeat~
~
#8314
Polly (8313) Random Speech~
0 bgq 80
0 b 10
~
wait 1s
emote squawks loudly.
@ -434,7 +434,7 @@ jump~
~
#8393
99 Bottles of Beer (Drunken Pirate: 8309)~
0 bg 100
0 b 10
~
set beers 99
emote clears his throat.

View file

@ -554,9 +554,10 @@ D2
S
#33
Rumble's Room~
The mark of the immature man is that he wants to die nobly for a cause,
while the mark of the mature man is that he wants to live humbly for one.
--Wilhelm Stekel
The only thing necessary for evil to triumph is for good men to do nothing.
-Edmund Burke
~
0 8 0 0 0 0
D0
@ -568,6 +569,10 @@ D2
~
0 0 33
E
undefined~
test
~
E
Catcher Rye~
The mark of the immature man is that he wants to die nobly for a cause,
while the mark of the mature man is that he wants to live humbly for one.
@ -662,10 +667,6 @@ understanding and knowledge can only benefit all nations. We invite all
nations to celebrate with Americans online this Fourth of July. Happy
Birthday, America!
~
E
.test~
can you see this with look around?
~
S
#34
Pool of Images~

View file

@ -1,10 +1,10 @@
#100
Temple of Sanctum~
This large room appears to be inside inside a massive temple dedicated to the
gods of Sanctus. The ceiling is supported by fluted columns and a main spiral
This large room appears to be inside a massive temple dedicated to the gods
of Sanctus. The ceiling is supported by fluted columns and a main spiral
stairwell that leads both up and down. Small rooms adjoin this chamber in all
four cardinal directions. It is here mortals come to stay informed and discuss
their adventures.
their adventures.
~
1 28 0 0 0 0
D0
@ -93,19 +93,19 @@ D5
~
0 0 100
E
statue~
As you examine the statues more closely you realize they must resemble the
two gods responsible for the creation and ongoing protection of Sanctus, Ferret
and Rumble. They both radiate a strength and power that resembles the solid
white marble they were crafted from.
~
E
altar~
The altar is made from black granite and has been carved into a small basin
with a high back. Almost as if it was meant to be some sort of seat.
Inscriptions in some foreign tongue are written on every square inch of the
altar. You wonder what they must say and who could have written it.
~
E
statue~
As you examine the statues more closely you realize they must resemble the
two gods responsible for the creation and ongoing protection of Sanctus, Ferret
and Rumble. They both radiate a strength and power that resembles the solid
white marble they were crafted from.
~
S
T 158
T 163
@ -241,17 +241,17 @@ D5
~
0 0 142
E
table~
The table is made out of cherry. It is worn from years of use. The glass
top allows for an excellent view of the map protected within.
~
E
map~
The map is a geographic representation of Sanctus. Not even really a map,
more of a scaled model. The walls and buildings of the city are raised higher
than the rest of the map to give it a third dimension. Small soldiers are
scattered around the top of the table to help the War Master place his men.
~
E
table~
The table is made out of cherry. It is worn from years of use. The glass
top allows for an excellent view of the map protected within.
~
S
#109
@ -385,18 +385,18 @@ D1
~
0 0 100
E
hole~
You can look out over the inner wall to the western side of Sanctus. The
smell of charred human remains and smoldering plaster makes your eyes water so
it is difficult to see much else through the tiny hole.
~
E
man silhouette~
The distinct outline of a human body that must have taken the brunt of the
blast when the portal imploded. You wonder what or who it might have been.
You can still see pieces of cloth and bone buried deeply into the wall inside
the shadow of the unlucky man.
~
E
hole~
You can look out over the inner wall to the western side of Sanctus. The
smell of charred human remains and smoldering plaster makes your eyes water so
it is difficult to see much else through the tiny hole.
~
S
#117
Travelling Room~
@ -532,19 +532,19 @@ D2
~
0 0 129
E
table desk chair~
The table, desk, and chair are made from solid oak of the highest quality.
A thin goose down mattress and pillow are the only comfortable looking items in
the room. The desk is bare and all the drawers are empty. It is as if no one
even lives here.
~
E
shrine~
A beutiful shrine. It has two white marble figures facing each other with a
painting of the city below them. The two figures seem to be looking down at
the city with looks of worry and hopelessness. An unlit candle and mirror lay
on the floor beside the small shrine.
~
E
table desk chair~
The table, desk, and chair are made from solid oak of the highest quality.
A thin goose down mattress and pillow are the only comfortable looking items in
the room. The desk is bare and all the drawers are empty. It is as if no one
even lives here.
~
S
#125
Plane of the Magi~
@ -818,14 +818,10 @@ D0
~
0 0 128
E
window~
Overlooking the western gate you can see the shimmering protective dome.
You hope it lasts, peace and tranquility is a good thing.
~
E
chair~
It's just your standard wooden chair. Uncomfortable and only real
usefulness would be as firewood.
bed~
The bed is made of a sturdy pine. A thin mattress covered in a white sheet
with a down pillow overlaying it. The mattress is too thin to hold anything of
value.
~
E
desk~
@ -835,10 +831,14 @@ centered on the top of the desk. The desk has three drawers. All of them are
empty.
~
E
bed~
The bed is made of a sturdy pine. A thin mattress covered in a white sheet
with a down pillow overlaying it. The mattress is too thin to hold anything of
value.
chair~
It's just your standard wooden chair. Uncomfortable and only real
usefulness would be as firewood.
~
E
window~
Overlooking the western gate you can see the shimmering protective dome.
You hope it lasts, peace and tranquility is a good thing.
~
S
#136

View file

@ -986,12 +986,15 @@ D3
S
#2259
Stairs~
A crumbling stairwell leads up down into darkness. The steps are cracked
and fall apart when you put any sizeable force upon them. They seem
treacherous, but passable. An empty hallway to the west looks far more
inviting.
A crumbling stairwell leads down into darkness. The steps are cracked and
fall apart when you put any sizeable force upon them. They seem treacherous,
but passable. An empty hallway to the west looks far more inviting.
~
22 8 0 0 0 0
D1
~
~
0 0 -1
D3
~
~

View file

@ -106,7 +106,8 @@ S
An Elegant Hall~
Drawings of ancient battles in which the Magi slaughter their foes line both
sides of the hallway. Depicted on these drawings are a myriad of creatures
ranging from ogres, orcs, goblins, and demons to humans, elves, and dwarves.
ranging from ogres, orcs, goblins, and demons to humans, elves, and dwarves.
One of the paintings looks oddly familiar.
~
3 8 0 0 0 0
D0
@ -122,6 +123,7 @@ D2
~
0 0 319
S
T 304
#305
The Baths~
The air is musky and hard to breathe due to the hot steam wafting from the
@ -160,10 +162,11 @@ D2
~
0 0 321
S
T 306
#307
A Long Hallway~
The barren walls and floor would seem odd anywhere but here as the Clerics of
Sanctus consider decorations, desires, or any form od unnecessary wants to be
Sanctus consider decorations, desires, or any form of unnecessary wants to be
blasphemous. They dedicate their lives to helping others, never themselves, and
would all sacrifice their lives for that principle.
~
@ -1367,7 +1370,7 @@ and well kept. A single door leads down to the shop below.
D5
~
door~
2 0 225
1 0 225
E
sky winds~
Cold winds plunge ceaselessly at you from the dark, cloudless sky.

View file

@ -840,11 +840,9 @@ There is a strange hole in the rock wall, circular in shape.
E
sign signpost~
The signpost reads in ancient runic script:
@n
The Penultimate Tower of Wizardry was rumored to exist, once, just
down this road... who knows if this is true? For though many have
went on to see, none have returned to claim it true...
@n
--Mercutio the Bard of the Realm
~
E

View file

@ -33,7 +33,7 @@ class range. Remove the extra '0' if you don't need/want it.
Here are some recommended specials for the mobs:
#04 should be given a sleep spell to cast
#47 should be given an undead process.
*
Zone 301 is linked to the following zones:
302 Campus at 30123 (south) ---> 30236
302 Campus at 30124 (north) ---> 30250
@ -50,6 +50,7 @@ Zone 301 is linked to the following zones:
302 Campus at 30136 (east ) ---> 30266
302 Campus at 30140 (south) ---> 30260
302 Campus at 30142 (north) ---> 30201
302 Campus at 30142 (east ) ---> 30203
302 Campus at 30199 (up ) ---> 30200
~

View file

@ -706,9 +706,9 @@ S
The Sacrificial Pit~
As you climb down into the pit, thousands of spiders cover you, tearing
your fragile body to shreds.
@R
Lloth thanks you for your sacrifice.
@n
~
51 12 0 0 0 0
S

View file

@ -27,7 +27,6 @@ Sand as far as the eye can see.
E
pyramid~
The massive pyramid rises out of the sand, a monument to long-dead pharoahs.
~
S
#5301
@ -51,7 +50,6 @@ The steep slope of the pyramid rises up before you.
E
pyramid~
You wonder how anyone could have built such a massive thing out in this heat.
~
S
#5302
@ -84,7 +82,6 @@ Far below you are the burning sands of the desert.
E
pyramid~
You wonder how anyone could have built such a massive thing out in this heat.
~
S
#5303
@ -117,7 +114,6 @@ This side of the pyramid has a dangerous drop before the sandy floor.
E
pyramid~
You wonder how anyone could have built such a massive thing out in this heat.
~
S
#5304
@ -150,7 +146,6 @@ This side of the pyramid has a dangerous drop before the sandy floor.
E
pyramid~
You wonder how anyone could have built such a massive thing out in this heat.
~
S
#5305
@ -184,7 +179,6 @@ This side of the pyramid has a dangerous drop before the sandy floor.
E
pyramid~
You wonder how anyone could have built such a massive thing out in this heat.
~
S
#5306
@ -226,9 +220,7 @@ stones~
E
plaque~
The plaque reads:
The Great Pyramid
Created by the Andersen work crew.
~
E
@ -242,12 +234,9 @@ S
On The Dangerous Stones~
Here the elements have carved away at the sides of the pyramid quite a
bit. You aren't so sure of your footing anymore...
Suddenly the wind picks up, and you lose your balance!
You tumble down the side of the pyramid, and fall to your death!
SPLAT.
Ouch.
~
53 12 0 0 0 0
@ -456,13 +445,11 @@ The crawlway gets a little larger to the north.
S
#5317
A Slippery Hole~
The sides of this hole are slippery-smooth. You lower yourself in, and
The sides of this hole are slippery-smooth. You lower yourself in, and
proceed to move downward... when suddenly you lose your purchase!
@
You fall for what seems like an eternity, and smash into the stones below...
@
Under The Hole
You are in a small chamber underneath the slippery hole, far below
the pyramid now. The floor is strewn with bones. To the south is a
@ -482,7 +469,7 @@ The hole looks far too slippery to climb back up.
E
bones~
The bones have whitened and cracked in the dry air, apparently the remains of
adventurers, thieves, and creatures that did not survive the fall.
adventurers, thieves, and creatures that did not survive the fall.
~
S
#5318

View file

@ -471,9 +471,8 @@ D0
E
sign~
The sign reads:
@
Closed for renovations
~
S
#5528
@ -505,13 +504,12 @@ D3
E
note~
The note reads:
@
LIST : gives you a list of items for sale.
VALUE : tells you how much an item is worth to Abdul
SELL : sells an item to Abdul for a generous sum
BUY : Abdul's FAVORITE command lets you have an item for his low,
low price.
~
S
#5530
@ -619,11 +617,10 @@ D0
E
note~
The note simply reads:
@
READ THE NOTE IN THE ARMOURY
@
Igor.
~
S
#5537
@ -875,9 +872,9 @@ D1
E
banner~
=====================================================================
@
H A P P Y B I R T H D A Y T O U S
@
=====================================================================
~
S
@ -1076,9 +1073,7 @@ D3
E
plaque~
Engraved on the plaque are the following words:
The Holy Shrine of Allah
~
S
#5566
@ -1282,7 +1277,6 @@ the walls of the palace from the building itself.
E
mirror~
You see a the fighting image of some armor clad humanoid wielding a weapon.
~
S
#5577
@ -1362,13 +1356,10 @@ D3
E
plaque door~
The plaque on the door reads:
THE ART EXHIBIT
of
NEW THALOS
- the management is not responsible for lost items.
~
S
#5580

View file

@ -1,7 +1,7 @@
#0
Rumble~
The Builder Academy Zone~
0 99 1 2
0 99 10 2
D 0 89 4 2 (The Prison Cell Corridor)
M 0 31 1 89 (the Commissar)
G 1 68 99 -1 (the Commissar's key)

View file

@ -2,10 +2,10 @@
CircleMUD~
God Simplex~
1200 1299 10 0
R 0 1204 3098 -1 (a holy bulletin board)
O 0 3098 99 1204 (a holy bulletin board)
M 0 1212 1 1200 (the scoreboard mob)
O 0 1212 1 1200 (a game console)
R 0 1204 3098 -1 (a holy bulletin board)
O 0 3098 99 1204 (a holy bulletin board)
R 0 1293 1227 -1 (a staff bulletin board)
O 0 1227 99 1293 (a staff bulletin board)
R 0 1291 1226 -1 (a builder's bulletin board)

View file

@ -2,6 +2,12 @@
Rumble~
Sanctus III~
300 399 30 2
M 0 301 1 305 (the naked magi)
E 1 326 99 12 (a white towel)
M 0 130 3 305 (the maid)
E 1 155 99 17 (a feather duster)
R 0 305 326 -1 (a white towel)
O 0 326 99 305 (a white towel)
R 0 367 308 -1 (a clay jug)
O 0 308 99 367 (a clay jug)
O 0 335 1 334 (the large fountain)
@ -80,8 +86,6 @@ E 1 26306 99 5 (a flowered dress)
M 0 179 3 317 (the recruit)
M 0 194 3 314 (the mouse)
M 0 193 3 312 (the dove)
M 0 130 3 305 (the maid)
E 1 155 99 17 (a feather duster)
M 0 105 3 315 (the balding man)
E 1 31612 99 6 (a pair of reading glasses)
M 0 100 3 309 (the young man)

View file

@ -2222,19 +2222,7 @@ ACMD(do_commands)
}
/* display commands list in a nice columnized format */
column_list(buf + strlen(buf), sizeof(buf) - strlen(buf),
/* subtract 1 or 2 lines (the pager adds 1 or 2) */
/* also "skip" a line since we printed a header above */
GET_PAGE_LENGTH(ch) - (PRF_FLAGGED(ch, PRF_COMPACT) ? 1 : 2), 1,
/* 7 columns; no == how many elements, 0 offset */
7, commands, no, 0, "$11l");
if (overflow < 0) {
log("SYSERR: Too many commands for do_commands; increase size of *commands array.");
strncat(buf, "\r\n** OVERFLOW **\r\n", sizeof(buf) - strlen(buf));
}
page_string(ch->desc, buf, TRUE);
column_list(ch, 7, commands, no, FALSE);
}
void free_history(struct char_data *ch, int type)

View file

@ -1918,8 +1918,8 @@ const char *title_male(int chclass, int level)
case 20: return "the Cut-Throat";
/* no one ever thought up these titles 21-30 */
case LVL_IMMORT: return "the Immortal Assassin";
case LVL_GOD: return "the Demi God of thieves";
case LVL_GRGOD: return "the God of thieves and tradesmen";
case LVL_GOD: return "the Demi God of Thieves";
case LVL_GRGOD: return "the God of Thieves and Tradesmen";
default: return "the Thief";
}
break;
@ -1949,7 +1949,7 @@ const char *title_male(int chclass, int level)
/* no one ever thought up these titles 21-30 */
case LVL_IMMORT: return "the Immortal Warlord";
case LVL_GOD: return "the Extirpator";
case LVL_GRGOD: return "the God of war";
case LVL_GRGOD: return "the God of War";
default: return "the Warrior";
}
break;
@ -2033,7 +2033,7 @@ const char *title_female(int chclass, int level)
/* no one ever thought up these titles 21-30 */
case LVL_IMMORT: return "the Immortal Priestess";
case LVL_GOD: return "the Inquisitress";
case LVL_GRGOD: return "the Goddess of good and evil";
case LVL_GRGOD: return "the Goddess of Good and Evil";
default: return "the Cleric";
}
break;
@ -2062,8 +2062,8 @@ const char *title_female(int chclass, int level)
case 20: return "the Cut-Throat";
/* no one ever thought up these titles 21-30 */
case LVL_IMMORT: return "the Immortal Assassin";
case LVL_GOD: return "the Demi Goddess of thieves";
case LVL_GRGOD: return "the Goddess of thieves and tradesmen";
case LVL_GOD: return "the Demi Goddess of Thieves";
case LVL_GRGOD: return "the Goddess of Thieves and Tradesmen";
default: return "the Thief";
}
break;
@ -2093,7 +2093,7 @@ const char *title_female(int chclass, int level)
/* no one ever thought up these titles 21-30 */
case LVL_IMMORT: return "the Immortal Lady of War";
case LVL_GOD: return "the Queen of Destruction";
case LVL_GRGOD: return "the Goddess of war";
case LVL_GRGOD: return "the Goddess of War";
default: return "the Warrior";
}
break;

View file

@ -24,7 +24,7 @@
* @todo cpp_extern isn't needed here (or anywhere) as the extern reserved word
* works correctly with C compilers (at least in my Experience)
* Jeremy Osborne 1/28/2008 */
cpp_extern const char *tbamud_version = "tbaMUD 3.57";
cpp_extern const char *tbamud_version = "tbaMUD 3.58";
/* strings corresponding to ordinals/bitvectors in structs.h */
/* (Note: strings for class definitions in class.c instead of here) */

View file

@ -864,7 +864,7 @@ void find_replacement(void *go, struct script_data *sc, trig_data *trig,
if (IS_NPC(c))
strcpy(str, "0");
else {
if ((GET_QUEST(c) != NOTHING) && (real_quest(GET_QUEST(c)) == NOTHING))
if ((GET_QUEST(c) != NOTHING) && (real_quest(GET_QUEST(c)) != NOTHING))
snprintf(str, slen, "%d", GET_QUEST(c));
else
strcpy(str, "0");

View file

@ -82,6 +82,7 @@ void free_quest(struct aq_data *quest)
int add_quest(struct aq_data *nqst)
{
qst_rnum rnum;
mob_rnum qmrnum;
zone_rnum rznum = real_zone_by_thing(nqst->vnum);
/* The quest already exists, just update it. */
@ -105,12 +106,13 @@ int add_quest(struct aq_data *nqst)
}
copy_quest(&aquest_table[rnum], nqst, FALSE);
}
qmrnum = real_mobile(QST_MASTER(rnum));
/* Make sure we assign spec procs to the questmaster */
if (QST_MASTER(rnum) != NOBODY && mob_index[QST_MASTER(rnum)].func &&
mob_index[QST_MASTER(rnum)].func != questmaster)
QST_FUNC(rnum) = mob_index[QST_MASTER(rnum)].func;
if(QST_MASTER(rnum) != NOBODY)
mob_index[QST_MASTER(rnum)].func = questmaster;
if (qmrnum != NOBODY && mob_index[qmrnum].func &&
mob_index[qmrnum].func != questmaster)
QST_FUNC(rnum) = mob_index[qmrnum].func;
if(qmrnum != NOBODY)
mob_index[qmrnum].func = questmaster;
/* And make sure we save the updated quest information to disk */
if (rznum != NOWHERE)
@ -128,7 +130,7 @@ int delete_quest(qst_rnum rnum)
{
qst_rnum i;
zone_rnum rznum;
mob_rnum qm = QST_MASTER(rnum);
mob_vnum qm = QST_MASTER(rnum);
SPECIAL (*tempfunc);
int quests_remaining = 0;
@ -235,7 +237,7 @@ int save_quests(zone_rnum zone_num)
quest_done, STRING_TERMINATOR,
quest_quit, STRING_TERMINATOR,
QST_TYPE(rnum),
QST_MASTER(rnum) == NOBODY ? -1 : mob_index[QST_MASTER(rnum)].vnum,
QST_MASTER(rnum) == NOBODY ? -1 : QST_MASTER(rnum),
quest_flags,
QST_TARGET(rnum) == NOTHING ? -1 : QST_TARGET(rnum),
QST_PREV(rnum) == NOTHING ? -1 : QST_PREV(rnum),

View file

@ -340,10 +340,7 @@ static void medit_disp_mob_flags(struct descriptor_data *d)
get_char_colors(d->character);
clear_screen(d);
column_list(buf, sizeof(buf), 0, 0,
2, action_bits, NUM_MOB_FLAGS, 0,
"%s$2i%s) $20l", grn, nrm);
write_to_output(d, "%s", buf);
column_list(d->character, 2, action_bits, NUM_MOB_FLAGS, TRUE);
sprintbitarray(MOB_FLAGS(OLC_MOB(d)), action_bits, AF_ARRAY_MAX, buf);
write_to_output(d, "\r\nCurrent flags : %s%s%s\r\nEnter mob flags (0 to quit) : ",
@ -357,11 +354,9 @@ static void medit_disp_aff_flags(struct descriptor_data *d)
get_char_colors(d->character);
clear_screen(d);
column_list(buf, sizeof(buf), 0, 0,
2, affected_bits, NUM_AFF_FLAGS, 1,
"%s$2i%s) $20l", grn, nrm);
write_to_output(d, "%s", buf);
/* +1 since AFF_FLAGS don't start at 0. */
column_list(d->character, 2, affected_bits + 1, NUM_AFF_FLAGS, TRUE);
sprintbitarray(AFF_FLAGS(OLC_MOB(d)), affected_bits, AF_ARRAY_MAX, buf);
write_to_output(d, "\r\nCurrent flags : %s%s%s\r\nEnter aff flags (0 to quit) : ",

View file

@ -90,7 +90,7 @@ void mobile_activity(void)
}
/* Aggressive Mobs */
if (MOB_FLAGGED(ch, MOB_HELPER) && (!AFF_FLAGGED(ch, AFF_BLIND) || !AFF_FLAGGED(ch, AFF_CHARM))) {
if (!MOB_FLAGGED(ch, MOB_HELPER) && (!AFF_FLAGGED(ch, AFF_BLIND) || !AFF_FLAGGED(ch, AFF_CHARM))) {
found = FALSE;
for (vict = world[IN_ROOM(ch)].people; vict && !found; vict = vict->next_in_room) {
if (IS_NPC(vict) || !CAN_SEE(ch, vict) || PRF_FLAGGED(vict, PRF_NOHASSLE))

View file

@ -329,8 +329,8 @@ static void qedit_disp_menu(struct descriptor_data *d)
quest_flags,
quest_types[quest->type],
quest->type == AQ_OBJ_RETURN ? buf2 : "",
quest->qm == NOBODY ? -1 : mob_index[quest->qm].vnum,
quest->qm == NOBODY ? "none" : mob_proto[quest->qm].player.short_descr,
quest->qm == NOBODY ? -1 : quest->qm,
real_mobile(quest->qm) == NOBODY ? "Invalid Mob" : mob_proto[(real_mobile(quest->qm))].player.short_descr,
quest->target == NOBODY ? -1 : quest->target, targetname,
quest->value[6],
quest->value[0], quest->value[1],
@ -605,7 +605,7 @@ void qedit_parse(struct descriptor_data *d, char *arg)
break;
case QEDIT_QUESTMASTER:
if (number != -1)
if ((number = real_mobile(number)) == NOBODY) {
if (real_mobile(number) == NOBODY) {
write_to_output(d, "That mobile does not exist, try again : ");
return;
}

View file

@ -81,7 +81,7 @@ int is_complete(struct char_data *ch, qst_vnum vnum)
return FALSE;
}
qst_vnum find_quest_by_qmnum(struct char_data *ch, mob_rnum qm, int num)
qst_vnum find_quest_by_qmnum(struct char_data *ch, mob_vnum qm, int num)
{
qst_rnum rnum;
int found=0;
@ -166,7 +166,7 @@ void parse_quest(FILE *quest_f, int nr)
exit(1);
}
aquest_table[i].type = t[0];
aquest_table[i].qm = real_mobile(t[1]);
aquest_table[i].qm = (real_mobile(t[1]) == NOBODY) ? NOBODY : t[1];
aquest_table[i].flags = asciiflag_conv(f1);
aquest_table[i].target = (t[2] == -1) ? NOTHING : t[2];
aquest_table[i].prev_quest = (t[3] == -1) ? NOTHING : t[3];
@ -211,6 +211,7 @@ void parse_quest(FILE *quest_f, int nr)
void assign_the_quests(void)
{
qst_rnum rnum;
mob_rnum mrnum;
cmd_tell = find_command("tell");
@ -219,10 +220,14 @@ void assign_the_quests(void)
log("SYSERR: Quest #%d has no questmaster specified.", QST_NUM(rnum));
continue;
}
if ((mrnum = real_mobile(QST_MASTER(rnum))) == NOBODY) {
log("SYSERR: Quest #%d has an invalid questmaster.", QST_NUM(rnum));
continue;
}
if (mob_index[QST_MASTER(rnum)].func &&
mob_index[QST_MASTER(rnum)].func != questmaster)
QST_FUNC(rnum) = mob_index[QST_MASTER(rnum)].func;
mob_index[QST_MASTER(rnum)].func = questmaster;
mob_index[(mrnum)].func != questmaster)
QST_FUNC(rnum) = mob_index[(mrnum)].func;
mob_index[(mrnum)].func = questmaster;
}
}
@ -439,7 +444,7 @@ void list_quests(struct char_data *ch, zone_rnum zone, qst_vnum vmin, qst_vnum v
if (QST_NUM(rnum) >= bottom && QST_NUM(rnum) <= top)
send_to_char(ch, "@g%4d@n) [@g%-5d@n] @c%-44.44s@n @y[%5d]@n\r\n",
++counter, QST_NUM(rnum), QST_NAME(rnum),
QST_MASTER(rnum) == NOBODY ? 0 : mob_index[QST_MASTER(rnum)].vnum);
QST_MASTER(rnum) == NOBODY ? 0 : QST_MASTER(rnum));
if (!counter)
send_to_char(ch, "None found.\r\n");
}
@ -455,7 +460,7 @@ void quest_hist(struct char_data *ch)
for (i = 0; i < GET_NUM_QUESTS(ch); i++) {
if ((rnum = real_quest(ch->player_specials->saved.completed_quests[i])) != NOTHING)
send_to_char(ch, "@g%4d@n) @c%-52.52s@n @y%s@n\r\n",
++counter, QST_DESC(rnum), GET_NAME(&mob_proto[QST_MASTER(rnum)]));
++counter, QST_DESC(rnum), (real_mobile(QST_MASTER(rnum)) == NOBODY) ? "Unknown" : GET_NAME(&mob_proto[(real_mobile(QST_MASTER(rnum)))]));
else
send_to_char(ch,
"@g%4d@n) @cUnknown Quest (it no longer exists)@n\r\n", ++counter);
@ -598,7 +603,7 @@ void quest_progress(struct char_data *ch)
}
}
void quest_show(struct char_data *ch, mob_rnum qm)
void quest_show(struct char_data *ch, mob_vnum qm)
{
qst_rnum rnum;
int counter = 0;
@ -619,6 +624,7 @@ void quest_show(struct char_data *ch, mob_rnum qm)
void quest_stat(struct char_data *ch, char argument[MAX_STRING_LENGTH])
{
qst_rnum rnum;
mob_rnum qmrnum;
char buf[MAX_STRING_LENGTH];
char targetname[MAX_STRING_LENGTH];
@ -657,6 +663,7 @@ void quest_stat(struct char_data *ch, char argument[MAX_STRING_LENGTH])
snprintf(targetname, sizeof(targetname), "Unknown");
break;
}
qmrnum = real_mobile(QST_MASTER(rnum));
send_to_char(ch,
"VNum : [@y%5d@n], RNum: [@y%5d@n] -- Questmaster: [@y%5d@n] @y%s@n\r\n"
"Name : @y%s@n\r\n"
@ -769,7 +776,7 @@ SPECIAL(questmaster)
/* check that qm mob has quests assigned */
for (rnum = 0; (rnum < total_quests &&
QST_MASTER(rnum) != GET_MOB_RNUM(qm)) ; rnum ++);
QST_MASTER(rnum) != GET_MOB_VNUM(qm)) ; rnum ++);
if (rnum >= total_quests)
return FALSE; /* No quests for this mob */
else if (QST_FUNC(rnum) && (QST_FUNC(rnum) (ch, me, cmd, argument)))
@ -784,7 +791,7 @@ SPECIAL(questmaster)
switch (tp) {
case SCMD_QUEST_LIST:
if (!*arg2)
quest_show(ch, GET_MOB_RNUM(qm));
quest_show(ch, GET_MOB_VNUM(qm));
else
quest_list(ch, qm, arg2);
break;

View file

@ -44,7 +44,7 @@ struct aq_data {
char *quit; /* Message displayed when quit quest */
long flags; /* Flags (repeatable, etc */
int type; /* Quest type */
mob_rnum qm; /* questmaster offering quest */
mob_vnum qm; /* questmaster offering quest */
int target; /* Target value */
obj_vnum prereq; /* Object required to undertake quest */
int value[7]; /* Quest values */

View file

@ -19,7 +19,7 @@
* on an older version. You are supposed to compare this with the macro
* TBAMUD_VERSION() in utils.h.
* It is read as Major/Minor/Patchlevel - MMmmPP */
#define _TBAMUD 0x030570
#define _TBAMUD 0x030580
/** If you want equipment to be automatically equipped to the same place
* it was when players rented, set the define below to 1 because

View file

@ -16,6 +16,7 @@
#include "utils.h"
#include "db.h"
#include "comm.h"
#include "modify.h"
#include "screen.h"
#include "spells.h"
#include "handler.h"
@ -932,194 +933,65 @@ void char_from_furniture(struct char_data *ch)
}
/* Helper function for column_list. */
void process_column_list_format(char **out_buffer, const char *format,
int buf_left, int index_data, const char *item)
{
/* Initialize the index format with a % */
char index_format[80] = {'%'};
int i;
/* column_list
The list is output in a fixed format, and only the number of columns can be adjusted
This function will output the list to the player
Vars:
ch - the player
num_cols - the desired number of columns
list - a pointer to a list of strings
list_length - So we can work with lists that don't end with /n
show_nums - when set to TRUE, it will show a number before the list entry.
*/
void column_list(struct char_data *ch, int num_cols, const char **list, int list_length, bool show_nums)
{
int num_per_col, col_width,r,c,i, offset=0, len=0, temp_len, max_len=0;
char buf[MAX_STRING_LENGTH];
/* Copy the format to the output buffer character by character. */
while (*format && buf_left >= 2) {
/* Ensure that the number of columns is in the range 1-10 */
num_cols = MIN(MAX(num_cols,1), 10);
/* A '$' signifies a 'control-code'. */
if (*format == '$') {
++format;
/* Work out the longest list item */
for (i=0; i<list_length; i++)
if (max_len < strlen(list[i]))
max_len = strlen(list[i]);
/*
* Begin by assuming the caller has supplied a number here
* (something that looks like $3i). Then collect this number
* into the index_format after the %.
*/
i = 1;
while (isdigit(*format) && i < 78)
index_format[i++] = *(format++);
index_format[i++] = 'd';
index_format[i] = '\0';
/* Calculate the width of each column */
col_width = (GET_SCREEN_WIDTH(ch)) / num_cols;
if (show_nums) col_width-=4;
/* There may not be enough space left for the index. */
if (buf_left < 12)
break;
if (col_width < max_len)
log("Warning: columns too narrow for correct output to %s in simple_column_list (utils.c)", GET_NAME(ch));
/*
* Okay, output the current index using the index format
* we already constructed above.
*/
else if (*format == 'i')
*out_buffer += sprintf(*out_buffer, index_format, index_data);
/* Calculate how many list items there should be per column */
num_per_col = (list_length / num_cols) + ((list_length % num_cols) ? 1 : 0);
/*
* Or output the current list item. Use part of the
* index format collected above to decide how wide the
* list item should be displayed.
*/
else if (*format == 'l') {
/* skip the %. atoi ignores the d too */
i = atoi(index_format + 1);
/* if no width, set to -1 (any width) */
if (!i) --i;
/* Fill 'buf' with the columnised list */
for (r=0; r<num_per_col; r++)
{
for (c=0; c<num_cols; c++)
{
offset = (c*num_per_col)+r;
if (offset < list_length)
{
if (show_nums)
temp_len = snprintf(buf+len, sizeof(buf) - len, "%2d) %-*s", offset+1, col_width, list[(offset)]);
else
temp_len = snprintf(buf+len, sizeof(buf) - len, "%-*s", col_width, list[(offset)]);
len += temp_len;
}
}
temp_len = snprintf(buf+len, sizeof(buf) - len, "\r\n");
len += temp_len;
}
/* copy the list item to the output buffer */
while (*item && buf_left >= 2 && i != 0) {
*((*out_buffer)++) = *(item++);
--buf_left;
--i;
}
if (len >= sizeof(buf))
snprintf((buf + MAX_STRING_LENGTH) - 22, 22, "\r\n*** OVERFLOW ***\r\n");
/* if width was specified above, pad the list item */
while (i-- > 0 && buf_left >= 2) {
*((*out_buffer)++) = ' ';
--buf_left;
}
}
/* Send the list to the player */
page_string(ch->desc, buf, TRUE);
}
/* Or just output a $ */
else if (*format == '$') {
*((*out_buffer)++) = '$';
--buf_left;
}
/* Whoa, at the end of the format already? */
else if (!*format)
break;
++format;
}
/* Not a '$' control code. Simply copy the character. */
else {
*((*out_buffer)++) = *(format++);
--buf_left;
}
}
/* Make sure it's nul-terminated. */
**out_buffer = '\0';
}
/**
* Takes a list of strings and a display format, and formats them
* in a list by column (sequential items in the list are aligned
* vertically, then horizontally). This function supports varargs
* for the format string that describes how each item should look.
* @param[out] out_buffer The buffer to write to.
* @param[in] buf_left The size of the buffer.
* @param[in] page_length How many lines per page? 0 means no paging.
* @param[in] skip_lines How many lines to skip on the first page?
* @param[in] columns How many columns should be displayed?
* @param[in] list The array of strings to format.
* @param[in] list_length How many elements are in the list? We won't rely on
* lists ending with a newline element.
* @param[in] list_offset Is the list offset and by how much? For instance,
* affect flags are offset by one when displayed in medit.
* @param[in] format The format string for displaying each
* item in the list. Use "$#i" and "$#l" in the format string to determine
* how wide the index position and list item should be. For instance,
* "$2i $20l" would be equivalent to a printf "%2d %-20.20s".
* @param[in] ... Additional args for formatting the list display.
*/
void column_list(char *out_buffer, int buf_left, int page_length,
int skip_lines, int columns, const char **list,
int list_length, int list_offset,
const char *format, ...)
{
int i, j = 0, k, rows, visited = 0;
char line[80];
va_list args;
--buf_left;
/* We only need to parse the given format string for %'s once. */
va_start(args, format);
vsnprintf(line, sizeof(line), format, args);
va_end(args);
/* A page_length <= 0 means don't page output. */
if (page_length <= 0)
page_length = list_length;
/*
* The list index jumps around, since we want to display
* the list items by columns. For instance, in the first
* row, the second column's item will be approximately
* page_length positions in the list away from the item
* in the first column of the same row.
* So we use this macro.
*/
#define LIST_INDEX (page_length * columns * k + rows * j + i - \
(k == 0 ? 0 : skip_lines * columns))
/* Traverse by page... */
for (k = 0; k <= list_length / (page_length * columns); ++k) {
rows = MIN(page_length, (list_length - visited) / columns + 1);
if (k == 0)
rows -= skip_lines;
/* And then by row... */
for (i = 0; i < rows; ++i) {
/* And then by column... */
for (j = 0; j < columns; ++j) {
/* If the index is too high, break out. */
if (LIST_INDEX >= list_length)
break;
/*
* If space still remains in the buffer, process the next
* list item and print it to the buffer. Otherwise,
* complain about an overflow.
*/
if (buf_left > sizeof(line)) {
/*
* Now the real magic. Replace $i and $l with the index
* and list item. Don't let each displayed list item be wider
* than (an arbitrary) 80 characters. Also, allow a list
* offset in case we want to skip the first list item or
* something (like for affection flags).
*/
process_column_list_format(&out_buffer, line, sizeof(line),
LIST_INDEX + 1,
list[LIST_INDEX + list_offset]);
++visited;
}
else {
strcpy(out_buffer + (buf_left < 17 ? buf_left - 17 : 0),
"\r\n**OVERFLOW**\r\n");
return;
}
}
/*
* We're at the end of a row. Print a newline, advance the
* buffer, and decrement the amount of space left in the buffer.
*/
strcpy(out_buffer, "\r\n");
out_buffer += 2;
buf_left -= 2;
}
}
#undef LIST_INDEX
}
/**
* Search through a string array of flags for a particular flag.

View file

@ -58,10 +58,7 @@ int levenshtein_distance(const char *s1, const char *s2);
struct time_info_data *real_time_passed(time_t t2, time_t t1);
struct time_info_data *mud_time_passed(time_t t2, time_t t1);
void prune_crlf(char *txt);
void column_list(char *out_buffer, int buf_left, int page_length,
int skip_lines, int columns, const char **list,
int list_length, int list_offset, const char *format,
...) __attribute__ ((format (printf, 9, 10)));
void column_list(struct char_data *ch, int num_cols, const char **list, int list_length, bool show_nums);
int get_flag_by_name(const char *flag_list[], char *flag_name);
int file_head( FILE *file, char *buf, size_t bufsize, int lines_to_read );
int file_tail( FILE *file, char *buf, size_t bufsize, int lines_to_read );