Merge branch 'master' of ssh://snoopy/home/polesz/repos/wmud
This commit is contained in:
commit
525aff7a00
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,3 +1,6 @@
|
|||||||
config.log
|
config.log
|
||||||
config.cache
|
config.cache
|
||||||
config.status
|
config.status
|
||||||
|
syslog
|
||||||
|
syslog.CRASH
|
||||||
|
*.swp
|
||||||
|
1
lib/etc/.gitignore
vendored
1
lib/etc/.gitignore
vendored
@ -3,3 +3,4 @@ players
|
|||||||
plrmail
|
plrmail
|
||||||
badsites
|
badsites
|
||||||
board.immort
|
board.immort
|
||||||
|
time
|
||||||
|
1
lib/plrobjs/.gitignore
vendored
Normal file
1
lib/plrobjs/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*.objs
|
12
log/.gitignore
vendored
Normal file
12
log/.gitignore
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
syslog*
|
||||||
|
badpws
|
||||||
|
delete
|
||||||
|
dts
|
||||||
|
errors
|
||||||
|
godcmds
|
||||||
|
levels
|
||||||
|
newplayers
|
||||||
|
rentgone
|
||||||
|
restarts
|
||||||
|
rip
|
||||||
|
usage
|
@ -173,6 +173,9 @@ void show_obj_modifiers(struct obj_data *obj, struct char_data *ch)
|
|||||||
|
|
||||||
if (OBJ_FLAGGED(obj, ITEM_HUM))
|
if (OBJ_FLAGGED(obj, ITEM_HUM))
|
||||||
send_to_char(ch, " ..It emits a faint humming sound!");
|
send_to_char(ch, " ..It emits a faint humming sound!");
|
||||||
|
|
||||||
|
if (IS_BURIED(obj))
|
||||||
|
send_to_char(ch, " ... It is buried!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1608,10 +1611,12 @@ ACMD(do_toggle)
|
|||||||
" Deaf: %-3s "
|
" Deaf: %-3s "
|
||||||
" Wimp Level: %-3s\r\n"
|
" Wimp Level: %-3s\r\n"
|
||||||
|
|
||||||
" Gossip Channel: %-3s "
|
" Auto Loot: %-3s "
|
||||||
"Auction Channel: %-3s "
|
" Auto Drain: %-3s "
|
||||||
" Grats Channel: %-3s\r\n"
|
" Gossip Channel: %-3s\r\n"
|
||||||
|
|
||||||
|
"Auction Channel: %-3s "
|
||||||
|
" Grats Channel: %-3s "
|
||||||
" Color Level: %s\r\n",
|
" Color Level: %s\r\n",
|
||||||
|
|
||||||
ONOFF(PRF_FLAGGED(ch, PRF_DISPHP)),
|
ONOFF(PRF_FLAGGED(ch, PRF_DISPHP)),
|
||||||
@ -1629,6 +1634,8 @@ ACMD(do_toggle)
|
|||||||
ONOFF(PRF_FLAGGED(ch, PRF_AUTOEXIT)),
|
ONOFF(PRF_FLAGGED(ch, PRF_AUTOEXIT)),
|
||||||
YESNO(PRF_FLAGGED(ch, PRF_DEAF)),
|
YESNO(PRF_FLAGGED(ch, PRF_DEAF)),
|
||||||
buf2,
|
buf2,
|
||||||
|
ONOFF(PRF_FLAGGED(ch, PRF_AUTOLOOT)),
|
||||||
|
ONOFF(PRF_FLAGGED(ch, PRF_AUTODRAIN)),
|
||||||
|
|
||||||
ONOFF(!PRF_FLAGGED(ch, PRF_NOGOSS)),
|
ONOFF(!PRF_FLAGGED(ch, PRF_NOGOSS)),
|
||||||
ONOFF(!PRF_FLAGGED(ch, PRF_NOAUCT)),
|
ONOFF(!PRF_FLAGGED(ch, PRF_NOAUCT)),
|
||||||
|
@ -913,7 +913,11 @@ ACMD(do_gen_tog)
|
|||||||
{"Autoexits disabled.\r\n",
|
{"Autoexits disabled.\r\n",
|
||||||
"Autoexits enabled.\r\n"},
|
"Autoexits enabled.\r\n"},
|
||||||
{"Will no longer track through doors.\r\n",
|
{"Will no longer track through doors.\r\n",
|
||||||
"Will now track through doors.\r\n"}
|
"Will now track through doors.\r\n"},
|
||||||
|
{"AutoLoot disabled.\r\n",
|
||||||
|
"AutoLoot enabled.\r\n"},
|
||||||
|
{"AutoDrain disabled.\r\n",
|
||||||
|
"AutoDrain enabled.\r\n"}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -969,6 +973,12 @@ ACMD(do_gen_tog)
|
|||||||
case SCMD_AUTOEXIT:
|
case SCMD_AUTOEXIT:
|
||||||
result = PRF_TOG_CHK(ch, PRF_AUTOEXIT);
|
result = PRF_TOG_CHK(ch, PRF_AUTOEXIT);
|
||||||
break;
|
break;
|
||||||
|
case SCMD_AUTOLOOT:
|
||||||
|
result = PRF_TOG_CHK(ch, PRF_AUTOLOOT);
|
||||||
|
break;
|
||||||
|
case SCMD_AUTODRAIN:
|
||||||
|
result = PRF_TOG_CHK(ch, PRF_AUTODRAIN);
|
||||||
|
break;
|
||||||
case SCMD_TRACK:
|
case SCMD_TRACK:
|
||||||
result = (track_through_doors = !track_through_doors);
|
result = (track_through_doors = !track_through_doors);
|
||||||
break;
|
break;
|
||||||
@ -1091,9 +1101,7 @@ ACMD(do_dig)
|
|||||||
/*
|
/*
|
||||||
** search for an object in the room that has a ITEM_BURIED flag
|
** search for an object in the room that has a ITEM_BURIED flag
|
||||||
*/
|
*/
|
||||||
obj = world[IN_ROOM(ch)].contents;
|
for (obj = world[IN_ROOM(ch)].contents; obj; obj = obj->next)
|
||||||
|
|
||||||
while (obj != NULL)
|
|
||||||
{
|
{
|
||||||
if (IS_BURIED(obj))
|
if (IS_BURIED(obj))
|
||||||
{
|
{
|
||||||
@ -1113,13 +1121,10 @@ ACMD(do_dig)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* add the bit back becuase the player can't unbury what
|
/* add the bit back becuase the player can't unbury what
|
||||||
** what he can't find... */
|
** he can't find... */
|
||||||
SET_BIT(GET_OBJ_EXTRA(obj), ITEM_BURIED);
|
SET_BIT(GET_OBJ_EXTRA(obj), ITEM_BURIED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* go to the next obj */
|
|
||||||
obj = obj->next;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if the player didn't find anything */
|
/* if the player didn't find anything */
|
||||||
@ -1133,7 +1138,8 @@ ACMD(do_drain)
|
|||||||
struct obj_data *obj;
|
struct obj_data *obj;
|
||||||
int HIT = 0,
|
int HIT = 0,
|
||||||
MANA = 0,
|
MANA = 0,
|
||||||
MOVE = 0;
|
MOVE = 0,
|
||||||
|
reward;
|
||||||
|
|
||||||
one_argument(argument, arg);
|
one_argument(argument, arg);
|
||||||
|
|
||||||
@ -1150,14 +1156,31 @@ ACMD(do_drain)
|
|||||||
}
|
}
|
||||||
|
|
||||||
act("$n bends down and touches $p which slowly disappears.\r\n", FALSE, ch, obj, NULL, TO_ROOM);
|
act("$n bends down and touches $p which slowly disappears.\r\n", FALSE, ch, obj, NULL, TO_ROOM);
|
||||||
act("You bend down and drain $p.\r\n", FALSE, ch, obj, NULL, TO_ROOM);
|
act("You bend down and drain $p.\r\n", FALSE, ch, obj, NULL, TO_CHAR);
|
||||||
|
|
||||||
HIT = rand() % GET_LEVEL(ch) * 2 + 1;
|
if ((reward = rand_number(1, 2)) == 1)
|
||||||
MANA = rand() % GET_LEVEL(ch) + 1;
|
{
|
||||||
MOVE = rand() % 15 + 1;
|
HIT = rand_number(1, GET_LEVEL(ch) * 2);
|
||||||
GET_HIT(ch) = GET_HIT(ch) + HIT;
|
MANA = rand_number(1, GET_LEVEL(ch));
|
||||||
GET_MANA(ch) = GET_MANA(ch) + MANA;
|
MOVE = rand_number(1, 15);
|
||||||
GET_MOVE(ch) = GET_MOVE(ch) + MOVE;
|
GET_HIT(ch) += HIT;
|
||||||
|
GET_MANA(ch) += MANA;
|
||||||
|
GET_MOVE(ch) += MOVE;
|
||||||
|
send_to_char(ch, "The Gods rewarded you with %dH %dM %dV\r\n", HIT, MANA, MOVE);
|
||||||
|
}
|
||||||
|
else if (reward == 2)
|
||||||
|
{
|
||||||
|
int amount = rand_number(1, 5);
|
||||||
|
GET_GOLD(ch) += amount;
|
||||||
|
send_to_char(ch, "The Gods rewarded you with %d gold coin%s\r\n", amount, (amount > 1) ? "s" : "");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int amount = rand_number(1, GET_LEVEL(ch) * 5);
|
||||||
|
|
||||||
|
gain_exp(ch, amount);
|
||||||
|
send_to_char(ch, "The Gods rewarded you with %d experience point%s.\r\n", amount, (amount >1) ? "s" : "");
|
||||||
|
}
|
||||||
|
|
||||||
extract_obj(obj);
|
extract_obj(obj);
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,7 @@ int pk_allowed = NO;
|
|||||||
int pt_allowed = NO;
|
int pt_allowed = NO;
|
||||||
|
|
||||||
/* minimum level a player must be to shout/holler/gossip/auction */
|
/* minimum level a player must be to shout/holler/gossip/auction */
|
||||||
int level_can_shout = 1;
|
int level_can_shout = 2;
|
||||||
|
|
||||||
/* number of movement points it costs to holler */
|
/* number of movement points it costs to holler */
|
||||||
int holler_move_cost = 20;
|
int holler_move_cost = 20;
|
||||||
@ -93,7 +93,7 @@ int dts_are_dumps = YES;
|
|||||||
* able to carry around things like boards. That's not necessarily a bad
|
* able to carry around things like boards. That's not necessarily a bad
|
||||||
* thing, but this will be left at a default of 'NO' for historic reasons.
|
* thing, but this will be left at a default of 'NO' for historic reasons.
|
||||||
*/
|
*/
|
||||||
int load_into_inventory = NO;
|
int load_into_inventory = YES;
|
||||||
|
|
||||||
/* "okay" etc. */
|
/* "okay" etc. */
|
||||||
const char *OK = "Okay.\r\n";
|
const char *OK = "Okay.\r\n";
|
||||||
|
@ -184,6 +184,8 @@ const char *preference_bits[] = {
|
|||||||
"NO_GOS",
|
"NO_GOS",
|
||||||
"NO_GTZ",
|
"NO_GTZ",
|
||||||
"RMFLG",
|
"RMFLG",
|
||||||
|
"AUTOLOOT",
|
||||||
|
"AUTODRAIN",
|
||||||
"\n"
|
"\n"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
11
src/fight.c
11
src/fight.c
@ -36,6 +36,8 @@ extern int max_npc_corpse_time, max_pc_corpse_time;
|
|||||||
/* External procedures */
|
/* External procedures */
|
||||||
char *fread_action(FILE *fl, int nr);
|
char *fread_action(FILE *fl, int nr);
|
||||||
ACMD(do_flee);
|
ACMD(do_flee);
|
||||||
|
ACMD(do_get);
|
||||||
|
ACMD(do_drain);
|
||||||
int backstab_mult(int level);
|
int backstab_mult(int level);
|
||||||
int thaco(int ch_class, int level);
|
int thaco(int ch_class, int level);
|
||||||
int ok_damage_shopkeeper(struct char_data *ch, struct char_data *victim);
|
int ok_damage_shopkeeper(struct char_data *ch, struct char_data *victim);
|
||||||
@ -832,6 +834,15 @@ int damage(struct char_data *ch, struct char_data *victim, int dam, int attackty
|
|||||||
forget(ch, victim);
|
forget(ch, victim);
|
||||||
}
|
}
|
||||||
die(victim);
|
die(victim);
|
||||||
|
|
||||||
|
/* If AUTOLOOT is enabled, loot everything from corpse */
|
||||||
|
if (IS_NPC(victim) && !IS_NPC(ch) && PRF_FLAGGED(ch, PRF_AUTOLOOT))
|
||||||
|
do_get(ch, "all corpse", 0, 0);
|
||||||
|
|
||||||
|
/* IF AUTODRAIN is enabled, drain corpse */
|
||||||
|
if (IS_NPC(victim) && !IS_NPC(ch) && PRF_FLAGGED(ch, PRF_AUTODRAIN))
|
||||||
|
do_drain(ch, "corpse", 0, 0);
|
||||||
|
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
return (dam);
|
return (dam);
|
||||||
|
@ -223,6 +223,8 @@ cpp_extern const struct command_info cmd_info[] = {
|
|||||||
{ "ask" , POS_RESTING , do_spec_comm, 0, SCMD_ASK },
|
{ "ask" , POS_RESTING , do_spec_comm, 0, SCMD_ASK },
|
||||||
{ "auction" , POS_SLEEPING, do_gen_comm , 0, SCMD_AUCTION },
|
{ "auction" , POS_SLEEPING, do_gen_comm , 0, SCMD_AUCTION },
|
||||||
{ "autoexit" , POS_DEAD , do_gen_tog , 0, SCMD_AUTOEXIT },
|
{ "autoexit" , POS_DEAD , do_gen_tog , 0, SCMD_AUTOEXIT },
|
||||||
|
{ "autoloot" , POS_DEAD , do_gen_tog , 0, SCMD_AUTOLOOT },
|
||||||
|
{ "autodrain", POS_DEAD , do_gen_tog , 0, SCMD_AUTODRAIN },
|
||||||
|
|
||||||
{ "bounce" , POS_STANDING, do_action , 0, 0 },
|
{ "bounce" , POS_STANDING, do_action , 0, 0 },
|
||||||
{ "backstab" , POS_STANDING, do_backstab , 1, 0 },
|
{ "backstab" , POS_STANDING, do_backstab , 1, 0 },
|
||||||
|
@ -119,6 +119,8 @@ struct alias_data {
|
|||||||
#define SCMD_SLOWNS 14
|
#define SCMD_SLOWNS 14
|
||||||
#define SCMD_AUTOEXIT 15
|
#define SCMD_AUTOEXIT 15
|
||||||
#define SCMD_TRACK 16
|
#define SCMD_TRACK 16
|
||||||
|
#define SCMD_AUTOLOOT 17
|
||||||
|
#define SCMD_AUTODRAIN 18
|
||||||
|
|
||||||
/* do_wizutil */
|
/* do_wizutil */
|
||||||
#define SCMD_REROLL 0
|
#define SCMD_REROLL 0
|
||||||
|
@ -215,6 +215,8 @@
|
|||||||
#define PRF_NOGRATZ (1 << 20) /* Can't hear grats channel */
|
#define PRF_NOGRATZ (1 << 20) /* Can't hear grats channel */
|
||||||
#define PRF_ROOMFLAGS (1 << 21) /* Can see room flags (ROOM_x) */
|
#define PRF_ROOMFLAGS (1 << 21) /* Can see room flags (ROOM_x) */
|
||||||
#define PRF_DISPAUTO (1 << 22) /* Show prompt HP, MP, MV when < 30%. */
|
#define PRF_DISPAUTO (1 << 22) /* Show prompt HP, MP, MV when < 30%. */
|
||||||
|
#define PRF_AUTOLOOT (1 << 23) /* Automatically loot corpses */
|
||||||
|
#define PRF_AUTODRAIN (1 << 24) /* Automatically drain corpses */
|
||||||
|
|
||||||
/* Affect bits: used in char_data.char_specials.saved.affected_by */
|
/* Affect bits: used in char_data.char_specials.saved.affected_by */
|
||||||
/* WARNING: In the world files, NEVER set the bits marked "R" ("Reserved") */
|
/* WARNING: In the world files, NEVER set the bits marked "R" ("Reserved") */
|
||||||
@ -314,7 +316,6 @@
|
|||||||
#define ITEM_PEN 21 /* Item is a pen */
|
#define ITEM_PEN 21 /* Item is a pen */
|
||||||
#define ITEM_BOAT 22 /* Item is a boat */
|
#define ITEM_BOAT 22 /* Item is a boat */
|
||||||
#define ITEM_FOUNTAIN 23 /* Item is a fountain */
|
#define ITEM_FOUNTAIN 23 /* Item is a fountain */
|
||||||
#define ITEM_BURIED 24 /* Item is buried */
|
|
||||||
|
|
||||||
|
|
||||||
/* Take/Wear flags: used by obj_data.obj_flags.wear_flags */
|
/* Take/Wear flags: used by obj_data.obj_flags.wear_flags */
|
||||||
@ -353,6 +354,7 @@
|
|||||||
#define ITEM_ANTI_THIEF (1 << 14) /* Not usable by thieves */
|
#define ITEM_ANTI_THIEF (1 << 14) /* Not usable by thieves */
|
||||||
#define ITEM_ANTI_WARRIOR (1 << 15) /* Not usable by warriors */
|
#define ITEM_ANTI_WARRIOR (1 << 15) /* Not usable by warriors */
|
||||||
#define ITEM_NOSELL (1 << 16) /* Shopkeepers won't touch it */
|
#define ITEM_NOSELL (1 << 16) /* Shopkeepers won't touch it */
|
||||||
|
#define ITEM_BURIED (1 << 17) /* Item is buried */
|
||||||
|
|
||||||
|
|
||||||
/* Modifier constants used with obj affects ('A' fields) */
|
/* Modifier constants used with obj affects ('A' fields) */
|
||||||
|
Loading…
Reference in New Issue
Block a user