mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 16:37:01 +00:00
Merge branch 'master' into 310
Conflicts: src/game/Unit.cpp
This commit is contained in:
commit
14e9afa46f
43 changed files with 4445 additions and 271 deletions
|
|
@ -204,40 +204,62 @@ void WorldSession::HandleBattleGroundPlayerPositionsOpcode( WorldPacket & /*recv
|
|||
if(!bg) // can't be received if player not in battleground
|
||||
return;
|
||||
|
||||
if(bg->GetTypeID() == BATTLEGROUND_WS)
|
||||
switch( bg->GetTypeID() )
|
||||
{
|
||||
uint32 count1 = 0;
|
||||
uint32 count2 = 0;
|
||||
case BATTLEGROUND_WS:
|
||||
{
|
||||
uint32 count1 = 0; //always constant zero?
|
||||
uint32 count2 = 0; //count of next fields
|
||||
|
||||
Player *ap = objmgr.GetPlayer(((BattleGroundWS*)bg)->GetAllianceFlagPickerGUID());
|
||||
if(ap) ++count2;
|
||||
Player *ali_plr = objmgr.GetPlayer(((BattleGroundWS*)bg)->GetAllianceFlagPickerGUID());
|
||||
if( ali_plr )
|
||||
++count2;
|
||||
|
||||
Player *hp = objmgr.GetPlayer(((BattleGroundWS*)bg)->GetHordeFlagPickerGUID());
|
||||
if(hp) ++count2;
|
||||
Player *horde_plr = objmgr.GetPlayer(((BattleGroundWS*)bg)->GetHordeFlagPickerGUID());
|
||||
if( horde_plr )
|
||||
++count2;
|
||||
|
||||
WorldPacket data(MSG_BATTLEGROUND_PLAYER_POSITIONS, (4+4+16*count1+16*count2));
|
||||
data << count1; // alliance flag holders count
|
||||
/*for(uint8 i = 0; i < count1; i++)
|
||||
{
|
||||
data << uint64(0); // guid
|
||||
data << (float)0; // x
|
||||
data << (float)0; // y
|
||||
}*/
|
||||
data << count2; // horde flag holders count
|
||||
if(ap)
|
||||
{
|
||||
data << (uint64)ap->GetGUID();
|
||||
data << (float)ap->GetPositionX();
|
||||
data << (float)ap->GetPositionY();
|
||||
}
|
||||
if(hp)
|
||||
{
|
||||
data << (uint64)hp->GetGUID();
|
||||
data << (float)hp->GetPositionX();
|
||||
data << (float)hp->GetPositionY();
|
||||
}
|
||||
WorldPacket data(MSG_BATTLEGROUND_PLAYER_POSITIONS, (4+4+16*count1+16*count2));
|
||||
data << count1; // alliance flag holders count - obsolete, now always 0
|
||||
/*for(uint8 i = 0; i < count1; i++)
|
||||
{
|
||||
data << uint64(0); // guid
|
||||
data << (float)0; // x
|
||||
data << (float)0; // y
|
||||
}*/
|
||||
data << count2; // horde flag holders count - obsolete, now count of next fields
|
||||
if( ali_plr )
|
||||
{
|
||||
data << (uint64)ali_plr->GetGUID();
|
||||
data << (float)ali_plr->GetPositionX();
|
||||
data << (float)ali_plr->GetPositionY();
|
||||
}
|
||||
if( horde_plr )
|
||||
{
|
||||
data << (uint64)horde_plr->GetGUID();
|
||||
data << (float)horde_plr->GetPositionX();
|
||||
data << (float)horde_plr->GetPositionY();
|
||||
}
|
||||
|
||||
SendPacket(&data);
|
||||
SendPacket(&data);
|
||||
}
|
||||
break;
|
||||
case BATTLEGROUND_EY:
|
||||
//TODO : fix me!
|
||||
break;
|
||||
case BATTLEGROUND_AB:
|
||||
case BATTLEGROUND_AV:
|
||||
{
|
||||
//for other BG types - send default
|
||||
WorldPacket data(MSG_BATTLEGROUND_PLAYER_POSITIONS, (4+4));
|
||||
data << uint32(0);
|
||||
data << uint32(0);
|
||||
SendPacket(&data);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
//maybe it is sent also in arena - do nothing
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue