[Feature] Add Experience Gain Toggle. (#2676)

* [Feature] Add Experience Gain Toggle.

# Perl
- Add `$client->IsEXPEnabled()`.
- Add `$client->SetEXPEnabled(is_exp_enabled)`.

# Lua
- Add `client:IsEXPEnabled()`.
- Add `client:SetEXPEnabled(is_exp_enabled)`.

# Commands
- Add `#exptoggle [Toggle] - Toggle your or your target's experience gain.`.

# Notes
- Allows operators to turn on/off a player's experience gain individually without changing their rule values.
- The command allows operators to give players access to the command to disable their own experience gain.
This commit is contained in:
Alex King
2022-12-30 17:30:23 -05:00
committed by GitHub
parent 0c9c78fbab
commit a6fa6084fa
16 changed files with 489 additions and 371 deletions
@@ -16,6 +16,7 @@
#include "../../strings.h"
#include <ctime>
class BaseCharacterDataRepository {
public:
struct CharacterData {
@@ -57,6 +58,7 @@ public:
uint8_t ability_time_minutes;
uint8_t ability_time_hours;
uint32_t exp;
uint8_t exp_enabled;
uint32_t aa_points_spent;
uint32_t aa_exp;
uint32_t aa_points;
@@ -169,6 +171,7 @@ public:
"ability_time_minutes",
"ability_time_hours",
"exp",
"exp_enabled",
"aa_points_spent",
"aa_exp",
"aa_points",
@@ -277,6 +280,7 @@ public:
"ability_time_minutes",
"ability_time_hours",
"exp",
"exp_enabled",
"aa_points_spent",
"aa_exp",
"aa_points",
@@ -419,6 +423,7 @@ public:
e.ability_time_minutes = 0;
e.ability_time_hours = 0;
e.exp = 0;
e.exp_enabled = 1;
e.aa_points_spent = 0;
e.aa_exp = 0;
e.aa_points = 0;
@@ -508,8 +513,9 @@ public:
{
auto results = db.QueryDatabase(
fmt::format(
"{} WHERE id = {} LIMIT 1",
"{} WHERE {} = {} LIMIT 1",
BaseSelect(),
PrimaryKey(),
character_data_id
)
);
@@ -556,70 +562,71 @@ public:
e.ability_time_minutes = static_cast<uint8_t>(strtoul(row[35], nullptr, 10));
e.ability_time_hours = static_cast<uint8_t>(strtoul(row[36], nullptr, 10));
e.exp = static_cast<uint32_t>(strtoul(row[37], nullptr, 10));
e.aa_points_spent = static_cast<uint32_t>(strtoul(row[38], nullptr, 10));
e.aa_exp = static_cast<uint32_t>(strtoul(row[39], nullptr, 10));
e.aa_points = static_cast<uint32_t>(strtoul(row[40], nullptr, 10));
e.group_leadership_exp = static_cast<uint32_t>(strtoul(row[41], nullptr, 10));
e.raid_leadership_exp = static_cast<uint32_t>(strtoul(row[42], nullptr, 10));
e.group_leadership_points = static_cast<uint32_t>(strtoul(row[43], nullptr, 10));
e.raid_leadership_points = static_cast<uint32_t>(strtoul(row[44], nullptr, 10));
e.points = static_cast<uint32_t>(strtoul(row[45], nullptr, 10));
e.cur_hp = static_cast<uint32_t>(strtoul(row[46], nullptr, 10));
e.mana = static_cast<uint32_t>(strtoul(row[47], nullptr, 10));
e.endurance = static_cast<uint32_t>(strtoul(row[48], nullptr, 10));
e.intoxication = static_cast<uint32_t>(strtoul(row[49], nullptr, 10));
e.str = static_cast<uint32_t>(strtoul(row[50], nullptr, 10));
e.sta = static_cast<uint32_t>(strtoul(row[51], nullptr, 10));
e.cha = static_cast<uint32_t>(strtoul(row[52], nullptr, 10));
e.dex = static_cast<uint32_t>(strtoul(row[53], nullptr, 10));
e.int_ = static_cast<uint32_t>(strtoul(row[54], nullptr, 10));
e.agi = static_cast<uint32_t>(strtoul(row[55], nullptr, 10));
e.wis = static_cast<uint32_t>(strtoul(row[56], nullptr, 10));
e.zone_change_count = static_cast<uint32_t>(strtoul(row[57], nullptr, 10));
e.toxicity = static_cast<uint32_t>(strtoul(row[58], nullptr, 10));
e.hunger_level = static_cast<uint32_t>(strtoul(row[59], nullptr, 10));
e.thirst_level = static_cast<uint32_t>(strtoul(row[60], nullptr, 10));
e.ability_up = static_cast<uint32_t>(strtoul(row[61], nullptr, 10));
e.ldon_points_guk = static_cast<uint32_t>(strtoul(row[62], nullptr, 10));
e.ldon_points_mir = static_cast<uint32_t>(strtoul(row[63], nullptr, 10));
e.ldon_points_mmc = static_cast<uint32_t>(strtoul(row[64], nullptr, 10));
e.ldon_points_ruj = static_cast<uint32_t>(strtoul(row[65], nullptr, 10));
e.ldon_points_tak = static_cast<uint32_t>(strtoul(row[66], nullptr, 10));
e.ldon_points_available = static_cast<uint32_t>(strtoul(row[67], nullptr, 10));
e.tribute_time_remaining = static_cast<uint32_t>(strtoul(row[68], nullptr, 10));
e.career_tribute_points = static_cast<uint32_t>(strtoul(row[69], nullptr, 10));
e.tribute_points = static_cast<uint32_t>(strtoul(row[70], nullptr, 10));
e.tribute_active = static_cast<uint32_t>(strtoul(row[71], nullptr, 10));
e.pvp_status = static_cast<uint8_t>(strtoul(row[72], nullptr, 10));
e.pvp_kills = static_cast<uint32_t>(strtoul(row[73], nullptr, 10));
e.pvp_deaths = static_cast<uint32_t>(strtoul(row[74], nullptr, 10));
e.pvp_current_points = static_cast<uint32_t>(strtoul(row[75], nullptr, 10));
e.pvp_career_points = static_cast<uint32_t>(strtoul(row[76], nullptr, 10));
e.pvp_best_kill_streak = static_cast<uint32_t>(strtoul(row[77], nullptr, 10));
e.pvp_worst_death_streak = static_cast<uint32_t>(strtoul(row[78], nullptr, 10));
e.pvp_current_kill_streak = static_cast<uint32_t>(strtoul(row[79], nullptr, 10));
e.pvp2 = static_cast<uint32_t>(strtoul(row[80], nullptr, 10));
e.pvp_type = static_cast<uint32_t>(strtoul(row[81], nullptr, 10));
e.show_helm = static_cast<uint32_t>(strtoul(row[82], nullptr, 10));
e.group_auto_consent = static_cast<uint8_t>(strtoul(row[83], nullptr, 10));
e.raid_auto_consent = static_cast<uint8_t>(strtoul(row[84], nullptr, 10));
e.guild_auto_consent = static_cast<uint8_t>(strtoul(row[85], nullptr, 10));
e.leadership_exp_on = static_cast<uint8_t>(strtoul(row[86], nullptr, 10));
e.RestTimer = static_cast<uint32_t>(strtoul(row[87], nullptr, 10));
e.air_remaining = static_cast<uint32_t>(strtoul(row[88], nullptr, 10));
e.autosplit_enabled = static_cast<uint32_t>(strtoul(row[89], nullptr, 10));
e.lfp = static_cast<uint8_t>(strtoul(row[90], nullptr, 10));
e.lfg = static_cast<uint8_t>(strtoul(row[91], nullptr, 10));
e.mailkey = row[92] ? row[92] : "";
e.xtargets = static_cast<uint8_t>(strtoul(row[93], nullptr, 10));
e.firstlogon = static_cast<int8_t>(atoi(row[94]));
e.e_aa_effects = static_cast<uint32_t>(strtoul(row[95], nullptr, 10));
e.e_percent_to_aa = static_cast<uint32_t>(strtoul(row[96], nullptr, 10));
e.e_expended_aa_spent = static_cast<uint32_t>(strtoul(row[97], nullptr, 10));
e.aa_points_spent_old = static_cast<uint32_t>(strtoul(row[98], nullptr, 10));
e.aa_points_old = static_cast<uint32_t>(strtoul(row[99], nullptr, 10));
e.e_last_invsnapshot = static_cast<uint32_t>(strtoul(row[100], nullptr, 10));
e.deleted_at = strtoll(row[101] ? row[101] : "-1", nullptr, 10);
e.exp_enabled = static_cast<uint8_t>(strtoul(row[38], nullptr, 10));
e.aa_points_spent = static_cast<uint32_t>(strtoul(row[39], nullptr, 10));
e.aa_exp = static_cast<uint32_t>(strtoul(row[40], nullptr, 10));
e.aa_points = static_cast<uint32_t>(strtoul(row[41], nullptr, 10));
e.group_leadership_exp = static_cast<uint32_t>(strtoul(row[42], nullptr, 10));
e.raid_leadership_exp = static_cast<uint32_t>(strtoul(row[43], nullptr, 10));
e.group_leadership_points = static_cast<uint32_t>(strtoul(row[44], nullptr, 10));
e.raid_leadership_points = static_cast<uint32_t>(strtoul(row[45], nullptr, 10));
e.points = static_cast<uint32_t>(strtoul(row[46], nullptr, 10));
e.cur_hp = static_cast<uint32_t>(strtoul(row[47], nullptr, 10));
e.mana = static_cast<uint32_t>(strtoul(row[48], nullptr, 10));
e.endurance = static_cast<uint32_t>(strtoul(row[49], nullptr, 10));
e.intoxication = static_cast<uint32_t>(strtoul(row[50], nullptr, 10));
e.str = static_cast<uint32_t>(strtoul(row[51], nullptr, 10));
e.sta = static_cast<uint32_t>(strtoul(row[52], nullptr, 10));
e.cha = static_cast<uint32_t>(strtoul(row[53], nullptr, 10));
e.dex = static_cast<uint32_t>(strtoul(row[54], nullptr, 10));
e.int_ = static_cast<uint32_t>(strtoul(row[55], nullptr, 10));
e.agi = static_cast<uint32_t>(strtoul(row[56], nullptr, 10));
e.wis = static_cast<uint32_t>(strtoul(row[57], nullptr, 10));
e.zone_change_count = static_cast<uint32_t>(strtoul(row[58], nullptr, 10));
e.toxicity = static_cast<uint32_t>(strtoul(row[59], nullptr, 10));
e.hunger_level = static_cast<uint32_t>(strtoul(row[60], nullptr, 10));
e.thirst_level = static_cast<uint32_t>(strtoul(row[61], nullptr, 10));
e.ability_up = static_cast<uint32_t>(strtoul(row[62], nullptr, 10));
e.ldon_points_guk = static_cast<uint32_t>(strtoul(row[63], nullptr, 10));
e.ldon_points_mir = static_cast<uint32_t>(strtoul(row[64], nullptr, 10));
e.ldon_points_mmc = static_cast<uint32_t>(strtoul(row[65], nullptr, 10));
e.ldon_points_ruj = static_cast<uint32_t>(strtoul(row[66], nullptr, 10));
e.ldon_points_tak = static_cast<uint32_t>(strtoul(row[67], nullptr, 10));
e.ldon_points_available = static_cast<uint32_t>(strtoul(row[68], nullptr, 10));
e.tribute_time_remaining = static_cast<uint32_t>(strtoul(row[69], nullptr, 10));
e.career_tribute_points = static_cast<uint32_t>(strtoul(row[70], nullptr, 10));
e.tribute_points = static_cast<uint32_t>(strtoul(row[71], nullptr, 10));
e.tribute_active = static_cast<uint32_t>(strtoul(row[72], nullptr, 10));
e.pvp_status = static_cast<uint8_t>(strtoul(row[73], nullptr, 10));
e.pvp_kills = static_cast<uint32_t>(strtoul(row[74], nullptr, 10));
e.pvp_deaths = static_cast<uint32_t>(strtoul(row[75], nullptr, 10));
e.pvp_current_points = static_cast<uint32_t>(strtoul(row[76], nullptr, 10));
e.pvp_career_points = static_cast<uint32_t>(strtoul(row[77], nullptr, 10));
e.pvp_best_kill_streak = static_cast<uint32_t>(strtoul(row[78], nullptr, 10));
e.pvp_worst_death_streak = static_cast<uint32_t>(strtoul(row[79], nullptr, 10));
e.pvp_current_kill_streak = static_cast<uint32_t>(strtoul(row[80], nullptr, 10));
e.pvp2 = static_cast<uint32_t>(strtoul(row[81], nullptr, 10));
e.pvp_type = static_cast<uint32_t>(strtoul(row[82], nullptr, 10));
e.show_helm = static_cast<uint32_t>(strtoul(row[83], nullptr, 10));
e.group_auto_consent = static_cast<uint8_t>(strtoul(row[84], nullptr, 10));
e.raid_auto_consent = static_cast<uint8_t>(strtoul(row[85], nullptr, 10));
e.guild_auto_consent = static_cast<uint8_t>(strtoul(row[86], nullptr, 10));
e.leadership_exp_on = static_cast<uint8_t>(strtoul(row[87], nullptr, 10));
e.RestTimer = static_cast<uint32_t>(strtoul(row[88], nullptr, 10));
e.air_remaining = static_cast<uint32_t>(strtoul(row[89], nullptr, 10));
e.autosplit_enabled = static_cast<uint32_t>(strtoul(row[90], nullptr, 10));
e.lfp = static_cast<uint8_t>(strtoul(row[91], nullptr, 10));
e.lfg = static_cast<uint8_t>(strtoul(row[92], nullptr, 10));
e.mailkey = row[93] ? row[93] : "";
e.xtargets = static_cast<uint8_t>(strtoul(row[94], nullptr, 10));
e.firstlogon = static_cast<int8_t>(atoi(row[95]));
e.e_aa_effects = static_cast<uint32_t>(strtoul(row[96], nullptr, 10));
e.e_percent_to_aa = static_cast<uint32_t>(strtoul(row[97], nullptr, 10));
e.e_expended_aa_spent = static_cast<uint32_t>(strtoul(row[98], nullptr, 10));
e.aa_points_spent_old = static_cast<uint32_t>(strtoul(row[99], nullptr, 10));
e.aa_points_old = static_cast<uint32_t>(strtoul(row[100], nullptr, 10));
e.e_last_invsnapshot = static_cast<uint32_t>(strtoul(row[101], nullptr, 10));
e.deleted_at = strtoll(row[102] ? row[102] : "-1", nullptr, 10);
return e;
}
@@ -690,70 +697,71 @@ public:
v.push_back(columns[35] + " = " + std::to_string(e.ability_time_minutes));
v.push_back(columns[36] + " = " + std::to_string(e.ability_time_hours));
v.push_back(columns[37] + " = " + std::to_string(e.exp));
v.push_back(columns[38] + " = " + std::to_string(e.aa_points_spent));
v.push_back(columns[39] + " = " + std::to_string(e.aa_exp));
v.push_back(columns[40] + " = " + std::to_string(e.aa_points));
v.push_back(columns[41] + " = " + std::to_string(e.group_leadership_exp));
v.push_back(columns[42] + " = " + std::to_string(e.raid_leadership_exp));
v.push_back(columns[43] + " = " + std::to_string(e.group_leadership_points));
v.push_back(columns[44] + " = " + std::to_string(e.raid_leadership_points));
v.push_back(columns[45] + " = " + std::to_string(e.points));
v.push_back(columns[46] + " = " + std::to_string(e.cur_hp));
v.push_back(columns[47] + " = " + std::to_string(e.mana));
v.push_back(columns[48] + " = " + std::to_string(e.endurance));
v.push_back(columns[49] + " = " + std::to_string(e.intoxication));
v.push_back(columns[50] + " = " + std::to_string(e.str));
v.push_back(columns[51] + " = " + std::to_string(e.sta));
v.push_back(columns[52] + " = " + std::to_string(e.cha));
v.push_back(columns[53] + " = " + std::to_string(e.dex));
v.push_back(columns[54] + " = " + std::to_string(e.int_));
v.push_back(columns[55] + " = " + std::to_string(e.agi));
v.push_back(columns[56] + " = " + std::to_string(e.wis));
v.push_back(columns[57] + " = " + std::to_string(e.zone_change_count));
v.push_back(columns[58] + " = " + std::to_string(e.toxicity));
v.push_back(columns[59] + " = " + std::to_string(e.hunger_level));
v.push_back(columns[60] + " = " + std::to_string(e.thirst_level));
v.push_back(columns[61] + " = " + std::to_string(e.ability_up));
v.push_back(columns[62] + " = " + std::to_string(e.ldon_points_guk));
v.push_back(columns[63] + " = " + std::to_string(e.ldon_points_mir));
v.push_back(columns[64] + " = " + std::to_string(e.ldon_points_mmc));
v.push_back(columns[65] + " = " + std::to_string(e.ldon_points_ruj));
v.push_back(columns[66] + " = " + std::to_string(e.ldon_points_tak));
v.push_back(columns[67] + " = " + std::to_string(e.ldon_points_available));
v.push_back(columns[68] + " = " + std::to_string(e.tribute_time_remaining));
v.push_back(columns[69] + " = " + std::to_string(e.career_tribute_points));
v.push_back(columns[70] + " = " + std::to_string(e.tribute_points));
v.push_back(columns[71] + " = " + std::to_string(e.tribute_active));
v.push_back(columns[72] + " = " + std::to_string(e.pvp_status));
v.push_back(columns[73] + " = " + std::to_string(e.pvp_kills));
v.push_back(columns[74] + " = " + std::to_string(e.pvp_deaths));
v.push_back(columns[75] + " = " + std::to_string(e.pvp_current_points));
v.push_back(columns[76] + " = " + std::to_string(e.pvp_career_points));
v.push_back(columns[77] + " = " + std::to_string(e.pvp_best_kill_streak));
v.push_back(columns[78] + " = " + std::to_string(e.pvp_worst_death_streak));
v.push_back(columns[79] + " = " + std::to_string(e.pvp_current_kill_streak));
v.push_back(columns[80] + " = " + std::to_string(e.pvp2));
v.push_back(columns[81] + " = " + std::to_string(e.pvp_type));
v.push_back(columns[82] + " = " + std::to_string(e.show_helm));
v.push_back(columns[83] + " = " + std::to_string(e.group_auto_consent));
v.push_back(columns[84] + " = " + std::to_string(e.raid_auto_consent));
v.push_back(columns[85] + " = " + std::to_string(e.guild_auto_consent));
v.push_back(columns[86] + " = " + std::to_string(e.leadership_exp_on));
v.push_back(columns[87] + " = " + std::to_string(e.RestTimer));
v.push_back(columns[88] + " = " + std::to_string(e.air_remaining));
v.push_back(columns[89] + " = " + std::to_string(e.autosplit_enabled));
v.push_back(columns[90] + " = " + std::to_string(e.lfp));
v.push_back(columns[91] + " = " + std::to_string(e.lfg));
v.push_back(columns[92] + " = '" + Strings::Escape(e.mailkey) + "'");
v.push_back(columns[93] + " = " + std::to_string(e.xtargets));
v.push_back(columns[94] + " = " + std::to_string(e.firstlogon));
v.push_back(columns[95] + " = " + std::to_string(e.e_aa_effects));
v.push_back(columns[96] + " = " + std::to_string(e.e_percent_to_aa));
v.push_back(columns[97] + " = " + std::to_string(e.e_expended_aa_spent));
v.push_back(columns[98] + " = " + std::to_string(e.aa_points_spent_old));
v.push_back(columns[99] + " = " + std::to_string(e.aa_points_old));
v.push_back(columns[100] + " = " + std::to_string(e.e_last_invsnapshot));
v.push_back(columns[101] + " = FROM_UNIXTIME(" + (e.deleted_at > 0 ? std::to_string(e.deleted_at) : "null") + ")");
v.push_back(columns[38] + " = " + std::to_string(e.exp_enabled));
v.push_back(columns[39] + " = " + std::to_string(e.aa_points_spent));
v.push_back(columns[40] + " = " + std::to_string(e.aa_exp));
v.push_back(columns[41] + " = " + std::to_string(e.aa_points));
v.push_back(columns[42] + " = " + std::to_string(e.group_leadership_exp));
v.push_back(columns[43] + " = " + std::to_string(e.raid_leadership_exp));
v.push_back(columns[44] + " = " + std::to_string(e.group_leadership_points));
v.push_back(columns[45] + " = " + std::to_string(e.raid_leadership_points));
v.push_back(columns[46] + " = " + std::to_string(e.points));
v.push_back(columns[47] + " = " + std::to_string(e.cur_hp));
v.push_back(columns[48] + " = " + std::to_string(e.mana));
v.push_back(columns[49] + " = " + std::to_string(e.endurance));
v.push_back(columns[50] + " = " + std::to_string(e.intoxication));
v.push_back(columns[51] + " = " + std::to_string(e.str));
v.push_back(columns[52] + " = " + std::to_string(e.sta));
v.push_back(columns[53] + " = " + std::to_string(e.cha));
v.push_back(columns[54] + " = " + std::to_string(e.dex));
v.push_back(columns[55] + " = " + std::to_string(e.int_));
v.push_back(columns[56] + " = " + std::to_string(e.agi));
v.push_back(columns[57] + " = " + std::to_string(e.wis));
v.push_back(columns[58] + " = " + std::to_string(e.zone_change_count));
v.push_back(columns[59] + " = " + std::to_string(e.toxicity));
v.push_back(columns[60] + " = " + std::to_string(e.hunger_level));
v.push_back(columns[61] + " = " + std::to_string(e.thirst_level));
v.push_back(columns[62] + " = " + std::to_string(e.ability_up));
v.push_back(columns[63] + " = " + std::to_string(e.ldon_points_guk));
v.push_back(columns[64] + " = " + std::to_string(e.ldon_points_mir));
v.push_back(columns[65] + " = " + std::to_string(e.ldon_points_mmc));
v.push_back(columns[66] + " = " + std::to_string(e.ldon_points_ruj));
v.push_back(columns[67] + " = " + std::to_string(e.ldon_points_tak));
v.push_back(columns[68] + " = " + std::to_string(e.ldon_points_available));
v.push_back(columns[69] + " = " + std::to_string(e.tribute_time_remaining));
v.push_back(columns[70] + " = " + std::to_string(e.career_tribute_points));
v.push_back(columns[71] + " = " + std::to_string(e.tribute_points));
v.push_back(columns[72] + " = " + std::to_string(e.tribute_active));
v.push_back(columns[73] + " = " + std::to_string(e.pvp_status));
v.push_back(columns[74] + " = " + std::to_string(e.pvp_kills));
v.push_back(columns[75] + " = " + std::to_string(e.pvp_deaths));
v.push_back(columns[76] + " = " + std::to_string(e.pvp_current_points));
v.push_back(columns[77] + " = " + std::to_string(e.pvp_career_points));
v.push_back(columns[78] + " = " + std::to_string(e.pvp_best_kill_streak));
v.push_back(columns[79] + " = " + std::to_string(e.pvp_worst_death_streak));
v.push_back(columns[80] + " = " + std::to_string(e.pvp_current_kill_streak));
v.push_back(columns[81] + " = " + std::to_string(e.pvp2));
v.push_back(columns[82] + " = " + std::to_string(e.pvp_type));
v.push_back(columns[83] + " = " + std::to_string(e.show_helm));
v.push_back(columns[84] + " = " + std::to_string(e.group_auto_consent));
v.push_back(columns[85] + " = " + std::to_string(e.raid_auto_consent));
v.push_back(columns[86] + " = " + std::to_string(e.guild_auto_consent));
v.push_back(columns[87] + " = " + std::to_string(e.leadership_exp_on));
v.push_back(columns[88] + " = " + std::to_string(e.RestTimer));
v.push_back(columns[89] + " = " + std::to_string(e.air_remaining));
v.push_back(columns[90] + " = " + std::to_string(e.autosplit_enabled));
v.push_back(columns[91] + " = " + std::to_string(e.lfp));
v.push_back(columns[92] + " = " + std::to_string(e.lfg));
v.push_back(columns[93] + " = '" + Strings::Escape(e.mailkey) + "'");
v.push_back(columns[94] + " = " + std::to_string(e.xtargets));
v.push_back(columns[95] + " = " + std::to_string(e.firstlogon));
v.push_back(columns[96] + " = " + std::to_string(e.e_aa_effects));
v.push_back(columns[97] + " = " + std::to_string(e.e_percent_to_aa));
v.push_back(columns[98] + " = " + std::to_string(e.e_expended_aa_spent));
v.push_back(columns[99] + " = " + std::to_string(e.aa_points_spent_old));
v.push_back(columns[100] + " = " + std::to_string(e.aa_points_old));
v.push_back(columns[101] + " = " + std::to_string(e.e_last_invsnapshot));
v.push_back(columns[102] + " = FROM_UNIXTIME(" + (e.deleted_at > 0 ? std::to_string(e.deleted_at) : "null") + ")");
auto results = db.QueryDatabase(
fmt::format(
@@ -813,6 +821,7 @@ public:
v.push_back(std::to_string(e.ability_time_minutes));
v.push_back(std::to_string(e.ability_time_hours));
v.push_back(std::to_string(e.exp));
v.push_back(std::to_string(e.exp_enabled));
v.push_back(std::to_string(e.aa_points_spent));
v.push_back(std::to_string(e.aa_exp));
v.push_back(std::to_string(e.aa_points));
@@ -944,6 +953,7 @@ public:
v.push_back(std::to_string(e.ability_time_minutes));
v.push_back(std::to_string(e.ability_time_hours));
v.push_back(std::to_string(e.exp));
v.push_back(std::to_string(e.exp_enabled));
v.push_back(std::to_string(e.aa_points_spent));
v.push_back(std::to_string(e.aa_exp));
v.push_back(std::to_string(e.aa_points));
@@ -1079,70 +1089,71 @@ public:
e.ability_time_minutes = static_cast<uint8_t>(strtoul(row[35], nullptr, 10));
e.ability_time_hours = static_cast<uint8_t>(strtoul(row[36], nullptr, 10));
e.exp = static_cast<uint32_t>(strtoul(row[37], nullptr, 10));
e.aa_points_spent = static_cast<uint32_t>(strtoul(row[38], nullptr, 10));
e.aa_exp = static_cast<uint32_t>(strtoul(row[39], nullptr, 10));
e.aa_points = static_cast<uint32_t>(strtoul(row[40], nullptr, 10));
e.group_leadership_exp = static_cast<uint32_t>(strtoul(row[41], nullptr, 10));
e.raid_leadership_exp = static_cast<uint32_t>(strtoul(row[42], nullptr, 10));
e.group_leadership_points = static_cast<uint32_t>(strtoul(row[43], nullptr, 10));
e.raid_leadership_points = static_cast<uint32_t>(strtoul(row[44], nullptr, 10));
e.points = static_cast<uint32_t>(strtoul(row[45], nullptr, 10));
e.cur_hp = static_cast<uint32_t>(strtoul(row[46], nullptr, 10));
e.mana = static_cast<uint32_t>(strtoul(row[47], nullptr, 10));
e.endurance = static_cast<uint32_t>(strtoul(row[48], nullptr, 10));
e.intoxication = static_cast<uint32_t>(strtoul(row[49], nullptr, 10));
e.str = static_cast<uint32_t>(strtoul(row[50], nullptr, 10));
e.sta = static_cast<uint32_t>(strtoul(row[51], nullptr, 10));
e.cha = static_cast<uint32_t>(strtoul(row[52], nullptr, 10));
e.dex = static_cast<uint32_t>(strtoul(row[53], nullptr, 10));
e.int_ = static_cast<uint32_t>(strtoul(row[54], nullptr, 10));
e.agi = static_cast<uint32_t>(strtoul(row[55], nullptr, 10));
e.wis = static_cast<uint32_t>(strtoul(row[56], nullptr, 10));
e.zone_change_count = static_cast<uint32_t>(strtoul(row[57], nullptr, 10));
e.toxicity = static_cast<uint32_t>(strtoul(row[58], nullptr, 10));
e.hunger_level = static_cast<uint32_t>(strtoul(row[59], nullptr, 10));
e.thirst_level = static_cast<uint32_t>(strtoul(row[60], nullptr, 10));
e.ability_up = static_cast<uint32_t>(strtoul(row[61], nullptr, 10));
e.ldon_points_guk = static_cast<uint32_t>(strtoul(row[62], nullptr, 10));
e.ldon_points_mir = static_cast<uint32_t>(strtoul(row[63], nullptr, 10));
e.ldon_points_mmc = static_cast<uint32_t>(strtoul(row[64], nullptr, 10));
e.ldon_points_ruj = static_cast<uint32_t>(strtoul(row[65], nullptr, 10));
e.ldon_points_tak = static_cast<uint32_t>(strtoul(row[66], nullptr, 10));
e.ldon_points_available = static_cast<uint32_t>(strtoul(row[67], nullptr, 10));
e.tribute_time_remaining = static_cast<uint32_t>(strtoul(row[68], nullptr, 10));
e.career_tribute_points = static_cast<uint32_t>(strtoul(row[69], nullptr, 10));
e.tribute_points = static_cast<uint32_t>(strtoul(row[70], nullptr, 10));
e.tribute_active = static_cast<uint32_t>(strtoul(row[71], nullptr, 10));
e.pvp_status = static_cast<uint8_t>(strtoul(row[72], nullptr, 10));
e.pvp_kills = static_cast<uint32_t>(strtoul(row[73], nullptr, 10));
e.pvp_deaths = static_cast<uint32_t>(strtoul(row[74], nullptr, 10));
e.pvp_current_points = static_cast<uint32_t>(strtoul(row[75], nullptr, 10));
e.pvp_career_points = static_cast<uint32_t>(strtoul(row[76], nullptr, 10));
e.pvp_best_kill_streak = static_cast<uint32_t>(strtoul(row[77], nullptr, 10));
e.pvp_worst_death_streak = static_cast<uint32_t>(strtoul(row[78], nullptr, 10));
e.pvp_current_kill_streak = static_cast<uint32_t>(strtoul(row[79], nullptr, 10));
e.pvp2 = static_cast<uint32_t>(strtoul(row[80], nullptr, 10));
e.pvp_type = static_cast<uint32_t>(strtoul(row[81], nullptr, 10));
e.show_helm = static_cast<uint32_t>(strtoul(row[82], nullptr, 10));
e.group_auto_consent = static_cast<uint8_t>(strtoul(row[83], nullptr, 10));
e.raid_auto_consent = static_cast<uint8_t>(strtoul(row[84], nullptr, 10));
e.guild_auto_consent = static_cast<uint8_t>(strtoul(row[85], nullptr, 10));
e.leadership_exp_on = static_cast<uint8_t>(strtoul(row[86], nullptr, 10));
e.RestTimer = static_cast<uint32_t>(strtoul(row[87], nullptr, 10));
e.air_remaining = static_cast<uint32_t>(strtoul(row[88], nullptr, 10));
e.autosplit_enabled = static_cast<uint32_t>(strtoul(row[89], nullptr, 10));
e.lfp = static_cast<uint8_t>(strtoul(row[90], nullptr, 10));
e.lfg = static_cast<uint8_t>(strtoul(row[91], nullptr, 10));
e.mailkey = row[92] ? row[92] : "";
e.xtargets = static_cast<uint8_t>(strtoul(row[93], nullptr, 10));
e.firstlogon = static_cast<int8_t>(atoi(row[94]));
e.e_aa_effects = static_cast<uint32_t>(strtoul(row[95], nullptr, 10));
e.e_percent_to_aa = static_cast<uint32_t>(strtoul(row[96], nullptr, 10));
e.e_expended_aa_spent = static_cast<uint32_t>(strtoul(row[97], nullptr, 10));
e.aa_points_spent_old = static_cast<uint32_t>(strtoul(row[98], nullptr, 10));
e.aa_points_old = static_cast<uint32_t>(strtoul(row[99], nullptr, 10));
e.e_last_invsnapshot = static_cast<uint32_t>(strtoul(row[100], nullptr, 10));
e.deleted_at = strtoll(row[101] ? row[101] : "-1", nullptr, 10);
e.exp_enabled = static_cast<uint8_t>(strtoul(row[38], nullptr, 10));
e.aa_points_spent = static_cast<uint32_t>(strtoul(row[39], nullptr, 10));
e.aa_exp = static_cast<uint32_t>(strtoul(row[40], nullptr, 10));
e.aa_points = static_cast<uint32_t>(strtoul(row[41], nullptr, 10));
e.group_leadership_exp = static_cast<uint32_t>(strtoul(row[42], nullptr, 10));
e.raid_leadership_exp = static_cast<uint32_t>(strtoul(row[43], nullptr, 10));
e.group_leadership_points = static_cast<uint32_t>(strtoul(row[44], nullptr, 10));
e.raid_leadership_points = static_cast<uint32_t>(strtoul(row[45], nullptr, 10));
e.points = static_cast<uint32_t>(strtoul(row[46], nullptr, 10));
e.cur_hp = static_cast<uint32_t>(strtoul(row[47], nullptr, 10));
e.mana = static_cast<uint32_t>(strtoul(row[48], nullptr, 10));
e.endurance = static_cast<uint32_t>(strtoul(row[49], nullptr, 10));
e.intoxication = static_cast<uint32_t>(strtoul(row[50], nullptr, 10));
e.str = static_cast<uint32_t>(strtoul(row[51], nullptr, 10));
e.sta = static_cast<uint32_t>(strtoul(row[52], nullptr, 10));
e.cha = static_cast<uint32_t>(strtoul(row[53], nullptr, 10));
e.dex = static_cast<uint32_t>(strtoul(row[54], nullptr, 10));
e.int_ = static_cast<uint32_t>(strtoul(row[55], nullptr, 10));
e.agi = static_cast<uint32_t>(strtoul(row[56], nullptr, 10));
e.wis = static_cast<uint32_t>(strtoul(row[57], nullptr, 10));
e.zone_change_count = static_cast<uint32_t>(strtoul(row[58], nullptr, 10));
e.toxicity = static_cast<uint32_t>(strtoul(row[59], nullptr, 10));
e.hunger_level = static_cast<uint32_t>(strtoul(row[60], nullptr, 10));
e.thirst_level = static_cast<uint32_t>(strtoul(row[61], nullptr, 10));
e.ability_up = static_cast<uint32_t>(strtoul(row[62], nullptr, 10));
e.ldon_points_guk = static_cast<uint32_t>(strtoul(row[63], nullptr, 10));
e.ldon_points_mir = static_cast<uint32_t>(strtoul(row[64], nullptr, 10));
e.ldon_points_mmc = static_cast<uint32_t>(strtoul(row[65], nullptr, 10));
e.ldon_points_ruj = static_cast<uint32_t>(strtoul(row[66], nullptr, 10));
e.ldon_points_tak = static_cast<uint32_t>(strtoul(row[67], nullptr, 10));
e.ldon_points_available = static_cast<uint32_t>(strtoul(row[68], nullptr, 10));
e.tribute_time_remaining = static_cast<uint32_t>(strtoul(row[69], nullptr, 10));
e.career_tribute_points = static_cast<uint32_t>(strtoul(row[70], nullptr, 10));
e.tribute_points = static_cast<uint32_t>(strtoul(row[71], nullptr, 10));
e.tribute_active = static_cast<uint32_t>(strtoul(row[72], nullptr, 10));
e.pvp_status = static_cast<uint8_t>(strtoul(row[73], nullptr, 10));
e.pvp_kills = static_cast<uint32_t>(strtoul(row[74], nullptr, 10));
e.pvp_deaths = static_cast<uint32_t>(strtoul(row[75], nullptr, 10));
e.pvp_current_points = static_cast<uint32_t>(strtoul(row[76], nullptr, 10));
e.pvp_career_points = static_cast<uint32_t>(strtoul(row[77], nullptr, 10));
e.pvp_best_kill_streak = static_cast<uint32_t>(strtoul(row[78], nullptr, 10));
e.pvp_worst_death_streak = static_cast<uint32_t>(strtoul(row[79], nullptr, 10));
e.pvp_current_kill_streak = static_cast<uint32_t>(strtoul(row[80], nullptr, 10));
e.pvp2 = static_cast<uint32_t>(strtoul(row[81], nullptr, 10));
e.pvp_type = static_cast<uint32_t>(strtoul(row[82], nullptr, 10));
e.show_helm = static_cast<uint32_t>(strtoul(row[83], nullptr, 10));
e.group_auto_consent = static_cast<uint8_t>(strtoul(row[84], nullptr, 10));
e.raid_auto_consent = static_cast<uint8_t>(strtoul(row[85], nullptr, 10));
e.guild_auto_consent = static_cast<uint8_t>(strtoul(row[86], nullptr, 10));
e.leadership_exp_on = static_cast<uint8_t>(strtoul(row[87], nullptr, 10));
e.RestTimer = static_cast<uint32_t>(strtoul(row[88], nullptr, 10));
e.air_remaining = static_cast<uint32_t>(strtoul(row[89], nullptr, 10));
e.autosplit_enabled = static_cast<uint32_t>(strtoul(row[90], nullptr, 10));
e.lfp = static_cast<uint8_t>(strtoul(row[91], nullptr, 10));
e.lfg = static_cast<uint8_t>(strtoul(row[92], nullptr, 10));
e.mailkey = row[93] ? row[93] : "";
e.xtargets = static_cast<uint8_t>(strtoul(row[94], nullptr, 10));
e.firstlogon = static_cast<int8_t>(atoi(row[95]));
e.e_aa_effects = static_cast<uint32_t>(strtoul(row[96], nullptr, 10));
e.e_percent_to_aa = static_cast<uint32_t>(strtoul(row[97], nullptr, 10));
e.e_expended_aa_spent = static_cast<uint32_t>(strtoul(row[98], nullptr, 10));
e.aa_points_spent_old = static_cast<uint32_t>(strtoul(row[99], nullptr, 10));
e.aa_points_old = static_cast<uint32_t>(strtoul(row[100], nullptr, 10));
e.e_last_invsnapshot = static_cast<uint32_t>(strtoul(row[101], nullptr, 10));
e.deleted_at = strtoll(row[102] ? row[102] : "-1", nullptr, 10);
all_entries.push_back(e);
}
@@ -1205,70 +1216,71 @@ public:
e.ability_time_minutes = static_cast<uint8_t>(strtoul(row[35], nullptr, 10));
e.ability_time_hours = static_cast<uint8_t>(strtoul(row[36], nullptr, 10));
e.exp = static_cast<uint32_t>(strtoul(row[37], nullptr, 10));
e.aa_points_spent = static_cast<uint32_t>(strtoul(row[38], nullptr, 10));
e.aa_exp = static_cast<uint32_t>(strtoul(row[39], nullptr, 10));
e.aa_points = static_cast<uint32_t>(strtoul(row[40], nullptr, 10));
e.group_leadership_exp = static_cast<uint32_t>(strtoul(row[41], nullptr, 10));
e.raid_leadership_exp = static_cast<uint32_t>(strtoul(row[42], nullptr, 10));
e.group_leadership_points = static_cast<uint32_t>(strtoul(row[43], nullptr, 10));
e.raid_leadership_points = static_cast<uint32_t>(strtoul(row[44], nullptr, 10));
e.points = static_cast<uint32_t>(strtoul(row[45], nullptr, 10));
e.cur_hp = static_cast<uint32_t>(strtoul(row[46], nullptr, 10));
e.mana = static_cast<uint32_t>(strtoul(row[47], nullptr, 10));
e.endurance = static_cast<uint32_t>(strtoul(row[48], nullptr, 10));
e.intoxication = static_cast<uint32_t>(strtoul(row[49], nullptr, 10));
e.str = static_cast<uint32_t>(strtoul(row[50], nullptr, 10));
e.sta = static_cast<uint32_t>(strtoul(row[51], nullptr, 10));
e.cha = static_cast<uint32_t>(strtoul(row[52], nullptr, 10));
e.dex = static_cast<uint32_t>(strtoul(row[53], nullptr, 10));
e.int_ = static_cast<uint32_t>(strtoul(row[54], nullptr, 10));
e.agi = static_cast<uint32_t>(strtoul(row[55], nullptr, 10));
e.wis = static_cast<uint32_t>(strtoul(row[56], nullptr, 10));
e.zone_change_count = static_cast<uint32_t>(strtoul(row[57], nullptr, 10));
e.toxicity = static_cast<uint32_t>(strtoul(row[58], nullptr, 10));
e.hunger_level = static_cast<uint32_t>(strtoul(row[59], nullptr, 10));
e.thirst_level = static_cast<uint32_t>(strtoul(row[60], nullptr, 10));
e.ability_up = static_cast<uint32_t>(strtoul(row[61], nullptr, 10));
e.ldon_points_guk = static_cast<uint32_t>(strtoul(row[62], nullptr, 10));
e.ldon_points_mir = static_cast<uint32_t>(strtoul(row[63], nullptr, 10));
e.ldon_points_mmc = static_cast<uint32_t>(strtoul(row[64], nullptr, 10));
e.ldon_points_ruj = static_cast<uint32_t>(strtoul(row[65], nullptr, 10));
e.ldon_points_tak = static_cast<uint32_t>(strtoul(row[66], nullptr, 10));
e.ldon_points_available = static_cast<uint32_t>(strtoul(row[67], nullptr, 10));
e.tribute_time_remaining = static_cast<uint32_t>(strtoul(row[68], nullptr, 10));
e.career_tribute_points = static_cast<uint32_t>(strtoul(row[69], nullptr, 10));
e.tribute_points = static_cast<uint32_t>(strtoul(row[70], nullptr, 10));
e.tribute_active = static_cast<uint32_t>(strtoul(row[71], nullptr, 10));
e.pvp_status = static_cast<uint8_t>(strtoul(row[72], nullptr, 10));
e.pvp_kills = static_cast<uint32_t>(strtoul(row[73], nullptr, 10));
e.pvp_deaths = static_cast<uint32_t>(strtoul(row[74], nullptr, 10));
e.pvp_current_points = static_cast<uint32_t>(strtoul(row[75], nullptr, 10));
e.pvp_career_points = static_cast<uint32_t>(strtoul(row[76], nullptr, 10));
e.pvp_best_kill_streak = static_cast<uint32_t>(strtoul(row[77], nullptr, 10));
e.pvp_worst_death_streak = static_cast<uint32_t>(strtoul(row[78], nullptr, 10));
e.pvp_current_kill_streak = static_cast<uint32_t>(strtoul(row[79], nullptr, 10));
e.pvp2 = static_cast<uint32_t>(strtoul(row[80], nullptr, 10));
e.pvp_type = static_cast<uint32_t>(strtoul(row[81], nullptr, 10));
e.show_helm = static_cast<uint32_t>(strtoul(row[82], nullptr, 10));
e.group_auto_consent = static_cast<uint8_t>(strtoul(row[83], nullptr, 10));
e.raid_auto_consent = static_cast<uint8_t>(strtoul(row[84], nullptr, 10));
e.guild_auto_consent = static_cast<uint8_t>(strtoul(row[85], nullptr, 10));
e.leadership_exp_on = static_cast<uint8_t>(strtoul(row[86], nullptr, 10));
e.RestTimer = static_cast<uint32_t>(strtoul(row[87], nullptr, 10));
e.air_remaining = static_cast<uint32_t>(strtoul(row[88], nullptr, 10));
e.autosplit_enabled = static_cast<uint32_t>(strtoul(row[89], nullptr, 10));
e.lfp = static_cast<uint8_t>(strtoul(row[90], nullptr, 10));
e.lfg = static_cast<uint8_t>(strtoul(row[91], nullptr, 10));
e.mailkey = row[92] ? row[92] : "";
e.xtargets = static_cast<uint8_t>(strtoul(row[93], nullptr, 10));
e.firstlogon = static_cast<int8_t>(atoi(row[94]));
e.e_aa_effects = static_cast<uint32_t>(strtoul(row[95], nullptr, 10));
e.e_percent_to_aa = static_cast<uint32_t>(strtoul(row[96], nullptr, 10));
e.e_expended_aa_spent = static_cast<uint32_t>(strtoul(row[97], nullptr, 10));
e.aa_points_spent_old = static_cast<uint32_t>(strtoul(row[98], nullptr, 10));
e.aa_points_old = static_cast<uint32_t>(strtoul(row[99], nullptr, 10));
e.e_last_invsnapshot = static_cast<uint32_t>(strtoul(row[100], nullptr, 10));
e.deleted_at = strtoll(row[101] ? row[101] : "-1", nullptr, 10);
e.exp_enabled = static_cast<uint8_t>(strtoul(row[38], nullptr, 10));
e.aa_points_spent = static_cast<uint32_t>(strtoul(row[39], nullptr, 10));
e.aa_exp = static_cast<uint32_t>(strtoul(row[40], nullptr, 10));
e.aa_points = static_cast<uint32_t>(strtoul(row[41], nullptr, 10));
e.group_leadership_exp = static_cast<uint32_t>(strtoul(row[42], nullptr, 10));
e.raid_leadership_exp = static_cast<uint32_t>(strtoul(row[43], nullptr, 10));
e.group_leadership_points = static_cast<uint32_t>(strtoul(row[44], nullptr, 10));
e.raid_leadership_points = static_cast<uint32_t>(strtoul(row[45], nullptr, 10));
e.points = static_cast<uint32_t>(strtoul(row[46], nullptr, 10));
e.cur_hp = static_cast<uint32_t>(strtoul(row[47], nullptr, 10));
e.mana = static_cast<uint32_t>(strtoul(row[48], nullptr, 10));
e.endurance = static_cast<uint32_t>(strtoul(row[49], nullptr, 10));
e.intoxication = static_cast<uint32_t>(strtoul(row[50], nullptr, 10));
e.str = static_cast<uint32_t>(strtoul(row[51], nullptr, 10));
e.sta = static_cast<uint32_t>(strtoul(row[52], nullptr, 10));
e.cha = static_cast<uint32_t>(strtoul(row[53], nullptr, 10));
e.dex = static_cast<uint32_t>(strtoul(row[54], nullptr, 10));
e.int_ = static_cast<uint32_t>(strtoul(row[55], nullptr, 10));
e.agi = static_cast<uint32_t>(strtoul(row[56], nullptr, 10));
e.wis = static_cast<uint32_t>(strtoul(row[57], nullptr, 10));
e.zone_change_count = static_cast<uint32_t>(strtoul(row[58], nullptr, 10));
e.toxicity = static_cast<uint32_t>(strtoul(row[59], nullptr, 10));
e.hunger_level = static_cast<uint32_t>(strtoul(row[60], nullptr, 10));
e.thirst_level = static_cast<uint32_t>(strtoul(row[61], nullptr, 10));
e.ability_up = static_cast<uint32_t>(strtoul(row[62], nullptr, 10));
e.ldon_points_guk = static_cast<uint32_t>(strtoul(row[63], nullptr, 10));
e.ldon_points_mir = static_cast<uint32_t>(strtoul(row[64], nullptr, 10));
e.ldon_points_mmc = static_cast<uint32_t>(strtoul(row[65], nullptr, 10));
e.ldon_points_ruj = static_cast<uint32_t>(strtoul(row[66], nullptr, 10));
e.ldon_points_tak = static_cast<uint32_t>(strtoul(row[67], nullptr, 10));
e.ldon_points_available = static_cast<uint32_t>(strtoul(row[68], nullptr, 10));
e.tribute_time_remaining = static_cast<uint32_t>(strtoul(row[69], nullptr, 10));
e.career_tribute_points = static_cast<uint32_t>(strtoul(row[70], nullptr, 10));
e.tribute_points = static_cast<uint32_t>(strtoul(row[71], nullptr, 10));
e.tribute_active = static_cast<uint32_t>(strtoul(row[72], nullptr, 10));
e.pvp_status = static_cast<uint8_t>(strtoul(row[73], nullptr, 10));
e.pvp_kills = static_cast<uint32_t>(strtoul(row[74], nullptr, 10));
e.pvp_deaths = static_cast<uint32_t>(strtoul(row[75], nullptr, 10));
e.pvp_current_points = static_cast<uint32_t>(strtoul(row[76], nullptr, 10));
e.pvp_career_points = static_cast<uint32_t>(strtoul(row[77], nullptr, 10));
e.pvp_best_kill_streak = static_cast<uint32_t>(strtoul(row[78], nullptr, 10));
e.pvp_worst_death_streak = static_cast<uint32_t>(strtoul(row[79], nullptr, 10));
e.pvp_current_kill_streak = static_cast<uint32_t>(strtoul(row[80], nullptr, 10));
e.pvp2 = static_cast<uint32_t>(strtoul(row[81], nullptr, 10));
e.pvp_type = static_cast<uint32_t>(strtoul(row[82], nullptr, 10));
e.show_helm = static_cast<uint32_t>(strtoul(row[83], nullptr, 10));
e.group_auto_consent = static_cast<uint8_t>(strtoul(row[84], nullptr, 10));
e.raid_auto_consent = static_cast<uint8_t>(strtoul(row[85], nullptr, 10));
e.guild_auto_consent = static_cast<uint8_t>(strtoul(row[86], nullptr, 10));
e.leadership_exp_on = static_cast<uint8_t>(strtoul(row[87], nullptr, 10));
e.RestTimer = static_cast<uint32_t>(strtoul(row[88], nullptr, 10));
e.air_remaining = static_cast<uint32_t>(strtoul(row[89], nullptr, 10));
e.autosplit_enabled = static_cast<uint32_t>(strtoul(row[90], nullptr, 10));
e.lfp = static_cast<uint8_t>(strtoul(row[91], nullptr, 10));
e.lfg = static_cast<uint8_t>(strtoul(row[92], nullptr, 10));
e.mailkey = row[93] ? row[93] : "";
e.xtargets = static_cast<uint8_t>(strtoul(row[94], nullptr, 10));
e.firstlogon = static_cast<int8_t>(atoi(row[95]));
e.e_aa_effects = static_cast<uint32_t>(strtoul(row[96], nullptr, 10));
e.e_percent_to_aa = static_cast<uint32_t>(strtoul(row[97], nullptr, 10));
e.e_expended_aa_spent = static_cast<uint32_t>(strtoul(row[98], nullptr, 10));
e.aa_points_spent_old = static_cast<uint32_t>(strtoul(row[99], nullptr, 10));
e.aa_points_old = static_cast<uint32_t>(strtoul(row[100], nullptr, 10));
e.e_last_invsnapshot = static_cast<uint32_t>(strtoul(row[101], nullptr, 10));
e.deleted_at = strtoll(row[102] ? row[102] : "-1", nullptr, 10);
all_entries.push_back(e);
}