mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-29 05:11:55 +01:00
Merge branch 'dbc' of https://github.com/Intel/TrinityCore into Intel-dbc
Conflicts: src/server/game/DataStores/DBCStores.cpp src/server/game/DataStores/DBCStructure.h src/server/game/Events/GameEventMgr.cpp
This commit is contained in:
@@ -863,24 +863,24 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket& recvData)
|
||||
return;
|
||||
}
|
||||
|
||||
if (player->GetMapId() != atEntry->mapid)
|
||||
if (player->GetMapId() != atEntry->MapID)
|
||||
{
|
||||
TC_LOG_DEBUG("network", "HandleAreaTriggerOpcode: Player '%s' (%s) too far (trigger map: %u player map: %u), ignore Area Trigger ID: %u",
|
||||
player->GetName().c_str(), player->GetGUID().ToString().c_str(), atEntry->mapid, player->GetMapId(), triggerId);
|
||||
player->GetName().c_str(), player->GetGUID().ToString().c_str(), atEntry->MapID, player->GetMapId(), triggerId);
|
||||
return;
|
||||
}
|
||||
|
||||
// delta is safe radius
|
||||
const float delta = 5.0f;
|
||||
|
||||
if (atEntry->radius > 0)
|
||||
if (atEntry->Radius > 0)
|
||||
{
|
||||
// if we have radius check it
|
||||
float dist = player->GetDistance(atEntry->x, atEntry->y, atEntry->z);
|
||||
if (dist > atEntry->radius + delta)
|
||||
float dist = player->GetDistance(atEntry->Pos.X, atEntry->Pos.Y, atEntry->Pos.Z);
|
||||
if (dist > atEntry->Radius + delta)
|
||||
{
|
||||
TC_LOG_DEBUG("network", "HandleAreaTriggerOpcode: Player '%s' (%s) too far (radius: %f distance: %f), ignore Area Trigger ID: %u",
|
||||
player->GetName().c_str(), player->GetGUID().ToString().c_str(), atEntry->radius, dist, triggerId);
|
||||
player->GetName().c_str(), player->GetGUID().ToString().c_str(), atEntry->Radius, dist, triggerId);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -892,26 +892,26 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket& recvData)
|
||||
// is-in-cube check and we have to calculate only one point instead of 4
|
||||
|
||||
// 2PI = 360°, keep in mind that ingame orientation is counter-clockwise
|
||||
double rotation = 2 * M_PI - atEntry->box_orientation;
|
||||
double rotation = 2 * M_PI - atEntry->BoxYaw;
|
||||
double sinVal = std::sin(rotation);
|
||||
double cosVal = std::cos(rotation);
|
||||
|
||||
float playerBoxDistX = player->GetPositionX() - atEntry->x;
|
||||
float playerBoxDistY = player->GetPositionY() - atEntry->y;
|
||||
float playerBoxDistX = player->GetPositionX() - atEntry->Pos.X;
|
||||
float playerBoxDistY = player->GetPositionY() - atEntry->Pos.Y;
|
||||
|
||||
float rotPlayerX = float(atEntry->x + playerBoxDistX * cosVal - playerBoxDistY*sinVal);
|
||||
float rotPlayerY = float(atEntry->y + playerBoxDistY * cosVal + playerBoxDistX*sinVal);
|
||||
float rotPlayerX = float(atEntry->Pos.X + playerBoxDistX * cosVal - playerBoxDistY*sinVal);
|
||||
float rotPlayerY = float(atEntry->Pos.Y + playerBoxDistY * cosVal + playerBoxDistX*sinVal);
|
||||
|
||||
// box edges are parallel to coordiante axis, so we can treat every dimension independently :D
|
||||
float dz = player->GetPositionZ() - atEntry->z;
|
||||
float dx = rotPlayerX - atEntry->x;
|
||||
float dy = rotPlayerY - atEntry->y;
|
||||
if ((std::fabs(dx) > atEntry->box_x / 2 + delta) ||
|
||||
(std::fabs(dy) > atEntry->box_y / 2 + delta) ||
|
||||
(std::fabs(dz) > atEntry->box_z / 2 + delta))
|
||||
float dz = player->GetPositionZ() - atEntry->Pos.Z;
|
||||
float dx = rotPlayerX - atEntry->Pos.X;
|
||||
float dy = rotPlayerY - atEntry->Pos.Y;
|
||||
if ((std::fabs(dx) > atEntry->BoxLength / 2 + delta) ||
|
||||
(std::fabs(dy) > atEntry->BoxWidth / 2 + delta) ||
|
||||
(std::fabs(dz) > atEntry->BoxHeight / 2 + delta))
|
||||
{
|
||||
TC_LOG_DEBUG("network", "HandleAreaTriggerOpcode: Player '%s' (%s) too far (1/2 box X: %f 1/2 box Y: %f 1/2 box Z: %f rotatedPlayerX: %f rotatedPlayerY: %f dZ:%f), ignore Area Trigger ID: %u",
|
||||
player->GetName().c_str(), player->GetGUID().ToString().c_str(), atEntry->box_x / 2, atEntry->box_y / 2, atEntry->box_z / 2, rotPlayerX, rotPlayerY, dz, triggerId);
|
||||
player->GetName().c_str(), player->GetGUID().ToString().c_str(), atEntry->BoxLength / 2, atEntry->BoxWidth / 2, atEntry->BoxHeight / 2, rotPlayerX, rotPlayerY, dz, triggerId);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -931,7 +931,7 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket& recvData)
|
||||
{
|
||||
// set resting flag we are in the inn
|
||||
player->SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING);
|
||||
player->InnEnter(time(NULL), atEntry->mapid, atEntry->x, atEntry->y, atEntry->z);
|
||||
player->InnEnter(time(NULL), atEntry->MapID, atEntry->Pos.X, atEntry->Pos.Y, atEntry->Pos.Z);
|
||||
player->SetRestType(REST_TYPE_IN_TAVERN);
|
||||
|
||||
if (sWorld->IsFFAPvPRealm())
|
||||
|
||||
Reference in New Issue
Block a user