@Pieter Boelen We've got another problem with the tavern dialogue officers, though this one should prove uncontroversial, as it is clearly an error.
Tavern dialogue hires, and officers created in certain quests (for example, the officer created when you take sides in the fight outside Nevis pirate settlement), are using the formula for enemy encounters, rather than the "friendly" hired officer formula.
So in CreateOfficer we have the code I am posting below, and these guys use the enemy encounter formula. This creates two problems:
1) This is going to create the wrong relationship with difficulty level (ie, lower difficulties will get lower ranked officers, higher difficulties will get higher ranked, the opposite of intended effect.
2) In the current version, it will create too generous a scaling with player level (.9 as intended for enemies, instead of the .75 as intended for friendly officers), in my version, it will put them into the deleveled formula intended for bandits.
Aside from the difficulties being reversed in effect, this isn't too much of a problem for the created officers, as they are rare enough to be on their own special formula.
But for the tavern dialogue officers, it is a problem, as we are talking about a significant source of officers leveling on the incorrect table.
And also explains why I found the officers overpowered on swashbuckler--it makes them higher level the higher the player difficulty level!
Any way to tell these guys to use the if(isfriend) table?
Tavern dialogue hires, and officers created in certain quests (for example, the officer created when you take sides in the fight outside Nevis pirate settlement), are using the formula for enemy encounters, rather than the "friendly" hired officer formula.
So in CreateOfficer we have the code I am posting below, and these guys use the enemy encounter formula. This creates two problems:
1) This is going to create the wrong relationship with difficulty level (ie, lower difficulties will get lower ranked officers, higher difficulties will get higher ranked, the opposite of intended effect.
2) In the current version, it will create too generous a scaling with player level (.9 as intended for enemies, instead of the .75 as intended for friendly officers), in my version, it will put them into the deleveled formula intended for bandits.
Aside from the difficulties being reversed in effect, this isn't too much of a problem for the created officers, as they are rare enough to be on their own special formula.
But for the tavern dialogue officers, it is a problem, as we are talking about a significant source of officers leveling on the incorrect table.
And also explains why I found the officers overpowered on swashbuckler--it makes them higher level the higher the player difficulty level!
Any way to tell these guys to use the if(isfriend) table?
Code:
if(isfriend)
{
//friendly encounter
pRank = makeint(sti(PChar.rank)*0.75 + rand(sti(PChar.rank)*(1.1-(GetDifficulty()*0.2))) + offset);
//pRank = makeint(pRank * (1+((pLuck*2)+(pLead*3))/200)); //Take in account leadership and luck
pRank = makeint(pRank * (1+(pLead*5)/200)); //TY Let's remove some magical influence of luck
pRank = pRank + rand(bonus); //Take in account different officertypes;
if (pRank < 5) pRank = 2 + rand(5);
}
else
{
//enemy encounter
//pRank = makeint(sti(PChar.rank)*0.90 + rand(sti(PChar.rank)*(0.2+(GetDifficulty()*0.2))) + offset);
pRank = makeint(15*0.90 + rand(15*(0.2+(GetDifficulty()*0.2))) + offset); // TY let's try leveling the world as if the player were permanently level 15 (increased to compensate for now weaker randchar template), for random bandits and such
pRank = pRank + rand(bonus); //Take in account different officertypes;
if (pRank < 3) pRank = 1 + rand(4);
}