- Mesaj
- 33
- Beğeni
- 54
- Puan
- 331
- Ticaret Puanı
- 0
Herkese Selam,
Başka bir platformda paylaşmıştım, buraya da paylaşıyorum.
Video ve Ekran Görüntüsü paylaşımlarında karakter kayması ile ilgili düzenlemelerin bu sıra popülerleştiğini gördüm. Öncelikle bu durum ile ilgili 1-2 sene önce ortalama bir platformda konu açtım ve aşağıdaki video ile problemi belirttim.
Daha sonra konu üzerinden bir çok kullanıcı tartışma başlattılar ve aşağıdaki düzenlemeler ile sorun ortadan kalkmış oldu.
ActorInstanceSync.cpp içerisinde void CActorInstance::__Push(int x, int y)
ActorInstanceBattle.cpp CActorInstance::__ProcessDataAttackSuccess
Güncel hali :
Başka bir platformda paylaşmıştım, buraya da paylaşıyorum.
Video ve Ekran Görüntüsü paylaşımlarında karakter kayması ile ilgili düzenlemelerin bu sıra popülerleştiğini gördüm. Öncelikle bu durum ile ilgili 1-2 sene önce ortalama bir platformda konu açtım ve aşağıdaki video ile problemi belirttim.
Daha sonra konu üzerinden bir çok kullanıcı tartışma başlattılar ve aşağıdaki düzenlemeler ile sorun ortadan kalkmış oldu.
ActorInstanceSync.cpp içerisinde void CActorInstance::__Push(int x, int y)
Kod:
void CActorInstance::__Push(int x, int y)
{
const D3DXVECTOR3& c_rv3Src=GetPosition();
const D3DXVECTOR3 c_v3Dst=D3DXVECTOR3(x, -y, c_rv3Src.z);
const D3DXVECTOR3 c_v3Delta=c_v3Dst-c_rv3Src;
const auto LoopValue = 100;
const D3DXVECTOR3 inc = c_v3Delta / LoopValue;
D3DXVECTOR3 v3Movement(0.0f, 0.0f, 0.0f);
IPhysicsWorld* pWorld = IPhysicsWorld::GetPhysicsWorld();
if (!pWorld)
return;
for (int i = 0; i < LoopValue; ++i)
{
if (pWorld->isPhysicalCollision(c_rv3Src + v3Movement))
{
ResetBlendingPosition();
return;
}
v3Movement += inc;
}
SetBlendingPosition(c_v3Dst);
if (IsResistFallen())
return;
if (!IsUsingSkill())
{
const int len = sqrt(c_v3Delta.x*c_v3Delta.x+c_v3Delta.y*c_v3Delta.y);
if (len > 150.0f)
{
InterceptOnceMotion(CRaceMotionData::NAME_DAMAGE_FLYING);
PushOnceMotion(CRaceMotionData::NAME_STAND_UP);
}
}
}
ActorInstanceBattle.cpp CActorInstance::__ProcessDataAttackSuccess
Kod:
// VICTIM_COLLISION_TEST
const D3DXVECTOR3& kVictimPos = rVictim.GetPosition();
auto externalForceRatio = 1.0f;
if (rVictim.IsResistFallen())
externalForceRatio = 0.8f; // reduce external force almost like before
rVictim.m_PhysicsObject.IncreaseExternalForce(kVictimPos, c_rAttackData.fExternalForce * externalForceRatio);
// VICTIM_COLLISION_TEST_END
Güncel hali :
Linkleri görebilmek için
giriş yap veya kayıt ol.