[Nov 12 2007] - Rumble

Updated users command to fix GET_INVIS_LEV bug.
  Updated the drink command to work in rooms where the sector type should logically allow it.
[Oct 04 2007] - Rumble
  Increased the size of a mail message from 4k to 8k.
  Updated remove_player so that the players command would not show phantom users when someone self-deletes.
  Updated sedit_rooms_menu to prevent a crash bug when trying to display a shop with rooms that have been removed.
[Nov 01 2007] - Rumble
  Updated mag_objectmagic bug where action description was not being used correctly on scrolls.
  Increased the size of MAX_RAW_INPUT_LENGTH and PLR_DESC_LENGTH.
[Oct 19 2007] - Rumble
  Fixed a few more 128 bit MOB_FLAGGED bugs.
[Oct 17 2007] - Rumble
  Fixed loading of non-128 bit prefs in load_char. (thanks Ziz)
[Oct 15 2007] - Rumble
  Removed some prototypes leftover from the old history command. (thanks Rhade)
This commit is contained in:
Rumble 2007-11-23 22:24:38 +00:00
parent 0cf7b69493
commit 9107040d32
22 changed files with 108 additions and 104 deletions

View file

@ -5,6 +5,22 @@ The Builder Academy
builderacademy.net 9091
tbaMUD 3.54
[Nov 12 2007] - Rumble
Updated users command to fix GET_INVIS_LEV bug.
Updated the drink command to work in rooms where the sector type should logically allow it.
[Oct 04 2007] - Rumble
Increased the size of a mail message from 4k to 8k.
Updated remove_player so that the players command would not show phantom users when someone self-deletes.
Updated sedit_rooms_menu to prevent a crash bug when trying to display a shop with rooms that have been removed.
[Nov 01 2007] - Rumble
Updated mag_objectmagic bug where action description was not being used correctly on scrolls.
Increased the size of MAX_RAW_INPUT_LENGTH and PLR_DESC_LENGTH.
[Oct 19 2007] - Rumble
Fixed a few more 128 bit MOB_FLAGGED bugs.
[Oct 17 2007] - Rumble
Fixed loading of non-128 bit prefs in load_char. (thanks Ziz)
[Oct 15 2007] - Rumble
Removed some prototypes leftover from the old history command. (thanks Rhade)
[Oct 13 2007] - Rumble
Updated World, Help, News, Socials, and src for tbaMUD3.54rc.
Fixed bug where toggling syslog enabled brief. (thanks Rhade)

View file

@ -8,6 +8,7 @@
Greater Gods
~~~~~~~~~~~~
Zizazat
Gods
~~~~

View file

@ -198,20 +198,6 @@ reason why Kell is so successful. Myrama is truly marvelous!
50 2500
8 8 2
E
#29215
herbalist shopkeeper~
the Herbalist~
The herbalist is here, reading to her plants.
~
The herbalist is an ancient woman, but she still seems spry and sharp-minded
when it comes to plants. You've no doubt this woman is an expert in her field.
~
188426 0 0 0 0 0 0 0 500 E
23 13 -3 4d4+230 3d3+3
230 52900
8 8 2
E
#29216
lawyer~
the Lawyer~

View file

@ -530,32 +530,6 @@ A small, quick, loyal beagle is here.
8 8 0
BareHandAttack: 4
E
#3093
rottweiler pets~
the rottweiler~
A large, loyal rottweiler is here.
~
The rottweiler looks like a strong, fierce fighter.
~
16398 0 0 0 0 0 0 0 0 E
3 19 8 0d0+30 1d2+0
30 900
8 8 0
BareHandAttack: 4
E
#3094
wolf pets~
the wolf~
A large, trained wolf is here.
~
The wolf looks like a strong, fearless fighter.
~
16398 0 0 0 0 0 0 0 0 E
4 19 7 0d0+40 1d2+0
40 1600
8 8 0
BareHandAttack: 4
E
#3095
cryogenicist cryo~
the cryogenicist~

View file

@ -124,19 +124,6 @@ A guard is standing watch here.
8 8 1
BareHandAttack: 10
E
#709
woodswoman~
a woodswoman~
A woodswoman is looking for a woodsman to nag.
~
She looks upset about something.
~
72 0 0 0 8192 0 0 0 0 E
7 18 5 1d1+70 1d2+1
70 4900
8 8 2
BareHandAttack: 8
E
#710
messenger~
a messenger~

View file

@ -33,9 +33,6 @@ ACMD(do_page);
ACMD(do_gen_comm);
ACMD(do_qcomm);
void handle_webster_file(void);
ACMD(do_list_history);
void new_hist_messg(struct descriptor_data *d, const char *msg);
void free_hist_messg(struct descriptor_data *d);
static long last_webster_teller = -1L;

View file

@ -1419,7 +1419,7 @@ ACMD(do_users)
continue;
if (showclass && !(showclass & (1 << GET_CLASS(tch))))
continue;
if (GET_INVIS_LEV(ch) > GET_LEVEL(ch))
if (GET_INVIS_LEV(tch) > GET_LEVEL(ch))
continue;
if (d->original)
@ -1967,8 +1967,8 @@ ACMD(do_toggle)
}
REMOVE_BIT_AR(PRF_FLAGS(ch), PRF_COLOR_1);
REMOVE_BIT_AR(PRF_FLAGS(ch), PRF_COLOR_2);
SET_BIT_AR(PRF_FLAGS(ch), (PRF_COLOR_1 * (tp & 1)));
SET_BIT_AR(PRF_FLAGS(ch), (PRF_COLOR_2 * (tp & 2) >> 1));
if (tp & 1) SET_BIT_AR(PRF_FLAGS(ch), PRF_COLOR_1);
if (tp & 2) SET_BIT_AR(PRF_FLAGS(ch), PRF_COLOR_2);
send_to_char(ch, "Your %scolor%s is now %s.\r\n", CCRED(ch, C_SPR), CCNRM(ch, C_OFF), types[tp]);
return;

View file

@ -825,9 +825,26 @@ ACMD(do_drink)
return;
if (!*arg) {
char buf[MAX_STRING_LENGTH];
switch (SECT(IN_ROOM(ch))) {
case SECT_WATER_SWIM:
case SECT_WATER_NOSWIM:
case SECT_UNDERWATER:
if ((GET_COND(ch, HUNGER) > 20) && (GET_COND(ch, THIRST) > 0)) {
send_to_char(ch, "Your stomach can't contain anymore!\r\n");
}
snprintf(buf, sizeof(buf), "$n takes a refreshing drink.");
act(buf, TRUE, ch, 0, 0, TO_ROOM);
send_to_char(ch, "You take a refreshing drink.\r\n");
gain_condition(ch, THIRST, 1);
if (GET_COND(ch, THIRST) > 20)
send_to_char(ch, "You don't feel thirsty any more.\r\n");
return;
default:
send_to_char(ch, "Drink from what?\r\n");
return;
}
}
if (!(temp = get_obj_in_list_vis(ch, arg, NULL, ch->carrying))) {
if (!(temp = get_obj_in_list_vis(ch, arg, NULL, world[IN_ROOM(ch)].contents))) {
send_to_char(ch, "You can't find it!\r\n");

View file

@ -202,9 +202,8 @@ ACMD(do_steal)
if (!AWAKE(vict)) /* Easier to steal from sleeping people. */
percent -= 50;
/* NO NO With Imp's and Shopkeepers, and if player thieving is not allowed */
if (GET_LEVEL(vict) >= LVL_IMMORT || pcsteal ||
GET_MOB_SPEC(vict) == shop_keeper)
/* No stealing if not allowed. If it is no stealing from Imm's or Shopkeepers. */
if (GET_LEVEL(vict) >= LVL_IMMORT || pcsteal || GET_MOB_SPEC(vict) == shop_keeper)
percent = 101; /* Failure */
if (str_cmp(obj_name, "coins") && str_cmp(obj_name, "gold")) {

View file

@ -1317,35 +1317,43 @@ ACMD(do_return)
ACMD(do_load)
{
char buf[MAX_INPUT_LENGTH], buf2[MAX_INPUT_LENGTH];
char buf[MAX_INPUT_LENGTH], buf2[MAX_INPUT_LENGTH], buf3[MAX_INPUT_LENGTH];
int i=0, n=1;
two_arguments(argument, buf, buf2);
one_argument(two_arguments(argument, buf, buf2), buf3);
if (!*buf || !*buf2 || !isdigit(*buf2)) {
send_to_char(ch, "Usage: load { obj | mob } <number>\r\n");
send_to_char(ch, "Usage: load < obj | mob > <vnum> <number>\r\n");
return;
}
if (!is_number(buf2)) {
if (!is_number(buf2) || !is_number(buf3)) {
send_to_char(ch, "That is not a number.\r\n");
return;
}
if (atoi(buf3) > 0 ) {
n = atoi(buf3);
} else {
n = 1;
}
if (is_abbrev(buf, "mob")) {
struct char_data *mob;
struct char_data *mob=NULL;
mob_rnum r_num;
if ((r_num = real_mobile(atoi(buf2))) == NOBODY) {
send_to_char(ch, "There is no monster with that number.\r\n");
return;
}
for (i=0; i < n; i++) {
mob = read_mobile(r_num, REAL);
char_to_room(mob, IN_ROOM(ch));
act("$n makes a quaint, magical gesture with one hand.", TRUE, ch,
0, 0, TO_ROOM);
act("$n makes a quaint, magical gesture with one hand.", TRUE, ch, 0, 0, TO_ROOM);
act("$n has created $N!", FALSE, ch, 0, mob, TO_ROOM);
act("You create $N.", FALSE, ch, 0, mob, TO_CHAR);
load_mtrigger(mob);
}
} else if (is_abbrev(buf, "obj")) {
struct obj_data *obj;
obj_rnum r_num;
@ -1354,6 +1362,7 @@ ACMD(do_load)
send_to_char(ch, "There is no object with that number.\r\n");
return;
}
for (i=0; i < n; i++) {
obj = read_object(r_num, REAL);
if (CONFIG_LOAD_INVENTORY)
obj_to_char(obj, ch);
@ -1363,6 +1372,7 @@ ACMD(do_load)
act("$n has created $p!", FALSE, ch, obj, 0, TO_ROOM);
act("You create $p.", FALSE, ch, obj, 0, TO_CHAR);
load_otrigger(obj);
}
} else
send_to_char(ch, "That'll have to be either 'obj' or 'mob'.\r\n");
}

View file

@ -3233,7 +3233,7 @@ int check_object_spell_number(struct obj_data *obj, int val)
int error = FALSE;
const char *spellname;
if (GET_OBJ_VAL(obj, val) == -1) /* i.e.: no spell */
if (GET_OBJ_VAL(obj, val) == -1 || GET_OBJ_VAL(obj, val) == 0) /* no spell */
return (error);
/* Check for negative spells, spells beyond the top define, and any spell
@ -3428,6 +3428,7 @@ void load_config( void )
snprintf(buf, sizeof(buf), "%s/%s", DFLT_DIR, CONFIG_CONFFILE);
if ( !(fl = fopen(CONFIG_CONFFILE, "r")) && !(fl = fopen(buf, "r")) ) {
snprintf(buf, sizeof(buf), "No %s file, using defaults", CONFIG_CONFFILE);
perror(buf);
return;
}

View file

@ -1113,6 +1113,19 @@ o->contains));
strcpy(str, "0");
}
break;
case 'e':
if (!str_cmp(field, "extra")) {
if (subfield && *subfield) {
if (check_flags_by_name_ar(GET_OBJ_EXTRA(o), NUM_ITEM_FLAGS, subfield, extra_bits) > 0)
snprintf(str, slen, "1");
else
snprintf(str, slen, "0");
} else
snprintf(str, slen, "0");
} else {
sprintbitarray(GET_OBJ_EXTRA(o), extra_bits, EF_ARRAY_MAX, str);
}
break;
case 'h':
/* thanks to Jamie Nelson (Mordecai of 4 Dimensions MUD) */
if (!str_cmp(field, "has_in")) {

View file

@ -1005,7 +1005,7 @@ void perform_violence(void)
/* should master auto-assist followers? */
if (ch->master && PRF_FLAGGED(ch->master, PRF_AUTOASSIST) &&
FIGHTING(ch) && !FIGHTING(ch->master) &&
(IN_ROOM(ch->master) == IN_ROOM(ch)))
(IN_ROOM(ch->master) == IN_ROOM(ch)) && !IS_NPC(ch->master))
do_assist(ch->master, GET_NAME(ch), 0, 0);
hit(ch, FIGHTING(ch), TYPE_UNDEFINED);

View file

@ -1222,12 +1222,7 @@ int perform_dupe_check(struct descriptor_data *d)
case RECON:
write_to_output(d, "Reconnecting.\r\n");
act("$n has reconnected.", TRUE, d->character, 0, 0, TO_ROOM);
if (GET_INVIS_LEV(d->character))
mudlog(BRF, MAX(LVL_IMMORT, GET_INVIS_LEV(d->character)), TRUE, "%s has reconnected. (invis %d)", GET_NAME(d->character), GET_INVIS_LEV(d->character));
else
mudlog(BRF, LVL_IMMORT, TRUE, "%s has reconnected.", GET_NAME(d->character));
mudlog(NRM, MAX(0, GET_INVIS_LEV(d->character)), TRUE, "%s [%s] has reconnected.", GET_NAME(d->character), d->host);
if (has_mail(GET_IDNUM(d->character)))
write_to_output(d, "You have mail waiting.\r\n");
break;

View file

@ -18,7 +18,7 @@
#define STAMP_PRICE 150
/* Maximum size of mail in bytes (arbitrary) */
#define MAX_MAIL_SIZE 4096
#define MAX_MAIL_SIZE 8192
/* size of mail file allocation blocks */
#define BLOCK_SIZE 100

View file

@ -447,7 +447,7 @@ void medit_parse(struct descriptor_data *d, char *arg)
if (OLC_MODE(d) > MEDIT_NUMERICAL_RESPONSE) {
i = atoi(arg);
if (!*arg || (!isdigit(arg[0]) && ((*arg == '-') && !isdigit(arg[1])))) {
write_to_output(d, "Field must be numerical, try again : ");
write_to_output(d, "Try again : ");
return;
}
} else { /* String response. */

View file

@ -402,7 +402,7 @@ void page_string(struct descriptor_data *d, char *str, int keep_internal)
if (!str || !*str)
return;
if ((GET_PAGE_LENGTH(d->character) < 5 || GET_PAGE_LENGTH(d->character) > 254))
if ((GET_PAGE_LENGTH(d->character) < 5 || GET_PAGE_LENGTH(d->character) > 255))
GET_PAGE_LENGTH(d->character) = PAGE_LENGTH;
d->showstr_count = count_pages(str, d->character);
CREATE(d->showstr_vector, char *, d->showstr_count);

View file

@ -374,12 +374,14 @@ int load_char(const char *name, struct char_data *ch)
else if (!strcmp(tag, "Plyd")) ch->player.time.played = atoi(line);
else if (!strcmp(tag, "PfIn")) POOFIN(ch) = strdup(line);
else if (!strcmp(tag, "PfOt")) POOFOUT(ch) = strdup(line);
else if (!strcmp(tag, "Pref"))
else if (!strcmp(tag, "Pref")) {
if (sscanf(line, "%s %s %s %s", f1, f2, f3, f4) == 4) {
PRF_FLAGS(ch)[0] = asciiflag_conv(f1);
PRF_FLAGS(ch)[1] = asciiflag_conv(f2);
PRF_FLAGS(ch)[2] = asciiflag_conv(f3);
PRF_FLAGS(ch)[3] = asciiflag_conv(f4);
} else
PRF_FLAGS(ch)[0] = asciiflag_conv(f1);
}
break;
@ -705,6 +707,9 @@ void remove_player(int pfilepos)
if (!*player_table[pfilepos].name)
return;
/* Update top_of_p_table. */
top_of_p_table -= 1;
/* Unlink all player-owned files */
for (i = 0; i < MAX_FILES; i++) {
if (get_filename(fname, sizeof(fname), i, player_table[pfilepos].name))

View file

@ -246,15 +246,18 @@ void sedit_products_menu(struct descriptor_data *d)
void sedit_compact_rooms_menu(struct descriptor_data *d)
{
struct shop_data *shop;
int i, count = 0;
int i;
shop = OLC_SHOP(d);
get_char_colors(d->character);
clear_screen(d);
for (i = 0; S_ROOM(shop, i) != NOWHERE; i++) {
write_to_output(d, "%2d - [%s%5d%s] | %s", i, cyn, S_ROOM(shop, i), nrm,
!(++count % 5) ? "\r\n" : "");
if (real_room(S_ROOM(shop, i)) != NOWHERE) {
write_to_output(d, "%2d - [@c%5d@n] - @y%s@n\r\n", i, S_ROOM(shop, i), world[real_room(S_ROOM(shop, i))].name);
} else {
write_to_output(d, "%2d - [@R!Removed Room!@n]\r\n", i);
}
}
write_to_output(d, "\r\n"
"%sA%s) Add a new room.\r\n"

View file

@ -240,7 +240,7 @@ int evaluate_expression(struct obj_data *obj, char *expr)
name[ptr - end] = '\0';
for (eindex = 0; *extra_bits[eindex] != '\n'; eindex++)
if (!str_cmp(name, extra_bits[eindex])) {
push(&vals, OBJ_FLAGGED(obj, 1 << eindex));
push(&vals, OBJ_FLAGGED(obj, eindex));
break;
}
if (*extra_bits[eindex] == '\n')

View file

@ -386,7 +386,7 @@ void mag_objectmagic(struct char_data *ch, struct obj_data *obj,
act("You recite $p which dissolves.", TRUE, ch, obj, 0, TO_CHAR);
if (obj->action_description)
act(obj->action_description, FALSE, ch, obj, NULL, TO_ROOM);
act(obj->action_description, FALSE, ch, obj, tch, TO_ROOM);
else
act("$n recites $p.", FALSE, ch, obj, NULL, TO_ROOM);

View file

@ -485,14 +485,14 @@
#define HISTORY_SIZE 5 /* Keep last 5 commands. */
#define MAX_STRING_LENGTH 49152
#define MAX_INPUT_LENGTH 512 /* Max length per *line* of input */
#define MAX_RAW_INPUT_LENGTH 512 /* Max size of *raw* input */
#define MAX_RAW_INPUT_LENGTH 1024 /* Max size of *raw* input */
#define MAX_MESSAGES 60
#define MAX_NAME_LENGTH 20
/* ** MAX_PWD_LENGTH changed from 10 to 30 for ascii test - Sam ** */
#define MAX_PWD_LENGTH 30
#define MAX_TITLE_LENGTH 80
#define HOST_LENGTH 40
#define PLR_DESC_LENGTH 512
#define PLR_DESC_LENGTH 2048
#define MAX_SKILLS 200
#define MAX_AFFECT 32
#define MAX_OBJ_AFFECT 6 /* Used in obj_file_elem */