Skip to content

Midsummer Festival Rework#778

Closed
Zingzah wants to merge 6 commits intoclassicdb:classicfrom
Zingzah:Midsummer
Closed

Midsummer Festival Rework#778
Zingzah wants to merge 6 commits intoclassicdb:classicfrom
Zingzah:Midsummer

Conversation

@Zingzah
Copy link
Contributor

@Zingzah Zingzah commented Jul 5, 2015

This is the first pass in reworking the Midsummer Festival. Currently the midsummer event is non functional on all servers observed so far.
Quests are not available, flames are non-functional and npcs are missing.
Object and npc placements is based on post patch 2.4 changes which does not resemble the event as is occurred in patches 1.11 and 2.1 iterations.

This PR aims to:

  1. Removed incorrect npc and object entries relating to the post 2.4 version of the event.
  2. Add the original npc, objects and quests
  3. Fix some spells and buffs particular to the event.

This PR doesn't fix the following issues which were discovered during testing:

  1. Fire Festival Fury Buff - triggered using a burning blossom on any midsummer bonfire - not working
  2. The Ribbon Pole - Which has a sequence of spells resulting in a 60 minutes fire resistance buff - not working
  3. When using any midsummer bonfire debuffs (curse, magic, disease or poison) is removed. - not working
  4. Any player can loot any of the capital flames. Same faction flame quests can't be accepted. A way to restrict lotting same faction flames was not found.
  5. Unsure of purpose or necessity of Midsummer Bonfire npc.

There was limited information (screenshots) for placement of objects and npcs. All effort was made to provide as much detail as possible with the references at hand.
Additional information will be needed to provide a complete coverage.

The changes have been divided for easier implementation/viewing and consist of the following sections:

  1. Cleanup - Removes incorrect event entries
  2. Capital Stations - Changes to Alliance and Horde capital city stations
  3. Dungeon Stations
  4. Kalimdor Stations
  5. Eastern Kingdoms
  6. Miscellaneous - Deals with spell, quest and script additions

References
Wowhead - Screenshots of flames (exception - blasted lands)

http://web.archive.org/web/20070818221911/http://www.wowwiki.com/Mid-summer_Fire_Festival
http://kaellyn.deviantart.com/gallery/
http://theworldofwarcrafters.blogspot.com.au/2011/06/flickering-flames-quests-guides.html
http://www.omnia-hq.com/forums/viewtopic.php?f=5&t=2626&view=next
https://www.flickr.com/photos/afkgamer/sets/72157594174954817
cinder elemental
ff-bonfire
firefestival_darnassus
laserpole 0
midsummer org
midsummerfirefestival darnassus
orgrimmar 2007
orgrimmar 2007-2
thunderbluff 2007
thunderbluff 2007-2
undercity 2007
undercity 2007-2
undercity ribbon dance
wow_midsummer_orgrimmar

This a first pass at reworking this event.  This PR aims to:
- remove incorrect entries
- add correct objects, npcs and quests
- Fix some spells and buffs
@cala
Copy link
Member

cala commented Jul 8, 2015

Thank you, @Zingzah 👍
We will review this. However, it will take a bit of time as we are currently working on BRD.

@Zingzah
Copy link
Contributor Author

Zingzah commented Jul 8, 2015

Nps Cala I've been watching all the good work going on there.

These are updates to Hillsbrad, Blasted Lands, Westfall and Stormwind
after additional information was obtained.  Further updates to other
areas to follow.
@Zingzah
Copy link
Contributor Author

Zingzah commented Jul 30, 2015

Just added a few updates that flesh out Stormwind, Blasted Lands, Westfall and Hillsbrad Stations. I found a some extra screenshots and are included. The sites I got the most from were
http://worldofwarcraft.filefront.com/news/Seven_Midsummer_Event_Screenshots;27600
http://flickrhivemind.net/Tags/ironforge,wow/Interesting
https://www.flickr.com/photos/valentinacarola/sets/72057594074249897/with/173484414/
http://www.leschevaliersloyaux.eu/forum/viewtopic.php?f=3&t=30
with the best shots from the last one. The site doesn't display the images but were viewable in Google images if you know what I mean.
Stormwind:
sw12006
stormwind
sw 2006

Westfall:

westfall
westfall
westfall_small
westfall02
screen shot 07-11-15 at 08 40 pm 001
screen shot 07-11-15 at 08 40 pm
screen shot 07-11-15 at 08 41 pm

Hillsbrad:

flame of hillsbrad
hillsbrad02
hillsbrad2006
midsummer_fire_festival hillsbrad

Blasted Lands:

blasted lands

More Updates to follow

@cala
Copy link
Member

cala commented Jul 31, 2015

Awesome research work. Thank you 👍
We are still busy on the BRD rework as you can see but I will look at this pull request after. :)

Added updates to Wetlands, The Barrens and Stonetalon Midsummer
stations.
@Zingzah
Copy link
Contributor Author

Zingzah commented Aug 16, 2015

Added updates to 3 more regional Midsummer stations based on the following screenshots from the same sources mentioned in the previous post:

Wetlands:
wetlands
wetlands_small2

Stonetalon:
stonetalon_small
stonetalon_small2

The Barrens:
barrens
barrens_small

Updates for Winterspring, Azshara, Searing Gorge, Orgrimmar and Ashenvale to follow

This update finalises the remaining stations that needed minor changes
to complete them.  Stations include Ashenvale, Azshara, Orgrimmar,
Searing Gorge Winterspring and Undercity.
@Zingzah
Copy link
Contributor Author

Zingzah commented Aug 19, 2015

Have added the final station updates to complete the reconstruction of all vanilla Midsummer stations. Included updates are:

Ashenvale:
ashenvale
ff-bonfire

Azshara:
azshara_small
midsummer_fire_festival_1_by_kaellyn - azshara

Orgrimmar:
orgrimmar
orgrimmar1

Winterspring:
winterspring
winterspring_small

@cala
Copy link
Member

cala commented Aug 25, 2015

Congratulations on this detective work! 👍
That looks very complete.

Now that I'm back from holidays, I will finish the work on Blackrock Depths (both database and SD2 sides) and after that your pull requests are next on my list along with a rework in the issues (Deadmines).

This a an update which adds functionality to Midsummer Bonfires enabling
debuffs to be cleansed on use.  Using a burning blossom within range of
a bonfire will buff the player with Fire Festival Fury.  A male model
has also been added to Goblin Midsummer costume npc.  Some DB cleanup to
remove warnings from the server log regarding npc health has been added.
Entries involving flame quest completion scripts have been corrected.
@Zingzah
Copy link
Contributor Author

Zingzah commented Sep 14, 2015

I've included in this latest commit some functionality (i.e. bonfire debuff cleansing and fury buff) which I stated in my original comments wasn't going to be a part of this pull request. I planned on adding this in a separate PR but was able to resolve these issues while working on the event. This latest update should be applied after all the other updates have been executed.

This is hopefully the final update for this PR which aims to cleanup the
database by moving creature_addon entries to creature_template_addon
entries for
- Midsummer Celebrants
- Firebreathers
-Fireeaters
-Flamekeepers
-Loremasters
- Talespinners
Also removed gameobjects and npcs which were only present in later
versions on the festival including alliance, horde and ahune bonfires,
midsummer bonfire and bonfire despawner npcs.
Finally the alliance stranglethorn midsummer station was removed which
was part of a later version of the event.
@Zingzah
Copy link
Contributor Author

Zingzah commented Sep 27, 2015

This last update cleans up the DB as best I can estimate by removing gameobjects and npcs which were in later vesions of the event. As well as some other optimisations this should finalise this rework for all but the Ribbon Pole which I haven't quite worked out how to fix yet and make take a little time to do so.

@cala
Copy link
Member

cala commented Sep 28, 2015

Thank you very much. I've been (and still am) quite busy IRL, but the work on BRD is almost finished. Your work on Midsummer festival will be next. 👍

@cala
Copy link
Member

cala commented Oct 23, 2015

Finally starting to review your work. Thank you for your patience.

@Zingzah
Copy link
Contributor Author

Zingzah commented Oct 28, 2015

Hi Cala. Thank you so much for going through this pull request in so much detail. It was quite a bit of stuff to sort through and would have taken quite some time for an especially busy person as yourself. I appreciate that. My main aim for this initial PR was to get the functionality of the event working and to present it in an accurate way as it was at the time of 1.12. So there will be some fine tuning to do to get the intricacies of this event working as it was on retail. I haven't been able to obtain any sniff data ( I can't seem to find sniff data from any sources at all) so many decisions have been educated guesses and try to work out what is happening from the limited data I have from the DB.

I wasn't able to find anything at all about GO 181290 which seems to be at the centre of how the flames actually worked. I have a suspicion this GO was scripted to provide specific responses to different uses ie which flame, what faction is using etc. On the surface, all of the Cleansing Flames spells (28859, 29135-39) all did the same thing ie 12-18 damage, dummy effect + trigger remove debuffs. I had a quick look through Spell.dbc to try and spot any differences between them but I couldn't see anything that stood out. So for this initial pass I settled on assigning them the one cleansing spell for functionality and at some time, come back and look at the other ones in more detail later on.

I definitely think some sd2 or core support is needed to support awarding of the city flames only to the opposing faction. I tried to do this in DB but couldn't figure out how and only succeeded in awarding the item to anyone who looted which is not the correct behaviour. I really wish I could have found some midsummer videos of the event that showed some more detail.

As far as versions of the event there were no alliance or horde bonfires, no desecrations or relighting of the flames and resulting buffs associated with this in classic. Also as far as guid assignments for all the event GO's, these have been arbitrary. A sizeable gap was chosen in the DB and populated. Without sniff data I'm not sure what the proper number for these should be.

I would love some more discussion from others about this event as I've taken it about as far as my expertise allows. My knowledge about the inner working of spells and reading the Spell.dbc table is quite limited and needs improving. I hope this has provided some more information and depth to this pull request and am always happy to discuss any matter pertaining to it.

@cala
Copy link
Member

cala commented Oct 28, 2015

Hi @Zingzah ! You obviously spent a lot of time working on this and the least we can do was to take the time to review it properly. 😄

Thank you for this detailled explanation, again.

I'm afraid you won't find much more data from this event or get more accurate feedback. This event did not exist for a long time and was long ago, at a time where few people were sniffing.

Here is my proposal:

  • I merge today everything related to spawns of GOs and NPCs
  • I do pull request to ACID regarding the AI scripts parts
  • I do not merge things related to the trap GO and effects
  • I see how we can make the various spell/trap effects work using the core and I discuss this wiyh you in a near future

Does that sounds ok to you?

@Zingzah
Copy link
Contributor Author

Zingzah commented Oct 28, 2015

That sounds great to me Cala. This will provide a good base for this event. Cheers.

@cala
Copy link
Member

cala commented Oct 28, 2015

Here is the part of your code that was not merged yet:

/* Updating Midsummer Bonfire Damage Trap with correct spell */

UPDATE `gameobject_template` SET `data3`= 28859 WHERE `entry`= 181376;

/* Updating gameobject templates of flames to remove spell entry + replace incorrect trap */

UPDATE `gameobject_template` SET `data10`= 0, `data12`= 181376 WHERE `entry` BETWEEN 181332 AND 181349;

UPDATE `gameobject_template` SET `data10`= 0, `data12`= 181376 WHERE `entry` BETWEEN 181560 AND 181567;

/* Adding scripts for capital flames to create flame item upon opening */

INSERT INTO `dbscripts_on_go_template_use` (`id`, `delay`, `command`, `datalong`, `datalong2`, `buddy_entry`, `search_radius`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `comments`) VALUES (181332, 0, 17, 23182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Create Item Flame of Stormwind');

INSERT INTO `dbscripts_on_go_template_use` (`id`, `delay`, `command`, `datalong`, `datalong2`, `buddy_entry`, `search_radius`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `comments`) VALUES (181333, 0, 17, 23183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Create Item Flame of Ironforge');

INSERT INTO `dbscripts_on_go_template_use` (`id`, `delay`, `command`, `datalong`, `datalong2`, `buddy_entry`, `search_radius`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `comments`) VALUES (181334, 0, 17, 23184, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Create Item Flame of Darnassus');

INSERT INTO `dbscripts_on_go_template_use` (`id`, `delay`, `command`, `datalong`, `datalong2`, `buddy_entry`, `search_radius`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `comments`) VALUES (181336, 0, 17, 23179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Create Item Flame of Orgrimmar');

INSERT INTO `dbscripts_on_go_template_use` (`id`, `delay`, `command`, `datalong`, `datalong2`, `buddy_entry`, `search_radius`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `comments`) VALUES (181337, 0, 17, 23180, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Create Item Flame of Thunder Bluff');

INSERT INTO `dbscripts_on_go_template_use` (`id`, `delay`, `command`, `datalong`, `datalong2`, `buddy_entry`, `search_radius`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `comments`) VALUES (181335, 0, 17, 23181, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Create Item Flame of Undercity');


-- Adding debuff removal to spell 28859

INSERT INTO `dbscripts_on_spell` (`id`, `delay`, `command`, `datalong`, `datalong2`, `buddy_entry`, `search_radius`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `comments`) VALUES (28859, 0, 15, 12844, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 'Cast Remove All Effects');

/* Changing Fire Festival Fury Trap Spell to spell 28803 and adding Fire Festival Fury buff to dbscript_on_spell to be triggered */

UPDATE `gameobject_template` SET `data2`= 20, `data3`= 0, `data4`= 0 WHERE `entry`= 181431;

INSERT INTO `dbscripts_on_spell` (`id`, `delay`, `command`, `datalong`, `datalong2`, `buddy_entry`, `search_radius`, `data_flags`, `dataint`, `dataint2`, `dataint3`, `dataint4`, `x`, `y`, `z`, `o`, `comments`) VALUES (28803, 0, 15, 29338, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 'Cast Fire Festival Fury');

Not that much as you can see, but I'd like to see if we can do this otherwise with core support.

@Zingzah
Copy link
Contributor Author

Zingzah commented Oct 28, 2015

Fantastic. I'm happy that any part of my submission was accepted but very excited that so much of this PR s becoming part of an official release. I would appreciate any feedback about how you would like a future release of this size presented to make it easier for you to process.

@cala
Copy link
Member

cala commented Nov 2, 2015

Ok, let's start with the Fire Festival Fury buff.
It comes from using item 23247 (Burning Blossom), which casts spell 28806, requiring spellfocus 1365.
This spell has three effects:

  • a dummy one
  • trigger spell 29437
  • trigger spell 29338

You took care of the spell focus with:

UPDATE `gameobject_template` SET `type`= 8, `displayId`= 0, `data0`= 1365, `data1`= 10, `data2`= 181431, `data10`= 0 WHERE `entry`= 181288;

Spell 29437 basically activates a GO with spellfocus 1365, so we need to add targeting for this
Spell 29338 is the Fire Fury buff
However, I don't understand two changes in the above query:

  • the spawning of GO 181431 (Fire Festival Fury Trap) though the name sounds right, the associated spell is wrong. I assume this GO comes from a previous - unreleased - version of the festival
  • the removal of spell 28859, since using the Burning Blossom also activates ("uses") the bonefire (I assume the goal was some visual effect), it would be logical that player also get the effect with it (cleansing)

So, I would suggest the following change to make the Fire Fury buff work:

-- Added missing spell script target for 29437 for Midsummer Fire Festival Fury buff
DELETE FROM spell_script_target WHERE entry IN (29437);
INSERT INTO spell_script_target (entry, type, targetEntry, inverseEffectMask) VALUES
(29437, 0, 181288, 0);

-- Partly revert change in [1228]
UPDATE `gameobject_template` SET `data2` = 0, `data10` = 28859 WHERE `entry` = 181288;

The cleansing effect is not working yet. We'll deal with that later. What do you think?

@cala
Copy link
Member

cala commented Nov 2, 2015

I have a doubt here. Kindly poke @xfurry for one small question, please: is GO spell cast supported by the core? I mean, if we have GAMEOBJECT_TYPE_GOOBER = 10 with data10=12345 (spell=12345), will spell 12345 be cast on GO use by player or activation by script?

@Zingzah
Copy link
Contributor Author

Zingzah commented Nov 5, 2015

Found out some more info about what's happening here. First of all, the burning blossoms work in two ways to deliver the fury buff. According to this entry:
http://web.archive.org/web/20070818221911/http://www.wowwiki.com/Mid-summer_Fire_Festival
the blossoms deliver a singular buff to the thrower through spell 28806. All this spell needs is a GO with focus 1365 to work, which it does atm with the recent updates. I've also checked if the buff is applied correctly to both melee and spell casters with the thoerycraft addon and it is.

The Fire Festival Fury Trap GO seems superfluous it this stage as the current spell attached (29235) is not cast when a blossom is thrown. I'm not sure of the use of this GO but it might be apparent when more is discovered. Spell 29235 is Fire Festival Fortitude and is not used as part of the burning blossom functionality and should be removed. This spell is cast when city flame quests are completed and should provide a city-wide buffing of players (the range of the spell is 100 yds).

Ok, now to the second part of the burning blossom. As stated in the above link, when a second blossom is thrown in quick succession (within 1 second?) every player within a certain range of the initiating player (65 yds according to spellwork) is buffed with the fire festival fury, healed and energised (mana replenished). This i have summised is what spells 29846 (a second aoe fury buff) and 28803 (Spell that triggers 29846) are for. I'm not sure how to implement this functionality as it's a bit beyond my expertise atm. I think the core/sd2 hounds should perhaps have a look to see if this is possible to do.

Moving on to the cleansing effect. This isn't related to the burning blossom. It was working in my initial updates but wasn't implemented quite correctly for all the flames. I believe spell 28859 (flame damage) used to trigger the cleansing effect (spell 12844) was the correct implementation for all of the non-city flames. Spell 12844 is the only spell I could find (search has not been extensive though) that would remove all debuffs (Magic, curse, disease, poison) in one go without removing buffs (although the link at the top indicates it could remove some buffs but doesn't specify which ones) .

However for the city flames I think the current spells listed in the DB for them are the correct ones. i.e. SW - 29137, IF - 29135, Darn - 29126, Org - 29136, TB - 29138, UC - 29139. I don't see why the Flame of Dire Maul would have IF's spell and should be changed to 28859 like the other dungeon flames. I think this entry is a typo. Back to the city-flames. These spells should also trigger the cleansing effect which should be provided by all midsummer flames but should also trigger the casting of the various flame create spells i.e. SW - 29101, IF - 29102, Darn - 29099, Org - 29130, TB - 29132, UC - 29133. These are cast upon 'touching' a city flame. Alliance city flames have a horde faction (1735) and horde city flames have an alliance faction (1732). So this when implemented correctly should prevent those players from the same faction from looting these flames.

I just haven't looked that far into this part yet. I would also love to know if evil has any sniff information on GO 181290 to find out exactly what this object is. Even though he has Wotlk data it might shed some light as I don't have a clue atm and I've come up blank on even a name for it.

@cala
Copy link
Member

cala commented Nov 5, 2015

Thank you for this information and link. :)

Regarding the Festival Fire Fury buff

  • I think that the buff triggered when throwing two Burning Blossoms in a short amount of time can be handled by SD2 without too much difficulty
  • I'm not sure that the Festival Fire Fury trap GO is intended to be used that way or that its data are correct. Either spell ID is wrong or despite its name, GO is unrelated to fire fury buff but is intended to be activated by NPCs on quest completion to give the city wide buff

Regarding the cleansing effect, I agree that spell 12844 does the trick, but I'm not sure this is how it would be done Blizz-like. I assume the removal effect would entirely be done server side to handle checks based on faction and possibly other things like specific buffs to be removed. I'm afraid we need more data here...

Finally about the city flames, putting aside the cleansing effect, I will test tonight a DBscript that should make them behave correctly. I'll share it here if it works.

@cala
Copy link
Member

cala commented Nov 6, 2015

As discussed above, I fixed the fire fury buff along in 41a6b9f
I also updated the DBscripts to prevent players of the one faction to loot the Flames of their own capitales. It should have done otherwise, but we need the GO to be able to cast spell and it seems that currently, the core cannot do that.

The cleansing effect and the multi-target fire fury buff are still not handled.

@Zingzah
Copy link
Contributor Author

Zingzah commented Nov 8, 2015

Nice work Cala. I've checked this fix and it works. I don't think GO casting is a problem in this case as the spells involved (create flames and fury buff) are self-targeting. I've learnt how to implement the terminate script command from your fix which I appreciate. It's something I've been trying to figure out for a little while with no luck. I'm just wondering though where did you get the 4 for alliance and 3 for horde values for the condition check? They don't match the values in the wiki. Also, what's the next step for the cleansing and multi-target fury buff issues? Finally, I'm having a look at the ribbon pole functionality as the last thing to fix in the midsummer event so when I have something I'll raise it in a separate issue/pull request to this one.

@cala
Copy link
Member

cala commented Nov 23, 2015

I'm just wondering though where did you get the 4 for alliance and 3 for horde values for the condition check?

They are the condition entries in the DB. Condition entry 3 has type 6 (Player is in team...) with value1 = 67 which is Horde. That means that if player is Horde, condition 3 will be true. Condition 4 is the same for Alliance (value1=469).

Unless I'm mistaken, the remaing work on that PR is related to the spells or scripts. I will then close this PR and open dedicated issues for those.

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants