Credits:
*Spartansp for the idea.
*Myself for writing the script.
MMopro users:



Ghost: http://www.wowhead.com/?npc=17233
Mysterious Soul: http://www.wowhead.com/?npc=18121
WigSplitta: http://www.wowhead.com/?npc=23096
Runiker: http://www.wowhead.com/?npc=25740
NoobCraft: http://www.wowhead.com/?npc=20908
Succy: http://www.wowhead.com/?npc=18103
Xcynic: http://www.wowhead.com/?npc=14464
ZeroX: http://www.wowhead.com/?npc=9376
*Alex*: http://www.wowhead.com/?npc=14460
Scripted: http://www.wowhead.com/?npc=25001
Coldmrn: http://www.wowhead.com/?npc=11492
S3RO: http://www.wowhead.com/?npc=18695
CodeDemon: http://www.wowhead.com/?npc=16387
Knaur: http://www.wowhead.com/?npc=19676
Knomez: http://www.wowhead.com/?npc=19726
BrantX: http://www.wowhead.com/?npc=21235
Soulja02: http://www.wowhead.com/?npc=810
Sve3n: http://www.wowhead.com/?npc=14229
Dracconus: http://www.wowhead.com/?npc=5933
insomnicide: http://www.wowhead.com/?npc=2918
Kryten3: http://www.wowhead.com/?npc=6240
SectorSeven: http://www.wowhead.com/?npc=11105
Clain: http://www.wowhead.com/?npc=18664
Descending: http://www.wowhead.com/?npc=20347

Code:
//***************************//
//  Made by Descending       //
//  Idea:Spartansp           //
//***************************//
#include "StdAfx.h"
#include "Setup.h"

#define MORPH 987465

class SCRIPT_DECL Morph : public GossipScript
{
public:
    void GossipHello(Object * pObject, Player* Plr, bool AutoSend);
    void GossipSelectOption(Object * pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code);
    void GossipEnd(Object * pObject, Player* Plr);
    void Destroy()
    {
    delete this;
    }
};

void Morph::GossipHello(Object* pObject, Player * Plr, bool AutoSend)
    {
        GossipMenu *Menu;
        objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);
        Menu->AddItem(0, "Ghost", 1); //17233
        Menu->AddItem(0, "Mysterious Soul", 2); //18121
        Menu->AddItem(0, "WigSplitta", 3); //23096
        Menu->AddItem(0, "Runiker", 4); //25740
        Menu->AddItem(0, "NoobCraft", 5); // 20908
        Menu->AddItem(0, "Succy", 6); // 18103
        Menu->AddItem(0, "Xcynic", 7); //14464
        Menu->AddItem(0, "ZeroX", 8); //9376
        Menu->AddItem(0, "*Alex*", 9); //14460
        Menu->AddItem(0, "Scripted", 10); //25001
        Menu->AddItem(0, "Coldmrn", 11); //11492
        Menu->AddItem(0, "S3RO", 12); //18695
        Menu->AddItem(0, "CodeDemon", 13); //16387
        Menu->AddItem(0, "Next Page 2/3", 14); //
        Menu->AddItem(0, "--[[De-Morph]]--", 15); //

           if(AutoSend)
            Menu->SendTo(Plr);
    }

void Morph::GossipSelectOption(Object* pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code)
    {
        GossipMenu * Menu;
        switch(IntId)
        {
        case 1: //Ghost 17233
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 17233);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            Break;
            
        case 2: //Myst 18121
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 18121);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            Break;

        case 3: //Wig
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 23096);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            Break;
            
        case 4: //Runiker
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 25740);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            Break;

        case 5: //noob
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 20908);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            Break;
            
        case 6: //succy
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 18103);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            Break;

        case 7: //xyn
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 14464);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            Break;
            
        case 8: //xero
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 9376);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            Break;

        case 9: //alex*
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 14460);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            Break;
            
        case 10: //scripted
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 25001);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            Break;

        case 11: //Cold
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 11492);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            Break;
            
        case 12: //S3ro
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 18695);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            Break;

        case 13://Code Demon
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 16387);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            Break;

        case 15: //De-morph
            {
                Plr->DeMorph();
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            Break;

        case 14:
    
            {
    objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
    Menu->AddItem(0, "Knaur", 16);
    Menu->AddItem(0, "Knmoez", 17);
    Menu->AddItem(0, "Brantx", 18);
    Menu->AddItem(0, "Soulja02", 19);
    Menu->AddItem(0, "Sve3n", 20);
    Menu->AddItem(0, "Dracconus", 21);
    Menu->AddItem(0, "Insomnicide", 22);
    Menu->AddItem(0, "Kryten3", 23);
    Menu->AddItem(0, "SectorSeven", 24);
    Menu->AddItem(0, "Clain", 25);
    Menu->AddItem(0, "Descending", 26); 
    Menu->AddItem(0, "--[[De-Morph]]--", 15);

        case 16: //Knaur
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 19676);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            break;

        case 17: //Knomez
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 19726);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            break;

        case 18: //Brantx
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 21235);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            break;

        case 19: //Soulja
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 810);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            break;

        case 20: //Sve3n
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 14229);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            break;

        case 21: //Dracc
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 5933);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            break;

        case 22: //insomside
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 2918);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            break;

        case 23: //Kryten3
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 6240);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            break;

        case 24: //SectorSeven
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 11105);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            break;

        case 25: //Clain
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 18664);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            break;
        case 26: //Descending
            {
                Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 20347);
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            break;

        case 15: //De-morph
            {
                Plr->DeMorph();
                Plr->Emote(EMOTE_ONESHOT_ROAR);
            }
            Break;

            }
                Plr->Gossip_Complete();

};

void Morph::GossipEnd(Object * pObject, Player* Plr)
{
    GossipScript::GossipEnd(pObject, Plr);
}

void SetupMorph(ScriptMgr * mgr)
{
    GossipScript * gs = (GossipScript*) new Morph();
    mgr->register_gossip_script(MORPH, gs);
}