Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Патчи > Принятые патчи

Важная информация

Принятые патчи Иногда выкладывают патчи, которые потом в итоге все-таки принимают в ядро.

Повод для гордости.

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.04.2010, 10:13   #1
Insider42
Ученый
 
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
Insider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранита
Хорошо [9715][patch] gossip для двойного спека

ревизия:
9661 и новее

исправление:
позволяет изучать двойную специализацию у классовых тренеров

автор:
я, хоть и взял идею у оригинального патча

зы: вынес в функцию дабы соблюдать code style
Код:
diff --git a/src/game/GossipDef.h b/src/game/GossipDef.h
index 68744db..8659f3d 100644
--- a/src/game/GossipDef.h
+++ b/src/game/GossipDef.h
@@ -48,6 +48,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_LEARNDUALSPEC     = 18,                   //UNIT_NPC_FLAG_TRAINER             (16) (bonus option for GOSSIP_OPTION_TRAINER)
     GOSSIP_OPTION_MAX
 };
 
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 48e091c..9c447b5 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -8318,6 +8318,14 @@ void Player::SendPetSkillWipeConfirm()
     GetSession()->SendPacket( &data );
 }
 
+void Player::LearnDualSpec(uint64 guid)
+{
+    ModifyMoney(-1000*GOLD);
+
+    CastSpell(this, 63680, true, NULL, NULL, guid);
+    CastSpell(this, 63624, true, NULL, NULL, guid);
+}
+
 /*********************************************************/
 /***                    STORAGE SYSTEM                 ***/
 /*********************************************************/
@@ -12520,6 +12528,10 @@ void Player::PrepareGossipMenu(WorldObject *pSource, uint32 menuId)
                     if (!pCreature->isCanTrainingOf(this, false))
                         bCanTalk = false;
                     break;
+                case GOSSIP_OPTION_LEARNDUALSPEC:
+                    if(!(GetSpecsCount() == 1 && pCreature->isCanTrainingAndResetTalentsOf(this) && !(getLevel() < 40)))
+                        bCanTalk = false;
+                    break;
                 case GOSSIP_OPTION_UNLEARNTALENTS:
                     if (!pCreature->isCanTrainingAndResetTalentsOf(this))
                         bCanTalk = false;
@@ -12719,6 +12731,10 @@ void Player::OnGossipSelect(WorldObject* pSource, uint32 gossipListId, uint32 me
         case GOSSIP_OPTION_TRAINER:
             GetSession()->SendTrainerList(guid);
             break;
+        case GOSSIP_OPTION_LEARNDUALSPEC:
+            PlayerTalkClass->CloseGossip();
+            LearnDualSpec(guid);
+            break;
         case GOSSIP_OPTION_UNLEARNTALENTS:
             PlayerTalkClass->CloseGossip();
             SendTalentWipeConfirm(guid);
diff --git a/src/game/Player.h b/src/game/Player.h
index a53339b..9d4cce5 100644
--- a/src/game/Player.h
+++ b/src/game/Player.h
@@ -1444,6 +1444,7 @@ class MANGOS_DLL_SPEC Player : public Unit
 
         void SetBindPoint(uint64 guid);
         void SendTalentWipeConfirm(uint64 guid);
+        void LearnDualSpec(uint64 guid);
         void RewardRage( uint32 damage, uint32 weaponSpeedHitFactor, bool attacker );
         void SendPetSkillWipeConfirm();
         void CalcRage( uint32 damage,bool attacker );
в базу:
Код:
INSERT INTO `gossip_menu_option` VALUES 
(0, 16, 0, 'Purchase a Dual Talent Specialization.', 18, 16, 0, 0, 0, 0, 10000000, 'Are you sure you wish to purchase a Dual Talent Specialization?', 0, 0, 0, 0, 0, 0, 0, 0, 0);

Последний раз редактировалось Insider42; 03.04.2010 в 10:16.
Insider42 вне форума  
14 пользователя(ей) сказали cпасибо:
fedr (05.04.2010), Feel the Power (04.04.2010), ghostpast (04.04.2010), KiriX (03.04.2010), Lightunit (03.04.2010), Mayss (04.04.2010), Nordway (04.04.2010), Omg (05.04.2010), Sergey (03.04.2010), Shadez (03.04.2010), sven (03.04.2010), Vladimir (10.04.2010), YuruY (03.04.2010)
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[10704] Add the option to close gossip window in gossip system newsbot CMaNGOS Commits 0 09.11.2010 00:22
Локализация Gossip. xmolex Запросы 9 14.05.2010 06:39
[9715] Implement required basic elements for dual spec learn gossips. newsbot CMaNGOS Commits 0 10.04.2010 02:11


Текущее время: 09:13. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot