Difference between revisions of "Server:Faction"

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


<code>character_value += base value + class modifier + race modifier + deity modifier</code>
<code>character_value += base value + class modifier + race modifier + deity modifier</code>
== Faction Properties ==
* int32 id
* std::map<std::string, int16> mods;
* int16 base;
* char name[50];
* bool see_illusion;
* int16 min_cap;
* int16 max_cap;


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

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

  • int32 id
  • std::map<std::string, int16> mods;
  • int16 base;
  • char name[50];
  • bool see_illusion;
  • int16 min_cap;
  • int16 max_cap;

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