Croaker
Landlubber
I found some interesting code in "C:\Program Files\Playlogic\Age of Pirates 2\Program\scripts\officers.c:
<!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->if (sti(Npchar.reputation) > 41)
{Npchar.alignment = "good";}
else
{Npchar.alignment = "bad";}<!--QuoteEnd--></div><!--QuoteEEnd-->
and
<!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->if (CheckAttribute(characters[iPassenger], "loyality"))
{if (characters[iPassenger].alignment == alignment)
{characters[iPassenger].loyality = makeint(characters[iPassenger].loyality) + 1;}
else
{characters[iPassenger].loyality = makeint(characters[iPassenger].loyality) - 1;}<!--QuoteEnd--></div><!--QuoteEEnd-->
I don't know anything about writing code, but what I get from this is that while your officers have many different levels of reputation; assassin, shark, hero, ect, the game sets their alignment as either "good" or "bad" when it comes to determining their loyalty changes based upon your actions.
This does shed some light on why quest NPC, which are "neutral" reputation, consistently gain or lose loyalty with those of hero "reputation"; they are both defined as "good". While it would be very nice for "neutral" reputation to be undefined as "good" or "bad" and unaffected by your actions, I don't know how to phrase that line of code.
However, It does seem logical that redefining "good" as >51 or >61, would put the neutral quest characters in the "bad" camp and make them much easier to deal with (for us evil pirates). I might also suggest that reducting the change from +/- 1 to some fraction like 0.5 or 0.1 would give the officers a much slower progression towards the extremes. I might just leave the matching actions (alignment=alignment) as +1 and reduce the (else) actions to -0.5 on the basis that loyalty should grow over time.
Ideally the plus and minus are modified by charisma. Ok, Im going to make an attempt at this..... <img src="style_emoticons/<#EMO_DIR#>/laugh.gif" style="vertical-align:middle" emoid="
:" border="0" alt="laugh.gif" />
{characters[iPassenger].loyality = makeint(characters[iPassenger].loyality) + (GetCharacterSPECIAL(_chref, SPECIAL_c)*0.1);}
else
{characters[iPassenger].loyality = makeint(characters[iPassenger].loyality) + ((GetCharacterSPECIAL(_chref, SPECIAL_c)-11)/10);}
This might just blow up in my face, but I will give it a try and see what happens.
If it works then high charisma (10) makes pluses=1 and minues=0.1, while low charisma (1) makes pluses=0.1 and minues=1. This would make it extremely easy for high charisma characters to keeps their officers, but very difficult for low charisma characters
<!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->if (sti(Npchar.reputation) > 41)
{Npchar.alignment = "good";}
else
{Npchar.alignment = "bad";}<!--QuoteEnd--></div><!--QuoteEEnd-->
and
<!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->if (CheckAttribute(characters[iPassenger], "loyality"))
{if (characters[iPassenger].alignment == alignment)
{characters[iPassenger].loyality = makeint(characters[iPassenger].loyality) + 1;}
else
{characters[iPassenger].loyality = makeint(characters[iPassenger].loyality) - 1;}<!--QuoteEnd--></div><!--QuoteEEnd-->
I don't know anything about writing code, but what I get from this is that while your officers have many different levels of reputation; assassin, shark, hero, ect, the game sets their alignment as either "good" or "bad" when it comes to determining their loyalty changes based upon your actions.
This does shed some light on why quest NPC, which are "neutral" reputation, consistently gain or lose loyalty with those of hero "reputation"; they are both defined as "good". While it would be very nice for "neutral" reputation to be undefined as "good" or "bad" and unaffected by your actions, I don't know how to phrase that line of code.
However, It does seem logical that redefining "good" as >51 or >61, would put the neutral quest characters in the "bad" camp and make them much easier to deal with (for us evil pirates). I might also suggest that reducting the change from +/- 1 to some fraction like 0.5 or 0.1 would give the officers a much slower progression towards the extremes. I might just leave the matching actions (alignment=alignment) as +1 and reduce the (else) actions to -0.5 on the basis that loyalty should grow over time.
Ideally the plus and minus are modified by charisma. Ok, Im going to make an attempt at this..... <img src="style_emoticons/<#EMO_DIR#>/laugh.gif" style="vertical-align:middle" emoid="

{characters[iPassenger].loyality = makeint(characters[iPassenger].loyality) + (GetCharacterSPECIAL(_chref, SPECIAL_c)*0.1);}
else
{characters[iPassenger].loyality = makeint(characters[iPassenger].loyality) + ((GetCharacterSPECIAL(_chref, SPECIAL_c)-11)/10);}
This might just blow up in my face, but I will give it a try and see what happens.
If it works then high charisma (10) makes pluses=1 and minues=0.1, while low charisma (1) makes pluses=0.1 and minues=1. This would make it extremely easy for high charisma characters to keeps their officers, but very difficult for low charisma characters