Difference between revisions of "Server:Faction"
Jump to navigation
Jump to search
| Line 59: | Line 59: | ||
|- | |- | ||
| - || <= -2000 || FACTION_MAX_SCOWLS = 10 | | - || <= -2000 || FACTION_MAX_SCOWLS = 10 | ||
|} | |||
== NPC Faction == | |||
The '''NPCFaction''' struct defined in '''/common/faction.h''' defines the following members: | |||
{| class="wikitable" | |||
|- | |||
! Property !! Data Type !! Description | |||
|- | |||
| factionID || uint32 || | |||
|- | |||
| value_mod || int32 || | |||
|- | |||
| npc_value || int8 || | |||
|- | |||
| temp || uint8 || | |||
|} | |} | ||
Revision as of 16:32, 21 November 2024
This article will attempt to explain how faction works server-side to assist with understanding the various modifiers applied to characters between the base values and the ones you experience in-game.
In the source code, faction is found in /common/faction.h and /common/faction.cpp. Faction is calculated in the CalculateFaction function, where
character_value += base value + class modifier + race modifier + deity modifier
Faction Properties
The Faction struct defined in /common/faction.h defines the following members:
| Property | Data Type | Description |
|---|---|---|
| id | int32 | database identifier |
| mods | std::map<std::string, int16> | |
| base | int16 | The base, unmodified value that players start with for this faction before race, class, and deity modifiers are applied |
| name | char array 50 | The name of the faction |
| see_illusion | bool | Determines whether the faction will see through racial illusion spells |
| min_cap | int16 | Minimum value players can reach with this faction |
| max_cap | int16 | Maximum value players can reach with this faction |
Faction Modifiers
The FactionMod struct defined in /common/faction.h defines the following members:
- int32 base
- int32 class_mod
- int32 race_mod
- int32 deity_mod
Faction Value Ranges
| Min Cap | Max Cap | FACTION_VALUE (Enum) |
|---|---|---|
| >= 2000 | - | FACTION_MAX_ALLY = 0 |
| >= 1100 | - | FACTION_ALLY = 1 |
| >= 750 | <= 1099 | FACTION_WARMLY = 2 |
| >= 500 | <= 749 | FACTION_KINDLY = 3 |
| >= 100 | <= 499 | FACTION_AMIABLY = 4 |
| >= 0 | <= 99 | FACTION_INDIFFERENTLY = 5 |
| >= -100 | <= -1 | FACTION_APPREHENSIVELY = 6 |
| >= -500 | <= -101 | FACTION_DUBIOUSLY = 7 |
| >= -750 | <= -501 | FACTION_THREATENINGLY = 8 |
| - | <= -751 | FACTION_SCOWLS = 9 |
| - | <= -2000 | FACTION_MAX_SCOWLS = 10 |
NPC Faction
The NPCFaction struct defined in /common/faction.h defines the following members:
| Property | Data Type | Description |
|---|---|---|
| factionID | uint32 | |
| value_mod | int32 | |
| npc_value | int8 | |
| temp | uint8 |