Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- From 46a862f5a756fe081c89f62fcf64f69f6fd12118 Mon Sep 17 00:00:00 2001
- From: Molrune <Matthew_ferrill@yahoo.com>
- Date: Fri, 26 Apr 2013 18:46:45 -0400
- Subject: [PATCH] Added New Class -> Necromancer
- -> Needs Talents -> (Match Talents for Frost in mage, Fire in Mage, and Demonology in Warlock)
- -> Needs Spells
- -> Needs Playercreateinfo_Spell (Match Spells for Frost in mage, Fire in Mage, and Demonology in Warlock)
- -> Needs Playercreateinfo_Item
- ---
- src/server/game/Entities/Creature/Creature.cpp | 3 ++-
- src/server/game/Entities/Item/ItemPrototype.h | 5 +++--
- src/server/game/Entities/Player/Player.cpp | 8 +++++---
- src/server/game/Entities/Unit/StatSystem.cpp | 15 +++++++++++----
- src/server/game/Globals/ObjectMgr.cpp | 7 +++++++
- src/server/game/Miscellaneous/SharedDefines.h | 15 ++++++++++-----
- 6 files changed, 38 insertions(+), 15 deletions(-)
- diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
- index 3dc91f6..1dcd86f 100644
- --- a/src/server/game/Entities/Creature/Creature.cpp
- +++ b/src/server/game/Entities/Creature/Creature.cpp
- @@ -908,7 +908,8 @@ bool Creature::isCanTrainingOf(Player* player, bool msg) const
- switch (GetCreatureTemplate()->trainer_class)
- {
- case CLASS_DRUID: player->PlayerTalkClass->SendGossipMenu(4913, GetGUID()); break;
- - case CLASS_HUNTER: player->PlayerTalkClass->SendGossipMenu(10090, GetGUID()); break;
- + case CLASS_NECROMANCER:player->PlayerTalkClass->SendGossipMenu(324913, GetGUID()); break; // Necromancer Trainer
- + case CLASS_HUNTER: player->PlayerTalkClass->SendGossipMenu(10090, GetGUID()); break;
- case CLASS_MAGE: player->PlayerTalkClass->SendGossipMenu(328, GetGUID()); break;
- case CLASS_PALADIN:player->PlayerTalkClass->SendGossipMenu(1635, GetGUID()); break;
- case CLASS_PRIEST: player->PlayerTalkClass->SendGossipMenu(4436, GetGUID()); break;
- diff --git a/src/server/game/Entities/Item/ItemPrototype.h b/src/server/game/Entities/Item/ItemPrototype.h
- index bbd9ed8..ae53be4 100644
- --- a/src/server/game/Entities/Item/ItemPrototype.h
- +++ b/src/server/game/Entities/Item/ItemPrototype.h
- @@ -501,10 +501,11 @@ enum ItemSubclassGlyph
- ITEM_SUBCLASS_GLYPH_SHAMAN = 7,
- ITEM_SUBCLASS_GLYPH_MAGE = 8,
- ITEM_SUBCLASS_GLYPH_WARLOCK = 9,
- - ITEM_SUBCLASS_GLYPH_DRUID = 11
- + ITEM_SUBCLASS_GLYPH_DRUID = 11,
- + ITEM_SUBCLASS_GLYPH_NECROMANCER = 12
- };
- -#define MAX_ITEM_SUBCLASS_GLYPH 12
- +#define MAX_ITEM_SUBCLASS_GLYPH 13
- const uint32 MaxItemSubclassValues[MAX_ITEM_CLASS] =
- {
- diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
- index f595532..d728f54 100644
- --- a/src/server/game/Entities/Player/Player.cpp
- +++ b/src/server/game/Entities/Player/Player.cpp
- @@ -6766,7 +6766,8 @@ void Player::GetDodgeFromAgility(float &diminishing, float &nondiminishing)
- 0.036587f, // Mage
- 0.024211f, // Warlock
- 0.0f, // ??
- - 0.056097f // Druid
- + 0.056097f, // Druid
- + 0.036587f // Necromancer
- };
- // Crit/agility to dodge/agility coefficient multipliers; 3.2.0 increased required agility by 15%
- const float crit_to_dodge[MAX_CLASSES] =
- @@ -6781,7 +6782,8 @@ void Player::GetDodgeFromAgility(float &diminishing, float &nondiminishing)
- 1.00f/1.15f, // Mage
- 0.97f/1.15f, // Warlock (?)
- 0.0f, // ??
- - 2.00f/1.15f // Druid
- + 2.00f/1.15f, // Druid
- + 1.00f/1.15f // Necromancer
- };
- uint8 level = getLevel();
- @@ -13130,7 +13132,7 @@ InventoryResult Player::CanRollForItemInLFG(ItemTemplate const* proto, WorldObje
- if (proto->SubClass != ITEM_SUBCLASS_ARMOR_LEATHER)
- return EQUIP_ERR_CANT_DO_RIGHT_NOW;
- - if (_class == CLASS_MAGE || _class == CLASS_PRIEST || _class == CLASS_WARLOCK)
- + if (_class == CLASS_MAGE || _class == CLASS_PRIEST || _class == CLASS_WARLOCK || _class == CLASS_NECROMANCER)
- if (proto->SubClass != ITEM_SUBCLASS_ARMOR_CLOTH)
- return EQUIP_ERR_CANT_DO_RIGHT_NOW;
- }
- diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp
- index 74a5fcd..7e9fc7c 100644
- --- a/src/server/game/Entities/Unit/StatSystem.cpp
- +++ b/src/server/game/Entities/Unit/StatSystem.cpp
- @@ -404,6 +404,9 @@ void Player::UpdateAttackPowerAndDamage(bool ranged)
- case CLASS_WARLOCK:
- val2 = GetStat(STAT_STRENGTH) - 10.0f;
- break;
- + case CLASS_NECROMANCER:
- + val2 = GetStat(STAT_STRENGTH) - 10.0f;
- + break;
- }
- }
- @@ -638,7 +641,8 @@ const float m_diminishing_k[MAX_CLASSES] =
- 0.9830f, // Mage
- 0.9830f, // Warlock
- 0.0f, // ??
- - 0.9720f // Druid
- + 0.9720f, // Druid
- + 0.9830f // Necromancer
- };
- float Player::GetMissPercentageFromDefence() const
- @@ -655,7 +659,8 @@ float Player::GetMissPercentageFromDefence() const
- 16.00f, // Mage //?
- 16.00f, // Warlock //?
- 0.0f, // ??
- - 16.00f // Druid //?
- + 16.00f, // Druid //?
- + 16.00f // Necromancer//?
- };
- float diminishing = 0.0f, nondiminishing = 0.0f;
- @@ -682,7 +687,8 @@ void Player::UpdateParryPercentage()
- 0.0f, // Mage
- 0.0f, // Warlock
- 0.0f, // ??
- - 0.0f // Druid
- + 0.0f, // Druid
- + 0.0f // Necromancer
- };
- // No parry
- @@ -719,7 +725,8 @@ void Player::UpdateDodgePercentage()
- 150.375940f, // Mage
- 150.375940f, // Warlock
- 0.0f, // ??
- - 116.890707f // Druid
- + 116.890707f, // Druid
- + 150.375940f // Necromancer
- };
- float diminishing = 0.0f, nondiminishing = 0.0f;
- diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
- index cf5cda1..6b0c6d4 100644
- --- a/src/server/game/Globals/ObjectMgr.cpp
- +++ b/src/server/game/Globals/ObjectMgr.cpp
- @@ -3685,6 +3685,13 @@ void ObjectMgr::BuildPlayerLevelInfo(uint8 race, uint8 _class, uint8 level, Play
- info->stats[STAT_AGILITY] += (lvl > 38 ? 2: (lvl > 8 && (lvl%2) ? 1: 0));
- info->stats[STAT_INTELLECT] += (lvl > 38 ? 3: (lvl > 4 ? 1: 0));
- info->stats[STAT_SPIRIT] += (lvl > 38 ? 3: (lvl > 5 ? 1: 0));
- + case CLASS_NECROMANCER:
- + info->stats[STAT_STRENGTH] += (lvl > 9 && !(lvl%2) ? 1: 0);
- + info->stats[STAT_STAMINA] += (lvl > 5 ? 1: 0);
- + info->stats[STAT_AGILITY] += (lvl > 9 && !(lvl%2) ? 1: 0);
- + info->stats[STAT_INTELLECT] += (lvl > 24 ? 2: (lvl > 1 ? 1: 0));
- + info->stats[STAT_SPIRIT] += (lvl > 33 ? 2: (lvl > 2 ? 1: 0));
- + break;
- }
- }
- }
- diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
- index 971e0d3..42c1707 100644
- --- a/src/server/game/Miscellaneous/SharedDefines.h
- +++ b/src/server/game/Miscellaneous/SharedDefines.h
- @@ -102,17 +102,18 @@ enum Classes
- CLASS_MAGE = 8,
- CLASS_WARLOCK = 9,
- //Unknown = 10,
- - CLASS_DRUID = 11
- + CLASS_DRUID = 11,
- + CLASS_NECROMANCER = 12
- };
- // max+1 for player class
- -#define MAX_CLASSES 12
- +#define MAX_CLASSES 13
- #define CLASSMASK_ALL_PLAYABLE \
- ((1<<(CLASS_WARRIOR-1))|(1<<(CLASS_PALADIN-1))|(1<<(CLASS_HUNTER-1))| \
- (1<<(CLASS_ROGUE-1)) |(1<<(CLASS_PRIEST-1)) |(1<<(CLASS_SHAMAN-1))| \
- (1<<(CLASS_MAGE-1)) |(1<<(CLASS_WARLOCK-1))|(1<<(CLASS_DRUID-1)) | \
- - (1<<(CLASS_DEATH_KNIGHT-1)))
- + (1<<(CLASS_NECROMANCER-1))|(1<<(CLASS_DEATH_KNIGHT-1)))
- // valid classes for creature_template.unit_class
- enum UnitClass
- @@ -2696,7 +2697,8 @@ enum QuestSort
- QUEST_SORT_JEWELCRAFTING = 373,
- QUEST_SORT_NOBLEGARDEN = 374,
- QUEST_SORT_PILGRIMS_BOUNTY = 375,
- - QUEST_SORT_LOVE_IS_IN_THE_AIR = 376
- + QUEST_SORT_LOVE_IS_IN_THE_AIR = 376,
- + QUEST_SORT_NECROMANCER = 400
- };
- inline uint8 ClassByQuestSort(int32 QuestSort)
- @@ -2713,6 +2715,8 @@ inline uint8 ClassByQuestSort(int32 QuestSort)
- case QUEST_SORT_PRIEST: return CLASS_PRIEST;
- case QUEST_SORT_DRUID: return CLASS_DRUID;
- case QUEST_SORT_DEATH_KNIGHT: return CLASS_DEATH_KNIGHT;
- + case QUEST_SORT_NECROMANCER: return CLASS_NECROMANCER;
- +
- }
- return 0;
- }
- @@ -3363,7 +3367,8 @@ enum SpellFamilyNames
- // 14 - unused
- SPELLFAMILY_DEATHKNIGHT = 15,
- // 16 - unused
- - SPELLFAMILY_PET = 17
- + SPELLFAMILY_PET = 17,
- + SPELLFAMILY_NECROMANCER = 18
- };
- enum TradeStatus
- --
- 1.8.0.msysgit.0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement