# cAllegiance Class Reference

List of all members.

## Public Types

typedef std::map< DWORD, Member > | MemberList

## Public Member Functions

void | LoadAllegiance (DWORD ID, DWORD leaderGUID, char name[40], char MOTD[255])
void | CreateAllegiance (DWORD leaderGUID)
void | Disband ()
Member * | FindMember (DWORD memberGUID)
DWORD | GetID ()
DWORD | GetLeader ()
DWORD | GetSize ()
std::string | GetName ()
std::string | GetMOTD ()
void | InsertMember (Member member, DWORD dwPatronGUID)
void | EraseMember (Member *member)
void | EraseMember (DWORD dwMemberGUID)
bool | AddDirectVassal (Member *memPatron, Member *memVassal)
bool | AddDirectVassal (DWORD dwPatronGUID, DWORD dwVassalGUID)
bool | RemDirectVassal (Member *memVassal)
bool | RemDirectVassal (DWORD dwVassalGUID)
void | SetMOTD (std::string motd)
std::string | GetMemberName (Member *member)
std::string | GetMemberName (DWORD dwMemberGUID)
int | GetVassalCount (Member *member)
int | GetVassalCount (DWORD dwMemberGUID)
int | GetFollowerCount (Member *member)
int | GetFollowerCount (DWORD dwMemberGUID)
void | UpdateFollowers (Member *member, int numFollowers)
void | UpdateFollowers (DWORD dwMemberGUID, int numFollowers)
void | UpdateRank (Member *member)
void | UpdateRank (DWORD dwMemberGUID)
void | VassalPassupXP (Member *memVassal, UINT64 experience, bool isGrandVassal=false)
void | UpdateGeneratedXP (Member *member, UINT64 experience)
void | UpdateEarnedXP (Member *member, UINT64 experience)
UINT64 | CalcVassalGeneratedXP (Member *memVassal, UINT64 experience, bool isGrandPatron=false)
UINT64 | CalcPatronReceivedXP (Member *memPatron, UINT64 experience, bool isGrandPatron=false)
void | UpdateAverageSwornTimeOfVassals (Member *memPatron)
float | CalcVassalFactor (int numVassals)
cMessage | GetAllegianceInfo (DWORD avatarGUID)

## Static Public Member Functions

static cAllegiance * | GetAllegianceByID (DWORD AllegianceID)
static void | SetLeader (DWORD allegianceID, DWORD leaderGUID)
static bool | AddNewMember (DWORD dwAvatarGUID, DWORD dwPatronGUID, DWORD oldAllegianceID, DWORD newAllegianceID)
static bool | AddRemMember (Member *member, DWORD oldAllegianceID, DWORD newAllegianceID)
static bool | RemMember (DWORD dwRemMemberGUID, DWORD oldAllegianceID, bool isDisbanding=false)
static bool | SwitchMonarchAndVassals (Member *member, DWORD oldAllegianceID, DWORD newAllegianceID)
static bool | SwitchNonMonarchVassals (Member *member, DWORD oldAllegianceID, DWORD newAllegianceID)
static void | UpdatePlayerAllegID (Member *member, DWORD newAllegianceID)
static void | UpdatePlayerAllegID (DWORD dwPlayerGUID, DWORD newAllegianceID)
static void | LoadMembersFromDB (cAllegiance *aAllegiance)
static void | UpdateAvatarAllegIDDB (DWORD dwGUID, DWORD allegianceID)
static void | UpdateMemberAllegIDDB (DWORD dwGUID, DWORD allegianceID)
static void | UpdateAvatarRecordDB (DWORD dwAvatarGUID)
static void | AddMemberRecordDB (DWORD allegianceID, DWORD dwAvatarGUID, DWORD dwPatronGUID)
static void | DeleteMemberRecordDB (DWORD allegianceID, DWORD dwMemberGUID)
static void | UpdateMemberRecordDB (Member *member)
static void | UpdateMemberXPPassupDB (DWORD memberGUID, UINT64 passedXP)
static void | UpdateMemberXPPendingDB (DWORD memberGUID, UINT64 pendingXP)
static void | UpdateMemberFollowersDB (DWORD memberGUID, int numFollowers)
static void | UpdateMemberRankDB (DWORD memberGUID, int rank)
static void | UpdateMemberPatronDB (DWORD memberGUID, DWORD patronGUID)

## Public Attributes

MemberList | members

## Protected Attributes

DWORD | m_ID
std::string | m_Name
DWORD | m_LeaderGUID
std::string | m_MOTD
int | m_Size
ULONG | m_CreationTime

## Friends

class | cMasterServer

## Member Function Documentation

bool cAllegiance::AddDirectVassal | ( | DWORD | dwPatronGUID,
|  | DWORD | dwVassalGUID |
| ) |  |  |

Adds a vassal to the patron's vassal list.

The patron's follower count and rank are both recaluated.

Parameters:

  | memPatron | - The GUID of the patron.
  | memVassal | - The GUID of the vassal to add to his/her patron's vassal list.

bool cAllegiance::AddDirectVassal | ( | Member * | memPatron,
|  | Member * | memVassal |
| ) |  |  |

Adds a vassal to the patron's vassal list.

The patron's follower count and rank are both recaluated.

Parameters:

  | memPatron | - A pointer to the member record of the patron.
  | memVassal | - A pointer to the member record of the vassal to add to his/her patron's vassal list.

bool cAllegiance::AddNewMember | ( | DWORD | dwAvatarGUID,
|  | DWORD | dwPatronGUID,
|  | DWORD | oldAllegianceID,
|  | DWORD | newAllegianceID |
| ) |  |  | `[static]`

Adds a player (and any vassals under him/her) to an allegiance.

The function is used when a player pledges allegiance to a member of an allegiance. Each follower of that member should also be added to the allegiance. The "old" allegiance to which these members belonged should be deleted if the pledged member was the monarch.

Parameters:

  | dwAvatarGUID | - The GUID of the player to add.
  | dwPatronGUID | - The GUID of the new patron of the player to add.
  | oldAllegianceID | - The ID of player's former allegiance, if any.
  | newAllegianceID | - The ID of player's new allegiance.

bool cAllegiance::AddRemMember | ( | Member * | member,
|  | DWORD | oldAllegianceID,
|  | DWORD | newAllegianceID |
| ) |  |  | `[static]`

Adds a removed player (and all of his/her followers) to a new allegiance.

The player and the vassals under the player switching are switched.

Parameters:

  | member | - The member whose allegiance should be switched.
  | oldAllegianceID | - The ID of the member's former allegiance.
  | newAllegianceID | - The ID of the member's new allegiance.

UINT64 cAllegiance::CalcPatronReceivedXP | ( | Member * | memPatron,
|  | UINT64 | receivedXP,
|  | bool | isGrandPatron = `false` |
| ) |  |  |

Calculates the percentage of experience received by a grand patron.

Received % - % XP that patron will receive from his vassal's Generated XP.

Old Patron Received % = 68 + (.35 * ALdr) (max 1.25) New Patron Received % = 50.0 + 22.5 * (BLdr / 291) * (1.0 + V * (RT2/730) * (IG2/720)) Old Grand Patron Received % = 68 + (.35 * ALdr) (max 1.25) New Grand Patron Received % = 16.0 + 8.0 * (BLdr / 291) * (1.0 + V * (RT2/730) * (IG2/720))

Variables: ALdr = Adjusted Leadership (163 max) = BLrd + (((7.5 * V) / 100) * BLrd) + ((IG2 / 1200) * BLrd) BLdr = Buffed Leadership (291 max) RT2 = average real-time sworn to patron for all vassals in days (730 max) IG2 = average in-game time sworn to patron for all vassals in hours (720 max) V = vassal factor Old: number of vassals New: (1 = 0.25, 2 = 0.50, 3 = 0.75, 4+ = 1.00) (1.0 max)

Parameters:

  | memPatron | - A pointer to the member record of the patron to use for the calculations.

Returns:
  UIN - The amount of experience received.

float cAllegiance::CalcVassalFactor | ( | int | numVassals | ) |

Calculates the vassal factor based upon a patron's number of vassals.

Used in the calculation of patron-received experience.

Parameters:

  | numVassals | - The number of vassals sworn to a given patron.

Returns:
  float - The vassal factor.

UINT64 cAllegiance::CalcVassalGeneratedXP | ( | Member * | memVassal,
|  | UINT64 | passedXP,
|  | bool | isGrandVassal = `false` |
| ) |  |  |

Calculates the percentage of experience passed up from a vassal.

Generated % - % XP to patron of vassal's Earned (hunting) XP

Old Vassal Generated % = 8.9 + (2 * 3.5 * (ALoy / 100)) New Vassal Generated % = 50.0 + 22.5 * (BLoy / 291) * (1.0 + (RT/730) * (IG/720)) Old Grand Vassal Generated % = 45 + (.15 * ALoy) New Grand Vassal Generated % = 16.0 + 8.0 * (BLoy / 291) * (1.0 + (RT/730) * (IG/720))

Variables: ALoy = Adjusted Loyalty = BLoy + ((IG / 240) * BLoy) BLoy = Buffed Loyalty (291 max) RT = actual real-time sworn to patron in days (730 max) IG = actual in-game time sworn to patron in hours (720 max)

Parameters:

  | memVassal | - A pointer to the member record of the vassal to use for the calculations.

Returns:
  UINT - The amount of experience generated.

void cAllegiance::EraseMember | ( | DWORD | dwMemberGUID | ) |

Erases a member from the allegiance.

The function is used when a player should be deleted from an allegiance.

Parameters:

  | dwMemberGUID | - The GUID of the player whose member record should be deleted.

void cAllegiance::EraseMember | ( | Member * | member | ) |

Erases a member from the allegiance.

The function is used when a player should be deleted from an allegiance.

Parameters:

  | member | - A pointer to the member record that should be deleted.

int cAllegiance::GetFollowerCount | ( | DWORD | dwMemberGUID | ) |

Calculates the number of followers under a given character.

Parameters:

  | dwPatronGUID | - The GUID of the member whose followers should be calculated.

Returns:
  int - The number of followers.

int cAllegiance::GetFollowerCount | ( | Member * | member | ) |

Calculates the number of followers under a given character.

Parameters:

  | memPatron | - A pointer to the member record of the member whose followers should be calculated.

Returns:
  int - The number of followers.

int cAllegiance::GetVassalCount | ( | DWORD | dwPatronGUID | ) |

Calculates the number of direct vassals sworn to a given character.

Parameters:

  | dwPatronGUID | - The GUID of the member whose direct vassals should be calculated.

Returns:
  int - The number of direct vassals.

int cAllegiance::GetVassalCount | ( | Member * | memPatron | ) |

Caclulates the number of direct vassals sworn to a given character.

Parameters:

  | memPatron | - A pointer to the member record of the member whose direct vassals should be calculated.

Returns:
  int - The number of direct vassals.

void cAllegiance::InsertMember | ( | Member | member,
|  | DWORD | dwPatronGUID |
| ) |  |  |

Inserts a member into the allegiance.

The function is used when a player should be inserted into an allegiance.

Parameters:

  | member | - The member record object for the member that should be inserted.
  | dwPatronGUID | - The GUID of the new member's patron.

void cAllegiance::LoadMembersFromDB | ( | cAllegiance * | aAllegiance | ) | `[static]`

Loads the allegiance's members into memory.

This function is called when the server is started. Loading this information at server boot reduces the impact of experience passing.

Allegiance members are loaded into a map with their GUID as key. Each member is a struct containing pertinent allegiance information.

bool cAllegiance::RemDirectVassal | ( | DWORD | dwVassalGUID | ) |

Removes a vassal from the patron's vassal list.

The patron's follower count and rank are both recaluated.

Parameters:

  | memVassal | - The GUID of the vassal to remove from his/her patron's vassal list.

bool cAllegiance::RemDirectVassal | ( | Member * | memVassal | ) |

Removes a vassal from the patron's vassal list.

The patron's follower count and rank are both recaluated.

Parameters:

  | memVassal | - A pointer to the member record of the vassal to remove from his/her patron's vassal list.

bool cAllegiance::RemMember | ( | DWORD | dwRemMemberGUID,
|  | DWORD | oldAllegianceID,
|  | bool | isDisbanding = `false` |
| ) |  |  | `[static]`

Removes a player (and any vassals under him/her) from an allegiance.

The function is used when a player breaks or is kicked/booted/banned from the allegiance. Each follower of that member should also be removed from the allegiance.

Parameters:

  | dwRemMemberGUID | - The GUID of the player to remove.
  | isDisbanding | - A boolean value representing whether to disband the allegiance.

bool cAllegiance::SwitchMonarchAndVassals | ( | Member * | member,
|  | DWORD | oldAllegianceID,
|  | DWORD | newAllegianceID |
| ) |  |  | `[static]`

Switches a player's (and all of his/her followers') allegiance.

It is prefered over the non-monarch implementation, as it iterates rather than searches through the member map.

Parameters:

  | member | - The monach whose allegiance should be switched.
  | oldAllegianceID | - The ID of the monarch's former allegiance.
  | newAllegianceID | - The ID of the allegiance to which the monarch and his/her followers should be switched.

bool cAllegiance::SwitchNonMonarchVassals | ( | Member * | member,
|  | DWORD | oldAllegianceID,
|  | DWORD | newAllegianceID |
| ) |  |  | `[static]`

Switches a player's followers' allegiance.

Only the vassals under the player switching are switched.

Parameters:

  | member | - The member whose allegiance should be switched.
  | oldAllegianceID | - The ID of the member's former allegiance.
  | newAllegianceID | - The ID of the member's new allegiance.

void cAllegiance::UpdateAverageSwornTimeOfVassals | ( | Member * | memPatron | ) |

Calculates the average sworn time for a patron's vassals and updates the patron's member record.

This function calculates both the average in-game and average real-time sworn time for a patron's vassals. These values are used in the calculation of vassal experience pass-up to a patron.

Parameters:

  | memPatron | - A pointer to the member record of the patron to use for the calculations.

void cAllegiance::UpdateEarnedXP | ( | Member * | member,
|  | UINT64 | experience |
| ) |  |  |

Updates the member's earned experience.

The member may be logged-on or logged-off: If the member is logged-on, the experience is added directly to the avatar's unassigned experience. If the member is logged-off, the experience is added to the avatar's pending experience.

Parameters:

  | member | - A pointer to the member record of the member whose experience should be updated.
  | experience | - The amount of experience earned.

void cAllegiance::UpdateFollowers | ( | DWORD | dwMemberGUID,
|  | int | numFollowers |
| ) |  |  |

Updates the follower count for a branch of the allegiance tree.

The function is used to update the tree when a member is added or removed. Each follower of that member must be added/removed to/from the follower count for each allegiance member higher in the tree.

Parameters:

  | memberGUID | - The GUID of the base member from whom to start.
  | numFollowers | - The number of followers added or removed.

void cAllegiance::UpdateFollowers | ( | Member * | member,
|  | int | numFollowers |
| ) |  |  |

Updates the follower count for a branch of the allegiance tree.

The function is used to update the tree when a member is added or removed. Each follower of that member must be added/removed to/from the follower count for each allegiance member higher in the tree.

Parameters:

  | member | - A pointer to the member record of the base member from whom to start.
  | numFollowers | - The number of followers added or removed.

void cAllegiance::UpdateGeneratedXP | ( | Member * | member,
|  | UINT64 | experience |
| ) |  |  |

Updates the member's generated experience.

Parameters:

  | member | - A pointer to the member record of the member whose generated experience should be updated.
  | experience | - The amount of experience generated.

void cAllegiance::UpdatePlayerAllegID | ( | DWORD | dwPlayerGUID,
|  | DWORD | newAllegianceID |
| ) |  |  | `[static]`

Updates the allegiance ID for a player.

The function is used to update a player's allegiance ID when he/she joins an allegiance or his/her allegiance is switched.

Parameters:

  | dwPlayerGUID | - The GUID of the player whose allegiance ID should be changed.
  | newAllegianceID | - The player's new allegiance ID.

void cAllegiance::UpdatePlayerAllegID | ( | Member * | member,
|  | DWORD | newAllegianceID |
| ) |  |  | `[static]`

Updates the allegiance ID for a player.

The function is used to update a player's allegiance ID when he/she joins an allegiance or his/her allegiance is switched.

Parameters:

  | member | - A pointer to the member record of the player whose allegiance ID should be changed.
  | newAllegianceID | - The player's new allegiance ID.

void cAllegiance::UpdateRank | ( | DWORD | dwMemberGUID | ) |

Updates the rank of a member.

A patron's rank is equal to the rank of the highest vassal or one higher than the two highest vassals of equal rank, whichever is greater. A patron's rank may change if he/she gains/loses a vassal, or if a vassal's rank changes. If a member's rank has changed, his/her patron's rank is also recalculated. The minimum rank is 1.

Parameters:

  | memberGUID | - The GUID of the base member/patron from whom to start.

void cAllegiance::UpdateRank | ( | Member * | member | ) |

Updates the rank of a member.

A patron's rank is equal to the rank of the highest vassal or one higher than the two highest vassals of equal rank, whichever is greater. A patron's rank may change if he/she gains/loses a vassal, or if a vassal's rank changes. If a member's rank has changed, his/her patron's rank is also recalculated. The minimum rank is 1.

Parameters:

  | member | - A pointer to the member record of the base member/patron from whom to start.

void cAllegiance::VassalPassupXP | ( | Member * | memVassal,
|  | UINT64 | experience,
|  | bool | isGrandVassal = `false` |
| ) |  |  |

Calculates the percentage of experience passed up from a vassal.

Parameters:

  | memVassal | - A pointer to the member record of the vassal to use for the calculations.
  | experience | - The amount of experience from which to calculate pass-up.
  | isGrandVassal | - Is a grand vassal (a non-originator of the experience).

The documentation for this class was generated from the following files:

- E:/uas2/Server/Allegiance.h
- E:/uas2/Server/Allegiance.cpp