Increase vnum capabilities

This commit is contained in:
kinther 2025-10-02 15:30:14 -07:00
parent 6d17d8d77a
commit 0ebf1cb02f
25 changed files with 231 additions and 51 deletions

View file

@ -38,7 +38,7 @@ dark hair has been pulled back behind her head, intensifying the sharpness of
her nose.
~
2122 0 0 0 0 0 0 0 0 E
0 3d20+40 1d1
1 3d20+40 1d1
8 8 2
Str: 14
Dex: 18
@ -75,4 +75,24 @@ Con: 18
E
L 14 113 1
L 9 112 1
#103
woman lanky scarred~
the lanky, scarred woman~
The lanky, scarred woman is leaning against a wall here.
~
This human woman is of average height and has a very lanky frame. Her skin
hugs her body tightly and there is little fat to be seen, possibly due to
dehydration. Tanned dark from the harsh rays of the sun, her upper torso is
covered in scars from a lifetime of labor. Unkempt brown hair covers her head,
descending to just above her shoulders. Her eyes are a light blue color and
appear slightly bloodshot.
~
10 0 0 0 0 0 0 0 0 E
1 3d8+60 1d2
8 8 2
Str: 12
Dex: 14
Con: 14
Cha: 14
E
$

View file

@ -1 +0,0 @@
$

View file

@ -1,4 +1,3 @@
0.mob
1.mob
2.mob
$

View file

@ -255,12 +255,81 @@ A backpack made of thick hide is lying here.~
75 0 0 0
5 50 0 0 0
#132
bar bartop~
a long, wooden bar~
A long, wooden bar takes up most of the south side of the room.~
It's a long wooden bar!
counter~
a long, stone counter~
A long, rough-hewn stone counter is here along the eastern wall.~
This stone countertop is a crude L-shape, allowing the staff of the
establishment to enter from behind it as need be. Carved of stone, it is
rough-hewn except on the very top, which has been polished down as much as
possible. Chips and cracks have formed across its surface, which is beginning
to show its age. Most of the counter is relatively clean, but certain spots are
sticky from spilled drink and food.
~
6 0 0 0 0 0 0 0 0 0 0 0 0
8 0 0 0
200 0 0 0 0
#133
table long carved stone~
a long, carved stone table~
A long, carved stone table is near the southern wall.~
Made of one piece of solid stone, this table is easily six feet in length. At
each of its corners a thick leg supports the top. Each leg at the base has been
carved to look like an erdlu's foot, with small talons extending out diagonally.
Over time it has been worn and chipped, leaving it stained but still functional.
~
6 0 0 0 0 0 0 0 0 0 0 0 0
6 0 1 0
100 0 0 0 0
#134
ledge small stone~
a small stone ledge~
A small stone ledge rests against the western wall here.~
This makeshift seat is really nothing more than a large slab of stone. It is
unfinished, yet shows some attempts to carve it into a more suitable place to
sit upon. One end is still slightly jagged, though has been dulled so as not to
easily hurt someone.
~
6 0 0 0 0 0 0 0 0 0 0 0 0
2 0 0 0
100 0 0 0 0
#135
mug ale~
a mug of ale~
A mug of ale has been left here.~
Made of clay, this mug appears to have been fired in a kiln to retain its shape.
The craftsmanship is questionable, but it does it job well enough.
~
17 0 0 0 0 ap 0 0 0 0 0 0 0
3 3 3 0
8 12 0 0 0
#136
shot whiskey~
a shot of whiskey~
A shot of whiskey has been set here.~
This shotglass is made of fired clay and is small enough to hold a single pour
of spirits.
~
17 0 0 0 0 ap 0 0 0 0 0 0 0
1 1 5 0
1 15 0 0 0
#137
shot firebreather~
a shot of firebreather~
A shot of firebreather has been set here.~
Made of discolored stone, this shotglass appears to have been chipped by
hand. It could probably hold a small amount of spirits.
~
17 0 0 0 0 ap 0 0 0 0 0 0 0
0 0 0 0
1 15 0 0 0
#138
cup water~
a cup of water~
A small cup filled with water is here.~
This small cup is carved from wood and looks like it could hold a fair amount
of liquid.
~
17 0 0 0 0 a 0 0 0 0 0 0 0
4 4 0 0
1 15 0 0 0
$~

View file

@ -1 +0,0 @@
$

View file

@ -1,4 +1,3 @@
0.obj
1.obj
2.obj
$

View file

@ -1 +0,0 @@
$~

View file

@ -1,4 +1,3 @@
0.qst
1.qst
2.qst
$

View file

@ -1,9 +1,12 @@
#R 100 1758817753
.
#R 134 1758842652
#R 134 1759416763
M 103
M 102
E 9 112
E 14 113
G 135
G 136
G 137
G 138
O 132 0 200 0 0
X 0 0
X 1 0
@ -21,4 +24,64 @@ V 4 0
V 5 0
V 6 0
V 7 0
O 133 0 100 0 0
X 0 0
X 1 0
X 2 0
X 3 0
W 0 0
W 1 0
W 2 0
W 3 0
V 0 6
V 1 0
V 2 1
V 3 0
V 4 0
V 5 0
V 6 0
V 7 0
O 134 0 100 0 0
X 0 0
X 1 0
X 2 0
X 3 0
W 0 0
W 1 0
W 2 0
W 3 0
V 0 2
V 1 0
V 2 0
V 3 0
V 4 0
V 5 0
V 6 0
V 7 0
.
#R 100 1759444166
M 101
E 3 118
E 5 131
E 6 110
E 7 108
E 8 115
E 9 124
E 10 107
E 11 111
E 15 117
E 16 117
E 17 127
M 100
E 3 118
E 5 131
E 6 110
E 7 108
E 8 115
E 9 124
E 10 107
E 11 111
E 15 117
E 16 117
E 17 127
.

View file

@ -1 +1,50 @@
CircleMUD v3.0 Shop File~
#100~
135
136
137
138
-1
1.00
1.00
-1
%s We're fresh out of that.~
%s Trying to sell something you don't have?~
%s Not interested. Try someone else.~
%s I can't afford that!~
%s Come back when you have some coin.~
%s That'll be %d coins.~
%s I'll give you %d coins for that.~
0
4
102
0
134
-1
0
28
0
0
#101~
138
-1
1.00
1.00
-1
%s Sorry, I don't stock that item.~
%s You don't seem to have that.~
%s I don't trade in such items.~
%s I can't afford that!~
%s You are too poor!~
%s That'll be %d coins, thanks.~
%s I'll give you %d coins for that.~
0
0
103
0
-1
0
28
0
0
$~

View file

@ -1 +0,0 @@
$~

View file

@ -1,4 +1,3 @@
0.shp
1.shp
2.shp
$

View file

@ -142,7 +142,7 @@ S
Caravan Way~
This unfinished room was created by Kinther.
~
1 0 0 0 0 0
1 0 0 0 0 1
D0
~
~
@ -528,7 +528,11 @@ D2
S
#134
The Golden Inix Inn~
This unfinished room was created by Kinther.
This large, open room is filled with tables of various shapes and sizes.
The smell of food being cooked drifts through the area and seems to be coming
from a curtained doorway. In a corner is an L-shaped counter made of rough-hewn
stone which has a selection of drinks behind it. Near the eastern wall, a
stairway heads upward toward an open dormitory.
~
1 131080 0 0 0 0
D0

View file

@ -1,7 +0,0 @@
#200
A room~
You are in an unfinished room.
~
2 0 0 0 0 0
S
$~

View file

@ -1,4 +1,3 @@
0.wld
1.wld
2.wld
$

View file

@ -1,8 +1,6 @@
#1
None.~
City of Tyr~
100 199 30 2
M 0 100 1 100 (the tall, burly human soldier)
M 0 101 1 100 (a slim, lanky human soldier)
100 999 30 2
S
$

View file

@ -1,6 +0,0 @@
#2
Kinther~
City of Tyr Expanded~
200 299 30 2
S
$

View file

@ -1,4 +1,3 @@
0.zon
1.zon
2.zon
$

View file

@ -5797,7 +5797,7 @@ ACMD(do_msave)
o = GET_EQ(vict, pos);
if (!o) continue;
if (GET_OBJ_VNUM(o) <= 0) continue;
loadout_add_entry(&mob_proto[rnum].proto_loadout, GET_OBJ_VNUM(o), (sh_int)pos, 1);
loadout_add_entry(&mob_proto[rnum].proto_loadout, GET_OBJ_VNUM(o), (int)pos, 1);
equips_added++;
}

View file

@ -1864,7 +1864,7 @@ void parse_mobile(FILE *mob_f, int nr)
log("SYSERR: Bad 'L' line in mob #%d: '%s' (need <wear_pos> <obj_vnum> [qty]).", nr, line);
} else {
if (qty < 1) qty = 1;
loadout_add_entry(&mob_proto[i].proto_loadout, vnum, (sh_int)wpos, qty);
loadout_add_entry(&mob_proto[i].proto_loadout, vnum, (int)wpos, qty);
}
/* look ahead to see if there is another 'L' */
letter = fread_letter(mob_f);
@ -1892,7 +1892,7 @@ void parse_mobile(FILE *mob_f, int nr)
log("SYSERR: Bad post-trigger 'L' line in mob #%d: '%s' (need <wear_pos> <obj_vnum> [qty]).", nr, line);
} else {
if (qty < 1) qty = 1;
loadout_add_entry(&mob_proto[i].proto_loadout, vnum, (sh_int)wpos, qty);
loadout_add_entry(&mob_proto[i].proto_loadout, vnum, (int)wpos, qty);
}
letter = fread_letter(mob_f);
}
@ -2145,7 +2145,7 @@ static void load_zones(FILE *fl, char *zonename)
line_num += get_line(fl, buf);
if (sscanf(buf, "#%hd", &Z.number) != 1) {
if (sscanf(buf, "#%d", &Z.number) != 1) {
log("SYSERR: Format error in %s, line %d", zname, line_num);
exit(1);
}
@ -2168,15 +2168,15 @@ static void load_zones(FILE *fl, char *zonename)
line_num += get_line(fl, buf);
/* Look for 10 items first (new tbaMUD), if not found, try 4 (old tbaMUD) */
if (sscanf(buf, " %hd %hd %d %d %s %s %s %s %d %d", &Z.bot, &Z.top, &Z.lifespan,
if (sscanf(buf, " %d %d %d %d %s %s %s %s %d %d", &Z.bot, &Z.top, &Z.lifespan,
&Z.reset_mode, zbuf1, zbuf2, zbuf3, zbuf4, &Z.min_level, &Z.max_level) != 10)
{
if (sscanf(buf, " %hd %hd %d %d ", &Z.bot, &Z.top, &Z.lifespan, &Z.reset_mode) != 4) {
if (sscanf(buf, " %d %d %d %d ", &Z.bot, &Z.top, &Z.lifespan, &Z.reset_mode) != 4) {
/* This may be due to the fact that the zone has no builder. So, we just
* attempt to fix this by copying the previous 2 last reads into this
* variable and the last one. */
log("SYSERR: Format error in numeric constant line of %s, attempting to fix.", zname);
if (sscanf(Z.name, " %hd %hd %d %d ", &Z.bot, &Z.top, &Z.lifespan, &Z.reset_mode) != 4) {
if (sscanf(Z.name, " %d %d %d %d ", &Z.bot, &Z.top, &Z.lifespan, &Z.reset_mode) != 4) {
log("SYSERR: Could not fix previous error, aborting game.");
exit(1);
} else {

View file

@ -1068,7 +1068,7 @@ ACMD(do_mdoor)
strcat(newexit->general_description, "\r\n");
break;
case 2: /* flags */
newexit->exit_info = (sh_int)asciiflag_conv(value);
newexit->exit_info = (int)asciiflag_conv(value);
break;
case 3: /* key */
newexit->key = atoi(value);

View file

@ -668,7 +668,7 @@ static OCMD(do_odoor)
strcat(newexit->general_description, "\r\n"); /* strcat : OK */
break;
case 2: /* flags */
newexit->exit_info = (sh_int)asciiflag_conv(value);
newexit->exit_info = (int)asciiflag_conv(value);
break;
case 3: /* key */
newexit->key = atoi(value);

View file

@ -267,7 +267,7 @@ WCMD(do_wdoor)
strcat(newexit->general_description, "\r\n");
break;
case 2: /* flags */
newexit->exit_info = (sh_int)asciiflag_conv(value);
newexit->exit_info = (int)asciiflag_conv(value);
break;
case 3: /* key */
newexit->key = atoi(value);

View file

@ -1302,7 +1302,7 @@ void boot_the_shops(FILE *shop_f, char *filename, int rec_count)
shop_index[top_shop].message_sell = read_shop_message(6, SHOP_NUM(top_shop), shop_f, buf2);
read_line(shop_f, "%d", &SHOP_BROKE_TEMPER(top_shop));
read_line(shop_f, "%ld", &SHOP_BITVECTOR(top_shop));
read_line(shop_f, "%hd", &SHOP_KEEPER(top_shop));
read_line(shop_f, "%d", &SHOP_KEEPER(top_shop));
SHOP_KEEPER(top_shop) = real_mobile(SHOP_KEEPER(top_shop));
read_line(shop_f, "%d", &SHOP_TRADE_WITH(top_shop));

View file

@ -27,7 +27,7 @@
* signed anymore so use the unsigned types and get 65,535 objects instead of
* 32,768. NOTE: This will likely be unconditionally unsigned later.
* 0 = use signed indexes; 1 = use unsigned indexes */
#define CIRCLE_UNSIGNED_INDEX 1
#define CIRCLE_UNSIGNED_INDEX 0
#if CIRCLE_UNSIGNED_INDEX
# define IDXTYPE ush_int /**< Index types are unsigned short ints */
@ -38,9 +38,9 @@
# define NOBODY ((IDXTYPE)~0) /**< Sets to ush_int_MAX, or 65,535 */
# define NOFLAG ((IDXTYPE)~0) /**< Sets to ush_int_MAX, or 65,535 */
#else
# define IDXTYPE sh_int /**< Index types are unsigned short ints */
# define IDXTYPE_MAX SHRT_MAX /**< Used for compatibility checks. */
# define IDXTYPE_MIN SHRT_MIN /**< Used for compatibility checks. */
# define IDXTYPE int /**< Index types are unsigned short ints */
# define IDXTYPE_MAX INT_MAX /**< Used for compatibility checks. */
# define IDXTYPE_MIN INT_MIN /**< Used for compatibility checks. */
# define NOWHERE ((IDXTYPE)-1) /**< nil reference for rooms */
# define NOTHING ((IDXTYPE)-1) /**< nil reference for objects */
# define NOBODY ((IDXTYPE)-1) /**< nil reference for mobiles */