thx marcus
worked /emoticons/default_biggrin.png
thx marcus
worked /emoticons/default_biggrin.png
Nevermind, solved it using:
INSERT INTO `creature_template` (`entry`, `difficulty_entry_1`, `difficulty_entry_2`, `difficulty_entry_3`, `KillCredit1`, `KillCredit2`, `modelid1`, `modelid2`, `modelid3`, `modelid4`, `name`, `subname`, `IconName`, `gossip_menu_id`, `minlevel`, `maxlevel`, `exp`, `faction_A`, `faction_H`, `npcflag`, `speed_walk`, `speed_run`, `scale`, `rank`, `mindmg`, `maxdmg`, `dmgschool`, `attackpower`, `dmg_multiplier`, `baseattacktime`, `rangeattacktime`, `unit_class`, `unit_flags`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `trainer_class`, `trainer_race`, `minrangedmg`, `maxrangedmg`, `rangedattackpower`, `type`, `type_flags`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `spell5`, `spell6`, `spell7`, `spell8`, `PetSpellDataId`, `VehicleId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `Health_mod`, `Mana_mod`, `Armor_mod`, `RacialLeader`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `movementId`, `RegenHealth`, `equipment_id`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`, `WDBVerified`) VALUES (99999, 0, 0, 0, 0, 0, 20918, 0, 0, 0, 'Rexxar', 'Pet Giver', '', 0, 80, 80, 0, 35, 35, 4194433, 1, 1.14286, 0.6, 1, 1755, 1755, 0, 1504, 1, 1500, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 3, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 'Npc_Beastmaster', 0);
INSERT INTO `npc_vendor` (`entry`, `slot`, `item`, `maxcount`, `incrtime`, `ExtendedCost`) VALUES (99999, 0, 43087, 0, 0, 0);
INSERT INTO `npc_vendor` (`entry`, `slot`, `item`, `maxcount`, `incrtime`, `ExtendedCost`) VALUES (99999, 0, 35950, 0, 0, 0);
INSERT INTO `npc_vendor` (`entry`, `slot`, `item`, `maxcount`, `incrtime`, `ExtendedCost`) VALUES (99999, 0, 36782, 0, 0, 0);
Sorry for that /emoticons/default_smile.png
Oh wait, it’s not working, doesn’t have the gossips /emoticons/default_sad.png
could you provide me a working sql please? /emoticons/default_smile.png
Please Help Me
3> npc_beastmaster.cpp
3>C:UsersN A T U R A LDesktopCustom Core (Trinity Base)srcserverscriptsCustomnpc_beastmaster.cpp(25): error C2039: ‘CloseGossip’ : is not a member of ‘PlayerMenu’
3> C:/Users/N A T U R A L/Desktop/Custom Core (Trinity Base)/src/server/game/Entities/CreatureGossipDef.h(248) : see declaration of ‘PlayerMenu’
3>C:UsersN A T U R A LDesktopCustom Core (Trinity Base)srcserverscriptsCustomnpc_beastmaster.cpp(31): error C2039: ‘CloseGossip’ : is not a member of ‘PlayerMenu’
3> C:/Users/N A T U R A L/Desktop/Custom Core (Trinity Base)/src/server/game/Entities/CreatureGossipDef.h(248) : see declaration of ‘PlayerMenu’
3>C:UsersN A T U R A LDesktopCustom Core (Trinity Base)srcserverscriptsCustomnpc_beastmaster.cpp(53): error C2039: ‘Add’ : is not a member of ‘Map’
3> C:/Users/N A T U R A L/Desktop/Custom Core (Trinity Base)/src/server/game/MapsMap.h(234) : see declaration of ‘Map’
3>C:UsersN A T U R A LDesktopCustom Core (Trinity Base)srcserverscriptsCustomnpc_beastmaster.cpp(71): error C2039: ‘CloseGossip’ : is not a member of ‘PlayerMenu’
3> C:/Users/N A T U R A L/Desktop/Custom Core (Trinity Base)/src/server/game/Entities/CreatureGossipDef.h(248) : see declaration of ‘PlayerMenu’
3>C:UsersN A T U R A LDesktopCustom Core (Trinity Base)srcserverscriptsCustomnpc_beastmaster.cpp(170): error C2039: ‘SEND_VENDORLIST’ : is not a member of ‘Player’
3> C:/Users/N A T U R A L/Desktop/Custom Core (Trinity Base)/src/server/game/Entities/PlayerPlayer.h(1060) : see declaration of ‘Player’
3>
3>Build FAILED.
please help me ?
3> npc_beastmaster.cpp
3>C:UsersN A T U R A LDesktopCustom Core (Trinity Base)srcserverscriptsCustomnpc_beastmaster.cpp(50): error C2039: ‘Add’ : is not a member of ‘Map’
3> C:/Users/N A T U R A L/Desktop/Custom Core (Trinity Base)/src/server/game/MapsMap.h(234) : see declaration of ‘Map’
3>
3>Build FAILED.
men please use spoilers for large codes:)
Because i see so many people want this script working and are looking in the wrong places.
Here is a working one with working SQL.
Script:
[SPOILER]
[CODE]//Fixed and Modified by Marcus
//original script created by ??
#include “ScriptPCH.h”
#define GOSSIP_ITEM_STABLE “Stable”
#define GOSSIP_ITEM_NEWPET “New Pet”
#define GOSSIP_ITEM_BOAR “Boar”
#define GOSSIP_ITEM_SERPENT “Serpent”
#define GOSSIP_ITEM_SCRAB “Scrab”
#define GOSSIP_ITEM_LION “Lion”
#define GOSSIP_ITEM_WOLF “Wolf”
#define GOSSIP_ITEM_RAVAGER “Ravenger”
#define GOSSIP_ITEM_UNTRAINEPET “Restart Pet”
class Npc_Beastmaster : public CreatureScript
{
public:
Npc_Beastmaster() : CreatureScript("Npc_Beastmaster"){ }
void CreatePet(Player *player, Creature * m_creature, uint32 entry){
if(player->getClass() != CLASS_HUNTER){
m_creature->MonsterWhisper("You are not a Hunter!", player->GetGUID());
player->PlayerTalkClass->SendCloseGossip();
return;
}
if(player->GetPet()){
m_creature->MonsterWhisper("First you must drop your Pet!", player->GetGUID());
player->PlayerTalkClass->SendCloseGossip();
return;
}
Creature *creatureTarget = m_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
pet->SetPower(POWER_HAPPINESS, 1048000);
//pet->SetUInt32Value(UNIT_FIELD_PETEXPERIENCE,0);
//pet->SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, uint32((Trinity::XP::xp_to_level(70))/4));
// prepare visual effect for levelup
pet->SetUInt32Value(UNIT_FIELD_LEVEL, player->getLevel() - 1);
pet->GetMap()->AddToMap((Creature*)pet);
// visual effect for levelup
pet->SetUInt32Value(UNIT_FIELD_LEVEL, player->getLevel());
if(!pet->InitStatsForLevel(player->getLevel()))
sLog->outError ("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);
pet->InitTalentForLevel();
player->PetSpellInitialize();
//end
player->PlayerTalkClass->SendCloseGossip();
m_creature->MonsterWhisper("Pet added. You might want to feed it and name it somehow.", player->GetGUID());
}
bool OnGossipHello(Player *player, Creature * m_creature){
if(player->getClass() != CLASS_HUNTER){
m_creature->MonsterWhisper("You are not a Hunter!", player->GetGUID());
return true;
}
player->ADD_GOSSIP_ITEM(4, "Get a New Pet.", GOSSIP_SENDER_MAIN, 30);
if (player->CanTameExoticPets()){
player->ADD_GOSSIP_ITEM(4, "Get a New Exotic Pet.", GOSSIP_SENDER_MAIN, 50);
}
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, m_creature->GetGUID());
return true;
}
bool OnGossipSelect(Player *player, Creature * m_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);
if (player->CanTameExoticPets()){
player->ADD_GOSSIP_ITEM(4, "Get a New Exotic Pet.", GOSSIP_SENDER_MAIN, 50);
}
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, m_creature->GetGUID());
break;
case 150:
player->CLOSE_GOSSIP_MENU();
break;
case 30:
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->ADD_GOSSIP_ITEM(6, "Bat.", GOSSIP_SENDER_MAIN, 18);
player->ADD_GOSSIP_ITEM(6, "Bear.", GOSSIP_SENDER_MAIN, 1);
player->ADD_GOSSIP_ITEM(6, "Boar.", GOSSIP_SENDER_MAIN, 2);
player->ADD_GOSSIP_ITEM(6, "Cat.", GOSSIP_SENDER_MAIN, 4);
player->ADD_GOSSIP_ITEM(6, "Carrion Bird.", GOSSIP_SENDER_MAIN, 5);
player->ADD_GOSSIP_ITEM(6, "Crab.", GOSSIP_SENDER_MAIN, 6);
player->ADD_GOSSIP_ITEM(6, "Crocolisk.", GOSSIP_SENDER_MAIN, 7);
player->ADD_GOSSIP_ITEM(6, "Dragonhawk.", GOSSIP_SENDER_MAIN, 17);
player->ADD_GOSSIP_ITEM(6, "Gorilla.", GOSSIP_SENDER_MAIN, 8);
player->ADD_GOSSIP_ITEM(6, "Hound.", GOSSIP_SENDER_MAIN, 9);
player->ADD_GOSSIP_ITEM(6, "Hyena.", GOSSIP_SENDER_MAIN, 10);
player->ADD_GOSSIP_ITEM(6, "Moth.", GOSSIP_SENDER_MAIN, 11);
player->ADD_GOSSIP_ITEM(6, "Owl.", GOSSIP_SENDER_MAIN, 12);
player->SEND_GOSSIP_MENU(1, m_creature->GetGUID());
break;
case 31:
player->ADD_GOSSIP_ITEM(2, "<- Back to Main Menu.", GOSSIP_SENDER_MAIN, 30);
player->ADD_GOSSIP_ITEM(4, "<- Previous Page.", GOSSIP_SENDER_MAIN, 30);
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);
player->ADD_GOSSIP_ITEM(6, "Turtle.", GOSSIP_SENDER_MAIN, 15);
player->ADD_GOSSIP_ITEM(6, "Wasp.", GOSSIP_SENDER_MAIN, 93);
player->SEND_GOSSIP_MENU(1, m_creature->GetGUID());
break;
case 50:
player->ADD_GOSSIP_ITEM(2, "<- Back to Main Menu.", GOSSIP_SENDER_MAIN, 100);
player->ADD_GOSSIP_ITEM(2, "<- Get a New Normal Pet.", GOSSIP_SENDER_MAIN, 100);
player->ADD_GOSSIP_ITEM(6, "Chimaera.", GOSSIP_SENDER_MAIN, 51);
player->ADD_GOSSIP_ITEM(6, "Core Hound.", GOSSIP_SENDER_MAIN, 52);
player->ADD_GOSSIP_ITEM(6, "Devilsaur.", GOSSIP_SENDER_MAIN, 53);
player->ADD_GOSSIP_ITEM(6, "Rhino.", GOSSIP_SENDER_MAIN, 54);
player->ADD_GOSSIP_ITEM(6, "Silithid.", GOSSIP_SENDER_MAIN, 55);
player->ADD_GOSSIP_ITEM(6, "Worm.", GOSSIP_SENDER_MAIN, 56);
player->ADD_GOSSIP_ITEM(6, "Loque'nahak.", GOSSIP_SENDER_MAIN, 57);
player->ADD_GOSSIP_ITEM(6, "Skoll.", GOSSIP_SENDER_MAIN, 58);
player->ADD_GOSSIP_ITEM(6, "Gondria.", GOSSIP_SENDER_MAIN, 59);
player->SEND_GOSSIP_MENU(1, m_creature->GetGUID());
break;
case GOSSIP_OPTION_STABLEPET:
player->GetSession()->SendStablePet(m_creature->GetGUID());
break;
case GOSSIP_OPTION_VENDOR:
player->GetSession()->SendListInventory(m_creature->GetGUID());
break;
case 51: //chimera
CreatePet(player, m_creature, 21879);
break;
case 52: //core hound
CreatePet(player, m_creature, 21108);
break;
case 53: //Devilsaur
CreatePet(player, m_creature, 20931);
break;
case 54: //rhino
CreatePet(player, m_creature, 30445);
break;
case 55: //silithid
CreatePet(player, m_creature, 5460);
break;
case 56: //Worm
CreatePet(player, m_creature, 30148);
break;
case 57: //Loque'nahak
CreatePet(player, m_creature, 32517);
break;
case 58: //Skoll
CreatePet(player, m_creature, 35189);
break;
case 59: //Gondria
CreatePet(player, m_creature, 33776);
break;
case 16: //Spider
CreatePet(player, m_creature, 2349);
break;
case 17: //Dragonhawk
CreatePet(player, m_creature, 27946);
break;
case 18: //Bat
CreatePet(player, m_creature, 28233);
break;
case 19: //Ravager
CreatePet(player, m_creature, 17199);
break;
case 20: //Raptor
CreatePet(player, m_creature, 14821);
break;
case 21: //Serpent
CreatePet(player, m_creature, 28358);
break;
case 1: //bear
CreatePet(player, m_creature, 29319);
break;
case 2: //Boar
CreatePet(player, m_creature, 29996);
break;
case 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: //crab
CreatePet(player, m_creature, 24478);
break;
case 7: //crocolisk
CreatePet(player, m_creature, 1417);
break;
case 8: //gorila
CreatePet(player, m_creature, 28213);
break;
case 9: //hound
CreatePet(player, m_creature, 29452);
break;
case 10: //hynea
CreatePet(player, m_creature, 13036);
break;
case 11: //Moth
CreatePet(player, m_creature, 27421);
break;
case 12: //owl
CreatePet(player, m_creature, 23136);
break;
case 13: //strider
CreatePet(player, m_creature, 22807);
break;
case 414: //scorpid
CreatePet(player, m_creature, 9698);
break;
case 15: //turtle
CreatePet(player, m_creature, 25482);
break;
}
return true;
}
};
void AddSC_Npc_Beastmaster(){
new Npc_Beastmaster();
}
[/CODE][/SPOILER]
SQL:
-- change this to the creatures id.
set @NPC_ID := 100000;
DELETE FROM `creature_template` WHERE `entry`=@NPC_ID;
INSERT INTO `creature_template` (`entry`, `difficulty_entry_1`, `difficulty_entry_2`, `difficulty_entry_3`, `KillCredit1`, `KillCredit2`, `modelid1`, `modelid2`, `modelid3`, `modelid4`, `name`, `subname`, `IconName`, `gossip_menu_id`, `minlevel`, `maxlevel`, `exp`, `faction_A`, `faction_H`, `npcflag`, `speed_walk`, `speed_run`, `scale`, `rank`, `mindmg`, `maxdmg`, `dmgschool`, `attackpower`, `dmg_multiplier`, `baseattacktime`, `rangeattacktime`, `unit_class`, `unit_flags`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `trainer_class`, `trainer_race`, `minrangedmg`, `maxrangedmg`, `rangedattackpower`, `type`, `type_flags`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `spell5`, `spell6`, `spell7`, `spell8`, `PetSpellDataId`, `VehicleId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `Health_mod`, `Mana_mod`, `Armor_mod`, `RacialLeader`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `movementId`, `RegenHealth`, `equipment_id`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`, `WDBVerified`) VALUES (@NPC_ID, 0, 0, 0, 0, 0, 20918, 0, 0, 0, 'Rexxar', 'Pet Giver', '', 0, 80, 80, 0, 35, 35, 4194433, 1, 1.14286, 0.6, 1, 1755, 1755, 0, 1504, 1, 1500, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 3, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 'Npc_Beastmaster', 0);
DELETE FROM `npc_vendor` WHERE `entry`=@NPC_ID;
INSERT INTO `npc_vendor` (`entry`, `slot`, `item`, `maxcount`, `incrtime`, `ExtendedCost`) VALUES (@NPC_ID, 0, 43087, 0, 0, 0);
INSERT INTO `npc_vendor` (`entry`, `slot`, `item`, `maxcount`, `incrtime`, `ExtendedCost`) VALUES (@NPC_ID, 0, 35950, 0, 0, 0);
INSERT INTO `npc_vendor` (`entry`, `slot`, `item`, `maxcount`, `incrtime`, `ExtendedCost`) VALUES (@NPC_ID, 0, 36782, 0, 0, 0);
Hi, I have compiled that script /execute the sql and I get this :
I can’t choose a pet. And I can buy food event if I take an other class. ^^" Do I miss something ? (sorry for my english, the second choice is the Stable)
I can’t choose a pet. And I can buy food event if I take an other class. ^^" Do I miss something ? (sorry for my english, the second choice is the Stable)
[/SPOILER]
You must have edited something because the script works for me (fully tested).
Here you are /emoticons/default_smile.png
apply the patch and about the configs , you need to add it manually
################################################################################
# BeastMaster Configuration
#
# BeastMaster Hunter Only
# = 0 (Anyone can use)
# default = 1 (Hunter only)
BeastMaster.OnlyHunter = 1
# BeastMaster Enable Exotic Pets
# = 0 (Anyone Can get Exotic pets)
# default = 1 (Can only get Exotic Pets if you know how)
BeastMaster.EnableExotic = 1
BeastMaster.EnableHunterSpells = 1
# Cost of Normal Pet (in copper)
# default = 100000 (10 gold)
# Cost of Normal Pet (in copper)
# default = 100000 (10 gold)
BeastMaster.NormalCost = 100000
# Cost of Exotic Pet (in copper)
# default = 1000000 (100 gold)
BeastMaster.ExoticCost = 1000000
# Use Tokens instead of gold
# default = 0 (Use Gold)
# = 1 (Use Tokens)
BeastMaster.UseTokens = 0
# Entry number of "token" Item
# default = 0 (No item. BeastMaster.UseTokens must = 0)
# = n (n = entry number of item)
BeastMaster.ItemEntryNum = 0
# Number of "Tokens" for normal pet
# = n (n = number of tokens)
BeastMaster.NormalTokens = 100
# Number of "Tokens" for exotic pet
# = n (n = number of tokens)
BeastMaster.ExoticTokens = 200
http://www.trinitycore.org/f/topic/5703-beastmaster-script/page__pid__36236#entry36236 /emoticons/default_smile.png
stop multiposting.
Hi again, in fact I tried a lot of custom scripts (beastmaster, enchant npc or maxskill npc) and no one worked for me.
I tried a lot of things, searched everywhere and my npc’s always just tell me ‘greetings xx’.
Please help me.
(I always have npc flag = 1, faction 35, the script name is right, generating success etc.)
I have the last core here : https://github.com/TrinityCore/TrinityCore,
Are you adding the scripts to ScriptLoader.cpp? Don’t forget to add them at the bottom of that file. (where it’s specified) and remember you need to add them 2 times.
PS: don’t use “last core” likned to the repo, use a direct link to the commit you are using, for example: DB/Loot: add gold drops to ICC · TrinityCore/TrinityCore@b8310cb · GitHub or you can even use the commit hash only, for example: b8310cb2fbaeea95dc123a22a0f9df36f034bf5d
Yes I did that, it still doesn’t work.
I don’t no at all what I did wrong. :x
ps : ok sorry, so I use 95d3ea55122921dc7df31e0427de3b1d63f346f2
bump
what is the new code instead of
[CODE]
player->SEND_VENDORLIST(m_creature->GetGUID());
[/CODE] ?
its in that code and i cant find the right code .
we dont have
[CODE]
SEND_VENDORLIST
[/CODE] anymore.
Found it :
player->GetSession()->SendListInventory(m_creature->GetGUID());
ok guys .
here is the fix code . last revision . in > a0aecdb8cdabf216e93b41efae268a89bd46e7d5
i just fixed a few things and here it is .
Tested and 100% working .
( Sql Part in page 1 )
#include "ScriptPCH.h"
#define GOSSIP_ITEM_STABLE "Stable"
#define GOSSIP_ITEM_NEWPET "New Pet"
#define GOSSIP_ITEM_BOAR "Boar"
#define GOSSIP_ITEM_SERPENT "Serpent"
#define GOSSIP_ITEM_SCRAB "Scrab"
#define GOSSIP_ITEM_LION "Lion"
#define GOSSIP_ITEM_WOLF "Wolf"
#define GOSSIP_ITEM_RAVAGER "Ravenger"
#define GOSSIP_ITEM_UNTRAINEPET "Restart Pet"
class Npc_Beastmaster : public CreatureScript
{
public:
Npc_Beastmaster() : CreatureScript("Npc_Beastmaster") { }
void CreatePet(Player *player, Creature * m_creature, uint32 entry) {
if(player->getClass() != CLASS_HUNTER) {
m_creature->MonsterWhisper("You are not a Hunter!", player->GetGUID());
player->PlayerTalkClass->SendCloseGossip();
return;
}
if(player->GetPet()) {
m_creature->MonsterWhisper("First you must drop your Pet!", player->GetGUID());
player->PlayerTalkClass->SendCloseGossip();
return;
}
Creature *creatureTarget = m_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
pet->SetPower(POWER_HAPPINESS, 1048000);
//pet->SetUInt32Value(UNIT_FIELD_PETEXPERIENCE,0);
//pet->SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, uint32((Trinity::XP::xp_to_level(70))/4));
// prepare visual effect for levelup
pet->SetUInt32Value(UNIT_FIELD_LEVEL, player->getLevel() - 1);
pet->GetMap()->AddToMap((Creature*)pet);
// visual effect for levelup
pet->SetUInt32Value(UNIT_FIELD_LEVEL, player->getLevel());
if(!pet->InitStatsForLevel(player->getLevel()))
sLog->outError (LOG_FILTER_PETS, "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);
pet->InitTalentForLevel();
player->PetSpellInitialize();
//end
player->PlayerTalkClass->SendCloseGossip();
m_creature->MonsterWhisper("Pet added. You might want to feed it and name it somehow.", player->GetGUID());
}
bool OnGossipHello(Player *player, Creature * m_creature)
{
if(player->getClass() != CLASS_HUNTER)
{
m_creature->MonsterWhisper("You are not a Hunter!", player->GetGUID());
return true;
}
player->ADD_GOSSIP_ITEM(4, "Get a New Pet.", GOSSIP_SENDER_MAIN, 30);
if (player->CanTameExoticPets())
{
player->ADD_GOSSIP_ITEM(4, "Get a New Exotic Pet.", GOSSIP_SENDER_MAIN, 50);
}
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, m_creature->GetGUID());
return true;
}
bool OnGossipSelect(Player *player, Creature * m_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);
if (player->CanTameExoticPets())
{
player->ADD_GOSSIP_ITEM(4, "Get a New Exotic Pet.", GOSSIP_SENDER_MAIN, 50);
}
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, m_creature->GetGUID());
break;
case 150:
player->CLOSE_GOSSIP_MENU();
break;
case 30:
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->ADD_GOSSIP_ITEM(6, "Bat.", GOSSIP_SENDER_MAIN, 18);
player->ADD_GOSSIP_ITEM(6, "Bear.", GOSSIP_SENDER_MAIN, 1);
player->ADD_GOSSIP_ITEM(6, "Boar.", GOSSIP_SENDER_MAIN, 2);
player->ADD_GOSSIP_ITEM(6, "Cat.", GOSSIP_SENDER_MAIN, 4);
player->ADD_GOSSIP_ITEM(6, "Carrion Bird.", GOSSIP_SENDER_MAIN, 5);
player->ADD_GOSSIP_ITEM(6, "Crab.", GOSSIP_SENDER_MAIN, 6);
player->ADD_GOSSIP_ITEM(6, "Crocolisk.", GOSSIP_SENDER_MAIN, 7);
player->ADD_GOSSIP_ITEM(6, "Dragonhawk.", GOSSIP_SENDER_MAIN, 17);
player->ADD_GOSSIP_ITEM(6, "Gorilla.", GOSSIP_SENDER_MAIN, 8);
player->ADD_GOSSIP_ITEM(6, "Hound.", GOSSIP_SENDER_MAIN, 9);
player->ADD_GOSSIP_ITEM(6, "Hyena.", GOSSIP_SENDER_MAIN, 10);
player->ADD_GOSSIP_ITEM(6, "Moth.", GOSSIP_SENDER_MAIN, 11);
player->ADD_GOSSIP_ITEM(6, "Owl.", GOSSIP_SENDER_MAIN, 12);
player->SEND_GOSSIP_MENU(1, m_creature->GetGUID());
break;
case 31:
player->ADD_GOSSIP_ITEM(2, "<- Back to Main Menu.", GOSSIP_SENDER_MAIN, 30);
player->ADD_GOSSIP_ITEM(4, "<- Previous Page.", GOSSIP_SENDER_MAIN, 30);
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);
player->ADD_GOSSIP_ITEM(6, "Turtle.", GOSSIP_SENDER_MAIN, 15);
player->ADD_GOSSIP_ITEM(6, "Wasp.", GOSSIP_SENDER_MAIN, 93);
player->SEND_GOSSIP_MENU(1, m_creature->GetGUID());
break;
case 50:
player->ADD_GOSSIP_ITEM(2, "<- Back to Main Menu.", GOSSIP_SENDER_MAIN, 100);
player->ADD_GOSSIP_ITEM(2, "<- Get a New Normal Pet.", GOSSIP_SENDER_MAIN, 100);
player->ADD_GOSSIP_ITEM(6, "Chimaera.", GOSSIP_SENDER_MAIN, 51);
player->ADD_GOSSIP_ITEM(6, "Core Hound.", GOSSIP_SENDER_MAIN, 52);
player->ADD_GOSSIP_ITEM(6, "Devilsaur.", GOSSIP_SENDER_MAIN, 53);
player->ADD_GOSSIP_ITEM(6, "Rhino.", GOSSIP_SENDER_MAIN, 54);
player->ADD_GOSSIP_ITEM(6, "Silithid.", GOSSIP_SENDER_MAIN, 55);
player->ADD_GOSSIP_ITEM(6, "Worm.", GOSSIP_SENDER_MAIN, 56);
player->ADD_GOSSIP_ITEM(6, "Loque'nahak.", GOSSIP_SENDER_MAIN, 57);
player->ADD_GOSSIP_ITEM(6, "Skoll.", GOSSIP_SENDER_MAIN, 58);
player->ADD_GOSSIP_ITEM(6, "Gondria.", GOSSIP_SENDER_MAIN, 59);
player->SEND_GOSSIP_MENU(1, m_creature->GetGUID());
break;
case GOSSIP_OPTION_STABLEPET:
player->GetSession()->SendStablePet(m_creature->GetGUID());
break;
case GOSSIP_OPTION_VENDOR:
player->GetSession()->SendListInventory(m_creature->GetGUID());
break;
case 51: //chimera
CreatePet(player, m_creature, 21879);
break;
case 52: //core hound
CreatePet(player, m_creature, 21108);
break;
case 53: //Devilsaur
CreatePet(player, m_creature, 20931);
break;
case 54: //rhino
CreatePet(player, m_creature, 30445);
break;
case 55: //silithid
CreatePet(player, m_creature, 5460);
break;
case 56: //Worm
CreatePet(player, m_creature, 30148);
break;
case 57: //Loque'nahak
CreatePet(player, m_creature, 32517);
break;
case 58: //Skoll
CreatePet(player, m_creature, 35189);
break;
case 59: //Gondria
CreatePet(player, m_creature, 33776);
break;
case 16: //Spider
CreatePet(player, m_creature, 2349);
break;
case 17: //Dragonhawk
CreatePet(player, m_creature, 27946);
break;
case 18: //Bat
CreatePet(player, m_creature, 28233);
break;
case 19: //Ravager
CreatePet(player, m_creature, 17199);
break;
case 20: //Raptor
CreatePet(player, m_creature, 14821);
break;
case 21: //Serpent
CreatePet(player, m_creature, 28358);
break;
case 1: //bear
CreatePet(player, m_creature, 29319);
break;
case 2: //Boar
CreatePet(player, m_creature, 29996);
break;
case 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: //crab
CreatePet(player, m_creature, 24478);
break;
case 7: //crocolisk
CreatePet(player, m_creature, 1417);
break;
case 8: //gorila
CreatePet(player, m_creature, 28213);
break;
case 9: //hound
CreatePet(player, m_creature, 29452);
break;
case 10: //hynea
CreatePet(player, m_creature, 13036);
break;
case 11: //Moth
CreatePet(player, m_creature, 27421);
break;
case 12: //owl
CreatePet(player, m_creature, 23136);
break;
case 13: //strider
CreatePet(player, m_creature, 22807);
break;
case 414: //scorpid
CreatePet(player, m_creature, 9698);
break;
case 15: //turtle
CreatePet(player, m_creature, 25482);
break;
}
return true;
}
};
void AddSC_Npc_Beastmaster()
{
new Npc_Beastmaster();
}
Code:
Getting this error
error C2039: ‘outError’ : is not a member of 'Log
Regards