- Mesaj
- 354
- Çözümler
- 16
- Beğeni
- 154
- Puan
- 529
- Ticaret Puanı
- 0
Arkadaşlar Merhaba Target_Hp Sistemini ekliyorumda yalnız bende ENABLE_PENDANT_SYSTEM sistemi de ekli client source PythonNetworkStreamPhaseGame.cpp dosyasındaki eklemeleri yaparken
Bende ekli olan sistemin bulunduğu yeri değiştir diyor ama bunu değiştirirsem diğer sistem çalışmayacak bir bug çıkacak.
Bu gibi durumları nasıl düzeltirim bilmiyorum öğrenmek için soruyorum şimdiden teşekkür ederim.
Altta bırakacağım şekilde bir düzenleme bir sıkıntı çıkartır mı acaba?
Eklemek İstediğim Kodlar:
//ARA :
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "CloseTargetBoardIfDifferent", Py_BuildValue("(i)", TargetPacket.dwVID));
//DE???T?R :
#ifdef ENABLE_TARGET_HP_SYSTEM
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetPCTargetBoard", Py_BuildValue("(isiii)", TargetPacket.dwVID, pInstTarget->GetNameString(), TargetPacket.bHPPercent, TargetPacket.dwActualHP, TargetPacket.dwMaxHP));
#else
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "CloseTargetBoardIfDifferent", Py_BuildValue("(i)", TargetPacket.dwVID));
#endif
//ARA :
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetHPTargetBoard", Py_BuildValue("(ii)", TargetPacket.dwVID, TargetPacket.bHPPercent));
//DE???T?R :
#ifdef ENABLE_TARGET_HP_SYSTEM
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetHPTargetBoard", Py_BuildValue("(iiii)", TargetPacket.dwVID, TargetPacket.bHPPercent, TargetPacket.dwActualHP, TargetPacket.dwMaxHP));
#else
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetHPTargetBoard", Py_BuildValue("(ii)", TargetPacket.dwVID, TargetPacket.bHPPercent));
#endif
Benim Dosyamda Olan Kodlar:
bool CPythonNetworkStream::RecvTargetPacket()
{
TPacketGCTarget TargetPacket;
if (!Recv(sizeof(TPacketGCTarget), &TargetPacket))
{
Tracen("Recv Target Packet Error");
return false;
}
CInstanceBase * pInstPlayer = CPythonCharacterManager::Instance().GetMainInstancePtr();
CInstanceBase * pInstTarget = CPythonCharacterManager::Instance().GetInstancePtr(TargetPacket.dwVID);
if (pInstPlayer && pInstTarget)
{
if (!pInstTarget->IsDead())
{
if (pInstTarget->IsPC() || pInstTarget->IsBuilding())
{
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "CloseTargetBoardIfDifferent", Py_BuildValue("(i)", TargetPacket.dwVID));
}
else if (pInstPlayer->CanViewTargetHP(*pInstTarget))
#ifdef ENABLE_PENDANT_SYSTEM
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetHPTargetBoard", Py_BuildValue("(iii)", TargetPacket.dwVID, TargetPacket.bHPPercent, TargetPacket.bElement));
#else
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetHPTargetBoard", Py_BuildValue("(ii)", TargetPacket.dwVID, TargetPacket.bHPPercent));
#endif
else
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "CloseTargetBoard", Py_BuildValue("()"));
m_pInstTarget = pInstTarget;
}
}
else
{
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "CloseTargetBoard", Py_BuildValue("()"));
}
return true;
}
Bende ekli olan sistemin bulunduğu yeri değiştir diyor ama bunu değiştirirsem diğer sistem çalışmayacak bir bug çıkacak.
Bu gibi durumları nasıl düzeltirim bilmiyorum öğrenmek için soruyorum şimdiden teşekkür ederim.
Altta bırakacağım şekilde bir düzenleme bir sıkıntı çıkartır mı acaba?
Kendim düzenledim:
bool CPythonNetworkStream::RecvTargetPacket()
{
TPacketGCTarget TargetPacket;
if (!Recv(sizeof(TPacketGCTarget), &TargetPacket))
{
Tracen("Recv Target Packet Error");
return false;
}
CInstanceBase * pInstPlayer = CPythonCharacterManager::Instance().GetMainInstancePtr();
CInstanceBase * pInstTarget = CPythonCharacterManager::Instance().GetInstancePtr(TargetPacket.dwVID);
if (pInstPlayer && pInstTarget)
{
if (!pInstTarget->IsDead())
{
if (pInstTarget->IsPC() || pInstTarget->IsBuilding())
{
#ifdef ENABLE_TARGET_HP_SYSTEM
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetPCTargetBoard", Py_BuildValue("(isiii)", TargetPacket.dwVID, pInstTarget->GetNameString(), TargetPacket.bHPPercent, TargetPacket.dwActualHP, TargetPacket.dwMaxHP));
#else
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "CloseTargetBoardIfDifferent", Py_BuildValue("(i)", TargetPacket.dwVID));
#endif }
else if (pInstPlayer->CanViewTargetHP(*pInstTarget))
#ifdef ENABLE_PENDANT_SYSTEM
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetHPTargetBoard", Py_BuildValue("(iii)", TargetPacket.dwVID, TargetPacket.bHPPercent, TargetPacket.bElement));
#else
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetHPTargetBoard", Py_BuildValue("(ii)", TargetPacket.dwVID, TargetPacket.bHPPercent));
#endif
else if (pInstPlayer->CanViewTargetHP(*pInstTarget))
#ifdef ENABLE_TARGET_HP_SYSTEM
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetHPTargetBoard", Py_BuildValue("(iiii)", TargetPacket.dwVID, TargetPacket.bHPPercent, TargetPacket.dwActualHP, TargetPacket.dwMaxHP));
#else
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetHPTargetBoard", Py_BuildValue("(ii)", TargetPacket.dwVID, TargetPacket.bHPPercent));
#endif
else
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "CloseTargetBoard", Py_BuildValue("()"));
m_pInstTarget = pInstTarget;
}
}
else
{
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "CloseTargetBoard", Py_BuildValue("()"));
}
return true;
}