Of course man here you go
[spoiler]
[code]local MOD = {}
mods[“StatsThoughSkills”] = MOD
function MOD.on_day_passed()
str_bonus = 0
dex_bonus = 0
int_bonus = 0
per_bonus = 0
--Str based skills
str_bonus = calc_bonus(str_bonus,"carpentry")
str_bonus = calc_bonus(str_bonus,"mechanics")
str_bonus = calc_bonus(str_bonus,"swimming")
str_bonus = calc_bonus(str_bonus,"bashing")
str_bonus = calc_bonus(str_bonus,"cutting")
str_bonus = calc_bonus(str_bonus,"melee")
str_bonus = calc_bonus(str_bonus,"throw")
if (str_bonus >= 21) then
str_bonus = 6
elseif (str_bonus >= 15) then
str_bonus = 5
elseif (str_bonus >= 10) then
str_bonus = 4
elseif (str_bonus >=6) then
str_bonus = 3
elseif (str_bonus >=3) then
str_bonus = 2
elseif (str_bonus >=1) then
str_bonus = 1
else
str_bonus = 0
end
--Dex based skills
dex_bonus = calc_bonus(dex_bonus,"driving")
dex_bonus = calc_bonus(dex_bonus,"survival")
dex_bonus = calc_bonus(dex_bonus,"tailor")
dex_bonus = calc_bonus(dex_bonus,"traps")
dex_bonus = calc_bonus(dex_bonus,"dodge")
dex_bonus = calc_bonus(dex_bonus,"stabbing")
dex_bonus = calc_bonus(dex_bonus,"unarmed")
if (dex_bonus >= 21) then
dex_bonus = 6
elseif (dex_bonus >= 15) then
dex_bonus = 5
elseif (dex_bonus >= 10) then
dex_bonus = 4
elseif (dex_bonus >=6) then
dex_bonus = 3
elseif (dex_bonus >=3) then
dex_bonus = 2
elseif (dex_bonus >=1) then
dex_bonus = 1
else
dex_bonus = 0
end
--Int based skills
int_bonus = calc_bonus(int_bonus,"barter")
int_bonus = calc_bonus(int_bonus,"computer")
int_bonus = calc_bonus(int_bonus,"cooking")
int_bonus = calc_bonus(int_bonus,"electronics")
int_bonus = calc_bonus(int_bonus,"fabrication")
int_bonus = calc_bonus(int_bonus,"firstaid")
int_bonus = calc_bonus(int_bonus,"speech")
if (int_bonus >= 21) then
int_bonus = 6
elseif (int_bonus >= 15) then
int_bonus = 5
elseif (int_bonus >= 10) then
int_bonus = 4
elseif (int_bonus >=6) then
int_bonus = 3
elseif (int_bonus >=3) then
int_bonus = 2
elseif (int_bonus >=1) then
int_bonus = 1
else
int_bonus = 0
end
--Per based skills
per_bonus = calc_bonus(per_bonus,"archery")
per_bonus = calc_bonus(per_bonus,"gun")
per_bonus = calc_bonus(per_bonus,"launcher")
per_bonus = calc_bonus(per_bonus,"pistol")
per_bonus = calc_bonus(per_bonus,"rifle")
per_bonus = calc_bonus(per_bonus,"shotgun")
per_bonus = calc_bonus(per_bonus,"smg")
if (per_bonus >= 21) then
per_bonus = 6
elseif (per_bonus >= 15) then
per_bonus = 5
elseif (per_bonus >= 10) then
per_bonus = 4
elseif (per_bonus >=6) then
per_bonus = 3
elseif (per_bonus >=3) then
per_bonus = 2
elseif (per_bonus >=1) then
per_bonus = 1
else
per_bonus = 0
end
player:remove_effect("exp_str")
player:add_effect("exp_str", 1, "num_bp", true, str_bonus+1)
print_results(str_bonus,"Str",player.str_max)
player:remove_effect("exp_dex")
player:add_effect("exp_dex", 1, "num_bp", true, dex_bonus+1)
print_results(dex_bonus,"Dex",player.dex_max)
player:remove_effect("exp_int")
player:add_effect("exp_int", 1, "num_bp", true, int_bonus+1)
print_results(int_bonus,"Int",player.int_max)
player:remove_effect("exp_per")
player:add_effect("exp_per", 1, "num_bp", true, per_bonus+1)
print_results(per_bonus,"Per",player.per_max)
end
function calc_bonus(stat_bonus,skill)
skill_level = player:get_skill_level(skill_id(skill))
if (skill_level / 3 < 3) then
stat_bonus = stat_bonus + skill_level / 3
else
stat_bonus = stat_bonus + 3
end
return math.floor(stat_bonus)
end
function print_results(stat_bonus,stat,player_stat)
game.add_msg("Raising “…stat…” by "…tostring(stat_bonus))
end
[/code][/spoiler]
I don’t like the code repeating like that but I also don’t know lua syntax so I didn’t know how to make it nicer. Anyway if you make something nice of it let us know
PS. Thanks Xfin for this edit it works much better than the original mod.