From ffc964b8870c3439d77a9f56ef234f4d17f8a8c8 Mon Sep 17 00:00:00 2001 From: Mitch Freeman <65987027+neckkola@users.noreply.github.com> Date: Fri, 13 Dec 2024 21:24:57 -0400 Subject: [PATCH] migrate to content_db for items_evolving_details migrate to content_db for items_evolving_details --- common/eq_packet_structs.h | 8 +- common/evolving.cpp | 2 +- common/patches/rof2.cpp | 4 +- common/patches/rof2_structs.h | 4 +- common/shareddb.cpp | 4 +- utils/sql/items_evolving_details.sql | 452 +++++++++++++++++++++++++++ zone/evolving.cpp | 161 +++++----- 7 files changed, 546 insertions(+), 89 deletions(-) create mode 100644 utils/sql/items_evolving_details.sql diff --git a/common/eq_packet_structs.h b/common/eq_packet_structs.h index 6db85b5cb9..f1c862751a 100644 --- a/common/eq_packet_structs.h +++ b/common/eq_packet_structs.h @@ -6466,8 +6466,8 @@ struct EvolveXPWindowSend_Struct { /*012*/ uint64 item2_unique_id; /*020*/ uint32 compatibility; /*024*/ uint32 max_transfer_level; - /*028*/ uint8 unknown_028; - /*029*/ uint8 unknown_029; + /*028*/ uint8 item1_present; + /*029*/ uint8 item2_present; /*030*/ std::string serialize_item_1; /*034*/ std::string serialize_item_2; @@ -6480,8 +6480,8 @@ struct EvolveXPWindowSend_Struct { CEREAL_NVP(item2_unique_id), CEREAL_NVP(compatibility), CEREAL_NVP(max_transfer_level), - CEREAL_NVP(unknown_028), - CEREAL_NVP(unknown_029), + CEREAL_NVP(item1_present), + CEREAL_NVP(item2_present), CEREAL_NVP(serialize_item_1), CEREAL_NVP(serialize_item_2) ); diff --git a/common/evolving.cpp b/common/evolving.cpp index db52e707f0..a7150cee2e 100644 --- a/common/evolving.cpp +++ b/common/evolving.cpp @@ -11,7 +11,7 @@ EvolvingItemsManager::EvolvingItemsManager() void EvolvingItemsManager::LoadEvolvingItems() const { - auto const &results = ItemsEvolvingDetailsRepository::All(*m_db); + auto const &results = ItemsEvolvingDetailsRepository::All(*m_content_db); if (results.empty()) { return; diff --git a/common/patches/rof2.cpp b/common/patches/rof2.cpp index 5e8cbf2be5..17a2027ee2 100644 --- a/common/patches/rof2.cpp +++ b/common/patches/rof2.cpp @@ -1380,8 +1380,8 @@ namespace RoF2 data->max_transfer_level = e.max_transfer_level; data->item1_unique_id = e.item1_unique_id; data->item2_unique_id = e.item2_unique_id; - data->unknown_028 = e.unknown_028; - data->unknown_029 = e.unknown_029; + data->item1_present = e.item1_present; + data->item2_present = e.item2_present; memcpy(data->serialize_data, ob.str().data(), ob.size()); dest->QueuePacket(out.get()); diff --git a/common/patches/rof2_structs.h b/common/patches/rof2_structs.h index c6e2e19adf..4a8d277ebe 100644 --- a/common/patches/rof2_structs.h +++ b/common/patches/rof2_structs.h @@ -5446,8 +5446,8 @@ struct EvolveXPWindowSendDetails_Struct { /*012*/ uint64 item2_unique_id; /*020*/ uint32 compatibility; /*024*/ uint32 max_transfer_level; - /*028*/ uint8 unknown_028; - /*029*/ uint8 unknown_029; + /*028*/ uint8 item1_present; + /*029*/ uint8 item2_present; /*030*/ char serialize_data[]; }; diff --git a/common/shareddb.cpp b/common/shareddb.cpp index 709f953d92..aeee3d4e96 100644 --- a/common/shareddb.cpp +++ b/common/shareddb.cpp @@ -660,7 +660,9 @@ bool SharedDatabase::GetInventory(Client *c) // Retrieve character inventory auto results = InventoryRepository::GetWhere(*this, fmt::format("`charid` = '{}' ORDER BY `slotid`", char_id)); - auto e_results = CharacterEvolvingItemsRepository::GetWhere(*this, fmt::format("`char_id` = '{}' AND `deleted_at` IS NULL", char_id)); + auto e_results = CharacterEvolvingItemsRepository::GetWhere( + *this, fmt::format("`char_id` = '{}' AND `deleted_at` IS NULL", char_id) + ); if (results.empty()) { LogError("Error loading inventory for char_id {} from the database.", char_id); diff --git a/utils/sql/items_evolving_details.sql b/utils/sql/items_evolving_details.sql new file mode 100644 index 0000000000..1e4da6a99b --- /dev/null +++ b/utils/sql/items_evolving_details.sql @@ -0,0 +1,452 @@ +CREATE TABLE `items_evolving_details` ( + `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, + `item_evo_id` INT(10) UNSIGNED NULL DEFAULT '0' COMMENT 'items.evoid', + `item_evolve_level` INT(10) UNSIGNED NULL DEFAULT '0' COMMENT 'items.evolvinglevel', + `item_id` INT(10) UNSIGNED NULL DEFAULT '0' COMMENT 'items.id', + `type` INT(10) UNSIGNED NULL DEFAULT '0', + `sub_type` INT(10) UNSIGNED NULL DEFAULT '0', + `required_amount` BIGINT(20) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) +COLLATE='latin1_swedish_ci' +ENGINE=InnoDB +AUTO_INCREMENT=1 +; + +INSERT INTO `items_evolving_details` VALUES (0, 1000, 1, 86900, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1000, 2, 86901, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1000, 3, 86902, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1000, 4, 86903, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1000, 5, 86904, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1001, 1, 86910, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1001, 2, 86911, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1001, 3, 86912, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1001, 4, 86913, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1001, 5, 86914, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1001, 6, 86915, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1001, 7, 86916, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1002, 1, 86920, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1002, 2, 86921, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1002, 3, 86922, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1002, 4, 86923, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1002, 5, 86924, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1002, 6, 86925, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1002, 7, 86926, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1003, 1, 86930, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1003, 2, 86931, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1003, 3, 86932, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1003, 4, 86933, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1003, 5, 86934, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1003, 6, 86935, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1004, 1, 86940, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1004, 2, 86941, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1004, 3, 86942, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1004, 4, 86943, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1004, 5, 86944, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1004, 6, 86945, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1005, 1, 86950, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1005, 2, 86951, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1005, 3, 86952, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1005, 4, 86953, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1005, 5, 86954, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1005, 6, 86955, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1005, 7, 86956, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1006, 1, 86960, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1006, 2, 86961, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1006, 3, 86962, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1006, 4, 86963, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1006, 5, 86964, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1006, 6, 86965, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1006, 7, 86966, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1007, 1, 86970, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1007, 2, 86971, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1007, 3, 86972, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1007, 4, 86973, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1007, 5, 86974, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1007, 6, 86975, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1007, 7, 86976, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1008, 1, 86980, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1008, 2, 86981, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1008, 3, 86982, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1008, 4, 86983, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1008, 5, 86984, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1009, 1, 86990, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1009, 2, 86991, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1009, 3, 86992, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1009, 4, 86993, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1009, 5, 86994, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1009, 6, 86995, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1009, 7, 86996, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1009, 8, 86997, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1009, 9, 86998, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1009, 10, 86999, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1010, 1, 90001, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1010, 2, 90002, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1010, 3, 90003, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1010, 6, 90006, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1010, 7, 90007, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1010, 8, 90008, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1010, 10, 90010, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1050, 1, 89270, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1050, 2, 89271, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1050, 3, 89272, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1050, 4, 89273, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1050, 5, 89274, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1050, 6, 89275, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1051, 1, 89280, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1051, 2, 89281, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1051, 3, 89282, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1051, 4, 89283, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1051, 5, 89284, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1052, 1, 89290, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1052, 2, 89291, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1052, 3, 89292, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1052, 4, 89293, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1052, 5, 89294, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1052, 6, 89295, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1052, 7, 89296, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1053, 1, 89300, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1053, 2, 89301, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1053, 3, 89302, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1053, 4, 89303, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1053, 5, 89304, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1053, 6, 89305, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1053, 7, 89306, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1053, 8, 89307, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1053, 9, 89308, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1054, 1, 89310, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1054, 2, 89311, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1054, 3, 89312, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1054, 4, 89313, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1054, 5, 89314, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1054, 6, 89315, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1055, 1, 89320, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1055, 2, 89321, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1055, 3, 89322, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1055, 4, 89323, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1055, 5, 89324, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1055, 6, 89325, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1055, 7, 89326, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1056, 1, 89330, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1056, 2, 89331, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1056, 3, 89332, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1056, 4, 89333, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1056, 5, 89334, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1057, 1, 89340, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1057, 2, 89341, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1057, 3, 89342, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1057, 4, 89343, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1057, 5, 89344, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1057, 6, 89345, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1057, 7, 89346, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1057, 8, 89347, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1058, 1, 89350, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1058, 2, 89351, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1058, 3, 89352, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1058, 4, 89353, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1058, 5, 89354, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1058, 6, 89355, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1058, 7, 89356, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1059, 1, 89360, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1059, 2, 89361, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1059, 3, 89362, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1060, 1, 89490, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1060, 2, 89491, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1060, 3, 89492, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1061, 1, 89500, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1061, 2, 89501, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1061, 3, 89502, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1062, 1, 89510, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1062, 2, 89511, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1062, 3, 89512, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1063, 1, 89520, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1063, 2, 89521, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1063, 3, 89522, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1064, 1, 89530, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1064, 2, 89531, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1064, 3, 89532, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1065, 1, 89540, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1065, 2, 89541, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1065, 3, 89542, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1066, 1, 89550, 3, 274, 500); +INSERT INTO `items_evolving_details` VALUES (0, 1066, 2, 89551, 3, 274, 1000); +INSERT INTO `items_evolving_details` VALUES (0, 1066, 3, 89552, 3, 274, 2000); +INSERT INTO `items_evolving_details` VALUES (0, 1067, 1, 89560, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1067, 2, 89561, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1067, 3, 89562, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1069, 1, 85571, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1069, 2, 85572, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1069, 3, 85573, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1200, 1, 95001, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1200, 2, 95002, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1200, 3, 95003, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1200, 4, 95004, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1200, 5, 95005, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1200, 6, 95006, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1200, 7, 95007, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1201, 1, 95008, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1201, 2, 95009, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1201, 3, 95010, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1201, 4, 95011, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1201, 5, 95012, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1201, 6, 95013, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1201, 7, 95014, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1202, 1, 95015, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1202, 2, 95016, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1202, 3, 95017, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1202, 4, 95018, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1202, 5, 95019, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1202, 6, 95020, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1202, 7, 95021, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1203, 1, 95022, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1203, 2, 95023, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1203, 3, 95024, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1203, 4, 95025, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1203, 5, 95026, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1203, 6, 95027, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1203, 7, 95028, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1204, 1, 95029, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1204, 2, 95030, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1204, 3, 95031, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1204, 4, 95032, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1204, 5, 95033, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1204, 6, 95034, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1204, 7, 95035, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1205, 1, 95036, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1205, 2, 95037, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1205, 3, 95038, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1205, 4, 95039, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1205, 5, 95040, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1205, 6, 95041, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1205, 7, 95042, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1206, 1, 95043, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1206, 2, 95044, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1206, 3, 95045, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1206, 4, 95046, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1206, 5, 95047, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1206, 6, 95048, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1206, 7, 95049, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1207, 1, 95050, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1207, 2, 95051, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1207, 3, 95052, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1207, 4, 95053, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1207, 5, 95054, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1207, 6, 95055, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1207, 7, 95056, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1208, 1, 95057, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1208, 2, 95058, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1208, 3, 95059, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1208, 4, 95060, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1208, 5, 95061, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1208, 6, 95062, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1208, 7, 95063, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1209, 1, 95064, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1209, 2, 95065, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1209, 3, 95066, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1209, 4, 95067, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1209, 5, 95068, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1209, 6, 95069, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1209, 7, 95070, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1210, 1, 95071, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1210, 2, 95072, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1210, 3, 95073, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1210, 4, 95074, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1210, 5, 95075, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1210, 6, 95076, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1210, 7, 95077, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1211, 1, 85612, 1, 1, 100000); +INSERT INTO `items_evolving_details` VALUES (0, 1211, 2, 85613, 1, 1, 200000); +INSERT INTO `items_evolving_details` VALUES (0, 1211, 3, 85614, 1, 1, 300000); +INSERT INTO `items_evolving_details` VALUES (0, 1214, 1, 80035, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1301, 1, 102700, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1301, 4, 102703, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1302, 1, 102704, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1302, 2, 102705, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1303, 1, 102706, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1303, 2, 102707, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1303, 3, 102708, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1304, 1, 102709, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1304, 5, 102713, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1305, 1, 102714, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1306, 1, 102716, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1306, 5, 102720, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1307, 1, 102721, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1307, 3, 102723, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1308, 1, 102724, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1309, 1, 102727, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1309, 2, 102728, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1310, 1, 102729, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1310, 3, 102731, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1311, 1, 102732, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1311, 4, 102735, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1312, 1, 102736, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1312, 3, 102738, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1313, 1, 102739, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1314, 1, 102743, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1314, 2, 102744, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1314, 3, 102745, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1315, 1, 102746, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1315, 2, 102747, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1316, 1, 102748, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1316, 5, 102752, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1317, 1, 102753, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1318, 1, 102756, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1319, 1, 102759, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1319, 3, 102761, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1320, 1, 102762, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1321, 1, 102765, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1321, 2, 102766, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1321, 3, 102767, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1322, 1, 102768, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1322, 2, 102769, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1322, 3, 102770, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1323, 1, 102771, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1324, 1, 102774, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1400, 1, 102800, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1401, 1, 102807, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1401, 7, 102813, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1402, 1, 102814, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1402, 7, 102820, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1403, 1, 102821, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1404, 1, 102828, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1405, 1, 102835, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1406, 1, 102842, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1408, 1, 109310, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1408, 5, 109314, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1409, 1, 109315, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1409, 5, 109319, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1410, 1, 109320, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1410, 5, 109324, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1411, 1, 109325, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1411, 5, 109329, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1412, 1, 109330, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1412, 5, 109334, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1413, 1, 109335, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1413, 5, 109339, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1414, 1, 109340, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1414, 5, 109344, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1415, 1, 109345, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1415, 5, 109349, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1416, 1, 109350, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1416, 2, 109351, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1416, 5, 109354, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1417, 1, 109355, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1417, 5, 109359, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1418, 1, 109360, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1418, 5, 109364, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1419, 1, 109365, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1419, 3, 109367, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1419, 5, 109369, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1420, 1, 109370, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1420, 5, 109374, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1421, 1, 109375, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1421, 5, 109379, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1422, 1, 109380, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1422, 5, 109384, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1423, 1, 109385, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1423, 2, 109386, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1423, 5, 109389, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 1, 120378, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 2, 120379, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 3, 120380, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 4, 120381, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 5, 120382, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 6, 120383, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 7, 120384, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 8, 120385, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 9, 120386, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 10, 120387, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 11, 120388, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 12, 120389, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 13, 120390, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 14, 120391, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 15, 120392, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 16, 120393, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 17, 120394, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 18, 120395, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 19, 120396, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1436, 20, 120397, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1440, 1, 56992, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1440, 2, 56993, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1440, 3, 56994, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1440, 4, 56995, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1440, 5, 56996, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 1, 132787, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 2, 132788, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 3, 132789, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 4, 132790, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 5, 132791, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 6, 132792, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 7, 132793, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 8, 132794, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 9, 132795, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 10, 132796, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 11, 132797, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 13, 132799, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 14, 132800, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 15, 132801, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 16, 132802, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 17, 132803, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 18, 132804, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 19, 132805, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1441, 20, 132806, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1442, 1, 133137, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1442, 2, 133138, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1442, 3, 133139, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1442, 4, 133140, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1442, 10, 133146, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1442, 11, 133147, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1442, 12, 133148, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1442, 13, 133149, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1442, 14, 133150, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1442, 15, 133151, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1442, 16, 133152, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1442, 17, 133153, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1442, 18, 133154, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1442, 19, 133155, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1442, 20, 133156, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 1, 133406, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 2, 133407, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 3, 133408, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 4, 133409, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 5, 133410, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 6, 133411, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 7, 133412, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 8, 133413, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 9, 133414, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 10, 133415, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 11, 133416, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 12, 133417, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 13, 133418, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 14, 133419, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 15, 133420, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 16, 133421, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 17, 133422, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 18, 133423, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 19, 133424, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1443, 20, 133425, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 1, 94938, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 2, 94939, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 3, 94940, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 4, 94941, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 5, 94942, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 6, 94943, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 7, 94944, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 8, 94945, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 9, 94946, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 10, 94947, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 11, 94948, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 12, 94949, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 13, 94950, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 14, 94951, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 15, 94952, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 16, 94953, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 17, 94954, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 18, 94955, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 19, 94956, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1444, 20, 94957, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1445, 1, 98858, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1445, 2, 98859, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1445, 3, 98860, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1445, 4, 98861, 99, 1, 0); +INSERT INTO `items_evolving_details` VALUES (0, 1445, 5, 98862, 99, 1, 0); diff --git a/zone/evolving.cpp b/zone/evolving.cpp index baf85c1bb4..e5dc9c432b 100644 --- a/zone/evolving.cpp +++ b/zone/evolving.cpp @@ -18,22 +18,22 @@ #include "../common/evolving.h" -#include "../common/global_define.h" -#include "../common/rulesys.h" #include "../common/eq_constants.h" #include "../common/events/player_event_logs.h" +#include "../common/global_define.h" #include "../common/repositories/character_evolving_items_repository.h" +#include "../common/rulesys.h" #include "client.h" -#include "worldserver.h" #include "string_ids.h" +#include "worldserver.h" extern WorldServer worldserver; void Client::DoEvolveItemToggle(const EQApplicationPacket *app) { - const auto in = reinterpret_cast(app->pBuffer); - auto item = CharacterEvolvingItemsRepository::FindOne(database, in->unique_id); + const auto in = reinterpret_cast(app->pBuffer); + auto item = CharacterEvolvingItemsRepository::FindOne(database, in->unique_id); LogEvolveItemDetail( "Character ID [{}] requested to set evolve item with unique id [{}] to status [{}]", @@ -43,12 +43,12 @@ void Client::DoEvolveItemToggle(const EQApplicationPacket *app) ); if (!item.id) { - LogEvolveItemDetail("Character ID [{}] toggle evolve item unique id [{}] failed", CharacterID(), in->unique_id); + LogEvolveItemDetail( + "Character ID [{}] toggle evolve item unique id [{}] failed", CharacterID(), in->unique_id); return; } - item.activated = in->activated; - + item.activated = in->activated; const auto inst = GetInv().GetItem(GetInv().HasItem(item.item_id)); inst->SetEvolveActivated(item.activated ? true : false); @@ -59,11 +59,12 @@ void Client::DoEvolveItemToggle(const EQApplicationPacket *app) void Client::SendEvolvingPacket(const int8 action, const CharacterEvolvingItemsRepository::CharacterEvolvingItems &item) { - auto out = std::make_unique(OP_EvolveItem, sizeof(EvolveItemToggle_Struct)); + auto out = std::make_unique(OP_EvolveItem, sizeof(EvolveItemToggle_Struct)); const auto data = reinterpret_cast(out->pBuffer); LogEvolveItemDetail( - "Character ID [{}] requested info for evolving item with unique id [{}] status [{}] percentage [{}]", + "Character ID [{}] requested info for evolving item with unique id [{}] status [{}] " + "percentage [{}]", CharacterID(), item.id, item.activated, @@ -78,7 +79,8 @@ void Client::SendEvolvingPacket(const int8 action, const CharacterEvolvingItemsR QueuePacket(out.get()); LogEvolveItem( - "Sent evolve item with unique id [{}] status [{}] percentage [{}] to Character ID [{}]", + "Sent evolve item with unique id [{}] status [{}] percentage [{}] to Character ID " + "[{}]", data->unique_id, data->activated, data->percentage, @@ -91,52 +93,49 @@ void Client::ProcessEvolvingItem(const uint64 exp, const Mob *mob) std::vector queue{}; for (auto &[key, inst]: GetInv().GetWorn()) { - LogEvolveItemDetail("CharacterID [{}] found equipped item ID [{}]", CharacterID(), inst->GetID()); + LogEvolveItemDetail( + "CharacterID [{}] found equipped item ID [{}]", CharacterID(), inst->GetID()); if (!inst->IsEvolving() || !inst->GetEvolveActivated()) { - LogEvolveItemDetail("CharacterID [{}], item ID [{}] not an evolving item.", - CharacterID(), - inst->GetID() - ); + LogEvolveItemDetail( + "CharacterID [{}], item ID [{}] not an evolving item.", CharacterID(), inst->GetID()); continue; } if (inst->GetTimers().contains("evolve") && !inst->GetTimers().at("evolve").Check()) { - LogEvolveItemDetail("CharacterID [{}], item ID [{}] timer not yet expired. [{}] secs remaining.", + LogEvolveItemDetail( + "CharacterID [{}], item ID [{}] timer not yet expired. [{}] secs remaining.", CharacterID(), inst->GetID(), - inst->GetTimers().at("evolve").GetRemainingTime() / 1000 - ); + inst->GetTimers().at("evolve").GetRemainingTime() / 1000); continue; } auto const type = evolving_items_manager.GetEvolvingItemsCache().at(inst->GetID()).type; auto const sub_type = evolving_items_manager.GetEvolvingItemsCache().at(inst->GetID()).sub_type; - LogEvolveItemDetail("CharacterID [{}] item id [{}] type {} sub_type {} is Evolving. Continue processing...", + LogEvolveItemDetail( + "CharacterID [{}] item id [{}] type {} sub_type {} is Evolving. Continue processing...", CharacterID(), inst->GetID(), type, - sub_type - ); + sub_type); switch (type) { case EvolvingItems::Types::AMOUNT_OF_EXP: { LogEvolveItemDetail("Type [{}] Processing sub_type", type); if (sub_type == EvolvingItems::SubTypes::ALL_EXP || - (sub_type == EvolvingItems::SubTypes::GROUP_EXP && IsGrouped()) - ) { + (sub_type == EvolvingItems::SubTypes::GROUP_EXP && IsGrouped())) { LogEvolveItemDetail("Sub_Type [{}] Processing Item", sub_type); inst->SetEvolveAddToCurrentAmount(exp * RuleR(EvolvingItems, PercentOfGroupExperience) / 100); } - else if (sub_type == EvolvingItems::SubTypes::ALL_EXP || - (sub_type == EvolvingItems::SubTypes::RAID_EXP && IsRaidGrouped()) - ) { + else if ( + sub_type == EvolvingItems::SubTypes::ALL_EXP || + (sub_type == EvolvingItems::SubTypes::RAID_EXP && IsRaidGrouped())) { LogEvolveItemDetail("Sub_Type [{}] Processing Item", sub_type); inst->SetEvolveAddToCurrentAmount(exp * RuleR(EvolvingItems, PercentOfRaidExperience) / 100); } - else if (sub_type == EvolvingItems::SubTypes::ALL_EXP || - sub_type == EvolvingItems::SubTypes::SOLO_EXP - ) { + else if ( + sub_type == EvolvingItems::SubTypes::ALL_EXP || sub_type == EvolvingItems::SubTypes::SOLO_EXP) { LogEvolveItemDetail("Sub_Type [{}] Processing Item", sub_type); inst->SetEvolveAddToCurrentAmount(exp * RuleR(EvolvingItems, PercentOfSoloExperience) / 100); } @@ -144,11 +143,7 @@ void Client::ProcessEvolvingItem(const uint64 exp, const Mob *mob) inst->CalculateEvolveProgression(); auto e = CharacterEvolvingItemsRepository::SetCurrentAmountAndProgression( - database, - inst->GetEvolveUniqueID(), - inst->GetEvolveCurrentAmount(), - inst->GetEvolveProgression() - ); + database, inst->GetEvolveUniqueID(), inst->GetEvolveCurrentAmount(), inst->GetEvolveProgression()); if (!e.id) { break; } @@ -156,7 +151,8 @@ void Client::ProcessEvolvingItem(const uint64 exp, const Mob *mob) SendEvolvingPacket(EvolvingItems::Actions::UPDATE_ITEMS, e); LogEvolveItem( - "Processing Complete for item id [{1}] Type 1 Amount of EXP - SubType [{0}] - Assigned [{2}] of exp to [{1}]", + "Processing Complete for item id [{1}] Type 1 Amount of EXP - SubType [{0}] - " + "Assigned [{2}] of exp to [{1}]", sub_type, inst->GetID(), exp * 0.001 @@ -179,8 +175,7 @@ void Client::ProcessEvolvingItem(const uint64 exp, const Mob *mob) database, inst->GetEvolveUniqueID(), inst->GetEvolveCurrentAmount(), - inst->GetEvolveProgression() - ); + inst->GetEvolveProgression()); if (!e.id) { break; } @@ -188,7 +183,8 @@ void Client::ProcessEvolvingItem(const uint64 exp, const Mob *mob) SendEvolvingPacket(EvolvingItems::Actions::UPDATE_ITEMS, e); LogEvolveItem( - "Processing Complete for item id [{1}] Type 3 Specific Mob Race - SubType [{0}] - Increased count by 1 for [{1}]", + "Processing Complete for item id [{1}] Type 3 Specific Mob Race - SubType [{0}] " + "- Increased count by 1 for [{1}]", sub_type, inst->GetID() ); @@ -211,8 +207,7 @@ void Client::ProcessEvolvingItem(const uint64 exp, const Mob *mob) database, inst->GetEvolveUniqueID(), inst->GetEvolveCurrentAmount(), - inst->GetEvolveProgression() - ); + inst->GetEvolveProgression()); if (!e.id) { break; } @@ -220,7 +215,8 @@ void Client::ProcessEvolvingItem(const uint64 exp, const Mob *mob) SendEvolvingPacket(EvolvingItems::Actions::UPDATE_ITEMS, e); LogEvolveItem( - "Processing Complete for item id [{1}] Type 4 Specific Zone ID - SubType [{0}] - Increased count by 1 for [{1}]", + "Processing Complete for item id [{1}] Type 4 Specific Zone ID - SubType [{0}] " + "- Increased count by 1 for [{1}]", sub_type, inst->GetID() ); @@ -244,9 +240,9 @@ void Client::ProcessEvolvingItem(const uint64 exp, const Mob *mob) } } -void Client::DoEvolveItemDisplayFinalResult(const EQApplicationPacket* app) +void Client::DoEvolveItemDisplayFinalResult(const EQApplicationPacket *app) { - const auto in = reinterpret_cast(app->pBuffer); + const auto in = reinterpret_cast(app->pBuffer); const uint32 item_id = static_cast(in->unique_id & 0xFFFFFFFF); if (item_id == 0) { @@ -256,16 +252,17 @@ void Client::DoEvolveItemDisplayFinalResult(const EQApplicationPacket* app) std::unique_ptr const inst(database.CreateItem(item_id)); - LogEvolveItemDetail("Character ID [{}] requested to view final evolve item id [{}] for evolve item id [{}]", + LogEvolveItemDetail( + "Character ID [{}] requested to view final evolve item id [{}] for evolve item id [{}]", CharacterID(), item_id, - evolving_items_manager.GetFirstItemInLoreGroupByItemID(item_id) - ); + evolving_items_manager.GetFirstItemInLoreGroupByItemID(item_id)); inst->SetEvolveProgression(100); if (inst) { - LogEvolveItemDetail("Sending final result for item id [{}] to Character ID [{}]", item_id, CharacterID()); + LogEvolveItemDetail( + "Sending final result for item id [{}] to Character ID [{}]", item_id, CharacterID()); SendItemPacket(0, inst.get(), ItemPacketViewLink); } } @@ -297,38 +294,40 @@ bool Client::DoEvolveCheckProgression(const EQ::ItemInstance &inst) MessageString(Chat::Yellow, EVOLVE_ITEM_EVOLVED, inst.GetItem()->Name); - LogEvolveItem("Evolved item id [{}] into item id [{}] for Character ID [{}]", + LogEvolveItem( + "Evolved item id [{}] into item id [{}] for Character ID [{}]", inst.GetID(), new_inst->GetID(), - CharacterID() - ); + CharacterID()); return true; } void Client::SendEvolveXPTransferWindow() { - auto out = std::make_unique(OP_EvolveItem, sizeof(EvolveItemToggle_Struct)); - const auto data = reinterpret_cast(out->pBuffer); + auto out = std::make_unique(OP_EvolveItem, sizeof(EvolveItemToggle_Struct)); + const auto data = reinterpret_cast(out->pBuffer); - data->action = 1; + data->action = 1; QueuePacket(out.get()); } void Client::SendEvolveXPWindowDetails(const EQApplicationPacket *app) { - const auto in = reinterpret_cast(app->pBuffer); + const auto in = reinterpret_cast(app->pBuffer); - const auto item_1_slot = GetInv().HasEvolvingItem(in->item1_unique_id, 1, invWherePersonal | invWhereWorn | invWhereCursor); - const auto item_2_slot = GetInv().HasEvolvingItem(in->item2_unique_id, 1, invWherePersonal | invWhereWorn | invWhereCursor); + const auto item_1_slot = + GetInv().HasEvolvingItem(in->item1_unique_id, 1, invWherePersonal | invWhereWorn | invWhereCursor); + const auto item_2_slot = + GetInv().HasEvolvingItem(in->item2_unique_id, 1, invWherePersonal | invWhereWorn | invWhereCursor); if (item_1_slot == INVALID_INDEX || item_2_slot == INVALID_INDEX) { return; } const auto inst_from = GetInv().GetItem(item_1_slot); - const auto inst_to = GetInv().GetItem(item_2_slot); + const auto inst_to = GetInv().GetItem(item_2_slot); if (!inst_from || !inst_to) { return; @@ -341,8 +340,8 @@ void Client::SendEvolveXPWindowDetails(const EQApplicationPacket *app) return; } - std::unique_ptr const inst_from_new (database.CreateItem(results.item_from_id)); - std::unique_ptr const inst_to_new (database.CreateItem(results.item_to_id)); + std::unique_ptr const inst_from_new(database.CreateItem(results.item_from_id)); + std::unique_ptr const inst_to_new(database.CreateItem(results.item_to_id)); if (!inst_from_new || !inst_to_new) { SendEvolveTransferResults(*inst_from, *inst_to, *inst_from, *inst_to, 0, 0); return; @@ -354,28 +353,24 @@ void Client::SendEvolveXPWindowDetails(const EQApplicationPacket *app) inst_to_new->CalculateEvolveProgression(); SendEvolveTransferResults( - *inst_from, - *inst_to, - *inst_from_new, - *inst_to_new, - results.compatibility, - results.max_transfer_level - ); + *inst_from, *inst_to, *inst_from_new, *inst_to_new, results.compatibility, results.max_transfer_level); } -void Client::DoEvolveTransferXP(const EQApplicationPacket* app) +void Client::DoEvolveTransferXP(const EQApplicationPacket *app) { - const auto in = reinterpret_cast(app->pBuffer); + const auto in = reinterpret_cast(app->pBuffer); - const auto item_1_slot = GetInv().HasEvolvingItem(in->item1_unique_id, 1, invWherePersonal | invWhereWorn | invWhereCursor); - const auto item_2_slot = GetInv().HasEvolvingItem(in->item2_unique_id, 1, invWherePersonal | invWhereWorn | invWhereCursor); + const auto item_1_slot = + GetInv().HasEvolvingItem(in->item1_unique_id, 1, invWherePersonal | invWhereWorn | invWhereCursor); + const auto item_2_slot = + GetInv().HasEvolvingItem(in->item2_unique_id, 1, invWherePersonal | invWhereWorn | invWhereCursor); if (item_1_slot == INVALID_INDEX || item_2_slot == INVALID_INDEX) { return; } const auto inst_from = GetInv().GetItem(item_1_slot); - const auto inst_to = GetInv().GetItem(item_2_slot); + const auto inst_to = GetInv().GetItem(item_2_slot); if (!inst_from || !inst_to) { Message(Chat::Red, "Transfer Failed. Incompatible Items."); @@ -427,14 +422,22 @@ void Client::DoEvolveTransferXP(const EQApplicationPacket* app) e.status = "Transfer XP - Updated TO Evolve item placed in inventory."; RecordPlayerEventLog(PlayerEvent::EVOLVE_ITEM, e); - LogEvolveItem("Evolve Transfer XP resulted in evolved item id [{}] into item id [{}] for Character ID [{}]", + LogEvolveItem( + "Evolve Transfer XP resulted in evolved item id [{}] into item id [{}] for Character ID " + "[{}]", inst_to->GetID(), inst_to_new->GetID(), CharacterID() ); } -void Client::SendEvolveTransferResults(const EQ::ItemInstance &inst_from, const EQ::ItemInstance &inst_to, const EQ::ItemInstance &inst_from_new, const EQ::ItemInstance &inst_to_new, const uint32 compatibility, const uint32 max_transfer_level) +void Client::SendEvolveTransferResults( + const EQ::ItemInstance &inst_from, + const EQ::ItemInstance &inst_to, + const EQ::ItemInstance &inst_from_new, + const EQ::ItemInstance &inst_to_new, + const uint32 compatibility, + const uint32 max_transfer_level) { std::stringstream ss; cereal::BinaryOutputArchive ar(ss); @@ -445,8 +448,8 @@ void Client::SendEvolveTransferResults(const EQ::ItemInstance &inst_from, const e.item1_unique_id = inst_from.GetEvolveUniqueID(); e.item2_unique_id = inst_to.GetEvolveUniqueID(); e.max_transfer_level = max_transfer_level; - e.unknown_028 = 1; - e.unknown_029 = 1; + e.item1_present = 1; + e.item2_present = 1; e.serialize_item_1 = inst_from_new.Serialize(0); e.serialize_item_2 = inst_to_new.Serialize(0); @@ -457,13 +460,13 @@ void Client::SendEvolveTransferResults(const EQ::ItemInstance &inst_from, const uint32 packet_size = sizeof(EvolveItemMessaging_Struct) + ss.str().length(); std::unique_ptr out(new EQApplicationPacket(OP_EvolveItem, packet_size)); - const auto data = reinterpret_cast(out->pBuffer); + const auto data = reinterpret_cast(out->pBuffer); - data->action = EvolvingItems::Actions::TRANSFER_WINDOW_DETAILS; + data->action = EvolvingItems::Actions::TRANSFER_WINDOW_DETAILS; memcpy(data->serialized_data, ss.str().data(), ss.str().length()); QueuePacket(out.get()); ss.str(""); ss.clear(); -} \ No newline at end of file +}