Hi, taking 1% credits for slight improvements making it more fitting for level 70.
Also replaced some of the pets and added a boar which was missing.

Also rewrote it slightly to make it work for the latest rev of Oregon-core.

Enjoy,

//Improved by SumiaGaming ( Working for latest Oregon-core rev )

#include "ScriptPCH.h"
#include "Pet.h"
#include "Formulas.h"
#define GOSSIP_ITEM_STABLE "Stable"
#define GOSSIP_ITEM_NEWPET "New Pet"
#define GOSSIP_ITEM_BOAR "Boar"
#define GOSSIP_ITEM_SERPENT "Snake"
#define GOSSIP_ITEM_SCRAB "Scorpid"
#define GOSSIP_ITEM_LION "Lion"
#define GOSSIP_ITEM_WOLF "Wolf"
#define GOSSIP_ITEM_RAVAGER "Ravager"
void CreatePet(Player *player, Creature * _Creature, uint32 entry)
{
    if (player->GetPet())
    {
        _Creature->Say("You have to dismiss your pet first.", LANG_UNIVERSAL, 0);
        player->PlayerTalkClass->CloseGossip();
        return;
    }
    Creature *creatureTarget = _Creature->SummonCreature(entry, player->GetPositionX(), player->GetPositionY() + 2, player->GetPositionZ(),
        player->GetOrientation(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 500);
    if (!creatureTarget)
        return;
    Pet* pet = player->CreateTamedPetFrom(creatureTarget, 0);
    if (!pet)
        return;
    // kill original creature
    creatureTarget->setDeathState(JUST_DIED);
    creatureTarget->RemoveCorpse();
    creatureTarget->SetHealth(0); // just for nice GM-mode view
    // 1500 training points, max happiness and loyalty
    pet->SetTP(1500);
    pet->SetPower(POWER_HAPPINESS, 1048000);
    pet->SetLoyaltyLevel(BEST_FRIEND);
    // prepare visual effect for levelup
    pet->SetUInt32Value(UNIT_FIELD_LEVEL, 70);
    pet->GetMap()->AddToMap((Creature*)pet);

    // visual effect for levelup
    pet->SetUInt32Value(UNIT_FIELD_LEVEL, 70);
    if (!pet->InitStatsForLevel(70))
        error_log("Pet Create fail: no init stats for entry %u", entry);
    pet->UpdateAllStats();
    // caster have pet now
    player->SetMinion(pet, true);
    pet->SavePetToDB(PET_SAVE_AS_CURRENT);
    player->PetSpellInitialize();
    //end
    player->PlayerTalkClass->CloseGossip();
}


bool GossipHello_npc_beastmaster(Player *player, Creature *_Creature)
{
    if (player->getClass() != CLASS_HUNTER)
    {
        _Creature->MonsterWhisper("This NPC is only for the Hunter class.", player->GetGUID());
        return true;
    }

    player->ADD_GOSSIP_ITEM(4, "Get a New Pet.", GOSSIP_SENDER_MAIN, 30);
    player->ADD_GOSSIP_ITEM(2, "Take me to the Stable.", GOSSIP_SENDER_MAIN, GOSSIP_OPTION_STABLEPET);
    //player->ADD_GOSSIP_ITEM(6, "Sell me some Food for my Pet.", GOSSIP_SENDER_MAIN, GOSSIP_OPTION_VENDOR);
    player->ADD_GOSSIP_ITEM(5, "Close Beastmaster Window.", GOSSIP_SENDER_MAIN, 150);
    player->SEND_GOSSIP_MENU(1, _Creature->GetGUID());
    return true;
}

bool GossipSelect_npc_beastmaster(Player *player, Creature *_Creature, uint32 sender, uint32 action)
{
    player->PlayerTalkClass->ClearMenus();
    switch (action)
    {

    case 100:
        player->ADD_GOSSIP_ITEM(4, "Get a New Pet.", GOSSIP_SENDER_MAIN, 30);
        player->ADD_GOSSIP_ITEM(2, "Take me to the Stable.", GOSSIP_SENDER_MAIN, GOSSIP_OPTION_STABLEPET);
        //player->ADD_GOSSIP_ITEM(6, "Sell me some Food for my Pet.", GOSSIP_SENDER_MAIN, GOSSIP_OPTION_VENDOR);
        player->ADD_GOSSIP_ITEM(5, "Close Beastmaster Window.", GOSSIP_SENDER_MAIN, 150);
        player->SEND_GOSSIP_MENU(1, _Creature->GetGUID());
        break;

    case 150:
        player->CLOSE_GOSSIP_MENU();
        break;

    case 30:
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Bat ", GOSSIP_SENDER_MAIN, 1); // 16173
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Bear ", GOSSIP_SENDER_MAIN, 2); // 23584
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Boar ", GOSSIP_SENDER_MAIN, 300); // 21878
        //player->ADD_GOSSIP_ITEM(6, "Summon me a: Carrion Bird", GOSSIP_SENDER_MAIN, 4); // 18707
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Cat ", GOSSIP_SENDER_MAIN, 5); // 20671
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Crab ", GOSSIP_SENDER_MAIN, 6); // 18241
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Crocolisk ", GOSSIP_SENDER_MAIN, 7); // 20773
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Dragonhawk ", GOSSIP_SENDER_MAIN, 8); // 18155
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Gorilla ", GOSSIP_SENDER_MAIN, 9); // 6585
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Hyena ", GOSSIP_SENDER_MAIN, 10); // 8300
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Nether Ray ", GOSSIP_SENDER_MAIN, 11); // 17731
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Raptor ", GOSSIP_SENDER_MAIN, 12); // 20634
        player->ADD_GOSSIP_ITEM(2, "<- Back to Main Menu.", GOSSIP_SENDER_MAIN, 100);
        player->ADD_GOSSIP_ITEM(4, "Next Page. ->", GOSSIP_SENDER_MAIN, 31);
        player->SEND_GOSSIP_MENU(1, _Creature->GetGUID());
        break;

    case 31:
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Ravager     ", GOSSIP_SENDER_MAIN, 140); // 23326
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Scorpid ", GOSSIP_SENDER_MAIN, 15); // 21864
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Serpent ", GOSSIP_SENDER_MAIN, 16); // 19784
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Spider ", GOSSIP_SENDER_MAIN, 17); // 16170
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Tallstrider ", GOSSIP_SENDER_MAIN, 18); // 22807
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Turtle ", GOSSIP_SENDER_MAIN, 19); // 5431
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Warp Stalker", GOSSIP_SENDER_MAIN, 20); // 23219
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Wind Serpent", GOSSIP_SENDER_MAIN, 21); // 20673
        player->ADD_GOSSIP_ITEM(6, "Summon me a: Wolf ", GOSSIP_SENDER_MAIN, 22); // 17280
        player->ADD_GOSSIP_ITEM(4, "<- Previous Page.", GOSSIP_SENDER_MAIN, 30);
        player->SEND_GOSSIP_MENU(1, _Creature->GetGUID());
        break;

        // case stable
    case GOSSIP_OPTION_STABLEPET:
        player->GetSession()->SendStablePet(_Creature->GetGUID());
        break;
    case GOSSIP_OPTION_VENDOR:
        player->GetSession()->SendListInventory(_Creature->GetGUID());
        break;

        // case pet summons
    case 1: 
        CreatePet(player, _Creature, 16173);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27050); // Bite
            player->GetPet()->learnSpell(23148); // Dive
            player->GetPet()->learnSpell(27051); // Screech
        }
        break;
    case 2:
        CreatePet(player, _Creature, 5268);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27050); // Bite
            player->GetPet()->learnSpell(27049); // Claw
        }
        break;
    case 300:
        CreatePet(player, _Creature, 1190);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(35298); // Gore
            player->GetPet()->learnSpell(31426); // Charge
        }
        break;
    case 5:
        CreatePet(player, _Creature, 772);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27050); // Bite
            player->GetPet()->learnSpell(27049); // Claw
            player->GetPet()->learnSpell(23110); // Dash
            player->GetPet()->learnSpell(24453); // Prowl
        }
        break;
    case 6:
        CreatePet(player, _Creature, 18241);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27049); // Claw
        }
        break;
    case 7:
        CreatePet(player, _Creature, 20773);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27050); // Bite
        }
        break;
    case 8:
        CreatePet(player, _Creature, 18155);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27050); // Bite
            player->GetPet()->learnSpell(23148); // Dive
            player->GetPet()->learnSpell(35323); // Fire Breath
        }
        break;
    case 9:
        CreatePet(player, _Creature, 6585);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27050); // Bite
            player->GetPet()->learnSpell(27063); // Thunderstomp
        }
        break;
    case 10:
        CreatePet(player, _Creature, 8300);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27050); // Bite
            player->GetPet()->learnSpell(23110); // Dash
        }
        break;
    case 11:
        CreatePet(player, _Creature, 17731);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27050); // Bite
            player->GetPet()->learnSpell(23148); // Dive
        }
        break;
    case 12:
        CreatePet(player, _Creature, 3255);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27050); // Bite
            player->GetPet()->learnSpell(27049); // Claw
            player->GetPet()->learnSpell(23110); // Dash
        }
        break;
    case 140:
        CreatePet(player, _Creature, 23326);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27050); // Bite
            player->GetPet()->learnSpell(23110); // Dash
            player->GetPet()->learnSpell(35298); // Gore    
        }
        break;
    case 15:
        CreatePet(player, _Creature, 21864);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27049); // Claw
            player->GetPet()->learnSpell(27060); // Scorpid Poision
        }
        break;
    case 16:
        CreatePet(player, _Creature, 19784);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27050); // Bite
            player->GetPet()->learnSpell(35392); // Poision Spit
        }
        break;
    case 17:
        CreatePet(player, _Creature, 16170);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27050); // Bite
            player->GetPet()->learnSpell(4167); // Web
        }
        break;
    case 18:
        CreatePet(player, _Creature, 22807);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27050); // Bite
            player->GetPet()->learnSpell(23110); // Dash
        }
        break;
    case 19:
        CreatePet(player, _Creature, 5431);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27050); // Bite
            player->GetPet()->learnSpell(26064); // Spell Shield
        }
        break;
    case 20:
        CreatePet(player, _Creature, 23219);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27050); // Bite
            player->GetPet()->learnSpell(27049); // Claw
            player->GetPet()->learnSpell(35346); // Warp
        }
        break;
    case 21:
        CreatePet(player, _Creature, 20673);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27050); // Bite
            player->GetPet()->learnSpell(23148); // Dive
            player->GetPet()->learnSpell(25012); // Lightning Breath
        }
        break;
    case 22:
        CreatePet(player, _Creature, 1258);
        if (player->GetPet())
        {
            player->GetPet()->learnSpell(27050); // Bite
            player->GetPet()->learnSpell(23110); // Dash
            player->GetPet()->learnSpell(27685); // Charge
            player->GetPet()->learnSpell(24604); // Furious Howl
        }
        break;
    }
    return true;
}
void AddSC_npc_beastmaster()
{
    Script *newscript;
    newscript = new Script;
    newscript->Name = "npc_beastmaster";
    newscript->pGossipHello = &GossipHello_npc_beastmaster;
    newscript->pGossipSelect = &GossipSelect_npc_beastmaster;
    newscript->RegisterSelf();
}
Ex owner of Sumiagaming.com , returning for some new TBC action.

someone can tell me how can i summon that npc?

You have to create your own npc and use npc_beastmaster in script name