Index: src/game/MiscHandler.cpp =================================================================== --- src/game/MiscHandler.cpp (revision 3336) +++ src/game/MiscHandler.cpp (working copy) @@ -345,6 +345,11 @@ void WorldSession::HandleTogglePvP(World } } +#define ZONE_GURUBASHI 33 +#define ZONE_DIREMAUL 2557 +#define AREA_GURUBASHI 2177 +#define AREA_DIREMAUL 3217 + void WorldSession::HandleZoneUpdateOpcode( WorldPacket & recv_data ) { CHECK_PACKET_SIZE(recv_data,4); @@ -354,6 +359,17 @@ void WorldSession::HandleZoneUpdateOpcod sLog.outDetail("WORLD: Recvd ZONE_UPDATE: %u", newZone); + const AreaTableEntry* const area = GetAreaEntryByAreaID(newZone); + if(area && newZone == ZONE_GURUBASHI && GetPlayer()->GetAreaId() == AREA_GURUBASHI && GetPlayer()->GetInArena() != 1){ + GetPlayer()->SetPvPFFA(true, 1); + } + else if(area && newZone == ZONE_DIREMAUL && GetPlayer()->GetAreaId() == AREA_DIREMAUL){ + GetPlayer()->SetPvPFFA(true, 2); + } + else if(area && GetPlayer()->GetInArena() != 0){ + GetPlayer()->SetPvPFFACounter(time(NULL)); + } + GetPlayer()->UpdateZone(); } void WorldSession::HandleSetTargetOpcode( WorldPacket & recv_data ) { CHECK_PACKET_SIZE(recv_data,8); uint64 guid ; recv_data >> guid;