From e56170eaf9ba405c893d6dfa7f9e263f6121f97b Mon Sep 17 00:00:00 2001 From: Cristian Bilu Date: Thu, 10 Oct 2019 00:51:36 +0300 Subject: [PATCH] Revert to AC repo --- .gitignore | 5 - .travis.yml | 76 -------------- README.md | 36 +++---- conf/mod_guild_house_v2.conf.dist | 11 -- sql/world/Creatures.sql | 7 +- sql/world/guild_house_spawns.sql | 9 +- src/mod_guild_house_npc.cpp | 166 ++++++++++++++---------------- src/mod_guild_house_v2.cpp | 44 +++----- 8 files changed, 110 insertions(+), 244 deletions(-) delete mode 100644 .travis.yml diff --git a/.gitignore b/.gitignore index ade4c67..c6e1299 100644 --- a/.gitignore +++ b/.gitignore @@ -46,8 +46,3 @@ local.properties .loadpath .project .cproject - -# -# Config file -# -conf/mod_guild_house_v2.conf diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 848d188..0000000 --- a/.travis.yml +++ /dev/null @@ -1,76 +0,0 @@ -sudo: required -dist: bionic # (18.04) - -language: cpp - -cache: ccache - -addons: - apt: - update: true - -services: - - mysql - -git: - depth: 10 - -stages: - - prepare_cache - - run - -jobs: - include: - - stage: prepare_cache - env: TRAVIS_BUILD_ID="1" - before_install: - - cd .. - - git clone --depth=1 --branch=master https://github.com/azerothcore/azerothcore-wotlk.git azerothcore-wotlk - - mv "$TRAVIS_BUILD_DIR" azerothcore-wotlk/modules - - cd azerothcore-wotlk - - source ./apps/ci/ci-before_install.sh - install: - - source ./apps/ci/ci-install.sh OFF - script: - - source ./apps/ci/ci-compile.sh - - - stage: run - env: TRAVIS_BUILD_ID="1" - before_install: - - cd .. - - git clone --depth=1 --branch=master https://github.com/azerothcore/azerothcore-wotlk.git azerothcore-wotlk - - mv "$TRAVIS_BUILD_DIR" azerothcore-wotlk/modules - - cd azerothcore-wotlk - - source ./apps/ci/ci-before_install.sh - install: - - source ./apps/ci/ci-install.sh ON - - source ./apps/ci/ci-import-db.sh - script: - - source ./apps/ci/ci-compile.sh - - source ./apps/ci/ci-worldserver-dry-run.sh - - - stage: prepare_cache - env: TRAVIS_BUILD_ID="2" - before_install: - - cd .. - - git clone --depth=1 --branch=master https://github.com/azerothcore/azerothcore-wotlk.git azerothcore-wotlk - - mv "$TRAVIS_BUILD_DIR" azerothcore-wotlk/modules - - cd azerothcore-wotlk - - source ./apps/ci/ci-before_install.sh - install: - - source ./apps/ci/ci-install.sh OFF - script: - - source ./apps/ci/ci-compile.sh - - - stage: run - env: TRAVIS_BUILD_ID="2" - before_install: - - cd .. - - git clone --depth=1 --branch=master https://github.com/azerothcore/azerothcore-wotlk.git azerothcore-wotlk - - mv "$TRAVIS_BUILD_DIR" azerothcore-wotlk/modules - - cd azerothcore-wotlk - - source ./apps/ci/ci-before_install.sh - install: - - source ./apps/ci/ci-install.sh ON - script: - - source ./apps/ci/ci-compile.sh diff --git a/README.md b/README.md index 425d4d6..e297534 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,23 @@ -# ![logo](https://raw.githubusercontent.com/azerothcore/azerothcore.github.io/master/images/logo-github.png) AzerothCore -- Latest build status with azerothcore: [![Build Status](https://travis-ci.org/wizzymore/mod-guildhouse.svg?branch=master)](https://travis-ci.org/wizzymore/mod-guildhouse) + # Guild House Module ## Description -This is a phased guild house system for Azerothcore, it allows players to from the same guild to visit their guild house. -All guilds will get their own phasing system which then the guild master will have to purchase NPC's creatures and other stuff to complete the creation. +This is a phased guild house system for Azerothcore, it allows players to from the same guild to visit their guild house to explore, train ect +All guilds will get their own phasing system which then the guild master will have to purchase NPC's creatures and other stuff to complete the creation. -### Purchasables - -* Class Trainers (all available in Wrath) -* Primary Profession Trainers (all available in Wrath) -* Secondary Profession Trainers (all available in Wrath) -* Vendors: Reagents, Food & Water and Trade Goods -* Portals to Neutral, Horde and Alliance cities -* Spirit Healer -* Guild Bank and Personal Bank access -* Auctioneer ## How to use ingame -1) As GM: .npc add 70101 -> somewhere public and accessible by other players. -2) Purchase a guild house from the added NPC, then either teleport to the guildhouse via the NPC or chat: `.guildhouse tele` -3) Once the player is in the location of the guild house the guild master has a command .guildhouse spawnnpc this will load the Guild House Assistant. -4) Speak with the Guild House Assistant to begin purchasing objects. +Once a player has brought a guild house from the NPC they can either teleport to the guildhouse by via the NPC or do .guildhouse tele + +Once the player is in the location of the guild house the guild master has a command .guildhouse spawnnpc this will allow the guild master +to start placing objects / npc within the guild house. ## Requirements +My new module requires: + - AzerothCore v1.0.1+ ## Installation @@ -37,9 +28,9 @@ All guilds will get their own phasing system which then the guild master will ha 3) Apply the guildhouse.patch to your source 4) Re-run cmake and launch a clean build of AzerothCore. ``` -## Patch Information (guildhouse.patch) +## Patch Information -The patch basically turns the selected area from a bitmask to a uint, this fixes the issues with the phasing +The patch basicly turns the selected area from a bitmask to a uint, this fixes the issues with the phasing Before Patch : Guild 1 Can see phase 1 @@ -55,8 +46,7 @@ If you need to change the module configuration, go to your server configuration ## Credits -* [Talamortis](https://github.com/talamortis) (Original author of the module) +* [Me](https://github.com/talamortis) (author of the module) * [Rochet2](https://github.com/Rochet2/): Thanks for the help with the phasing situation & General support -* [Anhanga](https://github.com/rbedfordpro) -AzerothCore: [repository](https://github.com/azerothcore) - [website](http://azerothcore.org/) - [discord chat community](https://discord.gg/64FH6Y8) +AzerothCore: [repository](https://github.com/azerothcore) - [website](http://azerothcore.org/) - [discord chat community](https://discord.gg/PaqQRkd) diff --git a/conf/mod_guild_house_v2.conf.dist b/conf/mod_guild_house_v2.conf.dist index c64f4c8..ad51f3a 100644 --- a/conf/mod_guild_house_v2.conf.dist +++ b/conf/mod_guild_house_v2.conf.dist @@ -76,14 +76,3 @@ GuildHouseProff = 500000 # default = 100000 (10g) # GuildHouseSpirit = 100000 - -# GuildHouseBuyRank -# -# Minimum GuildRank able to make purchases in guild house -# default = 0 (Guild Master) -# GR_GUILDMASTER = 0 -# GR_OFFICER = 1 -# GR_VETERAN = 2 ... etc -# -GuildHouseBuyRank = 0 - diff --git a/sql/world/Creatures.sql b/sql/world/Creatures.sql index 212e367..8af7b11 100644 --- a/sql/world/Creatures.sql +++ b/sql/world/Creatures.sql @@ -1,4 +1,5 @@ -REPLACE INTO `creature_template` VALUES (70101, 0, 0, 0, 0, 0, 25901, 0, 0, 0, 'Xrispins', 'Guild House Seller', '', 0, 35, 35, 0, 35, 1, 1, 1.14286, 1, 0, 49, 64, 0, 118, 1, 2000, 2000, 1, 33536, 2048, 0, 0, 0, 0, 0, 0, 33, 49, 11, 7, 4096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 3, 1, 1, 1, 1, 0, 0, 1, 0, 0, 'GuildHouseSeller', 12340), -(18649, 0, 0, 0, 0, 0, 18234, 0, 0, 0, 'Innkeeper Angela', NULL, NULL, 0, 1, 2, 0, 35, 65537, 0.8, 0.28571, 1, 0, 2, 2, 0, 26, 4.6, 2000, 1900, 1, 0, 2048, 0, 0, 0, 0, 0, 0, 1, 1, 100, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 1, 3, 1, 1, 1, 1, 0, 70, 1, 0, 2, 'npc_innkeeper', 12340), +REPLACE INTO `creature_template` VALUES (70101, 0, 0, 0, 0, 0, 25901, 0, 0, 0, 'Talamortis', 'Guild House Seller', '', 0, 35, 35, 0, 35, 1, 1, 1.14286, 1, 0, 49, 64, 0, 118, 1, 2000, 2000, 1, 33536, 2048, 0, 0, 0, 0, 0, 0, 33, 49, 11, 7, 4096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 3, 1, 1, 1, 1, 0, 0, 1, 0, 0, 'GuildHouseSeller', 12340), +(18649, 0, 0, 0, 0, 0, 18234, 0, 0, 0, 'Innkeeper Monica', NULL, NULL, 0, 1, 2, 0, 35, 65537, 0.8, 0.28571, 1, 0, 2, 2, 0, 26, 4.6, 2000, 1900, 1, 0, 2048, 0, 0, 0, 0, 0, 0, 1, 1, 100, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 1, 3, 1, 1, 1, 1, 0, 70, 1, 0, 2, 'npc_innkeeper', 12340), (33251, 0, 0, 0, 0, 0, 28516, 0, 0, 0, 'Death Knight Trainer', '', '', 9691, 80, 80, 2, 35, 51, 1, 1.14286, 1, 1, 422, 586, 0, 642, 7.5, 2000, 2000, 1, 32768, 2048, 0, 0, 0, 0, 6, 0, 345, 509, 103, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 3, 1, 10, 1, 1, 0, 0, 1, 8388624, 0, '', 12340), -(70102, 0, 0, 0, 0, 0, 25901, 0, 0, 0, 'Rapidomuerte', 'Guild House Assistant', '', 0, 35, 35, 0, 35, 1, 1, 1.14286, 1, 0, 49, 64, 0, 118, 1, 2000, 2000, 1, 33536, 2048, 0, 0, 0, 0, 0, 0, 33, 49, 11, 7, 4096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 3, 1, 1, 1, 1, 0, 0, 1, 0, 0, 'GuildHouseSpawner', 12340); +(70102, 0, 0, 0, 0, 0, 25901, 0, 0, 0, 'Speedfang', 'Guild House Assistant', '', 0, 35, 35, 0, 35, 1, 1, 1.14286, 1, 0, 49, 64, 0, 118, 1, 2000, 2000, 1, 33536, 2048, 0, 0, 0, 0, 0, 0, 33, 49, 11, 7, 4096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 3, 1, 1, 1, 1, 0, 0, 1, 0, 0, 'GuildHouseSpawner', 12340); + diff --git a/sql/world/guild_house_spawns.sql b/sql/world/guild_house_spawns.sql index c9e33eb..4128944 100644 --- a/sql/world/guild_house_spawns.sql +++ b/sql/world/guild_house_spawns.sql @@ -44,7 +44,7 @@ CREATE TABLE IF NOT EXISTS `guild_house_spawns` ( UNIQUE KEY `entry` (`entry`) ) ENGINE=InnoDB AUTO_INCREMENT=51 DEFAULT CHARSET=utf8; --- Dumping data for table acore_world.guild_house_spawns: ~48 rows (approximately) +-- Dumping data for table acore_world.guild_house_spawns: ~29 rows (approximately) /*!40000 ALTER TABLE `guild_house_spawns` DISABLE KEYS */; REPLACE INTO `guild_house_spawns` (`id`, `entry`, `posX`, `posY`, `posZ`, `orientation`, `comment`) VALUES (1, 26327, 16216.5, 16279.4, 20.9306, 0.552869, 'Paladin Trainer'), @@ -86,16 +86,13 @@ REPLACE INTO `guild_house_spawns` (`id`, `entry`, `posX`, `posY`, `posZ`, `orien (41, 183326, 16202.1, 16223.1, 1.03401, 0.829316, 'Portal: Thunder Bluff (Object)'), (42, 183324, 16196.8, 16227.5, 1.37206, 0.762557, 'Portal: Silvermoon (Object)'), (43, 183321, 16196.8, 16227.5, 1.37206, 0.762557, 'Portal: Exodar (Object)'), - (44, 191164, 16207, 16216, 1.10669, 1.0453, 'Portal: Dalaran (Object)'), + (44, 191164, 16206, 16216, 1.10669, 1.0453, 'Portal: Dalaran (Object)'), (45, 187293, 16230.5, 16283.5, 13.9061, 3, 'Guild Vault (Object)'), (46, 28692, 16230.2, 16316.4, 20.8455, 6.25643, 'Trade Supplies'), (48, 28776, 16236.3, 16316.1, 20.8454, 3.06771, 'Tabard Vendor'), (49, 29715, 16223.7, 16293.3, 20.852, 4.57958, 'Food & Drink'), (50, 6491, 16319.937, 16242.404, 24.4747, 2.206830, 'Spirit Healer'), - (51, 191028, 16255.5, 16304.9, 20.9785, 2.97516, 'Barber Chair (Object)'), - (52, 191013, 16203, 16216, 1.10669, 1.0453, 'Portal: Shattrath (Object) - Alliance'), - (53, 29636, 16233.5, 16316.1, 20.8455, 3.07558, 'Reagent Vendor'), - (54, 191014, 16203, 16216, 1.10669, 1.0453, 'Portal: Shattrath (Object) - Horde'); + (51, 191028, 16255.5, 16304.9, 20.9785, 2.97516, 'Barber Chair (Object)'); /*!40000 ALTER TABLE `guild_house_spawns` ENABLE KEYS */; diff --git a/src/mod_guild_house_npc.cpp b/src/mod_guild_house_npc.cpp index 673b96d..5bb33ec 100644 --- a/src/mod_guild_house_npc.cpp +++ b/src/mod_guild_house_npc.cpp @@ -1,7 +1,5 @@ #include "ScriptMgr.h" #include "Player.h" -#include "Chat.h" -#include "ScriptedGossip.h" #include "Configuration/Config.h" #include "Creature.h" #include "Guild.h" @@ -11,9 +9,8 @@ #include "DataMap.h" #include "GameObject.h" #include "Transport.h" -#include "CreatureAI.h" -int cost, GuildHouseInnKeeper, GuildHouseBank, GuildHouseMailBox, GuildHouseAuctioneer, GuildHouseTrainer, GuildHouseVendor, GuildHouseObject, GuildHousePortal, GuildHouseSpirit, GuildHouseProff, GuildHouseBuyRank; +int cost, GuildHouseInnKeeper, GuildHouseBank, GuildHouseMailBox, GuildHouseAuctioneer, GuildHouseTrainer, GuildHouseVendor, GuildHouseObject, GuildHousePortal, GuildHouseSpirit, GuildHouseProff; class GuildHouseSpawner : public CreatureScript { @@ -25,13 +22,9 @@ public: if (player->GetGuild()) { - // WIP - Anhanga - Guild* guild = sGuildMgr->GetGuildById(player->GetGuildId()); - Guild::Member const* memberMe = guild->GetMember(player->GetGUID()); - if (memberMe->IsRankNotLower(GuildHouseBuyRank)) - //if (player->GetGuild()->GetLeaderGUID() != player->GetGUID()) + if (player->GetGuild()->GetLeaderGUID() != player->GetGUID()) { - ChatHandler(player->GetSession()).PSendSysMessage("You are not authorized to make guild house purchases (RankId: %hhu | %d).", memberMe->GetRankId(), GuildHouseBuyRank); + ChatHandler(player->GetSession()).PSendSysMessage("You are not the guild leader, sorry i cant do business with you"); return false; } } @@ -41,74 +34,72 @@ public: return false; } - ClearGossipMenuFor(player); - AddGossipItemFor(player, GOSSIP_ICON_TALK, "Spawn Innkeeper", GOSSIP_SENDER_MAIN, 18649, "Add an Innkeeper?", GuildHouseInnKeeper, false); - AddGossipItemFor(player, GOSSIP_ICON_TALK, "Spawn Mailbox", GOSSIP_SENDER_MAIN, 184137, "Spawn a mailbox?", GuildHouseMailBox, false); - AddGossipItemFor(player, GOSSIP_ICON_TALK, "Spawn Class Trainer", GOSSIP_SENDER_MAIN, 2); - AddGossipItemFor(player, GOSSIP_ICON_TALK, "Spawn Vendor", GOSSIP_SENDER_MAIN, 3); - AddGossipItemFor(player, GOSSIP_ICON_TALK, "Spawn City Portals / Objects", GOSSIP_SENDER_MAIN, 4); - AddGossipItemFor(player, GOSSIP_ICON_MONEY_BAG, "Spawn Bank", GOSSIP_SENDER_MAIN, 30605, "Spawn a banker?", GuildHouseBank, false); - AddGossipItemFor(player, GOSSIP_ICON_MONEY_BAG, "Spawn Auctioneer", GOSSIP_SENDER_MAIN, 6, "Spawn an auctioneer", GuildHouseAuctioneer, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Spawn Primary Profession Trainers", GOSSIP_SENDER_MAIN, 7); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Spawn Secondry Profession Trainers", GOSSIP_SENDER_MAIN, 8); - AddGossipItemFor(player, GOSSIP_ICON_TALK, "Spawn Sprirt Healer", GOSSIP_SENDER_MAIN, 6491, "Spawn a Spirit Healer?", GuildHouseSpirit, false); - SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, creature->GetGUID()); + player->PlayerTalkClass->ClearMenus(); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TALK, "Spawn Innkeeper", GOSSIP_SENDER_MAIN, 18649, "Add a Innkeeper?", GuildHouseInnKeeper, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TALK, "Spawn Mailbox", GOSSIP_SENDER_MAIN, 184137, "Spawn a mailbox?", GuildHouseMailBox, false); + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, "Spawn Class Trainer", GOSSIP_SENDER_MAIN, 2); + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, "Spawn Vendor", GOSSIP_SENDER_MAIN, 3); + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, "Spawn City Portals / Objects", GOSSIP_SENDER_MAIN, 4); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_MONEY_BAG, "Spawn Bank", GOSSIP_SENDER_MAIN, 30605, "Spawn banker?", GuildHouseBank, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_MONEY_BAG, "Spawn Auctioneer", GOSSIP_SENDER_MAIN, 6, "Spawn auctioneer", GuildHouseAuctioneer, false); + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, "Spawn Primary Profession Trainers", GOSSIP_SENDER_MAIN, 7); + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, "Spawn Secondry Profession Trainers", GOSSIP_SENDER_MAIN, 8); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TALK, "Spawn Sprirt Healer", GOSSIP_SENDER_MAIN, 6491, "Spawn Spirit Healer?", GuildHouseSpirit, false); + player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID()); return true; } - bool OnGossipSelect(Player *player, Creature * m_creature, uint32, uint32 action) + bool OnGossipSelect(Player *player, Creature * m_creature, uint32 sender, uint32 action) { switch (action) { case 2: // spawn class trainer - ClearGossipMenuFor(player); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Death Knight", GOSSIP_SENDER_MAIN, 33251, "Spawn Death Knight Trainer?", GuildHouseTrainer, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Druid", GOSSIP_SENDER_MAIN, 26324, "Spawn Druid Trainer?", GuildHouseTrainer, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Hunter", GOSSIP_SENDER_MAIN, 26325, "Spawn Hunter Trainer?", GuildHouseTrainer, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Mage", GOSSIP_SENDER_MAIN, 26326, "Spawn Mage Trainer?", GuildHouseTrainer, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Paladin", GOSSIP_SENDER_MAIN, 26327, "Spawn Paladin Trainer?", GuildHouseTrainer, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Priest", GOSSIP_SENDER_MAIN, 26328, "Spawn Priest Trainer?", GuildHouseTrainer, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Rogue", GOSSIP_SENDER_MAIN, 26329, "Spawn Rogue Trainer?", GuildHouseTrainer, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Shaman", GOSSIP_SENDER_MAIN, 26330, "Spawn Shaman Trainer?", GuildHouseTrainer, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Warlock", GOSSIP_SENDER_MAIN, 26331, "Spawn Warlock Trainer?", GuildHouseTrainer, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Warrior", GOSSIP_SENDER_MAIN, 26332, "Spawn Warrior Trainer?", GuildHouseTrainer, false); - AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Go Back!", GOSSIP_SENDER_MAIN, 9); - SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, m_creature->GetGUID()); + player->PlayerTalkClass->ClearMenus(); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Death Knight", GOSSIP_SENDER_MAIN, 33251, "Spawn Death Knight Trainer?", GuildHouseTrainer, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Druid", GOSSIP_SENDER_MAIN, 26324, "Spawn Druid Trainer?", GuildHouseTrainer, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Hunter", GOSSIP_SENDER_MAIN, 26325, "Spawn Hunter Trainer?", GuildHouseTrainer, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Mage", GOSSIP_SENDER_MAIN, 26326, "Spawn Mage Trainer?", GuildHouseTrainer, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Paladin", GOSSIP_SENDER_MAIN, 26327, "Spawn Paladin Trainer?", GuildHouseTrainer, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Priest", GOSSIP_SENDER_MAIN, 26328, "Spawn Priest Trainer?", GuildHouseTrainer, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Rogue", GOSSIP_SENDER_MAIN, 26329, "Spawn Rogue Trainer?", GuildHouseTrainer, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Shaman", GOSSIP_SENDER_MAIN, 26330, "Spawn Shaman Trainer?", GuildHouseTrainer, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Warlock", GOSSIP_SENDER_MAIN, 26331, "Spawn Warlock Trainer?", GuildHouseTrainer, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Warrior", GOSSIP_SENDER_MAIN, 26332, "Spawn Warrior Trainer?", GuildHouseTrainer, false); + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Go Back!", GOSSIP_SENDER_MAIN, 9); + player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, m_creature->GetGUID()); break; case 3: // Vendors - ClearGossipMenuFor(player); - AddGossipItemFor(player, GOSSIP_ICON_TALK, "Trade Supplies", GOSSIP_SENDER_MAIN, 28692, "Spawn Trade Supplies?", GuildHouseVendor, false); - AddGossipItemFor(player, GOSSIP_ICON_TALK, "Tabard Vendor", GOSSIP_SENDER_MAIN, 28776, "Spawn Tabard Vendor?", GuildHouseVendor, false); - AddGossipItemFor(player, GOSSIP_ICON_TALK, "Food & Drink", GOSSIP_SENDER_MAIN, 29715, "Spawn Food & Drink?", GuildHouseVendor, false); - AddGossipItemFor(player, GOSSIP_ICON_TALK, "Reagent Vendor", GOSSIP_SENDER_MAIN, 29636, "Spawn Reagent Vendor?", GuildHouseVendor, false); - AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Go Back!", GOSSIP_SENDER_MAIN, 9); - SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, m_creature->GetGUID()); + player->PlayerTalkClass->ClearMenus(); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TALK, "Trade Supplies", GOSSIP_SENDER_MAIN, 28692, "Spawn Trade Supplies?", GuildHouseVendor, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TALK, "Tabard Vendor", GOSSIP_SENDER_MAIN, 28776, "Spawn Tabard Vendor?", GuildHouseVendor, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TALK, "Food & Drink", GOSSIP_SENDER_MAIN, 29715, "Spawn Food & Drink?", GuildHouseVendor, false); + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Go Back!", GOSSIP_SENDER_MAIN, 9); + player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, m_creature->GetGUID()); break; case 4: //objects / portals - ClearGossipMenuFor(player); - AddGossipItemFor(player, GOSSIP_ICON_TALK, "Forge", GOSSIP_SENDER_MAIN, 1685, "Add a forge?", GuildHouseObject, false); - AddGossipItemFor(player, GOSSIP_ICON_TALK, "Anvil", GOSSIP_SENDER_MAIN, 4087, "Add an Anvil?", GuildHouseObject, false); + player->PlayerTalkClass->ClearMenus(); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TALK, "Forge", GOSSIP_SENDER_MAIN, 1685, "Add a forge?", GuildHouseObject, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TALK, "Anvil", GOSSIP_SENDER_MAIN, 4087, "Add a Anvil?", GuildHouseObject, false); if (player->GetTeamId() == TEAM_ALLIANCE) { - AddGossipItemFor(player, GOSSIP_ICON_TAXI, "Portal: Stormwind", GOSSIP_SENDER_MAIN, 183325, "Add Stormwind Portal?", GuildHousePortal, false); - AddGossipItemFor(player, GOSSIP_ICON_TAXI, "Portal: Ironforge", GOSSIP_SENDER_MAIN, 183322, "Add Ironforge Portal?", GuildHousePortal, false); - AddGossipItemFor(player, GOSSIP_ICON_TAXI, "Portal: Darnassus", GOSSIP_SENDER_MAIN, 183317, "Add Darnassus Portal?", GuildHousePortal, false); - AddGossipItemFor(player, GOSSIP_ICON_TAXI, "Portal: Exodar", GOSSIP_SENDER_MAIN, 183321, "Add Exodar Portal?", GuildHousePortal, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TAXI, "Portal: Stormwind", GOSSIP_SENDER_MAIN, 183325, "Add Stormwind Portal?", GuildHousePortal, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TAXI, "Portal: Ironforge", GOSSIP_SENDER_MAIN, 183322, "Add Ironforge Portal?", GuildHousePortal, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TAXI, "Portal: Darnassus", GOSSIP_SENDER_MAIN, 183317, "Add Darnassus Portal?", GuildHousePortal, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TAXI, "Portal: Exodar", GOSSIP_SENDER_MAIN, 183321, "Add Exodar Portal?", GuildHousePortal, false); } else { - AddGossipItemFor(player, GOSSIP_ICON_TAXI, "Portal: Orgrimmar", GOSSIP_SENDER_MAIN, 183323, "Add Orgrimmar Portal?", GuildHousePortal, false); - AddGossipItemFor(player, GOSSIP_ICON_TAXI, "Portal: Undercity", GOSSIP_SENDER_MAIN, 183327, "Add Undercity Portal?", GuildHousePortal, false); - AddGossipItemFor(player, GOSSIP_ICON_TAXI, "Portal: Thunderbluff", GOSSIP_SENDER_MAIN, 183326, "Add Thunderbuff Portal?", GuildHousePortal, false); - AddGossipItemFor(player, GOSSIP_ICON_TAXI, "Portal: Silvermoon", GOSSIP_SENDER_MAIN, 183324, "Add Silvermoon Portal?", GuildHousePortal, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TAXI, "Portal: Orgrimmar", GOSSIP_SENDER_MAIN, 183323, "Add Orgrimmar Portal?", GuildHousePortal, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TAXI, "Portal: Undercity", GOSSIP_SENDER_MAIN, 183327, "Add Undercity Portal?", GuildHousePortal, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TAXI, "Portal: Thunderbluff", GOSSIP_SENDER_MAIN, 183326, "Add Thunderbuff Portal?", GuildHousePortal, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TAXI, "Portal: Silvermoon", GOSSIP_SENDER_MAIN, 183324, "Add Silvermoon Portal?", GuildHousePortal, false); } - AddGossipItemFor(player, GOSSIP_ICON_TAXI, "Portal: Dalaran", GOSSIP_SENDER_MAIN, 191164, "Add Dalaran Portal?", GuildHousePortal, false); - AddGossipItemFor(player, GOSSIP_ICON_TAXI, "Portal: Shattrath", GOSSIP_SENDER_MAIN, 191013, "Add Shattrath Portal?", GuildHousePortal, false); - AddGossipItemFor(player, GOSSIP_ICON_MONEY_BAG, "Guild Vault", GOSSIP_SENDER_MAIN, 187293, "Add Guild Vault?", GuildHouseObject, false); - AddGossipItemFor(player, GOSSIP_ICON_INTERACT_1, "Barber Chair", GOSSIP_SENDER_MAIN, 191028, "Add a Barber Chair?", GuildHouseObject, false); - AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Go Back!", GOSSIP_SENDER_MAIN, 9); - SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, m_creature->GetGUID()); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TAXI, "Portal: Dalaran", GOSSIP_SENDER_MAIN, 191164, "Add Dalaran Portal?", GuildHousePortal, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_MONEY_BAG, "Guild Vault", GOSSIP_SENDER_MAIN, 187293, "Add Guild Vault?", GuildHouseObject, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_INTERACT_1, "Barber Chair", GOSSIP_SENDER_MAIN, 191028, "Add a Barber Chair?", GuildHouseObject, false); + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Go Back!", GOSSIP_SENDER_MAIN, 9); + player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, m_creature->GetGUID()); break; case 6: // Auctioneer { @@ -118,28 +109,28 @@ public: break; } case 7: // spawn proffession trainers - ClearGossipMenuFor(player); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Alchemy Trainer", GOSSIP_SENDER_MAIN, 33608, "Spawn Alchemy Trainer?", GuildHouseProff, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Blacksmithing Trainer", GOSSIP_SENDER_MAIN, 33609, "Spawn Blacksmithing Trainer?", GuildHouseProff, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Enchanting Trainer", GOSSIP_SENDER_MAIN, 33610, "Spawn Enchanting Trainer?", GuildHouseProff, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Engineering Trainer", GOSSIP_SENDER_MAIN, 33611, "Spawn Engineering Trainer?", GuildHouseProff, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Tailoring Trainer", GOSSIP_SENDER_MAIN, 33613, "Spawn Tailoring Trainer?", GuildHouseProff, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Leatherworking Trainer", GOSSIP_SENDER_MAIN, 33612, "Spawn Leatherworking Trainer?", GuildHouseProff, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Jewlelcrafing Trainer", GOSSIP_SENDER_MAIN, 33614, "Spawn Jewelcrafting Trainer?", GuildHouseProff, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Inscription Trainer", GOSSIP_SENDER_MAIN, 33615, "Spawn Inscription Trainer?", GuildHouseProff, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Skinning Trainer", GOSSIP_SENDER_MAIN, 33618, "Spawn Skinning Trainer?", GuildHouseProff, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Mining Trainer", GOSSIP_SENDER_MAIN, 33617, "Spawn Mining Trainer?", GuildHouseProff, false); - AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Herbalism Trainer", GOSSIP_SENDER_MAIN, 33616, "Spawn Herbalism Trainer?", GuildHouseProff, false); - AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Go Back!", GOSSIP_SENDER_MAIN, 9); - SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, m_creature->GetGUID()); + player->PlayerTalkClass->ClearMenus(); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Alchemy Trainer", GOSSIP_SENDER_MAIN, 33608, "Spawn Alchemy Trainer?", GuildHouseProff, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Blacksmithing Trainer", GOSSIP_SENDER_MAIN, 33609, "Spawn Blacksmithing Trainer?", GuildHouseProff, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Enchanting Trainer", GOSSIP_SENDER_MAIN, 33610, "Spawn Enchanting Trainer?", GuildHouseProff, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Engineering Trainer", GOSSIP_SENDER_MAIN, 33611, "Spawn Engineering Trainer?", GuildHouseProff, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Tailoring Trainer", GOSSIP_SENDER_MAIN, 33613, "Spawn Tailoring Trainer?", GuildHouseProff, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Leatherworking Trainer", GOSSIP_SENDER_MAIN, 33612, "Spawn Leatherworking Trainer?", GuildHouseProff, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Jewlelcrafing Trainer", GOSSIP_SENDER_MAIN, 33614, "Spawn Jewelcrafting Trainer?", GuildHouseProff, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Inscription Trainer", GOSSIP_SENDER_MAIN, 33615, "Spawn Inscription Trainer?", GuildHouseProff, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Skinning Trainer", GOSSIP_SENDER_MAIN, 33618, "Spawn Skinning Trainer?", GuildHouseProff, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Mining Trainer", GOSSIP_SENDER_MAIN, 33617, "Spawn Mining Trainer?", GuildHouseProff, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TRAINER, "Herbalism Trainer", GOSSIP_SENDER_MAIN, 33616, "Spawn Herbalism Trainer?", GuildHouseProff, false); + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Go Back!", GOSSIP_SENDER_MAIN, 9); + player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, m_creature->GetGUID()); break; case 8: // secondry proff trainers - ClearGossipMenuFor(player); - AddGossipItemFor(player, GOSSIP_ICON_MONEY_BAG, "First Aid Trainer", GOSSIP_SENDER_MAIN, 33621, "Spawn Fist Aid Trainer?", GuildHouseProff, false); - AddGossipItemFor(player, GOSSIP_ICON_MONEY_BAG, "Fishing Trainer", GOSSIP_SENDER_MAIN, 33623, "Spawn Fishing Trainer?", GuildHouseProff, false); - AddGossipItemFor(player, GOSSIP_ICON_MONEY_BAG, "Cooking Trainer", GOSSIP_SENDER_MAIN, 33619, "Spawn Cooking Trainer?", GuildHouseProff, false); - AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Go Back!", GOSSIP_SENDER_MAIN, 9); - SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, m_creature->GetGUID()); + player->PlayerTalkClass->ClearMenus(); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_MONEY_BAG, "First Aid Trainer", GOSSIP_SENDER_MAIN, 33621, "Spawn Fist Aid Trainer?", GuildHouseProff, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_MONEY_BAG, "Fishing Trainer", GOSSIP_SENDER_MAIN, 33623, "Spawn Fishing Trainer?", GuildHouseProff, false); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_MONEY_BAG, "Cooking Trainer", GOSSIP_SENDER_MAIN, 33619, "Spawn Cooking Trainer?", GuildHouseProff, false); + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Go Back!", GOSSIP_SENDER_MAIN, 9); + player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, m_creature->GetGUID()); break; case 9: // go back! OnGossipHello(player, m_creature); @@ -188,7 +179,6 @@ public: case 28692: // Trade supplies case 28776: // Tabard Vendor case 29715: // Food & Drink - case 29636: // Reagent Vendor cost = GuildHouseProff; SpawnNPC(action, player); break; @@ -219,8 +209,6 @@ public: case 183324: // Silvermoon Portal case 183321: // Exodar Portal case 191164: // Dalaran Portal - case 191013: // Shattrath Portal:Alliance - case 191014: // Shattrath Portal:Horde cost = GuildHousePortal; SpawnObject(action, player); break; @@ -233,7 +221,7 @@ public: if (player->FindNearestCreature(entry, VISIBILITY_RANGE, true)) { ChatHandler(player->GetSession()).PSendSysMessage("You already have this creature!"); - CloseGossipMenuFor(player); + player->CLOSE_GOSSIP_MENU(); return; } @@ -278,7 +266,7 @@ public: sObjectMgr->AddCreatureToGrid(db_guid, sObjectMgr->GetCreatureData(db_guid)); player->ModifyMoney(-cost); - CloseGossipMenuFor(player); + player->CLOSE_GOSSIP_MENU(); } void SpawnObject(uint32 entry, Player* player) @@ -306,7 +294,7 @@ public: if (player->FindNearestGameObject(entry, VISIBLE_RANGE)) { ChatHandler(player->GetSession()).PSendSysMessage("You already have this object!"); - CloseGossipMenuFor(player); + player->CLOSE_GOSSIP_MENU(); return; } @@ -348,8 +336,7 @@ public: // TODO: is it really necessary to add both the real and DB table guid here ? sObjectMgr->AddGameobjectToGrid(guidLow, sObjectMgr->GetGOData(guidLow)); player->ModifyMoney(-cost); - CloseGossipMenuFor(player); - CloseGossipMenuFor(player); + player->CLOSE_GOSSIP_MENU(); } }; @@ -358,7 +345,7 @@ class GuildHouseNPCConf : public WorldScript public: GuildHouseNPCConf() : WorldScript("GuildHouseNPCConf") {} - void OnBeforeConfigLoad(bool /*reload*/) override + void OnBeforeConfigLoad(bool reload) override { GuildHouseInnKeeper = sConfigMgr->GetIntDefault("GuildHouseInnKeeper", 1000000); GuildHouseBank = sConfigMgr->GetIntDefault("GuildHouseBank", 1000000); @@ -370,7 +357,6 @@ public: GuildHousePortal = sConfigMgr->GetIntDefault("GuildHousePortal", 500000); GuildHouseProff = sConfigMgr->GetIntDefault("GuildHouseProff", 500000); GuildHouseSpirit = sConfigMgr->GetIntDefault("GuildHouseSpirit", 100000); - GuildHouseBuyRank = sConfigMgr->GetIntDefault("GuildHouseBuyRank", 0); } }; diff --git a/src/mod_guild_house_v2.cpp b/src/mod_guild_house_v2.cpp index 0a1ac76..86b45f9 100644 --- a/src/mod_guild_house_v2.cpp +++ b/src/mod_guild_house_v2.cpp @@ -3,9 +3,6 @@ #include "Configuration/Config.h" #include "Creature.h" #include "Guild.h" -#include "SpellAuraEffects.h" -#include "Chat.h" -#include "ScriptedGossip.h" #include "GuildMgr.h" #include "Define.h" #include "GossipDef.h" @@ -30,7 +27,7 @@ public: GuildHelper() : GuildScript("GuildHelper") { } - void OnCreate(Guild*, Player* leader, const std::string&) + void OnCreate(Guild* guild, Player* leader, const std::string& name) { ChatHandler(leader->GetSession()).PSendSysMessage("You now own a guild. You can purchase a guild house!"); } @@ -63,17 +60,17 @@ public: if (player->GetGuild()->GetLeaderGUID() == player->GetGUID()) { // Only leader of the guild can buy / sell guild house - AddGossipItemFor(player, GOSSIP_ICON_TABARD, "Buy Guild House!", GOSSIP_SENDER_MAIN, 2); - AddGossipItemFor(player, GOSSIP_ICON_TABARD, "Sell Guild House!", GOSSIP_SENDER_MAIN, 3, "Are you sure you want to sell your Guild house?", 0, false); + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, "Buy Guild House!", GOSSIP_SENDER_MAIN, 2); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_TABARD, "Sell Guild House!", GOSSIP_SENDER_MAIN, 3, "Are you sure you want to sell your Guild house?", NULL, false); } - AddGossipItemFor(player, GOSSIP_ICON_TABARD, "Teleport to Guild House", GOSSIP_SENDER_MAIN, 1); - AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Close", GOSSIP_SENDER_MAIN, 5); - SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, creature->GetGUID()); + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, "Teleport to Guild House", GOSSIP_SENDER_MAIN, 1); + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Close", GOSSIP_SENDER_MAIN, 5); + player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID()); return true; } - bool OnGossipSelect(Player *player, Creature * m_creature, uint32, uint32 action) + bool OnGossipSelect(Player *player, Creature * m_creature, uint32 sender, uint32 action) { uint32 map; float posX; @@ -89,7 +86,7 @@ public: posZ = 13.257628f; break; case 5: // close - CloseGossipMenuFor(player); + player->CLOSE_GOSSIP_MENU(); break; case 3: // Sell back guild house { @@ -139,14 +136,14 @@ public: if (result) { ChatHandler(player->GetSession()).PSendSysMessage("You cant buy any more guilds houses!"); - CloseGossipMenuFor(player); + player->CLOSE_GOSSIP_MENU(); return false; } - ClearGossipMenuFor(player); - AddGossipItemFor(player, GOSSIP_ICON_MONEY_BAG, "GM Island", GOSSIP_SENDER_MAIN, 100, "Buy GM island Guildhouse?", sConfigMgr->GetIntDefault("CostGuildHouse", 10000000), false); - AddGossipItemFor(player, GOSSIP_ICON_CHAT, " ----- More to Come ----", GOSSIP_SENDER_MAIN, 4); - SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, creature->GetGUID()); + player->PlayerTalkClass->ClearMenus(); + player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_MONEY_BAG, "GM Island", GOSSIP_SENDER_MAIN, 100, "Buy GM island Guildhouse?", sConfigMgr->GetIntDefault("CostGuildHouse", 10000000), false); + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, " ----- More to Come ----", GOSSIP_SENDER_MAIN, 4); + player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID()); return true; } @@ -197,8 +194,7 @@ public: else player->SetPhaseMask(GetNormalPhase(player), true); } -/* - // WIP - Anhanga, per Stoabrogga suggestion + uint32 GetNormalPhase(Player* player) const { if (player->IsGameMaster()) @@ -213,18 +209,6 @@ public: return PHASEMASK_NORMAL; } -*/ - uint32 GetNormalPhase(Player* player) const - { - if (player->IsGameMaster()) - return PHASEMASK_ANYWHERE; - - uint32 phase = player->GetPhaseByAuras(); - if (!phase) - return PHASEMASK_NORMAL; - else - return phase; - } void CheckPlayer(Player* player) {