Hiya all fiddeling with abbreviation code, plugged the one from the Archives (Angus' work) in and gee it works right away. Yet somehow things go haywire and I cannot see why except it's the Abbreviate code that's acting up. Heres the situation : 1. A attacks mob. 2. B Assists A 3. A being a warrior bashes the opponent with the command "bash" no arguments See under normal circumstances this would give opponent fighting and A would bash the opponent, but here it actually bashes B instead. Totalt confusion. Bash code looks like the following.. anyone with an idea to what the problem *MIGHT* be, except that the abbreviate code sends an Argument through anyway? ACMD(do_bash) { struct char_data *vict = NULL; int percent, prob; if(!check_for_skill(ch, SKILL_BASH)) return; if (!*argument) { /* No Argument */ if (FIGHTING(ch)) { vict = FIGHTING(ch); } else { send_to_char("Bash who?\r\n", ch); } } one_argument(argument, arg); log(argument); if (!(vict = get_char_room_vis(ch, arg))) { send_to_char("Bash who?\r\n", ch); return; } sprintf(buf, "PC: %s is bashing %s", GET_NAME(ch), GET_NAME(vict)); mudlog(buf, NRM, MAX(LVL_IMMORT, GET_INVIS_LEV(ch)), TRUE); if (vict == ch) { send_to_char("Aren't we funny today...\r\n", ch); return; } if (!GET_EQ(ch, WEAR_WIELD)) { send_to_char("You need to wield a weapon to make it a success.\r\n", ch); return; } percent = number(1, 101); /* 101% is a complete failure */ prob = GET_SKILL(ch, SKILL_BASH); if (MOB_FLAGGED(vict, MOB_NOBASH)) percent = 101; if (percent > prob) { damage(ch, vict, 0, SKILL_BASH, NO_WEAPON); GET_POS(ch) = POS_SITTING; } else { damage(ch, vict, 1, SKILL_BASH, NO_WEAPON); improve_skill(ch, SKILL_BASH); GET_POS(vict) = POS_SITTING; WAIT_STATE(vict, PULSE_VIOLENCE); } WAIT_STATE(ch, PULSE_VIOLENCE * 2); } +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST