Combat styles not gaining experience?

Posted by Kamen on Sat 24 Dec 2005 10:52 PM — 12 posts, 43,377 views.

#0
I am sitll pretty new to smaug in general, but none of my fighting characters are gaining skill in any of the styles (normal, evasive, aggressive, etc) either by switching between them or by fighting with them set. How are these supposed to be raised?
USA #1
Switch while fighting; I'm pretty sure.
USA #2
Zeno is right on. The styles can only be improved by switching between them during combat.
USA #3
How hard is that to change so that you can gain experience in a combat style from using it rather than from switching to it?
USA #4
That's what I did, but it's hard to make it balanced. If it gains each round, it'll be maxed in a minute. So I set the difficulty high, and now it fails to max.
USA #5
is it possible to have it gain a fraction of a precent, every few battles? so say... maybe at like... 1000 battles you'll have maxed it or something?
USA #6
Not unless you change percents into a float.
USA #7
What if you made it only gain on something like the fourth successful hit while in that style? Would that be enough of a compromise or does it really just need to be set via sset to a high difficulty so that it gains each round but only on a high percentage? Or is that not what you were talking about?
USA #8
You can always try setting them to floats and using a fraction of a percent, or if you feel froggy, use a damage-based or avoidance-based system (based on which style) to level it. i.e. every 500 damage, let aggressive style increase 1 point, and add 5 or 50 damage each percent point, but that may be a bit complex to do. Anyways, good luck to you
USA #9
Wouldn't that mean trying to set up a new pfile value to log each player's damages ansd avoidances so you could track them over multiple battles that might well take place over multiple logons if not extending beyond multiple reboots?
Australia #10
This is what i did to make my styles gain by using and also to make all my skills and spells learn at a much slower rate.



/* Auto increase styles and modify damage based on character's fighting style, code cut from smaugfuss boards. By Remcom*/
   switch( ch->style )
   {
      default:
      case STYLE_FIGHTING:
         if( !IS_NPC( ch ) && ch->pcdata->learned[gsn_style_standard] > -1 )
            learn_from_success( ch, gsn_style_standard );
         break;
      case STYLE_DEFENSIVE:
         if( !IS_NPC( ch ) && ch->pcdata->learned[gsn_style_defensive] > -1 )
            learn_from_success( ch, gsn_style_defensive );
         dam = ( int )( .85 * dam );
         break;
      case STYLE_EVASIVE:
         if( !IS_NPC( ch ) && ch->pcdata->learned[gsn_style_evasive] > -1 )
            learn_from_success( ch, gsn_style_evasive );
         dam = ( int )( .8 * dam );
         break;
      case STYLE_AGGRESSIVE:
         if( !IS_NPC( ch ) && ch->pcdata->learned[gsn_style_aggressive] > -1 )
            learn_from_success( ch, gsn_style_aggressive );
         dam = ( int )( 1.1 * dam );
         break;
      case STYLE_BERSERK:
         if( !IS_NPC( ch ) && ch->pcdata->learned[gsn_style_berserk] > -1 )
            learn_from_success( ch, gsn_style_berserk );
         dam = ( int )( 1.2 * dam );
         break;
   }



Then this was added to learn_from_success


/* the following added by tommi Jan 2006, Code cut from AFKmud written by Tarl. 
  */
  if( skill_table[sn]->type == SKILL_WEAPON )
  {
    lchance = number_range( 1, 10 );
    if( lchance != 5 )
    {
      return;
    }

  }

  if( skill_table[sn]->type == SKILL_SKILL )
  {
    lchance = number_range( 1, 5 );
    if( lchance != 3 )
    {
      return;
    }

  }

  if( skill_table[sn]->type == SKILL_SPELL )
  {
    lchance = number_range( 1, 3 );
    if( lchance != 2 )
    {
      return;
    }



This was a simple hackish option that i chose, now since adding this in, i have thought about it a lot more and come up with a better solution to doing this.
USA #11
So, what's the better solution? :)