diff options
| author | megamage <none@none> | 2009-03-21 13:42:09 -0600 |
|---|---|---|
| committer | megamage <none@none> | 2009-03-21 13:42:09 -0600 |
| commit | c1a3f51f0439e1c251e58820c489694135646940 (patch) | |
| tree | 92e7d66f23e226c6ffaca5adcaebc1b6e38c553a /src | |
| parent | b6e8e8a21f84cf326c23fbbc4723a718ef822f65 (diff) | |
*Do not allow pvp in dk start zone.
*Improve petsetaction code.
--HG--
branch : trunk
Diffstat (limited to 'src')
| -rw-r--r-- | src/game/PetHandler.cpp | 15 | ||||
| -rw-r--r-- | src/game/Player.cpp | 2 |
2 files changed, 11 insertions, 6 deletions
diff --git a/src/game/PetHandler.cpp b/src/game/PetHandler.cpp index a93d9961e85..ed07f169e69 100644 --- a/src/game/PetHandler.cpp +++ b/src/game/PetHandler.cpp @@ -63,12 +63,17 @@ void WorldSession::HandlePetAction( WorldPacket & recv_data ) if(pet->GetTypeId() == TYPEID_PLAYER && !(flag == ACT_COMMAND && spellid == COMMAND_ATTACK)) return; - for(ControlList::iterator itr = GetPlayer()->m_Controlled.begin(); itr != GetPlayer()->m_Controlled.end();) + if(GetPlayer()->m_Controlled.size() == 1) + HandlePetActionHelper(pet, guid1, spellid, flag, guid2); + else { - Unit *unit = *itr; - ++itr; - if(unit->GetEntry() == pet->GetEntry() && unit->isAlive()) - HandlePetActionHelper(unit, guid1, spellid, flag, guid2); + //If a pet is dismissed, m_Controlled will change + std::vector<Unit*> controlled; + for(ControlList::iterator itr = GetPlayer()->m_Controlled.begin(); itr != GetPlayer()->m_Controlled.end(); ++itr) + if((*itr)->GetEntry() == pet->GetEntry() && (*itr)->isAlive()) + controlled.push_back(*itr); + for(std::vector<Unit*>::iterator itr = controlled.begin(); itr != controlled.end(); ++itr) + HandlePetActionHelper(*itr, guid1, spellid, flag, guid2); } } diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 6934f4ae1ed..2d41400c80f 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -6568,7 +6568,7 @@ void Player::UpdateZone(uint32 newZone, uint32 newArea) pvpInfo.endTimer = time(0); // start toggle-off } - if(zone->flags & (AREA_FLAG_SANCTUARY | AREA_FLAG_UNK7 & AREA_FLAG_UNK7)) // in sanctuary + if((zone->flags & AREA_FLAG_SANCTUARY) || zone->mapid == 609) // in sanctuary { SetByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_SANCTUARY); if(sWorld.IsFFAPvPRealm()) |
