Perhaps you're not utilizing the faction tables correctly.
npc_types.npc_faction_id corresponds to npc_faction.id
npc_faction.primaryfaction corresponds to faction_list.id
faction_list.id corresponds to faction_values.faction_id
So, when character # 1 cons Nagafen (npc_types.id 32040), the server sees that Nagafen has a npc_faction_id of 23.
The server checks the npc_faction record for id 23 and sees that the primary faction for this entry is 226.
The server checks the faction_list table for id 226 and builds a starting faction value from the base, race, class, and deity modifiers in the record.
The server then checks the faction_values table record matching character id #1 and faction_id # 226, adding the user-accomplished current_value number to the starting faction value from faction_list.
The server then adds in any further modifiers such as worn item faction adjustments and spell-related faction adjustments.
The final modified number determines the individual character's standing with the NPC being conned.
|