#define PAX(ch) \
if (ROOM_FLAGGED( (ch)->in_room, ROOM_PEACEFUL)) { \
send_to_char("This room just has such a peaceful, easy feeling...\r\n", (ch));\
return;\
}
void perform_disarm( struct char_data *ch, struct char_data *vict, int prob )
{
struct obj_data *obj;
PAX(ch);
if (!pk_allowed)
{
if (!IS_NPC(vict))
{
send_to_char( "No puedes desarmar a otros players.\r\n", ch );
return;
}
}
if (GET_EQ(vict, WEAR_WIELD))
{
if (GET_LEVEL(vict) >= LVL_IMMORT && GET_LEVEL(ch) < LVL_IMPL)
{
send_to_char( "No... a EL nop.\r\n", ch );
return;
}
if (GET_POS(vict) > POS_STUNNED && !FIGHTING(vict)) {
set_fighting(vict, ch);
if (MOB_FLAGGED(vict, MOB_MEMORY) && !IS_NPC(ch) &&
(GET_LEVEL(ch) < LVL_IMMORT))
remember(vict, ch);
}
if (prob)
{
obj = unequip_char(vict, WEAR_WIELD);
obj_to_room( obj, ch->in_room);
send_to_char(CCRED(vict, C_CMP), vict );
act( "$N te ha desarmado!", FALSE, vict, 0, ch, TO_CHAR );
send_to_char(CCNRM(vict, C_CMP), vict );
act( "$N ha desarmado a $n y $p vuela por los aires!", FALSE, vict, obj, ch, TO_ROOM );
act( "Desarmas a $N y $p vuela por los aires!", FALSE, ch, obj, vict, TO_CHAR );
}
else
{
act("Fallas en tu intento!", FALSE, ch, 0, 0, TO_CHAR );
}
}
else
{
send_to_char( "Pero si no tiene ningun arma!\r\n", ch );
}
}
ACMD(do_disarm)
{
struct char_data *vict;
int percent, prob;
one_argument(argument, arg);
if (!(vict = get_char_room_vis(ch, arg))) {
if (FIGHTING(ch)) {
vict = FIGHTING(ch);
} else {
send_to_char("Desarmar a quien?\r\n", ch);
return;
}
}
if (vict == ch) {
send_to_char("Beh.. por que no pruebas con REMOVE?\r\n", ch);
return;
}
if (!GET_EQ(ch, WEAR_WIELD)) {
send_to_char("Necesitas esgrimir un arma para que puedas desarmar a alguien.\r\n", ch);
return;
}
percent = number(1, 101); /* 101% is a complete failure */
prob = GET_SKILL(ch, SKILL_DISARM);
prob >>= 1;
if (percent > prob) {
perform_disarm(ch, vict, FALSE);
} else {
perform_disarm(ch, vict, TRUE);
WAIT_STATE(vict, PULSE_VIOLENCE);
}
WAIT_STATE(ch, PULSE_VIOLENCE * 2);
}
               (
geocities.com/timessquare/castle)                   (
geocities.com/timessquare)