Fixed the buff database entries and updated database migrations (#5076)
Build / Linux (push) Has been cancelled
Build / Windows (push) Has been cancelled

This commit is contained in:
dannuic
2026-05-05 22:23:43 -06:00
committed by GitHub
parent e5ce882b9d
commit 99f99c8b8e
23 changed files with 995 additions and 534 deletions
@@ -7226,6 +7226,45 @@ ALTER TABLE `npc_spells_entries` MODIFY COLUMN `spellid` INTEGER NOT NULL DEFAUL
ALTER TABLE `spell_buckets` MODIFY COLUMN `spell_id` INTEGER NOT NULL;
)"
},
ManifestEntry{
.version = 9330,
.description = "2026_04_30_buffdurations.sql",
.check = "SHOW COLUMNS FROM `character_buffs` LIKE 'initialduration'",
.condition = "empty",
.match = "",
.sql = R"(
ALTER TABLE `character_buffs`
ADD COLUMN `initialduration` INT(11) SIGNED NOT NULL DEFAULT 0 AFTER `ticsremaining`,
CHANGE COLUMN `dot_rune` `dot_rune` INT(10) UNSIGNED NOT NULL DEFAULT 0;
UPDATE `character_buffs` SET `initialduration` = `ticsremaining` WHERE TRUE;
ALTER TABLE IF EXISTS `merc_buffs`
CHANGE COLUMN `dot_rune` `dot_rune` INT(10) UNSIGNED NOT NULL DEFAULT 0,
ADD COLUMN `InitialDuration` INT(11) SIGNED NOT NULL DEFAULT 0 AFTER `TicsRemaining`,
ADD COLUMN `instrument_mod` INT(10) UNSIGNED NOT NULL DEFAULT 10 AFTER `ExtraDIChance`;
IF EXISTS(
SELECT 1 FROM `information_schema`.`TABLES` WHERE `table_schema` = DATABASE() AND `table_name` = 'merc_buffs'
) THEN UPDATE `merc_buffs` SET `InitialDuration` = `TicsRemaining` WHERE TRUE; END IF;
ALTER TABLE `character_pet_buffs`
CHANGE COLUMN `char_id` `character_id` INT(11) UNSIGNED NOT NULL,
CHANGE COLUMN `slot` `slot_id` TINYINT(3) UNSIGNED NOT NULL,
CHANGE COLUMN `caster_level` `caster_level` TINYINT(3) UNSIGNED NOT NULL,
RENAME COLUMN `castername` TO `caster_name`,
ADD COLUMN `initialduration` INT(11) SIGNED NOT NULL DEFAULT 0 AFTER `ticsremaining`,
CHANGE COLUMN `counters` `counters` INT(10) UNSIGNED NOT NULL DEFAULT 0,
CHANGE COLUMN `numhits` `numhits` INT(10) UNSIGNED NOT NULL DEFAULT 0,
CHANGE COLUMN `rune` `melee_rune` INT(10) UNSIGNED NOT NULL DEFAULT 0,
ADD COLUMN `magic_rune` INT(10) UNSIGNED NOT NULL DEFAULT 0 AFTER `melee_rune`,
ADD COLUMN `persistent` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0 AFTER `magic_rune`,
ADD COLUMN `dot_rune` INT(10) UNSIGNED NOT NULL DEFAULT 0 AFTER `persistent`,
ADD COLUMN `caston_x` INT(10) NOT NULL DEFAULT 0 AFTER `dot_rune`,
ADD COLUMN `caston_y` INT(10) NOT NULL DEFAULT 0 AFTER `caston_x`,
ADD COLUMN `caston_z` INT(10) NOT NULL DEFAULT 0 AFTER `caston_y`,
ADD COLUMN `ExtraDIChance` INT(10) NOT NULL DEFAULT 0 AFTER `caston_z`,
CHANGE COLUMN `instrument_mod` `instrument_mod` INT(10) UNSIGNED NOT NULL DEFAULT 10 AFTER `ExtraDIChance`;
)",
},
// -- template; copy/paste this when you need to create a new entry
// ManifestEntry{
// .version = 9228,
@@ -2191,6 +2191,36 @@ ALTER TABLE `bot_spells_entries` MODIFY COLUMN `spell_id` INTEGER NOT NULL DEFAU
ALTER TABLE `bot_timers` MODIFY COLUMN `spell_id` INTEGER NOT NULL DEFAULT 0;
)"
},
ManifestEntry{
.version = 9057,
.description = "2026_04_30_buffdurations.sql",
.check = "SHOW COLUMNS FROM `bot_buffs` LIKE 'initial_duration'",
.condition = "empty",
.match = "",
.sql = R"(
ALTER TABLE `bot_buffs`
ADD COLUMN `caster_name` VARCHAR(64) NOT NULL DEFAULT '' AFTER `caster_level`,
ADD COLUMN `initial_duration` INT(11) SIGNED NOT NULL DEFAULT 0 AFTER `tics_remaining`;
UPDATE `bot_buffs` SET `initial_duration` = `tics_remaining` WHERE TRUE;
ALTER TABLE `bot_pet_buffs`
ADD COLUMN `caster_name` VARCHAR(64) NOT NULL DEFAULT '' AFTER `caster_level`,
CHANGE COLUMN `duration` `tics_remaining` INT(11) SIGNED NOT NULL DEFAULT 0 AFTER `caster_name`,
ADD COLUMN `initial_duration` INT(11) SIGNED NOT NULL DEFAULT 0 AFTER `tics_remaining`,
ADD COLUMN `counters` INT(10) UNSIGNED NOT NULL DEFAULT 0 AFTER `initial_duration`,
ADD COLUMN `numhits` INT(10) UNSIGNED NOT NULL DEFAULT 0 AFTER `counters`,
ADD COLUMN `melee_rune` INT(10) UNSIGNED NOT NULL DEFAULT 0 AFTER `numhits`,
ADD COLUMN `magic_rune` INT(10) UNSIGNED NOT NULL DEFAULT 0 AFTER `melee_rune`,
ADD COLUMN `dot_rune` INT(10) UNSIGNED NOT NULL DEFAULT 0 AFTER `magic_rune`,
ADD COLUMN `persistent` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0 AFTER `dot_rune`,
ADD COLUMN `caston_x` INT(10) NOT NULL DEFAULT 0 AFTER `persistent`,
ADD COLUMN `caston_y` INT(10) NOT NULL DEFAULT 0 AFTER `caston_x`,
ADD COLUMN `caston_z` INT(10) NOT NULL DEFAULT 0 AFTER `caston_y`,
ADD COLUMN `extra_di_chance` INT(10) NOT NULL DEFAULT 0 AFTER `caston_z`,
ADD COLUMN `instrument_mod` INT(10) UNSIGNED NOT NULL DEFAULT 10 AFTER `extra_di_chance`;
UPDATE `bot_pet_buffs` SET `initial_duration` = `tics_remaining` WHERE TRUE;
)",
},
// -- template; copy/paste this when you need to create a new entry
// ManifestEntry{
// .version = 9228,
@@ -36,26 +36,28 @@
class BaseBotBuffsRepository {
public:
struct BotBuffs {
uint32_t buffs_index;
uint32_t bot_id;
int32_t spell_id;
uint8_t caster_level;
uint32_t duration_formula;
uint32_t tics_remaining;
uint32_t poison_counters;
uint32_t disease_counters;
uint32_t curse_counters;
uint32_t corruption_counters;
uint32_t numhits;
uint32_t melee_rune;
uint32_t magic_rune;
uint32_t dot_rune;
int8_t persistent;
int32_t caston_x;
int32_t caston_y;
int32_t caston_z;
uint32_t extra_di_chance;
int32_t instrument_mod;
uint32_t buffs_index;
uint32_t bot_id;
int32_t spell_id;
uint8_t caster_level;
std::string caster_name;
uint32_t duration_formula;
uint32_t tics_remaining;
int32_t initial_duration;
uint32_t poison_counters;
uint32_t disease_counters;
uint32_t curse_counters;
uint32_t corruption_counters;
uint32_t numhits;
uint32_t melee_rune;
uint32_t magic_rune;
uint32_t dot_rune;
int8_t persistent;
int32_t caston_x;
int32_t caston_y;
int32_t caston_z;
uint32_t extra_di_chance;
int32_t instrument_mod;
};
static std::string PrimaryKey()
@@ -70,8 +72,10 @@ public:
"bot_id",
"spell_id",
"caster_level",
"caster_name",
"duration_formula",
"tics_remaining",
"initial_duration",
"poison_counters",
"disease_counters",
"curse_counters",
@@ -96,8 +100,10 @@ public:
"bot_id",
"spell_id",
"caster_level",
"caster_name",
"duration_formula",
"tics_remaining",
"initial_duration",
"poison_counters",
"disease_counters",
"curse_counters",
@@ -156,8 +162,10 @@ public:
e.bot_id = 0;
e.spell_id = 0;
e.caster_level = 0;
e.caster_name = "";
e.duration_formula = 0;
e.tics_remaining = 0;
e.initial_duration = 0;
e.poison_counters = 0;
e.disease_counters = 0;
e.curse_counters = 0;
@@ -212,22 +220,24 @@ public:
e.bot_id = row[1] ? static_cast<uint32_t>(strtoul(row[1], nullptr, 10)) : 0;
e.spell_id = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
e.caster_level = row[3] ? static_cast<uint8_t>(strtoul(row[3], nullptr, 10)) : 0;
e.duration_formula = row[4] ? static_cast<uint32_t>(strtoul(row[4], nullptr, 10)) : 0;
e.tics_remaining = row[5] ? static_cast<uint32_t>(strtoul(row[5], nullptr, 10)) : 0;
e.poison_counters = row[6] ? static_cast<uint32_t>(strtoul(row[6], nullptr, 10)) : 0;
e.disease_counters = row[7] ? static_cast<uint32_t>(strtoul(row[7], nullptr, 10)) : 0;
e.curse_counters = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.corruption_counters = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.numhits = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.melee_rune = row[11] ? static_cast<uint32_t>(strtoul(row[11], nullptr, 10)) : 0;
e.magic_rune = row[12] ? static_cast<uint32_t>(strtoul(row[12], nullptr, 10)) : 0;
e.dot_rune = row[13] ? static_cast<uint32_t>(strtoul(row[13], nullptr, 10)) : 0;
e.persistent = row[14] ? static_cast<int8_t>(atoi(row[14])) : 0;
e.caston_x = row[15] ? static_cast<int32_t>(atoi(row[15])) : 0;
e.caston_y = row[16] ? static_cast<int32_t>(atoi(row[16])) : 0;
e.caston_z = row[17] ? static_cast<int32_t>(atoi(row[17])) : 0;
e.extra_di_chance = row[18] ? static_cast<uint32_t>(strtoul(row[18], nullptr, 10)) : 0;
e.instrument_mod = row[19] ? static_cast<int32_t>(atoi(row[19])) : 10;
e.caster_name = row[4] ? row[4] : "";
e.duration_formula = row[5] ? static_cast<uint32_t>(strtoul(row[5], nullptr, 10)) : 0;
e.tics_remaining = row[6] ? static_cast<uint32_t>(strtoul(row[6], nullptr, 10)) : 0;
e.initial_duration = row[7] ? static_cast<int32_t>(atoi(row[7])) : 0;
e.poison_counters = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.disease_counters = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.curse_counters = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.corruption_counters = row[11] ? static_cast<uint32_t>(strtoul(row[11], nullptr, 10)) : 0;
e.numhits = row[12] ? static_cast<uint32_t>(strtoul(row[12], nullptr, 10)) : 0;
e.melee_rune = row[13] ? static_cast<uint32_t>(strtoul(row[13], nullptr, 10)) : 0;
e.magic_rune = row[14] ? static_cast<uint32_t>(strtoul(row[14], nullptr, 10)) : 0;
e.dot_rune = row[15] ? static_cast<uint32_t>(strtoul(row[15], nullptr, 10)) : 0;
e.persistent = row[16] ? static_cast<int8_t>(atoi(row[16])) : 0;
e.caston_x = row[17] ? static_cast<int32_t>(atoi(row[17])) : 0;
e.caston_y = row[18] ? static_cast<int32_t>(atoi(row[18])) : 0;
e.caston_z = row[19] ? static_cast<int32_t>(atoi(row[19])) : 0;
e.extra_di_chance = row[20] ? static_cast<uint32_t>(strtoul(row[20], nullptr, 10)) : 0;
e.instrument_mod = row[21] ? static_cast<int32_t>(atoi(row[21])) : 10;
return e;
}
@@ -264,22 +274,24 @@ public:
v.push_back(columns[1] + " = " + std::to_string(e.bot_id));
v.push_back(columns[2] + " = " + std::to_string(e.spell_id));
v.push_back(columns[3] + " = " + std::to_string(e.caster_level));
v.push_back(columns[4] + " = " + std::to_string(e.duration_formula));
v.push_back(columns[5] + " = " + std::to_string(e.tics_remaining));
v.push_back(columns[6] + " = " + std::to_string(e.poison_counters));
v.push_back(columns[7] + " = " + std::to_string(e.disease_counters));
v.push_back(columns[8] + " = " + std::to_string(e.curse_counters));
v.push_back(columns[9] + " = " + std::to_string(e.corruption_counters));
v.push_back(columns[10] + " = " + std::to_string(e.numhits));
v.push_back(columns[11] + " = " + std::to_string(e.melee_rune));
v.push_back(columns[12] + " = " + std::to_string(e.magic_rune));
v.push_back(columns[13] + " = " + std::to_string(e.dot_rune));
v.push_back(columns[14] + " = " + std::to_string(e.persistent));
v.push_back(columns[15] + " = " + std::to_string(e.caston_x));
v.push_back(columns[16] + " = " + std::to_string(e.caston_y));
v.push_back(columns[17] + " = " + std::to_string(e.caston_z));
v.push_back(columns[18] + " = " + std::to_string(e.extra_di_chance));
v.push_back(columns[19] + " = " + std::to_string(e.instrument_mod));
v.push_back(columns[4] + " = '" + Strings::Escape(e.caster_name) + "'");
v.push_back(columns[5] + " = " + std::to_string(e.duration_formula));
v.push_back(columns[6] + " = " + std::to_string(e.tics_remaining));
v.push_back(columns[7] + " = " + std::to_string(e.initial_duration));
v.push_back(columns[8] + " = " + std::to_string(e.poison_counters));
v.push_back(columns[9] + " = " + std::to_string(e.disease_counters));
v.push_back(columns[10] + " = " + std::to_string(e.curse_counters));
v.push_back(columns[11] + " = " + std::to_string(e.corruption_counters));
v.push_back(columns[12] + " = " + std::to_string(e.numhits));
v.push_back(columns[13] + " = " + std::to_string(e.melee_rune));
v.push_back(columns[14] + " = " + std::to_string(e.magic_rune));
v.push_back(columns[15] + " = " + std::to_string(e.dot_rune));
v.push_back(columns[16] + " = " + std::to_string(e.persistent));
v.push_back(columns[17] + " = " + std::to_string(e.caston_x));
v.push_back(columns[18] + " = " + std::to_string(e.caston_y));
v.push_back(columns[19] + " = " + std::to_string(e.caston_z));
v.push_back(columns[20] + " = " + std::to_string(e.extra_di_chance));
v.push_back(columns[21] + " = " + std::to_string(e.instrument_mod));
auto results = db.QueryDatabase(
fmt::format(
@@ -305,8 +317,10 @@ public:
v.push_back(std::to_string(e.bot_id));
v.push_back(std::to_string(e.spell_id));
v.push_back(std::to_string(e.caster_level));
v.push_back("'" + Strings::Escape(e.caster_name) + "'");
v.push_back(std::to_string(e.duration_formula));
v.push_back(std::to_string(e.tics_remaining));
v.push_back(std::to_string(e.initial_duration));
v.push_back(std::to_string(e.poison_counters));
v.push_back(std::to_string(e.disease_counters));
v.push_back(std::to_string(e.curse_counters));
@@ -354,8 +368,10 @@ public:
v.push_back(std::to_string(e.bot_id));
v.push_back(std::to_string(e.spell_id));
v.push_back(std::to_string(e.caster_level));
v.push_back("'" + Strings::Escape(e.caster_name) + "'");
v.push_back(std::to_string(e.duration_formula));
v.push_back(std::to_string(e.tics_remaining));
v.push_back(std::to_string(e.initial_duration));
v.push_back(std::to_string(e.poison_counters));
v.push_back(std::to_string(e.disease_counters));
v.push_back(std::to_string(e.curse_counters));
@@ -407,22 +423,24 @@ public:
e.bot_id = row[1] ? static_cast<uint32_t>(strtoul(row[1], nullptr, 10)) : 0;
e.spell_id = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
e.caster_level = row[3] ? static_cast<uint8_t>(strtoul(row[3], nullptr, 10)) : 0;
e.duration_formula = row[4] ? static_cast<uint32_t>(strtoul(row[4], nullptr, 10)) : 0;
e.tics_remaining = row[5] ? static_cast<uint32_t>(strtoul(row[5], nullptr, 10)) : 0;
e.poison_counters = row[6] ? static_cast<uint32_t>(strtoul(row[6], nullptr, 10)) : 0;
e.disease_counters = row[7] ? static_cast<uint32_t>(strtoul(row[7], nullptr, 10)) : 0;
e.curse_counters = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.corruption_counters = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.numhits = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.melee_rune = row[11] ? static_cast<uint32_t>(strtoul(row[11], nullptr, 10)) : 0;
e.magic_rune = row[12] ? static_cast<uint32_t>(strtoul(row[12], nullptr, 10)) : 0;
e.dot_rune = row[13] ? static_cast<uint32_t>(strtoul(row[13], nullptr, 10)) : 0;
e.persistent = row[14] ? static_cast<int8_t>(atoi(row[14])) : 0;
e.caston_x = row[15] ? static_cast<int32_t>(atoi(row[15])) : 0;
e.caston_y = row[16] ? static_cast<int32_t>(atoi(row[16])) : 0;
e.caston_z = row[17] ? static_cast<int32_t>(atoi(row[17])) : 0;
e.extra_di_chance = row[18] ? static_cast<uint32_t>(strtoul(row[18], nullptr, 10)) : 0;
e.instrument_mod = row[19] ? static_cast<int32_t>(atoi(row[19])) : 10;
e.caster_name = row[4] ? row[4] : "";
e.duration_formula = row[5] ? static_cast<uint32_t>(strtoul(row[5], nullptr, 10)) : 0;
e.tics_remaining = row[6] ? static_cast<uint32_t>(strtoul(row[6], nullptr, 10)) : 0;
e.initial_duration = row[7] ? static_cast<int32_t>(atoi(row[7])) : 0;
e.poison_counters = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.disease_counters = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.curse_counters = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.corruption_counters = row[11] ? static_cast<uint32_t>(strtoul(row[11], nullptr, 10)) : 0;
e.numhits = row[12] ? static_cast<uint32_t>(strtoul(row[12], nullptr, 10)) : 0;
e.melee_rune = row[13] ? static_cast<uint32_t>(strtoul(row[13], nullptr, 10)) : 0;
e.magic_rune = row[14] ? static_cast<uint32_t>(strtoul(row[14], nullptr, 10)) : 0;
e.dot_rune = row[15] ? static_cast<uint32_t>(strtoul(row[15], nullptr, 10)) : 0;
e.persistent = row[16] ? static_cast<int8_t>(atoi(row[16])) : 0;
e.caston_x = row[17] ? static_cast<int32_t>(atoi(row[17])) : 0;
e.caston_y = row[18] ? static_cast<int32_t>(atoi(row[18])) : 0;
e.caston_z = row[19] ? static_cast<int32_t>(atoi(row[19])) : 0;
e.extra_di_chance = row[20] ? static_cast<uint32_t>(strtoul(row[20], nullptr, 10)) : 0;
e.instrument_mod = row[21] ? static_cast<int32_t>(atoi(row[21])) : 10;
all_entries.push_back(e);
}
@@ -451,22 +469,24 @@ public:
e.bot_id = row[1] ? static_cast<uint32_t>(strtoul(row[1], nullptr, 10)) : 0;
e.spell_id = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
e.caster_level = row[3] ? static_cast<uint8_t>(strtoul(row[3], nullptr, 10)) : 0;
e.duration_formula = row[4] ? static_cast<uint32_t>(strtoul(row[4], nullptr, 10)) : 0;
e.tics_remaining = row[5] ? static_cast<uint32_t>(strtoul(row[5], nullptr, 10)) : 0;
e.poison_counters = row[6] ? static_cast<uint32_t>(strtoul(row[6], nullptr, 10)) : 0;
e.disease_counters = row[7] ? static_cast<uint32_t>(strtoul(row[7], nullptr, 10)) : 0;
e.curse_counters = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.corruption_counters = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.numhits = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.melee_rune = row[11] ? static_cast<uint32_t>(strtoul(row[11], nullptr, 10)) : 0;
e.magic_rune = row[12] ? static_cast<uint32_t>(strtoul(row[12], nullptr, 10)) : 0;
e.dot_rune = row[13] ? static_cast<uint32_t>(strtoul(row[13], nullptr, 10)) : 0;
e.persistent = row[14] ? static_cast<int8_t>(atoi(row[14])) : 0;
e.caston_x = row[15] ? static_cast<int32_t>(atoi(row[15])) : 0;
e.caston_y = row[16] ? static_cast<int32_t>(atoi(row[16])) : 0;
e.caston_z = row[17] ? static_cast<int32_t>(atoi(row[17])) : 0;
e.extra_di_chance = row[18] ? static_cast<uint32_t>(strtoul(row[18], nullptr, 10)) : 0;
e.instrument_mod = row[19] ? static_cast<int32_t>(atoi(row[19])) : 10;
e.caster_name = row[4] ? row[4] : "";
e.duration_formula = row[5] ? static_cast<uint32_t>(strtoul(row[5], nullptr, 10)) : 0;
e.tics_remaining = row[6] ? static_cast<uint32_t>(strtoul(row[6], nullptr, 10)) : 0;
e.initial_duration = row[7] ? static_cast<int32_t>(atoi(row[7])) : 0;
e.poison_counters = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.disease_counters = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.curse_counters = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.corruption_counters = row[11] ? static_cast<uint32_t>(strtoul(row[11], nullptr, 10)) : 0;
e.numhits = row[12] ? static_cast<uint32_t>(strtoul(row[12], nullptr, 10)) : 0;
e.melee_rune = row[13] ? static_cast<uint32_t>(strtoul(row[13], nullptr, 10)) : 0;
e.magic_rune = row[14] ? static_cast<uint32_t>(strtoul(row[14], nullptr, 10)) : 0;
e.dot_rune = row[15] ? static_cast<uint32_t>(strtoul(row[15], nullptr, 10)) : 0;
e.persistent = row[16] ? static_cast<int8_t>(atoi(row[16])) : 0;
e.caston_x = row[17] ? static_cast<int32_t>(atoi(row[17])) : 0;
e.caston_y = row[18] ? static_cast<int32_t>(atoi(row[18])) : 0;
e.caston_z = row[19] ? static_cast<int32_t>(atoi(row[19])) : 0;
e.extra_di_chance = row[20] ? static_cast<uint32_t>(strtoul(row[20], nullptr, 10)) : 0;
e.instrument_mod = row[21] ? static_cast<int32_t>(atoi(row[21])) : 10;
all_entries.push_back(e);
}
@@ -545,8 +565,10 @@ public:
v.push_back(std::to_string(e.bot_id));
v.push_back(std::to_string(e.spell_id));
v.push_back(std::to_string(e.caster_level));
v.push_back("'" + Strings::Escape(e.caster_name) + "'");
v.push_back(std::to_string(e.duration_formula));
v.push_back(std::to_string(e.tics_remaining));
v.push_back(std::to_string(e.initial_duration));
v.push_back(std::to_string(e.poison_counters));
v.push_back(std::to_string(e.disease_counters));
v.push_back(std::to_string(e.curse_counters));
@@ -587,8 +609,10 @@ public:
v.push_back(std::to_string(e.bot_id));
v.push_back(std::to_string(e.spell_id));
v.push_back(std::to_string(e.caster_level));
v.push_back("'" + Strings::Escape(e.caster_name) + "'");
v.push_back(std::to_string(e.duration_formula));
v.push_back(std::to_string(e.tics_remaining));
v.push_back(std::to_string(e.initial_duration));
v.push_back(std::to_string(e.poison_counters));
v.push_back(std::to_string(e.disease_counters));
v.push_back(std::to_string(e.curse_counters));
@@ -36,11 +36,24 @@
class BaseBotPetBuffsRepository {
public:
struct BotPetBuffs {
uint32_t pet_buffs_index;
uint32_t pets_index;
int32_t spell_id;
uint32_t caster_level;
uint32_t duration;
uint32_t pet_buffs_index;
uint32_t pets_index;
int32_t spell_id;
uint32_t caster_level;
std::string caster_name;
int32_t tics_remaining;
int32_t initial_duration;
uint32_t counters;
uint32_t numhits;
uint32_t melee_rune;
uint32_t magic_rune;
uint32_t dot_rune;
uint8_t persistent;
int32_t caston_x;
int32_t caston_y;
int32_t caston_z;
int32_t extra_di_chance;
uint32_t instrument_mod;
};
static std::string PrimaryKey()
@@ -55,7 +68,20 @@ public:
"pets_index",
"spell_id",
"caster_level",
"duration",
"caster_name",
"tics_remaining",
"initial_duration",
"counters",
"numhits",
"melee_rune",
"magic_rune",
"dot_rune",
"persistent",
"caston_x",
"caston_y",
"caston_z",
"extra_di_chance",
"instrument_mod",
};
}
@@ -66,7 +92,20 @@ public:
"pets_index",
"spell_id",
"caster_level",
"duration",
"caster_name",
"tics_remaining",
"initial_duration",
"counters",
"numhits",
"melee_rune",
"magic_rune",
"dot_rune",
"persistent",
"caston_x",
"caston_y",
"caston_z",
"extra_di_chance",
"instrument_mod",
};
}
@@ -107,11 +146,24 @@ public:
{
BotPetBuffs e{};
e.pet_buffs_index = 0;
e.pets_index = 0;
e.spell_id = 0;
e.caster_level = 0;
e.duration = 0;
e.pet_buffs_index = 0;
e.pets_index = 0;
e.spell_id = 0;
e.caster_level = 0;
e.caster_name = "";
e.tics_remaining = 0;
e.initial_duration = 0;
e.counters = 0;
e.numhits = 0;
e.melee_rune = 0;
e.magic_rune = 0;
e.dot_rune = 0;
e.persistent = 0;
e.caston_x = 0;
e.caston_y = 0;
e.caston_z = 0;
e.extra_di_chance = 0;
e.instrument_mod = 10;
return e;
}
@@ -148,11 +200,24 @@ public:
if (results.RowCount() == 1) {
BotPetBuffs e{};
e.pet_buffs_index = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
e.pets_index = row[1] ? static_cast<uint32_t>(strtoul(row[1], nullptr, 10)) : 0;
e.spell_id = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
e.caster_level = row[3] ? static_cast<uint32_t>(strtoul(row[3], nullptr, 10)) : 0;
e.duration = row[4] ? static_cast<uint32_t>(strtoul(row[4], nullptr, 10)) : 0;
e.pet_buffs_index = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
e.pets_index = row[1] ? static_cast<uint32_t>(strtoul(row[1], nullptr, 10)) : 0;
e.spell_id = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
e.caster_level = row[3] ? static_cast<uint32_t>(strtoul(row[3], nullptr, 10)) : 0;
e.caster_name = row[4] ? row[4] : "";
e.tics_remaining = row[5] ? static_cast<int32_t>(atoi(row[5])) : 0;
e.initial_duration = row[6] ? static_cast<int32_t>(atoi(row[6])) : 0;
e.counters = row[7] ? static_cast<uint32_t>(strtoul(row[7], nullptr, 10)) : 0;
e.numhits = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.melee_rune = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.magic_rune = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.dot_rune = row[11] ? static_cast<uint32_t>(strtoul(row[11], nullptr, 10)) : 0;
e.persistent = row[12] ? static_cast<uint8_t>(strtoul(row[12], nullptr, 10)) : 0;
e.caston_x = row[13] ? static_cast<int32_t>(atoi(row[13])) : 0;
e.caston_y = row[14] ? static_cast<int32_t>(atoi(row[14])) : 0;
e.caston_z = row[15] ? static_cast<int32_t>(atoi(row[15])) : 0;
e.extra_di_chance = row[16] ? static_cast<int32_t>(atoi(row[16])) : 0;
e.instrument_mod = row[17] ? static_cast<uint32_t>(strtoul(row[17], nullptr, 10)) : 10;
return e;
}
@@ -189,7 +254,20 @@ public:
v.push_back(columns[1] + " = " + std::to_string(e.pets_index));
v.push_back(columns[2] + " = " + std::to_string(e.spell_id));
v.push_back(columns[3] + " = " + std::to_string(e.caster_level));
v.push_back(columns[4] + " = " + std::to_string(e.duration));
v.push_back(columns[4] + " = '" + Strings::Escape(e.caster_name) + "'");
v.push_back(columns[5] + " = " + std::to_string(e.tics_remaining));
v.push_back(columns[6] + " = " + std::to_string(e.initial_duration));
v.push_back(columns[7] + " = " + std::to_string(e.counters));
v.push_back(columns[8] + " = " + std::to_string(e.numhits));
v.push_back(columns[9] + " = " + std::to_string(e.melee_rune));
v.push_back(columns[10] + " = " + std::to_string(e.magic_rune));
v.push_back(columns[11] + " = " + std::to_string(e.dot_rune));
v.push_back(columns[12] + " = " + std::to_string(e.persistent));
v.push_back(columns[13] + " = " + std::to_string(e.caston_x));
v.push_back(columns[14] + " = " + std::to_string(e.caston_y));
v.push_back(columns[15] + " = " + std::to_string(e.caston_z));
v.push_back(columns[16] + " = " + std::to_string(e.extra_di_chance));
v.push_back(columns[17] + " = " + std::to_string(e.instrument_mod));
auto results = db.QueryDatabase(
fmt::format(
@@ -215,7 +293,20 @@ public:
v.push_back(std::to_string(e.pets_index));
v.push_back(std::to_string(e.spell_id));
v.push_back(std::to_string(e.caster_level));
v.push_back(std::to_string(e.duration));
v.push_back("'" + Strings::Escape(e.caster_name) + "'");
v.push_back(std::to_string(e.tics_remaining));
v.push_back(std::to_string(e.initial_duration));
v.push_back(std::to_string(e.counters));
v.push_back(std::to_string(e.numhits));
v.push_back(std::to_string(e.melee_rune));
v.push_back(std::to_string(e.magic_rune));
v.push_back(std::to_string(e.dot_rune));
v.push_back(std::to_string(e.persistent));
v.push_back(std::to_string(e.caston_x));
v.push_back(std::to_string(e.caston_y));
v.push_back(std::to_string(e.caston_z));
v.push_back(std::to_string(e.extra_di_chance));
v.push_back(std::to_string(e.instrument_mod));
auto results = db.QueryDatabase(
fmt::format(
@@ -249,7 +340,20 @@ public:
v.push_back(std::to_string(e.pets_index));
v.push_back(std::to_string(e.spell_id));
v.push_back(std::to_string(e.caster_level));
v.push_back(std::to_string(e.duration));
v.push_back("'" + Strings::Escape(e.caster_name) + "'");
v.push_back(std::to_string(e.tics_remaining));
v.push_back(std::to_string(e.initial_duration));
v.push_back(std::to_string(e.counters));
v.push_back(std::to_string(e.numhits));
v.push_back(std::to_string(e.melee_rune));
v.push_back(std::to_string(e.magic_rune));
v.push_back(std::to_string(e.dot_rune));
v.push_back(std::to_string(e.persistent));
v.push_back(std::to_string(e.caston_x));
v.push_back(std::to_string(e.caston_y));
v.push_back(std::to_string(e.caston_z));
v.push_back(std::to_string(e.extra_di_chance));
v.push_back(std::to_string(e.instrument_mod));
insert_chunks.push_back("(" + Strings::Implode(",", v) + ")");
}
@@ -283,11 +387,24 @@ public:
for (auto row = results.begin(); row != results.end(); ++row) {
BotPetBuffs e{};
e.pet_buffs_index = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
e.pets_index = row[1] ? static_cast<uint32_t>(strtoul(row[1], nullptr, 10)) : 0;
e.spell_id = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
e.caster_level = row[3] ? static_cast<uint32_t>(strtoul(row[3], nullptr, 10)) : 0;
e.duration = row[4] ? static_cast<uint32_t>(strtoul(row[4], nullptr, 10)) : 0;
e.pet_buffs_index = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
e.pets_index = row[1] ? static_cast<uint32_t>(strtoul(row[1], nullptr, 10)) : 0;
e.spell_id = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
e.caster_level = row[3] ? static_cast<uint32_t>(strtoul(row[3], nullptr, 10)) : 0;
e.caster_name = row[4] ? row[4] : "";
e.tics_remaining = row[5] ? static_cast<int32_t>(atoi(row[5])) : 0;
e.initial_duration = row[6] ? static_cast<int32_t>(atoi(row[6])) : 0;
e.counters = row[7] ? static_cast<uint32_t>(strtoul(row[7], nullptr, 10)) : 0;
e.numhits = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.melee_rune = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.magic_rune = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.dot_rune = row[11] ? static_cast<uint32_t>(strtoul(row[11], nullptr, 10)) : 0;
e.persistent = row[12] ? static_cast<uint8_t>(strtoul(row[12], nullptr, 10)) : 0;
e.caston_x = row[13] ? static_cast<int32_t>(atoi(row[13])) : 0;
e.caston_y = row[14] ? static_cast<int32_t>(atoi(row[14])) : 0;
e.caston_z = row[15] ? static_cast<int32_t>(atoi(row[15])) : 0;
e.extra_di_chance = row[16] ? static_cast<int32_t>(atoi(row[16])) : 0;
e.instrument_mod = row[17] ? static_cast<uint32_t>(strtoul(row[17], nullptr, 10)) : 10;
all_entries.push_back(e);
}
@@ -312,11 +429,24 @@ public:
for (auto row = results.begin(); row != results.end(); ++row) {
BotPetBuffs e{};
e.pet_buffs_index = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
e.pets_index = row[1] ? static_cast<uint32_t>(strtoul(row[1], nullptr, 10)) : 0;
e.spell_id = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
e.caster_level = row[3] ? static_cast<uint32_t>(strtoul(row[3], nullptr, 10)) : 0;
e.duration = row[4] ? static_cast<uint32_t>(strtoul(row[4], nullptr, 10)) : 0;
e.pet_buffs_index = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
e.pets_index = row[1] ? static_cast<uint32_t>(strtoul(row[1], nullptr, 10)) : 0;
e.spell_id = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
e.caster_level = row[3] ? static_cast<uint32_t>(strtoul(row[3], nullptr, 10)) : 0;
e.caster_name = row[4] ? row[4] : "";
e.tics_remaining = row[5] ? static_cast<int32_t>(atoi(row[5])) : 0;
e.initial_duration = row[6] ? static_cast<int32_t>(atoi(row[6])) : 0;
e.counters = row[7] ? static_cast<uint32_t>(strtoul(row[7], nullptr, 10)) : 0;
e.numhits = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.melee_rune = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.magic_rune = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.dot_rune = row[11] ? static_cast<uint32_t>(strtoul(row[11], nullptr, 10)) : 0;
e.persistent = row[12] ? static_cast<uint8_t>(strtoul(row[12], nullptr, 10)) : 0;
e.caston_x = row[13] ? static_cast<int32_t>(atoi(row[13])) : 0;
e.caston_y = row[14] ? static_cast<int32_t>(atoi(row[14])) : 0;
e.caston_z = row[15] ? static_cast<int32_t>(atoi(row[15])) : 0;
e.extra_di_chance = row[16] ? static_cast<int32_t>(atoi(row[16])) : 0;
e.instrument_mod = row[17] ? static_cast<uint32_t>(strtoul(row[17], nullptr, 10)) : 10;
all_entries.push_back(e);
}
@@ -395,7 +525,20 @@ public:
v.push_back(std::to_string(e.pets_index));
v.push_back(std::to_string(e.spell_id));
v.push_back(std::to_string(e.caster_level));
v.push_back(std::to_string(e.duration));
v.push_back("'" + Strings::Escape(e.caster_name) + "'");
v.push_back(std::to_string(e.tics_remaining));
v.push_back(std::to_string(e.initial_duration));
v.push_back(std::to_string(e.counters));
v.push_back(std::to_string(e.numhits));
v.push_back(std::to_string(e.melee_rune));
v.push_back(std::to_string(e.magic_rune));
v.push_back(std::to_string(e.dot_rune));
v.push_back(std::to_string(e.persistent));
v.push_back(std::to_string(e.caston_x));
v.push_back(std::to_string(e.caston_y));
v.push_back(std::to_string(e.caston_z));
v.push_back(std::to_string(e.extra_di_chance));
v.push_back(std::to_string(e.instrument_mod));
auto results = db.QueryDatabase(
fmt::format(
@@ -422,7 +565,20 @@ public:
v.push_back(std::to_string(e.pets_index));
v.push_back(std::to_string(e.spell_id));
v.push_back(std::to_string(e.caster_level));
v.push_back(std::to_string(e.duration));
v.push_back("'" + Strings::Escape(e.caster_name) + "'");
v.push_back(std::to_string(e.tics_remaining));
v.push_back(std::to_string(e.initial_duration));
v.push_back(std::to_string(e.counters));
v.push_back(std::to_string(e.numhits));
v.push_back(std::to_string(e.melee_rune));
v.push_back(std::to_string(e.magic_rune));
v.push_back(std::to_string(e.dot_rune));
v.push_back(std::to_string(e.persistent));
v.push_back(std::to_string(e.caston_x));
v.push_back(std::to_string(e.caston_y));
v.push_back(std::to_string(e.caston_z));
v.push_back(std::to_string(e.extra_di_chance));
v.push_back(std::to_string(e.instrument_mod));
insert_chunks.push_back("(" + Strings::Implode(",", v) + ")");
}
@@ -42,12 +42,13 @@ public:
uint8_t caster_level;
std::string caster_name;
int32_t ticsremaining;
int32_t initialduration;
uint32_t counters;
uint32_t numhits;
uint32_t melee_rune;
uint32_t magic_rune;
uint8_t persistent;
int32_t dot_rune;
uint32_t dot_rune;
int32_t caston_x;
int32_t caston_y;
int32_t caston_z;
@@ -69,6 +70,7 @@ public:
"caster_level",
"caster_name",
"ticsremaining",
"initialduration",
"counters",
"numhits",
"melee_rune",
@@ -92,6 +94,7 @@ public:
"caster_level",
"caster_name",
"ticsremaining",
"initialduration",
"counters",
"numhits",
"melee_rune",
@@ -143,23 +146,24 @@ public:
{
CharacterBuffs e{};
e.character_id = 0;
e.slot_id = 0;
e.spell_id = 0;
e.caster_level = 0;
e.caster_name = "";
e.ticsremaining = 0;
e.counters = 0;
e.numhits = 0;
e.melee_rune = 0;
e.magic_rune = 0;
e.persistent = 0;
e.dot_rune = 0;
e.caston_x = 0;
e.caston_y = 0;
e.caston_z = 0;
e.ExtraDIChance = 0;
e.instrument_mod = 10;
e.character_id = 0;
e.slot_id = 0;
e.spell_id = 0;
e.caster_level = 0;
e.caster_name = "";
e.ticsremaining = 0;
e.initialduration = 0;
e.counters = 0;
e.numhits = 0;
e.melee_rune = 0;
e.magic_rune = 0;
e.persistent = 0;
e.dot_rune = 0;
e.caston_x = 0;
e.caston_y = 0;
e.caston_z = 0;
e.ExtraDIChance = 0;
e.instrument_mod = 10;
return e;
}
@@ -196,23 +200,24 @@ public:
if (results.RowCount() == 1) {
CharacterBuffs e{};
e.character_id = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
e.slot_id = row[1] ? static_cast<uint8_t>(strtoul(row[1], nullptr, 10)) : 0;
e.spell_id = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
e.caster_level = row[3] ? static_cast<uint8_t>(strtoul(row[3], nullptr, 10)) : 0;
e.caster_name = row[4] ? row[4] : "";
e.ticsremaining = row[5] ? static_cast<int32_t>(atoi(row[5])) : 0;
e.counters = row[6] ? static_cast<uint32_t>(strtoul(row[6], nullptr, 10)) : 0;
e.numhits = row[7] ? static_cast<uint32_t>(strtoul(row[7], nullptr, 10)) : 0;
e.melee_rune = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.magic_rune = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.persistent = row[10] ? static_cast<uint8_t>(strtoul(row[10], nullptr, 10)) : 0;
e.dot_rune = row[11] ? static_cast<int32_t>(atoi(row[11])) : 0;
e.caston_x = row[12] ? static_cast<int32_t>(atoi(row[12])) : 0;
e.caston_y = row[13] ? static_cast<int32_t>(atoi(row[13])) : 0;
e.caston_z = row[14] ? static_cast<int32_t>(atoi(row[14])) : 0;
e.ExtraDIChance = row[15] ? static_cast<int32_t>(atoi(row[15])) : 0;
e.instrument_mod = row[16] ? static_cast<int32_t>(atoi(row[16])) : 10;
e.character_id = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
e.slot_id = row[1] ? static_cast<uint8_t>(strtoul(row[1], nullptr, 10)) : 0;
e.spell_id = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
e.caster_level = row[3] ? static_cast<uint8_t>(strtoul(row[3], nullptr, 10)) : 0;
e.caster_name = row[4] ? row[4] : "";
e.ticsremaining = row[5] ? static_cast<int32_t>(atoi(row[5])) : 0;
e.initialduration = row[6] ? static_cast<int32_t>(atoi(row[6])) : 0;
e.counters = row[7] ? static_cast<uint32_t>(strtoul(row[7], nullptr, 10)) : 0;
e.numhits = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.melee_rune = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.magic_rune = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.persistent = row[11] ? static_cast<uint8_t>(strtoul(row[11], nullptr, 10)) : 0;
e.dot_rune = row[12] ? static_cast<uint32_t>(strtoul(row[12], nullptr, 10)) : 0;
e.caston_x = row[13] ? static_cast<int32_t>(atoi(row[13])) : 0;
e.caston_y = row[14] ? static_cast<int32_t>(atoi(row[14])) : 0;
e.caston_z = row[15] ? static_cast<int32_t>(atoi(row[15])) : 0;
e.ExtraDIChance = row[16] ? static_cast<int32_t>(atoi(row[16])) : 0;
e.instrument_mod = row[17] ? static_cast<int32_t>(atoi(row[17])) : 10;
return e;
}
@@ -252,17 +257,18 @@ public:
v.push_back(columns[3] + " = " + std::to_string(e.caster_level));
v.push_back(columns[4] + " = '" + Strings::Escape(e.caster_name) + "'");
v.push_back(columns[5] + " = " + std::to_string(e.ticsremaining));
v.push_back(columns[6] + " = " + std::to_string(e.counters));
v.push_back(columns[7] + " = " + std::to_string(e.numhits));
v.push_back(columns[8] + " = " + std::to_string(e.melee_rune));
v.push_back(columns[9] + " = " + std::to_string(e.magic_rune));
v.push_back(columns[10] + " = " + std::to_string(e.persistent));
v.push_back(columns[11] + " = " + std::to_string(e.dot_rune));
v.push_back(columns[12] + " = " + std::to_string(e.caston_x));
v.push_back(columns[13] + " = " + std::to_string(e.caston_y));
v.push_back(columns[14] + " = " + std::to_string(e.caston_z));
v.push_back(columns[15] + " = " + std::to_string(e.ExtraDIChance));
v.push_back(columns[16] + " = " + std::to_string(e.instrument_mod));
v.push_back(columns[6] + " = " + std::to_string(e.initialduration));
v.push_back(columns[7] + " = " + std::to_string(e.counters));
v.push_back(columns[8] + " = " + std::to_string(e.numhits));
v.push_back(columns[9] + " = " + std::to_string(e.melee_rune));
v.push_back(columns[10] + " = " + std::to_string(e.magic_rune));
v.push_back(columns[11] + " = " + std::to_string(e.persistent));
v.push_back(columns[12] + " = " + std::to_string(e.dot_rune));
v.push_back(columns[13] + " = " + std::to_string(e.caston_x));
v.push_back(columns[14] + " = " + std::to_string(e.caston_y));
v.push_back(columns[15] + " = " + std::to_string(e.caston_z));
v.push_back(columns[16] + " = " + std::to_string(e.ExtraDIChance));
v.push_back(columns[17] + " = " + std::to_string(e.instrument_mod));
auto results = db.QueryDatabase(
fmt::format(
@@ -290,6 +296,7 @@ public:
v.push_back(std::to_string(e.caster_level));
v.push_back("'" + Strings::Escape(e.caster_name) + "'");
v.push_back(std::to_string(e.ticsremaining));
v.push_back(std::to_string(e.initialduration));
v.push_back(std::to_string(e.counters));
v.push_back(std::to_string(e.numhits));
v.push_back(std::to_string(e.melee_rune));
@@ -336,6 +343,7 @@ public:
v.push_back(std::to_string(e.caster_level));
v.push_back("'" + Strings::Escape(e.caster_name) + "'");
v.push_back(std::to_string(e.ticsremaining));
v.push_back(std::to_string(e.initialduration));
v.push_back(std::to_string(e.counters));
v.push_back(std::to_string(e.numhits));
v.push_back(std::to_string(e.melee_rune));
@@ -380,23 +388,24 @@ public:
for (auto row = results.begin(); row != results.end(); ++row) {
CharacterBuffs e{};
e.character_id = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
e.slot_id = row[1] ? static_cast<uint8_t>(strtoul(row[1], nullptr, 10)) : 0;
e.spell_id = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
e.caster_level = row[3] ? static_cast<uint8_t>(strtoul(row[3], nullptr, 10)) : 0;
e.caster_name = row[4] ? row[4] : "";
e.ticsremaining = row[5] ? static_cast<int32_t>(atoi(row[5])) : 0;
e.counters = row[6] ? static_cast<uint32_t>(strtoul(row[6], nullptr, 10)) : 0;
e.numhits = row[7] ? static_cast<uint32_t>(strtoul(row[7], nullptr, 10)) : 0;
e.melee_rune = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.magic_rune = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.persistent = row[10] ? static_cast<uint8_t>(strtoul(row[10], nullptr, 10)) : 0;
e.dot_rune = row[11] ? static_cast<int32_t>(atoi(row[11])) : 0;
e.caston_x = row[12] ? static_cast<int32_t>(atoi(row[12])) : 0;
e.caston_y = row[13] ? static_cast<int32_t>(atoi(row[13])) : 0;
e.caston_z = row[14] ? static_cast<int32_t>(atoi(row[14])) : 0;
e.ExtraDIChance = row[15] ? static_cast<int32_t>(atoi(row[15])) : 0;
e.instrument_mod = row[16] ? static_cast<int32_t>(atoi(row[16])) : 10;
e.character_id = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
e.slot_id = row[1] ? static_cast<uint8_t>(strtoul(row[1], nullptr, 10)) : 0;
e.spell_id = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
e.caster_level = row[3] ? static_cast<uint8_t>(strtoul(row[3], nullptr, 10)) : 0;
e.caster_name = row[4] ? row[4] : "";
e.ticsremaining = row[5] ? static_cast<int32_t>(atoi(row[5])) : 0;
e.initialduration = row[6] ? static_cast<int32_t>(atoi(row[6])) : 0;
e.counters = row[7] ? static_cast<uint32_t>(strtoul(row[7], nullptr, 10)) : 0;
e.numhits = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.melee_rune = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.magic_rune = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.persistent = row[11] ? static_cast<uint8_t>(strtoul(row[11], nullptr, 10)) : 0;
e.dot_rune = row[12] ? static_cast<uint32_t>(strtoul(row[12], nullptr, 10)) : 0;
e.caston_x = row[13] ? static_cast<int32_t>(atoi(row[13])) : 0;
e.caston_y = row[14] ? static_cast<int32_t>(atoi(row[14])) : 0;
e.caston_z = row[15] ? static_cast<int32_t>(atoi(row[15])) : 0;
e.ExtraDIChance = row[16] ? static_cast<int32_t>(atoi(row[16])) : 0;
e.instrument_mod = row[17] ? static_cast<int32_t>(atoi(row[17])) : 10;
all_entries.push_back(e);
}
@@ -421,23 +430,24 @@ public:
for (auto row = results.begin(); row != results.end(); ++row) {
CharacterBuffs e{};
e.character_id = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
e.slot_id = row[1] ? static_cast<uint8_t>(strtoul(row[1], nullptr, 10)) : 0;
e.spell_id = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
e.caster_level = row[3] ? static_cast<uint8_t>(strtoul(row[3], nullptr, 10)) : 0;
e.caster_name = row[4] ? row[4] : "";
e.ticsremaining = row[5] ? static_cast<int32_t>(atoi(row[5])) : 0;
e.counters = row[6] ? static_cast<uint32_t>(strtoul(row[6], nullptr, 10)) : 0;
e.numhits = row[7] ? static_cast<uint32_t>(strtoul(row[7], nullptr, 10)) : 0;
e.melee_rune = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.magic_rune = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.persistent = row[10] ? static_cast<uint8_t>(strtoul(row[10], nullptr, 10)) : 0;
e.dot_rune = row[11] ? static_cast<int32_t>(atoi(row[11])) : 0;
e.caston_x = row[12] ? static_cast<int32_t>(atoi(row[12])) : 0;
e.caston_y = row[13] ? static_cast<int32_t>(atoi(row[13])) : 0;
e.caston_z = row[14] ? static_cast<int32_t>(atoi(row[14])) : 0;
e.ExtraDIChance = row[15] ? static_cast<int32_t>(atoi(row[15])) : 0;
e.instrument_mod = row[16] ? static_cast<int32_t>(atoi(row[16])) : 10;
e.character_id = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
e.slot_id = row[1] ? static_cast<uint8_t>(strtoul(row[1], nullptr, 10)) : 0;
e.spell_id = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
e.caster_level = row[3] ? static_cast<uint8_t>(strtoul(row[3], nullptr, 10)) : 0;
e.caster_name = row[4] ? row[4] : "";
e.ticsremaining = row[5] ? static_cast<int32_t>(atoi(row[5])) : 0;
e.initialduration = row[6] ? static_cast<int32_t>(atoi(row[6])) : 0;
e.counters = row[7] ? static_cast<uint32_t>(strtoul(row[7], nullptr, 10)) : 0;
e.numhits = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.melee_rune = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.magic_rune = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.persistent = row[11] ? static_cast<uint8_t>(strtoul(row[11], nullptr, 10)) : 0;
e.dot_rune = row[12] ? static_cast<uint32_t>(strtoul(row[12], nullptr, 10)) : 0;
e.caston_x = row[13] ? static_cast<int32_t>(atoi(row[13])) : 0;
e.caston_y = row[14] ? static_cast<int32_t>(atoi(row[14])) : 0;
e.caston_z = row[15] ? static_cast<int32_t>(atoi(row[15])) : 0;
e.ExtraDIChance = row[16] ? static_cast<int32_t>(atoi(row[16])) : 0;
e.instrument_mod = row[17] ? static_cast<int32_t>(atoi(row[17])) : 10;
all_entries.push_back(e);
}
@@ -518,6 +528,7 @@ public:
v.push_back(std::to_string(e.caster_level));
v.push_back("'" + Strings::Escape(e.caster_name) + "'");
v.push_back(std::to_string(e.ticsremaining));
v.push_back(std::to_string(e.initialduration));
v.push_back(std::to_string(e.counters));
v.push_back(std::to_string(e.numhits));
v.push_back(std::to_string(e.melee_rune));
@@ -557,6 +568,7 @@ public:
v.push_back(std::to_string(e.caster_level));
v.push_back("'" + Strings::Escape(e.caster_name) + "'");
v.push_back(std::to_string(e.ticsremaining));
v.push_back(std::to_string(e.initialduration));
v.push_back(std::to_string(e.counters));
v.push_back(std::to_string(e.numhits));
v.push_back(std::to_string(e.melee_rune));
@@ -36,37 +36,53 @@
class BaseCharacterPetBuffsRepository {
public:
struct CharacterPetBuffs {
int32_t char_id;
uint32_t character_id;
int32_t pet;
int32_t slot;
uint8_t slot_id;
int32_t spell_id;
int8_t caster_level;
std::string castername;
uint8_t caster_level;
std::string caster_name;
int32_t ticsremaining;
int32_t counters;
int32_t numhits;
int32_t rune;
uint8_t instrument_mod;
int32_t initialduration;
uint32_t counters;
uint32_t numhits;
uint32_t melee_rune;
uint32_t magic_rune;
uint8_t persistent;
uint32_t dot_rune;
int32_t caston_x;
int32_t caston_y;
int32_t caston_z;
int32_t ExtraDIChance;
uint32_t instrument_mod;
};
static std::string PrimaryKey()
{
return std::string("char_id");
return std::string("character_id");
}
static std::vector<std::string> Columns()
{
return {
"char_id",
"character_id",
"pet",
"slot",
"slot_id",
"spell_id",
"caster_level",
"castername",
"caster_name",
"ticsremaining",
"initialduration",
"counters",
"numhits",
"rune",
"melee_rune",
"magic_rune",
"persistent",
"dot_rune",
"caston_x",
"caston_y",
"caston_z",
"ExtraDIChance",
"instrument_mod",
};
}
@@ -74,16 +90,24 @@ public:
static std::vector<std::string> SelectColumns()
{
return {
"char_id",
"character_id",
"pet",
"slot",
"slot_id",
"spell_id",
"caster_level",
"castername",
"caster_name",
"ticsremaining",
"initialduration",
"counters",
"numhits",
"rune",
"melee_rune",
"magic_rune",
"persistent",
"dot_rune",
"caston_x",
"caston_y",
"caston_z",
"ExtraDIChance",
"instrument_mod",
};
}
@@ -125,17 +149,25 @@ public:
{
CharacterPetBuffs e{};
e.char_id = 0;
e.pet = 0;
e.slot = 0;
e.spell_id = 0;
e.caster_level = 0;
e.castername = "";
e.ticsremaining = 0;
e.counters = 0;
e.numhits = 0;
e.rune = 0;
e.instrument_mod = 10;
e.character_id = 0;
e.pet = 0;
e.slot_id = 0;
e.spell_id = 0;
e.caster_level = 0;
e.caster_name = "";
e.ticsremaining = 0;
e.initialduration = 0;
e.counters = 0;
e.numhits = 0;
e.melee_rune = 0;
e.magic_rune = 0;
e.persistent = 0;
e.dot_rune = 0;
e.caston_x = 0;
e.caston_y = 0;
e.caston_z = 0;
e.ExtraDIChance = 0;
e.instrument_mod = 10;
return e;
}
@@ -146,7 +178,7 @@ public:
)
{
for (auto &character_pet_buffs : character_pet_buffss) {
if (character_pet_buffs.char_id == character_pet_buffs_id) {
if (character_pet_buffs.character_id == character_pet_buffs_id) {
return character_pet_buffs;
}
}
@@ -172,17 +204,25 @@ public:
if (results.RowCount() == 1) {
CharacterPetBuffs e{};
e.char_id = row[0] ? static_cast<int32_t>(atoi(row[0])) : 0;
e.pet = row[1] ? static_cast<int32_t>(atoi(row[1])) : 0;
e.slot = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
e.spell_id = row[3] ? static_cast<int32_t>(atoi(row[3])) : 0;
e.caster_level = row[4] ? static_cast<int8_t>(atoi(row[4])) : 0;
e.castername = row[5] ? row[5] : "";
e.ticsremaining = row[6] ? static_cast<int32_t>(atoi(row[6])) : 0;
e.counters = row[7] ? static_cast<int32_t>(atoi(row[7])) : 0;
e.numhits = row[8] ? static_cast<int32_t>(atoi(row[8])) : 0;
e.rune = row[9] ? static_cast<int32_t>(atoi(row[9])) : 0;
e.instrument_mod = row[10] ? static_cast<uint8_t>(strtoul(row[10], nullptr, 10)) : 10;
e.character_id = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
e.pet = row[1] ? static_cast<int32_t>(atoi(row[1])) : 0;
e.slot_id = row[2] ? static_cast<uint8_t>(strtoul(row[2], nullptr, 10)) : 0;
e.spell_id = row[3] ? static_cast<int32_t>(atoi(row[3])) : 0;
e.caster_level = row[4] ? static_cast<uint8_t>(strtoul(row[4], nullptr, 10)) : 0;
e.caster_name = row[5] ? row[5] : "";
e.ticsremaining = row[6] ? static_cast<int32_t>(atoi(row[6])) : 0;
e.initialduration = row[7] ? static_cast<int32_t>(atoi(row[7])) : 0;
e.counters = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.numhits = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.melee_rune = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.magic_rune = row[11] ? static_cast<uint32_t>(strtoul(row[11], nullptr, 10)) : 0;
e.persistent = row[12] ? static_cast<uint8_t>(strtoul(row[12], nullptr, 10)) : 0;
e.dot_rune = row[13] ? static_cast<uint32_t>(strtoul(row[13], nullptr, 10)) : 0;
e.caston_x = row[14] ? static_cast<int32_t>(atoi(row[14])) : 0;
e.caston_y = row[15] ? static_cast<int32_t>(atoi(row[15])) : 0;
e.caston_z = row[16] ? static_cast<int32_t>(atoi(row[16])) : 0;
e.ExtraDIChance = row[17] ? static_cast<int32_t>(atoi(row[17])) : 0;
e.instrument_mod = row[18] ? static_cast<uint32_t>(strtoul(row[18], nullptr, 10)) : 10;
return e;
}
@@ -216,17 +256,25 @@ public:
auto columns = Columns();
v.push_back(columns[0] + " = " + std::to_string(e.char_id));
v.push_back(columns[0] + " = " + std::to_string(e.character_id));
v.push_back(columns[1] + " = " + std::to_string(e.pet));
v.push_back(columns[2] + " = " + std::to_string(e.slot));
v.push_back(columns[2] + " = " + std::to_string(e.slot_id));
v.push_back(columns[3] + " = " + std::to_string(e.spell_id));
v.push_back(columns[4] + " = " + std::to_string(e.caster_level));
v.push_back(columns[5] + " = '" + Strings::Escape(e.castername) + "'");
v.push_back(columns[5] + " = '" + Strings::Escape(e.caster_name) + "'");
v.push_back(columns[6] + " = " + std::to_string(e.ticsremaining));
v.push_back(columns[7] + " = " + std::to_string(e.counters));
v.push_back(columns[8] + " = " + std::to_string(e.numhits));
v.push_back(columns[9] + " = " + std::to_string(e.rune));
v.push_back(columns[10] + " = " + std::to_string(e.instrument_mod));
v.push_back(columns[7] + " = " + std::to_string(e.initialduration));
v.push_back(columns[8] + " = " + std::to_string(e.counters));
v.push_back(columns[9] + " = " + std::to_string(e.numhits));
v.push_back(columns[10] + " = " + std::to_string(e.melee_rune));
v.push_back(columns[11] + " = " + std::to_string(e.magic_rune));
v.push_back(columns[12] + " = " + std::to_string(e.persistent));
v.push_back(columns[13] + " = " + std::to_string(e.dot_rune));
v.push_back(columns[14] + " = " + std::to_string(e.caston_x));
v.push_back(columns[15] + " = " + std::to_string(e.caston_y));
v.push_back(columns[16] + " = " + std::to_string(e.caston_z));
v.push_back(columns[17] + " = " + std::to_string(e.ExtraDIChance));
v.push_back(columns[18] + " = " + std::to_string(e.instrument_mod));
auto results = db.QueryDatabase(
fmt::format(
@@ -234,7 +282,7 @@ public:
TableName(),
Strings::Implode(", ", v),
PrimaryKey(),
e.char_id
e.character_id
)
);
@@ -248,16 +296,24 @@ public:
{
std::vector<std::string> v;
v.push_back(std::to_string(e.char_id));
v.push_back(std::to_string(e.character_id));
v.push_back(std::to_string(e.pet));
v.push_back(std::to_string(e.slot));
v.push_back(std::to_string(e.slot_id));
v.push_back(std::to_string(e.spell_id));
v.push_back(std::to_string(e.caster_level));
v.push_back("'" + Strings::Escape(e.castername) + "'");
v.push_back("'" + Strings::Escape(e.caster_name) + "'");
v.push_back(std::to_string(e.ticsremaining));
v.push_back(std::to_string(e.initialduration));
v.push_back(std::to_string(e.counters));
v.push_back(std::to_string(e.numhits));
v.push_back(std::to_string(e.rune));
v.push_back(std::to_string(e.melee_rune));
v.push_back(std::to_string(e.magic_rune));
v.push_back(std::to_string(e.persistent));
v.push_back(std::to_string(e.dot_rune));
v.push_back(std::to_string(e.caston_x));
v.push_back(std::to_string(e.caston_y));
v.push_back(std::to_string(e.caston_z));
v.push_back(std::to_string(e.ExtraDIChance));
v.push_back(std::to_string(e.instrument_mod));
auto results = db.QueryDatabase(
@@ -269,7 +325,7 @@ public:
);
if (results.Success()) {
e.char_id = results.LastInsertedID();
e.character_id = results.LastInsertedID();
return e;
}
@@ -288,16 +344,24 @@ public:
for (auto &e: entries) {
std::vector<std::string> v;
v.push_back(std::to_string(e.char_id));
v.push_back(std::to_string(e.character_id));
v.push_back(std::to_string(e.pet));
v.push_back(std::to_string(e.slot));
v.push_back(std::to_string(e.slot_id));
v.push_back(std::to_string(e.spell_id));
v.push_back(std::to_string(e.caster_level));
v.push_back("'" + Strings::Escape(e.castername) + "'");
v.push_back("'" + Strings::Escape(e.caster_name) + "'");
v.push_back(std::to_string(e.ticsremaining));
v.push_back(std::to_string(e.initialduration));
v.push_back(std::to_string(e.counters));
v.push_back(std::to_string(e.numhits));
v.push_back(std::to_string(e.rune));
v.push_back(std::to_string(e.melee_rune));
v.push_back(std::to_string(e.magic_rune));
v.push_back(std::to_string(e.persistent));
v.push_back(std::to_string(e.dot_rune));
v.push_back(std::to_string(e.caston_x));
v.push_back(std::to_string(e.caston_y));
v.push_back(std::to_string(e.caston_z));
v.push_back(std::to_string(e.ExtraDIChance));
v.push_back(std::to_string(e.instrument_mod));
insert_chunks.push_back("(" + Strings::Implode(",", v) + ")");
@@ -332,17 +396,25 @@ public:
for (auto row = results.begin(); row != results.end(); ++row) {
CharacterPetBuffs e{};
e.char_id = row[0] ? static_cast<int32_t>(atoi(row[0])) : 0;
e.pet = row[1] ? static_cast<int32_t>(atoi(row[1])) : 0;
e.slot = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
e.spell_id = row[3] ? static_cast<int32_t>(atoi(row[3])) : 0;
e.caster_level = row[4] ? static_cast<int8_t>(atoi(row[4])) : 0;
e.castername = row[5] ? row[5] : "";
e.ticsremaining = row[6] ? static_cast<int32_t>(atoi(row[6])) : 0;
e.counters = row[7] ? static_cast<int32_t>(atoi(row[7])) : 0;
e.numhits = row[8] ? static_cast<int32_t>(atoi(row[8])) : 0;
e.rune = row[9] ? static_cast<int32_t>(atoi(row[9])) : 0;
e.instrument_mod = row[10] ? static_cast<uint8_t>(strtoul(row[10], nullptr, 10)) : 10;
e.character_id = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
e.pet = row[1] ? static_cast<int32_t>(atoi(row[1])) : 0;
e.slot_id = row[2] ? static_cast<uint8_t>(strtoul(row[2], nullptr, 10)) : 0;
e.spell_id = row[3] ? static_cast<int32_t>(atoi(row[3])) : 0;
e.caster_level = row[4] ? static_cast<uint8_t>(strtoul(row[4], nullptr, 10)) : 0;
e.caster_name = row[5] ? row[5] : "";
e.ticsremaining = row[6] ? static_cast<int32_t>(atoi(row[6])) : 0;
e.initialduration = row[7] ? static_cast<int32_t>(atoi(row[7])) : 0;
e.counters = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.numhits = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.melee_rune = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.magic_rune = row[11] ? static_cast<uint32_t>(strtoul(row[11], nullptr, 10)) : 0;
e.persistent = row[12] ? static_cast<uint8_t>(strtoul(row[12], nullptr, 10)) : 0;
e.dot_rune = row[13] ? static_cast<uint32_t>(strtoul(row[13], nullptr, 10)) : 0;
e.caston_x = row[14] ? static_cast<int32_t>(atoi(row[14])) : 0;
e.caston_y = row[15] ? static_cast<int32_t>(atoi(row[15])) : 0;
e.caston_z = row[16] ? static_cast<int32_t>(atoi(row[16])) : 0;
e.ExtraDIChance = row[17] ? static_cast<int32_t>(atoi(row[17])) : 0;
e.instrument_mod = row[18] ? static_cast<uint32_t>(strtoul(row[18], nullptr, 10)) : 10;
all_entries.push_back(e);
}
@@ -367,17 +439,25 @@ public:
for (auto row = results.begin(); row != results.end(); ++row) {
CharacterPetBuffs e{};
e.char_id = row[0] ? static_cast<int32_t>(atoi(row[0])) : 0;
e.pet = row[1] ? static_cast<int32_t>(atoi(row[1])) : 0;
e.slot = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
e.spell_id = row[3] ? static_cast<int32_t>(atoi(row[3])) : 0;
e.caster_level = row[4] ? static_cast<int8_t>(atoi(row[4])) : 0;
e.castername = row[5] ? row[5] : "";
e.ticsremaining = row[6] ? static_cast<int32_t>(atoi(row[6])) : 0;
e.counters = row[7] ? static_cast<int32_t>(atoi(row[7])) : 0;
e.numhits = row[8] ? static_cast<int32_t>(atoi(row[8])) : 0;
e.rune = row[9] ? static_cast<int32_t>(atoi(row[9])) : 0;
e.instrument_mod = row[10] ? static_cast<uint8_t>(strtoul(row[10], nullptr, 10)) : 10;
e.character_id = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
e.pet = row[1] ? static_cast<int32_t>(atoi(row[1])) : 0;
e.slot_id = row[2] ? static_cast<uint8_t>(strtoul(row[2], nullptr, 10)) : 0;
e.spell_id = row[3] ? static_cast<int32_t>(atoi(row[3])) : 0;
e.caster_level = row[4] ? static_cast<uint8_t>(strtoul(row[4], nullptr, 10)) : 0;
e.caster_name = row[5] ? row[5] : "";
e.ticsremaining = row[6] ? static_cast<int32_t>(atoi(row[6])) : 0;
e.initialduration = row[7] ? static_cast<int32_t>(atoi(row[7])) : 0;
e.counters = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.numhits = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.melee_rune = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.magic_rune = row[11] ? static_cast<uint32_t>(strtoul(row[11], nullptr, 10)) : 0;
e.persistent = row[12] ? static_cast<uint8_t>(strtoul(row[12], nullptr, 10)) : 0;
e.dot_rune = row[13] ? static_cast<uint32_t>(strtoul(row[13], nullptr, 10)) : 0;
e.caston_x = row[14] ? static_cast<int32_t>(atoi(row[14])) : 0;
e.caston_y = row[15] ? static_cast<int32_t>(atoi(row[15])) : 0;
e.caston_z = row[16] ? static_cast<int32_t>(atoi(row[16])) : 0;
e.ExtraDIChance = row[17] ? static_cast<int32_t>(atoi(row[17])) : 0;
e.instrument_mod = row[18] ? static_cast<uint32_t>(strtoul(row[18], nullptr, 10)) : 10;
all_entries.push_back(e);
}
@@ -452,16 +532,24 @@ public:
{
std::vector<std::string> v;
v.push_back(std::to_string(e.char_id));
v.push_back(std::to_string(e.character_id));
v.push_back(std::to_string(e.pet));
v.push_back(std::to_string(e.slot));
v.push_back(std::to_string(e.slot_id));
v.push_back(std::to_string(e.spell_id));
v.push_back(std::to_string(e.caster_level));
v.push_back("'" + Strings::Escape(e.castername) + "'");
v.push_back("'" + Strings::Escape(e.caster_name) + "'");
v.push_back(std::to_string(e.ticsremaining));
v.push_back(std::to_string(e.initialduration));
v.push_back(std::to_string(e.counters));
v.push_back(std::to_string(e.numhits));
v.push_back(std::to_string(e.rune));
v.push_back(std::to_string(e.melee_rune));
v.push_back(std::to_string(e.magic_rune));
v.push_back(std::to_string(e.persistent));
v.push_back(std::to_string(e.dot_rune));
v.push_back(std::to_string(e.caston_x));
v.push_back(std::to_string(e.caston_y));
v.push_back(std::to_string(e.caston_z));
v.push_back(std::to_string(e.ExtraDIChance));
v.push_back(std::to_string(e.instrument_mod));
auto results = db.QueryDatabase(
@@ -485,16 +573,24 @@ public:
for (auto &e: entries) {
std::vector<std::string> v;
v.push_back(std::to_string(e.char_id));
v.push_back(std::to_string(e.character_id));
v.push_back(std::to_string(e.pet));
v.push_back(std::to_string(e.slot));
v.push_back(std::to_string(e.slot_id));
v.push_back(std::to_string(e.spell_id));
v.push_back(std::to_string(e.caster_level));
v.push_back("'" + Strings::Escape(e.castername) + "'");
v.push_back("'" + Strings::Escape(e.caster_name) + "'");
v.push_back(std::to_string(e.ticsremaining));
v.push_back(std::to_string(e.initialduration));
v.push_back(std::to_string(e.counters));
v.push_back(std::to_string(e.numhits));
v.push_back(std::to_string(e.rune));
v.push_back(std::to_string(e.melee_rune));
v.push_back(std::to_string(e.magic_rune));
v.push_back(std::to_string(e.persistent));
v.push_back(std::to_string(e.dot_rune));
v.push_back(std::to_string(e.caston_x));
v.push_back(std::to_string(e.caston_y));
v.push_back(std::to_string(e.caston_z));
v.push_back(std::to_string(e.ExtraDIChance));
v.push_back(std::to_string(e.instrument_mod));
insert_chunks.push_back("(" + Strings::Implode(",", v) + ")");
@@ -42,6 +42,7 @@ public:
uint32_t CasterLevel;
uint32_t DurationFormula;
int32_t TicsRemaining;
int32_t InitialDuration;
uint32_t PoisonCounters;
uint32_t DiseaseCounters;
uint32_t CurseCounters;
@@ -49,12 +50,13 @@ public:
uint32_t HitCount;
uint32_t MeleeRune;
uint32_t MagicRune;
int32_t dot_rune;
uint32_t dot_rune;
int32_t caston_x;
int8_t Persistent;
int32_t caston_y;
int32_t caston_z;
int32_t ExtraDIChance;
uint32_t instrument_mod;
};
static std::string PrimaryKey()
@@ -71,6 +73,7 @@ public:
"CasterLevel",
"DurationFormula",
"TicsRemaining",
"InitialDuration",
"PoisonCounters",
"DiseaseCounters",
"CurseCounters",
@@ -84,6 +87,7 @@ public:
"caston_y",
"caston_z",
"ExtraDIChance",
"instrument_mod",
};
}
@@ -96,6 +100,7 @@ public:
"CasterLevel",
"DurationFormula",
"TicsRemaining",
"InitialDuration",
"PoisonCounters",
"DiseaseCounters",
"CurseCounters",
@@ -109,6 +114,7 @@ public:
"caston_y",
"caston_z",
"ExtraDIChance",
"instrument_mod",
};
}
@@ -155,6 +161,7 @@ public:
e.CasterLevel = 0;
e.DurationFormula = 0;
e.TicsRemaining = 0;
e.InitialDuration = 0;
e.PoisonCounters = 0;
e.DiseaseCounters = 0;
e.CurseCounters = 0;
@@ -168,6 +175,7 @@ public:
e.caston_y = 0;
e.caston_z = 0;
e.ExtraDIChance = 0;
e.instrument_mod = 10;
return e;
}
@@ -210,19 +218,21 @@ public:
e.CasterLevel = row[3] ? static_cast<uint32_t>(strtoul(row[3], nullptr, 10)) : 0;
e.DurationFormula = row[4] ? static_cast<uint32_t>(strtoul(row[4], nullptr, 10)) : 0;
e.TicsRemaining = row[5] ? static_cast<int32_t>(atoi(row[5])) : 0;
e.PoisonCounters = row[6] ? static_cast<uint32_t>(strtoul(row[6], nullptr, 10)) : 0;
e.DiseaseCounters = row[7] ? static_cast<uint32_t>(strtoul(row[7], nullptr, 10)) : 0;
e.CurseCounters = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.CorruptionCounters = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.HitCount = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.MeleeRune = row[11] ? static_cast<uint32_t>(strtoul(row[11], nullptr, 10)) : 0;
e.MagicRune = row[12] ? static_cast<uint32_t>(strtoul(row[12], nullptr, 10)) : 0;
e.dot_rune = row[13] ? static_cast<int32_t>(atoi(row[13])) : 0;
e.caston_x = row[14] ? static_cast<int32_t>(atoi(row[14])) : 0;
e.Persistent = row[15] ? static_cast<int8_t>(atoi(row[15])) : 0;
e.caston_y = row[16] ? static_cast<int32_t>(atoi(row[16])) : 0;
e.caston_z = row[17] ? static_cast<int32_t>(atoi(row[17])) : 0;
e.ExtraDIChance = row[18] ? static_cast<int32_t>(atoi(row[18])) : 0;
e.InitialDuration = row[6] ? static_cast<int32_t>(atoi(row[6])) : 0;
e.PoisonCounters = row[7] ? static_cast<uint32_t>(strtoul(row[7], nullptr, 10)) : 0;
e.DiseaseCounters = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.CurseCounters = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.CorruptionCounters = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.HitCount = row[11] ? static_cast<uint32_t>(strtoul(row[11], nullptr, 10)) : 0;
e.MeleeRune = row[12] ? static_cast<uint32_t>(strtoul(row[12], nullptr, 10)) : 0;
e.MagicRune = row[13] ? static_cast<uint32_t>(strtoul(row[13], nullptr, 10)) : 0;
e.dot_rune = row[14] ? static_cast<uint32_t>(strtoul(row[14], nullptr, 10)) : 0;
e.caston_x = row[15] ? static_cast<int32_t>(atoi(row[15])) : 0;
e.Persistent = row[16] ? static_cast<int8_t>(atoi(row[16])) : 0;
e.caston_y = row[17] ? static_cast<int32_t>(atoi(row[17])) : 0;
e.caston_z = row[18] ? static_cast<int32_t>(atoi(row[18])) : 0;
e.ExtraDIChance = row[19] ? static_cast<int32_t>(atoi(row[19])) : 0;
e.instrument_mod = row[20] ? static_cast<uint32_t>(strtoul(row[20], nullptr, 10)) : 10;
return e;
}
@@ -261,19 +271,21 @@ public:
v.push_back(columns[3] + " = " + std::to_string(e.CasterLevel));
v.push_back(columns[4] + " = " + std::to_string(e.DurationFormula));
v.push_back(columns[5] + " = " + std::to_string(e.TicsRemaining));
v.push_back(columns[6] + " = " + std::to_string(e.PoisonCounters));
v.push_back(columns[7] + " = " + std::to_string(e.DiseaseCounters));
v.push_back(columns[8] + " = " + std::to_string(e.CurseCounters));
v.push_back(columns[9] + " = " + std::to_string(e.CorruptionCounters));
v.push_back(columns[10] + " = " + std::to_string(e.HitCount));
v.push_back(columns[11] + " = " + std::to_string(e.MeleeRune));
v.push_back(columns[12] + " = " + std::to_string(e.MagicRune));
v.push_back(columns[13] + " = " + std::to_string(e.dot_rune));
v.push_back(columns[14] + " = " + std::to_string(e.caston_x));
v.push_back(columns[15] + " = " + std::to_string(e.Persistent));
v.push_back(columns[16] + " = " + std::to_string(e.caston_y));
v.push_back(columns[17] + " = " + std::to_string(e.caston_z));
v.push_back(columns[18] + " = " + std::to_string(e.ExtraDIChance));
v.push_back(columns[6] + " = " + std::to_string(e.InitialDuration));
v.push_back(columns[7] + " = " + std::to_string(e.PoisonCounters));
v.push_back(columns[8] + " = " + std::to_string(e.DiseaseCounters));
v.push_back(columns[9] + " = " + std::to_string(e.CurseCounters));
v.push_back(columns[10] + " = " + std::to_string(e.CorruptionCounters));
v.push_back(columns[11] + " = " + std::to_string(e.HitCount));
v.push_back(columns[12] + " = " + std::to_string(e.MeleeRune));
v.push_back(columns[13] + " = " + std::to_string(e.MagicRune));
v.push_back(columns[14] + " = " + std::to_string(e.dot_rune));
v.push_back(columns[15] + " = " + std::to_string(e.caston_x));
v.push_back(columns[16] + " = " + std::to_string(e.Persistent));
v.push_back(columns[17] + " = " + std::to_string(e.caston_y));
v.push_back(columns[18] + " = " + std::to_string(e.caston_z));
v.push_back(columns[19] + " = " + std::to_string(e.ExtraDIChance));
v.push_back(columns[20] + " = " + std::to_string(e.instrument_mod));
auto results = db.QueryDatabase(
fmt::format(
@@ -301,6 +313,7 @@ public:
v.push_back(std::to_string(e.CasterLevel));
v.push_back(std::to_string(e.DurationFormula));
v.push_back(std::to_string(e.TicsRemaining));
v.push_back(std::to_string(e.InitialDuration));
v.push_back(std::to_string(e.PoisonCounters));
v.push_back(std::to_string(e.DiseaseCounters));
v.push_back(std::to_string(e.CurseCounters));
@@ -314,6 +327,7 @@ public:
v.push_back(std::to_string(e.caston_y));
v.push_back(std::to_string(e.caston_z));
v.push_back(std::to_string(e.ExtraDIChance));
v.push_back(std::to_string(e.instrument_mod));
auto results = db.QueryDatabase(
fmt::format(
@@ -349,6 +363,7 @@ public:
v.push_back(std::to_string(e.CasterLevel));
v.push_back(std::to_string(e.DurationFormula));
v.push_back(std::to_string(e.TicsRemaining));
v.push_back(std::to_string(e.InitialDuration));
v.push_back(std::to_string(e.PoisonCounters));
v.push_back(std::to_string(e.DiseaseCounters));
v.push_back(std::to_string(e.CurseCounters));
@@ -362,6 +377,7 @@ public:
v.push_back(std::to_string(e.caston_y));
v.push_back(std::to_string(e.caston_z));
v.push_back(std::to_string(e.ExtraDIChance));
v.push_back(std::to_string(e.instrument_mod));
insert_chunks.push_back("(" + Strings::Implode(",", v) + ")");
}
@@ -401,19 +417,21 @@ public:
e.CasterLevel = row[3] ? static_cast<uint32_t>(strtoul(row[3], nullptr, 10)) : 0;
e.DurationFormula = row[4] ? static_cast<uint32_t>(strtoul(row[4], nullptr, 10)) : 0;
e.TicsRemaining = row[5] ? static_cast<int32_t>(atoi(row[5])) : 0;
e.PoisonCounters = row[6] ? static_cast<uint32_t>(strtoul(row[6], nullptr, 10)) : 0;
e.DiseaseCounters = row[7] ? static_cast<uint32_t>(strtoul(row[7], nullptr, 10)) : 0;
e.CurseCounters = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.CorruptionCounters = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.HitCount = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.MeleeRune = row[11] ? static_cast<uint32_t>(strtoul(row[11], nullptr, 10)) : 0;
e.MagicRune = row[12] ? static_cast<uint32_t>(strtoul(row[12], nullptr, 10)) : 0;
e.dot_rune = row[13] ? static_cast<int32_t>(atoi(row[13])) : 0;
e.caston_x = row[14] ? static_cast<int32_t>(atoi(row[14])) : 0;
e.Persistent = row[15] ? static_cast<int8_t>(atoi(row[15])) : 0;
e.caston_y = row[16] ? static_cast<int32_t>(atoi(row[16])) : 0;
e.caston_z = row[17] ? static_cast<int32_t>(atoi(row[17])) : 0;
e.ExtraDIChance = row[18] ? static_cast<int32_t>(atoi(row[18])) : 0;
e.InitialDuration = row[6] ? static_cast<int32_t>(atoi(row[6])) : 0;
e.PoisonCounters = row[7] ? static_cast<uint32_t>(strtoul(row[7], nullptr, 10)) : 0;
e.DiseaseCounters = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.CurseCounters = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.CorruptionCounters = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.HitCount = row[11] ? static_cast<uint32_t>(strtoul(row[11], nullptr, 10)) : 0;
e.MeleeRune = row[12] ? static_cast<uint32_t>(strtoul(row[12], nullptr, 10)) : 0;
e.MagicRune = row[13] ? static_cast<uint32_t>(strtoul(row[13], nullptr, 10)) : 0;
e.dot_rune = row[14] ? static_cast<uint32_t>(strtoul(row[14], nullptr, 10)) : 0;
e.caston_x = row[15] ? static_cast<int32_t>(atoi(row[15])) : 0;
e.Persistent = row[16] ? static_cast<int8_t>(atoi(row[16])) : 0;
e.caston_y = row[17] ? static_cast<int32_t>(atoi(row[17])) : 0;
e.caston_z = row[18] ? static_cast<int32_t>(atoi(row[18])) : 0;
e.ExtraDIChance = row[19] ? static_cast<int32_t>(atoi(row[19])) : 0;
e.instrument_mod = row[20] ? static_cast<uint32_t>(strtoul(row[20], nullptr, 10)) : 10;
all_entries.push_back(e);
}
@@ -444,19 +462,21 @@ public:
e.CasterLevel = row[3] ? static_cast<uint32_t>(strtoul(row[3], nullptr, 10)) : 0;
e.DurationFormula = row[4] ? static_cast<uint32_t>(strtoul(row[4], nullptr, 10)) : 0;
e.TicsRemaining = row[5] ? static_cast<int32_t>(atoi(row[5])) : 0;
e.PoisonCounters = row[6] ? static_cast<uint32_t>(strtoul(row[6], nullptr, 10)) : 0;
e.DiseaseCounters = row[7] ? static_cast<uint32_t>(strtoul(row[7], nullptr, 10)) : 0;
e.CurseCounters = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.CorruptionCounters = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.HitCount = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.MeleeRune = row[11] ? static_cast<uint32_t>(strtoul(row[11], nullptr, 10)) : 0;
e.MagicRune = row[12] ? static_cast<uint32_t>(strtoul(row[12], nullptr, 10)) : 0;
e.dot_rune = row[13] ? static_cast<int32_t>(atoi(row[13])) : 0;
e.caston_x = row[14] ? static_cast<int32_t>(atoi(row[14])) : 0;
e.Persistent = row[15] ? static_cast<int8_t>(atoi(row[15])) : 0;
e.caston_y = row[16] ? static_cast<int32_t>(atoi(row[16])) : 0;
e.caston_z = row[17] ? static_cast<int32_t>(atoi(row[17])) : 0;
e.ExtraDIChance = row[18] ? static_cast<int32_t>(atoi(row[18])) : 0;
e.InitialDuration = row[6] ? static_cast<int32_t>(atoi(row[6])) : 0;
e.PoisonCounters = row[7] ? static_cast<uint32_t>(strtoul(row[7], nullptr, 10)) : 0;
e.DiseaseCounters = row[8] ? static_cast<uint32_t>(strtoul(row[8], nullptr, 10)) : 0;
e.CurseCounters = row[9] ? static_cast<uint32_t>(strtoul(row[9], nullptr, 10)) : 0;
e.CorruptionCounters = row[10] ? static_cast<uint32_t>(strtoul(row[10], nullptr, 10)) : 0;
e.HitCount = row[11] ? static_cast<uint32_t>(strtoul(row[11], nullptr, 10)) : 0;
e.MeleeRune = row[12] ? static_cast<uint32_t>(strtoul(row[12], nullptr, 10)) : 0;
e.MagicRune = row[13] ? static_cast<uint32_t>(strtoul(row[13], nullptr, 10)) : 0;
e.dot_rune = row[14] ? static_cast<uint32_t>(strtoul(row[14], nullptr, 10)) : 0;
e.caston_x = row[15] ? static_cast<int32_t>(atoi(row[15])) : 0;
e.Persistent = row[16] ? static_cast<int8_t>(atoi(row[16])) : 0;
e.caston_y = row[17] ? static_cast<int32_t>(atoi(row[17])) : 0;
e.caston_z = row[18] ? static_cast<int32_t>(atoi(row[18])) : 0;
e.ExtraDIChance = row[19] ? static_cast<int32_t>(atoi(row[19])) : 0;
e.instrument_mod = row[20] ? static_cast<uint32_t>(strtoul(row[20], nullptr, 10)) : 10;
all_entries.push_back(e);
}
@@ -537,6 +557,7 @@ public:
v.push_back(std::to_string(e.CasterLevel));
v.push_back(std::to_string(e.DurationFormula));
v.push_back(std::to_string(e.TicsRemaining));
v.push_back(std::to_string(e.InitialDuration));
v.push_back(std::to_string(e.PoisonCounters));
v.push_back(std::to_string(e.DiseaseCounters));
v.push_back(std::to_string(e.CurseCounters));
@@ -550,6 +571,7 @@ public:
v.push_back(std::to_string(e.caston_y));
v.push_back(std::to_string(e.caston_z));
v.push_back(std::to_string(e.ExtraDIChance));
v.push_back(std::to_string(e.instrument_mod));
auto results = db.QueryDatabase(
fmt::format(
@@ -578,6 +600,7 @@ public:
v.push_back(std::to_string(e.CasterLevel));
v.push_back(std::to_string(e.DurationFormula));
v.push_back(std::to_string(e.TicsRemaining));
v.push_back(std::to_string(e.InitialDuration));
v.push_back(std::to_string(e.PoisonCounters));
v.push_back(std::to_string(e.DiseaseCounters));
v.push_back(std::to_string(e.CurseCounters));
@@ -591,6 +614,7 @@ public:
v.push_back(std::to_string(e.caston_y));
v.push_back(std::to_string(e.caston_z));
v.push_back(std::to_string(e.ExtraDIChance));
v.push_back(std::to_string(e.instrument_mod));
insert_chunks.push_back("(" + Strings::Implode(",", v) + ")");
}
+2 -2
View File
@@ -38,6 +38,6 @@
* Manifest: https://github.com/EQEmu/Server/blob/master/utils/sql/db_update_manifest.txt
*/
#define CURRENT_BINARY_DATABASE_VERSION 9329
#define CURRENT_BINARY_BOTS_DATABASE_VERSION 9056
#define CURRENT_BINARY_DATABASE_VERSION 9330
#define CURRENT_BINARY_BOTS_DATABASE_VERSION 9057
#define CUSTOM_BINARY_DATABASE_VERSION 0