fix(Events): fix commoner spawns, auras and equips for all events (#17632)

* fix(Core/Spells): Implement Gossip NPC Appearance spells

65511 Gossip NPC Appearance - Brewfest
65522 Gossip NPC Appearance - Winter Veil
65523 Gossip NPC Appearance - Default
65524 Gossip NPC Appearance - Lunar Festival
65525 Gossip NPC Appearance - Hallow's End
65526 Gossip NPC Appearance - Midsummer
65527 Gossip NPC Appearance - Spirit of Competition
65528 Gossip NPC Appearance - Pirates' Day
65529 Gossip NPC Appearance - Day of the Dead (DotD)

* fix(DB/SAI): fix commoner spawns and auras

* equip random mug on spell 65511 Gossip NPC Appearance - Brewfest

* check if creature before equipping brewfest mug

* minor optical fixes, DELETE first, then remove duplicate spawns

* fix two displayIDs in NPC Gossip Appearance spells

* Remove whitespace at the end of the lines

* remove commoner spawns for event 7 Harvest festival from game_event_creature

* fix harvest festival event id

* Update rev_1698785311231174200.sql
This commit is contained in:
Ludwig
2023-11-10 20:26:49 +01:00
committed by GitHub
parent 7a222b81e3
commit 2e5d5f2dc7
2 changed files with 728 additions and 0 deletions

View File

@@ -2288,6 +2288,392 @@ void AuraEffect::HandleAuraTransform(AuraApplication const* aurApp, uint8 mode,
case 65495:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 29203 : 29204);
break;
// Gossip NPC Appearance - Brewfest
case 65511:
{
switch (target->GetDisplayRace())
{
case DisplayRace::BloodElf:
if (urand(0, 1))
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21839 : 21838);
else
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21841 : 21840);
break;
case DisplayRace::Orc:
if (urand(0, 1))
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21867 : 21866);
else
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21869 : 21868);
break;
case DisplayRace::Troll:
if (urand(0, 1))
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21875 : 21874);
else
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21877 : 21876);
break;
case DisplayRace::Tauren:
if (urand(0, 1))
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21869 : 21871);
else
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21872 : 21873);
break;
case DisplayRace::Undead:
if (urand(0, 1))
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21879 : 21878);
else
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21881 : 21880);
break;
case DisplayRace::Draenei:
if (urand(0, 1))
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21844 : 21842);
else
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21845 : 21843);
break;
case DisplayRace::Dwarf:
if (urand(0, 1))
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21846 : 21848);
else
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21847 : 21849);
break;
case DisplayRace::Gnome:
if (urand(0, 1))
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21851 : 21850);
else
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21853 : 21852);
break;
case DisplayRace::Human:
if (urand(0, 1))
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21859 : 21858);
else
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21861 : 21860);
break;
case DisplayRace::NightElf:
if (urand(0, 1))
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21863 : 21862);
else
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21865 : 21864);
break;
case DisplayRace::Goblin:
if (urand(0, 1))
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21854 : 21856);
else
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21855 : 21857);
break;
default:
break;
}
// equip random brewfest mug
uint32 itemIds[5] = {
2703, // Monster - Item, Tankard Wooden
2704, // Monster - Item, Tankard Dirty
2705, // Monster - Item, Tankard Metal
13861, // Monster - Item, Tankard Gold
33963 // NPC Equip 33963
};
if (target->ToCreature())
target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, itemIds[urand(0, 4)]);
break;
}
// Gossip NPC Appearance - Winter Veil
case 65522:
{
switch (target->GetDisplayRace())
{
case DisplayRace::BloodElf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18793 : 18785);
break;
case DisplayRace::Orc:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18805 : 18804);
break;
case DisplayRace::Troll:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18809 : 18808);
break;
case DisplayRace::Tauren:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18807 : 18806);
break;
case DisplayRace::Undead:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18811 : 18810);
break;
case DisplayRace::Draenei:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18795 : 18794);
break;
case DisplayRace::Dwarf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18797 : 18796);
break;
case DisplayRace::Gnome:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18799 : 18798);
break;
case DisplayRace::Human:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18801 : 18800);
break;
case DisplayRace::NightElf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18803 : 18802);
break;
case DisplayRace::Goblin:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 19342 : 19339);
default:
break;
}
break;
}
// Gossip NPC Appearance - Default
case 65523:
{
switch (target->GetDisplayRace())
{
case DisplayRace::BloodElf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 19170 : 19169);
break;
case DisplayRace::Orc:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 19182 : 19181);
break;
case DisplayRace::Troll:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 19186 : 19185);
break;
case DisplayRace::Tauren:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 19184 : 19183);
break;
case DisplayRace::Undead:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 19188 : 19187);
break;
case DisplayRace::Draenei:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 19172 : 19171);
break;
case DisplayRace::Dwarf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 19174 : 19173);
break;
case DisplayRace::Gnome:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 19176 : 19175);
break;
case DisplayRace::Human:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 19178 : 19177);
break;
case DisplayRace::NightElf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 19180 : 19179);
break;
case DisplayRace::Goblin:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 19343 : 19340);
default:
break;
}
break;
}
// Gossip NPC Appearance - Lunar Festival
case 65524:
{
switch (target->GetDisplayRace())
{
case DisplayRace::BloodElf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18841 : 18840);
break;
case DisplayRace::Orc:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18870 : 18869);
break;
case DisplayRace::Troll:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18874 : 18873);
break;
case DisplayRace::Tauren:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18872 : 18871);
break;
case DisplayRace::Undead:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18876 : 18875);
break;
case DisplayRace::Draenei:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18843 : 18842);
break;
case DisplayRace::Dwarf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18845 : 18844);
break;
case DisplayRace::Gnome:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18847 : 18846);
break;
case DisplayRace::Human:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18860 : 18858);
break;
case DisplayRace::NightElf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 18868 : 18867);
break;
case DisplayRace::Goblin:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21067 : 19341);
default:
break;
}
break;
}
// Gossip NPC Appearance - Hallow's End
case 65525:
{
switch (target->GetDisplayRace())
{
case DisplayRace::BloodElf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 22361 : 22360);
break;
case DisplayRace::Orc:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 22375 : 22374);
break;
case DisplayRace::Troll:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 22379 : 22378);
break;
case DisplayRace::Tauren:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 22377 : 22376);
break;
case DisplayRace::Undead:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 22381 : 22380);
break;
case DisplayRace::Draenei:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 22363 : 22362);
break;
case DisplayRace::Dwarf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 22365 : 22364);
break;
case DisplayRace::Gnome:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 22367 : 22366);
break;
case DisplayRace::Human:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 22371 : 22370);
break;
case DisplayRace::NightElf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 22373 : 22372);
break;
case DisplayRace::Goblin:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 22369 : 22368);
default:
break;
}
break;
}
// Gossip NPC Appearance - Midsummer
case 65526:
{
switch (target->GetDisplayRace())
{
case DisplayRace::BloodElf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21086 : 21085);
break;
case DisplayRace::Orc:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 16438 : 16436);
break;
case DisplayRace::Troll:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 16446 : 16445);
break;
case DisplayRace::Tauren:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 16432 : 16442);
break;
case DisplayRace::Undead:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 16444 : 16443);
break;
case DisplayRace::Draenei:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 21083 : 21084);
break;
case DisplayRace::Dwarf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 16413 : 16434);
break;
case DisplayRace::Gnome:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 16448 : 16447);
break;
case DisplayRace::Human:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 16433 : 16412);
break;
case DisplayRace::NightElf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 16435 : 16414);
break;
case DisplayRace::Goblin:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 29243 : 16431);
default:
break;
}
break;
}
// Gossip NPC Appearance - Spirit of Competition
case 65527:
{
switch (target->GetDisplayRace())
{
case DisplayRace::BloodElf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 24508 : 24519);
break;
case DisplayRace::Orc:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 24515 : 24526);
break;
case DisplayRace::Troll:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 24517 : 24528);
break;
case DisplayRace::Tauren:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 24516 : 24527);
break;
case DisplayRace::Undead:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 24518 : 24529);
break;
case DisplayRace::Draenei:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 24509 : 24520);
break;
case DisplayRace::Dwarf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 24510 : 24521);
break;
case DisplayRace::Gnome:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 24511 : 24522);
break;
case DisplayRace::Human:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 24513 : 24524);
break;
case DisplayRace::NightElf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 24514 : 24525);
break;
case DisplayRace::Goblin:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 24512 : 24523);
default:
break;
}
break;
}
// Gossip NPC Appearance - Pirates' Day
case 65528:
{
switch (target->GetDisplayRace())
{
case DisplayRace::BloodElf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 25032 : 25043);
break;
case DisplayRace::Orc:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 25039 : 25050);
break;
case DisplayRace::Troll:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 25041 : 25052);
break;
case DisplayRace::Tauren:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 25040 : 25051);
break;
case DisplayRace::Undead:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 25042 : 25053);
break;
case DisplayRace::Draenei:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 25033 : 25044);
break;
case DisplayRace::Dwarf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 25034 : 25045);
break;
case DisplayRace::Gnome:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 25035 : 25046);
break;
case DisplayRace::Human:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 25037 : 25048);
break;
case DisplayRace::NightElf:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 25038 : 25049);
break;
case DisplayRace::Goblin:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 25036 : 25047);
default:
break;
}
break;
}
// Gossip NPC Appearance - Day of the Dead(DotD)
case 65529:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 29203 : 29204);
break;
// Darkspear Pride
case 75532:
target->SetDisplayId(target->getGender() == GENDER_MALE ? 31737 : 31738);