Small Error

Code :

#include “ScriptPCH.h”

enum Spells
{
// phase 1
SPELL_FEL_FLAMES = 36248,
SPELL_FEL_FLAMESTRIKE = 35895,
SPELL_FEL_GEYSER = 40593,
// phase 2
SPELL_ATTRACT_MAGIC = 32265,
SPELL_CONSTRICTIVE_CHAINS = 52696,
SPELL_ACCELERATE = 52635,
// berserk
SPELL_BERSERKER = 27680
};

enum Events
{
// phase 1
EVENT_FEL_FLAMES = 1,
EVENT_FEL_FLAMESTRIKE = 2,
EVENT_FEL_GEYSER = 3,
EVENT_SET_PHASE_TWO = 4,
// phase 2
EVENT_ATTRACT_MAGIC = 5,
EVENT_CONSTRICTIVE_CHAINS = 6,
EVENT_ACCELERATE = 7,
// berserker
EVENT_BERSERKER = 8
};

enum Actions
{
ACTION_SET_PHASE_TWO = 1
};

enum Phases
{
PHASE_ONE = 1,
PHASE_TWO = 2
};

#define SAY_ON_COMBAT_ENTER “I sentence you to death!”
#define SAY_ON_PHASE_TWO “Have you not had enough yet? Fine!”
#define SAY_ON_BERSERKER “Playtime’s up!”
#define SAY_ON_COMBAT_LEAVE “I pity you…”

class script_name : public CreatureScript
{
public:
script_name() : CreatureScript(“script_name”){ }

    struct script_nameAI : public CreatureAI
    {
            script_nameAI(Creature* creature) : CreatureAI(creature){ }

            void Reset()
            {
                    events.Reset();
                    events.SetPhase(PHASE_ONE);
            }

            void EnterEvadeMode()
            {
                    me->MonsterYell(SAY_ON_COMBAT_LEAVE, LANG_UNIVERSAL, me->GetGUID());
            }

            void EnterCombat(Unit* victim)
            {
                    events.ScheduleEvent(EVENT_FEL_FLAMES, 10000, 0, PHASE_ONE);
                    events.ScheduleEvent(EVENT_FEL_FLAMESTRIKE, 15000, 0, PHASE_ONE);
                    events.ScheduleEvent(EVENT_FEL_GEYSER, 8000, 0, PHASE_ONE);
                    events.ScheduleEvent(EVENT_SET_PHASE_TWO, 60000, 0, PHASE_ONE);
                    events.ScheduleEvent(EVENT_BERSERKER, 300000);
                    me->MonsterYell(SAY_ON_COMBAT_ENTER, LANG_UNIVERSAL, me->GetGUID());
            }

            void DoAction(int32 action)
            {
                    switch (action)
                    {
                    case ACTION_SET_PHASE_TWO:
                            events.SetPhase(PHASE_TWO);
                            events.ScheduleEvent(EVENT_ATTRACT_MAGIC, 15000, 0, PHASE_TWO);
                            events.ScheduleEvent(EVENT_CONSTRICTIVE_CHAINS, 7000, 0, PHASE_TWO);
                            events.ScheduleEvent(EVENT_ACCELERATE, 5000, 0, PHASE_TWO);
                            break;
                    }
            }

            void UpdateAI(uint32 diff)
            {  
                    if (!UpdateVictim())
                            return;

                    if (me->HasUnitState(UNIT_STATE_CASTING))
                            return;

                    events.Update(diff);

                    while (uint32 eventId = events.ExecuteEvent())
                    {
                            switch (eventId)
                            {
                                    // phase 1
                            case EVENT_FEL_FLAMES:
                                    DoCast(me->getVictim(), SPELL_FEL_FLAMES);
                                    events.ScheduleEvent(EVENT_FEL_FLAMES, 10000, 0, PHASE_ONE);
                                    break;
                            case EVENT_FEL_FLAMESTRIKE:
                                    if (Unit * target = SelectTarget(SELECT_TARGET_RANDOM, 0, 40.0f, true))
                                    {
                                            DoCast(target, SPELL_FEL_FLAMESTRIKE);
                                    }
                                    events.ScheduleEvent(EVENT_FEL_FLAMESTRIKE, 15000, 0, PHASE_ONE);
                                    break;
                            case EVENT_FEL_GEYSER:
                                    if (Unit * target = SelectTarget(SELECT_TARGET_RANDOM, 0, 40.0f, true))
                                    {
                                            DoCast(target, SPELL_FEL_GEYSER);
                                    }
                                    events.ScheduleEvent(EVENT_FEL_GEYSER, 8000, 0, PHASE_ONE);
                                    break;
                            case EVENT_SET_PHASE_TWO:
                                    me->MonsterYell(SAY_ON_PHASE_TWO, LANG_UNIVERSAL, me->GetGUID());
                                    DoAction(ACTION_SET_PHASE_TWO);
                                    break;
                                    // phase 2
                            case EVENT_ATTRACT_MAGIC:
                                    DoCast(me, SPELL_ATTRACT_MAGIC);
                                    events.ScheduleEvent(EVENT_ATTRACT_MAGIC, 15000, 0, PHASE_TWO);
                                    break;
                            case EVENT_CONSTRICTIVE_CHAINS:
                                    DoCast(me->getVictim(), SPELL_CONSTRICTIVE_CHAINS);
                                    events.ScheduleEvent(EVENT_CONSTRICTIVE_CHAINS, 7000, 0, PHASE_TWO);
                                    break;
                            case EVENT_ACCELERATE:
                                    DoCast(me, SPELL_ACCELERATE);
                                    events.ScheduleEvent(EVENT_ACCELERATE, 5000, 0, PHASE_TWO);
                                    break;
                                    // berserker
                            case EVENT_BERSERKER:
                                    DoCast(me, SPELL_BERSERKER);
                                    me->MonsterYell(SAY_ON_BERSERKER, LANG_UNIVERSAL, me->GetGUID());
                                    events.CancelEvent(EVENT_BERSERKER);
                                    break;
                            }
                    }

                    DoMeleeAttackIfReady();
            }

    private:
            EventMap events;
    };

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

};

void AddSC_script_name()
{
new script_name();
} Error :

/opt/WoW/Source/TrinityCore/src/server/scripts/Custom/Script_Name.cpp: In member function ‘virtual void script_name::script_nameAI::EnterEvadeMode()’:
/opt/WoW/Source/TrinityCore/src/server/scripts/Custom/Script_Name.cpp:65:91: error: invalid conversion from ‘uint64 {aka long unsigned int}’ to ‘const WorldObject*’ [-fpermissive]
In file included from /opt/WoW/Source/TrinityCore/src/server/game/Grids/Cells/CellImpl.h:26:0,
from PrecompiledHeaders/ScriptPCH.h:10:
/opt/WoW/Source/TrinityCore/src/server/game/Entities/Object/Object.h:656:14: error: initializing argument 3 of ‘void WorldObject::MonsterYell(const char*, uint32, const WorldObject*)’ [-fpermissive]
/opt/WoW/Source/TrinityCore/src/server/scripts/Custom/Script_Name.cpp: In member function ‘virtual void script_name::script_nameAI::EnterCombat(Unit*)’:
/opt/WoW/Source/TrinityCore/src/server/scripts/Custom/Script_Name.cpp:75:91: error: invalid conversion from ‘uint64 {aka long unsigned int}’ to ‘const WorldObject*’ [-fpermissive]
In file included from /opt/WoW/Source/TrinityCore/src/server/game/Grids/Cells/CellImpl.h:26:0,
from PrecompiledHeaders/ScriptPCH.h:10:
/opt/WoW/Source/TrinityCore/src/server/game/Entities/Object/Object.h:656:14: error: initializing argument 3 of ‘void WorldObject::MonsterYell(const char*, uint32, const WorldObject*)’ [-fpermissive]
/opt/WoW/Source/TrinityCore/src/server/scripts/Custom/Script_Name.cpp: In member function ‘virtual void script_name::script_nameAI::UpdateAI(uint32)’:
/opt/WoW/Source/TrinityCore/src/server/scripts/Custom/Script_Name.cpp:107:52: error: ‘class Creature’ has no member named ‘getVictim’
/opt/WoW/Source/TrinityCore/src/server/scripts/Custom/Script_Name.cpp:125:104: error: invalid conversion from ‘uint64 {aka long unsigned int}’ to ‘const WorldObject*’ [-fpermissive]
In file included from /opt/WoW/Source/TrinityCore/src/server/game/Grids/Cells/CellImpl.h:26:0,
from PrecompiledHeaders/ScriptPCH.h:10:
/opt/WoW/Source/TrinityCore/src/server/game/Entities/Object/Object.h:656:14: error: initializing argument 3 of ‘void WorldObject::MonsterYell(const char*, uint32, const WorldObject*)’ [-fpermissive]
/opt/WoW/Source/TrinityCore/src/server/scripts/Custom/Script_Name.cpp:134:52: error: ‘class Creature’ has no member named ‘getVictim’
/opt/WoW/Source/TrinityCore/src/server/scripts/Custom/Script_Name.cpp:144:104: error: invalid conversion from ‘uint64 {aka long unsigned int}’ to ‘const WorldObject*’ [-fpermissive]
In file included from /opt/WoW/Source/TrinityCore/src/server/game/Grids/Cells/CellImpl.h:26:0,
from PrecompiledHeaders/ScriptPCH.h:10:
/opt/WoW/Source/TrinityCore/src/server/game/Entities/Object/Object.h:656:14: error: initializing argument 3 of ‘void WorldObject::MonsterYell(const char*, uint32, const WorldObject*)’ [-fpermissive]
make[2]: *** [src/server/scripts/CMakeFiles/scripts.dir/Custom/Script_Name.cpp.o] Error 1
make[1]: *** [src/server/scripts/CMakeFiles/scripts.dir/all] Error 2
make: *** [all] Error 2

Anynoe can fix it ? !

See https://github.com/TrinityCore/TrinityCore/blob/430b3adfe8ed23df453f906978731fcb83956335/src/server/game/Entities/Object/Object.h#L656

Last parameter of MonsterYell is WorldObject const* target and not a guid.

You need to change “me->MonsterYell(text, LANG_UNIVERSAL, me->GetGUID());” to “me->MonsterYell(text, LANG_UNIVERSAL, me);”

Ah … Thank you …