I tried it in vanilla Kingdoms grand campaign with these traits...
Code:
;------------------------------------------
Trait test_trait_A
Characters all
;NoGoingBackLevel 2 ;commented out
AntiTraits test_trait_B
Level test_trait_A_1
Description test_trait_A_1_desc
EffectsDescription test_trait_A_1_effects_desc
Threshold 2
Effect Level 1
Level test_trait_A_2
Description test_trait_A_2_desc
EffectsDescription test_trait_A_2_effects_desc
Threshold 4
Effect Level 2
;------------------------------------------
Trait test_trait_B
Characters all
;NoGoingBackLevel 1 ;commented out
AntiTraits test_trait_A
Level test_trait_B_1
Description test_trait_B_1_desc
EffectsDescription test_trait_B_1_effects_desc
Threshold 2
Effect Level 3
VNVs:
{test_trait_A_1}test_trait_A_1
{test_trait_A_1_desc}test_trait_A_1
{test_trait_A_1_effects_desc}Level 1
{test_trait_A_2}test_trait_A_2
{test_trait_A_2_desc}test_trait_A_2
{test_trait_A_2_effects_desc}Level 2
{test_trait_B_1}test_trait_B_1
{test_trait_B_1_desc}test_trait_B_1
{test_trait_B_1_effects_desc}Level 3
...this script...
Code:
monitor_event FactionTurnStart
spawn_army
faction england
character random_name, named character, age 20, x 100, y 150, label antiTest1
unit Hobilars exp 0 armour 0 weapon_lvl 0
end
spawn_character england, random_name, merchant, age 18, x 102, y 150
spawn_character england, random_name, assassin, age 18, x 103, y 150
spawn_character england, random_name, priest, age 18, x 104, y 150
terminate_monitor
end_monitor
monitor_event CharacterSelected AgentType merchant
console_command give_trait_points antiTest1 test_trait_A 1
end_monitor
monitor_event CharacterSelected AgentType assassin
console_command give_trait_points antiTest1 test_trait_B 1
end_monitor
monitor_event CharacterSelected AgentType priest
console_command give_trait antiTest1 test_trait_B 1
end_monitor
...and these entries in descr_character.txt for england named character...
Code:
faction england
dictionary 2
strat_model northern_general
strat_model northern_spy
strat_model catholic_priest
strat_model northern_ambassador
battle_model Northern_General
battle_equip gladius, chainmail shirt helmet and rectangular shield
Selecting the merchant, assassin and priest affects the current trait of the named character, changing his strat model (via Level effect). e.g. Selecting the merchant twice in a row gives the NC 2 points in test_trait_A which makes it reach the first trait level: the NC changes to a spy model.
It all works exactly as expected. However, note that this is awarding trait points via script instead of trait triggers. Maybe someone else can test that. (EDIT: nevermind, did it myself and triggers work fine too.)
What I did find was that putting those NoGoingBackLevel lines back in made it go haywire. Selecting the merchant 3 times was fine (spy model and is now one point away from reaching level 2) but then selecting the assassin twice did nothing (it should have dropped the trait to below level 1 and therefore the model back to a general) ... in fact the NC's trait actually advanced to the second level of test_trait_A (but with still no change in the model). Bizarre.
There is another known bug with AntiTraits as mentioned here...
Assume you have a Trait A with AntiTraits B.
Then, if you gain points in B, you lose them in A (if you have some points in A) unless that would result exactly in the loss of a level in A -
in that case, you lose all levels in A.
Still not understood? Here's an example:
Imagine the following situation:
You have a princess with the GoodPrincess trait at level 2 (2 points). She fails a diplomacy mission and gets one point in BadPrincess. Now, instead of simply going back to GoodPrincess level 1 (which would happen if she simply lost a point), she loses all points in GoodPrincess.
A possible workaround if you don't use NoGoingBackLevel is apparently to have a NoGoingBackLevel that is higher than your highest trait level.
I don't know if that was fixed in a later version. I haven't experienced it myself but I don't use AntiTraits or NoGoingBackLevel in my traits.
It was also mentioned here in a RTW tutorial...
This is one nasty bug. It does not happen often, but when it happens it's not pretty. For example, if your Assassin had 4 points in GoodAssassin (Superior Assassin), and after one failed kill got 1 point of BadAssassin, instead getting left with 3 points (Murderer), he'll lose all points in GoodAssassin. Careful inspection shows that this bug only happens with traits that have no "NoGoingBackLevel". Just giving virtual "NoGoingBackLevel" to all problematic traits will fix the bug. By virtual, I mean giving levels that are not possible to achieve, like 6th level for GoodAssassin (which has just 5 levels).
~~~
In summary I'd say to steer clear of using AntiTraits and NoGoingBackLevel together. If the quote from the OP was not using NoGoingBackLevel then I question those findings: I'm certainly not seeing that problem here, so long as I don't use NoGoingBackLevel. Not saying that it's definitely wrong - maybe there are circumstances where it does happen which my test doesn't cover.