Hello, I am having some troubles with a skill that i just coded, disarm. It seems to enjoy slamming the weapon into a room that is "somewhere" and doesn't have a vnum :) here is the code, hopefully someone knows how to relocate the object. [code begins] ACMD(do_disarm) { struct char_data *vict; int percent, prob; if ((GET_CLASS(ch) != CLASS_WARRIOR && (GET_CLASS(ch)) != CLASS_RANGER)) { send_to_char("Disarming is better left to warrior types.\r\n", ch); return; } one_argument(argument, arg); if (!(vict = get_char_room_vis(ch, arg))) { if (FIGHTING(ch)) { vict = FIGHTING(ch); } else { send_to_char("Disarm who?\r\n", ch); return; } } if (vict == ch) { send_to_char("You decide not to disarm yourself.\r\n", ch); return; } percent = ((10 - (GET_AC(vict) / 10)) << 1) + number(1, 101); /* 101% is a complete failure */ prob = GET_SKILL(ch, SKILL_DISARM); if (percent > prob) { if (vict->equipment[WEAR_WIELD]) { unequip_char(vict, WEAR_WIELD); obj_to_room(0, vict->in_room); act("$n skillfully disarms $N!", TRUE, ch, 0, 0, TO_ROOM); act("You send $p flying from $N's grasp.", TRUE, ch, 0, vict, TO_CHAR); act("$p flies from your grasp as $n disarms you!", TRUE, ch, 0, vict, TO_VICT); } else act("$n trys to disarm $N but fails!", TRUE, ch, 0, 0, TO_ROOM); act("You fail to disarm $N!", TRUE, ch, 0, vict, TO_CHAR); act("$n trys and fails to disarm you!", TRUE, ch, 0, vict, TO_VICT); damage(ch, vict, GET_LEVEL(ch) >> 1, SKILL_DISARM); WAIT_STATE(ch, PULSE_VIOLENCE * 3); } } [code ends]
This archive was generated by hypermail 2b30 : 12/07/00 PST