From e04f75bd962006662bc0f77f0034f061605fb1c6 Mon Sep 17 00:00:00 2001 From: roc13x Date: Thu, 17 Aug 2017 02:00:42 -0600 Subject: Core/Players: Several gold handling improvements * Update gold limit to 10 million * Updated auction house gold handling to 64-bit * Fixed some vendor checks for when BuyCount > 1 * Tweaked some checks for available gold space * Updated guild bank gold handling to 64-bit and fix withdraw limits * Enforce gold limit on guild bank * Check correct rank right when withdrawing from bank * Other small changes to update money to 64-bit Closes #19195 Closes #20152 --- src/server/database/Database/Implementation/CharacterDatabase.cpp | 7 ++++--- src/server/database/Database/Implementation/CharacterDatabase.h | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'src/server/database/Database/Implementation') diff --git a/src/server/database/Database/Implementation/CharacterDatabase.cpp b/src/server/database/Database/Implementation/CharacterDatabase.cpp index ad4998b9543..5086dc8da1f 100644 --- a/src/server/database/Database/Implementation/CharacterDatabase.cpp +++ b/src/server/database/Database/Implementation/CharacterDatabase.cpp @@ -253,9 +253,10 @@ void CharacterDatabaseConnection::DoPrepareStatements() PrepareStatement(CHAR_UPD_GUILD_RANK_BANK_MONEY, "UPDATE guild_rank SET BankMoneyPerDay = ? WHERE rid = ? AND guildid = ?", CONNECTION_ASYNC); // 0: uint32, 1: uint8, 2: uint32 PrepareStatement(CHAR_UPD_GUILD_BANK_TAB_TEXT, "UPDATE guild_bank_tab SET TabText = ? WHERE guildid = ? AND TabId = ?", CONNECTION_ASYNC); // 0: string, 1: uint32, 2: uint8 - PrepareStatement(CHAR_INS_GUILD_MEMBER_WITHDRAW, - "INSERT INTO guild_member_withdraw (guid, tab0, tab1, tab2, tab3, tab4, tab5, tab6, tab7, money) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) " - "ON DUPLICATE KEY UPDATE tab0 = VALUES (tab0), tab1 = VALUES (tab1), tab2 = VALUES (tab2), tab3 = VALUES (tab3), tab4 = VALUES (tab4), tab5 = VALUES (tab5), tab6 = VALUES (tab6), tab7 = VALUES (tab7), money = VALUES (money)", CONNECTION_ASYNC); + PrepareStatement(CHAR_INS_GUILD_MEMBER_WITHDRAW_TABS, + "INSERT INTO guild_member_withdraw (guid, tab0, tab1, tab2, tab3, tab4, tab5, tab6, tab7) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) " + "ON DUPLICATE KEY UPDATE tab0 = VALUES (tab0), tab1 = VALUES (tab1), tab2 = VALUES (tab2), tab3 = VALUES (tab3), tab4 = VALUES (tab4), tab5 = VALUES (tab5), tab6 = VALUES (tab6), tab7 = VALUES (tab7)", CONNECTION_ASYNC); + PrepareStatement(CHAR_INS_GUILD_MEMBER_WITHDRAW_MONEY, "INSERT INTO guild_member_withdraw (guid, money) VALUES (?, ?) ON DUPLICATE KEY UPDATE money = VALUES (money)", CONNECTION_ASYNC); PrepareStatement(CHAR_DEL_GUILD_MEMBER_WITHDRAW, "TRUNCATE guild_member_withdraw", CONNECTION_ASYNC); // 0: uint32, 1: uint32, 2: uint32 diff --git a/src/server/database/Database/Implementation/CharacterDatabase.h b/src/server/database/Database/Implementation/CharacterDatabase.h index b2acafc2308..a4f422665fc 100644 --- a/src/server/database/Database/Implementation/CharacterDatabase.h +++ b/src/server/database/Database/Implementation/CharacterDatabase.h @@ -208,7 +208,8 @@ enum CharacterDatabaseStatements : uint32 CHAR_UPD_GUILD_BANK_MONEY, CHAR_UPD_GUILD_RANK_BANK_MONEY, CHAR_UPD_GUILD_BANK_TAB_TEXT, - CHAR_INS_GUILD_MEMBER_WITHDRAW, + CHAR_INS_GUILD_MEMBER_WITHDRAW_TABS, + CHAR_INS_GUILD_MEMBER_WITHDRAW_MONEY, CHAR_DEL_GUILD_MEMBER_WITHDRAW, CHAR_SEL_CHAR_DATA_FOR_GUILD, CHAR_DEL_GUILD_ACHIEVEMENT, -- cgit v1.2.3