All pastes #971527 Raw Edit

Jemand

public diff v1 · immutable
·published 2008-04-04 20:26 UTC
rendered paste body
Index: src/game/GuildHandler.cpp===================================================================--- src/game/GuildHandler.cpp	(revision 5545)+++ src/game/GuildHandler.cpp	(working copy)@@ -1094,9 +1094,14 @@     if (GetPlayer()->GetMoney() < money)         return; +    CharacterDatabase.BeginTransaction();+         pGuild->SetBankMoney(pGuild->GetGuildBankMoney()+money);     GetPlayer()->ModifyMoney(-int(money));+    GetPlayer()->SaveGoldToDB(); +    CharacterDatabase.CommitTransaction();+     // logging money     if(_player->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_GM_LOG_TRADE))     {@@ -1138,11 +1143,19 @@     if (pGuild->GetRankRights(GetPlayer()->GetRank()) & GR_RIGHT_REPAIR_FROM_GUILD)         return; +    CharacterDatabase.BeginTransaction();+         if (!pGuild->MemberMoneyWithdraw(money, GetPlayer()->GetGUIDLow()))+    {+        CharacterDatabase.RollbackTransaction();         return;+    }      GetPlayer()->ModifyMoney(money);+    GetPlayer()->SaveGoldToDB(); +    CharacterDatabase.CommitTransaction();+     // Log     pGuild->LogBankEvent(GUILD_BANK_LOG_WITHDRAW_MONEY, uint8(0), GetPlayer()->GetGUIDLow(), money); @@ -1267,7 +1280,6 @@                 // pItemSrc moved to BankTabSlotDst                 pGuild->AddGBankItemToDB(GuildId, uint32(BankTabDst), uint32(BankTabSlotDst), pItemSrc->GetGUIDLow(), pItemSrc->GetEntry()); -                CharacterDatabase.CommitTransaction();                 // No need to save item instances, they did not change                  pGuild->LogBankEvent(GUILD_BANK_LOG_MOVE_ITEM, BankTab, pl->GetGUIDLow(), pItemSrc->GetEntry(), pItemSrc->GetCount(), BankTabDst);@@ -1657,6 +1669,7 @@                 if(pItemChar->GetEntry()!=pItemBank->GetEntry() && SplitedAmount)                 {                     pl->SendEquipError( EQUIP_ERR_ITEMS_CANT_BE_SWAPPED, pItemChar, pItemBank );+                    CharacterDatabase.RollbackTransaction();                     return;                 } Index: src/game/Player.h===================================================================--- src/game/Player.h	(revision 5545)+++ src/game/Player.h	(working copy)@@ -1214,6 +1214,7 @@          void SaveToDB();         void SaveInventoryAndGoldToDB();                    // fast save function for item/money cheating preventing+        void SaveGoldToDB() { SetUInt32ValueInDB(PLAYER_FIELD_COINAGE,GetMoney(),GetGUID()); }         static bool SaveValuesArrayInDB(Tokens const& data,uint64 guid);         static void SetUInt32ValueInArray(Tokens& data,uint16 index, uint32 value);         static void SetFloatValueInArray(Tokens& data,uint16 index, float value);