diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 112 |
1 files changed, 91 insertions, 21 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 0d035c748f6..1f7445ce2ca 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -14302,6 +14302,9 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const if (getRace() == RACE_NIGHTELF) { uint8 hairColor = GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_HAIR_COLOR_ID); + if (HasAura(210333)) // Glyph of the Feral Chameleon + hairColor = urand(0, 10); + switch (hairColor) { case 7: // Violet @@ -14315,13 +14318,16 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const return 29407; case 4: // White return 29408; - default: // original - Dark Blue + default: // Original - Dark Blue return 892; } } else if (getRace() == RACE_TROLL) { uint8 hairColor = GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_HAIR_COLOR_ID); + if (HasAura(210333)) // Glyph of the Feral Chameleon + hairColor = urand(0, 12); + switch (hairColor) { case 0: // Red @@ -14337,7 +14343,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const case 7: // Purple case 10: return 33665; - default: // original - white + default: // Original - White return 33669; } } @@ -14345,6 +14351,9 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const { // Based on Skin color uint8 skinColor = GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_SKIN_ID); + if (HasAura(210333)) // Glyph of the Feral Chameleon + skinColor = urand(0, 9); + // Male if (getGender() == GENDER_MALE) { @@ -14355,12 +14364,12 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const case 2: // Black case 7: return 33661; - case 4: // yellow + case 4: // Yellow return 33664; case 3: // White case 5: return 33663; - default: // original - Gray + default: // Original - Gray return 33660; } } @@ -14380,7 +14389,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const return 33664; case 2: // White return 33663; - default: // original - Gray + default: // Original - Gray return 33660; } } @@ -14389,6 +14398,9 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const else if (getRace() == RACE_TAUREN) { uint8 skinColor = GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_SKIN_ID); + if (HasAura(210333)) // Glyph of the Feral Chameleon + skinColor = urand(0, 20); + // Male if (getGender() == GENDER_MALE) { @@ -14414,7 +14426,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const case 4: case 5: return 29412; - default: // original - Grey + default: // Original - Grey return 8571; } } @@ -14436,7 +14448,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const case 2: case 3: return 29412; - default: // original - Grey + default: // Original - Grey return 8571; } } @@ -14450,6 +14462,9 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const if (getRace() == RACE_NIGHTELF) { uint8 hairColor = GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_HAIR_COLOR_ID); + if (HasAura(107059)) // Glyph of the Ursol Chameleon + hairColor = urand(0, 8); + switch (hairColor) { case 0: // Green @@ -14462,13 +14477,16 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const return 29416; case 3: // Light Blue return 29417; - default: // original - Violet - return 2281; + default: // Original - Violet + return 29415; } } else if (getRace() == RACE_TROLL) { uint8 hairColor = GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_HAIR_COLOR_ID); + if (HasAura(107059)) // Glyph of the Ursol Chameleon + hairColor = urand(0, 14); + switch (hairColor) { case 0: // Red @@ -14485,7 +14503,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const case 11: case 12: return 33658; - default: // original - Blue + default: // Original - Blue return 33655; } } @@ -14493,6 +14511,9 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const { // Based on Skin color uint8 skinColor = GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_SKIN_ID); + if (HasAura(107059)) // Glyph of the Ursol Chameleon + skinColor = urand(0, 8); + // Male if (getGender() == GENDER_MALE) { @@ -14508,7 +14529,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const case 3: // White case 5: return 33654; - default: // original - Gray + default: // Original - Gray return 33650; } } @@ -14528,7 +14549,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const return 33654; case 2: // White return 33653; - default: // original - Gray + default: // Original - Gray return 33650; } } @@ -14537,6 +14558,9 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const else if (getRace() == RACE_TAUREN) { uint8 skinColor = GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_SKIN_ID); + if (HasAura(107059)) // Glyph of the Ursol Chameleon + skinColor = urand(0, 20); + // Male if (getGender() == GENDER_MALE) { @@ -14562,7 +14586,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const return 29420; case 18: // Completly White return 29421; - default: // original - Brown + default: // Original - Brown return 2289; } } @@ -14584,13 +14608,13 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const return 29420; case 10: // Completly White return 29421; - default: // original - Brown + default: // Original - Brown return 2289; } } } else if (Player::TeamForRace(getRace()) == ALLIANCE) - return 2281; + return 29415; else return 2289; case FORM_FLIGHT_FORM: @@ -14598,12 +14622,32 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const return 20857; return 20872; case FORM_FLIGHT_FORM_EPIC: - if (Player::TeamForRace(getRace()) == ALLIANCE) - return (getRace() == RACE_WORGEN ? 37729 : 21243); - if (getRace() == RACE_TROLL) - return 37730; - return 21244; + if (HasAura(219062)) // Glyph of the Sentinel + { + switch (getRace()) + { + case RACE_NIGHTELF: // Blue + return 64328; + case RACE_TAUREN: // Brown + return 64329; + case RACE_WORGEN: // Purple + return 64330; + case RACE_TROLL: // White + return 64331; + default: + break; + } + } + else + { + if (Player::TeamForRace(getRace()) == ALLIANCE) + return (getRace() == RACE_WORGEN ? 37729 : 21243); + if (getRace() == RACE_TROLL) + return 37730; + return 21244; + } case FORM_MOONKIN_FORM: + { switch (getRace()) { case RACE_NIGHTELF: @@ -14618,8 +14662,34 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const break; } break; + } + case FORM_AQUATIC_FORM: + if (HasAura(114333)) // Glyph of the Orca + return 4591; + return 2428; + case FORM_TRAVEL_FORM: + { + if (HasAura(131113)) // Glyph of the Cheetah + return 1043; + + if (HasAura(224122)) // Glyph of the Doe + return 70450; + + switch (getRace()) + { + case RACE_NIGHTELF: + case RACE_WORGEN: + return 40816; + case RACE_TROLL: + case RACE_TAUREN: + return 45339; + default: + break; + } + break; + } case FORM_GHOST_WOLF: - if (HasAura(58135)) //! Glyph of Arctic Wolf + if (HasAura(58135)) // Glyph of Spectral Wolf return 27312; default: break; |