Immortals getting all skills

Posted by Metsuro on Wed 26 Apr 2006 07:40 AM — 15 posts, 54,504 views.

USA #0
Im am looking to find where in smaugfuss1.7 where it give an immortal all skills in the game.
Australia Forum Administrator #1
Check out this page:

http://www.gammon.com.au/scripts/showfaq.php?faqid=64&productid=6
Amended on Wed 26 Apr 2006 08:05 AM by Nick Gammon
USA #2
Alright thanks, however that is not what I am looking for, I know all about those heh... what I am looking for is where in the game that it allows immortals to obtain all skills within the mud, not the commands needed for it.
USA #3
Your skill list is set by your class. However, your personal stats are saved in your pfile. Theoretically, you could add skills from other classes into your pfile, but I am not sure if the code will check what class you are. If this is the case, just make it so if you are immortal then your the check gets bypassed.
USA #4
Immortals don't really bypass the class check, it's just that skills default to being given at level 51 if they aren't given sooner for every class, you can change that with sset or by changing your code.
USA #5
I want to know where I could find that though... cause i found this in sset.

for( i = 0; i < MAX_PC_CLASS; i++ )
      {
         skill->skill_level = LEVEL_IMMORTAL;
         skill->skill_adept = 95;
      }
      for( i = 0; i < MAX_PC_RACE; i++ )
      {
         skill->race_level = LEVEL_IMMORTAL;
         skill->race_adept = 95;
      }


but not sure what it does.
Amended on Thu 27 Apr 2006 12:00 AM by Metsuro
USA #6
Under the "all" argument check in do_sset, you'll find the code.
USA #7
if( skill_table[sn]->name && ( victim->level >= skill_table[sn]->skill_level[victim->Class] || value == 0 ) )
         {
            if( value == 100 && !IS_IMMORTAL( victim ) )
               victim->pcdata->learned[sn] = GET_ADEPT( victim, sn );
            else
               victim->pcdata->learned[sn] = value;
         }


thats the only thing in "all" that deals with immortals and that only checks what they have already learned. In SmaugFUSS1.7 the stock admin starts with all skills from all classes, I am looking for where it gave him all the skills?
USA #8
Probably "sset self all 100" gave him the skills. He was probably pre-set.
USA #9
But the problem with that I dont see anywhere in sset all that would give him skills of all the classes... cause as a druid, he shouldn't really get the vampire skills right? well he does...
USA #10
As an Immortal, he should get all the skills.
USA #11
Again, it's because every class gets every skill, but the ones that aren't 'meant' for that class they only get at level 51.
USA #12
Ok... so can you point out to me... where that is defined... is all i want to know...
USA #13
Where what is? The Imms getting sset all? This:
    if ( fAll )
    {
        for ( sn = 0; sn < top_sn; sn++ )
        {
            /* Fix by Narn to prevent ssetting skills the player shouldn't have. */
            if ( skill_table[sn]->name
            && ( victim->level >=  skill_level( ch, sn)
                      || value == 0 ) )
            {
                if ( value == 100 && !IS_IMMORTAL( victim ) )
                  victim->pcdata->learned[sn] = GET_ADEPT( victim, sn );
                else
                  victim->pcdata->learned[sn] = value;
            }
        }
    }


Or do you mean the code where it allows Imms to have all skills?
USA #14
actually, you already pointed it out to us:
Quote:

I want to know where I could find that though... cause i found this in sset.

for( i = 0; i < MAX_PC_CLASS; i++ )
{
skill->skill_level = LEVEL_IMMORTAL;
skill->skill_adept = 95;
}
for( i = 0; i < MAX_PC_RACE; i++ )
{
skill->race_level = LEVEL_IMMORTAL;
skill->race_adept = 95;
}



but not sure what it does.

What that does is to set any skills to be level_immortal at skill adept level 95% for any class that doesn't already have the skill otherwise set in the *.class file in the classes directory.