Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
213e52d255 | ||
|
|
79e2f91894 | ||
|
|
7f495670f2 | ||
|
|
e9c9808a24 | ||
|
|
c9ebc7174c | ||
|
|
bde600051d | ||
|
|
a745935421 | ||
|
|
0ee3aac10d | ||
|
|
15074b1d93 | ||
|
|
8f67dd880c | ||
|
|
34aca229df | ||
|
|
041765438a | ||
|
|
59398b2fdc | ||
|
|
97bd28ffd3 | ||
|
|
7039f9c402 | ||
|
|
3635026433 | ||
|
|
16a46903e4 | ||
|
|
2d8c05b4ed | ||
|
|
95d4da4972 | ||
|
|
9c801f9ab6 | ||
|
|
5305783e1b |
19
.github/workflows/build.yml
vendored
Normal file
19
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
name: C/C++ CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ "master" ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ "master" ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: configure
|
||||||
|
run: ./configure
|
||||||
|
- name: build
|
||||||
|
run: cd src && touch .accepted && make
|
||||||
@@ -10,6 +10,7 @@ to rec.games.mud.diku which originally announced CircleMUD as a publicly
|
|||||||
available MUD source code.
|
available MUD source code.
|
||||||
|
|
||||||
tbaMUD Release history:
|
tbaMUD Release history:
|
||||||
|
Version 2023 release: January, 2023
|
||||||
Version 2021 release: March, 2021
|
Version 2021 release: March, 2021
|
||||||
Version 2020 release: January, 2020
|
Version 2020 release: January, 2020
|
||||||
Version 2019 release: January, 2019
|
Version 2019 release: January, 2019
|
||||||
|
|||||||
@@ -6109,7 +6109,7 @@ $n looks around for a victim to strangle.
|
|||||||
You throw yourself against $N's throat, trying to squeeze the life out.
|
You throw yourself against $N's throat, trying to squeeze the life out.
|
||||||
$n throws $mself after $N's throat.
|
$n throws $mself after $N's throat.
|
||||||
$n throws $mself after your throat, you try to defend yourself.
|
$n throws $mself after your throat, you try to defend yourself.
|
||||||
AARGH! They must have left... #&%£@!
|
AARGH! They must have left...
|
||||||
You put your hands around your throat and stop breathing.
|
You put your hands around your throat and stop breathing.
|
||||||
$n tries to strangle $mself, making a very strange noise and getting blue in the face.
|
$n tries to strangle $mself, making a very strange noise and getting blue in the face.
|
||||||
You strangle $M $t.
|
You strangle $M $t.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
T B A M U D
|
T B A M U D
|
||||||
2 0 2 1
|
2 0 2 3
|
||||||
|
|
||||||
Based on CircleMUD by Jeremy Elson and DikuMUD by Hans-Henrik Staerfeldt,
|
Based on CircleMUD by Jeremy Elson and DikuMUD by Hans-Henrik Staerfeldt,
|
||||||
Katja Nyboe, Tom Madsen, Michael Seifert, and Sebastian Hammer
|
Katja Nyboe, Tom Madsen, Michael Seifert, and Sebastian Hammer
|
||||||
|
|||||||
@@ -3312,7 +3312,7 @@ the earthquake spell.
|
|||||||
|
|
||||||
See also: WATERWALK, EARTHQUAKE
|
See also: WATERWALK, EARTHQUAKE
|
||||||
#0
|
#0
|
||||||
FOLLOWERS
|
FOLLOWERS UNFOLLOW
|
||||||
|
|
||||||
Usage: follow <leader>
|
Usage: follow <leader>
|
||||||
|
|
||||||
@@ -3350,7 +3350,7 @@ The 3rd number is liquid type from the following:
|
|||||||
value 1: Initial drink units. Must be 1 or greater.
|
value 1: Initial drink units. Must be 1 or greater.
|
||||||
value 2: see below
|
value 2: see below
|
||||||
value 3: 0 for not poisoned. Otherwise, the number of hours until the poison
|
value 3: 0 for not poisoned. Otherwise, the number of hours until the poison
|
||||||
burns off?
|
burns off.
|
||||||
|
|
||||||
value 2: The type of liquid in the drink-container, one of:
|
value 2: The type of liquid in the drink-container, one of:
|
||||||
|
|
||||||
@@ -9879,6 +9879,7 @@ tbalim test 61165
|
|||||||
return
|
return
|
||||||
toggle nohassle on
|
toggle nohassle on
|
||||||
|
|
||||||
|
To list empty zones "show zone none"
|
||||||
To setup test with zone 348
|
To setup test with zone 348
|
||||||
return
|
return
|
||||||
saveall
|
saveall
|
||||||
|
|||||||
@@ -128,6 +128,18 @@ Samuel himself is here, pouring the drinks and getting rich.
|
|||||||
300 90000
|
300 90000
|
||||||
8 8 1
|
8 8 1
|
||||||
E
|
E
|
||||||
|
#31510
|
||||||
|
postal worker postmasters~
|
||||||
|
the postal worker~
|
||||||
|
A postal worker is here, ready to send or get your mail.
|
||||||
|
~
|
||||||
|
Be careful. No sudden moves. You know how these guys get....
|
||||||
|
~
|
||||||
|
10 0 0 0 0 0 0 0 0 E
|
||||||
|
30 10 -8 6d6+300 5d5+5
|
||||||
|
300 90000
|
||||||
|
8 8 1
|
||||||
|
E
|
||||||
#31511
|
#31511
|
||||||
Juan pusher potion~
|
Juan pusher potion~
|
||||||
Juan the potion pusher~
|
Juan the potion pusher~
|
||||||
|
|||||||
@@ -222,8 +222,16 @@ An awl pike is here, taking up much space.~
|
|||||||
5 0 0 0 0 an 0 0 0 0 0 0 0
|
5 0 0 0 0 an 0 0 0 0 0 0 0
|
||||||
4 3 5 3
|
4 3 5 3
|
||||||
15 750 75 0 0
|
15 750 75 0 0
|
||||||
|
#3927
|
||||||
|
jeweled dagger~
|
||||||
|
a jeweled dagger~
|
||||||
|
A dagger is lying here, its jewels sparkling merrily.~
|
||||||
|
~
|
||||||
|
5 0 0 0 0 an 0 0 0 0 0 0 0
|
||||||
|
5 2 3 14
|
||||||
|
4 120 12 0 0
|
||||||
#3928
|
#3928
|
||||||
14~
|
curving dagger~
|
||||||
a wickedly curving dagger~
|
a wickedly curving dagger~
|
||||||
A dagger lies here on the ground, its curve looking particularly wicked.~
|
A dagger lies here on the ground, its curve looking particularly wicked.~
|
||||||
~
|
~
|
||||||
|
|||||||
@@ -1929,6 +1929,34 @@ pamphlet leaflet photograph photo~
|
|||||||
even your stomach... Blech!
|
even your stomach... Blech!
|
||||||
~
|
~
|
||||||
S
|
S
|
||||||
|
#30170
|
||||||
|
The Post Office~
|
||||||
|
This seems to be the standard post office given to any university by the
|
||||||
|
wonderful XXX government. You can tell that it is a university post office
|
||||||
|
because of the surplus amount of obscene graffiti upon the walls. The back
|
||||||
|
hall is south of here.
|
||||||
|
~
|
||||||
|
301 8 0 0 0 0
|
||||||
|
D2
|
||||||
|
You can see the back hall from here complete with humming bank machines.
|
||||||
|
~
|
||||||
|
~
|
||||||
|
0 -1 30138
|
||||||
|
E
|
||||||
|
graffiti~
|
||||||
|
You really don't want to read this! (if you want to continue reading type
|
||||||
|
"look wirt")
|
||||||
|
~
|
||||||
|
E
|
||||||
|
wirt~
|
||||||
|
You really are a sucker for punishment now aren't you? If you still want to
|
||||||
|
read it type "look prawn"
|
||||||
|
~
|
||||||
|
E
|
||||||
|
prawn~
|
||||||
|
You see nothing special. The Prawn is in excellent condition.
|
||||||
|
~
|
||||||
|
S
|
||||||
#30173
|
#30173
|
||||||
De-Tox Unit~
|
De-Tox Unit~
|
||||||
This room seems to be the place where people get "detoxified". Although it
|
This room seems to be the place where people get "detoxified". Although it
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#30200
|
#30200
|
||||||
The Top Of The Greasepole~
|
The Top of the Greasepole~
|
||||||
You've made it to the top! All you have to do now is get down...
|
You've made it to the top! All you have to do now is get down.
|
||||||
~
|
~
|
||||||
302 4 0 0 0 5
|
302 4 0 0 0 5
|
||||||
D5
|
D5
|
||||||
@@ -9,6 +9,11 @@ It's a long slide down.
|
|||||||
~
|
~
|
||||||
0 -1 30192
|
0 -1 30192
|
||||||
E
|
E
|
||||||
|
pole greasepole~
|
||||||
|
The pole still looks pretty bad, but it doesn't look quite as bad as before.
|
||||||
|
|
||||||
|
~
|
||||||
|
E
|
||||||
info credits~
|
info credits~
|
||||||
See zone description room for Campus.
|
See zone description room for Campus.
|
||||||
Zone 302 is linked to the following zones:
|
Zone 302 is linked to the following zones:
|
||||||
@@ -48,11 +53,6 @@ Links: 64e to catacombs
|
|||||||
(Mobs Stay_Zone flags have all been disabled to allow free access between
|
(Mobs Stay_Zone flags have all been disabled to allow free access between
|
||||||
301, 302 and 303. Please ensure that any entrances into the area are flagged
|
301, 302 and 303. Please ensure that any entrances into the area are flagged
|
||||||
nomob to keep them in. - Parna for TBAMud.)
|
nomob to keep them in. - Parna for TBAMud.)
|
||||||
~
|
|
||||||
E
|
|
||||||
pole greasepole~
|
|
||||||
The pole still looks pretty bad, but it doesn't look quite as bad as before.
|
|
||||||
|
|
||||||
~
|
~
|
||||||
S
|
S
|
||||||
#30201
|
#30201
|
||||||
@@ -71,13 +71,13 @@ D2
|
|||||||
~
|
~
|
||||||
0 -1 30142
|
0 -1 30142
|
||||||
E
|
E
|
||||||
mail~
|
|
||||||
Why are you trying to look at the mail, it's private!
|
|
||||||
~
|
|
||||||
E
|
|
||||||
hooks hook key keys~
|
hooks hook key keys~
|
||||||
Unfortunately you don't see any keys hanging off of any of the hooks.
|
Unfortunately you don't see any keys hanging off of any of the hooks.
|
||||||
~
|
~
|
||||||
|
E
|
||||||
|
mail~
|
||||||
|
Why are you trying to look at the mail, it's private!
|
||||||
|
~
|
||||||
S
|
S
|
||||||
#30202
|
#30202
|
||||||
Main Office~
|
Main Office~
|
||||||
@@ -92,9 +92,10 @@ This way leads back to the reception desk.
|
|||||||
door~
|
door~
|
||||||
1 30103 30201
|
1 30103 30201
|
||||||
E
|
E
|
||||||
chair~
|
filing cabinet files~
|
||||||
The chair is not unusual in any way whatsoever. The chair is in excellent
|
Looking through the files you see that Wally World was originally slated to
|
||||||
condition.
|
have at least eleven levels but the designers got sick and tired of it and gave
|
||||||
|
up after just a few levels.
|
||||||
~
|
~
|
||||||
E
|
E
|
||||||
desk~
|
desk~
|
||||||
@@ -102,10 +103,9 @@ desk~
|
|||||||
excellent condition.
|
excellent condition.
|
||||||
~
|
~
|
||||||
E
|
E
|
||||||
filing cabinet files~
|
chair~
|
||||||
Looking through the files you see that Wally World was originally slated to
|
The chair is not unusual in any way whatsoever. The chair is in excellent
|
||||||
have at least eleven levels but the designers got sick and tired of it and gave
|
condition.
|
||||||
up after just a few levels.
|
|
||||||
~
|
~
|
||||||
S
|
S
|
||||||
#30203
|
#30203
|
||||||
@@ -230,14 +230,14 @@ You can't tell where this leads.
|
|||||||
door~
|
door~
|
||||||
1 -1 30210
|
1 -1 30210
|
||||||
E
|
E
|
||||||
door~
|
|
||||||
The door on the west has the number 206 and the door on the east, 205.
|
|
||||||
~
|
|
||||||
E
|
|
||||||
floor carpet~
|
floor carpet~
|
||||||
This is a nice, groovy, red patterned carpet which extends all the way down
|
This is a nice, groovy, red patterned carpet which extends all the way down
|
||||||
the hall.
|
the hall.
|
||||||
~
|
~
|
||||||
|
E
|
||||||
|
door~
|
||||||
|
The door on the west has the number 206 and the door on the east, 205.
|
||||||
|
~
|
||||||
S
|
S
|
||||||
#30209
|
#30209
|
||||||
Private Room 205~
|
Private Room 205~
|
||||||
@@ -300,15 +300,15 @@ You can't tell where this leads.
|
|||||||
door~
|
door~
|
||||||
1 -1 30213
|
1 -1 30213
|
||||||
E
|
E
|
||||||
door~
|
|
||||||
The door on the west has the number 204 and the door on the east, 203 while
|
|
||||||
the door to the north has the number 201.
|
|
||||||
~
|
|
||||||
E
|
|
||||||
floor carpet~
|
floor carpet~
|
||||||
This is a nice, groovy, red patterned carpet which extends all the way down
|
This is a nice, groovy, red patterned carpet which extends all the way down
|
||||||
the hall.
|
the hall.
|
||||||
~
|
~
|
||||||
|
E
|
||||||
|
door~
|
||||||
|
The door on the west has the number 204 and the door on the east, 203 while
|
||||||
|
the door to the north has the number 201.
|
||||||
|
~
|
||||||
S
|
S
|
||||||
#30212
|
#30212
|
||||||
Private Room 203~
|
Private Room 203~
|
||||||
@@ -388,14 +388,14 @@ You can't tell where this leads.
|
|||||||
door~
|
door~
|
||||||
1 -1 30217
|
1 -1 30217
|
||||||
E
|
E
|
||||||
door~
|
|
||||||
The door on the west has the number 208 and the door on the east, 207.
|
|
||||||
~
|
|
||||||
E
|
|
||||||
floor carpet~
|
floor carpet~
|
||||||
This is a nice, groovy, red patterned carpet which extends all the way down
|
This is a nice, groovy, red patterned carpet which extends all the way down
|
||||||
the hall.
|
the hall.
|
||||||
~
|
~
|
||||||
|
E
|
||||||
|
door~
|
||||||
|
The door on the west has the number 208 and the door on the east, 207.
|
||||||
|
~
|
||||||
S
|
S
|
||||||
#30216
|
#30216
|
||||||
Private Room 207~
|
Private Room 207~
|
||||||
@@ -458,15 +458,15 @@ You can't tell where this leads.
|
|||||||
door~
|
door~
|
||||||
1 -1 30220
|
1 -1 30220
|
||||||
E
|
E
|
||||||
door~
|
|
||||||
The door on the west has the number 210 and the door on the east, 209 and the
|
|
||||||
door to the south has the number 202.
|
|
||||||
~
|
|
||||||
E
|
|
||||||
floor carpet~
|
floor carpet~
|
||||||
This is a nice, groovy, red patterned carpet which extends all the way down
|
This is a nice, groovy, red patterned carpet which extends all the way down
|
||||||
the hall.
|
the hall.
|
||||||
~
|
~
|
||||||
|
E
|
||||||
|
door~
|
||||||
|
The door on the west has the number 210 and the door on the east, 209 and the
|
||||||
|
door to the south has the number 202.
|
||||||
|
~
|
||||||
S
|
S
|
||||||
#30219
|
#30219
|
||||||
Private Room 209~
|
Private Room 209~
|
||||||
@@ -654,14 +654,14 @@ The trapdoor leads up... beyond that, you aren't sure where it goes.
|
|||||||
trapdoor door~
|
trapdoor door~
|
||||||
1 -1 30233
|
1 -1 30233
|
||||||
E
|
E
|
||||||
|
trapdoor~
|
||||||
|
The trapdoor is neatly fastened with a small hook.
|
||||||
|
~
|
||||||
|
E
|
||||||
desk chair plush~
|
desk chair plush~
|
||||||
The desk and chairs are neatly arranged as if in preparation for an upcoming
|
The desk and chairs are neatly arranged as if in preparation for an upcoming
|
||||||
meeting or something of the sort.
|
meeting or something of the sort.
|
||||||
~
|
~
|
||||||
E
|
|
||||||
trapdoor~
|
|
||||||
The trapdoor is neatly fastened with a small hook.
|
|
||||||
~
|
|
||||||
S
|
S
|
||||||
#30229
|
#30229
|
||||||
Hallway~
|
Hallway~
|
||||||
@@ -770,13 +770,13 @@ A chute leads down from this room.
|
|||||||
~
|
~
|
||||||
0 -1 30235
|
0 -1 30235
|
||||||
E
|
E
|
||||||
chute~
|
|
||||||
The chute is rather smooth and looks to be a fun ride.
|
|
||||||
~
|
|
||||||
E
|
|
||||||
grate~
|
grate~
|
||||||
Beyond the grate you can see the attic.
|
Beyond the grate you can see the attic.
|
||||||
~
|
~
|
||||||
|
E
|
||||||
|
chute~
|
||||||
|
The chute is rather smooth and looks to be a fun ride.
|
||||||
|
~
|
||||||
S
|
S
|
||||||
#30235
|
#30235
|
||||||
The Chute~
|
The Chute~
|
||||||
@@ -871,13 +871,13 @@ An exit from this hellhole.
|
|||||||
~
|
~
|
||||||
0 -1 30240
|
0 -1 30240
|
||||||
E
|
E
|
||||||
mess~
|
|
||||||
Need you ask?
|
|
||||||
~
|
|
||||||
E
|
|
||||||
hell hole hellhole~
|
hell hole hellhole~
|
||||||
Never seen one before?
|
Never seen one before?
|
||||||
~
|
~
|
||||||
|
E
|
||||||
|
mess~
|
||||||
|
Need you ask?
|
||||||
|
~
|
||||||
S
|
S
|
||||||
#30240
|
#30240
|
||||||
The Ghetto~
|
The Ghetto~
|
||||||
@@ -897,13 +897,13 @@ A run-down house lies to the west.
|
|||||||
~
|
~
|
||||||
0 -1 30239
|
0 -1 30239
|
||||||
E
|
E
|
||||||
house run-down~
|
|
||||||
It's in bad shape.
|
|
||||||
~
|
|
||||||
E
|
|
||||||
overturned police policemobile mobile~
|
overturned police policemobile mobile~
|
||||||
It is blocking the road quite nicely. Maybe it is meant to impede passage.
|
It is blocking the road quite nicely. Maybe it is meant to impede passage.
|
||||||
~
|
~
|
||||||
|
E
|
||||||
|
house run-down~
|
||||||
|
It's in bad shape.
|
||||||
|
~
|
||||||
S
|
S
|
||||||
#30241
|
#30241
|
||||||
The Ghetto Intersection~
|
The Ghetto Intersection~
|
||||||
@@ -1344,16 +1344,16 @@ The auditorium is to the north.
|
|||||||
~
|
~
|
||||||
0 -1 30259
|
0 -1 30259
|
||||||
E
|
E
|
||||||
drab brown curtains curtain~
|
sturdy wooden plank planks~
|
||||||
They are just your average, everyday, drab brown curtains.
|
They are sturdy. They are wooden. They are planks.
|
||||||
~
|
~
|
||||||
E
|
E
|
||||||
cords cord pulley pulleys~
|
cords cord pulley pulleys~
|
||||||
Hey! It can make you look like you are flying!
|
Hey! It can make you look like you are flying!
|
||||||
~
|
~
|
||||||
E
|
E
|
||||||
sturdy wooden plank planks~
|
drab brown curtains curtain~
|
||||||
They are sturdy. They are wooden. They are planks.
|
They are just your average, everyday, drab brown curtains.
|
||||||
~
|
~
|
||||||
S
|
S
|
||||||
#30262
|
#30262
|
||||||
@@ -1403,13 +1403,13 @@ It's the same stairwell.
|
|||||||
~
|
~
|
||||||
0 -1 30257
|
0 -1 30257
|
||||||
E
|
E
|
||||||
cobweb cobwebs web webs~
|
|
||||||
Don't disturb them now!
|
|
||||||
~
|
|
||||||
E
|
|
||||||
huge stone door~
|
huge stone door~
|
||||||
The huge stone door looks very inviting.
|
The huge stone door looks very inviting.
|
||||||
~
|
~
|
||||||
|
E
|
||||||
|
cobweb cobwebs web webs~
|
||||||
|
Don't disturb them now!
|
||||||
|
~
|
||||||
S
|
S
|
||||||
#30265
|
#30265
|
||||||
The Grant Hall Clock~
|
The Grant Hall Clock~
|
||||||
@@ -1785,10 +1785,6 @@ It is too dark to tell.
|
|||||||
~
|
~
|
||||||
0 -1 30276
|
0 -1 30276
|
||||||
E
|
E
|
||||||
door~
|
|
||||||
This door is covered with all types of non-magical sigils.
|
|
||||||
~
|
|
||||||
E
|
|
||||||
sigils~
|
sigils~
|
||||||
The sigils seem to form some strange shapes:
|
The sigils seem to form some strange shapes:
|
||||||
SSSSS
|
SSSSS
|
||||||
@@ -1805,6 +1801,10 @@ sigils~
|
|||||||
SSSSS
|
SSSSS
|
||||||
I wonder what it could be?
|
I wonder what it could be?
|
||||||
~
|
~
|
||||||
|
E
|
||||||
|
door~
|
||||||
|
This door is covered with all types of non-magical sigils.
|
||||||
|
~
|
||||||
S
|
S
|
||||||
#30281
|
#30281
|
||||||
A Classroom~
|
A Classroom~
|
||||||
@@ -1851,13 +1851,13 @@ You are repulsed by this exit since the exit to the east is well lit.
|
|||||||
~
|
~
|
||||||
0 -1 30274
|
0 -1 30274
|
||||||
E
|
E
|
||||||
light~
|
|
||||||
It's nice, warm, and inviting.
|
|
||||||
~
|
|
||||||
E
|
|
||||||
dark~
|
dark~
|
||||||
Are you mad?
|
Are you mad?
|
||||||
~
|
~
|
||||||
|
E
|
||||||
|
light~
|
||||||
|
It's nice, warm, and inviting.
|
||||||
|
~
|
||||||
S
|
S
|
||||||
#30283
|
#30283
|
||||||
The Exit~
|
The Exit~
|
||||||
@@ -1875,13 +1875,13 @@ Back into darkness, I don't think so!
|
|||||||
~
|
~
|
||||||
0 -1 30282
|
0 -1 30282
|
||||||
E
|
E
|
||||||
light~
|
|
||||||
It's nice, warm, and inviting.
|
|
||||||
~
|
|
||||||
E
|
|
||||||
dark~
|
dark~
|
||||||
Are you mad?
|
Are you mad?
|
||||||
~
|
~
|
||||||
|
E
|
||||||
|
light~
|
||||||
|
It's nice, warm, and inviting.
|
||||||
|
~
|
||||||
S
|
S
|
||||||
#30284
|
#30284
|
||||||
Mob Chute A~
|
Mob Chute A~
|
||||||
@@ -1916,10 +1916,6 @@ This is just an exit.
|
|||||||
~
|
~
|
||||||
0 -1 30106
|
0 -1 30106
|
||||||
E
|
E
|
||||||
door~
|
|
||||||
This door is covered with all types of non-magical sigils.
|
|
||||||
~
|
|
||||||
E
|
|
||||||
sigils~
|
sigils~
|
||||||
The sigils seem to form some strange shapes:
|
The sigils seem to form some strange shapes:
|
||||||
MMM MMM OOO OOO !!
|
MMM MMM OOO OOO !!
|
||||||
@@ -1929,6 +1925,10 @@ sigils~
|
|||||||
MM M MM OO OO OO OO
|
MM M MM OO OO OO OO
|
||||||
MM MM OOO OOO !!
|
MM MM OOO OOO !!
|
||||||
~
|
~
|
||||||
|
E
|
||||||
|
door~
|
||||||
|
This door is covered with all types of non-magical sigils.
|
||||||
|
~
|
||||||
S
|
S
|
||||||
#30285
|
#30285
|
||||||
Mob Chute B~
|
Mob Chute B~
|
||||||
|
|||||||
@@ -103,8 +103,6 @@ E 1 30135 4 16 (a T-square of Death)
|
|||||||
O 0 30100 1 30176 (a red key)
|
O 0 30100 1 30176 (a red key)
|
||||||
O 0 30101 1 30186 (a brass key)
|
O 0 30101 1 30186 (a brass key)
|
||||||
O 0 30102 5 30150 (an Oreo(tm) cookie)
|
O 0 30102 5 30150 (an Oreo(tm) cookie)
|
||||||
O 0 30111 99 30172 (a condom)
|
|
||||||
O 0 30122 8 30171 (Magebane)
|
|
||||||
O 0 30129 1 30110 (the extension cord)
|
O 0 30129 1 30110 (the extension cord)
|
||||||
O 0 30129 1 30111 (the extension cord)
|
O 0 30129 1 30111 (the extension cord)
|
||||||
O 0 30129 1 30112 (the extension cord)
|
O 0 30129 1 30112 (the extension cord)
|
||||||
@@ -129,7 +127,6 @@ D 0 30155 1 1 (Locker Room)
|
|||||||
D 0 30165 0 1 (Campus Pub Stairwell)
|
D 0 30165 0 1 (Campus Pub Stairwell)
|
||||||
D 0 30141 2 1 (Campus Bookstore)
|
D 0 30141 2 1 (Campus Bookstore)
|
||||||
D 0 30167 5 1 (The Infobank)
|
D 0 30167 5 1 (The Infobank)
|
||||||
D 0 30171 4 1 (The Special Hidden Room)
|
|
||||||
D 0 30177 0 1 (Hallway)
|
D 0 30177 0 1 (Hallway)
|
||||||
D 0 30179 2 1 (Library)
|
D 0 30179 2 1 (Library)
|
||||||
D 0 30178 3 2 (The Back Exit)
|
D 0 30178 3 2 (The Back Exit)
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
Matrix of C.A.W.~
|
Matrix of C.A.W.~
|
||||||
Campus II~
|
Campus II~
|
||||||
30200 30299 30 2
|
30200 30299 30 2
|
||||||
|
R 0 30200 30112 -1 (a tam)
|
||||||
|
O 1 30112 99 30200 (a tam)
|
||||||
M 0 30105 4 30284 (Security)
|
M 0 30105 4 30284 (Security)
|
||||||
E 1 30115 99 16 (a flashlight)
|
E 1 30115 99 16 (a flashlight)
|
||||||
M 0 30105 4 30284 (Security)
|
M 0 30105 4 30284 (Security)
|
||||||
@@ -32,8 +34,6 @@ M 0 30132 1 30284 (Chris)
|
|||||||
M 0 30137 1 30284 (Alex)
|
M 0 30137 1 30284 (Alex)
|
||||||
M 0 30138 1 30284 (Steve)
|
M 0 30138 1 30284 (Steve)
|
||||||
M 0 30145 10 30284 (a copy of Golden World)
|
M 0 30145 10 30284 (a copy of Golden World)
|
||||||
R 0 30200 30112 -1 (a tam)
|
|
||||||
O 1 30112 99 30200 (a tam)
|
|
||||||
M 0 30139 1 30245 (Bob the storekeeper)
|
M 0 30139 1 30245 (Bob the storekeeper)
|
||||||
G 1 30136 99 -1 (a pale apple)
|
G 1 30136 99 -1 (a pale apple)
|
||||||
G 1 30140 99 -1 (a can of PopCoke)
|
G 1 30140 99 -1 (a can of PopCoke)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#4
|
#4
|
||||||
Unknown~
|
trunks shaoden~
|
||||||
Jade Forest~
|
Rename~
|
||||||
400 499 30 2 d 0 0 0 10 25
|
400 499 30 2 d 0 0 0 10 25
|
||||||
M 0 481 1 481 (Zachary)
|
M 0 481 1 481 (Zachary)
|
||||||
G 1 403 99 -1 (rawhide whip)
|
G 1 403 99 -1 (rawhide whip)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#6
|
#6
|
||||||
Unknown~
|
q~
|
||||||
Sea of Souls~
|
Sea of Souls~
|
||||||
600 699 30 2 d 0 0 0 10 25
|
600 699 30 2 d 0 0 0 10 25
|
||||||
M 0 600 1 600 (a snail)
|
M 0 600 1 600 (a snail)
|
||||||
|
|||||||
@@ -443,14 +443,16 @@ ACMD(do_exits)
|
|||||||
{
|
{
|
||||||
int door, len = 0;
|
int door, len = 0;
|
||||||
|
|
||||||
if (AFF_FLAGGED(ch, AFF_BLIND) && GET_LEVEL(ch) < LVL_IMMORT) {
|
if (AFF_FLAGGED(ch, AFF_BLIND) && GET_LEVEL(ch) < LVL_IMMORT)
|
||||||
|
{
|
||||||
send_to_char(ch, "You can't see a damned thing, you're blind!\r\n");
|
send_to_char(ch, "You can't see a damned thing, you're blind!\r\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
send_to_char(ch, "Obvious exits:\r\n");
|
send_to_char(ch, "Obvious exits:\r\n");
|
||||||
|
|
||||||
for (door = 0; door < DIR_COUNT; door++) {
|
for (door = 0; door < DIR_COUNT; door++)
|
||||||
|
{
|
||||||
if (!EXIT(ch, door) || EXIT(ch, door)->to_room == NOWHERE)
|
if (!EXIT(ch, door) || EXIT(ch, door)->to_room == NOWHERE)
|
||||||
continue;
|
continue;
|
||||||
if (EXIT_FLAGGED(EXIT(ch, door), EX_CLOSED) && !CONFIG_DISP_CLOSED_DOORS)
|
if (EXIT_FLAGGED(EXIT(ch, door), EX_CLOSED) && !CONFIG_DISP_CLOSED_DOORS)
|
||||||
@@ -461,26 +463,30 @@ ACMD(do_exits)
|
|||||||
len++;
|
len++;
|
||||||
|
|
||||||
if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_SHOWVNUMS) && !EXIT_FLAGGED(EXIT(ch, door), EX_CLOSED))
|
if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_SHOWVNUMS) && !EXIT_FLAGGED(EXIT(ch, door), EX_CLOSED))
|
||||||
send_to_char(ch, "%-5s - [%5d]%s %s\r\n", dirs[door], GET_ROOM_VNUM(EXIT(ch, door)->to_room),
|
{
|
||||||
EXIT_FLAGGED(EXIT(ch, door), EX_HIDDEN) ? " [HIDDEN]" : "", world[EXIT(ch, door)->to_room].name);
|
send_to_char(ch, "%-5s -[%5d]%s %s\r\n", dirs[door], GET_ROOM_VNUM(EXIT(ch, door)->to_room),
|
||||||
else if (CONFIG_DISP_CLOSED_DOORS && EXIT_FLAGGED(EXIT(ch, door), EX_CLOSED)) {
|
EXIT_FLAGGED(EXIT(ch, door), EX_HIDDEN) ? "[HIDDEN]" : "", world[EXIT(ch, door)->to_room].name);
|
||||||
/* But we tell them the door is closed */
|
}
|
||||||
|
else if (CONFIG_DISP_CLOSED_DOORS && EXIT_FLAGGED(EXIT(ch, door), EX_CLOSED))
|
||||||
|
{
|
||||||
|
/*But we tell them the door is closed */
|
||||||
send_to_char(ch, "%-5s - The %s is closed%s\r\n", dirs[door],
|
send_to_char(ch, "%-5s - The %s is closed%s\r\n", dirs[door],
|
||||||
(EXIT(ch, door)->keyword)? fname(EXIT(ch, door)->keyword) : "opening",
|
(EXIT(ch, door)->keyword) ? fname(EXIT(ch, door)->keyword) : "opening",
|
||||||
EXIT_FLAGGED(EXIT(ch, door), EX_HIDDEN) ? " and hidden." : ".");
|
EXIT_FLAGGED(EXIT(ch, door), EX_HIDDEN) ? " and hidden." : ".");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
send_to_char(ch, "%-5s - %s\r\n", dirs[door], IS_DARK(EXIT(ch, door)->to_room) &&
|
send_to_char(ch, "%-5s - %s\r\n", dirs[door], IS_DARK(EXIT(ch, door)->to_room) &&
|
||||||
!CAN_SEE_IN_DARK(ch) ? "Too dark to tell." : world[EXIT(ch, door)->to_room].name);
|
!CAN_SEE_IN_DARK(ch) ? "Too dark to tell." : world[EXIT(ch, door)->to_room].name);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (!len)
|
if (!len)
|
||||||
send_to_char(ch, " None.\r\n");
|
send_to_char(ch, " None.\r\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void look_at_room(struct char_data *ch, int ignore_brief)
|
void look_at_room(struct char_data *ch, int ignore_brief)
|
||||||
{
|
{
|
||||||
trig_data *t;
|
trig_data * t;
|
||||||
struct room_data *rm = &world[IN_ROOM(ch)];
|
struct room_data *rm = &world[IN_ROOM(ch)];
|
||||||
room_vnum target_room;
|
room_vnum target_room;
|
||||||
|
|
||||||
@@ -489,20 +495,22 @@ void look_at_room(struct char_data *ch, int ignore_brief)
|
|||||||
if (!ch->desc)
|
if (!ch->desc)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (IS_DARK(IN_ROOM(ch)) && !CAN_SEE_IN_DARK(ch)) {
|
if (IS_DARK(IN_ROOM(ch)) && !CAN_SEE_IN_DARK(ch)){
|
||||||
send_to_char(ch, "It is pitch black...\r\n");
|
send_to_char(ch, "It is pitch black...\r\n");
|
||||||
return;
|
return;
|
||||||
} else if (AFF_FLAGGED(ch, AFF_BLIND) && GET_LEVEL(ch) < LVL_IMMORT) {
|
}
|
||||||
|
else if (AFF_FLAGGED(ch, AFF_BLIND) && GET_LEVEL(ch) < LVL_IMMORT) {
|
||||||
send_to_char(ch, "You see nothing but infinite darkness...\r\n");
|
send_to_char(ch, "You see nothing but infinite darkness...\r\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
send_to_char(ch, "%s", CCCYN(ch, C_NRM));
|
|
||||||
|
send_to_char(ch, "%s", CCYEL(ch, C_NRM));
|
||||||
if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_SHOWVNUMS)) {
|
if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_SHOWVNUMS)) {
|
||||||
char buf[MAX_STRING_LENGTH];
|
char buf[MAX_STRING_LENGTH];
|
||||||
|
|
||||||
sprintbitarray(ROOM_FLAGS(IN_ROOM(ch)), room_bits, RF_ARRAY_MAX, buf);
|
sprintbitarray(ROOM_FLAGS(IN_ROOM(ch)), room_bits, RF_ARRAY_MAX, buf);
|
||||||
send_to_char(ch, "[%5d] ", GET_ROOM_VNUM(IN_ROOM(ch)));
|
send_to_char(ch, "[%5d] ", GET_ROOM_VNUM(IN_ROOM(ch)));
|
||||||
send_to_char(ch, "%s [ %s] [ %s ]", world[IN_ROOM(ch)].name, buf, sector_types[world[IN_ROOM(ch)].sector_type]);
|
send_to_char(ch, "%s[ %s][ %s ]", world[IN_ROOM(ch)].name, buf, sector_types[world[IN_ROOM(ch)].sector_type]);
|
||||||
|
|
||||||
if (SCRIPT(rm)) {
|
if (SCRIPT(rm)) {
|
||||||
send_to_char(ch, "[T");
|
send_to_char(ch, "[T");
|
||||||
@@ -511,25 +519,26 @@ void look_at_room(struct char_data *ch, int ignore_brief)
|
|||||||
send_to_char(ch, "]");
|
send_to_char(ch, "]");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
send_to_char(ch, "%s", world[IN_ROOM(ch)].name);
|
send_to_char(ch, "%s", world[IN_ROOM(ch)].name);
|
||||||
send_to_char(ch, "%s\r\n", CCNRM(ch, C_NRM));
|
send_to_char(ch, "%s\r\n", CCNRM(ch, C_NRM));
|
||||||
|
|
||||||
if ((!IS_NPC(ch) && !PRF_FLAGGED(ch, PRF_BRIEF)) || ignore_brief ||
|
if ((!IS_NPC(ch) && !PRF_FLAGGED(ch, PRF_BRIEF)) || ignore_brief ||
|
||||||
ROOM_FLAGGED(IN_ROOM(ch), ROOM_DEATH)) {
|
ROOM_FLAGGED(IN_ROOM(ch), ROOM_DEATH)) {
|
||||||
if(!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_AUTOMAP) && can_see_map(ch))
|
if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_AUTOMAP) && can_see_map(ch))
|
||||||
str_and_map(world[target_room].description, ch, target_room);
|
str_and_map(world[target_room].description, ch, target_room);
|
||||||
else
|
|
||||||
send_to_char(ch, "%s", world[IN_ROOM(ch)].description);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* autoexits */
|
send_to_char(ch, "%s", world[IN_ROOM(ch)].description);
|
||||||
|
|
||||||
|
/*autoexits */
|
||||||
if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_AUTOEXIT))
|
if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_AUTOEXIT))
|
||||||
do_auto_exits(ch);
|
do_auto_exits(ch);
|
||||||
|
|
||||||
/* now list characters & objects */
|
/*now list characters &objects */
|
||||||
list_obj_to_char(world[IN_ROOM(ch)].contents, ch, SHOW_OBJ_LONG, FALSE);
|
list_obj_to_char(world[IN_ROOM(ch)].contents, ch, SHOW_OBJ_LONG, FALSE);
|
||||||
list_char_to_char(world[IN_ROOM(ch)].people, ch);
|
list_char_to_char(world[IN_ROOM(ch)].people, ch);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void look_in_direction(struct char_data *ch, int dir)
|
static void look_in_direction(struct char_data *ch, int dir)
|
||||||
|
|||||||
@@ -461,6 +461,9 @@ int has_key(struct char_data *ch, obj_vnum key)
|
|||||||
{
|
{
|
||||||
struct obj_data *o;
|
struct obj_data *o;
|
||||||
|
|
||||||
|
if (key == NOTHING)
|
||||||
|
return (0);
|
||||||
|
|
||||||
for (o = ch->carrying; o; o = o->next_content)
|
for (o = ch->carrying; o; o = o->next_content)
|
||||||
if (GET_OBJ_VNUM(o) == key)
|
if (GET_OBJ_VNUM(o) == key)
|
||||||
return (1);
|
return (1);
|
||||||
|
|||||||
@@ -546,7 +546,6 @@ ACMD(do_split)
|
|||||||
if (rest) {
|
if (rest) {
|
||||||
send_to_char(ch, "%d coin%s %s not splitable, so you keep the money.\r\n",
|
send_to_char(ch, "%d coin%s %s not splitable, so you keep the money.\r\n",
|
||||||
rest, (rest == 1) ? "" : "s", (rest == 1) ? "was" : "were");
|
rest, (rest == 1) ? "" : "s", (rest == 1) ? "was" : "were");
|
||||||
increase_gold(ch, rest);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
send_to_char(ch, "How many coins do you wish to split with your group?\r\n");
|
send_to_char(ch, "How many coins do you wish to split with your group?\r\n");
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
* @todo cpp_extern isn't needed here (or anywhere) as the extern reserved word
|
* @todo cpp_extern isn't needed here (or anywhere) as the extern reserved word
|
||||||
* works correctly with C compilers (at least in my Experience)
|
* works correctly with C compilers (at least in my Experience)
|
||||||
* Jeremy Osborne 1/28/2008 */
|
* Jeremy Osborne 1/28/2008 */
|
||||||
cpp_extern const char *tbamud_version = "tbaMUD 2021";
|
cpp_extern const char *tbamud_version = "tbaMUD 2023";
|
||||||
|
|
||||||
/* strings corresponding to ordinals/bitvectors in structs.h */
|
/* strings corresponding to ordinals/bitvectors in structs.h */
|
||||||
/* (Note: strings for class definitions in class.c instead of here) */
|
/* (Note: strings for class definitions in class.c instead of here) */
|
||||||
|
|||||||
@@ -1148,7 +1148,7 @@ int format_script(struct descriptor_data *d)
|
|||||||
|
|
||||||
*line = '\0';
|
*line = '\0';
|
||||||
for (nlen = 0, i = 0;i<indent;i++) {
|
for (nlen = 0, i = 0;i<indent;i++) {
|
||||||
strncat(line, " ", sizeof(line)-1);
|
strncat(line, " ", sizeof(line) - strlen(line) - 1);
|
||||||
nlen += 2;
|
nlen += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -268,7 +268,7 @@ void create_world_index(int znum, const char *type)
|
|||||||
while (get_line(oldfile, buf)) {
|
while (get_line(oldfile, buf)) {
|
||||||
if (*buf == '$') {
|
if (*buf == '$') {
|
||||||
/* The following used to add a blank line, thanks to Brian Taylor for the fix. */
|
/* The following used to add a blank line, thanks to Brian Taylor for the fix. */
|
||||||
fprintf(newfile, "%s", (!found ? strncat(buf1, "\n$\n", sizeof(buf1)-1) : "$\n"));
|
fprintf(newfile, "%s", (!found ? strncat(buf1, "\n$\n", sizeof(buf1) - strlen(buf1) - 1) : "$\n"));
|
||||||
break;
|
break;
|
||||||
} else if (!found) {
|
} else if (!found) {
|
||||||
sscanf(buf, "%d", &num);
|
sscanf(buf, "%d", &num);
|
||||||
|
|||||||
@@ -671,12 +671,20 @@ struct char_data *get_char_num(mob_rnum nr)
|
|||||||
/* put an object in a room */
|
/* put an object in a room */
|
||||||
void obj_to_room(struct obj_data *object, room_rnum room)
|
void obj_to_room(struct obj_data *object, room_rnum room)
|
||||||
{
|
{
|
||||||
if (!object || room == NOWHERE || room > top_of_world)
|
if (!object || room == NOWHERE || room > top_of_world){
|
||||||
log("SYSERR: Illegal value(s) passed to obj_to_room. (Room #%d/%d, obj %p)",
|
log("SYSERR: Illegal value(s) passed to obj_to_room. (Room #%d/%d, obj %p)",
|
||||||
room, top_of_world, (void *)object);
|
room, top_of_world, (void *)object);
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
object->next_content = world[room].contents;
|
if (world[room].contents == NULL){ // if list is empty
|
||||||
world[room].contents = object;
|
world[room].contents = object; // add object to list
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
struct obj_data *i = world[room].contents; // define a temporary pointer
|
||||||
|
while (i->next_content != NULL) i = i->next_content; // find the first without a next_content
|
||||||
|
i->next_content = object; // add object at the end
|
||||||
|
}
|
||||||
|
object->next_content = NULL; // mostly for sanity. should do nothing.
|
||||||
IN_ROOM(object) = room;
|
IN_ROOM(object) = room;
|
||||||
object->carried_by = NULL;
|
object->carried_by = NULL;
|
||||||
if (ROOM_FLAGGED(room, ROOM_HOUSE))
|
if (ROOM_FLAGGED(room, ROOM_HOUSE))
|
||||||
|
|||||||
@@ -1276,7 +1276,7 @@ struct happyhour {
|
|||||||
struct recent_player
|
struct recent_player
|
||||||
{
|
{
|
||||||
int vnum; /* The ID number for this instance */
|
int vnum; /* The ID number for this instance */
|
||||||
char name[MAX_NAME_LENGTH]; /* The char name of the player */
|
char name[MAX_NAME_LENGTH+1];/* The char name of the player */
|
||||||
bool new_player; /* Is this a new player? */
|
bool new_player; /* Is this a new player? */
|
||||||
bool copyover_player; /* Is this a player that was on during the last copyover? */
|
bool copyover_player; /* Is this a player that was on during the last copyover? */
|
||||||
time_t time; /* login time */
|
time_t time; /* login time */
|
||||||
|
|||||||
Reference in New Issue
Block a user