Trinitycore: [3.3.5] Scripts/Ulduar: Razorscale not going down

Created on 4 Feb 2017  路  11Comments  路  Source: TrinityCore/TrinityCore

Description: Unable to pull down Razorscale with Harpoons during the fight

Current behaviour: Harpoons attack, but Razorscale is not going down.

Expected behaviour: (Tell us what should happen instead.)
The functional harpoons should pull Razorscale down during the fight.

Steps to reproduce the problem:

  1. go to Ulduar
  2. go to http://www.wowhead.com/npc=33186/razorscale
  3. attack Razorscale with functional harpoons.

Harpoons attack, but Razorscale will not go down.

Video https://youtu.be/PkuK0iQ6NIQ

fix for harpoons thx @Keader

diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
index e771000..befaf11 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
@@ -257,40 +257,48 @@ class boss_razorscale_controller : public CreatureScript
                     {
                         case EVENT_BUILD_HARPOON_1:
                             Talk(EMOTE_HARPOON);
-                            if (GameObject* Harpoon = me->SummonGameObject(GO_RAZOR_HARPOON_1, PosHarpoon[0].GetPositionX(), PosHarpoon[0].GetPositionY(), PosHarpoon[0].GetPositionZ(), 4.790f, G3D::Quat(), uint32(me->GetRespawnTime())))
+                            if (GameObject* harpoon = me->SummonGameObject(GO_RAZOR_HARPOON_1, PosHarpoon[0].GetPositionX(), PosHarpoon[0].GetPositionY(), PosHarpoon[0].GetPositionZ(), 4.790f, G3D::Quat(), uint32(me->GetRespawnTime())))
                             {
-                                if (GameObject* BrokenHarpoon = Harpoon->FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f)) //only nearest broken harpoon
+                                if (GameObject* BrokenHarpoon = harpoon->FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f)) //only nearest broken harpoon
                                     BrokenHarpoon->RemoveFromWorld();
                                 events.ScheduleEvent(EVENT_BUILD_HARPOON_2, 20000);
                                 events.CancelEvent(EVENT_BUILD_HARPOON_1);
+                                if (Unit* owner = harpoon->GetOwner())
+                                    owner->RemoveGameObject(harpoon, false);
                             }
                             return;
                         case EVENT_BUILD_HARPOON_2:
                             Talk(EMOTE_HARPOON);
-                            if (GameObject* Harpoon = me->SummonGameObject(GO_RAZOR_HARPOON_2, PosHarpoon[1].GetPositionX(), PosHarpoon[1].GetPositionY(), PosHarpoon[1].GetPositionZ(), 4.659f, G3D::Quat(), uint32(me->GetRespawnTime())))
+                            if (GameObject* harpoon = me->SummonGameObject(GO_RAZOR_HARPOON_2, PosHarpoon[1].GetPositionX(), PosHarpoon[1].GetPositionY(), PosHarpoon[1].GetPositionZ(), 4.659f, G3D::Quat(), uint32(me->GetRespawnTime())))
                             {
-                                if (GameObject* BrokenHarpoon = Harpoon->FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f))
+                                if (GameObject* BrokenHarpoon = harpoon->FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f))
                                     BrokenHarpoon->RemoveFromWorld();
                                 events.CancelEvent(EVENT_BUILD_HARPOON_2);
+                                if (Unit* owner = harpoon->GetOwner())
+                                    owner->RemoveGameObject(harpoon, false);
                             }
                             return;
                         case EVENT_BUILD_HARPOON_3:
                             Talk(EMOTE_HARPOON);
-                            if (GameObject* Harpoon = me->SummonGameObject(GO_RAZOR_HARPOON_3, PosHarpoon[2].GetPositionX(), PosHarpoon[2].GetPositionY(), PosHarpoon[2].GetPositionZ(), 5.382f, G3D::Quat(), uint32(me->GetRespawnTime())))
+                            if (GameObject* harpoon = me->SummonGameObject(GO_RAZOR_HARPOON_3, PosHarpoon[2].GetPositionX(), PosHarpoon[2].GetPositionY(), PosHarpoon[2].GetPositionZ(), 5.382f, G3D::Quat(), uint32(me->GetRespawnTime())))
                             {
-                                if (GameObject* BrokenHarpoon = Harpoon->FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f))
+                                if (GameObject* BrokenHarpoon = harpoon->FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f))
                                     BrokenHarpoon->RemoveFromWorld();
                                 events.ScheduleEvent(EVENT_BUILD_HARPOON_4, 20000);
                                 events.CancelEvent(EVENT_BUILD_HARPOON_3);
+                                if (Unit* owner = harpoon->GetOwner())
+                                    owner->RemoveGameObject(harpoon, false);
                             }
                             return;
                         case EVENT_BUILD_HARPOON_4:
                             Talk(EMOTE_HARPOON);
-                            if (GameObject* Harpoon = me->SummonGameObject(GO_RAZOR_HARPOON_4, PosHarpoon[3].GetPositionX(), PosHarpoon[3].GetPositionY(), PosHarpoon[3].GetPositionZ(), 4.266f, G3D::Quat(), uint32(me->GetRespawnTime())))
+                            if (GameObject* harpoon = me->SummonGameObject(GO_RAZOR_HARPOON_4, PosHarpoon[3].GetPositionX(), PosHarpoon[3].GetPositionY(), PosHarpoon[3].GetPositionZ(), 4.266f, G3D::Quat(), uint32(me->GetRespawnTime())))
                             {
-                                if (GameObject* BrokenHarpoon = Harpoon->FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f))
+                                if (GameObject* BrokenHarpoon = harpoon->FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f))
                                     BrokenHarpoon->RemoveFromWorld();
                                 events.CancelEvent(EVENT_BUILD_HARPOON_4);
+                                if (Unit* owner = harpoon->GetOwner())
+                                    owner->RemoveGameObject(harpoon, false);
                             }
                             return;
                     }

Branch(es): 3.3.5

TDB version: 335.62 + updates

TC rev. hash/commit: https://github.com/TrinityCore/TrinityCore/commit/ce774918a7959b7780d6af9e095b3b5fcdbccfe2

Operating system: Ubuntu 14.04

Branch-3.3.5a Comp-C++Script Sub-Instances

Most helpful comment

Starting rewrite tomorrow night :)

All 11 comments

@tkrokli Thank you for a change issue.

@sirikfoll will look it :)

Try this, seems to work:

```diff
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
index e771000..394a256 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
@@ -429,6 +429,8 @@ class boss_razorscale : public CreatureScript
if (HarpoonCounter == RAID_MODE(2, 4))
{
HarpoonCounter = 0;

  • events.SetPhase(PHASE_GROUND);
  • me->InterruptNonMeleeSpells(false);
    me->GetMotionMaster()->MoveLand(1, RazorGround);
    }
    ```

Ok, everything here works.
If someone want a temp fix: https://gist.github.com/Keader/cf58969623041f0882f78b94d7a4d5d4
But i dont want push anything, this boss needs a rewrite.

this boss needs a rewrite.

In the video it also looks like the harpoons are faced to the wrong direction as well as the boss in the air while attacking... this needs indeed some more love overall.

I will try rewrite it in next week, btw we need to rework all bosses of Ulduar... any help is welcome 馃拑

Starting rewrite tomorrow night :)

@Keader love you! no homo )

@Keader any news?)

I'm working on it, but I dont have much free time lately.
https://github.com/Keader/TrinityCore/commits/razorscale
is not usefull yet, I will try finish it this weekend.

d825a068300224498a3613299d15a70323af9b73

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Re3os picture Re3os  路  47Comments

jackpoz picture jackpoz  路  56Comments

Treeston picture Treeston  路  56Comments

MrSmite picture MrSmite  路  60Comments

minkokomaung picture minkokomaung  路  69Comments