21 Commits

Author SHA1 Message Date
Rumble
213e52d255 Updated for 2023 release 2023-01-02 14:23:51 +00:00
Steaphan Greene
79e2f91894 Fix (remove) rogue non-ascii character from socials.new. (#123)
This character isn't ascii, nor even utf8.  It doesn't serve any real
textual purpose either, so, just delete it.
2022-12-05 12:53:37 +01:00
Thomas Arp
7f495670f2 Bugfix: the "rest" is added but was never subtracted. (#120) 2022-11-16 23:08:51 +01:00
tjr1974
e9c9808a24 Update act.informative.c (#119)
Fixed formatting for readability.
Indentations should be correct.
Tested on fresh install. 
It does compile. 
Room descriptions display properly.
2022-11-16 23:08:33 +01:00
Thomas Arp
c9ebc7174c Create build.yml (#117)
Support for building pull requests with github actions
2022-11-06 23:41:31 +01:00
Thomas Arp
bde600051d Merge pull request #114 from Vatiken/master
Replaced missing semi-colon. -No Compile
2022-11-05 12:53:30 +01:00
Thomas Arp
a745935421 Merge pull request #113 from tbamud/zusuk-patch-1
Added check for NOTHING key in has_key()
2022-11-05 12:53:05 +01:00
Joseph
0ee3aac10d Replaced missing semi-colon. -No Compile 2022-11-04 21:02:35 -03:00
Thomas Arp
15074b1d93 Added check for NOTHING key in has_key() 2022-11-02 22:31:56 +01:00
Thomas Arp
8f67dd880c Merge pull request #110 from tjr1974/master
Fixes & Code Quality
2022-10-25 00:36:18 +02:00
tjr1974
34aca229df Update act.informative.c
Used code formatter to correct indentations and align all {} in lACMD(do_exits)
Checked for unmactched braces and found none.
My code editor shows all {} are matched.
2022-10-24 17:07:54 -05:00
tjr1974
041765438a Update act.informative.c
Used code formatter to correct indentations and align all {} in the look_at_room()
Checked for unmactched braces and found none.
My code editor shows all {} are matched.
2022-10-24 16:38:11 -05:00
tjr1974
59398b2fdc Update handler.c
Fixes indentations in obj_to_room()
2022-10-24 16:07:49 -05:00
tjr1974
97bd28ffd3 Update act.informative.c
Fixes unguarded blocks of code in ACMD(do_exits) that could cause the server to report scripted trigger events (mob movements, exit links to rooms being reassigned, and doors being opened or closed) as script errors. Particularly, if this code is copy and pasted into the do_auto_exits().
2022-10-23 15:29:43 -05:00
tjr1974
7039f9c402 Update act.informative.c
Fixes unguarded else clauses due to inconsistent use of {} in look_at_room().
2022-10-23 15:12:57 -05:00
tjr1974
3635026433 Update handler.c
Fixes the display order of objects in obj_to_room().
Objects are now displayed in the order they are placed/dropped. This prevents fountains, boards, etcetera from "moving" around the room.
2022-10-23 14:57:14 -05:00
Thomas Arp
16a46903e4 Merge pull request #103 from mackerel3/antipattern
use strncat(sizeof(...) - strlen(...) - 1)
2022-09-03 12:33:01 +02:00
Mackerel
2d8c05b4ed use strncat(sizeof(...) - strlen(...) - 1) 2022-09-03 00:11:03 -04:00
Thomas Arp
95d4da4972 Merge pull request #101 from ktpx/recent
inc size of name, max length names crash on addrecent due to buffer o…
2022-03-25 00:03:13 +01:00
Thomas
9c801f9ab6 inc size of name, max length names crash on addrecent due to buffer overflow 2022-03-24 22:46:43 +01:00
Rumble
5305783e1b Fixed World file errors 2021-03-06 19:29:28 +00:00
21 changed files with 221 additions and 136 deletions

19
.github/workflows/build.yml vendored Normal file
View 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

View File

@@ -10,6 +10,7 @@ to rec.games.mud.diku which originally announced CircleMUD as a publicly
available MUD source code.
tbaMUD Release history:
Version 2023 release: January, 2023
Version 2021 release: March, 2021
Version 2020 release: January, 2020
Version 2019 release: January, 2019

View File

@@ -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.
$n throws $mself after $N's throat.
$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.
$n tries to strangle $mself, making a very strange noise and getting blue in the face.
You strangle $M $t.

View File

@@ -1,5 +1,5 @@
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,
Katja Nyboe, Tom Madsen, Michael Seifert, and Sebastian Hammer

View File

@@ -3312,7 +3312,7 @@ the earthquake spell.
See also: WATERWALK, EARTHQUAKE
#0
FOLLOWERS
FOLLOWERS UNFOLLOW
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 2: see below
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:
@@ -9879,6 +9879,7 @@ tbalim test 61165
return
toggle nohassle on
To list empty zones "show zone none"
To setup test with zone 348
return
saveall

View File

@@ -128,6 +128,18 @@ Samuel himself is here, pouring the drinks and getting rich.
300 90000
8 8 1
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
Juan pusher potion~
Juan the potion pusher~

View File

@@ -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
4 3 5 3
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
14~
curving dagger~
a wickedly curving dagger~
A dagger lies here on the ground, its curve looking particularly wicked.~
~

View File

@@ -1929,6 +1929,34 @@ pamphlet leaflet photograph photo~
even your stomach... Blech!
~
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
De-Tox Unit~
This room seems to be the place where people get "detoxified". Although it

View File

@@ -1,6 +1,6 @@
#30200
The Top Of The Greasepole~
You've made it to the top! All you have to do now is get down...
The Top of the Greasepole~
You've made it to the top! All you have to do now is get down.
~
302 4 0 0 0 5
D5
@@ -9,6 +9,11 @@ It's a long slide down.
~
0 -1 30192
E
pole greasepole~
The pole still looks pretty bad, but it doesn't look quite as bad as before.
~
E
info credits~
See zone description room for Campus.
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
301, 302 and 303. Please ensure that any entrances into the area are flagged
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
#30201
@@ -71,13 +71,13 @@ D2
~
0 -1 30142
E
mail~
Why are you trying to look at the mail, it's private!
~
E
hooks hook key keys~
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
#30202
Main Office~
@@ -92,9 +92,10 @@ This way leads back to the reception desk.
door~
1 30103 30201
E
chair~
The chair is not unusual in any way whatsoever. The chair is in excellent
condition.
filing cabinet files~
Looking through the files you see that Wally World was originally slated to
have at least eleven levels but the designers got sick and tired of it and gave
up after just a few levels.
~
E
desk~
@@ -102,10 +103,9 @@ desk~
excellent condition.
~
E
filing cabinet files~
Looking through the files you see that Wally World was originally slated to
have at least eleven levels but the designers got sick and tired of it and gave
up after just a few levels.
chair~
The chair is not unusual in any way whatsoever. The chair is in excellent
condition.
~
S
#30203
@@ -230,14 +230,14 @@ You can't tell where this leads.
door~
1 -1 30210
E
door~
The door on the west has the number 206 and the door on the east, 205.
~
E
floor carpet~
This is a nice, groovy, red patterned carpet which extends all the way down
the hall.
~
E
door~
The door on the west has the number 206 and the door on the east, 205.
~
S
#30209
Private Room 205~
@@ -300,15 +300,15 @@ You can't tell where this leads.
door~
1 -1 30213
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~
This is a nice, groovy, red patterned carpet which extends all the way down
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
#30212
Private Room 203~
@@ -388,14 +388,14 @@ You can't tell where this leads.
door~
1 -1 30217
E
door~
The door on the west has the number 208 and the door on the east, 207.
~
E
floor carpet~
This is a nice, groovy, red patterned carpet which extends all the way down
the hall.
~
E
door~
The door on the west has the number 208 and the door on the east, 207.
~
S
#30216
Private Room 207~
@@ -458,15 +458,15 @@ You can't tell where this leads.
door~
1 -1 30220
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~
This is a nice, groovy, red patterned carpet which extends all the way down
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
#30219
Private Room 209~
@@ -654,14 +654,14 @@ The trapdoor leads up... beyond that, you aren't sure where it goes.
trapdoor door~
1 -1 30233
E
trapdoor~
The trapdoor is neatly fastened with a small hook.
~
E
desk chair plush~
The desk and chairs are neatly arranged as if in preparation for an upcoming
meeting or something of the sort.
~
E
trapdoor~
The trapdoor is neatly fastened with a small hook.
~
S
#30229
Hallway~
@@ -770,13 +770,13 @@ A chute leads down from this room.
~
0 -1 30235
E
chute~
The chute is rather smooth and looks to be a fun ride.
~
E
grate~
Beyond the grate you can see the attic.
~
E
chute~
The chute is rather smooth and looks to be a fun ride.
~
S
#30235
The Chute~
@@ -871,13 +871,13 @@ An exit from this hellhole.
~
0 -1 30240
E
mess~
Need you ask?
~
E
hell hole hellhole~
Never seen one before?
~
E
mess~
Need you ask?
~
S
#30240
The Ghetto~
@@ -897,13 +897,13 @@ A run-down house lies to the west.
~
0 -1 30239
E
house run-down~
It's in bad shape.
~
E
overturned police policemobile mobile~
It is blocking the road quite nicely. Maybe it is meant to impede passage.
~
E
house run-down~
It's in bad shape.
~
S
#30241
The Ghetto Intersection~
@@ -1344,16 +1344,16 @@ The auditorium is to the north.
~
0 -1 30259
E
drab brown curtains curtain~
They are just your average, everyday, drab brown curtains.
sturdy wooden plank planks~
They are sturdy. They are wooden. They are planks.
~
E
cords cord pulley pulleys~
Hey! It can make you look like you are flying!
~
E
sturdy wooden plank planks~
They are sturdy. They are wooden. They are planks.
drab brown curtains curtain~
They are just your average, everyday, drab brown curtains.
~
S
#30262
@@ -1403,13 +1403,13 @@ It's the same stairwell.
~
0 -1 30257
E
cobweb cobwebs web webs~
Don't disturb them now!
~
E
huge stone door~
The huge stone door looks very inviting.
~
E
cobweb cobwebs web webs~
Don't disturb them now!
~
S
#30265
The Grant Hall Clock~
@@ -1785,10 +1785,6 @@ It is too dark to tell.
~
0 -1 30276
E
door~
This door is covered with all types of non-magical sigils.
~
E
sigils~
The sigils seem to form some strange shapes:
SSSSS
@@ -1805,6 +1801,10 @@ sigils~
SSSSS
I wonder what it could be?
~
E
door~
This door is covered with all types of non-magical sigils.
~
S
#30281
A Classroom~
@@ -1851,13 +1851,13 @@ You are repulsed by this exit since the exit to the east is well lit.
~
0 -1 30274
E
light~
It's nice, warm, and inviting.
~
E
dark~
Are you mad?
~
E
light~
It's nice, warm, and inviting.
~
S
#30283
The Exit~
@@ -1875,13 +1875,13 @@ Back into darkness, I don't think so!
~
0 -1 30282
E
light~
It's nice, warm, and inviting.
~
E
dark~
Are you mad?
~
E
light~
It's nice, warm, and inviting.
~
S
#30284
Mob Chute A~
@@ -1916,10 +1916,6 @@ This is just an exit.
~
0 -1 30106
E
door~
This door is covered with all types of non-magical sigils.
~
E
sigils~
The sigils seem to form some strange shapes:
MMM MMM OOO OOO !!
@@ -1929,6 +1925,10 @@ sigils~
MM M MM OO OO OO OO
MM MM OOO OOO !!
~
E
door~
This door is covered with all types of non-magical sigils.
~
S
#30285
Mob Chute B~

View File

@@ -103,8 +103,6 @@ E 1 30135 4 16 (a T-square of Death)
O 0 30100 1 30176 (a red key)
O 0 30101 1 30186 (a brass key)
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 30111 (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 30141 2 1 (Campus Bookstore)
D 0 30167 5 1 (The Infobank)
D 0 30171 4 1 (The Special Hidden Room)
D 0 30177 0 1 (Hallway)
D 0 30179 2 1 (Library)
D 0 30178 3 2 (The Back Exit)

View File

@@ -2,6 +2,8 @@
Matrix of C.A.W.~
Campus II~
30200 30299 30 2
R 0 30200 30112 -1 (a tam)
O 1 30112 99 30200 (a tam)
M 0 30105 4 30284 (Security)
E 1 30115 99 16 (a flashlight)
M 0 30105 4 30284 (Security)
@@ -32,8 +34,6 @@ M 0 30132 1 30284 (Chris)
M 0 30137 1 30284 (Alex)
M 0 30138 1 30284 (Steve)
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)
G 1 30136 99 -1 (a pale apple)
G 1 30140 99 -1 (a can of PopCoke)

View File

@@ -1,6 +1,6 @@
#4
Unknown~
Jade Forest~
trunks shaoden~
Rename~
400 499 30 2 d 0 0 0 10 25
M 0 481 1 481 (Zachary)
G 1 403 99 -1 (rawhide whip)

View File

@@ -1,5 +1,5 @@
#6
Unknown~
q~
Sea of Souls~
600 699 30 2 d 0 0 0 10 25
M 0 600 1 600 (a snail)

View File

@@ -443,44 +443,50 @@ ACMD(do_exits)
{
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");
return;
}
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)
continue;
if (EXIT_FLAGGED(EXIT(ch, door), EX_CLOSED) && !CONFIG_DISP_CLOSED_DOORS)
continue;
if (EXIT_FLAGGED(EXIT(ch, door), EX_HIDDEN) && !PRF_FLAGGED(ch, PRF_HOLYLIGHT))
continue;
continue;
len++;
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);
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 -[%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);
}
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],
(EXIT(ch, door)->keyword)? fname(EXIT(ch, door)->keyword) : "opening",
EXIT_FLAGGED(EXIT(ch, door), EX_HIDDEN) ? " and hidden." : ".");
}
(EXIT(ch, door)->keyword) ? fname(EXIT(ch, door)->keyword) : "opening",
EXIT_FLAGGED(EXIT(ch, door), EX_HIDDEN) ? " and hidden." : ".");
}
else
{
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)
send_to_char(ch, " None.\r\n");
if (!len)
send_to_char(ch, " None.\r\n");
}
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)];
room_vnum target_room;
@@ -489,20 +495,22 @@ void look_at_room(struct char_data *ch, int ignore_brief)
if (!ch->desc)
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");
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");
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)) {
char buf[MAX_STRING_LENGTH];
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, "%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)) {
send_to_char(ch, "[T");
@@ -511,25 +519,26 @@ void look_at_room(struct char_data *ch, int ignore_brief)
send_to_char(ch, "]");
}
}
else
else {
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 ||
ROOM_FLAGGED(IN_ROOM(ch), ROOM_DEATH)) {
if(!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_AUTOMAP) && can_see_map(ch))
str_and_map(world[target_room].description, ch, target_room);
else
send_to_char(ch, "%s", world[IN_ROOM(ch)].description);
}
if ((!IS_NPC(ch) && !PRF_FLAGGED(ch, PRF_BRIEF)) || ignore_brief ||
ROOM_FLAGGED(IN_ROOM(ch), ROOM_DEATH)) {
if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_AUTOMAP) && can_see_map(ch))
str_and_map(world[target_room].description, ch, target_room);
}
/* autoexits */
if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_AUTOEXIT))
do_auto_exits(ch);
send_to_char(ch, "%s", world[IN_ROOM(ch)].description);
/* now list characters & objects */
list_obj_to_char(world[IN_ROOM(ch)].contents, ch, SHOW_OBJ_LONG, FALSE);
list_char_to_char(world[IN_ROOM(ch)].people, ch);
/*autoexits */
if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_AUTOEXIT))
do_auto_exits(ch);
/*now list characters &objects */
list_obj_to_char(world[IN_ROOM(ch)].contents, ch, SHOW_OBJ_LONG, FALSE);
list_char_to_char(world[IN_ROOM(ch)].people, ch);
}
}
static void look_in_direction(struct char_data *ch, int dir)

View File

@@ -461,6 +461,9 @@ int has_key(struct char_data *ch, obj_vnum key)
{
struct obj_data *o;
if (key == NOTHING)
return (0);
for (o = ch->carrying; o; o = o->next_content)
if (GET_OBJ_VNUM(o) == key)
return (1);

View File

@@ -546,7 +546,6 @@ ACMD(do_split)
if (rest) {
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");
increase_gold(ch, rest);
}
} else {
send_to_char(ch, "How many coins do you wish to split with your group?\r\n");

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 2021";
cpp_extern const char *tbamud_version = "tbaMUD 2023";
/* strings corresponding to ordinals/bitvectors in structs.h */
/* (Note: strings for class definitions in class.c instead of here) */

View File

@@ -1148,7 +1148,7 @@ int format_script(struct descriptor_data *d)
*line = '\0';
for (nlen = 0, i = 0;i<indent;i++) {
strncat(line, " ", sizeof(line)-1);
strncat(line, " ", sizeof(line) - strlen(line) - 1);
nlen += 2;
}

View File

@@ -268,7 +268,7 @@ void create_world_index(int znum, const char *type)
while (get_line(oldfile, buf)) {
if (*buf == '$') {
/* 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;
} else if (!found) {
sscanf(buf, "%d", &num);

View File

@@ -671,12 +671,20 @@ struct char_data *get_char_num(mob_rnum nr)
/* put an object in a 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)",
room, top_of_world, (void *)object);
}
else {
object->next_content = world[room].contents;
world[room].contents = object;
if (world[room].contents == NULL){ // if list is empty
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;
object->carried_by = NULL;
if (ROOM_FLAGGED(room, ROOM_HOUSE))

View File

@@ -1276,7 +1276,7 @@ struct happyhour {
struct recent_player
{
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 copyover_player; /* Is this a player that was on during the last copyover? */
time_t time; /* login time */