Re: "Dodge" Skill Question

From: Skylar (skylar@ifconfig.intserv.com)
Date: 07/09/96


On Tue, 9 Jul 1996, Brian Christopher Guilbault wrote:

> I have implemented a "dodge" skill on my mud wherein a warrior, if lucky, 
> will completely avoid an attack. My question was whether anyone else had 
> done this and how they go about checking for success.
> 
> My skill works perfectly, and is checked automatically but I certainly 
> don't want it to work 85 percent of the time or whataever warrior's 
> skills can go up to. I would like it to work more like 15 percent or so. 
> Should I first check to see if they make the 85%, then check again 
> against 15% or should I not include it as a skill at all and just have it 
> work 15% of the time? That is bad because then it wouldn't matter how 
> good you were or what level, it would always be the same. Maybe a switch 
> based on skill percentage, like if you had 0-10% in it you would dodge 5% 
> of the time...see what I mean?
> 
> Just looking for suggestions. How do YOU do it? Drop me a line if you 
> have a good idea. I'd appreciate it.


Here's what I use, in hit(), right after the offense/defense check,
err, that translates to thac0 check I guess...

    /* DODGE */
    percent = number(1, 150) + GET_HITROLL(ch) + GET_DEX(ch);
    prob = GET_SKILL(victim, SKILL_DODGE) + GET_DEX(victim);
    if (GET_POS(victim) == POS_FIGHTING && prob > percent) {
      act("$N swiftly dodges your attack.", FALSE, ch, 0, victim, TO_CHAR);
      act("$N swiftly dodges $n's attack.", FALSE, ch, 0, victim, TO_NOTVICT);
      act("You swiftly dodge $n's attack.", FALSE, ch, 0, victim, TO_VICT);
      return;
    }
    learn(victim, SKILL_DODGE, 1000, 0);


I do parry checks afterwards, the same exact way, and it seems to work fine.
People with a decent dodge and parry both still get hit, only less...



-Sky



This archive was generated by hypermail 2b30 : 12/07/00 PST