diff --git a/src/game/GossipDef.cpp b/src/game/GossipDef.cpp index d1e66f9d7..36a83a84e 100644 --- a/src/game/GossipDef.cpp +++ b/src/game/GossipDef.cpp @@ -135,12 +135,6 @@ void PlayerMenu::SendGossipMenu( uint32 TitleTextId, uint64 npcGUID ) GossipMenuItem const& gItem = mGossipMenu.GetItem(iI); data << uint32( iI ); data << uint8( gItem.m_gIcon ); - // icons: - // 0 unlearn talents/misc - // 1 trader - // 2 taxi - // 3 trainer - // 9 BG/arena data << uint8( gItem.m_gCoded ); // makes pop up box password data << uint32(gItem.m_gBoxMoney); // money required to open menu, 2.0.3 data << gItem.m_gMessage; // text for gossip item @@ -155,7 +149,7 @@ void PlayerMenu::SendGossipMenu( uint32 TitleTextId, uint64 npcGUID ) uint32 questID = qItem.m_qId; Quest const* pQuest = objmgr.GetQuestTemplate(questID); - data << questID; + data << uint32(questID); data << uint32( qItem.m_qIcon ); data << uint32( pQuest ? pQuest->GetQuestLevel() : 0 ); std::string Title = pQuest->GetTitle(); diff --git a/src/game/Level2.cpp b/src/game/Level2.cpp index 9174b921e..b1f613520 100644 --- a/src/game/Level2.cpp +++ b/src/game/Level2.cpp @@ -4199,17 +4199,19 @@ bool ChatHandler::HandleNpcTameCommand(const char* args) player->GetClosePoint (x,y,z,creatureTarget->GetObjectSize (),CONTACT_DISTANCE); pet->Relocate (x,y,z,M_PI-player->GetOrientation ()); - // set pet to defensive mode by default (some classes can't control contolled pets in fact). + // set pet to defensive mode by default (some classes can't control controlled pets in fact). pet->GetCharmInfo()->SetReactState(REACT_DEFENSIVE); + uint32 level = (creatureTarget->getLevel() < (player->getLevel() - 5)) ? (player->getLevel() - 5) : creatureTarget->getLevel(); + // prepare visual effect for levelup - pet->SetUInt32Value(UNIT_FIELD_LEVEL,creatureTarget->getLevel()-1); + pet->SetUInt32Value(UNIT_FIELD_LEVEL, level - 1); // add to world MapManager::Instance().GetMap(pet->GetMapId(), pet)->Add((Creature*)pet); // visual effect for levelup - pet->SetUInt32Value(UNIT_FIELD_LEVEL,creatureTarget->getLevel()); + pet->SetUInt32Value(UNIT_FIELD_LEVEL, level); // caster have pet now player->SetPet(pet); diff --git a/src/game/QuestDef.h b/src/game/QuestDef.h index 551c3dd5f..316209393 100644 --- a/src/game/QuestDef.h +++ b/src/game/QuestDef.h @@ -112,24 +112,24 @@ enum __QuestGiverStatus enum __QuestFlags { - // Flags used at server and sended to client - QUEST_FLAGS_STAY_ALIVE = 1, // Not used currently - QUEST_FLAGS_PARTY_ACCEPT = 2, // Not used currently. If player in party, all players that can accept this quest will receive confirmation box to accept quest CMSG_QUEST_CONFIRM_ACCEPT/SMSG_QUEST_CONFIRM_ACCEPT - QUEST_FLAGS_EXPLORATION = 4, // Not used currently - QUEST_FLAGS_SHARABLE = 8, // Can be shared: Player::CanShareQuest() - //QUEST_FLAGS_NONE2 = 16, // Not used currently - QUEST_FLAGS_EPIC = 32, // Not used currently: Unsure of content - QUEST_FLAGS_RAID = 64, // Not used currently - QUEST_FLAGS_TBC = 128, // Not used currently: Available if TBC expension enabled only - QUEST_FLAGS_UNK2 = 256, // Not used currently: _DELIVER_MORE Quest needs more than normal _q-item_ drops from mobs - QUEST_FLAGS_HIDDEN_REWARDS = 512, // Items and money rewarded only sent in SMSG_QUESTGIVER_OFFER_REWARD (not in SMSG_QUESTGIVER_QUEST_DETAILS or in client quest log(SMSG_QUEST_QUERY_RESPONSE)) - QUEST_FLAGS_AUTO_REWARDED = 1024, // These quests are automatically rewarded on quest complete and they will never appear in quest log client side. - QUEST_FLAGS_TBC_RACES = 2048, // Not used currently: Bloodelf/draenei starting zone quests - QUEST_FLAGS_DAILY = 4096, // Used to know quest is Daily one + // Flags used at server and sent to client + QUEST_FLAGS_STAY_ALIVE = 0x00000001, // Not used currently + QUEST_FLAGS_PARTY_ACCEPT = 0x00000002, // Not used currently. If player in party, all players that can accept this quest will receive confirmation box to accept quest CMSG_QUEST_CONFIRM_ACCEPT/SMSG_QUEST_CONFIRM_ACCEPT + QUEST_FLAGS_EXPLORATION = 0x00000004, // Not used currently + QUEST_FLAGS_SHARABLE = 0x00000008, // Can be shared: Player::CanShareQuest() + //QUEST_FLAGS_NONE2 = 0x00000010, // Not used currently + QUEST_FLAGS_EPIC = 0x00000020, // Not used currently: Unsure of content + QUEST_FLAGS_RAID = 0x00000040, // Not used currently + QUEST_FLAGS_TBC = 0x00000080, // Not used currently: Available if TBC expension enabled only + QUEST_FLAGS_UNK2 = 0x00000100, // Not used currently: _DELIVER_MORE Quest needs more than normal _q-item_ drops from mobs + QUEST_FLAGS_HIDDEN_REWARDS = 0x00000200, // Items and money rewarded only sent in SMSG_QUESTGIVER_OFFER_REWARD (not in SMSG_QUESTGIVER_QUEST_DETAILS or in client quest log(SMSG_QUEST_QUERY_RESPONSE)) + QUEST_FLAGS_AUTO_REWARDED = 0x00000400, // These quests are automatically rewarded on quest complete and they will never appear in quest log client side. + QUEST_FLAGS_TBC_RACES = 0x00000800, // Not used currently: Blood elf/Draenei starting zone quests + QUEST_FLAGS_DAILY = 0x00001000, // Used to know quest is Daily one // Mangos flags for set SpecialFlags in DB if required but used only at server QUEST_MANGOS_FLAGS_REPEATABLE = 0x010000, // Set by 1 in SpecialFlags from DB - QUEST_MANGOS_FLAGS_EXPLORATION_OR_EVENT = 0x020000, // Set by 2 in SpecialFlags from DB (if reequired area explore, spell SPELL_EFFECT_QUEST_COMPLETE casting, table `*_script` command SCRIPT_COMMAND_QUEST_EXPLORED use, set from script DLL) + QUEST_MANGOS_FLAGS_EXPLORATION_OR_EVENT = 0x020000, // Set by 2 in SpecialFlags from DB (if required area explore, spell SPELL_EFFECT_QUEST_COMPLETE casting, table `*_script` command SCRIPT_COMMAND_QUEST_EXPLORED use, set from script DLL) QUEST_MANGOS_FLAGS_DB_ALLOWED = 0xFFFF | QUEST_MANGOS_FLAGS_REPEATABLE | QUEST_MANGOS_FLAGS_EXPLORATION_OR_EVENT, // Mangos flags for internal use only @@ -318,7 +318,7 @@ struct QuestStatusData : m_status(QUEST_STATUS_NONE),m_rewarded(false), m_explored(false), m_timer(0), uState(QUEST_NEW) { - memset(m_itemcount, 0, QUEST_OBJECTIVES_COUNT * sizeof(uint32)); + memset(m_itemcount, 0, QUEST_OBJECTIVES_COUNT * sizeof(uint32)); memset(m_creatureOrGOcount, 0, QUEST_OBJECTIVES_COUNT * sizeof(uint32)); } diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 0ac6e726f..26ae65eb8 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -10879,7 +10879,7 @@ Pet* Unit::CreateTamedPetFrom(Creature* creatureTarget,uint32 spell_id) pet->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,this->getFaction()); pet->SetUInt32Value(UNIT_CREATED_BY_SPELL, spell_id); - uint32 level = (creatureTarget->getLevel() < (m_caster->getLevel() - 5)) ? (m_caster->getLevel() - 5) : creatureTarget->getLevel(); + uint32 level = (creatureTarget->getLevel() < (getLevel() - 5)) ? (getLevel() - 5) : creatureTarget->getLevel(); pet->SetFreeTalentPoints(pet->GetMaxTalentPointsForLevel(level)); if(!pet->InitStatsForLevel(level))