From 4209a629605d1cf15df290791dabbfc6c477d7af Mon Sep 17 00:00:00 2001 From: Yehonal Date: Mon, 28 Jun 2021 16:08:07 +0200 Subject: [PATCH] fix: compilation after latest changes TODO: ExtraDatabase is not working anymore after latest db changes, we have to figure out a solution for it. Not needed for the current implementation though --- CMakeLists.txt | 2 + modules/mod-arena-solo-3v3/src/Solo3v3_SC.cpp | 38 +-- .../src/cmake/after_game_library.cmake | 3 + .../mod-as-common/src/game/AzthFirstKills.cpp | 6 + .../mod-as-common/src/game/AzthFirstKills.h | 18 +- .../mod-as-common/src/game/ExtraDatabase.cpp | 10 + .../mod-as-common/src/game/ExtraDatabase.h | 32 +-- .../src/plugins/AzthWorldScript.cpp | 7 +- modules/mod-as-platform/src/AZTH.cpp | 4 +- modules/mod-as-platform/src/AZTH_SC.cpp | 38 +-- modules/mod-challenge-mode/CMakeLists.txt | 2 +- .../src/{ => scripts}/loader.h | 0 .../mod-guildhouse/src/scripts/GuildHouse.cpp | 2 +- modules/mod-guildhouse/src/scripts/Teleport.h | 4 +- .../src/scripts/npc_guildhouse.cpp | 221 +++++++++--------- .../scripts/azth_custom_hearthstone_mode.cpp | 59 ++--- .../scripts/azth_custom_hearthstone_mode.h | 4 +- .../src/scripts/AzthInstanceMgr.cpp | 10 +- .../src/scripts/PStatsScripts.cpp | 12 +- .../src/scripts/ProfessionNpc.cpp | 44 ++-- modules/mod-pvp-mode/src/scripts/PvPMode.cpp | 4 +- .../src/scripts/ArenaSeason.cpp | 18 +- .../src/scripts/ArenaSeason.h | 9 +- .../src/scripts/AzthSmartStone.cpp | 44 ++-- .../src/scripts/PlayerSmartstone.cpp | 2 +- .../src/scripts/TimeWalking.cpp | 48 ++-- .../src/scripts/RatingBonus.cpp | 6 + .../mod-tournament/src/scripts/RatingBonus.h | 4 +- src/loader.cpp | 5 + 29 files changed, 361 insertions(+), 295 deletions(-) rename modules/mod-challenge-mode/src/{ => scripts}/loader.h (100%) create mode 100644 src/loader.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index afec5ff..8c14f85 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,6 +35,8 @@ add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/modules/mod-timewalking") add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/modules/mod-tournament") add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/modules/mod-xp-rates") +AC_ADD_SCRIPTS("${CMAKE_CURRENT_LIST_DIR}/src/") + # Add config file AC_ADD_CONFIG_FILE("${CMAKE_CURRENT_LIST_DIR}/mod-as-common/conf/azth_mod.conf.dist") diff --git a/modules/mod-arena-solo-3v3/src/Solo3v3_SC.cpp b/modules/mod-arena-solo-3v3/src/Solo3v3_SC.cpp index b72378e..e8a9f8e 100644 --- a/modules/mod-arena-solo-3v3/src/Solo3v3_SC.cpp +++ b/modules/mod-arena-solo-3v3/src/Solo3v3_SC.cpp @@ -51,7 +51,7 @@ class npc_solo3v3 : public CreatureScript } if (player->InBattlegroundQueueForBattlegroundQueueType((BattlegroundQueueTypeId)BATTLEGROUND_QUEUE_3v3_SOLO)) - player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_INTERACT_1, "|TInterface/ICONS/Achievement_Arena_2v2_7:30|t Leave Solo queue", GOSSIP_SENDER_MAIN, 3, "Are you sure you want to remove the solo queue?", 0, false); + AddGossipItemFor(player,GOSSIP_ICON_INTERACT_1, "|TInterface/ICONS/Achievement_Arena_2v2_7:30|t Leave Solo queue", GOSSIP_SENDER_MAIN, 3, "Are you sure you want to remove the solo queue?", 0, false); if (!player->GetArenaTeamId(ArenaTeam::GetSlotByType(ARENA_TEAM_SOLO_3v3))) { @@ -60,24 +60,24 @@ class npc_solo3v3 : public CreatureScript if (sAZTH->GetAZTHPlayer(player)->isPvP()) cost = 0; - player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_INTERACT_1, "|TInterface/ICONS/Achievement_Arena_2v2_7:30|t Create new Solo arena team", GOSSIP_SENDER_MAIN, 1, "Create new solo arena team?", cost, false); + AddGossipItemFor(player,GOSSIP_ICON_INTERACT_1, "|TInterface/ICONS/Achievement_Arena_2v2_7:30|t Create new Solo arena team", GOSSIP_SENDER_MAIN, 1, "Create new solo arena team?", cost, false); } else { if (!player->InBattlegroundQueueForBattlegroundQueueType((BattlegroundQueueTypeId)BATTLEGROUND_QUEUE_3v3_SOLO)) { - //player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Queue up for 1vs1 Wargame\n", GOSSIP_SENDER_MAIN, 20); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface/ICONS/Achievement_Arena_3v3_5:30|t Queue up for 3vs3 Arena Solo\n", GOSSIP_SENDER_MAIN, 2); - player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_CHAT, "|TInterface/ICONS/Achievement_Arena_2v2_7:30|t Disband Arena team", GOSSIP_SENDER_MAIN, 5, "Are you sure?", 0, false); + //AddGossipItemFor(player,GOSSIP_ICON_INTERACT_1, "Queue up for 1vs1 Wargame\n", GOSSIP_SENDER_MAIN, 20); + AddGossipItemFor(player,GOSSIP_ICON_INTERACT_1, "|TInterface/ICONS/Achievement_Arena_3v3_5:30|t Queue up for 3vs3 Arena Solo\n", GOSSIP_SENDER_MAIN, 2); + AddGossipItemFor(player,GOSSIP_ICON_CHAT, "|TInterface/ICONS/Achievement_Arena_2v2_7:30|t Disband Arena team", GOSSIP_SENDER_MAIN, 5, "Are you sure?", 0, false); } - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "|TInterface/ICONS/INV_Misc_Coin_01:30|t Show statistics", GOSSIP_SENDER_MAIN, 4); + AddGossipItemFor(player,GOSSIP_ICON_CHAT, "|TInterface/ICONS/INV_Misc_Coin_01:30|t Show statistics", GOSSIP_SENDER_MAIN, 4); } - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "|TInterface/ICONS/INV_Misc_Coin_03:30|t How to Use NPC?", GOSSIP_SENDER_MAIN, 8); + AddGossipItemFor(player,GOSSIP_ICON_CHAT, "|TInterface/ICONS/INV_Misc_Coin_03:30|t How to Use NPC?", GOSSIP_SENDER_MAIN, 8); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, infoQueue.str().c_str(), GOSSIP_SENDER_MAIN, 0); - player->SEND_GOSSIP_MENU(60015, me->GetGUID()); + AddGossipItemFor(player,GOSSIP_ICON_CHAT, infoQueue.str().c_str(), GOSSIP_SENDER_MAIN, 0); + SendGossipMenuFor(player, 60015, me->GetGUID()); return true; } @@ -109,7 +109,7 @@ class npc_solo3v3 : public CreatureScript ChatHandler(player->GetSession()).PSendSysMessage("You need level %u+ to create an arena team.", sConfigMgr->GetIntDefault("Solo.3v3.MinLevel", 80)); } - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); return true; } break; @@ -127,7 +127,7 @@ class npc_solo3v3 : public CreatureScript if (ArenaCheckFullEquipAndTalents(player) && JoinQueueArena(player, me, true, ARENA_TYPE_3v3_SOLO) == false) ChatHandler(player->GetSession()).SendSysMessage("Something went wrong while joining queue. Already in another queue?"); - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); return true; } @@ -140,7 +140,7 @@ class npc_solo3v3 : public CreatureScript WorldPacket Data; Data << arenaType << (uint8)0x0 << (uint32)BATTLEGROUND_AA << (uint16)0x0 << (uint8)0x0; player->GetSession()->HandleBattleFieldPortOpcode(Data); - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); } return true; @@ -169,18 +169,18 @@ class npc_solo3v3 : public CreatureScript Data << (uint32)player->GetArenaTeamId(ArenaTeam::GetSlotByType(ARENA_TEAM_SOLO_3v3)); player->GetSession()->HandleArenaTeamLeaveOpcode(Data); ChatHandler(player->GetSession()).PSendSysMessage("Arena team deleted!"); - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); return true; } break; case 8: // Script Info { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Click on Create new 3v3 SoloQ Arena team", GOSSIP_SENDER_MAIN, uiAction); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Join 3v3 SoloQ Arena and ready!", GOSSIP_SENDER_MAIN, uiAction); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Enjoy!", GOSSIP_SENDER_MAIN, uiAction); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "<- Back", GOSSIP_SENDER_MAIN, 7); - player->SEND_GOSSIP_MENU(68, me->GetGUID()); + AddGossipItemFor(player,GOSSIP_ICON_CHAT, "Click on Create new 3v3 SoloQ Arena team", GOSSIP_SENDER_MAIN, uiAction); + AddGossipItemFor(player,GOSSIP_ICON_CHAT, "Join 3v3 SoloQ Arena and ready!", GOSSIP_SENDER_MAIN, uiAction); + AddGossipItemFor(player,GOSSIP_ICON_CHAT, "Enjoy!", GOSSIP_SENDER_MAIN, uiAction); + AddGossipItemFor(player,GOSSIP_ICON_CHAT, "<- Back", GOSSIP_SENDER_MAIN, 7); + SendGossipMenuFor(player, 68, me->GetGUID()); return true; } break; @@ -307,7 +307,7 @@ class npc_solo3v3 : public CreatureScript uint32 queueSlot = player->AddBattlegroundQueueId(bgQueueTypeId); // send status packet (in queue) - WorldPacket data; + WorldPacket data; sBattlegroundMgr->BuildBattlegroundStatusPacket(&data, bg, queueSlot, STATUS_WAIT_QUEUE, avgTime, 0, arenatype, player->GetTeamId()); //?? player->GetSession()->SendPacket(&data); diff --git a/modules/mod-as-common/src/cmake/after_game_library.cmake b/modules/mod-as-common/src/cmake/after_game_library.cmake index 0f59712..579eeab 100644 --- a/modules/mod-as-common/src/cmake/after_game_library.cmake +++ b/modules/mod-as-common/src/cmake/after_game_library.cmake @@ -19,6 +19,9 @@ add_library(azth_mod STATIC target_link_libraries(azth_mod PRIVATE + mysql + database + game modules-interface game-interface) diff --git a/modules/mod-as-common/src/game/AzthFirstKills.cpp b/modules/mod-as-common/src/game/AzthFirstKills.cpp index dcde2a1..e51af77 100644 --- a/modules/mod-as-common/src/game/AzthFirstKills.cpp +++ b/modules/mod-as-common/src/game/AzthFirstKills.cpp @@ -29,6 +29,12 @@ enum NxEncouters MAX_ENCOUNTERS, }; +AzthFirstKills* AzthFirstKills::instance() +{ + static AzthFirstKills instance; + return &instance; +} + bool AzthFirstKills::canCompleteAchi(Player */* player */, uint32 /* achiId */) { return true; diff --git a/modules/mod-as-common/src/game/AzthFirstKills.h b/modules/mod-as-common/src/game/AzthFirstKills.h index bb37872..58d590b 100644 --- a/modules/mod-as-common/src/game/AzthFirstKills.h +++ b/modules/mod-as-common/src/game/AzthFirstKills.h @@ -12,18 +12,20 @@ class Player; enum FirstKills:uint32 { - ACHI_NAXXRAMAS=1402, //-- "Conqueror of Naxxramas" - ACHI_OBSIDIAN=456, //-- "Obsidian Slayer", - ACHI_MAGIC_SEEKER=1400, //-- "Magic Seeker", - ACHI_DEATH_DEMISE=3117, //-- "Death's Demise", - ACHI_CELESTIAL_DEFENDER=3259, //-- "Celestial Defender", - ACHI_GRAND_CRUSADER=4078, //-- "Grand Crusader", + ACHI_NAXXRAMAS=1402, //-- "Conqueror of Naxxramas" + ACHI_OBSIDIAN=456, //-- "Obsidian Slayer", + ACHI_MAGIC_SEEKER=1400, //-- "Magic Seeker", + ACHI_DEATH_DEMISE=3117, //-- "Death's Demise", + ACHI_CELESTIAL_DEFENDER=3259, //-- "Celestial Defender", + ACHI_GRAND_CRUSADER=4078, //-- "Grand Crusader", ACHI_FALL_OF_LK=4576, //-- "Fall of the Lich King", }; class AzthFirstKills { friend class ACE_Singleton; public: + static AzthFirstKills* instance(); + void loadCurrentFirstkills(); bool isRealmCompleted(AchievementEntry const* achievement, bool originalValue); void setRealmCompleted(AchievementEntry const* achievement); @@ -32,6 +34,6 @@ class AzthFirstKills { std::map currentFirstKills; }; -#define sAzthFirstKills ACE_Singleton::instance() +#define sAzthFirstKills AzthFirstKills::instance() -#endif \ No newline at end of file +#endif diff --git a/modules/mod-as-common/src/game/ExtraDatabase.cpp b/modules/mod-as-common/src/game/ExtraDatabase.cpp index e1f24bc..ee216a3 100644 --- a/modules/mod-as-common/src/game/ExtraDatabase.cpp +++ b/modules/mod-as-common/src/game/ExtraDatabase.cpp @@ -16,6 +16,13 @@ */ #include "ExtraDatabase.h" +#include "MySQLPreparedStatement.h" +#include "DatabaseLoader.h" + +class DatabaseLoader; + +template class AC_DATABASE_API DatabaseWorkerPool; +DatabaseWorkerPool ExtraDatabase; void ExtraDatabaseConnection::DoPrepareStatements() { @@ -28,3 +35,6 @@ void ExtraDatabaseConnection::DoPrepareStatements() PrepareStatement(EXTRA_GET_EXTERNAL_MAIL, "SELECT id, receiver, subject, message, money, item, item_count FROM mail_external ORDER BY id ASC", CONNECTION_SYNCH); PrepareStatement(EXTRA_DEL_EXTERNAL_MAIL, "DELETE FROM mail_external WHERE id = ?", CONNECTION_ASYNC); } + +// template AC_DATABASE_API +// DatabaseLoader& DatabaseLoader::AddDatabase(DatabaseWorkerPool&, std::string const&); diff --git a/modules/mod-as-common/src/game/ExtraDatabase.h b/modules/mod-as-common/src/game/ExtraDatabase.h index b8d7e13..a0e1125 100644 --- a/modules/mod-as-common/src/game/ExtraDatabase.h +++ b/modules/mod-as-common/src/game/ExtraDatabase.h @@ -18,22 +18,8 @@ #ifndef _EXTRADATABASE_H #define _EXTRADATABASE_H -#include "DatabaseWorkerPool.h" #include "MySQLConnection.h" - -class ExtraDatabaseConnection : public MySQLConnection -{ - public: - //- Constructors for sync and async connections - ExtraDatabaseConnection(MySQLConnectionInfo& connInfo) : MySQLConnection(connInfo) {} - ExtraDatabaseConnection(ACE_Activation_Queue* q, MySQLConnectionInfo& connInfo) : MySQLConnection(q, connInfo) {} - - - //- Loads databasetype specific prepared statements - void DoPrepareStatements(); -}; - -typedef DatabaseWorkerPool ExtraDatabaseWorkerPool; +#include "DatabaseEnv.h" enum ExtraDatabaseStatements { @@ -48,6 +34,20 @@ enum ExtraDatabaseStatements MAX_EXTRADATABASE_STATEMENTS, }; -ExtraDatabaseWorkerPool ExtraDatabase; ///< Accessor to the realm/login database +class AC_DATABASE_API ExtraDatabaseConnection : public MySQLConnection +{ + public: + typedef ExtraDatabaseStatements Statements; + + //- Constructors for sync and async connections + ExtraDatabaseConnection(MySQLConnectionInfo& connInfo) : MySQLConnection(connInfo) {} + ExtraDatabaseConnection(ProducerConsumerQueue* q, MySQLConnectionInfo& connInfo) : MySQLConnection(q, connInfo) {} + + + //- Loads databasetype specific prepared statements + void DoPrepareStatements(); +}; + +AC_DATABASE_API extern DatabaseWorkerPool ExtraDatabase; #endif diff --git a/modules/mod-as-common/src/plugins/AzthWorldScript.cpp b/modules/mod-as-common/src/plugins/AzthWorldScript.cpp index 559dc6f..8e3a8a0 100644 --- a/modules/mod-as-common/src/plugins/AzthWorldScript.cpp +++ b/modules/mod-as-common/src/plugins/AzthWorldScript.cpp @@ -3,14 +3,19 @@ #include "AzthUtils.h" #include "ScriptMgr.h" #include "AzthFirstKills.h" +#include "ExtraDatabase.h" +#include "DatabaseLoader.h" class AzthWorldScript : public WorldScript { public: AzthWorldScript() : WorldScript("AzthWorldScript") { } - + void OnStartup() override { + // DatabaseLoader loader("server.worldserver"); + // loader + // .AddDatabase(ExtraDatabase, "Extra"); sAzthLang->loadStrings(); sAzthUtils->loadClassSpells(); sAzthFirstKills->loadCurrentFirstkills(); diff --git a/modules/mod-as-platform/src/AZTH.cpp b/modules/mod-as-platform/src/AZTH.cpp index 68f975e..d4d604c 100644 --- a/modules/mod-as-platform/src/AZTH.cpp +++ b/modules/mod-as-platform/src/AZTH.cpp @@ -264,7 +264,7 @@ void AZTH::SendGameMail(Player* receiver, std::string subject, std::string body, { uint32 receiver_guid = receiver->GetGUID().GetCounter(); - SQLTransaction trans = CharacterDatabase.BeginTransaction(); + CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction(); MailDraft* mail = new MailDraft(subject, body); if (money) @@ -314,7 +314,7 @@ void AZTH::SendExternalMails() // return; // } - // SQLTransaction trans = CharacterDatabase.BeginTransaction(); + // CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();n(); // SQLTransaction trans2 = ExtraDatabase.BeginTransaction(); // MailDraft* mail = nullptr; diff --git a/modules/mod-as-platform/src/AZTH_SC.cpp b/modules/mod-as-platform/src/AZTH_SC.cpp index e9695f6..e0b5ad4 100644 --- a/modules/mod-as-platform/src/AZTH_SC.cpp +++ b/modules/mod-as-platform/src/AZTH_SC.cpp @@ -27,6 +27,12 @@ #include "MapManager.h" #include "ExtraDatabase.h" +enum AZTHLanguage +{ + LANG_AZTH_NO_INFO_ARENA_JOINED = 7000, //[AZTH] + LANG_AZTH_NO_INFO_ARENA_EXITED = 7001, //[AZTH] +}; + class AuraEffect; // SC @@ -91,7 +97,7 @@ class Battleground_SC : public BGScript bg->SetStartDelayTime(BG_START_DELAY_15S); } - bool CanSendMessageArenaQueue(BattlegroundQueue* /*queue*/, GroupQueueInfo* ginfo, bool IsJoin) + bool OnBeforeSendExitMessageArenaQueue(BattlegroundQueue* /*queue*/, GroupQueueInfo* ginfo) override { if (!ginfo->IsRated || !ginfo->ArenaType || ginfo->Players.empty()) return true; @@ -99,24 +105,20 @@ class Battleground_SC : public BGScript if (!sArenaTeamMgr->GetArenaTeamById(ginfo->ArenaTeamId)) return false; - enum AZTHLanguage - { - LANG_AZTH_NO_INFO_ARENA_JOINED = 7000, //[AZTH] - LANG_AZTH_NO_INFO_ARENA_EXITED = 7001, //[AZTH] - }; + sWorld->SendWorldText(LANG_AZTH_NO_INFO_ARENA_EXITED, ginfo->ArenaType, ginfo->ArenaType); + return false; + } - if (IsJoin) - { - sWorld->SendWorldText(LANG_AZTH_NO_INFO_ARENA_JOINED, ginfo->ArenaType, ginfo->ArenaType); //[AZTH] - return false; - } - else - { - sWorld->SendWorldText(LANG_AZTH_NO_INFO_ARENA_EXITED, ginfo->ArenaType, ginfo->ArenaType); + bool OnBeforeSendJoinMessageArenaQueue(BattlegroundQueue* /*queue*/, Player* /*leader*/, GroupQueueInfo* ginfo, PvPDifficultyEntry const* /*bracketEntry*/, bool /*isRated*/) override + { + if (!ginfo->IsRated || !ginfo->ArenaType || ginfo->Players.empty()) + return true; + + if (!sArenaTeamMgr->GetArenaTeamById(ginfo->ArenaTeamId)) return false; - } - return true; + sWorld->SendWorldText(LANG_AZTH_NO_INFO_ARENA_JOINED, ginfo->ArenaType, ginfo->ArenaType); //[AZTH] + return false; } }; @@ -177,7 +179,7 @@ class Player_SC : public PlayerScript return true; } - void OnDeleteFromDB(SQLTransaction& trans, uint32 guid) override + void OnDeleteFromDB(CharacterDatabaseTransaction trans, uint32 guid) override { if (!guid) return; @@ -619,7 +621,7 @@ class Player_SC : public PlayerScript return; // Wowarmory feeds - SQLTransaction wowArmoryTrans = CharacterDatabase.BeginTransaction(); + CharacterDatabaseTransaction wowArmoryTrans = CharacterDatabase.BeginTransaction(); AzthPlayer* azthPlayer = sAZTH->GetAZTHPlayer(player); if (!azthPlayer) diff --git a/modules/mod-challenge-mode/CMakeLists.txt b/modules/mod-challenge-mode/CMakeLists.txt index 55d6065..69bf974 100644 --- a/modules/mod-challenge-mode/CMakeLists.txt +++ b/modules/mod-challenge-mode/CMakeLists.txt @@ -6,4 +6,4 @@ AC_ADD_SCRIPTS("${CMAKE_CURRENT_LIST_DIR}/src/scripts/") # Add SC loader -AC_ADD_SCRIPT_LOADER("ChallengeMode" "${CMAKE_CURRENT_LIST_DIR}/src/loader.h") +#AC_ADD_SCRIPT_LOADER("ChallengeMode" "${CMAKE_CURRENT_LIST_DIR}/src/loader.h") diff --git a/modules/mod-challenge-mode/src/loader.h b/modules/mod-challenge-mode/src/scripts/loader.h similarity index 100% rename from modules/mod-challenge-mode/src/loader.h rename to modules/mod-challenge-mode/src/scripts/loader.h diff --git a/modules/mod-guildhouse/src/scripts/GuildHouse.cpp b/modules/mod-guildhouse/src/scripts/GuildHouse.cpp index d491bb2..2a1288e 100644 --- a/modules/mod-guildhouse/src/scripts/GuildHouse.cpp +++ b/modules/mod-guildhouse/src/scripts/GuildHouse.cpp @@ -471,7 +471,7 @@ void GuildHouseObject::ControlGuildHouse() if (pGuild->GetMemberSize() < (*itr).second.min_member) { GHobj.ChangeGuildHouse((*itr).first, 0); - SQLTransaction trans = CharacterDatabase.BeginTransaction(); + CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();n(); if (!pGuild->ModifyBankMoney(trans, (*itr).second.price * 75000, true)) { continue; } diff --git a/modules/mod-guildhouse/src/scripts/Teleport.h b/modules/mod-guildhouse/src/scripts/Teleport.h index 61fcabe..69d2d78 100644 --- a/modules/mod-guildhouse/src/scripts/Teleport.h +++ b/modules/mod-guildhouse/src/scripts/Teleport.h @@ -109,7 +109,7 @@ namespace nsNpcTel uint32 GetPageId(void) const { return m_PageId; } Player * GetPlayer(void) const { return m_player; } - + private: Player *m_player; @@ -146,6 +146,4 @@ namespace nsNpcTel void LoadNpcTele(); } -extern WorldDatabaseWorkerPool WorldDatabase; - #endif diff --git a/modules/mod-guildhouse/src/scripts/npc_guildhouse.cpp b/modules/mod-guildhouse/src/scripts/npc_guildhouse.cpp index 8498a37..b890908 100644 --- a/modules/mod-guildhouse/src/scripts/npc_guildhouse.cpp +++ b/modules/mod-guildhouse/src/scripts/npc_guildhouse.cpp @@ -42,6 +42,7 @@ #include "AccountMgr.h" #include "AZTH.h" #include "ExtraDatabase.h" +#include "ScriptedGossip.h" //[AZTH] #include "AzthUtils.h" @@ -220,7 +221,7 @@ class npc_guild_master : public CreatureScript //send comment as a gossip item //transmit guildhouseId in Action variable - player->ADD_GOSSIP_ITEM(ICON_GOSSIP_TABARD, complete_comment.str().c_str(), GOSSIP_SENDER_MAIN, + AddGossipItemFor(player,ICON_GOSSIP_TABARD, complete_comment.str().c_str(), GOSSIP_SENDER_MAIN, guildhouseId + OFFSET_GH_ID_TO_ACTION); } while (result->NextRow()); @@ -230,13 +231,13 @@ class npc_guild_master : public CreatureScript //assume that we have additional page //add link to next GOSSIP_COUNT_MAX items - player->ADD_GOSSIP_ITEM(ICON_GOSSIP_BALOONDOTS, MSG_GOSSIP_NEXTPAGE, GOSSIP_SENDER_MAIN, + AddGossipItemFor(player,ICON_GOSSIP_BALOONDOTS, MSG_GOSSIP_NEXTPAGE, GOSSIP_SENDER_MAIN, guildhouseId + OFFSET_SHOWBUY_FROM); } - player->ADD_GOSSIP_ITEM(ICON_GOSSIP_BALOONDOTS, MSG_GOSSIP_CLOSE, GOSSIP_SENDER_MAIN, + AddGossipItemFor(player,ICON_GOSSIP_BALOONDOTS, MSG_GOSSIP_CLOSE, GOSSIP_SENDER_MAIN, ACTION_CLOSE); - player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID()); + SendGossipMenuFor(player,DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID()); return true; } @@ -246,7 +247,7 @@ class npc_guild_master : public CreatureScript { //all guildhouses are occupied _creature->MonsterWhisper(MSG_NOFREEGH, player); - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); } else { @@ -302,7 +303,7 @@ class npc_guild_master : public CreatureScript //send comment as a gossip item //transmit guildhouseId in Action variable - player->ADD_GOSSIP_ITEM(ICON_GOSSIP_TABARD, complete_comment.str().c_str(), GOSSIP_SENDER_MAIN, + AddGossipItemFor(player,ICON_GOSSIP_TABARD, complete_comment.str().c_str(), GOSSIP_SENDER_MAIN, add_typeId + OFFSET_GH_ADD_ID_TO_ACTION); } while (result->NextRow()); @@ -311,14 +312,14 @@ class npc_guild_master : public CreatureScript { //assume that we have additional page //add link to next GOSSIP_COUNT_MAX items - player->ADD_GOSSIP_ITEM(ICON_GOSSIP_BALOONDOTS, MSG_GOSSIP_NEXTPAGE, GOSSIP_SENDER_MAIN, + AddGossipItemFor(player,ICON_GOSSIP_BALOONDOTS, MSG_GOSSIP_NEXTPAGE, GOSSIP_SENDER_MAIN, add_typeId + OFFSET_SHOWBUY_FROM_ADD); } - player->ADD_GOSSIP_ITEM(ICON_GOSSIP_BALOONDOTS, MSG_GOSSIP_CLOSE, GOSSIP_SENDER_MAIN, + AddGossipItemFor(player,ICON_GOSSIP_BALOONDOTS, MSG_GOSSIP_CLOSE, GOSSIP_SENDER_MAIN, ACTION_CLOSE); - player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID()); + SendGossipMenuFor(player,DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID()); return true; } @@ -328,7 +329,7 @@ class npc_guild_master : public CreatureScript { //all no GhAdd to Show _creature->MonsterWhisper(MSG_NOADDGH, player); - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); } else { @@ -350,12 +351,12 @@ class npc_guild_master : public CreatureScript return false; } - player->ADD_GOSSIP_ITEM(ICON_GOSSIP_GOLD, MSG_CONFIRM_BUY, GOSSIP_SENDER_MAIN, + AddGossipItemFor(player,ICON_GOSSIP_GOLD, MSG_CONFIRM_BUY, GOSSIP_SENDER_MAIN, guildhouseId + OFFSET_CONFIRM_BUY_ID_TO_ACTION); - player->ADD_GOSSIP_ITEM(ICON_GOSSIP_BALOONDOTS, MSG_NEGATE_BUY, GOSSIP_SENDER_MAIN, + AddGossipItemFor(player,ICON_GOSSIP_BALOONDOTS, MSG_NEGATE_BUY, GOSSIP_SENDER_MAIN, ACTION_NEGATE_BUY); - player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID()); + SendGossipMenuFor(player,DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID()); return true; }; @@ -404,12 +405,12 @@ class npc_guild_master : public CreatureScript if (!player) return false; - player->ADD_GOSSIP_ITEM(ICON_GOSSIP_GOLD, MSG_CONFIRM_BUY, GOSSIP_SENDER_MAIN, + AddGossipItemFor(player,ICON_GOSSIP_GOLD, MSG_CONFIRM_BUY, GOSSIP_SENDER_MAIN, gh_Add + OFFSET_CONFIRM_BUY_ADD_ID_TO_ACTION); - player->ADD_GOSSIP_ITEM(ICON_GOSSIP_BALOONDOTS, MSG_NEGATE_BUY, GOSSIP_SENDER_MAIN, + AddGossipItemFor(player,ICON_GOSSIP_BALOONDOTS, MSG_NEGATE_BUY, GOSSIP_SENDER_MAIN, ACTION_NEGATE_BUY_ADD); - player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID()); + SendGossipMenuFor(player,DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID()); return true; }; @@ -480,24 +481,24 @@ class npc_guild_master : public CreatureScript return true; /* if (isPlayerMarried(player)) - player->ADD_GOSSIP_ITEM(ICON_GOSSIP_BALOON, MSG_GOSSIP_MARRIED, + AddGossipItemFor(player,ICON_GOSSIP_BALOON, MSG_GOSSIP_MARRIED, GOSSIP_SENDER_MAIN, ACTION_MARRIED); */ - player->ADD_GOSSIP_ITEM(ICON_GOSSIP_BALOON, MSG_GOSSIP_TELE, + AddGossipItemFor(player,ICON_GOSSIP_BALOON, MSG_GOSSIP_TELE, GOSSIP_SENDER_MAIN, ACTION_TELE); if (isPlayerGuildLeader(player)) { //show additional menu for guild leader - player->ADD_GOSSIP_ITEM(ICON_GOSSIP_GOLD, MSG_GOSSIP_BUY, GOSSIP_SENDER_MAIN, ACTION_SHOW_BUYLIST); + AddGossipItemFor(player,ICON_GOSSIP_GOLD, MSG_GOSSIP_BUY, GOSSIP_SENDER_MAIN, ACTION_SHOW_BUYLIST); if (isPlayerHasGuildhouse(player, _creature)) { //and additional for guildhouse owner - player->ADD_GOSSIP_ITEM_EXTENDED(ICON_GOSSIP_GOLD, MSG_GOSSIP_SELL, GOSSIP_SENDER_MAIN, ACTION_SELL_GUILDHOUSE, MSG_CODEBOX_SELL, 0, true); - player->ADD_GOSSIP_ITEM(ICON_GOSSIP_GOLD, MSG_GOSSIP_ADD, GOSSIP_SENDER_MAIN, ACTION_SHOW_BUYADD_LIST); + AddGossipItemFor(player,ICON_GOSSIP_GOLD, MSG_GOSSIP_SELL, GOSSIP_SENDER_MAIN, ACTION_SELL_GUILDHOUSE, MSG_CODEBOX_SELL, 0, true); + AddGossipItemFor(player,ICON_GOSSIP_GOLD, MSG_GOSSIP_ADD, GOSSIP_SENDER_MAIN, ACTION_SHOW_BUYADD_LIST); } } - player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID()); + SendGossipMenuFor(player,DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID()); return true; }; @@ -513,7 +514,7 @@ class npc_guild_master : public CreatureScript { case ACTION_TELE: //teleport player to GH - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); teleportPlayerToGuildHouse(player, _creature); break; case ACTION_SHOW_BUYLIST: @@ -525,13 +526,13 @@ class npc_guild_master : public CreatureScript showBuyAddList(player, _creature); break; case ACTION_CLOSE: - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); break; case ACTION_NEGATE_BUY: - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); break; case ACTION_NEGATE_BUY_ADD: - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); break; default: if (action > OFFSET_SHOWBUY_FROM_ADD) @@ -556,7 +557,7 @@ class npc_guild_master : public CreatureScript //get guildhouseAddId from action //guildhouseAddId = action - OFFSET_CONFIRM_BUY_ADD_ID_TO_ACTION buyGuildhouseAdd(player, _creature, action - OFFSET_CONFIRM_BUY_ADD_ID_TO_ACTION); - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); player->SaveToDB(false,false); } else if (action > OFFSET_CONFIRM_BUY_ID_TO_ACTION) @@ -565,7 +566,7 @@ class npc_guild_master : public CreatureScript //get guildhouseId from action //guildhouseId = action - OFFSET_CONFIRM_BUY_ID_TO_ACTION buyGuildhouse(player, _creature, action - OFFSET_CONFIRM_BUY_ID_TO_ACTION); - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); player->SaveToDB(false, false); } break; @@ -599,7 +600,7 @@ class npc_guild_master : public CreatureScript sellGuildhouse(player, _creature); player->SaveToDB(false,false); } - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); return true; } } @@ -648,13 +649,13 @@ class guild_guard : public CreatureScript if (_Creature->GetAI()) { if (_Creature->GetAI()->GetData(0)) - player->ADD_GOSSIP_ITEM(5, "Disable Protection", GOSSIP_SENDER_MAIN, 11); + AddGossipItemFor(player,5, "Disable Protection", GOSSIP_SENDER_MAIN, 11); else - player->ADD_GOSSIP_ITEM(5, "Activate Protection", GOSSIP_SENDER_MAIN, 10); + AddGossipItemFor(player,5, "Activate Protection", GOSSIP_SENDER_MAIN, 10); } } - player->ADD_GOSSIP_ITEM(5, "Chiudi", GOSSIP_SENDER_MAIN, 12); - player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _Creature->GetGUID()); + AddGossipItemFor(player,5, "Chiudi", GOSSIP_SENDER_MAIN, 12); + SendGossipMenuFor(player,DEFAULT_GOSSIP_MESSAGE, _Creature->GetGUID()); return true; }; @@ -683,7 +684,7 @@ class guild_guard : public CreatureScript } } } - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); return true; }; @@ -810,52 +811,52 @@ class npc_buffnpc : public CreatureScript // Main Menu for Alliance if ( player->GetTeamId(true) == TEAM_ALLIANCE ) { - player->ADD_GOSSIP_ITEM( 5, "Remove Res Sickness" , GOSSIP_SENDER_MAIN, 1180); - //player->ADD_GOSSIP_ITEM( 5, "Give me gold" , GOSSIP_SENDER_MAIN, 1185); - //player->ADD_GOSSIP_ITEM( 5, "Give me Soul Shards" , GOSSIP_SENDER_MAIN, 1190); - player->ADD_GOSSIP_ITEM( 5, "Heal me please" , GOSSIP_SENDER_MAIN, 1195); - player->ADD_GOSSIP_ITEM( 5, "Ritual of Souls please" , GOSSIP_SENDER_MAIN, 1200); - player->ADD_GOSSIP_ITEM( 5, "Table please" , GOSSIP_SENDER_MAIN, 1205); + AddGossipItemFor(player, 5, "Remove Res Sickness" , GOSSIP_SENDER_MAIN, 1180); + //AddGossipItemFor(player, 5, "Give me gold" , GOSSIP_SENDER_MAIN, 1185); + //AddGossipItemFor(player, 5, "Give me Soul Shards" , GOSSIP_SENDER_MAIN, 1190); + AddGossipItemFor(player, 5, "Heal me please" , GOSSIP_SENDER_MAIN, 1195); + AddGossipItemFor(player, 5, "Ritual of Souls please" , GOSSIP_SENDER_MAIN, 1200); + AddGossipItemFor(player, 5, "Table please" , GOSSIP_SENDER_MAIN, 1205); if (player->getLevel() > 69) { - player->ADD_GOSSIP_ITEM( 5, "Buff me Arcane Intelect" , GOSSIP_SENDER_MAIN, 1210); - player->ADD_GOSSIP_ITEM( 5, "Buff me Mark of the Wild" , GOSSIP_SENDER_MAIN, 1215); - player->ADD_GOSSIP_ITEM( 5, "Buff me Thorns" , GOSSIP_SENDER_MAIN, 1220); - player->ADD_GOSSIP_ITEM( 5, "Buff me Blessing of Sanctuary" , GOSSIP_SENDER_MAIN, 1225); - player->ADD_GOSSIP_ITEM( 5, "Buff me Blessing of Might" , GOSSIP_SENDER_MAIN, 1230); - //player->ADD_GOSSIP_ITEM( 5, "Buff me Greater Blessing of Light" , GOSSIP_SENDER_MAIN, 1235); - player->ADD_GOSSIP_ITEM( 5, "Buff me Blessing of Wisdom" , GOSSIP_SENDER_MAIN, 1240); - player->ADD_GOSSIP_ITEM( 5, "Buff me Blessing of Kings" , GOSSIP_SENDER_MAIN, 1245); - player->ADD_GOSSIP_ITEM( 5, "Buff me Divine Spirit" , GOSSIP_SENDER_MAIN, 1250); - player->ADD_GOSSIP_ITEM( 5, "Buff me Shadow Protection" , GOSSIP_SENDER_MAIN, 1251); - player->ADD_GOSSIP_ITEM( 5, "Buff me Power Word: Fortitude" , GOSSIP_SENDER_MAIN, 1252); + AddGossipItemFor(player, 5, "Buff me Arcane Intelect" , GOSSIP_SENDER_MAIN, 1210); + AddGossipItemFor(player, 5, "Buff me Mark of the Wild" , GOSSIP_SENDER_MAIN, 1215); + AddGossipItemFor(player, 5, "Buff me Thorns" , GOSSIP_SENDER_MAIN, 1220); + AddGossipItemFor(player, 5, "Buff me Blessing of Sanctuary" , GOSSIP_SENDER_MAIN, 1225); + AddGossipItemFor(player, 5, "Buff me Blessing of Might" , GOSSIP_SENDER_MAIN, 1230); + //AddGossipItemFor(player, 5, "Buff me Greater Blessing of Light" , GOSSIP_SENDER_MAIN, 1235); + AddGossipItemFor(player, 5, "Buff me Blessing of Wisdom" , GOSSIP_SENDER_MAIN, 1240); + AddGossipItemFor(player, 5, "Buff me Blessing of Kings" , GOSSIP_SENDER_MAIN, 1245); + AddGossipItemFor(player, 5, "Buff me Divine Spirit" , GOSSIP_SENDER_MAIN, 1250); + AddGossipItemFor(player, 5, "Buff me Shadow Protection" , GOSSIP_SENDER_MAIN, 1251); + AddGossipItemFor(player, 5, "Buff me Power Word: Fortitude" , GOSSIP_SENDER_MAIN, 1252); } } else // Main Menu for Horde { - player->ADD_GOSSIP_ITEM( 5, "Remove Res Sickness" , GOSSIP_SENDER_MAIN, 1180); - //player->ADD_GOSSIP_ITEM( 5, "Give me gold" , GOSSIP_SENDER_MAIN, 1185); - //player->ADD_GOSSIP_ITEM( 5, "Give me Soul Shards" , GOSSIP_SENDER_MAIN, 1190); - player->ADD_GOSSIP_ITEM( 5, "Heal me please" , GOSSIP_SENDER_MAIN, 1195); - player->ADD_GOSSIP_ITEM( 5, "Ritual of Souls please" , GOSSIP_SENDER_MAIN, 1200); - player->ADD_GOSSIP_ITEM( 5, "Table please" , GOSSIP_SENDER_MAIN, 1205); + AddGossipItemFor(player, 5, "Remove Res Sickness" , GOSSIP_SENDER_MAIN, 1180); + //AddGossipItemFor(player, 5, "Give me gold" , GOSSIP_SENDER_MAIN, 1185); + //AddGossipItemFor(player, 5, "Give me Soul Shards" , GOSSIP_SENDER_MAIN, 1190); + AddGossipItemFor(player, 5, "Heal me please" , GOSSIP_SENDER_MAIN, 1195); + AddGossipItemFor(player, 5, "Ritual of Souls please" , GOSSIP_SENDER_MAIN, 1200); + AddGossipItemFor(player, 5, "Table please" , GOSSIP_SENDER_MAIN, 1205); if (player->getLevel() > 69) { - player->ADD_GOSSIP_ITEM( 5, "Buff me Arcane Intelect" , GOSSIP_SENDER_MAIN, 1210); - player->ADD_GOSSIP_ITEM( 5, "Buff me Mark of the Wild" , GOSSIP_SENDER_MAIN, 1215); - player->ADD_GOSSIP_ITEM( 5, "Buff me Thorns" , GOSSIP_SENDER_MAIN, 1220); - player->ADD_GOSSIP_ITEM( 5, "Buff me Blessing of Sanctuary" , GOSSIP_SENDER_MAIN, 1225); - player->ADD_GOSSIP_ITEM( 5, "Buff me Blessing of Might" , GOSSIP_SENDER_MAIN, 1230); - //player->ADD_GOSSIP_ITEM( 5, "Buff me Greater Blessing of Light" , GOSSIP_SENDER_MAIN, 1235); - player->ADD_GOSSIP_ITEM( 5, "Buff me Blessing of Wisdom" , GOSSIP_SENDER_MAIN, 1240); - player->ADD_GOSSIP_ITEM( 5, "Buff me Blessing of Kings" , GOSSIP_SENDER_MAIN, 1245); - player->ADD_GOSSIP_ITEM( 5, "Buff me Divine Spirit" , GOSSIP_SENDER_MAIN, 1250); - player->ADD_GOSSIP_ITEM( 5, "Buff me Shadow Protection" , GOSSIP_SENDER_MAIN, 1251); - player->ADD_GOSSIP_ITEM( 5, "Buff me Power Word: Fortitude" , GOSSIP_SENDER_MAIN, 1252); + AddGossipItemFor(player, 5, "Buff me Arcane Intelect" , GOSSIP_SENDER_MAIN, 1210); + AddGossipItemFor(player, 5, "Buff me Mark of the Wild" , GOSSIP_SENDER_MAIN, 1215); + AddGossipItemFor(player, 5, "Buff me Thorns" , GOSSIP_SENDER_MAIN, 1220); + AddGossipItemFor(player, 5, "Buff me Blessing of Sanctuary" , GOSSIP_SENDER_MAIN, 1225); + AddGossipItemFor(player, 5, "Buff me Blessing of Might" , GOSSIP_SENDER_MAIN, 1230); + //AddGossipItemFor(player, 5, "Buff me Greater Blessing of Light" , GOSSIP_SENDER_MAIN, 1235); + AddGossipItemFor(player, 5, "Buff me Blessing of Wisdom" , GOSSIP_SENDER_MAIN, 1240); + AddGossipItemFor(player, 5, "Buff me Blessing of Kings" , GOSSIP_SENDER_MAIN, 1245); + AddGossipItemFor(player, 5, "Buff me Divine Spirit" , GOSSIP_SENDER_MAIN, 1250); + AddGossipItemFor(player, 5, "Buff me Shadow Protection" , GOSSIP_SENDER_MAIN, 1251); + AddGossipItemFor(player, 5, "Buff me Power Word: Fortitude" , GOSSIP_SENDER_MAIN, 1252); } } - player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,_Creature->GetGUID()); + SendGossipMenuFor(player,DEFAULT_GOSSIP_MESSAGE,_Creature->GetGUID()); return true; }; @@ -865,7 +866,7 @@ class npc_buffnpc : public CreatureScript // Not allow in combat if(!player->getAttackers().empty()) { - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); _Creature->MonsterSay(MSG_INCOMBAT, LANG_UNIVERSAL, 0); return; } @@ -881,7 +882,7 @@ class npc_buffnpc : public CreatureScript _Creature->CastSpell(player,38588,false); // Healing effect player->RemoveAurasDueToSpell(SPELL_ID_PASSIVE_RESURRECTION_SICKNESS); - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); break; /*case 1185://Give me Gold @@ -893,59 +894,59 @@ class npc_buffnpc : public CreatureScript break;*/ case 1195: // Heal me please - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); _Creature->CastSpell(player,/*38588*/25840,false); break; case 1200: // Ritual of Souls please - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); player->CastSpell(player,58889,false); break; case 1205: // Table please - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); player->CastSpell(player,58661,false); break; case 1210: // Buff me Arcane Intelect - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); _Creature->CastSpell(player,42995,false); break; case 1215: // Buff me Mark of the Wild - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); _Creature->CastSpell(player,48469,false); break; case 1220: // Buff me Thorns - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); _Creature->CastSpell(player,26992,false); break; case 1225: // Buff me Blessing of Sanctuary - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); _Creature->CastSpell(player,20911,false); break; case 1230: // Buff me Blessing of Might - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); _Creature->CastSpell(player,48932,false); break; case 1235: // Buff me Greater Blessing of Light - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); _Creature->CastSpell(player,27145,false); break; case 1240: // Buff me Blessing of Wisdom - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); _Creature->CastSpell(player,48936,false); break; case 1245: // Buff me Blessing of Kings - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); _Creature->CastSpell(player,20217,false); break; case 1250: // Buff me Divine Spirit - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); _Creature->CastSpell(player,48073,false); break; case 1251: // Buff me Shadow Protection - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); _Creature->CastSpell(player,48169,false); break; case 1252: // Buff me Power Word: Fortitude - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); _Creature->CastSpell(player,48161,false); break; } @@ -977,7 +978,7 @@ void Teleport(Player *player, uint16 map, if (sAzthUtils->isPhasedDimension(aurDim) && !sAZTH->GetAZTHPlayer(player)->changeDimension(DIMENSION_NORMAL, true)) return; - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); player->CastSpell(player, SPELL_VISUAL_TELEPORT, true); if (!player->TeleportTo(map, X, Y, Z, orient) && sAzthUtils->isPhasedDimension(aurDim)) sAZTH->GetAZTHPlayer(player)->changeDimension(aurDim); // we have to restore old dimension to avoid exploits if teleport failed @@ -991,27 +992,27 @@ class npc_portal : public CreatureScript bool OnGossipHello(Player *player, Creature *_Creature) { - player->ADD_GOSSIP_ITEM( 5, "Teleport Dalaran" , GOSSIP_SENDER_MAIN, 1005); - player->ADD_GOSSIP_ITEM( 5, "Teleport Shattrath" , GOSSIP_SENDER_MAIN, 1010); - player->ADD_GOSSIP_ITEM( 5, "Teleport Wintergrasp" , GOSSIP_SENDER_MAIN, 1100); + AddGossipItemFor(player, 5, "Teleport Dalaran" , GOSSIP_SENDER_MAIN, 1005); + AddGossipItemFor(player, 5, "Teleport Shattrath" , GOSSIP_SENDER_MAIN, 1010); + AddGossipItemFor(player, 5, "Teleport Wintergrasp" , GOSSIP_SENDER_MAIN, 1100); // Main Menu for Alliance if ( player->GetTeamId(true) == TEAM_ALLIANCE ) { - player->ADD_GOSSIP_ITEM( 5, "Teleport Stormwind" , GOSSIP_SENDER_MAIN, 1015); - player->ADD_GOSSIP_ITEM( 5, "Teleport Ironforge" , GOSSIP_SENDER_MAIN, 1020); - player->ADD_GOSSIP_ITEM( 5, "Teleport Darnassus" , GOSSIP_SENDER_MAIN, 1025); - player->ADD_GOSSIP_ITEM( 5, "Teleport Exodar" , GOSSIP_SENDER_MAIN, 1030); + AddGossipItemFor(player, 5, "Teleport Stormwind" , GOSSIP_SENDER_MAIN, 1015); + AddGossipItemFor(player, 5, "Teleport Ironforge" , GOSSIP_SENDER_MAIN, 1020); + AddGossipItemFor(player, 5, "Teleport Darnassus" , GOSSIP_SENDER_MAIN, 1025); + AddGossipItemFor(player, 5, "Teleport Exodar" , GOSSIP_SENDER_MAIN, 1030); } else // Main Menu for Horde { - player->ADD_GOSSIP_ITEM( 5, "Teleport Orgrimmar" , GOSSIP_SENDER_MAIN, 1035); - player->ADD_GOSSIP_ITEM( 5, "Teleport Undercity" , GOSSIP_SENDER_MAIN, 1040); - player->ADD_GOSSIP_ITEM( 5, "Teleport Thunder Bluff" , GOSSIP_SENDER_MAIN, 1045); - player->ADD_GOSSIP_ITEM( 5, "Teleport Silvermoon" , GOSSIP_SENDER_MAIN, 1050); + AddGossipItemFor(player, 5, "Teleport Orgrimmar" , GOSSIP_SENDER_MAIN, 1035); + AddGossipItemFor(player, 5, "Teleport Undercity" , GOSSIP_SENDER_MAIN, 1040); + AddGossipItemFor(player, 5, "Teleport Thunder Bluff" , GOSSIP_SENDER_MAIN, 1045); + AddGossipItemFor(player, 5, "Teleport Silvermoon" , GOSSIP_SENDER_MAIN, 1050); } - player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,_Creature->GetGUID()); + SendGossipMenuFor(player,DEFAULT_GOSSIP_MESSAGE,_Creature->GetGUID()); return true; }; @@ -1021,7 +1022,7 @@ class npc_portal : public CreatureScript // Not allow in combat if(!player->getAttackers().empty()) { - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); _Creature->MonsterSay(MSG_INCOMBAT, LANG_UNIVERSAL, 0); return; } @@ -1130,40 +1131,40 @@ namespace void AffichCat(Player * const player, Creature * const creature) { if (PageC[player] > 0) - player->ADD_GOSSIP_ITEM(7, PREV_PAGE, GOSSIP_PREV_PAGEC, 0); + AddGossipItemFor(player,7, PREV_PAGE, GOSSIP_PREV_PAGEC, 0); VCatDest_t i (PageC[player] * NB_ITEM_PAGE); for ( ; i < TabCatDest.size() && i < (NB_ITEM_PAGE * (PageC[player] + 1)); ++i) { if (TabCatDest[i].IsAllowedToTeleport(player)) - player->ADD_GOSSIP_ITEM(7, TabCatDest[i].GetName(player->IsGameMaster()).c_str(), GOSSIP_SHOW_DEST, i); + AddGossipItemFor(player,7, TabCatDest[i].GetName(player->IsGameMaster()).c_str(), GOSSIP_SHOW_DEST, i); } if (i < TabCatDest.size()) - player->ADD_GOSSIP_ITEM(7, NEXT_PAGE, GOSSIP_NEXT_PAGEC, 0); + AddGossipItemFor(player,7, NEXT_PAGE, GOSSIP_NEXT_PAGEC, 0); - player->SEND_GOSSIP_MENU(MSG_CAT, creature->GetGUID()); + SendGossipMenuFor(player,MSG_CAT, creature->GetGUID()); }; // Display destination categories void AffichDest(Player * const player, Creature * const creature) { if (PageD[player] > 0) - player->ADD_GOSSIP_ITEM(7, PREV_PAGE, GOSSIP_PREV_PAGED, 0); + AddGossipItemFor(player,7, PREV_PAGE, GOSSIP_PREV_PAGED, 0); CatDest::VDest_t i (PageD[player] * NB_ITEM_PAGE); for ( ; i < TabCatDest[Cat[player]].size() && i < (NB_ITEM_PAGE * (PageD[player] + 1)); ++i) { - player->ADD_GOSSIP_ITEM(5, TabCatDest[Cat[player]].GetDest(i).m_name.c_str(), GOSSIP_TELEPORT, i); + AddGossipItemFor(player,5, TabCatDest[Cat[player]].GetDest(i).m_name.c_str(), GOSSIP_TELEPORT, i); } if (i < TabCatDest[Cat[player]].size()) - player->ADD_GOSSIP_ITEM(7, NEXT_PAGE, GOSSIP_NEXT_PAGED, 0); + AddGossipItemFor(player,7, NEXT_PAGE, GOSSIP_NEXT_PAGED, 0); if (CatDest::CountOfCategoryAllowedBy(player) > 1) - player->ADD_GOSSIP_ITEM(7, MAIN_MENU, GOSSIP_MAIN_MENU, 0); + AddGossipItemFor(player,7, MAIN_MENU, GOSSIP_MAIN_MENU, 0); - player->SEND_GOSSIP_MENU(MSG_DEST, creature->GetGUID()); + SendGossipMenuFor(player,MSG_DEST, creature->GetGUID()); }; // Verification before teleportation @@ -1203,7 +1204,7 @@ class npc_teleport : public CreatureScript if(player->IsInCombat()) { - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); creature->MonsterWhisper("You are in combat. Come back later", player); return true; } @@ -1253,7 +1254,7 @@ class npc_teleport : public CreatureScript // Teleportation case GOSSIP_TELEPORT: - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); /* what is this code? removing sickness? meh.. if(player->HasAura(15007,0)) { diff --git a/modules/mod-hearthstone-mode/src/scripts/azth_custom_hearthstone_mode.cpp b/modules/mod-hearthstone-mode/src/scripts/azth_custom_hearthstone_mode.cpp index 12e3511..413213e 100644 --- a/modules/mod-hearthstone-mode/src/scripts/azth_custom_hearthstone_mode.cpp +++ b/modules/mod-hearthstone-mode/src/scripts/azth_custom_hearthstone_mode.cpp @@ -15,6 +15,13 @@ #include "Solo3v3.h" #include "ExtraDatabase.h" +HearthstoneMode* HearthstoneMode::instance() +{ + static HearthstoneMode instance; + return &instance; +} + + // old void HearthstoneMode::AzthSendListInventory(ObjectGuid vendorGuid, WorldSession * session, uint32 /*extendedCostStartValue*/) { @@ -555,42 +562,42 @@ class npc_han_al : public CreatureScript //endcheck if (bitmask>0) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, sAzthLang->get(AZTH_LANG_HS_QUESTS, player), GOSSIP_SENDER_MAIN, 0); + AddGossipItemFor(player,GOSSIP_ICON_DOT, sAzthLang->get(AZTH_LANG_HS_QUESTS, player), GOSSIP_SENDER_MAIN, 0); if ((bitmask & BITMASK_PVP) == BITMASK_PVP) { if (questPvp) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_BATTLE, sAzthLang->getf(AZTH_LANG_HS_PVP_QUEST, player, (questPvp->GetTitle() + (pvpId ? "" : sAzthLang->get(AZTH_LANG_HS_QUEST_LIMIT_SUFFIX, player))).c_str()), GOSSIP_SENDER_MAIN, pvpId); + AddGossipItemFor(player,GOSSIP_ICON_BATTLE, sAzthLang->getf(AZTH_LANG_HS_PVP_QUEST, player, (questPvp->GetTitle() + (pvpId ? "" : sAzthLang->get(AZTH_LANG_HS_QUEST_LIMIT_SUFFIX, player))).c_str()), GOSSIP_SENDER_MAIN, pvpId); } if (!sAZTH->GetAZTHPlayer(player)->isPvP()) { if ((bitmask & BITMASK_DAILY_RANDOM) == BITMASK_DAILY_RANDOM) { if (questPve) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, sAzthLang->getf(AZTH_LANG_HS_DAILY_QUEST, player, (questPve->GetTitle() + (pveId ? "" : sAzthLang->get(AZTH_LANG_HS_QUEST_LIMIT_SUFFIX, player))).c_str()), GOSSIP_SENDER_MAIN, pveId); + AddGossipItemFor(player,GOSSIP_ICON_TABARD, sAzthLang->getf(AZTH_LANG_HS_DAILY_QUEST, player, (questPve->GetTitle() + (pveId ? "" : sAzthLang->get(AZTH_LANG_HS_QUEST_LIMIT_SUFFIX, player))).c_str()), GOSSIP_SENDER_MAIN, pveId); } if ((bitmask & BITMASK_WEEKLY_RND1) == BITMASK_WEEKLY_RND1) { if (questClassicWeekly) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, sAzthLang->getf(AZTH_LANG_HS_WEEKLY_QUEST, player, (questClassicWeekly->GetTitle() + (weeklyClassicId ? "" : sAzthLang->get(AZTH_LANG_HS_QUEST_LIMIT_SUFFIX, player))).c_str()), GOSSIP_SENDER_MAIN, weeklyClassicId); + AddGossipItemFor(player,GOSSIP_ICON_TABARD, sAzthLang->getf(AZTH_LANG_HS_WEEKLY_QUEST, player, (questClassicWeekly->GetTitle() + (weeklyClassicId ? "" : sAzthLang->get(AZTH_LANG_HS_QUEST_LIMIT_SUFFIX, player))).c_str()), GOSSIP_SENDER_MAIN, weeklyClassicId); } if ((bitmask & BITMASK_WEEKLY_RND2) == BITMASK_WEEKLY_RND2) { if (questTBCWeekly) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, sAzthLang->getf(AZTH_LANG_HS_WEEKLY_QUEST, player, (questTBCWeekly->GetTitle() + (weeklyTBCId ? "" : sAzthLang->get(AZTH_LANG_HS_QUEST_LIMIT_SUFFIX, player))).c_str()), GOSSIP_SENDER_MAIN, weeklyTBCId); + AddGossipItemFor(player,GOSSIP_ICON_TABARD, sAzthLang->getf(AZTH_LANG_HS_WEEKLY_QUEST, player, (questTBCWeekly->GetTitle() + (weeklyTBCId ? "" : sAzthLang->get(AZTH_LANG_HS_QUEST_LIMIT_SUFFIX, player))).c_str()), GOSSIP_SENDER_MAIN, weeklyTBCId); } if ((bitmask & BITMASK_WEEKLY_RND3) == BITMASK_WEEKLY_RND3) { if (questWotlkWeekly) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, sAzthLang->getf(AZTH_LANG_HS_WEEKLY_QUEST, player, (questWotlkWeekly->GetTitle()+ (weeklyWotlkId ? "" : sAzthLang->get(AZTH_LANG_HS_QUEST_LIMIT_SUFFIX, player) )).c_str()), GOSSIP_SENDER_MAIN, weeklyWotlkId); + AddGossipItemFor(player,GOSSIP_ICON_TABARD, sAzthLang->getf(AZTH_LANG_HS_WEEKLY_QUEST, player, (questWotlkWeekly->GetTitle()+ (weeklyWotlkId ? "" : sAzthLang->get(AZTH_LANG_HS_QUEST_LIMIT_SUFFIX, player) )).c_str()), GOSSIP_SENDER_MAIN, weeklyWotlkId); } if (bitmask>0) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, sAzthLang->get(AZTH_LANG_HS_TW_QUESTS, player), GOSSIP_SENDER_MAIN, 0); + AddGossipItemFor(player,GOSSIP_ICON_DOT, sAzthLang->get(AZTH_LANG_HS_TW_QUESTS, player), GOSSIP_SENDER_MAIN, 0); //"TW Weekly Quest Check & gossip" @@ -611,7 +618,7 @@ class npc_han_al : public CreatureScript { if (quest) { isEmpty = false; - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, sAzthLang->getf(AZTH_LANG_HS_TW_WEEKLY_QUEST, player, (quest->GetTitle() + (weeklyTwMaxCheck <= MAX_PVE_QUEST_NUMBER ? "" : sAzthLang->get(AZTH_LANG_HS_QUEST_LIMIT_SUFFIX, player) )).c_str()), GOSSIP_SENDER_MAIN, weeklyTwMaxCheck <= MAX_PVE_QUEST_NUMBER ? *it : 0); + AddGossipItemFor(player,GOSSIP_ICON_TABARD, sAzthLang->getf(AZTH_LANG_HS_TW_WEEKLY_QUEST, player, (quest->GetTitle() + (weeklyTwMaxCheck <= MAX_PVE_QUEST_NUMBER ? "" : sAzthLang->get(AZTH_LANG_HS_QUEST_LIMIT_SUFFIX, player) )).c_str()), GOSSIP_SENDER_MAIN, weeklyTwMaxCheck <= MAX_PVE_QUEST_NUMBER ? *it : 0); } } } @@ -620,7 +627,7 @@ class npc_han_al : public CreatureScript if ((bitmask & BITMASK_TW_WEEKLY_RANDOM) == BITMASK_TW_WEEKLY_RANDOM) { if (questWeeklyRandomTw) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, sAzthLang->getf(AZTH_LANG_HS_TW_WEEKLY_RANDOM_QUEST, player, (questWeeklyRandomTw->GetTitle() + (weeklyRandomTwId ? "" : sAzthLang->get(AZTH_LANG_HS_QUEST_LIMIT_SUFFIX, player))).c_str()), GOSSIP_SENDER_MAIN, weeklyRandomTwId); + AddGossipItemFor(player,GOSSIP_ICON_TABARD, sAzthLang->getf(AZTH_LANG_HS_TW_WEEKLY_RANDOM_QUEST, player, (questWeeklyRandomTw->GetTitle() + (weeklyRandomTwId ? "" : sAzthLang->get(AZTH_LANG_HS_QUEST_LIMIT_SUFFIX, player))).c_str()), GOSSIP_SENDER_MAIN, weeklyRandomTwId); } //"TW Daily Quest Check & gossip" @@ -641,7 +648,7 @@ class npc_han_al : public CreatureScript { if (quest) { isEmpty = false; - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, sAzthLang->getf(AZTH_LANG_HS_TW_DAILY_QUEST, player, (quest->GetTitle() + (dailyTwMaxCheck <= MAX_PVE_QUEST_NUMBER ? "" : sAzthLang->get(AZTH_LANG_HS_QUEST_LIMIT_SUFFIX, player))).c_str()), GOSSIP_SENDER_MAIN, dailyTwMaxCheck <= MAX_PVE_QUEST_NUMBER ? *it : 0); + AddGossipItemFor(player,GOSSIP_ICON_TABARD, sAzthLang->getf(AZTH_LANG_HS_TW_DAILY_QUEST, player, (quest->GetTitle() + (dailyTwMaxCheck <= MAX_PVE_QUEST_NUMBER ? "" : sAzthLang->get(AZTH_LANG_HS_QUEST_LIMIT_SUFFIX, player))).c_str()), GOSSIP_SENDER_MAIN, dailyTwMaxCheck <= MAX_PVE_QUEST_NUMBER ? *it : 0); } } } @@ -649,7 +656,7 @@ class npc_han_al : public CreatureScript if ((bitmask & BITMASK_TW_DAILY_RANDOM) == BITMASK_TW_DAILY_RANDOM) { if (questDailyRandomTw) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, sAzthLang->getf(AZTH_LANG_HS_TW_DAILY_RANDOM_QUEST, player, (questDailyRandomTw->GetTitle() + (dailyRandomTwId ? "" : sAzthLang->get(AZTH_LANG_HS_QUEST_LIMIT_SUFFIX, player))).c_str()), GOSSIP_SENDER_MAIN, dailyRandomTwId); + AddGossipItemFor(player,GOSSIP_ICON_TABARD, sAzthLang->getf(AZTH_LANG_HS_TW_DAILY_RANDOM_QUEST, player, (questDailyRandomTw->GetTitle() + (dailyRandomTwId ? "" : sAzthLang->get(AZTH_LANG_HS_QUEST_LIMIT_SUFFIX, player))).c_str()), GOSSIP_SENDER_MAIN, dailyRandomTwId); } } @@ -665,7 +672,7 @@ class npc_han_al : public CreatureScript gossip = 100003; */ - player->SEND_GOSSIP_MENU(gossip, creature->GetGUID()); + SendGossipMenuFor(player,gossip, creature->GetGUID()); return true; } }; @@ -707,15 +714,15 @@ class npc_azth_vendor : public CreatureScript if (vendor.pvpVendor && !sAZTH->GetAZTHPlayer(player)->isPvP() && !player->IsGameMaster()) { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Non sei un player Full PvP! Non posso mostrarti nulla!", GOSSIP_SENDER_MAIN, 0); - player->SEND_GOSSIP_MENU(vendor.gossipNope, creature->GetGUID()); + AddGossipItemFor(player,GOSSIP_ICON_CHAT, "Non sei un player Full PvP! Non posso mostrarti nulla!", GOSSIP_SENDER_MAIN, 0); + SendGossipMenuFor(player,vendor.gossipNope, creature->GetGUID()); return true; } // if reputation id = 0 then show the gossip as normal if (vendor.reputationId == 0) { if (vendor.gossipOk > 0) { - player->SEND_GOSSIP_MENU(vendor.gossipOk, creature->GetGUID()); + SendGossipMenuFor(player,vendor.gossipOk, creature->GetGUID()); } else { // if not gossip set, then send the default return false; @@ -759,12 +766,12 @@ class npc_azth_vendor : public CreatureScript break; } - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, str, GOSSIP_SENDER_MAIN, 0); - player->SEND_GOSSIP_MENU(vendor.gossipNope, creature->GetGUID()); + AddGossipItemFor(player,GOSSIP_ICON_CHAT, str, GOSSIP_SENDER_MAIN, 0); + SendGossipMenuFor(player,vendor.gossipNope, creature->GetGUID()); } else { if (vendor.gossipOk > 0) { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_ITEM_SHOW_ACCESS, GOSSIP_SENDER_MAIN, 50000); - player->SEND_GOSSIP_MENU(vendor.gossipOk, creature->GetGUID()); + AddGossipItemFor(player,GOSSIP_ICON_VENDOR, GOSSIP_ITEM_SHOW_ACCESS, GOSSIP_SENDER_MAIN, 50000); + SendGossipMenuFor(player,vendor.gossipOk, creature->GetGUID()); } else { // if not gossip set, then send the default return false; @@ -782,14 +789,14 @@ class npc_azth_vendor : public CreatureScript ss << vendor.repValue; std::string str = "Hai bisogno di " + ss.str() + " reputazione con AzerothShard."; - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, str, GOSSIP_SENDER_MAIN, 0); + AddGossipItemFor(player,GOSSIP_ICON_CHAT, str, GOSSIP_SENDER_MAIN, 0); - player->SEND_GOSSIP_MENU(vendor.gossipNope, creature->GetGUID()); + SendGossipMenuFor(player,vendor.gossipNope, creature->GetGUID()); } else { if (vendor.gossipOk > 0 && creature->IsVendor()) { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_ITEM_SHOW_ACCESS, GOSSIP_SENDER_MAIN, 50000); - player->SEND_GOSSIP_MENU(vendor.gossipOk, creature->GetGUID()); + AddGossipItemFor(player,GOSSIP_ICON_VENDOR, GOSSIP_ITEM_SHOW_ACCESS, GOSSIP_SENDER_MAIN, 50000); + SendGossipMenuFor(player,vendor.gossipOk, creature->GetGUID()); } else { // if not gossip set, then send the default return false; @@ -824,9 +831,9 @@ class npc_azth_resser : public CreatureScript bool OnGossipHello(Player* player, Creature* creature) { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_RESS_ME, GOSSIP_SENDER_MAIN, 50001); + AddGossipItemFor(player,GOSSIP_ICON_CHAT, GOSSIP_ITEM_RESS_ME, GOSSIP_SENDER_MAIN, 50001); // 83 spirit healer gossip - player->SEND_GOSSIP_MENU(310262, creature->GetGUID()); + SendGossipMenuFor(player,310262, creature->GetGUID()); return true; } }; @@ -839,7 +846,7 @@ class item_azth_hearthstone_loot_sack : public ItemScript bool OnUse(Player* player, Item* item, SpellCastTargets const& /*target*/) { //sHearthstoneMode->getItems(); - SQLTransaction trans = CharacterDatabase.BeginTransaction(); + CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();n(); int16 deliverDelay = TIME_TO_RECEIVE_MAIL; MailDraft* draft = new MailDraft("Sacca Hearthstone", ""); int i = 1; diff --git a/modules/mod-hearthstone-mode/src/scripts/azth_custom_hearthstone_mode.h b/modules/mod-hearthstone-mode/src/scripts/azth_custom_hearthstone_mode.h index ae32302..c9a2c7d 100644 --- a/modules/mod-hearthstone-mode/src/scripts/azth_custom_hearthstone_mode.h +++ b/modules/mod-hearthstone-mode/src/scripts/azth_custom_hearthstone_mode.h @@ -86,6 +86,8 @@ enum otherMiscHs class HearthstoneMode { public: + static HearthstoneMode* instance(); + void AzthSendListInventory(ObjectGuid vendorGuid, WorldSession * session, uint32 extendedCostStartValue); void sendQuestCredit(Player *player, AchievementCriteriaEntry const* criteria, std::vector& hsCheckList); int returnData0(AchievementCriteriaEntry const* criteria); @@ -114,6 +116,6 @@ class HearthstoneMode float CHANCES[8] = { 10.f, 30.f, 20.f, 15.f, 5.f, 1.f, 0.5f, 1.f }; }; -#define sHearthstoneMode ACE_Singleton::instance() +#define sHearthstoneMode HearthstoneMode::instance() #endif // !HEARTHSTONE_MODE diff --git a/modules/mod-playerstats/src/scripts/AzthInstanceMgr.cpp b/modules/mod-playerstats/src/scripts/AzthInstanceMgr.cpp index 68ba2c9..8650bb8 100644 --- a/modules/mod-playerstats/src/scripts/AzthInstanceMgr.cpp +++ b/modules/mod-playerstats/src/scripts/AzthInstanceMgr.cpp @@ -1,4 +1,6 @@ #include "AzthInstanceMgr.h" +#include "Log.h" +#include AzthInstanceMgr::AzthInstanceMgr(InstanceSave* is) { @@ -10,7 +12,13 @@ void AzthInstanceMgr::saveToDb() { - ASSERT(instanceSave); + if(!instanceSave) + { + // instanceSave is a variable that is initializated when an instance is created and cannot be null + // if it happens we are loosing important data and it's prone to abuses + LOG_FATAL("azth.AzthInstanceMgr","saveToDb() cannot have null instanceSave, stacktrace: %s", boost::stacktrace::to_string(boost::stacktrace::basic_stacktrace()).c_str()); + return; + } CharacterDatabase.PExecute("UPDATE instance SET levelPg = %u, groupSize = %u, startTime = %u WHERE id = %u", levelMax, groupSize, instanceSave->GetInstanceId(), startTime); } diff --git a/modules/mod-playerstats/src/scripts/PStatsScripts.cpp b/modules/mod-playerstats/src/scripts/PStatsScripts.cpp index b29cd11..6202712 100644 --- a/modules/mod-playerstats/src/scripts/PStatsScripts.cpp +++ b/modules/mod-playerstats/src/scripts/PStatsScripts.cpp @@ -63,11 +63,11 @@ class PlayerStats : public PlayerScript // Following 2 functions save our temporary maps inside the db - void OnAchiSave(SQLTransaction& /* trans */, Player *player, uint16 achId, CompletedAchievementData achiData) override { + void OnAchiSave(CharacterDatabaseTransaction /* trans */, Player *player, uint16 achId, CompletedAchievementData achiData) override { if (sAZTH->GetAZTHPlayer(player)->m_completed_achievement_map.find(achId) != sAZTH->GetAZTHPlayer(player)->m_completed_achievement_map.end()) { AzthPlayer::AzthAchiData it = sAZTH->GetAZTHPlayer(player)->m_completed_achievement_map[achId]; - CharacterDatabase.AsyncPQuery("INSERT INTO azth_achievement_stats (playerGuid, achievement, type, level, levelParty, specialLevel, date) VALUES (%u, %u, %u, %u, %u, %u, %u)", + CharacterDatabase.AsyncQuery(Acore::StringFormat("INSERT INTO azth_achievement_stats (playerGuid, achievement, type, level, levelParty, specialLevel, date) VALUES (%u, %u, %u, %u, %u, %u, %u)", player->GetGUID().GetCounter(), achId, ACHIEVEMENT_TYPE, @@ -75,17 +75,17 @@ class PlayerStats : public PlayerScript it.levelParty, it.specialLevel, achiData.date - ); + ).c_str()); sAZTH->GetAZTHPlayer(player)->m_completed_achievement_map.erase(achId); } } - void OnCriteriaSave(SQLTransaction& /* trans */, Player* player, uint16 critId, CriteriaProgress criteriaData) override { + void OnCriteriaSave(CharacterDatabaseTransaction /* trans */, Player* player, uint16 critId, CriteriaProgress criteriaData) override { if (sAZTH->GetAZTHPlayer(player)->m_completed_criteria_map.find(critId) != sAZTH->GetAZTHPlayer(player)->m_completed_criteria_map.end()) { AzthPlayer::AzthAchiData it = sAZTH->GetAZTHPlayer(player)->m_completed_criteria_map[critId]; - CharacterDatabase.AsyncPQuery("INSERT INTO azth_achievement_stats (playerGuid, achievement, type, level, levelParty, specialLevel, date) VALUES (%u, %u, %u, %u, %u, %u, %u)", + CharacterDatabase.AsyncQuery(Acore::StringFormat("INSERT INTO azth_achievement_stats (playerGuid, achievement, type, level, levelParty, specialLevel, date) VALUES (%u, %u, %u, %u, %u, %u, %u)", player->GetGUID().GetCounter(), critId, CRITERIA_TYPE, @@ -93,7 +93,7 @@ class PlayerStats : public PlayerScript it.levelParty, it.specialLevel, criteriaData.date - ); + ).c_str()); sAZTH->GetAZTHPlayer(player)->m_completed_criteria_map.erase(critId); } diff --git a/modules/mod-pvp-mode/src/scripts/ProfessionNpc.cpp b/modules/mod-pvp-mode/src/scripts/ProfessionNpc.cpp index 5cfef2e..c2126d5 100644 --- a/modules/mod-pvp-mode/src/scripts/ProfessionNpc.cpp +++ b/modules/mod-pvp-mode/src/scripts/ProfessionNpc.cpp @@ -102,37 +102,37 @@ class Professions_NPC : public CreatureScript return true; } - void LearnSkillRecipesHelper(Player *player, uint32 skill_id) + void LearnSkillRecipesHelper(Player *player, uint32 skillLine) { uint32 classmask = player->getClassMask(); for (uint32 j = 0; j < sSkillLineAbilityStore.GetNumRows(); ++j) { - SkillLineAbilityEntry const *skillLine = sSkillLineAbilityStore.LookupEntry(j); - if (!skillLine) + SkillLineAbilityEntry const *skillLineEntry = sSkillLineAbilityStore.LookupEntry(j); + if (!skillLineEntry) continue; // wrong skill - if (skillLine->skillId != skill_id) + if (skillLineEntry->SkillLine != skillLine) continue; // not high rank - if (skillLine->forward_spellid) + if (skillLineEntry->SupercededBySpell) continue; // skip racial skills - if (skillLine->racemask != 0) + if (skillLineEntry->RaceMask != 0) continue; // skip wrong class skills - if (skillLine->classmask && (skillLine->classmask & classmask) == 0) + if (skillLineEntry->ClassMask && (skillLineEntry->ClassMask & classmask) == 0) continue; - SpellInfo const * spellInfo = sSpellMgr->GetSpellInfo(skillLine->spellId); + SpellInfo const * spellInfo = sSpellMgr->GetSpellInfo(skillLineEntry->Spell); if (!spellInfo || !SpellMgr::IsSpellValid(spellInfo)) continue; - player->learnSpell(skillLine->spellId); + player->learnSpell(skillLineEntry->Spell); } } @@ -175,19 +175,19 @@ class Professions_NPC : public CreatureScript switch (uiAction) { case 196: - pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Alchemy (1000 AP)", GOSSIP_SENDER_MAIN, 1); - pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Blacksmithing (1000 AP)", GOSSIP_SENDER_MAIN, 2); - pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Leatherworking (1000 AP)", GOSSIP_SENDER_MAIN, 3); - pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Tailoring (1000 AP)", GOSSIP_SENDER_MAIN, 4); - pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Engineering (1000 AP)", GOSSIP_SENDER_MAIN, 5); - pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Enchanting (1000 AP)", GOSSIP_SENDER_MAIN, 6); - pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Jewelcrafting (1000 AP)", GOSSIP_SENDER_MAIN, 7); - pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Inscription (1000 AP)", GOSSIP_SENDER_MAIN, 8); - pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Herbalism (1000 AP)", GOSSIP_SENDER_MAIN, 11); - pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Skinning (1000 AP)", GOSSIP_SENDER_MAIN, 12); - pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Mining (1000 AP)", GOSSIP_SENDER_MAIN, 13); - pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Cooking (1000 AP)", GOSSIP_SENDER_MAIN, 9); - pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "First Aid (1000 AP)", GOSSIP_SENDER_MAIN, 10); + AddGossipItemFor(pPlayer, GOSSIP_ICON_CHAT, "Alchemy (1000 AP)", GOSSIP_SENDER_MAIN, 1); + AddGossipItemFor(pPlayer, GOSSIP_ICON_CHAT, "Blacksmithing (1000 AP)", GOSSIP_SENDER_MAIN, 2); + AddGossipItemFor(pPlayer, GOSSIP_ICON_CHAT, "Leatherworking (1000 AP)", GOSSIP_SENDER_MAIN, 3); + AddGossipItemFor(pPlayer, GOSSIP_ICON_CHAT, "Tailoring (1000 AP)", GOSSIP_SENDER_MAIN, 4); + AddGossipItemFor(pPlayer, GOSSIP_ICON_CHAT, "Engineering (1000 AP)", GOSSIP_SENDER_MAIN, 5); + AddGossipItemFor(pPlayer, GOSSIP_ICON_CHAT, "Enchanting (1000 AP)", GOSSIP_SENDER_MAIN, 6); + AddGossipItemFor(pPlayer, GOSSIP_ICON_CHAT, "Jewelcrafting (1000 AP)", GOSSIP_SENDER_MAIN, 7); + AddGossipItemFor(pPlayer, GOSSIP_ICON_CHAT, "Inscription (1000 AP)", GOSSIP_SENDER_MAIN, 8); + AddGossipItemFor(pPlayer, GOSSIP_ICON_CHAT, "Herbalism (1000 AP)", GOSSIP_SENDER_MAIN, 11); + AddGossipItemFor(pPlayer, GOSSIP_ICON_CHAT, "Skinning (1000 AP)", GOSSIP_SENDER_MAIN, 12); + AddGossipItemFor(pPlayer, GOSSIP_ICON_CHAT, "Mining (1000 AP)", GOSSIP_SENDER_MAIN, 13); + AddGossipItemFor(pPlayer, GOSSIP_ICON_CHAT, "Cooking (1000 AP)", GOSSIP_SENDER_MAIN, 9); + AddGossipItemFor(pPlayer, GOSSIP_ICON_CHAT, "First Aid (1000 AP)", GOSSIP_SENDER_MAIN, 10); pPlayer->PlayerTalkClass->SendGossipMenu(907, _creature->GetGUID()); break; diff --git a/modules/mod-pvp-mode/src/scripts/PvPMode.cpp b/modules/mod-pvp-mode/src/scripts/PvPMode.cpp index f0106b7..1a248a7 100644 --- a/modules/mod-pvp-mode/src/scripts/PvPMode.cpp +++ b/modules/mod-pvp-mode/src/scripts/PvPMode.cpp @@ -83,7 +83,7 @@ class PvPModeFirstLogin : public PlayerScript player->SetHonorPoints(2000); player->InitTalentForLevel(); - player->learnDefaultSpells(); + player->LearnDefaultSkills(); player->SetUInt32Value(PLAYER_XP, 0); sAzthUtils->learnClassSpells(player, false); @@ -207,7 +207,7 @@ class PvPModeFirstLogin : public PlayerScript item->SetBinding(true); item->ApplyModFlag(ITEM_FIELD_FLAGS, ITEM_FIELD_FLAG_UNK1, true); /* try to avoid for performances - SQLTransaction trans = CharacterDatabase.BeginTransaction(); + CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();n(); item->SaveToDB(trans); CharacterDatabase.CommitTransaction(trans);*/ /* } diff --git a/modules/mod-pvpitemlevel/src/scripts/ArenaSeason.cpp b/modules/mod-pvpitemlevel/src/scripts/ArenaSeason.cpp index b0df1f2..981ff74 100644 --- a/modules/mod-pvpitemlevel/src/scripts/ArenaSeason.cpp +++ b/modules/mod-pvpitemlevel/src/scripts/ArenaSeason.cpp @@ -3,6 +3,12 @@ #include "AZTH.h" #include "Solo3v3.h" +Season* Season::instance() +{ + static Season instance; + return &instance; +} + Season::Season() { itemLevel = uint32(0); @@ -61,12 +67,12 @@ void Season::SetEnabled(bool enable) // // Passing player argument will check the player state and automatically shows a message -// +// bool Season::checkItem(ItemTemplate const* proto, Player const* player) { if (!IsEnabled()) - return true; //SYSTEM DISABLED - + return true; //SYSTEM DISABLED + if (/*player->InBattleground() ||*/ player->InArena() || /*player->InBattlegroundQueue()*/ player->InBattlegroundQueueForBattlegroundQueueType(BATTLEGROUND_QUEUE_2v2) || player->InBattlegroundQueueForBattlegroundQueueType(BATTLEGROUND_QUEUE_3v3) || @@ -81,7 +87,7 @@ bool Season::checkItem(ItemTemplate const* proto, Player const* player) return false; } } - + return true; } @@ -89,10 +95,10 @@ bool Season::canJoinArenaOrBg(Player *pl) { if (!IsEnabled()) return true; // SYSTEM DISABLED - + if (sAZTH->GetAZTHPlayer(pl)->checkItems(GetItemLevel())) return true; - + ChatHandler(pl->GetSession()).SendSysMessage(sAzthLang->getf(AZTH_LANG_TOURNAMENT_LEVEL_ACTUAL, pl, sASeasonMgr->GetItemLevel())); return false; } diff --git a/modules/mod-pvpitemlevel/src/scripts/ArenaSeason.h b/modules/mod-pvpitemlevel/src/scripts/ArenaSeason.h index d56b802..4550c08 100644 --- a/modules/mod-pvpitemlevel/src/scripts/ArenaSeason.h +++ b/modules/mod-pvpitemlevel/src/scripts/ArenaSeason.h @@ -6,8 +6,9 @@ class Season { - friend class ACE_Singleton; public: + static Season* instance(); + //GETTERS uint32 GetItemLevel() const; time_t GetStartingDate() const; @@ -19,8 +20,8 @@ class Season void SetStartingDate(time_t startingDate); void SetEndDate(time_t endDate); void SetEnabled(bool enable); - - + + bool checkItem(ItemTemplate const* proto); bool checkItem(ItemTemplate const* proto, Player const* player); @@ -37,4 +38,4 @@ class Season }; -#define sASeasonMgr ACE_Singleton::instance() +#define sASeasonMgr Season::instance() diff --git a/modules/mod-smartstone/src/scripts/AzthSmartStone.cpp b/modules/mod-smartstone/src/scripts/AzthSmartStone.cpp index e99b07b..15ab4f7 100644 --- a/modules/mod-smartstone/src/scripts/AzthSmartStone.cpp +++ b/modules/mod-smartstone/src/scripts/AzthSmartStone.cpp @@ -131,7 +131,7 @@ class azth_smart_stone : public ItemScript // back to main menu command if (action == 2001) { parent = 1; - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); OnUse(player, item, SpellCastTargets()); return; } @@ -193,14 +193,14 @@ class azth_smart_stone : public ItemScript sAZTH->GetAZTHPlayer(player)->decreaseSmartStoneCommandCharges( selectedCommand.id); } - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); // return; } // open child if (selectedCommand.type == OPEN_CHILD) { parent = selectedCommand.action; - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); OnUse(player, item, SpellCastTargets()); } } @@ -227,7 +227,7 @@ class azth_smart_stone : public ItemScript if (selectedCommand.charges > 0) { sAZTH->GetAZTHPlayer(player)->decreaseSmartStoneCommandCharges(selectedCommand.id); } - player->CLOSE_GOSSIP_MENU(); + CloseGossipMenuFor(player); } } @@ -245,14 +245,14 @@ class azth_smart_stone : public ItemScript if (!sAZTH->GetAZTHPlayer(player)->isInBlackMarket()) { /*if (sAZTH->GetAZTHPlayer(player)->isPvP()) - player->ADD_GOSSIP_ITEM(teleport.icon, sAzthLang->get(AZTH_LANG_SS_TELEPORT_BACK, player), GOSSIP_SENDER_MAIN, teleport.id);*/ + AddGossipItemFor(player,teleport.icon, sAzthLang->get(AZTH_LANG_SS_TELEPORT_BACK, player), GOSSIP_SENDER_MAIN, teleport.id);*/ - player->ADD_GOSSIP_ITEM(teleport.icon, teleport.getText(player), GOSSIP_SENDER_MAIN, teleport.id); + AddGossipItemFor(player,teleport.icon, teleport.getText(player), GOSSIP_SENDER_MAIN, teleport.id); } else - player->ADD_GOSSIP_ITEM(teleport.icon, sAzthLang->get(AZTH_LANG_SS_TELEPORT_BACK, player), GOSSIP_SENDER_MAIN, teleport.id); + AddGossipItemFor(player,teleport.icon, sAzthLang->get(AZTH_LANG_SS_TELEPORT_BACK, player), GOSSIP_SENDER_MAIN, teleport.id); } else { - player->ADD_GOSSIP_ITEM(teleport.icon, sAzthLang->get(AZTH_LANG_SS_TELEPORT_DISABLED, player), GOSSIP_SENDER_MAIN, 0); + AddGossipItemFor(player,teleport.icon, sAzthLang->get(AZTH_LANG_SS_TELEPORT_DISABLED, player), GOSSIP_SENDER_MAIN, 0); } if (!sAZTH->GetAZTHPlayer(player)->isPvP()) @@ -260,31 +260,31 @@ class azth_smart_stone : public ItemScript // menu character (rename, change faction, etc) id 4 SmartStoneCommand characterMenu = sSmartStone->getCommandById(SMRTST_CHAR_MENU); - player->ADD_GOSSIP_ITEM(characterMenu.icon, characterMenu.getText(player), GOSSIP_SENDER_MAIN, characterMenu.id); + AddGossipItemFor(player,characterMenu.icon, characterMenu.getText(player), GOSSIP_SENDER_MAIN, characterMenu.id); // menu passive bonus id 9 SmartStoneCommand passiveMenu = sSmartStone->getCommandById(SMRTST_BONUS_MENU); - player->ADD_GOSSIP_ITEM(passiveMenu.icon, passiveMenu.getText(player), GOSSIP_SENDER_MAIN, passiveMenu.id); + AddGossipItemFor(player,passiveMenu.icon, passiveMenu.getText(player), GOSSIP_SENDER_MAIN, passiveMenu.id); } if (parent == 2) // not-to-buy commands for the characters menu { // max skill command SmartStoneCommand maxSkill = sSmartStone->getCommandById(SMRTST_MAX_SKILL); - player->ADD_GOSSIP_ITEM(maxSkill.icon, maxSkill.getText(player), GOSSIP_SENDER_MAIN, maxSkill.id); + AddGossipItemFor(player,maxSkill.icon, maxSkill.getText(player), GOSSIP_SENDER_MAIN, maxSkill.id); // azth xp command SmartStoneCommand azthXp = sSmartStone->getCommandById(SMRTST_XP_CHANGE); - player->ADD_GOSSIP_ITEM_EXTENDED(azthXp.icon, azthXp.getText(player), GOSSIP_SENDER_MAIN, azthXp.id, sAzthLang->get(AZTH_LANG_SS_VALUE, player), 0, true); + AddGossipItemFor(player,azthXp.icon, azthXp.getText(player), GOSSIP_SENDER_MAIN, azthXp.id, sAzthLang->get(AZTH_LANG_SS_VALUE, player), 0, true); // reset auras SmartStoneCommand resetAuras = sSmartStone->getCommandById(SMRTST_RESET_AURAS); - player->ADD_GOSSIP_ITEM(resetAuras.icon, resetAuras.getText(player), GOSSIP_SENDER_MAIN, resetAuras.id); + AddGossipItemFor(player,resetAuras.icon, resetAuras.getText(player), GOSSIP_SENDER_MAIN, resetAuras.id); if (sAZTH->GetAZTHPlayer(player)->isPvP()) { // dalaran teleport SmartStoneCommand dalaranTeleport = sSmartStone->getCommandById(SMRTST_TELEPORT_DALARAN); - player->ADD_GOSSIP_ITEM(dalaranTeleport.icon, dalaranTeleport.getText(player), GOSSIP_SENDER_MAIN, dalaranTeleport.id); + AddGossipItemFor(player,dalaranTeleport.icon, dalaranTeleport.getText(player), GOSSIP_SENDER_MAIN, dalaranTeleport.id); } if (sAZTH->GetAZTHPlayer(player)->getCurrentDimensionByAura() == DIMENSION_RPG) { @@ -295,7 +295,7 @@ class azth_smart_stone : public ItemScript SmartStoneCommand homeTeleport = sSmartStone->getCommandById(SMRTST_TELEPORT_HOUSE); std::string str=homeTeleport.getText(player) + " (" +owner->GetName()+")"; - player->ADD_GOSSIP_ITEM(homeTeleport.icon, str.c_str() , GOSSIP_SENDER_MAIN, homeTeleport.id); + AddGossipItemFor(player,homeTeleport.icon, str.c_str() , GOSSIP_SENDER_MAIN, homeTeleport.id); } } } @@ -337,9 +337,9 @@ class azth_smart_stone : public ItemScript if (command.id != 0 && command.parent_menu == parent) { if (command.type != DO_SCRIPTED_ACTION_WITH_CODE) { - player->ADD_GOSSIP_ITEM(command.icon, text, GOSSIP_SENDER_MAIN, command.id); + AddGossipItemFor(player,command.icon, text, GOSSIP_SENDER_MAIN, command.id); } else { - player->ADD_GOSSIP_ITEM_EXTENDED(command.icon, text, GOSSIP_SENDER_MAIN, command.id, sAzthLang->get(AZTH_LANG_SS_VALUE, player), 0, true); + AddGossipItemFor(player,command.icon, text, GOSSIP_SENDER_MAIN, command.id, sAzthLang->get(AZTH_LANG_SS_VALUE, player), 0, true); } } } @@ -347,16 +347,16 @@ class azth_smart_stone : public ItemScript // acquista app /*if (parent == 1) - player->ADD_GOSSIP_ITEM( + AddGossipItemFor(player, 0, "|TInterface/ICONS/INV_Misc_Coin_03:30|t Azeroth Store", GOSSIP_SENDER_MAIN, 2000);*/ if (parent != 1) { // back to main menu command - player->ADD_GOSSIP_ITEM(0, sAzthLang->get(AZTH_LANG_SS_BACK, player), GOSSIP_SENDER_MAIN, 2001); + AddGossipItemFor(player,0, sAzthLang->get(AZTH_LANG_SS_BACK, player), GOSSIP_SENDER_MAIN, 2001); } - player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, item->GetGUID()); + SendGossipMenuFor(player,DEFAULT_GOSSIP_MESSAGE, item->GetGUID()); parent = 1; return false; @@ -490,8 +490,8 @@ class smartstone_vendor : public CreatureScript { bool OnGossipHello(Player* player, Creature* creature) override { player->PlayerTalkClass->ClearMenus(); - player->ADD_GOSSIP_ITEM(0, "Hello, I would like to buy new apps!", GOSSIP_SENDER_MAIN, 1); - player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID()); + AddGossipItemFor(player,0, "Hello, I would like to buy new apps!", GOSSIP_SENDER_MAIN, 1); + SendGossipMenuFor(player,DEFAULT_GOSSIP_MESSAGE, creature->GetGUID()); return true; } diff --git a/modules/mod-smartstone/src/scripts/PlayerSmartstone.cpp b/modules/mod-smartstone/src/scripts/PlayerSmartstone.cpp index a6e17f5..6d595c5 100644 --- a/modules/mod-smartstone/src/scripts/PlayerSmartstone.cpp +++ b/modules/mod-smartstone/src/scripts/PlayerSmartstone.cpp @@ -356,7 +356,7 @@ std::map AzthPlayer::getLastPositionInfoFromDB() { }; void AzthPlayer::saveLastPositionInfoToDB(Player *pl) { - SQLTransaction trans = CharacterDatabase.BeginTransaction(); + CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();n(); std::map::iterator it; for ( it = lastPositionInfo.begin(); it != lastPositionInfo.end(); it++ ) { diff --git a/modules/mod-timewalking/src/scripts/TimeWalking.cpp b/modules/mod-timewalking/src/scripts/TimeWalking.cpp index 99b5bea..976608b 100644 --- a/modules/mod-timewalking/src/scripts/TimeWalking.cpp +++ b/modules/mod-timewalking/src/scripts/TimeWalking.cpp @@ -1,3 +1,4 @@ +#include "ExtraDatabase.h" #include "ScriptMgr.h" #include "Unit.h" #include "SharedDefines.h" @@ -17,7 +18,6 @@ #include "MapManager.h" #include "ReputationMgr.h" #include "AZTH.h" -#include "ExtraDatabase.h" class ReputationMgr; @@ -217,31 +217,31 @@ class TimeWalkingGossip : public CreatureScript { if (player->isUsingLfg()) { - player->SEND_GOSSIP_MENU(TIMEWALKING_GOSSIP_NPC_TEXT_ACTIVELFG, creature->GetGUID()); + SendGossipMenuFor(player,TIMEWALKING_GOSSIP_NPC_TEXT_ACTIVELFG, creature->GetGUID()); return true; } if (player->GetGroup()) { - player->SEND_GOSSIP_MENU(TIMEWALKING_GOSSIP_NPC_TEXT_INGROUP, creature->GetGUID()); + SendGossipMenuFor(player,TIMEWALKING_GOSSIP_NPC_TEXT_INGROUP, creature->GetGUID()); return true; } if (!sAZTH->GetAZTHPlayer(player)->isTimeWalking()) { if (player->getLevel()>=sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)) { - //player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, "Tutte le fasi", GOSSIP_SENDER_MAIN, 5); - player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_INTERACT_1, "Livello specifico", GOSSIP_SENDER_MAIN, 6, "Imposta un livello", 0, true); + //AddGossipItemFor(player,GOSSIP_ICON_TABARD, "Tutte le fasi", GOSSIP_SENDER_MAIN, 5); + AddGossipItemFor(player,GOSSIP_ICON_INTERACT_1, "Livello specifico", GOSSIP_SENDER_MAIN, 6, "Imposta un livello", 0, true); if (player->IsGameMaster()) { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, "Scaling automatico (beta)", GOSSIP_SENDER_MAIN, TIMEWALKING_LVL_AUTO+10000); + AddGossipItemFor(player,GOSSIP_ICON_TRAINER, "Scaling automatico (beta)", GOSSIP_SENDER_MAIN, TIMEWALKING_LVL_AUTO+10000); } - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, "TimeWalking (Wotlk)", GOSSIP_SENDER_MAIN, 4); + AddGossipItemFor(player,GOSSIP_ICON_TABARD, "TimeWalking (Wotlk)", GOSSIP_SENDER_MAIN, 4); } - player->ADD_GOSSIP_ITEM(0, "|TInterface/ICONS/INV_Misc_Coin_01:30|tFlex Mythic+ (Beta)", GOSSIP_SENDER_MAIN, 9); // we can't use another icon otherwise will be automatically selected on gossip hello + AddGossipItemFor(player,0, "|TInterface/ICONS/INV_Misc_Coin_01:30|tFlex Mythic+ (Beta)", GOSSIP_SENDER_MAIN, 9); // we can't use another icon otherwise will be automatically selected on gossip hello } else { - player->ADD_GOSSIP_ITEM(0, "Esci dalla modalità TimeWalking", GOSSIP_SENDER_MAIN, 7); + AddGossipItemFor(player,0, "Esci dalla modalità TimeWalking", GOSSIP_SENDER_MAIN, 7); } - player->SEND_GOSSIP_MENU(TIMEWALKING_GOSSIP_NPC_TEXT_MAIN, creature->GetGUID()); + SendGossipMenuFor(player,TIMEWALKING_GOSSIP_NPC_TEXT_MAIN, creature->GetGUID()); return true; } @@ -292,10 +292,10 @@ class TimeWalkingGossip : public CreatureScript { if (it->second.GetBonus() == 1) { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, "|cff00ff00|TInterface/ICONS/INV_Misc_Coin_01:30|t|rBonus: " + it->second.GetName()+"|r", GOSSIP_SENDER_MAIN, 10000+it->second.GetLevel()); + AddGossipItemFor(player,GOSSIP_ICON_TABARD, "|cff00ff00|TInterface/ICONS/INV_Misc_Coin_01:30|t|rBonus: " + it->second.GetName()+"|r", GOSSIP_SENDER_MAIN, 10000+it->second.GetLevel()); } } - player->SEND_GOSSIP_MENU(TIMEWALKING_GOSSIP_NPC_TEXT_BONUS, creature->GetGUID()); + SendGossipMenuFor(player,TIMEWALKING_GOSSIP_NPC_TEXT_BONUS, creature->GetGUID()); } if (action == 5) @@ -320,21 +320,21 @@ class TimeWalkingGossip : public CreatureScript if (std::find(expList.begin(), expList.end(), it->second.GetExp()) == expList.end()) { expList.push_back(it->second.GetExp()); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, exp, GOSSIP_SENDER_MAIN, it->second.GetExp()); // go to phase menu + AddGossipItemFor(player,GOSSIP_ICON_TABARD, exp, GOSSIP_SENDER_MAIN, it->second.GetExp()); // go to phase menu } } - player->SEND_GOSSIP_MENU(TIMEWALKING_GOSSIP_NPC_TEXT_EXP, creature->GetGUID()); + SendGossipMenuFor(player,TIMEWALKING_GOSSIP_NPC_TEXT_EXP, creature->GetGUID()); } if (action == 9) { for (uint32 i=TIMEWALKING_LVL_VAS_START; i<=TIMEWALKING_LVL_VAS_LVL7; i++) { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, "Flex Mythic+ "+std::to_string(i-TIMEWALKING_LVL_VAS_START+1), GOSSIP_SENDER_MAIN, i+10000); + AddGossipItemFor(player,GOSSIP_ICON_TABARD, "Flex Mythic+ "+std::to_string(i-TIMEWALKING_LVL_VAS_START+1), GOSSIP_SENDER_MAIN, i+10000); } - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, "Flex Mythic+ 13 Epic", GOSSIP_SENDER_MAIN, 10413); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, "Flex Mythic+ 16 Heroic", GOSSIP_SENDER_MAIN, 10416); + AddGossipItemFor(player,GOSSIP_ICON_TABARD, "Flex Mythic+ 13 Epic", GOSSIP_SENDER_MAIN, 10413); + AddGossipItemFor(player,GOSSIP_ICON_TABARD, "Flex Mythic+ 16 Heroic", GOSSIP_SENDER_MAIN, 10416); - player->SEND_GOSSIP_MENU(TIMEWALKING_GOSSIP_NPC_TEXT_MAIN, creature->GetGUID()); + SendGossipMenuFor(player,TIMEWALKING_GOSSIP_NPC_TEXT_MAIN, creature->GetGUID()); } if (action <= 3) //generate phase menu @@ -349,11 +349,11 @@ class TimeWalkingGossip : public CreatureScript phaseList.push_back(it->second.GetPhase()); std::stringstream s; s << "Fase " << it->second.GetPhase(); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, s.str().c_str(), GOSSIP_SENDER_MAIN, 1000 + it->second.GetPhase()); + AddGossipItemFor(player,GOSSIP_ICON_TABARD, s.str().c_str(), GOSSIP_SENDER_MAIN, 1000 + it->second.GetPhase()); } } } - player->SEND_GOSSIP_MENU(TIMEWALKING_GOSSIP_NPC_TEXT_PHASE, creature->GetGUID()); + SendGossipMenuFor(player,TIMEWALKING_GOSSIP_NPC_TEXT_PHASE, creature->GetGUID()); } else if(action >= 1000 && action < 10000) //generate raid menu { @@ -361,10 +361,10 @@ class TimeWalkingGossip : public CreatureScript { if (it->second.GetPhase() == action - 1000) { - player->ADD_GOSSIP_ITEM(0, it->second.GetName(), GOSSIP_SENDER_MAIN, it->second.GetLevel()+10000); + AddGossipItemFor(player,0, it->second.GetName(), GOSSIP_SENDER_MAIN, it->second.GetLevel()+10000); } } - player->SEND_GOSSIP_MENU(TIMEWALKING_GOSSIP_NPC_TEXT_RAID, creature->GetGUID()); + SendGossipMenuFor(player,TIMEWALKING_GOSSIP_NPC_TEXT_RAID, creature->GetGUID()); } else if (action >= 10000) //apply level { @@ -377,7 +377,7 @@ class TimeWalkingGossip : public CreatureScript } else { - player->SEND_GOSSIP_MENU(TIMEWALKING_GOSSIP_NPC_TEXT_ALREADYAPPLIED, creature->GetGUID()); + SendGossipMenuFor(player,TIMEWALKING_GOSSIP_NPC_TEXT_ALREADYAPPLIED, creature->GetGUID()); } } @@ -537,7 +537,7 @@ class timeWalkingPlayer : public PlayerScript { uint32 mailItems=0; - SQLTransaction trans = CharacterDatabase.BeginTransaction(); + CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction(); MailDraft* draft = new MailDraft(_proto->Name1, ""); for (uint32 i = 0; i < count; i++) diff --git a/modules/mod-tournament/src/scripts/RatingBonus.cpp b/modules/mod-tournament/src/scripts/RatingBonus.cpp index 55875e3..e4371c1 100644 --- a/modules/mod-tournament/src/scripts/RatingBonus.cpp +++ b/modules/mod-tournament/src/scripts/RatingBonus.cpp @@ -50,6 +50,12 @@ class RatingBonus : public FormulaScript{ }; +BonusRating* BonusRating::instance() +{ + static BonusRating instance; + return &instance; +} + void BonusRating::addBonus(uint32 bracket, float multiplier) { // remove an existing same-type bonus if any diff --git a/modules/mod-tournament/src/scripts/RatingBonus.h b/modules/mod-tournament/src/scripts/RatingBonus.h index a0495a7..d2f974c 100644 --- a/modules/mod-tournament/src/scripts/RatingBonus.h +++ b/modules/mod-tournament/src/scripts/RatingBonus.h @@ -14,6 +14,8 @@ struct Bonus class BonusRating { public: + static BonusRating* instance(); + std::vector & getRatingBonuses(); void addBonus(uint32 bracket, float multiplier); void removeBonus(uint32 bracket); @@ -25,6 +27,6 @@ class BonusRating std::vector bonuses; }; -#define sBonusRating ACE_Singleton::instance() +#define sBonusRating BonusRating::instance() #endif diff --git a/src/loader.cpp b/src/loader.cpp new file mode 100644 index 0000000..cf49711 --- /dev/null +++ b/src/loader.cpp @@ -0,0 +1,5 @@ +#include "../modules/mod-challenge-mode/src/scripts/loader.h" + +void Addmod_azerothshardScripts() { + AddSC_challengemode(); +}