mirror of
https://github.com/tbamud/tbamud.git
synced 2025-12-22 10:10:13 +01:00
[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:
parent
0cf7b69493
commit
9107040d32
22 changed files with 108 additions and 104 deletions
16
changelog
16
changelog
|
|
@ -5,6 +5,22 @@ The Builder Academy
|
||||||
builderacademy.net 9091
|
builderacademy.net 9091
|
||||||
|
|
||||||
tbaMUD 3.54
|
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
|
[Oct 13 2007] - Rumble
|
||||||
Updated World, Help, News, Socials, and src for tbaMUD3.54rc.
|
Updated World, Help, News, Socials, and src for tbaMUD3.54rc.
|
||||||
Fixed bug where toggling syslog enabled brief. (thanks Rhade)
|
Fixed bug where toggling syslog enabled brief. (thanks Rhade)
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
Greater Gods
|
Greater Gods
|
||||||
~~~~~~~~~~~~
|
~~~~~~~~~~~~
|
||||||
|
Zizazat
|
||||||
|
|
||||||
Gods
|
Gods
|
||||||
~~~~
|
~~~~
|
||||||
|
|
|
||||||
|
|
@ -198,20 +198,6 @@ reason why Kell is so successful. Myrama is truly marvelous!
|
||||||
50 2500
|
50 2500
|
||||||
8 8 2
|
8 8 2
|
||||||
E
|
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
|
#29216
|
||||||
lawyer~
|
lawyer~
|
||||||
the Lawyer~
|
the Lawyer~
|
||||||
|
|
|
||||||
|
|
@ -530,32 +530,6 @@ A small, quick, loyal beagle is here.
|
||||||
8 8 0
|
8 8 0
|
||||||
BareHandAttack: 4
|
BareHandAttack: 4
|
||||||
E
|
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
|
#3095
|
||||||
cryogenicist cryo~
|
cryogenicist cryo~
|
||||||
the cryogenicist~
|
the cryogenicist~
|
||||||
|
|
|
||||||
|
|
@ -124,19 +124,6 @@ A guard is standing watch here.
|
||||||
8 8 1
|
8 8 1
|
||||||
BareHandAttack: 10
|
BareHandAttack: 10
|
||||||
E
|
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
|
#710
|
||||||
messenger~
|
messenger~
|
||||||
a messenger~
|
a messenger~
|
||||||
|
|
|
||||||
|
|
@ -33,9 +33,6 @@ ACMD(do_page);
|
||||||
ACMD(do_gen_comm);
|
ACMD(do_gen_comm);
|
||||||
ACMD(do_qcomm);
|
ACMD(do_qcomm);
|
||||||
void handle_webster_file(void);
|
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;
|
static long last_webster_teller = -1L;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1419,7 +1419,7 @@ ACMD(do_users)
|
||||||
continue;
|
continue;
|
||||||
if (showclass && !(showclass & (1 << GET_CLASS(tch))))
|
if (showclass && !(showclass & (1 << GET_CLASS(tch))))
|
||||||
continue;
|
continue;
|
||||||
if (GET_INVIS_LEV(ch) > GET_LEVEL(ch))
|
if (GET_INVIS_LEV(tch) > GET_LEVEL(ch))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (d->original)
|
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_1);
|
||||||
REMOVE_BIT_AR(PRF_FLAGS(ch), PRF_COLOR_2);
|
REMOVE_BIT_AR(PRF_FLAGS(ch), PRF_COLOR_2);
|
||||||
SET_BIT_AR(PRF_FLAGS(ch), (PRF_COLOR_1 * (tp & 1)));
|
if (tp & 1) SET_BIT_AR(PRF_FLAGS(ch), PRF_COLOR_1);
|
||||||
SET_BIT_AR(PRF_FLAGS(ch), (PRF_COLOR_2 * (tp & 2) >> 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]);
|
send_to_char(ch, "Your %scolor%s is now %s.\r\n", CCRED(ch, C_SPR), CCNRM(ch, C_OFF), types[tp]);
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -825,8 +825,25 @@ ACMD(do_drink)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!*arg) {
|
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");
|
send_to_char(ch, "Drink from what?\r\n");
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!(temp = get_obj_in_list_vis(ch, arg, NULL, ch->carrying))) {
|
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))) {
|
if (!(temp = get_obj_in_list_vis(ch, arg, NULL, world[IN_ROOM(ch)].contents))) {
|
||||||
|
|
|
||||||
|
|
@ -202,9 +202,8 @@ ACMD(do_steal)
|
||||||
if (!AWAKE(vict)) /* Easier to steal from sleeping people. */
|
if (!AWAKE(vict)) /* Easier to steal from sleeping people. */
|
||||||
percent -= 50;
|
percent -= 50;
|
||||||
|
|
||||||
/* NO NO With Imp's and Shopkeepers, and if player thieving is not allowed */
|
/* No stealing if not allowed. If it is no stealing from Imm's or Shopkeepers. */
|
||||||
if (GET_LEVEL(vict) >= LVL_IMMORT || pcsteal ||
|
if (GET_LEVEL(vict) >= LVL_IMMORT || pcsteal || GET_MOB_SPEC(vict) == shop_keeper)
|
||||||
GET_MOB_SPEC(vict) == shop_keeper)
|
|
||||||
percent = 101; /* Failure */
|
percent = 101; /* Failure */
|
||||||
|
|
||||||
if (str_cmp(obj_name, "coins") && str_cmp(obj_name, "gold")) {
|
if (str_cmp(obj_name, "coins") && str_cmp(obj_name, "gold")) {
|
||||||
|
|
|
||||||
|
|
@ -1317,35 +1317,43 @@ ACMD(do_return)
|
||||||
|
|
||||||
ACMD(do_load)
|
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)) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
if (!is_number(buf2)) {
|
if (!is_number(buf2) || !is_number(buf3)) {
|
||||||
send_to_char(ch, "That is not a number.\r\n");
|
send_to_char(ch, "That is not a number.\r\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (atoi(buf3) > 0 ) {
|
||||||
|
n = atoi(buf3);
|
||||||
|
} else {
|
||||||
|
n = 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (is_abbrev(buf, "mob")) {
|
if (is_abbrev(buf, "mob")) {
|
||||||
struct char_data *mob;
|
struct char_data *mob=NULL;
|
||||||
mob_rnum r_num;
|
mob_rnum r_num;
|
||||||
|
|
||||||
if ((r_num = real_mobile(atoi(buf2))) == NOBODY) {
|
if ((r_num = real_mobile(atoi(buf2))) == NOBODY) {
|
||||||
send_to_char(ch, "There is no monster with that number.\r\n");
|
send_to_char(ch, "There is no monster with that number.\r\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mob = read_mobile(r_num, REAL);
|
for (i=0; i < n; i++) {
|
||||||
char_to_room(mob, IN_ROOM(ch));
|
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,
|
act("$n makes a quaint, magical gesture with one hand.", TRUE, ch, 0, 0, TO_ROOM);
|
||||||
0, 0, TO_ROOM);
|
act("$n has created $N!", FALSE, ch, 0, mob, TO_ROOM);
|
||||||
act("$n has created $N!", FALSE, ch, 0, mob, TO_ROOM);
|
act("You create $N.", FALSE, ch, 0, mob, TO_CHAR);
|
||||||
act("You create $N.", FALSE, ch, 0, mob, TO_CHAR);
|
load_mtrigger(mob);
|
||||||
load_mtrigger(mob);
|
}
|
||||||
} else if (is_abbrev(buf, "obj")) {
|
} else if (is_abbrev(buf, "obj")) {
|
||||||
struct obj_data *obj;
|
struct obj_data *obj;
|
||||||
obj_rnum r_num;
|
obj_rnum r_num;
|
||||||
|
|
@ -1354,15 +1362,17 @@ ACMD(do_load)
|
||||||
send_to_char(ch, "There is no object with that number.\r\n");
|
send_to_char(ch, "There is no object with that number.\r\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
obj = read_object(r_num, REAL);
|
for (i=0; i < n; i++) {
|
||||||
if (CONFIG_LOAD_INVENTORY)
|
obj = read_object(r_num, REAL);
|
||||||
obj_to_char(obj, ch);
|
if (CONFIG_LOAD_INVENTORY)
|
||||||
else
|
obj_to_char(obj, ch);
|
||||||
obj_to_room(obj, IN_ROOM(ch));
|
else
|
||||||
act("$n makes a strange magical gesture.", TRUE, ch, 0, 0, TO_ROOM);
|
obj_to_room(obj, IN_ROOM(ch));
|
||||||
act("$n has created $p!", FALSE, ch, obj, 0, TO_ROOM);
|
act("$n makes a strange magical gesture.", TRUE, ch, 0, 0, TO_ROOM);
|
||||||
act("You create $p.", FALSE, ch, obj, 0, TO_CHAR);
|
act("$n has created $p!", FALSE, ch, obj, 0, TO_ROOM);
|
||||||
load_otrigger(obj);
|
act("You create $p.", FALSE, ch, obj, 0, TO_CHAR);
|
||||||
|
load_otrigger(obj);
|
||||||
|
}
|
||||||
} else
|
} else
|
||||||
send_to_char(ch, "That'll have to be either 'obj' or 'mob'.\r\n");
|
send_to_char(ch, "That'll have to be either 'obj' or 'mob'.\r\n");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
3
src/db.c
3
src/db.c
|
|
@ -3233,7 +3233,7 @@ int check_object_spell_number(struct obj_data *obj, int val)
|
||||||
int error = FALSE;
|
int error = FALSE;
|
||||||
const char *spellname;
|
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);
|
return (error);
|
||||||
|
|
||||||
/* Check for negative spells, spells beyond the top define, and any spell
|
/* 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);
|
snprintf(buf, sizeof(buf), "%s/%s", DFLT_DIR, CONFIG_CONFFILE);
|
||||||
if ( !(fl = fopen(CONFIG_CONFFILE, "r")) && !(fl = fopen(buf, "r")) ) {
|
if ( !(fl = fopen(CONFIG_CONFFILE, "r")) && !(fl = fopen(buf, "r")) ) {
|
||||||
snprintf(buf, sizeof(buf), "No %s file, using defaults", CONFIG_CONFFILE);
|
snprintf(buf, sizeof(buf), "No %s file, using defaults", CONFIG_CONFFILE);
|
||||||
|
perror(buf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1113,7 +1113,20 @@ o->contains));
|
||||||
strcpy(str, "0");
|
strcpy(str, "0");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'h':
|
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) */
|
/* thanks to Jamie Nelson (Mordecai of 4 Dimensions MUD) */
|
||||||
if (!str_cmp(field, "has_in")) {
|
if (!str_cmp(field, "has_in")) {
|
||||||
if (GET_OBJ_TYPE(o) == ITEM_CONTAINER)
|
if (GET_OBJ_TYPE(o) == ITEM_CONTAINER)
|
||||||
|
|
|
||||||
|
|
@ -1005,7 +1005,7 @@ void perform_violence(void)
|
||||||
/* should master auto-assist followers? */
|
/* should master auto-assist followers? */
|
||||||
if (ch->master && PRF_FLAGGED(ch->master, PRF_AUTOASSIST) &&
|
if (ch->master && PRF_FLAGGED(ch->master, PRF_AUTOASSIST) &&
|
||||||
FIGHTING(ch) && !FIGHTING(ch->master) &&
|
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);
|
do_assist(ch->master, GET_NAME(ch), 0, 0);
|
||||||
|
|
||||||
hit(ch, FIGHTING(ch), TYPE_UNDEFINED);
|
hit(ch, FIGHTING(ch), TYPE_UNDEFINED);
|
||||||
|
|
|
||||||
|
|
@ -1222,12 +1222,7 @@ int perform_dupe_check(struct descriptor_data *d)
|
||||||
case RECON:
|
case RECON:
|
||||||
write_to_output(d, "Reconnecting.\r\n");
|
write_to_output(d, "Reconnecting.\r\n");
|
||||||
act("$n has reconnected.", TRUE, d->character, 0, 0, TO_ROOM);
|
act("$n has reconnected.", TRUE, d->character, 0, 0, TO_ROOM);
|
||||||
|
mudlog(NRM, MAX(0, GET_INVIS_LEV(d->character)), TRUE, "%s [%s] has reconnected.", GET_NAME(d->character), d->host);
|
||||||
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));
|
|
||||||
|
|
||||||
if (has_mail(GET_IDNUM(d->character)))
|
if (has_mail(GET_IDNUM(d->character)))
|
||||||
write_to_output(d, "You have mail waiting.\r\n");
|
write_to_output(d, "You have mail waiting.\r\n");
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
#define STAMP_PRICE 150
|
#define STAMP_PRICE 150
|
||||||
|
|
||||||
/* Maximum size of mail in bytes (arbitrary) */
|
/* Maximum size of mail in bytes (arbitrary) */
|
||||||
#define MAX_MAIL_SIZE 4096
|
#define MAX_MAIL_SIZE 8192
|
||||||
|
|
||||||
/* size of mail file allocation blocks */
|
/* size of mail file allocation blocks */
|
||||||
#define BLOCK_SIZE 100
|
#define BLOCK_SIZE 100
|
||||||
|
|
|
||||||
|
|
@ -447,7 +447,7 @@ void medit_parse(struct descriptor_data *d, char *arg)
|
||||||
if (OLC_MODE(d) > MEDIT_NUMERICAL_RESPONSE) {
|
if (OLC_MODE(d) > MEDIT_NUMERICAL_RESPONSE) {
|
||||||
i = atoi(arg);
|
i = atoi(arg);
|
||||||
if (!*arg || (!isdigit(arg[0]) && ((*arg == '-') && !isdigit(arg[1])))) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
} else { /* String response. */
|
} else { /* String response. */
|
||||||
|
|
|
||||||
|
|
@ -402,7 +402,7 @@ void page_string(struct descriptor_data *d, char *str, int keep_internal)
|
||||||
if (!str || !*str)
|
if (!str || !*str)
|
||||||
return;
|
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;
|
GET_PAGE_LENGTH(d->character) = PAGE_LENGTH;
|
||||||
d->showstr_count = count_pages(str, d->character);
|
d->showstr_count = count_pages(str, d->character);
|
||||||
CREATE(d->showstr_vector, char *, d->showstr_count);
|
CREATE(d->showstr_vector, char *, d->showstr_count);
|
||||||
|
|
|
||||||
|
|
@ -374,13 +374,15 @@ 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, "Plyd")) ch->player.time.played = atoi(line);
|
||||||
else if (!strcmp(tag, "PfIn")) POOFIN(ch) = strdup(line);
|
else if (!strcmp(tag, "PfIn")) POOFIN(ch) = strdup(line);
|
||||||
else if (!strcmp(tag, "PfOt")) POOFOUT(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) {
|
if (sscanf(line, "%s %s %s %s", f1, f2, f3, f4) == 4) {
|
||||||
PRF_FLAGS(ch)[0] = asciiflag_conv(f1);
|
PRF_FLAGS(ch)[0] = asciiflag_conv(f1);
|
||||||
PRF_FLAGS(ch)[1] = asciiflag_conv(f2);
|
PRF_FLAGS(ch)[1] = asciiflag_conv(f2);
|
||||||
PRF_FLAGS(ch)[2] = asciiflag_conv(f3);
|
PRF_FLAGS(ch)[2] = asciiflag_conv(f3);
|
||||||
PRF_FLAGS(ch)[3] = asciiflag_conv(f4);
|
PRF_FLAGS(ch)[3] = asciiflag_conv(f4);
|
||||||
}
|
} else
|
||||||
|
PRF_FLAGS(ch)[0] = asciiflag_conv(f1);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'Q':
|
case 'Q':
|
||||||
|
|
@ -705,6 +707,9 @@ void remove_player(int pfilepos)
|
||||||
if (!*player_table[pfilepos].name)
|
if (!*player_table[pfilepos].name)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/* Update top_of_p_table. */
|
||||||
|
top_of_p_table -= 1;
|
||||||
|
|
||||||
/* Unlink all player-owned files */
|
/* Unlink all player-owned files */
|
||||||
for (i = 0; i < MAX_FILES; i++) {
|
for (i = 0; i < MAX_FILES; i++) {
|
||||||
if (get_filename(fname, sizeof(fname), i, player_table[pfilepos].name))
|
if (get_filename(fname, sizeof(fname), i, player_table[pfilepos].name))
|
||||||
|
|
|
||||||
|
|
@ -246,15 +246,18 @@ void sedit_products_menu(struct descriptor_data *d)
|
||||||
void sedit_compact_rooms_menu(struct descriptor_data *d)
|
void sedit_compact_rooms_menu(struct descriptor_data *d)
|
||||||
{
|
{
|
||||||
struct shop_data *shop;
|
struct shop_data *shop;
|
||||||
int i, count = 0;
|
int i;
|
||||||
|
|
||||||
shop = OLC_SHOP(d);
|
shop = OLC_SHOP(d);
|
||||||
get_char_colors(d->character);
|
get_char_colors(d->character);
|
||||||
|
|
||||||
clear_screen(d);
|
clear_screen(d);
|
||||||
for (i = 0; S_ROOM(shop, i) != NOWHERE; i++) {
|
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,
|
if (real_room(S_ROOM(shop, i)) != NOWHERE) {
|
||||||
!(++count % 5) ? "\r\n" : "");
|
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"
|
write_to_output(d, "\r\n"
|
||||||
"%sA%s) Add a new room.\r\n"
|
"%sA%s) Add a new room.\r\n"
|
||||||
|
|
|
||||||
|
|
@ -240,7 +240,7 @@ int evaluate_expression(struct obj_data *obj, char *expr)
|
||||||
name[ptr - end] = '\0';
|
name[ptr - end] = '\0';
|
||||||
for (eindex = 0; *extra_bits[eindex] != '\n'; eindex++)
|
for (eindex = 0; *extra_bits[eindex] != '\n'; eindex++)
|
||||||
if (!str_cmp(name, extra_bits[eindex])) {
|
if (!str_cmp(name, extra_bits[eindex])) {
|
||||||
push(&vals, OBJ_FLAGGED(obj, 1 << eindex));
|
push(&vals, OBJ_FLAGGED(obj, eindex));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (*extra_bits[eindex] == '\n')
|
if (*extra_bits[eindex] == '\n')
|
||||||
|
|
|
||||||
|
|
@ -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);
|
act("You recite $p which dissolves.", TRUE, ch, obj, 0, TO_CHAR);
|
||||||
if (obj->action_description)
|
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
|
else
|
||||||
act("$n recites $p.", FALSE, ch, obj, NULL, TO_ROOM);
|
act("$n recites $p.", FALSE, ch, obj, NULL, TO_ROOM);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -485,14 +485,14 @@
|
||||||
#define HISTORY_SIZE 5 /* Keep last 5 commands. */
|
#define HISTORY_SIZE 5 /* Keep last 5 commands. */
|
||||||
#define MAX_STRING_LENGTH 49152
|
#define MAX_STRING_LENGTH 49152
|
||||||
#define MAX_INPUT_LENGTH 512 /* Max length per *line* of input */
|
#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_MESSAGES 60
|
||||||
#define MAX_NAME_LENGTH 20
|
#define MAX_NAME_LENGTH 20
|
||||||
/* ** MAX_PWD_LENGTH changed from 10 to 30 for ascii test - Sam ** */
|
/* ** MAX_PWD_LENGTH changed from 10 to 30 for ascii test - Sam ** */
|
||||||
#define MAX_PWD_LENGTH 30
|
#define MAX_PWD_LENGTH 30
|
||||||
#define MAX_TITLE_LENGTH 80
|
#define MAX_TITLE_LENGTH 80
|
||||||
#define HOST_LENGTH 40
|
#define HOST_LENGTH 40
|
||||||
#define PLR_DESC_LENGTH 512
|
#define PLR_DESC_LENGTH 2048
|
||||||
#define MAX_SKILLS 200
|
#define MAX_SKILLS 200
|
||||||
#define MAX_AFFECT 32
|
#define MAX_AFFECT 32
|
||||||
#define MAX_OBJ_AFFECT 6 /* Used in obj_file_elem */
|
#define MAX_OBJ_AFFECT 6 /* Used in obj_file_elem */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue