Показать сообщение отдельно
Старый 18.09.2011, 14:13   #1
NeatElves
YTDB Dev
 
Аватар для NeatElves
 
Регистрация: 06.03.2010
Сообщений: 259
Сказал(а) спасибо: 28
Поблагодарили 280 раз(а) в 136 сообщениях
NeatElves Как самоцвет среди гранитаNeatElves Как самоцвет среди гранитаNeatElves Как самоцвет среди гранита
По умолчанию [11867][patch] GOSSIP_OPTION_MAILBOX

Есть 2 турнирных нпц пета(33238 и 33239), которые помимо всего прочего, предоставляют доступ к почте игрока, воспользовался готовым решением в ядре.))
Код:
diff --git a/src/game/GossipDef.h b/src/game/GossipDef.h
index 9e46bb2..b058e21 100644
--- a/src/game/GossipDef.h
+++ b/src/game/GossipDef.h
@@ -49,6 +49,7 @@ enum Gossip_Option
     GOSSIP_OPTION_ARMORER           = 15,                   //UNIT_NPC_FLAG_ARMORER             (4096)
     GOSSIP_OPTION_UNLEARNTALENTS    = 16,                   //UNIT_NPC_FLAG_TRAINER             (16) (bonus option for GOSSIP_OPTION_TRAINER)
     GOSSIP_OPTION_UNLEARNPETSKILLS  = 17,                   //UNIT_NPC_FLAG_TRAINER             (16) (bonus option for GOSSIP_OPTION_TRAINER)
+    GOSSIP_OPTION_MAILBOX           = 18,                   //UNIT_NPC_FLAG_GOSSIP              (8388608)
     GOSSIP_OPTION_MAX
 };
 
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index d4e246e..cfc7498 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -13091,6 +13091,7 @@ void Player::PrepareGossipMenu(WorldObject *pSource, uint32 menuId)
                 case GOSSIP_OPTION_PETITIONER:
                 case GOSSIP_OPTION_TABARDDESIGNER:
                 case GOSSIP_OPTION_AUCTIONEER:
+                case GOSSIP_OPTION_MAILBOX:
                     break;                                  // no checks
                 default:
                     sLog.outErrorDb("Creature entry %u have unknown gossip option %u for menu %u", pCreature->GetEntry(), itr->second.option_id, itr->second.menu_id);
@@ -13317,6 +13318,10 @@ void Player::OnGossipSelect(WorldObject* pSource, uint32 gossipListId, uint32 me
         case GOSSIP_OPTION_AUCTIONEER:
             GetSession()->SendAuctionHello(((Creature*)pSource));
             break;
+        case GOSSIP_OPTION_MAILBOX:
+            PlayerTalkClass->CloseGossip();
+            GetSession()->SendShowMailBox(guid);
+            break;
         case GOSSIP_OPTION_SPIRITGUIDE:
             PrepareGossipMenu(pSource);
             SendPreparedGossip(pSource);
В базу нужным:

Код:
REPLACE INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `action_script_id`, `box_coded`, `box_money`, `box_text`, `cond_1`, `cond_1_val_1`, `cond_1_val_2`, `cond_2`, `cond_2_val_1`, `cond_2_val_2`, `cond_3`, `cond_3_val_1`, `cond_3_val_2`) VALUES
(0, 0, 0, 'Visit a mailbox.', 18, 8388608, 0, 0, 0, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0);

Последний раз редактировалось NeatElves; 01.12.2011 в 00:35.
NeatElves вне форума  
6 пользователя(ей) сказали cпасибо:
Lordronn (18.09.2011), PSZ (19.09.2011), rsa (28.09.2011), schmoozerd (21.12.2011), Vladimir (21.12.2011)