Well normally skills are acquired using or not using a weapon. However if you wanted added specific skill gain with say a club you could also add skill "tries" to an additional existing skill using a script in weapons.
If you are talking source editing then these are the
enums which represent all the default skills.
C++:
enum skills_t : uint8_t {
SKILL_FIST = 0,
SKILL_CLUB = 1,
SKILL_SWORD = 2,
SKILL_AXE = 3,
SKILL_DISTANCE = 4,
SKILL_SHIELD = 5,
SKILL_FISHING = 6,
SKILL_MAGLEVEL = 7,
SKILL_LEVEL = 8,
SKILL_FIRST = SKILL_FIST,
SKILL_LAST = SKILL_FISHING
};
These enums are just the default values, now you could combine like for example
C++:
SKILL_FIRST = SKILL_FIST,
Both SKILL_FIRST & SKILL_FIST reference the same value which is 0, so if you wanted to combine SKILL_CLUB with SKILL_SWORD you could just by stating
C++:
SKILL_CLUB = SKILL_SWORD,
Unfortunately what happens then is if you raise the club skill it will also affect the sword skill and maybe that is not what you are looking for.
Plus there are other factors to consider, methods in the sources which call on these such as std::string getSkillName(uint8_t skillid), this particular method uses a switch statement to return a string that tells you the player what type of skill it is.
C++:
std::string getSkillName(uint8_t skillid)
{
switch (skillid) {
case SKILL_FIST:
return "fist fighting";
case SKILL_CLUB:
return "club fighting";
case SKILL_SWORD:
return "sword fighting";
case SKILL_AXE:
return "axe fighting";
case SKILL_DISTANCE:
return "distance fighting";
case SKILL_SHIELD:
return "shielding";
case SKILL_FISHING:
return "fishing";
case SKILL_MAGLEVEL:
return "magic level";
case SKILL_LEVEL:
return "level";
default:
return "unknown";
}
}
If you share club with sword then no matter if you are gaining sword tries then you will always get "club fighting" because both club & sword reference the same value.
This is not the only place in the sources that references the skills, the problem is if your goal is to add more skills or combine skills then you could run into more trouble than its worth. It's better to define additional skills in a script than messing with the source.