Difference between revisions of "Server:Faction"

From The Al`Kabor Project Wiki
Jump to navigation Jump to search
Line 6: Line 6:


== Faction Properties ==
== Faction Properties ==
* int32 id
{| class="wikitable"
* std::map<std::string, int16> mods;
|-
* int16 base;
! Property !! Data Type !! Description
* char name[50];
|-
* bool see_illusion;
| id || int32 || database identifier
* int16 min_cap;
|-
* int16 max_cap;
| mods || std::map<std::string, int16> ||
|-
| int16 base;
|-
| name || char array 50 ||
|-
| see_illusion || bool || Determines whether the faction will see through racial illusion spells
|-
| min_cap || int16
|-
| max_cap || int16
|}


== Faction Modifiers ==
== Faction Modifiers ==

Revision as of 10:16, 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

Property Data Type Description
id int32 database identifier
mods std::map<std::string, int16>
int16 base;
name char array 50
see_illusion bool Determines whether the faction will see through racial illusion spells
min_cap int16
max_cap int16

Faction Modifiers

  • base
  • class_mod
  • race_mod
  • deity_mod

Faction Value Ranges

Min Cap Max Cap Level
>= 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