[cpp] Enable cutscene immunity on zone-in events#10059
Conversation
dae25c2 to
604521d
Compare
|
I'm curious, since there's no aggressive mobs in range of the zone line, are there other test areas you've witnessed that can cause issues? Also, what caused it in your scenario? |
I'm working on Event Skipped. One of the issues with my Event Skipped change, is players need to be marked as in cutscenes or else the Event Skip will apply when a player casts a friendly buff (Cure, Protect, etc.), so this isn't just about enemies. Right now, the event cutscene, progressCutscene, and progressOptionalCutscene set m_islocked which makes the player untargetable and is the basis for the Event Skipped I'm working on. I'm currently going through and fixing all the edge cases where the player was not correctly set as in a cutscene. The problem calls are in mission and quest lua files, but this is one of those edge cases where the event is called using zoneIn instead of Mission:progressCutscene. I needed to update zoneIn events to match cutscene events. I added in the invisibility for zone-in events at the same time to match retail. If you need another zone location with enemies, I could probably find one. There are a lot of zone-in events in the Windurst mission line. But again, this is mostly to prevent friendly buffs. |
This enables the cutscene immunity using setLocked. It also adds in invisibility until the cutscene is done.
604521d to
faba088
Compare
This enables the cutscene immunity using setLocked. It also adds in invisibility until the cutscene is done.
I affirm:
What does this pull request do?
This code change effects all zone-in events. It does two things:
charentity.h: Added m_zoneInCutscene bool for the state.
charentity.cpp: Set the default m_zoneInCutscene state to false.
event_info.h: Updated the reset to have the default type reset back to NORMAL.
luautils.cpp: Sets the m_zoneInCutscene to false as a fail safe. Then checks for a zone-in event and sets locked, type, and state.
char_update.cpp: Updates the packet to other players to set the visibility of the player based on the m_zoneInCutscene bool.
Steps to test these changes
You need two characters to test this. They should be in the same party.