I'll try to explain..
I am using ON=@SkillMakeItem to create a system to upgrade the skill tool (bs - sledge hammer, bc - dagger, tailor - sewing kit, etc..). I blocked the use of other tools, each skill can use only one kind of tool.
The system is fairly simple, each time the event is triggered, I check which skill is being used with <act.SKILLMAKE.1.KEY> and depend on the skill amount needed to craft the item I increment X until my counter reach the value I want and then the tool will give +10 for that skill.
My main issue is that when mining (or lumberjacking) I can't get the type (iron, gold, silver, valorite, etc..) that was mined.
Another issue is that for skills like tailor, tinker, I don't have reference for the tool that is being used, so for now I am using findid, but if anyone knows another way, let me know.
The main part of the script is below.
Code:
ON=@SkillMakeItem
local.skillName = <act.SKILLMAKE.1.KEY>
local.skillValue = <act.SKILLMAKE.1.VAL>
if (<eval strcmp(<local.skillName>, skill_alchemy)> == 0)
calculate_tools_bonus <findid.i_mortar_pestle.uid>, <local.skillValue>, "alchemy"
elseif (<eval strcmp(<local.skillName>, skill_blacksmith)> == 0)
calculate_tools_bonus <src.weapon.uid>, <local.skillValue>, "blacksmithing"
elseif (<eval strcmp(<local.skillName>, skill_bowcraft)> == 0)
calculate_tools_bonus <src.weapon.uid>, <local.skillValue>, "bowcraft"
elseif (<eval strcmp(<local.skillName>, skill_carpentry)> == 0)
calculate_tools_bonus <findid.i_saw.uid>, <local.skillValue>, "carpentry"
elseif (<eval strcmp(<local.skillName>, skill_inscription)> == 0)
calculate_tools_bonus <findid.i_pen_and_ink.uid>, <local.skillValue>, "inscription"
// elseif (<eval strcmp(<local.skillName>, skill_lumberjack)> == 0)
// calculate_tools_bonus <src.weapon.uid>, "lumberjacking"
// elseif (<eval strcmp(<local.skillName>, skill_mining)> == 0)
// calculate_tools_bonus <src.weapon.uid>, "mining"
elseif (<eval strcmp(<local.skillName>, skill_tailoring)> == 0)
calculate_tools_bonus <findid.i_sewing_kit.uid>, <local.skillValue>, "tailoring"
elseif (<eval strcmp(<local.skillName>, skill_tinkering)> == 0)
calculate_tools_bonus <findid.i_tinker_tools.uid>, <local.skillValue>, "tinkering"
endif
return 0