Azerothcore-wotlk: [QUEST] Ulag the cleaver

Created on 2 Jan 2019  路  9Comments  路  Source: azerothcore/azerothcore-wotlk

SMALL DESCRIPTION:


After clicking on the rune, we must wait until the seal is lifted. However, you do not see a seal and you have to click on the door manually

EXPECTED BLIZZLIKE BEHAVIOUR:


Like video
https://www.youtube.com/watch?v=TssjgNMJuPk&t=10s
2019-01-02 1

CURRENT BEHAVIOUR:


The quest is currently as in the video below
https://www.youtube.com/watch?v=xrUCOwy3S8s

STEPS TO REPRODUCE THE PROBLEM:
  1. learn quest id 1819
  2. clic on the rune
  3. see
EXTRA NOTES:

BRANCH(ES):

master

AC HASH/COMMIT: 0e16853+
OPERATING SYSTEM: WINDOWS 10

MODULES: None

OTHER CUSTOMIZATIONS: None

Fix included

Most helpful comment

SAI faster then C++ more clean and etc

All 9 comments

TrinityCore Fixation
SQL AC

@grimgravy thanks! It would be nice if you could open a PR :)

Tested in game with fix included. It's okay ( Players can now click on that ''Mausoleum Trigger'' and the doors are opening. The NPC Ulag the cleaver coming outside on Horse and attacking player) - Just like on the Video (The creature Waypoint should be updated too- Image included). Also, Will create PR for this(For WP's, since i'm not experienced with it, would be good if someone is able to update it). Thanks @grimgravy

ulagthecleavermovement

Update: The WP is updated, and its correct now

Why not C++scripts

`/*######

go_mausoleum_trigger

*/

enum Mausoleum
{
QUEST_ULAG = 1819,
NPC_ULAG = 6390,
GO_DOOR = 176594
};

class npc_ulag_the_cleaver : public CreatureScript
{
public:
npc_ulag_the_cleaver() : CreatureScript("npc_ulag_the_cleaver") { }

CreatureAI* GetAI(Creature* creature) const
{
    return new npc_ulag_the_cleaverAI(creature);
}

struct npc_ulag_the_cleaverAI : public ScriptedAI
{
    npc_ulag_the_cleaverAI(Creature* creature) : ScriptedAI(creature) { }

    void Reset()
    {
        me->CastSpell(me, 23246, true);
        me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
        me->NearTeleportTo(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY(), me->GetHomePosition().GetPositionZ(), me->GetHomePosition().GetOrientation());
    }

    void EnterCombat(Unit* /*who*/)
    {
        if (GameObject* pDoor = me->FindNearestGameObject(GO_DOOR, 50.0f))
            pDoor->SetGoState(GO_STATE_READY);
        me->RemoveAurasDueToSpell(23246);
        me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
    }
};

};

class go_mausoleum_trigger : public GameObjectScript
{
public:
go_mausoleum_trigger() : GameObjectScript("go_mausoleum_trigger") { }

bool OnGossipHello(Player* player, GameObject* go)
{
    if (player->GetQuestStatus(QUEST_ULAG) != QUEST_STATUS_INCOMPLETE)
        return false;

    if (GameObject* pDoor = player->FindNearestGameObject(GO_DOOR, 30.0f))
    {
        pDoor->SetGoState(GO_STATE_ACTIVE);
        player->SummonCreature(NPC_ULAG, 2391.103f, 335.246f, 40.02f, 2.2345f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 10000);
        if (Creature * pTrigger = player->FindNearestCreature(NPC_ULAG, 50.0f))
        {
            pTrigger->CastSpell(pTrigger, 23246, true);
            pTrigger->GetMotionMaster()->MoveFollow(player, 1.0f, 3.0f);
        }
        return true;
    }

    return false;
}

};

void AddSC_tirisfal_glades()
{
new npc_calvin_montague();
new npc_ulag_the_cleaver();
new go_mausoleum_trigger();
}`

UPDATE gameobject_template SET flags=114, ScriptName="" WHERE entry IN (176594);
UPDATE creature_template SET ScriptName="npc_ulag_the_cleaver" WHERE entry IN (6390);

Why not C++scripts

It's moved to SAI now

whatever can be moved to SAI (without any breaks), it should be moved to SAI

SAI faster then C++ more clean and etc

Was this page helpful?
0 / 5 - 0 ratings

Related issues

wowmane picture wowmane  路  3Comments

PolluxTroy0 picture PolluxTroy0  路  3Comments

STARRHELD picture STARRHELD  路  4Comments

wampirr picture wampirr  路  3Comments

PivanDepolo picture PivanDepolo  路  3Comments