|
Регистрация | Файлы | Правила | Альбомы | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
Принятые патчи Иногда выкладывают патчи, которые потом в итоге все-таки принимают в ядро.
Повод для гордости. |
|
Опции темы | Поиск в этой теме | Опции просмотра |
03.04.2010, 10:13 | #1 |
Ученый
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
|
[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. |
14 пользователя(ей) сказали cпасибо: |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[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 |