• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Fixed Reduce Effect From Skill Items

Tingyun

Corsair
Storm Modder
Hi Pieter,

It works great, no issues for the many hours I've been using it. Basically, the player would have a maximum of +1 in most skills with realistic item bonus sources for most skills, +2 to most with the indian artifacts or gems/minerals if they were using them and able to collect them all (+3 in a few).

It rounds down, so you need 3 for +1, 6 for +2, and you retain an incentive to collect them all.

Attached the modded file, only 1 line difference mod = mod /3 before the clamp:

mod = mod / 3
mod = iclamp(-100, MAX_SKILL_INCREASE, mod); //JRH for cursed coin
character.skill.(skillName).modifier = mod;
return mod;
 

Attachments

  • skill_utils.c
    13.7 KB · Views: 97
Last edited:
Just adding that one idea with this is to prevent characters from essentially maxing out at early levels--under the current system, once a character gets to 6 in a skill, which is very early, they essentially get 10s. Simply lowerring the max bonus from skill boost items would remove the incentive to collect all the nice items.

This both preserves that incentive to gain multiple of the skill boost items, and allows for continued character development all the way to 9 base skill level (or 8 if using indian artifacts). In my opinion, it leads to a more satisfying rpg experience.
 
@Pieter Boelen

On further thought, befoe including this do you think we would need to go through all the item descriptions that say "+1 to _____ " and change it to + 1/3 to ______? Or is there some easier way?

Otherwise we might get a lot of confused players coming to the forums wondering why their items suddenly aren't working. ;)

If so, I can do the edits, but before I do so perhaps we should make sure there aren't strong objections to trying this out? Should we tag everyone to ask them, or just figure people will see this thread naturally over the next week or so and comment?
 
Went over the lists of all the items again, and counted every item contributing to each skill. If only using realistic item bonuses from ironman mode, then everything has 3 or 4 realistic item boosts, except sailing which has 6, and fencing and luck which have 2 (assuming bronze cross and other jewelry items don't give luck bonuses on ironman).

Fencing has blade kit and a book, luck has lock picks and drow's double doubloons book.

So at 1/3, in ironman you wouldn't be able to get a bonus in these skills because the unrealistic items would be turned off.

Possible solution 1) Use 1/2 rather than 1/3

Possible solution 2) repurpose book bonuses from the skills that have 4 or more boosts, moving +1 from two of them to fencing and luck, allowing all skills to have 3 even in ironman. Change the description text of the items to reflect this change.

Possible solution 3) increase blade kit and lock pick bonuses to +2 (2/3 actually)
 
Maybe a new #define in InternalSettings.h that will also automatically append the "/3" to the interface?

Before enabling it by default, I do think we need a bit more player feedback.
Hopefully @Grey Roger and @Levis will comment when they're around.
 
Don't worry about the descriptions. I'm actually working on something to make this all much clearer, so you don't have to worry about that.
Might I sugest maybe scrapping the whole MAX and change that to something based on the level of the skill.
Say for example:
if you are level 1 in a skill you can only have +1
if you are level 4 in a skill you can only have +2
if you are level 7 in a skill you can only have +3

Or something like that.
That combined with requireing more items.
 
Levis,

That sounds interesting! But I would think the reverse would make sense:

if you are level 1 in a skill you can only have +3
if you are level 4 in a skill you can only have +2
if you are level 7 in a skill you can only have +1

Because otherwise there will be no advancement for players once they reach Level 7, because it will all becomes 10s. ;) This way items can be used to compensate for low skill officers at the start, but not max out the skills of great officers and remove their need for advancement.

Also, it kind of makes sense. Most of the skill increases are from books, and someone who has a low skill level has a great deal they could learn from a book. Someone who is a master carpenter, doesn't need a book about carpentry anymore, it is useless to him.
 
hmmm sounds good to me.

About dividing the stuff etc.
if you look in items_utilite you will find this function:
Code:
string GetItemBonuses(string id)
{
    aref itm;
    string tempstr = "";
    if(Items_FindItem(id, &itm) < 0)
    {
        //trace("GIB: id " + id + " not found");
        return tempstr;
    }
    if(!CheckAttribute(itm,"skill"))
    {
        //trace("GIB: id " + id + " has no skillch");
        return tempstr;
    }
    if(CheckAttribute(itm,"skill.hidden"))
    {
        if(sti(itm.skill.hidden))
        {
            //trace("GIB: id " + id + " hides skillch");
            return tempstr;
        }
    }
    tempstr = "(";
    string skillName = "";
    bool comma = false;
    for(int i = 0; i < 10; i++)
    {
        skillName = GetSkillName(i);
        if(CheckAttribute(itm,"skill."+skillName))
        {
            if(comma) tempstr += ", ";
            comma = true;
            if(CheckAttribute(itm,"skill."+skillName+".set")) { tempstr += itm.skill.(skillName).set + " " + XI_ConvertString(skillName); continue; }
            if(sti(itm.skill.(skillName)) > 0) { tempstr += "+" + itm.skill.(skillName) + " " + XI_ConvertString(skillName);}
            else { tempstr += itm.skill.(skillName) + " " + XI_ConvertString(skillName); }
        }
    }
    if(CheckAttribute(itm,"skill.num")) { if(sti(itm.skill.num)>1) { tempstr += "; " + XI_ConvertString("rrequired") + " " + itm.skill.num + " " + XI_ConvertString("required"); } }
    tempstr += ")";
    //trace("GIB: id " + id + " add desc: " + tempstr);
    if(tempstr != "()") return tempstr;
    return ""
}

it generates the string which is shown in the item interface.
I was thinking of moving this all to the character interface, where right clicking on the skill will show which bonusses are applied to the skill (or which penalties). We do want to have something in the item description too but maybe don't show a number there. only show something like "boosts grappling" or something like that, altough I can imagine that would be tricky too for players so maybe we should show it in the item interface too. I that case you probably want to change this function to show it properly.

maybe have the divided by 3 number be depended on the difficulty level and a Define in the internal setting.
So for example in internal settings you say the divider is 3. And if you are playing on a low difficulty this is lowered by 1 while playing on higher difficulties would raise it with 1.
 
Divide by the Difficulty Level? So everything would remain the same on Apprentice.

Not having the skill modifier as a single number does sound interesting.
But it also adds an extra layer of complexity and therefore I'm afraid of what might happen when we try.

Before doing that, how about we just do what @Tingyun suggested for the time being?
If that serves the purpose well enough, there's no need to do all those other things, right?
 
Divide by the Difficulty Level? So everything would remain the same on Apprentice.

Not having the skill modifier as a single number does sound interesting.
But it also adds an extra layer of complexity and therefore I'm afraid of what might happen when we try.

Before doing that, how about we just do what @Tingyun suggested for the time being?
If that serves the purpose well enough, there's no need to do all those other things, right?
he suggested the divider ... I only suggest we add the difficulty level in there too because I think it would actually be a nice place to balance the difficulty a bit.
The rest is purely interface stuff to communicate to the player what is actually happening. Now the item would say it would give a +1 bonus but it would only give +0.33333 bonus so you do need to communicate that.
 
My suggestion is to replace this:
Code:
mod = mod / 3
mod = iclamp(-100, MAX_SKILL_INCREASE, mod); //JRH for cursed coin
With this:
Code:
mod = mod / GetDifficulty();
mod = iclamp(-100, MAX_SKILL_INCREASE, mod); //JRH for cursed coin

Then in the interface, show the skill modifiers as fraction instead of a single number.

That way, the divider is in place, it depends on difficulty and it is communicated to the player.
All bases covered then, right?
 
The interface won't show it.
In the code posted above you would need to change
Code:
itm.skill.(skillName)

to
Code:
itm.skill.(skillName)/GetDifficulty()
And you need to place some rounding on it because else it will show something like 0.3333333333333 in some cases.
 
No, I want to add that code IN the interface itself so it'll quite literally show as the string "1/3".
 
No, I want to add that code IN the interface itself so it'll quite literally show as the string "1/3".
also fine, then you should change it to:
Code:
itm.skill.(skillName) + "/" + GetDifficulty()
 
Sounds great! I play on sea dog so it works out to be exactly the / 3 modifier I like. Probably will fit many people's preferences in the same way. ;)

I would propose one additional change: edit the items file so that lockpicks give +2 luck, and blade kit gives +2 fencing. That way if someone is playing with only realistic item bonuses, they can get a +1 to their luck and fencing even at Sea Dog level (currently, all skills but fencing and luck have at least +3 possible from realistic items).

But that doesn't matter much either way. :)
 
I would propose one additional change: edit the items file so that lockpicks give +2 luck, and blade kit gives +2 fencing. That way if someone is playing with only realistic item bonuses, they can get a +1 to their luck and fencing even at Sea Dog level (currently, all skills but fencing and luck have at least +3 possible from realistic items).
You were changing stuff in that file anyway, so you're welcome to include those changes too. :doff
 
Back
Top