[quest] Redemption

Issue #1114 resolved
job bais created an issue

rev: Quest: Redemption ( Dranei paladin ) ID: 9600

Problem: Jol wants you to resurrect a Young Furbolg Shaman with the Symbol of Life and return to her, but that furbolg has a few problems. A: he is not dead. B: when you use the Symbol of Life you get an error ( prolly due the furbolg not being dead in the first place :P )

Schermafbeelding 2015-08-20 om 00.14.51.png

Schermafbeelding 2015-08-20 om 00.15.01.png

Comments (9)

  1. Rappy

    I tried to complete this quest today and it worked. Even though the mob was alive and not dead. So..I guess it works.

  2. Selphius

    If you want you can add those visuals by adding this code to: "bloodmyst_isle.cpp"

    struct npc_young_furbolg_shamanAI : public ScriptedAI
    {
        npc_young_furbolg_shamanAI(Creature* c) : ScriptedAI(c) {}
    
        void Reset()
        {
                    reset_timer = 900000;    // 15 min.
            me->SetStandState(UNIT_STAND_STATE_DEAD);
        }
    
            uint32 reset_timer;
    
        void SpellHit(Unit* /*pWho*/, const SpellEntry* pSpell)
        {
            //When hit with ressurection Set Stand State
            if (pSpell->Id == SPELL_SYMBOL_OF_LIFE)
            {
                me->SetStandState(UNIT_STAND_STATE_STAND);
            }
        }
    
    void UpdateAI(const uint32 uiDiff)
        {
            if (!UpdateVictim())
            {
                if (reset_timer <= uiDiff)
                {
                    me->SetStandState(UNIT_STAND_STATE_DEAD);
                    reset_timer = 900000;     // 15 min. not sure how long it took, just gave custom time.
                }
                else reset_timer -= uiDiff;
            }
        }
    };
    
    CreatureAI* GetAI_npc_young_furbolg_shaman(Creature* pCreature)
    {
        return new npc_young_furbolg_shamanAI(pCreature);
    }
    

    and in

    void AddSC_bloodmyst_isle()

    newscript = new Script;
        newscript->Name = "npc_young_furbolg_shaman";
        newscript->GetAI = &GetAI_npc_young_furbolg_shaman;
        newscript->RegisterSelf();
    

    MySQL:

    UPDATE `world`.`creature_template` SET `ScriptName`='npc_young_furbolg_shaman' WHERE  `entry`=17542;
    
  3. job bais reporter

    there is an compile error with above code....

    [ 75%] Building CXX object src/scripts/CMakeFiles/scripts.dir/Kalimdor/bloodmyst_isle.cpp.o
    /home/oregon/oregoncore/src/scripts/Kalimdor/bloodmyst_isle.cpp: In member function virtual void npc_young_furbolg_shamanAI::SpellHit(Unit*, const SpellEntry*):
    /home/oregon/oregoncore/src/scripts/Kalimdor/bloodmyst_isle.cpp:99:27: error: SPELL_SYMBOL_OF_LIFE was not declared in this scope
             if (pSpell->Id == SPELL_SYMBOL_OF_LIFE)
                               ^
    [ 75%] Building CXX object src/scripts/CMakeFiles/scripts.dir/Kalimdor/durotar.cpp.o
    [ 75%] Building CXX object src/scripts/CMakeFiles/scripts.dir/Kalimdor/desolace.cpp.o
    [ 75%] Building CXX object src/scripts/CMakeFiles/scripts.dir/Kalimdor/RazorfenKraul/razorfen_kraul.cpp.o
    [ 75%] Building CXX object src/scripts/CMakeFiles/scripts.dir/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp.o
    make[2]: *** [src/scripts/CMakeFiles/scripts.dir/Kalimdor/bloodmyst_isle.cpp.o] Error 1
    make[2]: *** Waiting for unfinished jobs....
    make[1]: *** [src/scripts/CMakeFiles/scripts.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    [ 75%] Built target game
    
  4. job bais reporter

    maybe its better to take a look at the same script but then for human paladin, where you need to res henze faulk

  5. Selphius

    Then it would look like this. Made similar to Henze faulk one.

    struct npc_young_furbolg_shamanAI : public ScriptedAI
    {
        npc_young_furbolg_shamanAI(Creature* c) : ScriptedAI(c) {}
    
        void Reset()
        {
            lifeTimer = 120000;
            me->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
            me->SetStandState(UNIT_STAND_STATE_DEAD);
        }
    
        uint32 lifeTimer;
        bool spellHit;
    
        void SpellHit(Unit* /*Hitter*/, const SpellEntry* Spellkind)
        {
            if (Spellkind->Id == 8593 && !spellHit)
            {
                DoCast(me, 32343);
                me->SetStandState(UNIT_STAND_STATE_STAND);
                me->SetUInt32Value(UNIT_DYNAMIC_FLAGS, 0);
                spellHit = true;
            }
        }
    
        void UpdateAI(const uint32 uiDiff)
        {
            if (me->IsStandState())
            {
                if (lifeTimer <= uiDiff)
                {
                    EnterEvadeMode();
                    return;
                }
                else
                    lifeTimer -= uiDiff;
            }
        }
    };
    CreatureAI* GetAI_npc_young_furbolg_shaman(Creature* pCreature)
    {
        return new npc_young_furbolg_shamanAI(pCreature);
    }
    
    void AddSC_bloodmyst_isle()
    {
        Script* newscript;
    
        newscript = new Script;
        newscript->Name = "mob_webbed_creature";
        newscript->GetAI = &GetAI_mob_webbed_creature;
        newscript->RegisterSelf();
    
        newscript = new Script;
        newscript->Name = "npc_captured_sunhawk_agent";
        newscript->pGossipHello =  &GossipHello_npc_captured_sunhawk_agent;
        newscript->pGossipSelect = &GossipSelect_npc_captured_sunhawk_agent;
        newscript->RegisterSelf();
    
        newscript = new Script;
        newscript->Name = "npc_young_furbolg_shaman";
        newscript->GetAI = &GetAI_npc_young_furbolg_shaman;
        newscript->RegisterSelf();
    }
    

    Ps. you propably had compile problem, since I forgot to add

    #define SPELL_SYMBOL_OF_LIFE  8593
    

    Works perfect for me. Tested it myself, though I assume text is missing, or this npc doesn't have one. I have no time to check this out, so feel free to do it yourself.

  6. Log in to comment