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();
|
||||
const D3DXVECTOR3 & rv3Position = m_GraphicThingInstance.GetPosition();
|
||||
const D3DXVECTOR3 & rv3MoveDirection = m_GraphicThingInstance.GetMovementVectorRef();
|
||||
|
||||
@@ -612,6 +612,11 @@ bool CPythonBackground::CheckAdvancing(CInstanceBase * pInstance)
|
||||
if (!IsMapReady())
|
||||
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;
|
||||
float radius;
|
||||
pInstance->GetGraphicThingInstanceRef().GetBoundingSphere(center,radius);
|
||||
|
||||
Reference in New Issue
Block a user