(note: your using GET_HIT which may not be 100% at a con, try GET_MAX_HIT) I was thinking of doing the code something like -- It has not been tested cause I am missing a few things.. but the idea is there.. /* find damage for ch using same code as game */ chdam = str_app[STRENGTH_APPLY_INDEX(ch)].todam; chdam += GET_DAMROLL(ch); if (wielded) { chdam += dice(GET_OBJ_VAL(wielded, 1), GET_OBJ_VAL(wielded, 2)); } else { chdam += number(0, 2); /* Max 2 bare hand damage for players */ } /* find damage for vict */ victdam = str_app[STRENGTH_APPLY_INDEX(victim)].todam; victdam += GET_DAMROLL(victim); /* How do you change this to be victim?? if (wielded) { victdam += dice(GET_OBJ_VAL(wielded, 1), GET_OBJ_VAL(wielded, 2)); } else { if (IS_NPC(victim)) { victdam += dice(ch->mob_specials.damnodice, ch->mob_specials.damsizedice); } */ chvar = (GET_MAX_HIT(vict) / chdam ) /* dont forget to multily by # of attacks */ /* for percent chance to hit - not counting thaco */ chvar = ( chvar / ((GET_HITROLL(ch)*20)/100)) victvar = (GET_MAX_HIT(vict) / chdam ) /* dont forget to multily by # of attacks */ /* for percent chance to hit - not counting thaco */ victvar = ( victvar / ((GET_HITROLL(ch)*20)/100)) /* at this point it should be number of rounds it should be to kill */ if (chvar > victvar) /* do all the easy messages */ if (chvar < victvar) /* do all the hard messages */ -----Original Message----- Ok.. here is my version of the consider command.. There is probably a better way to do this, but it works. If you use it please give me credit somewhere. To use this you have to remove your current do_consider. ------- START OF CODE ---------- ACMD(do_consider) { struct char_data *victim; int diff, var1, var2; one_argument(argument, buf); if (!(victim = get_char_room_vis(ch, buf))) { send_to_char("Consider killing who?\r\n", ch); return; } if (victim == ch) { send_to_char("Easy! Very easy indeed!\r\n", ch); return; } if (!IS_NPC(victim)) { send_to_char("Would you like to borrow a cross and a shovel?\r\n", ch); return; } diff = (GET_LEVEL(victim) - GET_LEVEL(ch)); if (diff <= -15) send_to_char("VICTIM'S LEVEL : Pathetic.\r\n", ch); else if (diff <= -10) send_to_char("VICTIM'S LEVEL : Much Lower.\r\n", ch); else if (diff <= -5) send_to_char("VICTIM'S LEVEL : Lower.\r\n", ch); else if (diff <= -2) send_to_char("VICTIM'S LEVEL : A Little Lower.\r\n", ch); else if (diff <= -1) send_to_char("VICTIM'S LEVEL : About Equal.\r\n", ch); else if (diff == 0) send_to_char("VICTIM'S LEVEL : About Equal.\r\n", ch); else if (diff <= 1) send_to_char("VICTIM'S LEVEL : About Equal.\r\n", ch); else if (diff <= 4) send_to_char("VICTIM'S LEVEL : A Little Greater.\r\n", ch); else if (diff <= 9) send_to_char("VICTIM'S LEVEL : Greater.\r\n", ch); else if (diff <= 14) send_to_char("VICTIM'S LEVEL : Much Greater.\r\n", ch); else if (diff >= 15) send_to_char("VICTIM'S LEVEL : Vastly Superior.\r\n", ch); var1 = abs(GET_HIT(ch) - GET_HIT(victim)) * 100 / GET_HIT(ch); var2 = abs(GET_HIT(ch) - GET_HIT(victim)) * 100 / GET_HIT(ch); if(GET_HIT(ch) < GET_HIT(victim)) diff = var1; else diff = var1 - (var1 * 2); <snip> +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST