#ifdef LOCMIN_NEWBIE
if (otstbit(ob, OFL_NEWBIE)) {
if (plev(mynum) > 3 && plev(mynum) < LVL_WIZARD) {
bprintf("You can't, it's for new players.\n");
return(1);
}
else if (ob < num_const_obs) {
if (objinv(mynum, oname(ob)) != -1)
bprintf("You already have it.\n");
else {
clone_object(ob, -1, NULL, mynum, CARRIED_BY);
bprintf("As you take the %s, a new one flashes into existance!\n",
oname(ob));
}
return(1);
}
}
#endif
#ifdef LOCMIN_CAVE
if (plev (mynum) < LVL_WIZARD)
if ((l = alive ((max_players + MOB_CAVE_DRAGON))) != -1 &&
ploc (l) == ploc (mynum)) {
bprintf ("The dragon makes it clear that he doesn't want "
"his treasure borrowed!\n");
return(-2);
}
#endif
#ifdef LOCMIN_MITHDAN
if ((ob == OBJ_MITHDAN_CRYSTAL) && (state (OBJ_MITHDAN_CRYSTAL) == 1)) {
setploc (MOB_MITHDAN_DRUID + max_players, ploc(mynum));
setploc (MOB_MITHDAN_DRUID2 + max_players, ploc(mynum));
bprintf("The druids, angered at you for defiling their sacred relic, shout "
"an\nancient oath and leap towards you.\n");
send_msg(sendloc(mynum), 0, pvis (mynum), LVL_MAX, mynum, NOBODY,
"A pair of druids appear on each side of %s and attack!\n", pname(mynum));
setpagg (MOB_MITHDAN_DRUID + max_players, 100);
setpagg (MOB_MITHDAN_DRUID2 + max_players, 100);
setpspeed (MOB_MITHDAN_DRUID + max_players, 0);
setpagg (MOB_MITHDAN_DRUID2 + max_players, 100);
setpspeed (MOB_MITHDAN_DRUID + max_players, 0);
setpspeed (MOB_MITHDAN_DRUID2 + max_players, 0);
setobjstate (OBJ_MITHDAN_CRYSTAL, 0);
hit_player (MOB_MITHDAN_DRUID + max_players, mynum, -1);
hit_player (MOB_MITHDAN_DRUID2 + max_players, mynum, -1);
return -1;
}
#endif
#ifdef LOCMIN_PYRAMID
if(ploc(mynum) == LOC_PYRAMID_PYRAMID33 &&
(alive( max_players+MOB_PYRAMID_NEFERTERI) != -1)
&& plev(mynum) < LVL_ARCHWIZARD &&
state(OBJ_PYRAMID_DOORFROMTREAS) == 0 ) {
bprintf( "As you pick up the %s, the room to the door slams tightly "
"shut!\n", oname( ob ) );
send_msg(sendloc(mynum), 0, pvis(mynum), LVL_MAX, mynum, NOBODY,
"As %s reaches down and for the %s, the door to the room "
"slams tightly closed!\n", pname(mynum), oname(ob) );
broad( "&+RThe soft sound of satisfied feminine laughter floats in the "
"air.&N\n" );
setobjstate( OBJ_PYRAMID_DOORFROMTREAS, 1 );
}
#endif
#ifdef LOCMIN_RAINFOREST
if (ploc(mynum) == LOC_RAINFOREST_CITY3) {
bprintf("The hand of an ancient god strikes from above, crushing you for "
"your\ninsolence! You black out, and when you open your eyes again, you "
"are in\ndifferent surroundings...\n\n");
send_msg(sendloc(mynum), 0, pvis(mynum), LVL_MAX, mynum, NOBODY,
"%s tries to take the %s and the hand of an ancient god strikes from\n"
"above crushing them for their insolence! Suddenly %s disappears...\n",
pname(mynum), oname(ob), his_or_her(mynum));
trapch(LOC_HEAVEN_HEAVEN1);
broad("You hear a squeal of pain as the foot of an ancient god descends with anger.\n" );
return -1;
}
#endif
#ifdef LOCMIN_ABYSS
if (ob == OBJ_ABYSS_BANK1TIMBER) {
setobjstate(OBJ_ABYSS_BANK1TIMBER, 1);
ob = OBJ_ABYSS_TIMBER;
create(ob);
}
if (ob == OBJ_ABYSS_BANK2TIMBER) {
setobjstate(OBJ_ABYSS_BANK2TIMBER, 1);
ob = OBJ_ABYSS_TIMBER;
create(ob);
}
#endif
#ifdef LOCMIN_HEAVEN
if (ob == OBJ_HEAVEN_VASE && state(ob)) {
bprintf("The vase slips from your hand and crashes to the floor.\n");
bprintf("The revererations caused by the crash cause the ceiling to "
"cave in!\n");
destroy(ob);
send_msg(sendloc(mynum), 0, pvis(mynum), LVL_MAX, mynum, NOBODY,
"%s has left.",pname(mynum));
setploc(mynum,LOC_HEAVEN_HEAVEN1);
lookin(ploc(mynum),0);
broad("You hear ambulance sirens in the distance.\n");
return -1;
}
#endif
#ifdef LOCMIN_OAKTREE
if ((l = alive (max_players + MOB_OAKTREE_COSIMO)) != -1 &&
ploc (l) == ploc (mynum)) {
bprintf ("Cosimo guards his treasure jealously.\n");
return(-2);
}
if ((ob == OBJ_OAKTREE_PICTURE) && (state(OBJ_OAKTREE_PICTURE) == 1)) {
bprintf("You uncover a wall safe behind the picture.\n");
send_msg(int2idx(LOC_OAKTREE_OAKTREE37, LOC), 0, pvis(mynum), LVL_MAX,
mynum, NOBODY,
"%s uncovers a wall safe behind the picture.\n",pname(mynum));
send_msg(int2idx(LOC_OAKTREE_OAKTREE37, LOC), 0, LVL_MIN, pvis(mynum),
mynum, NOBODY,
"Someone uncovers a wall safe behind the picture.\n");
create(OBJ_OAKTREE_SAFE);
setoloc(OBJ_OAKTREE_SAFE, LOC_OAKTREE_OAKTREE37, IN_ROOM);
}
if (ob == OBJ_OAKTREE_SPIKE) {
if (!iswornby(OBJ_OAKTREE_GLOVE, mynum)) {
bprintf("As you touch the spike, you feel a powerful spirit take "
"control of\nyour body very briefly before your life winks "
"out like a light...");
quit_msg("You need the right tool for the job...",
"Absorbed by a Tree Spirit");
quit_player(False);
return -1;
}
else if ((alive(max_players+MOB_OAKTREE_SAPLING) == -1) &&
(pscore(max_players+MOB_OAKTREE_SAPLING) == mynum) &&
!qtstflg(mynum, Q_SPIKE))
set_quest(mynum,Q_SPIKE);
}
#endif
#ifdef LOCMIN_ZODIAC
if (container == OBJ_ZODIAC_PENTAGRAM)
switch(ob) {
default:
break;
case OBJ_ZODIAC_FIREBALL:
case OBJ_ZODIAC_WATERBALL:
case OBJ_ZODIAC_AIRBALL:
case OBJ_ZODIAC_DIRTBALL:
case OBJ_ZODIAC_WINE:
setobjstate(ob, 0);
setoloc(ob, mynum, CARRIED_BY);
send_msg(sendloc(mynum), 0, pvis(mynum), LVL_MAX, mynum, NOBODY,
"\001p%s takes the %s from the pentagram.\n", pname(mynum), oname(ob));
bprintf("Ok\n");
return -1;
}
#endif
#ifdef LOCMIN_ANCIENT
if (ob == OBJ_ANCIENT_SUNDISC && state (ob) == 1) {
if (!iscarrby (OBJ_ANCIENT_ESTONE, mynum) ||
!iscarrby (OBJ_ANCIENT_QFEATHER, mynum)) {
bprintf ("You feel that you need more magical equipment "
"than just your hands for this job.\n");
return -1;
}
else
setobjstate (OBJ_ANCIENT_SUNDISC, 0);
}
#endif
#ifdef LOCMIN_BLIZZARD
if (ob == OBJ_BLIZZARD_SHIELD) {
if (ishere (OBJ_BLIZZARD_SHIELD1))
ob = OBJ_BLIZZARD_SHIELD1;
else if (ishere (OBJ_BLIZZARD_SHIELD2))
ob = OBJ_BLIZZARD_SHIELD2;
if( container == -1 ) {
if (otstbit (OBJ_BLIZZARD_SHIELD1, OFL_DESTROYED))
ob = OBJ_BLIZZARD_SHIELD1;
else if (otstbit (OBJ_BLIZZARD_SHIELD2, OFL_DESTROYED))
ob = OBJ_BLIZZARD_SHIELD2;
if (ob == OBJ_BLIZZARD_SHIELD1 || ob == OBJ_BLIZZARD_SHIELD2)
create (ob);
else {
bprintf ("The shields are too firmly secured to the walls.\n");
return -1;
}
}
}
#endif
#ifdef LOCMIN_FANTASY
if (ob == OBJ_FANTASY_GOLDSWORD && state (ob) == 1) {
bprintf ("As you go to take the sword the shopkeeper mentions he would "
"like a gold\nnugget in exchange for it. He then mentions that "
"in the mountains behind\nhis shop there are many gold mines.\n\n");
return -1;
}
if (ob == OBJ_FANTASY_SILVERSWORD && state (ob) == 1) {
bprintf ("As you go to take the sword the shopkeeper mentions he would "
"like a bag\nof silver in exchange for it. He then speaks of "
"the dwarven cave to the west\nthat is said to have many hidden "
"treasures guarded by a monster.\n\n");
return -1;
}
if (ob == OBJ_FANTASY_SILVERARMOR && state (ob) == 1) {
bprintf ("As you go to take the armor the shopkeeper mentions he would "
"like a bag\nof silver in exchange for it. He then speaks of "
"the dwarven cave to the west\nthat is said to have many hidden "
"treasures guarded by a monster.\n\n");
return -1;
}
#endif
#ifdef LOCMIN_CATACOMB
if (ob == OBJ_CATACOMB_CUPSERAPH &&
(l = alive ((max_players + MOB_CATACOMB_SERAPH))) != -1 &&
ploc (l) == ploc (mynum)) {
bprintf ("\001pThe Seraph\003 says 'Well done, my %s. "
"Truly you are a %s of virtue.'\n",
psex (mynum) ? "daughter" : "son", psex (mynum) ? "woman" : "man");
bprintf ("The Seraph gestures and you are transported to ...\n");
send_msg (sendloc(mynum), 0, LVL_MIN, LVL_MAX, mynum, NOBODY,
"%s vanishes, taking \001p%s\003 with him!\n",
pname (l), pname (mynum));
sendl(LOC_START_CHURCH,
"\001p%s\003 appears, accompanied by an angel!\n", pname (mynum));
setploc ((max_players + MOB_CATACOMB_SERAPH), LOC_START_CHURCH);
set_quest (mynum, Q_GRAIL);
trapch (LOC_START_CHURCH);
}
#endif
#ifdef LOCMIN_CASTLE
if (ob == OBJ_CASTLE_RUNESWORD && state (ob) == 1 &&
ptothlp (mynum) == -1) {
bprintf ("It's too well embedded to shift alone.\n");
return -1;
}
#endif