先看/feature/skill.c文件中的一段
varargs int query_skill(string skill, int raw)
{
if( !raw ) {
int s , level;
s = query_temp("apply/" + skill);
if( mapp(skills) ) {
s += skills[skill] / 2;
if( mapp(skill_map) )
{
if( skill_map[skill])
level = (int) (SKILL_D(skill_map[skill])->effective_level()) ;
else
level = 0;
s += skills[skill_map[skill]] * level / 10 ;
}
}
return s;
}
if( mapp(skills) && !undefinedp(skills[skill]) ) return skills[skill];
return 0;
}
以上写明了s += skills[skill_map[skill]] * level / 10 ;这里调用到了有效系数
然后看combatd.c文件,大多与战斗有关的都可以在这文件中找到.
varargs int skill_power(object ob, string skill, int usage)
{
....
....
level = ob->query_skill(skill);
这里的level就是刚才的s的返回值,值越大,level越大,往下看会发觉power调用了level的值,而power是值技能伤害.