mirror of
https://github.com/EQEmu/Server.git
synced 2026-03-22 18:02:25 +00:00
[Merchants] Change database structure for merchant slots (#3974)
* [Merchants] Change database structure for merchant slots The `slot` field should be unsigned int. The temp slot is currently limited to 127. The client will limit the visible slots. * Update version.h
This commit is contained in:
parent
f3073b463f
commit
e40267b9b8
@ -5198,6 +5198,29 @@ ADD COLUMN `idle_when_empty` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 AFTER `min_l
|
|||||||
ADD COLUMN `seconds_before_idle` int(11) UNSIGNED NOT NULL DEFAULT 60 AFTER `idle_when_empty`;
|
ADD COLUMN `seconds_before_idle` int(11) UNSIGNED NOT NULL DEFAULT 60 AFTER `idle_when_empty`;
|
||||||
)",
|
)",
|
||||||
.content_schema_update = true
|
.content_schema_update = true
|
||||||
|
},
|
||||||
|
ManifestEntry{
|
||||||
|
.version = 9253,
|
||||||
|
.description = "2024_01_13_merchantlist_slot.sql",
|
||||||
|
.check = "SHOW COLUMNS FROM `merchantlist` LIKE 'slot'",
|
||||||
|
.condition = "missing",
|
||||||
|
.match = "unsigned",
|
||||||
|
.sql = R"(
|
||||||
|
ALTER TABLE `merchantlist`
|
||||||
|
MODIFY COLUMN `slot` int(11) UNSIGNED NOT NULL DEFAULT 0
|
||||||
|
)",
|
||||||
|
.content_schema_update = true
|
||||||
|
},
|
||||||
|
ManifestEntry{
|
||||||
|
.version = 9254,
|
||||||
|
.description = "2024_01_13_merchantlist_temp_slot.sql",
|
||||||
|
.check = "SHOW COLUMNS FROM `merchantlist_temp` LIKE 'slot'",
|
||||||
|
.condition = "contains",
|
||||||
|
.match = "tinyint",
|
||||||
|
.sql = R"(
|
||||||
|
ALTER TABLE `merchantlist_temp`
|
||||||
|
MODIFY COLUMN `slot` int(11) UNSIGNED NOT NULL DEFAULT 0
|
||||||
|
)"
|
||||||
}
|
}
|
||||||
// -- template; copy/paste this when you need to create a new entry
|
// -- template; copy/paste this when you need to create a new entry
|
||||||
// ManifestEntry{
|
// ManifestEntry{
|
||||||
|
|||||||
@ -20,7 +20,7 @@ class BaseMerchantlistRepository {
|
|||||||
public:
|
public:
|
||||||
struct Merchantlist {
|
struct Merchantlist {
|
||||||
int32_t merchantid;
|
int32_t merchantid;
|
||||||
int32_t slot;
|
uint32_t slot;
|
||||||
int32_t item;
|
int32_t item;
|
||||||
int16_t faction_required;
|
int16_t faction_required;
|
||||||
uint8_t level_required;
|
uint8_t level_required;
|
||||||
@ -179,21 +179,21 @@ public:
|
|||||||
if (results.RowCount() == 1) {
|
if (results.RowCount() == 1) {
|
||||||
Merchantlist e{};
|
Merchantlist e{};
|
||||||
|
|
||||||
e.merchantid = static_cast<int32_t>(atoi(row[0]));
|
e.merchantid = row[0] ? static_cast<int32_t>(atoi(row[0])) : 0;
|
||||||
e.slot = static_cast<int32_t>(atoi(row[1]));
|
e.slot = row[1] ? static_cast<uint32_t>(strtoul(row[1], nullptr, 10)) : 0;
|
||||||
e.item = static_cast<int32_t>(atoi(row[2]));
|
e.item = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
|
||||||
e.faction_required = static_cast<int16_t>(atoi(row[3]));
|
e.faction_required = row[3] ? static_cast<int16_t>(atoi(row[3])) : -100;
|
||||||
e.level_required = row[4] ? static_cast<uint8_t>(strtoul(row[4], nullptr, 10)) : 0;
|
e.level_required = row[4] ? static_cast<uint8_t>(strtoul(row[4], nullptr, 10)) : 0;
|
||||||
e.min_status = row[5] ? static_cast<uint8_t>(strtoul(row[5], nullptr, 10)) : 0;
|
e.min_status = row[5] ? static_cast<uint8_t>(strtoul(row[5], nullptr, 10)) : 0;
|
||||||
e.max_status = row[6] ? static_cast<uint8_t>(strtoul(row[6], nullptr, 10)) : 255;
|
e.max_status = row[6] ? static_cast<uint8_t>(strtoul(row[6], nullptr, 10)) : 255;
|
||||||
e.alt_currency_cost = row[7] ? static_cast<uint16_t>(strtoul(row[7], nullptr, 10)) : 0;
|
e.alt_currency_cost = row[7] ? static_cast<uint16_t>(strtoul(row[7], nullptr, 10)) : 0;
|
||||||
e.classes_required = static_cast<int32_t>(atoi(row[8]));
|
e.classes_required = row[8] ? static_cast<int32_t>(atoi(row[8])) : 65535;
|
||||||
e.probability = static_cast<int32_t>(atoi(row[9]));
|
e.probability = row[9] ? static_cast<int32_t>(atoi(row[9])) : 100;
|
||||||
e.bucket_name = row[10] ? row[10] : "";
|
e.bucket_name = row[10] ? row[10] : "";
|
||||||
e.bucket_value = row[11] ? row[11] : "";
|
e.bucket_value = row[11] ? row[11] : "";
|
||||||
e.bucket_comparison = row[12] ? static_cast<uint8_t>(strtoul(row[12], nullptr, 10)) : 0;
|
e.bucket_comparison = row[12] ? static_cast<uint8_t>(strtoul(row[12], nullptr, 10)) : 0;
|
||||||
e.min_expansion = static_cast<int8_t>(atoi(row[13]));
|
e.min_expansion = row[13] ? static_cast<int8_t>(atoi(row[13])) : -1;
|
||||||
e.max_expansion = static_cast<int8_t>(atoi(row[14]));
|
e.max_expansion = row[14] ? static_cast<int8_t>(atoi(row[14])) : -1;
|
||||||
e.content_flags = row[15] ? row[15] : "";
|
e.content_flags = row[15] ? row[15] : "";
|
||||||
e.content_flags_disabled = row[16] ? row[16] : "";
|
e.content_flags_disabled = row[16] ? row[16] : "";
|
||||||
|
|
||||||
@ -363,21 +363,21 @@ public:
|
|||||||
for (auto row = results.begin(); row != results.end(); ++row) {
|
for (auto row = results.begin(); row != results.end(); ++row) {
|
||||||
Merchantlist e{};
|
Merchantlist e{};
|
||||||
|
|
||||||
e.merchantid = static_cast<int32_t>(atoi(row[0]));
|
e.merchantid = row[0] ? static_cast<int32_t>(atoi(row[0])) : 0;
|
||||||
e.slot = static_cast<int32_t>(atoi(row[1]));
|
e.slot = row[1] ? static_cast<uint32_t>(strtoul(row[1], nullptr, 10)) : 0;
|
||||||
e.item = static_cast<int32_t>(atoi(row[2]));
|
e.item = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
|
||||||
e.faction_required = static_cast<int16_t>(atoi(row[3]));
|
e.faction_required = row[3] ? static_cast<int16_t>(atoi(row[3])) : -100;
|
||||||
e.level_required = row[4] ? static_cast<uint8_t>(strtoul(row[4], nullptr, 10)) : 0;
|
e.level_required = row[4] ? static_cast<uint8_t>(strtoul(row[4], nullptr, 10)) : 0;
|
||||||
e.min_status = row[5] ? static_cast<uint8_t>(strtoul(row[5], nullptr, 10)) : 0;
|
e.min_status = row[5] ? static_cast<uint8_t>(strtoul(row[5], nullptr, 10)) : 0;
|
||||||
e.max_status = row[6] ? static_cast<uint8_t>(strtoul(row[6], nullptr, 10)) : 255;
|
e.max_status = row[6] ? static_cast<uint8_t>(strtoul(row[6], nullptr, 10)) : 255;
|
||||||
e.alt_currency_cost = row[7] ? static_cast<uint16_t>(strtoul(row[7], nullptr, 10)) : 0;
|
e.alt_currency_cost = row[7] ? static_cast<uint16_t>(strtoul(row[7], nullptr, 10)) : 0;
|
||||||
e.classes_required = static_cast<int32_t>(atoi(row[8]));
|
e.classes_required = row[8] ? static_cast<int32_t>(atoi(row[8])) : 65535;
|
||||||
e.probability = static_cast<int32_t>(atoi(row[9]));
|
e.probability = row[9] ? static_cast<int32_t>(atoi(row[9])) : 100;
|
||||||
e.bucket_name = row[10] ? row[10] : "";
|
e.bucket_name = row[10] ? row[10] : "";
|
||||||
e.bucket_value = row[11] ? row[11] : "";
|
e.bucket_value = row[11] ? row[11] : "";
|
||||||
e.bucket_comparison = row[12] ? static_cast<uint8_t>(strtoul(row[12], nullptr, 10)) : 0;
|
e.bucket_comparison = row[12] ? static_cast<uint8_t>(strtoul(row[12], nullptr, 10)) : 0;
|
||||||
e.min_expansion = static_cast<int8_t>(atoi(row[13]));
|
e.min_expansion = row[13] ? static_cast<int8_t>(atoi(row[13])) : -1;
|
||||||
e.max_expansion = static_cast<int8_t>(atoi(row[14]));
|
e.max_expansion = row[14] ? static_cast<int8_t>(atoi(row[14])) : -1;
|
||||||
e.content_flags = row[15] ? row[15] : "";
|
e.content_flags = row[15] ? row[15] : "";
|
||||||
e.content_flags_disabled = row[16] ? row[16] : "";
|
e.content_flags_disabled = row[16] ? row[16] : "";
|
||||||
|
|
||||||
@ -404,21 +404,21 @@ public:
|
|||||||
for (auto row = results.begin(); row != results.end(); ++row) {
|
for (auto row = results.begin(); row != results.end(); ++row) {
|
||||||
Merchantlist e{};
|
Merchantlist e{};
|
||||||
|
|
||||||
e.merchantid = static_cast<int32_t>(atoi(row[0]));
|
e.merchantid = row[0] ? static_cast<int32_t>(atoi(row[0])) : 0;
|
||||||
e.slot = static_cast<int32_t>(atoi(row[1]));
|
e.slot = row[1] ? static_cast<uint32_t>(strtoul(row[1], nullptr, 10)) : 0;
|
||||||
e.item = static_cast<int32_t>(atoi(row[2]));
|
e.item = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
|
||||||
e.faction_required = static_cast<int16_t>(atoi(row[3]));
|
e.faction_required = row[3] ? static_cast<int16_t>(atoi(row[3])) : -100;
|
||||||
e.level_required = row[4] ? static_cast<uint8_t>(strtoul(row[4], nullptr, 10)) : 0;
|
e.level_required = row[4] ? static_cast<uint8_t>(strtoul(row[4], nullptr, 10)) : 0;
|
||||||
e.min_status = row[5] ? static_cast<uint8_t>(strtoul(row[5], nullptr, 10)) : 0;
|
e.min_status = row[5] ? static_cast<uint8_t>(strtoul(row[5], nullptr, 10)) : 0;
|
||||||
e.max_status = row[6] ? static_cast<uint8_t>(strtoul(row[6], nullptr, 10)) : 255;
|
e.max_status = row[6] ? static_cast<uint8_t>(strtoul(row[6], nullptr, 10)) : 255;
|
||||||
e.alt_currency_cost = row[7] ? static_cast<uint16_t>(strtoul(row[7], nullptr, 10)) : 0;
|
e.alt_currency_cost = row[7] ? static_cast<uint16_t>(strtoul(row[7], nullptr, 10)) : 0;
|
||||||
e.classes_required = static_cast<int32_t>(atoi(row[8]));
|
e.classes_required = row[8] ? static_cast<int32_t>(atoi(row[8])) : 65535;
|
||||||
e.probability = static_cast<int32_t>(atoi(row[9]));
|
e.probability = row[9] ? static_cast<int32_t>(atoi(row[9])) : 100;
|
||||||
e.bucket_name = row[10] ? row[10] : "";
|
e.bucket_name = row[10] ? row[10] : "";
|
||||||
e.bucket_value = row[11] ? row[11] : "";
|
e.bucket_value = row[11] ? row[11] : "";
|
||||||
e.bucket_comparison = row[12] ? static_cast<uint8_t>(strtoul(row[12], nullptr, 10)) : 0;
|
e.bucket_comparison = row[12] ? static_cast<uint8_t>(strtoul(row[12], nullptr, 10)) : 0;
|
||||||
e.min_expansion = static_cast<int8_t>(atoi(row[13]));
|
e.min_expansion = row[13] ? static_cast<int8_t>(atoi(row[13])) : -1;
|
||||||
e.max_expansion = static_cast<int8_t>(atoi(row[14]));
|
e.max_expansion = row[14] ? static_cast<int8_t>(atoi(row[14])) : -1;
|
||||||
e.content_flags = row[15] ? row[15] : "";
|
e.content_flags = row[15] ? row[15] : "";
|
||||||
e.content_flags_disabled = row[16] ? row[16] : "";
|
e.content_flags_disabled = row[16] ? row[16] : "";
|
||||||
|
|
||||||
|
|||||||
@ -16,12 +16,11 @@
|
|||||||
#include "../../strings.h"
|
#include "../../strings.h"
|
||||||
#include <ctime>
|
#include <ctime>
|
||||||
|
|
||||||
|
|
||||||
class BaseMerchantlistTempRepository {
|
class BaseMerchantlistTempRepository {
|
||||||
public:
|
public:
|
||||||
struct MerchantlistTemp {
|
struct MerchantlistTemp {
|
||||||
uint32_t npcid;
|
uint32_t npcid;
|
||||||
uint8_t slot;
|
uint32_t slot;
|
||||||
int32_t zone_id;
|
int32_t zone_id;
|
||||||
int32_t instance_id;
|
int32_t instance_id;
|
||||||
uint32_t itemid;
|
uint32_t itemid;
|
||||||
@ -137,9 +136,9 @@ public:
|
|||||||
MerchantlistTemp e{};
|
MerchantlistTemp e{};
|
||||||
|
|
||||||
e.npcid = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
|
e.npcid = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
|
||||||
e.slot = row[1] ? static_cast<uint8_t>(strtoul(row[1], nullptr, 10)) : 0;
|
e.slot = row[1] ? static_cast<uint32_t>(strtoul(row[1], nullptr, 10)) : 0;
|
||||||
e.zone_id = static_cast<int32_t>(atoi(row[2]));
|
e.zone_id = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
|
||||||
e.instance_id = static_cast<int32_t>(atoi(row[3]));
|
e.instance_id = row[3] ? static_cast<int32_t>(atoi(row[3])) : 0;
|
||||||
e.itemid = row[4] ? static_cast<uint32_t>(strtoul(row[4], nullptr, 10)) : 0;
|
e.itemid = row[4] ? static_cast<uint32_t>(strtoul(row[4], nullptr, 10)) : 0;
|
||||||
e.charges = row[5] ? static_cast<uint32_t>(strtoul(row[5], nullptr, 10)) : 1;
|
e.charges = row[5] ? static_cast<uint32_t>(strtoul(row[5], nullptr, 10)) : 1;
|
||||||
|
|
||||||
@ -277,9 +276,9 @@ public:
|
|||||||
MerchantlistTemp e{};
|
MerchantlistTemp e{};
|
||||||
|
|
||||||
e.npcid = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
|
e.npcid = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
|
||||||
e.slot = row[1] ? static_cast<uint8_t>(strtoul(row[1], nullptr, 10)) : 0;
|
e.slot = row[1] ? static_cast<uint32_t>(strtoul(row[1], nullptr, 10)) : 0;
|
||||||
e.zone_id = static_cast<int32_t>(atoi(row[2]));
|
e.zone_id = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
|
||||||
e.instance_id = static_cast<int32_t>(atoi(row[3]));
|
e.instance_id = row[3] ? static_cast<int32_t>(atoi(row[3])) : 0;
|
||||||
e.itemid = row[4] ? static_cast<uint32_t>(strtoul(row[4], nullptr, 10)) : 0;
|
e.itemid = row[4] ? static_cast<uint32_t>(strtoul(row[4], nullptr, 10)) : 0;
|
||||||
e.charges = row[5] ? static_cast<uint32_t>(strtoul(row[5], nullptr, 10)) : 1;
|
e.charges = row[5] ? static_cast<uint32_t>(strtoul(row[5], nullptr, 10)) : 1;
|
||||||
|
|
||||||
@ -307,9 +306,9 @@ public:
|
|||||||
MerchantlistTemp e{};
|
MerchantlistTemp e{};
|
||||||
|
|
||||||
e.npcid = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
|
e.npcid = row[0] ? static_cast<uint32_t>(strtoul(row[0], nullptr, 10)) : 0;
|
||||||
e.slot = row[1] ? static_cast<uint8_t>(strtoul(row[1], nullptr, 10)) : 0;
|
e.slot = row[1] ? static_cast<uint32_t>(strtoul(row[1], nullptr, 10)) : 0;
|
||||||
e.zone_id = static_cast<int32_t>(atoi(row[2]));
|
e.zone_id = row[2] ? static_cast<int32_t>(atoi(row[2])) : 0;
|
||||||
e.instance_id = static_cast<int32_t>(atoi(row[3]));
|
e.instance_id = row[3] ? static_cast<int32_t>(atoi(row[3])) : 0;
|
||||||
e.itemid = row[4] ? static_cast<uint32_t>(strtoul(row[4], nullptr, 10)) : 0;
|
e.itemid = row[4] ? static_cast<uint32_t>(strtoul(row[4], nullptr, 10)) : 0;
|
||||||
e.charges = row[5] ? static_cast<uint32_t>(strtoul(row[5], nullptr, 10)) : 1;
|
e.charges = row[5] ? static_cast<uint32_t>(strtoul(row[5], nullptr, 10)) : 1;
|
||||||
|
|
||||||
|
|||||||
@ -42,7 +42,7 @@
|
|||||||
* Manifest: https://github.com/EQEmu/Server/blob/master/utils/sql/db_update_manifest.txt
|
* Manifest: https://github.com/EQEmu/Server/blob/master/utils/sql/db_update_manifest.txt
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define CURRENT_BINARY_DATABASE_VERSION 9252
|
#define CURRENT_BINARY_DATABASE_VERSION 9254
|
||||||
|
|
||||||
#define CURRENT_BINARY_BOTS_DATABASE_VERSION 9041
|
#define CURRENT_BINARY_BOTS_DATABASE_VERSION 9041
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user