At 08:53 PM 3/18/98 -0500, you wrote: I would have changed one part of the patch... diff -uprN -X .exclude stk/act.offensive.c rescue/act.offensive.c --- stk/act.offensive.c Wed Oct 29 00:16:21 1997 +++ rescue/act.offensive.c Wed Mar 18 20:44:05 1998 @@ -329,52 +329,46 @@ ACMD(do_rescue) one_argument(argument, arg); - if (!(vict = get_char_room_vis(ch, arg))) { + if (!(vict = get_char_room_vis(ch, arg))) send_to_char("Whom do you want to rescue?\r\n", ch); - return; - } - if (vict == ch) { + else if (vict == ch) send_to_char("What about fleeing instead?\r\n", ch); - return; - } - if (FIGHTING(ch) == vict) { + else if (FIGHTING(ch) == vict) send_to_char("How can you rescue someone you are trying to kill?\r\n", ch); - return; - } - for (tmp_ch = world[ch->in_room].people; tmp_ch && - (FIGHTING(tmp_ch) != vict); tmp_ch = tmp_ch->next_in_room); - - if (!tmp_ch) { - act("But nobody is fighting $M!", FALSE, ch, 0, vict, TO_CHAR); - return; - } - if (GET_CLASS(ch) != CLASS_WARRIOR) - send_to_char("But only true warriors can do this!", ch); else { - percent = number(1, 101); /* 101% is a complete failure */ - prob = GET_SKILL(ch, SKILL_RESCUE); + for (tmp_ch = world[ch->in_room].people; tmp_ch; tmp_ch = tmp_ch->next_in_room) + if (FIGHTING(tmp_ch) == vict) + break; + + if (!tmp_ch) + act("But nobody is fighting $M!", FALSE, ch, 0, vict, TO_CHAR); + #ifdef GEORGE_GREER_ANTI_SPAGHETTI /* I oppose the IS_WARRIOR + else if (!IS_WARRIOR(ch)) * method because my way is + #else * more expandable. Just a + else if (!GET_SKILL(ch, SKILL_RESCUE)) * thought... TR :) + #endif */ + send_to_char("But only true warriors can do this!\r\n", ch); + else { + percent = number(1, 101); /* 101% is a complete failure */ + prob = GET_SKILL(ch, SKILL_RESCUE); + + if (percent > prob) { + send_to_char("You fail the rescue!\r\n", ch); + return; + } + send_to_char("Banzai! To the rescue...\r\n", ch); + act("You are rescued by $N, you are confused!", FALSE, vict, 0, ch, TO_CHAR); + act("$n heroically rescues $N!", FALSE, ch, 0, vict, TO_NOTVICT); + + if (FIGHTING(vict) == tmp_ch) + stop_fighting(vict); + if (FIGHTING(tmp_ch)) + stop_fighting(tmp_ch); + if (FIGHTING(ch)) + stop_fighting(ch); - if (percent > prob) { - send_to_char("You fail the rescue!\r\n", ch); - return; - } - send_to_char("Banzai! To the rescue...\r\n", ch); - act("You are rescued by $N, you are confused!", FALSE, vict, 0, ch, TO_CHAR); - act("$n heroically rescues $N!", FALSE, ch, 0, vict, TO_NOTVICT); - - if (FIGHTING(vict) == tmp_ch) - stop_fighting(vict); - if (FIGHTING(tmp_ch)) - stop_fighting(tmp_ch); - if (FIGHTING(ch)) - stop_fighting(ch); - - set_fighting(ch, tmp_ch); - set_fighting(tmp_ch, ch); + set_fighting(ch, tmp_ch); + set_fighting(tmp_ch, ch); - WAIT_STATE(vict, 2 * PULSE_VIOLENCE); + WAIT_STATE(vict, 2 * PULSE_VIOLENCE); + } } - } /* End Code */ As you can see, I would check to see if a character has the skill, rather than if they're a warrior. More expandable. Just my .002 cents. -B. +------------------------------------------------------------+ | 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