Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Gunship battle] Kor'kron Battle-mage #11883

Closed
Pirricli opened this issue Apr 13, 2014 · 40 comments
Closed

[Gunship battle] Kor'kron Battle-mage #11883

Pirricli opened this issue Apr 13, 2014 · 40 comments

Comments

@Pirricli
Copy link
Contributor

This NPC freezes the cannons but when a DK throws them the spell Death grip it doesn't freeze anymore the cannons, so you don't need to jump to other ship to pass the battle.

commit 98a9a08

@ghost
Copy link

ghost commented Apr 13, 2014

confirm

@snehurka324
Copy link

Confirm b0d0bed for example: hunters trap, death grip

@Demonid
Copy link
Contributor

Demonid commented Apr 30, 2014

Confirmed on 394ac74

@Ryosan23
Copy link

Ryosan23 commented May 7, 2014

Confirmed.

Once you cut the spell (Below Zero), npc do nothing for the rest of the battle, and of course, not appear more mages.

I've tried with mechanic_immune_mask_but not possitive results.

Proof with death grip: http://youtu.be/UBS0BTitfFc

@Golrag
Copy link
Contributor

Golrag commented May 10, 2014

Try this

diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 7e15057..01fb3dc 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -2263,6 +2263,8 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
                 m_caster->ToCreature()->LowerPlayerDamageReq(target->damage);
         }
     }
+    else if (missInfo == SPELL_MISS_IMMUNE)
+        return;

     if (spellHitTarget)
     {

@Demonid
Copy link
Contributor

Demonid commented May 10, 2014

Whats the code for adding a Diff in a comment?

@Aokromes
Copy link
Member

```diff

@Demonid
Copy link
Contributor

Demonid commented May 11, 2014

@Aokromes Thanks ^^

@Golrag Add this too:

diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
index c0c909e..3a5abc3 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
@@ -1719,6 +1719,8 @@ class npc_gunship_mage : public CreatureScript
             npc_gunship_mageAI(Creature* creature) : gunship_npc_AI(creature)
             {
                 me->SetReactState(REACT_PASSIVE);
+                me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true);
+                me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_GRIP, true);
             }

             void EnterEvadeMode() override

@Golrag
Copy link
Contributor

Golrag commented May 11, 2014

Just tested my diff with death grip and it works.
@Demonid those are already in mechanic_immune_mask, so I don't think we will need it

@Demonid
Copy link
Contributor

Demonid commented May 11, 2014

@Golrag On my server i could use spells like Thunderstorm to move the mage while running to the cast point, then again i didn't try to add the immunities by DB.

@Golrag
Copy link
Contributor

Golrag commented May 11, 2014

Oh... there is no immune mask for knockback in the database D:

@Demonid
Copy link
Contributor

Demonid commented May 28, 2014

@Golrag I don't know if this just happens to me but even with both of our codes, the mages are still getting bug.

If you hit/damage the mages who are casting the portal before the first mage is summoned, once it reaches it's destination point it will not freeze the cannons.

@Ryosan23
Copy link

There are two differents problems.

The first one, was to cut casting of Below Zero from mage,and it's solved with previous comments.

The other one happens when you hit any npc that cames from portal before they 'arrive' to their place. This is still wrong.

@Rushor
Copy link
Contributor

Rushor commented May 28, 2014

so make the npcs immune to player until they reach the given place could be a solution? Do player must be able to hit them on their way?

@Demonid
Copy link
Contributor

Demonid commented Jun 1, 2014

Btw, using @Golrag code bugged the spell Fear Ward http://www.wowhead.com/spell=6346 on my server, it doesn't remove after absorbing a Fear type spell.

@ghost
Copy link

ghost commented Jun 2, 2014

On my server sometimes freeze only one cannon, the 2nd cannon says evade.

@Ryosan23
Copy link

Ryosan23 commented Jun 3, 2014

¿Like this?

else if ((missInfo == SPELL_MISS_IMMUNE) && ((unit->GetGUID()== 37116) || (unit->GetGUID() == 37117)))
return;

@ghost
Copy link

ghost commented Jun 4, 2014

I think u want unit->GetEntry()

@Golrag
Copy link
Contributor

Golrag commented Jun 21, 2014

--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
@@ -1721,6 +1721,7 @@ class npc_gunship_mage : public CreatureScript
             npc_gunship_mageAI(Creature* creature) : gunship_npc_AI(creature)
             {
                 me->SetReactState(REACT_PASSIVE);
+                me->SetInCombatWithZone();
                 me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true);
             }

This did it for me, but if everyone is dead or if you try it alone and you activate gm-mode, then it is interrupted again

@Rushor
Copy link
Contributor

Rushor commented Jun 21, 2014

@Golrag: Your fix will solve the problem that the battlemage interrupt it' s cast if you use deathgrip on him right?

Would it be pssible to put that one:

else if ((missInfo == SPELL_MISS_IMMUNE) && ((unit->GetEntry()== 37116) || (unit->GetEntry() == 37117)))
return;

in the script of the battlemages in another way?

The fix in spell.cpp seems to be a little bit hacky.

@Golrag
Copy link
Contributor

Golrag commented Jun 21, 2014

Yup it fixes it. I didn't make changes in spell.cpp for this ^^

@Rushor
Copy link
Contributor

Rushor commented Jun 21, 2014

and btw, we have the same problem with deathgrip with the boss urom in occulus. if a dk uses that spell instant on urom, he will not teleport hisself to another platform.

@Golrag
Copy link
Contributor

Golrag commented Jun 21, 2014

He doesn't have mechanic_immune_mask :/

UPDATE creature_template SET mechanic_immune_mask=32 WHERE entry=27655;

Should fix it for grip ^^

@Rushor
Copy link
Contributor

Rushor commented Jun 21, 2014

nope he will be immune against the grip, if he is in combat an he starts casting the teleport, he will be immune aginst it.
BUT: if you are ooc and the boss is also ooc and if you use at that moment the deathgrip on him, the boss will fail it's teleport spell.
How to reproduce: use deathgrip at maxrange in front of urom.

I tried:
UPDATE creature_template SET mechanic_immune_mask=32 WHERE entry=27655;
and
me->SetInCombatWithZone();
me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_GRIP, true);

-> Everything does not work.

@Tangol
Copy link

Tangol commented Jun 23, 2014

@Mage-Lord Urom it should be:

UPDATE `creature_template` SET `mechanic_immune_mask`=32 WHERE `entry` IN (27655,31560);

For both his modes.

@Rushor
Copy link
Contributor

Rushor commented Jun 23, 2014

nevertheless the problem will occure if you use the deathgrip ooc on urom. For the battelmages it seems to works, because they are always in combat.

@ghost
Copy link

ghost commented Sep 15, 2014

the second code of @Golrag will fix the Kor'kron Battle-mage bug ?

@D4R4
Copy link
Contributor

D4R4 commented Jan 31, 2015

The commit fixed the issue for almost all spells but this spells can still mess up the MageAI and turn it into a vegtable:
Feral Charge - Cat

@Rushor
Copy link
Contributor

Rushor commented Jan 31, 2015

could you try to change the interrupt flags of the 'below-zero' spell to interrupt none?

@ghost
Copy link

ghost commented Jan 31, 2015

confirm, still persist

@ghost
Copy link

ghost commented Jan 31, 2015

Changing interrupt flags of below-zero to none doesn't fix this, been there

@Rushor
Copy link
Contributor

Rushor commented Jan 31, 2015

channelinterruptflags maybe also set to 0

@D4R4
Copy link
Contributor

D4R4 commented Jan 31, 2015

Does the mage only get bugged with Feral Charge - Cat spell or are there any others ways to bug it?
so far I only know of the charge, that's why I looked at the Charge spell attributes to see if something sticks out instead of CreatureAI or Below Zero spell, no luck so far :|

@Rushor
Copy link
Contributor

Rushor commented Jan 31, 2015

and btw, we should open a new ticket for this ^^

@Mack36
Copy link

Mack36 commented Mar 19, 2015

Maybe just give 'em UNIT_FLAG_NOT_SELECTABLE flag while they're moving?

@ghost
Copy link

ghost commented Mar 19, 2015

Maybe just give 'em UNIT_FLAG_NOT_SELECTABLE flag while they're moving?

Haaaaaaaaaack

@Mack36
Copy link

Mack36 commented Mar 20, 2015

Haaaaaaaaaack

Yep)
Also Arcane Torrent http://www.wowhead.com/spell=28730 and War Stomp http://www.wowhead.com/spell=20549 casted on spawned npcs (Gunship Battle npcs like Kor'kron Battle Mage) while they're moving, turn them into vegetables just staying there and doing nothing. Though they got immunities.

@lellonicole
Copy link

@Shauren The battle mage casting interrupt is still bugged. Any ideas?

@lellonicole
Copy link

Try this:

case SLOT_FREEZE_MAGE:
if (Player* player = me->SelectNearestPlayer(50.0f))
{
me->SetInCombatWithZone();
me->AddThreat(player, 1.0f);
DoCastAOE(SPELL_BELOW_ZERO);
}
break;

@Keader
Copy link
Member

Keader commented May 31, 2016

And please... stop comment in closed issue...
use #14912

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

No branches or pull requests