client: the player's own character walks through buildings and blocked cells
The server checks a move only for its distance and speed, so the local character skips the background-object and map-attribute collision. Other characters and doors still block it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
34c6049199
commit
20b189a9da
@@ -605,6 +605,10 @@ BOOL CInstanceBase::CheckAdvancing()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 맵속성 체크
|
// 맵속성 체크
|
||||||
|
// PORT: nor does the player's own character stop at blocked map cells; see CPythonBackground::CheckAdvancing.
|
||||||
|
if (__IsMainInstance())
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
CPythonBackground& rkBG=CPythonBackground::Instance();
|
CPythonBackground& rkBG=CPythonBackground::Instance();
|
||||||
const D3DXVECTOR3 & rv3Position = m_GraphicThingInstance.GetPosition();
|
const D3DXVECTOR3 & rv3Position = m_GraphicThingInstance.GetPosition();
|
||||||
const D3DXVECTOR3 & rv3MoveDirection = m_GraphicThingInstance.GetMovementVectorRef();
|
const D3DXVECTOR3 & rv3MoveDirection = m_GraphicThingInstance.GetMovementVectorRef();
|
||||||
|
|||||||
@@ -612,6 +612,11 @@ bool CPythonBackground::CheckAdvancing(CInstanceBase * pInstance)
|
|||||||
if (!IsMapReady())
|
if (!IsMapReady())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
// PORT: the player's own character walks through buildings and other background objects. The server
|
||||||
|
// checks a move only for its distance and speed (CInputMain::Move), so it accepts the position.
|
||||||
|
if (pInstance == CPythonCharacterManager::Instance().GetMainInstancePtr())
|
||||||
|
return false;
|
||||||
|
|
||||||
Vector3d center;
|
Vector3d center;
|
||||||
float radius;
|
float radius;
|
||||||
pInstance->GetGraphicThingInstanceRef().GetBoundingSphere(center,radius);
|
pInstance->GetGraphicThingInstanceRef().GetBoundingSphere(center,radius);
|
||||||
|
|||||||
Reference in New Issue
Block a user