Código:
/ / Script original criado por?
# Include "ScriptPCH.h"
# Define GOSSIP_ITEM_STABLE "Estável"
# Define "Pet New" GOSSIP_ITEM_NEWPET
# Define "Javali" GOSSIP_ITEM_BOAR
# Define "Serpente" GOSSIP_ITEM_SERPENT
# Define GOSSIP_ITEM_SCRAB "Scrab"
# Define "Leão" GOSSIP_ITEM_LION
# Define GOSSIP_ITEM_WOLF "Wolf"
# Define "Ravenger" GOSSIP_ITEM_RAVAGER
# Define GOSSIP_ITEM_UNTRAINEPET "Restart Pet"
Npc_Beastmaster classe: public CreatureScript
{
público:
Npc_Beastmaster (): CreatureScript ("Npc_Beastmaster") {}
vazio CreatePet (Player * player, Creature * m_creature, uint32 entrada) {
if (jogador-> getClass ()! = CLASS_HUNTER) {
m_creature-> MonsterWhisper ("Você não é um caçador!", o jogador-> GetGUID ());
jogador-> PlayerTalkClass-> CloseGossip ();
retorno;
}
if (jogador-> GetPet ()) {
m_creature-> MonsterWhisper ("Primeiro você deve soltar o seu animal de estimação!", o jogador-> GetGUID ());
jogador-> PlayerTalkClass-> CloseGossip ();
retorno;
}
* Criatura creatureTarget = m_creature-> SummonCreature (entrada, o jogador-> GetPositionX (), o jogador-> GetPositionY () 2, o jogador-> GetPositionZ (), o jogador-> GetOrientation (), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 500);
se o retorno (creatureTarget!);
* Pet pet = jogador-> CreateTamedPetFrom (creatureTarget, 0);
se o retorno (animal de estimação!);
/ / Kill criatura original
creatureTarget-> setDeathState (JUST_DIED);
creatureTarget-> RemoveCorpse ();
creatureTarget-> SetHealth (0); / / apenas para bom GM-modo de visualização
pet-> SetPower (POWER_HAPPINESS, 1048000);
/ / Pet-> SetUInt32Value (UNIT_FIELD_PETEXPERIENCE, 0);
/ / Pet> SetUInt32Value (UNIT_FIELD_PETNEXTLEVELEXP, uint32 ((Trinity: XP: xp_to_level (70)) / 4));
/ / Preparar efeito visual para levelup
pet-> SetUInt32Value (UNIT_FIELD_LEVEL, jogador-> GetLevel () - 1);
pet-> GetMap () -> Adicionar (Criatura (*) pet);
/ / Efeito visual para levelup
pet-> SetUInt32Value (UNIT_FIELD_LEVEL, jogador-> GetLevel ());
if (! pet-> InitStatsForLevel (jogador-> GetLevel ()))
slog-> outError ("Pet Criar falhar: há estatísticas para a entrada de inicialização% u", entrada);
pet-> UpdateAllStats ();
/ / Caster tem pet agora
jogador-> SetMinion (pet, true);
pet-> SavePetToDB (PET_SAVE_AS_CURRENT);
pet-> InitTalentForLevel ();
jogador-> PetSpellInitialize ();
/ / Fim
jogador-> PlayerTalkClass-> CloseGossip ();
m_creature-> MonsterWhisper ("Pet acrescentou Você pode querer alimentá-lo e nomeá-la de alguma forma..", o jogador-> GetGUID ());
}
bool OnGossipHello (Player * player, Creature * m_creature)
{
if (jogador-> getClass ()! = CLASS_HUNTER)
{
m_creature-> MonsterWhisper ("Você não é um caçador!", o jogador-> GetGUID ());
return true;
}
jogador-> ADD_GOSSIP_ITEM (4, "Get a Pet New." GOSSIP_SENDER_MAIN, 30);
if (jogador-> CanTameExoticPets ())
{
jogador-> ADD_GOSSIP_ITEM (4, "Get a Pet New Exotic." GOSSIP_SENDER_MAIN, 50);
}
jogador-> ADD_GOSSIP_ITEM (2, "Leve-me para o estábulo." GOSSIP_SENDER_MAIN, GOSSIP_OPTION_STABLEPET);
jogador-> ADD_GOSSIP_ITEM (6, "Vende-me um pouco de comida para o meu animal de estimação." GOSSIP_SENDER_MAIN, GOSSIP_OPTION_VENDOR);
jogador-> ADD_GOSSIP_ITEM (5, "Janela Beastmaster Close." GOSSIP_SENDER_MAIN, 150);
jogador-> SEND_GOSSIP_MENU (1, m_creature-> GetGUID ());
return true;
}
bool OnGossipSelect (Player * player, Creature * m_creature, uint32 remetente, uint32 ação)
{
jogador-> PlayerTalkClass-> ClearMenus ();
switch (ação)
{
caso 100:
jogador-> ADD_GOSSIP_ITEM (4, "Get a Pet New." GOSSIP_SENDER_MAIN, 30);
if (jogador-> CanTameExoticPets ())
{
jogador-> ADD_GOSSIP_ITEM (4, "Get a Pet New Exotic." GOSSIP_SENDER_MAIN, 50);
}
jogador-> ADD_GOSSIP_ITEM (2, "Leve-me para o estábulo." GOSSIP_SENDER_MAIN, GOSSIP_OPTION_STABLEPET);
jogador-> ADD_GOSSIP_ITEM (6, "Vende-me um pouco de comida para o meu animal de estimação." GOSSIP_SENDER_MAIN, GOSSIP_OPTION_VENDOR);
jogador-> ADD_GOSSIP_ITEM (5, "Janela Beastmaster Close." GOSSIP_SENDER_MAIN, 150);
jogador-> SEND_GOSSIP_MENU (1, m_creature-> GetGUID ());
break;
caso 150:
jogador-> CLOSE_GOSSIP_MENU ();
break;
Código:
caso 30:
jogador-> ADD_GOSSIP_ITEM (2, "<- Voltar para Menu Principal." GOSSIP_SENDER_MAIN, 100);
jogador-> ADD_GOSSIP_ITEM (4, ". Próxima Página ->", GOSSIP_SENDER_MAIN, 31);
jogador-> ADD_GOSSIP_ITEM (6, "Bat"., GOSSIP_SENDER_MAIN, 18);
jogador-> ADD_GOSSIP_ITEM (6, "Bear"., GOSSIP_SENDER_MAIN, 1);
player->ADD_GOSSIP_ITEM(6, "Boar.", GOSSIP_SENDER_MAIN, 2);
jogador-> ADD_GOSSIP_ITEM (6, "Gato." GOSSIP_SENDER_MAIN, 4);
jogador-> ADD_GOSSIP_ITEM (6, "Bird Carrion." GOSSIP_SENDER_MAIN, 5);
player->ADD_GOSSIP_ITEM(6, "Crab.", GOSSIP_SENDER_MAIN, 6);
jogador-> ADD_GOSSIP_ITEM (6, "Crocolisk." GOSSIP_SENDER_MAIN, 7);
player->ADD_GOSSIP_ITEM(6, "Dragonhawk.", GOSSIP_SENDER_MAIN, 17);
jogador-> ADD_GOSSIP_ITEM (6, "Gorilla"., GOSSIP_SENDER_MAIN, 8);
jogador-> ADD_GOSSIP_ITEM (6, "Hound." GOSSIP_SENDER_MAIN, 9);
jogador-> ADD_GOSSIP_ITEM (6, "Hiena"., GOSSIP_SENDER_MAIN, 10);
jogador-> ADD_GOSSIP_ITEM (6, "Moth"., GOSSIP_SENDER_MAIN, 11);
jogador-> ADD_GOSSIP_ITEM (6, "Coruja"., GOSSIP_SENDER_MAIN, 12);
jogador-> SEND_GOSSIP_MENU (1, m_creature-> GetGUID ());
break;
caso 31:
jogador-> ADD_GOSSIP_ITEM (2, "<- Voltar para Menu Principal." GOSSIP_SENDER_MAIN, 30);
jogador-> ADD_GOSSIP_ITEM (4, -, GOSSIP_SENDER_MAIN, 30 "<Página Anterior.");
player->ADD_GOSSIP_ITEM(6, "Raptor.", GOSSIP_SENDER_MAIN, 20);
player->ADD_GOSSIP_ITEM(6, "Ravager.", GOSSIP_SENDER_MAIN, 19);
player->ADD_GOSSIP_ITEM(6, "Strider.", GOSSIP_SENDER_MAIN, 13);
player->ADD_GOSSIP_ITEM(6, "Scorpid.", GOSSIP_SENDER_MAIN, 414);
player->ADD_GOSSIP_ITEM(6, "Spider.", GOSSIP_SENDER_MAIN, 16);
player->ADD_GOSSIP_ITEM(6, "Serpent.", GOSSIP_SENDER_MAIN, 21);
jogador-> ADD_GOSSIP_ITEM (6, "Turtle"., GOSSIP_SENDER_MAIN, 15);
jogador-> ADD_GOSSIP_ITEM (6, "Wasp"., GOSSIP_SENDER_MAIN, 93);
jogador-> SEND_GOSSIP_MENU (1, m_creature-> GetGUID ());
break;
caso 50:
jogador-> ADD_GOSSIP_ITEM (2, "<- Voltar para Menu Principal." GOSSIP_SENDER_MAIN, 100);
jogador-> ADD_GOSSIP_ITEM (2, ". <- Get a Pet New Normal", GOSSIP_SENDER_MAIN, 100);
player->ADD_GOSSIP_ITEM(6, "Chimaera.", GOSSIP_SENDER_MAIN, 51);
jogador-> ADD_GOSSIP_ITEM (6, "Hound Core." GOSSIP_SENDER_MAIN, 52);
jogador-> ADD_GOSSIP_ITEM (6, "Devilsaur". GOSSIP_SENDER_MAIN, 53);
jogador-> ADD_GOSSIP_ITEM (6, "Rhino"., GOSSIP_SENDER_MAIN, 54);
jogador-> ADD_GOSSIP_ITEM (6, "Silithid." GOSSIP_SENDER_MAIN, 55);
jogador-> ADD_GOSSIP_ITEM (6, "Worm"., GOSSIP_SENDER_MAIN, 56);
player->ADD_GOSSIP_ITEM(6, "Loque'nahak.", GOSSIP_SENDER_MAIN, 57);
jogador-> ADD_GOSSIP_ITEM (6, "Skoll." GOSSIP_SENDER_MAIN, 58);
player->ADD_GOSSIP_ITEM(6, "Gondria.", GOSSIP_SENDER_MAIN, 59);
jogador-> SEND_GOSSIP_MENU (1, m_creature-> GetGUID ());
break;
GOSSIP_OPTION_STABLEPET caso:
jogador-> getSession () -> SendStablePet (m_creature-> GetGUID ());
break;
GOSSIP_OPTION_VENDOR caso:
jogador-> SEND_VENDORLIST (m_creature-> GetGUID ());
break;
caso 51: / / quimera
CreatePet (player, m_creature, 21879);
break;
caso 52: / core / hound
CreatePet (player, m_creature, 21108);
break;
caso 53: / / Devilsaur
CreatePet (player, m_creature, 20931);
break;
caso 54: / rinoceronte /
CreatePet (player, m_creature, 30445);
break;
caso 55: / / Silithid
CreatePet (player, m_creature, 5460);
break;
caso 56: / Worm /
CreatePet (player, m_creature, 30148);
break;
caso 57: / / Loque'nahak
CreatePet (player, m_creature, 32517);
break;
caso 58: / / Skoll
CreatePet (player, m_creature, 35189);
break;
quase 59: / / Gondria
CreatePet (player, m_creature, 33776);
break;
caso 16: / / Spider
CreatePet (player, m_creature, 2349);
break;
caso 17: / / Dragonhawk
CreatePet (player, m_creature, 27946);
break;
caso 18: / Bat /
CreatePet (player, m_creature, 28233);
break;
caso 19: / / Ravager
CreatePet (player, m_creature, 17199);
break;
caso 20: / / Raptor
CreatePet (player, m_creature, 14821);
break;
caso 21: / Serpent /
CreatePet (player, m_creature, 28358);
break;
case 1: / / urso
CreatePet (player, m_creature, 29319);
break;
case 2: / Javali /
CreatePet (player, m_creature, 29996);
break;
caso 93: / Bug /
CreatePet (player, m_creature, 28085);
break;
case 4: / cat /
CreatePet (player, m_creature, 28097);
break;
case 5: / / carrion
CreatePet (player, m_creature, 26838);
break;
case 6: / caranguejo /
CreatePet (player, m_creature, 24478);
break;
quase 7: / / crocolisk
CreatePet (player, m_creature, 1417);
break;
quase 8: / / gorila
CreatePet (player, m_creature, 28213);
break;
case 9: / cão /
CreatePet (player, m_creature, 29452);
break;
caso 10: / / hynea
CreatePet (player, m_creature, 13036);
break;
caso 11: / Moth /
CreatePet (player, m_creature, 27421);
break;
case 12: / / coruja
CreatePet (player, m_creature, 23136);
break;
caso 13: / / strider
CreatePet (player, m_creature, 22807);
break;
caso 414: / / Scorpid
CreatePet (player, m_creature, 9698);
break;
caso 15: / tartaruga /
CreatePet (player, m_creature, 25482);
break;
}
return true;
}
};
AddSC_Npc_Beastmaster vazio ()
{
nova Npc_Beastmaster ();
}