Üdv. Ez a kis okosság arra jó, hogy a kis térképen(Minimap) kijelzi a Metinköveket és annak nevét.
A használatához elengedhetetlen a forrás használata. :)
Nyisd meg: InstanceBase.h
Keres:
NAMECOLOR_WAYPOINT,
Add alá ezt:
NAMECOLOR_METIN,
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fpuu.sh%2FjdnlT%2F44e6c42494.png&hash=000232e85e2a354d21efe8f3b2e5b4c331ae44c4)
Nyisd meg: PythonCharacterManagerModule.cpp
Keres:
PyModule_AddIntConstant(poModule, "NAMECOLOR_MOB", CInstanceBase::NAMECOLOR_NORMAL_MOB);
Add alá ezt:
PyModule_AddIntConstant(poModule, "NAMECOLOR_METIN", CInstanceBase::NAMECOLOR_METIN);
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fpuu.sh%2Fjdno0%2F0a47377989.png&hash=5b2fbf283ee5c09c6bcf7ec01d180d6fbca13da5)
Nyisd meg: InstanceBaseEffect.cpp
Keres:
else if (IsPoly())
{
return NAMECOLOR_MOB;
}
Add alá ezt:
else if (IsStone())
{
return NAMECOLOR_METIN;
}
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fpuu.sh%2FjdnpO%2F1076e830b1.png&hash=24921f5f920604ec00cddc4d4c67367541bc76f0)
Nyisd meg: PythonMiniMap.cpp
Keres:
m_NPCPositionVector.clear();
Add alá ezt:
m_MetinPositionVector.clear();
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fpuu.sh%2FjdnrQ%2Fd08919d084.png&hash=1556e5887253eb046d53fedc2ea5cd35cf3f7e00)
Keres:
else if (pkInstEach->IsNPC())
{
aMarkPosition.m_fX = ( m_fWidth - (float)m_WhiteMark.GetWidth() ) / 2.0f + fDistanceFromCenterX + m_fScreenX;
aMarkPosition.m_fY = ( m_fHeight - (float)m_WhiteMark.GetHeight() ) / 2.0f + fDistanceFromCenterY + m_fScreenY;
m_NPCPositionVector.push_back(aMarkPosition);
}
Add alá ezt:
else if (pkInstEach->IsStone())
{
aMarkPosition.m_fX = ( m_fWidth - (float)m_WhiteMark.GetWidth() ) / 2.0f + fDistanceFromCenterX + m_fScreenX;
aMarkPosition.m_fY = ( m_fHeight - (float)m_WhiteMark.GetHeight() ) / 2.0f + fDistanceFromCenterY + m_fScreenY;
m_MetinPositionVector.push_back(aMarkPosition);
}
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fpuu.sh%2FjdnuM%2Ff39fa095e2.png&hash=c81d2fe55ac4c0aef4c1a755a1b0bd1220a221c7)
Keres:
// NPC
STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, CInstanceBase::GetIndexedNameColor(CInstanceBase::NAMECOLOR_NPC));
aIterator = m_NPCPositionVector.begin();
while (aIterator != m_NPCPositionVector.end())
{
TMarkPosition & rPosition = *aIterator;
m_WhiteMark.SetPosition(rPosition.m_fX, rPosition.m_fY);
m_WhiteMark.Render();
++aIterator;
}
Add alá ezt:
// Metin
STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, CInstanceBase::GetIndexedNameColor(CInstanceBase::NAMECOLOR_METIN));
aIterator = m_MetinPositionVector.begin();
while (aIterator != m_MetinPositionVector.end())
{
TMarkPosition & rPosition = *aIterator;
m_WhiteMark.SetPosition(rPosition.m_fX, rPosition.m_fY);
m_WhiteMark.Render();
++aIterator;
}
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fpuu.sh%2Fjdnwd%2F44a7fa46f8.png&hash=0c71a5ea238f2129c052ba8d86ccd33094cda590)
Nyisd meg: PythonMiniMap.h
Keres:
TInstanceMarkPositionVector m_NPCPositionVector;
Add alá ezt:
TInstanceMarkPositionVector m_MetinPositionVector;
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fpuu.sh%2Fjexye%2Ff1d38ff30e.png&hash=317e728bc3a2221befd53ff117ecf441247d82e2)
A forrás részével meg is vagyunk. Jöhet a kliens rész (Python).
Nyisd meg: root/colorinfo.py
Keres:
CHR_NAME_RGB_WARP = (136, 218, 241)
Add alá ezt: (A későbbiekben, ha szeretnéd itt változtathatod a megjelenő név színét)
CHR_NAME_RGB_METIN = (240, 255, 255)
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fpuu.sh%2Fjdnz3%2F84f60e93ba.png&hash=882c73f0b9a908e24af6dc40835caecfb2600697)
Nyisd meg: root/introloading.py
Keres:
chrmgr.NAMECOLOR_WAYPOINT : colorInfo.CHR_NAME_RGB_WAYPOINT,
Add alá ezt:
chrmgr.NAMECOLOR_METIN : colorInfo.CHR_NAME_RGB_METIN,
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fpuu.sh%2FjdnB9%2Fe200633f41.png&hash=4f1d2ee2ce96f0535127eb7203378deda02f284c)
Kész is vagyunk. A végeredmény pedig így néz ki:
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fi.imgur.com%2FUFIGpU6.png&hash=e85e515a2597687dd09ec93a319dc7f0873f81d7)
Figyelem: Ez a leírás más fórumon is megtalálható.
_________________________________________________________________________________________
Kis térképen főszörnyek kijelzése:
Használatához elengedhetetlen a forrás használata!
Nyisd meg: InstanceBase.h
Keres:
NAMECOLOR_WAYPOINT,
Add alá ezt:
NAMECOLOR_BOSS,
Keres:
BOOL IsEnemy();
Add alá ezt:
BOOL IsBoss();
Nyisd meg: InstanceBase.cpp
Keres:
BOOL CInstanceBase::IsFlag()
{
if (GetRace() == 20035)
return TRUE;
if (GetRace() == 20036)
return TRUE;
if (GetRace() == 20037)
return TRUE;
return FALSE;
}
Add alá ezt:
BOOL CInstanceBase::IsBoss()
{
const CPythonNonPlayer::TMobTable *pkTab = CPythonNonPlayer::Instance().GetTable(GetRace());
if (pkTab->bRank >= 4 && !IsStone() && pkTab->bType == 0)
return TRUE;
return FALSE;
}
Itt módosíthatod hogy melyik rangú főszörnyeket jelezze ki a kis térképen.
Nyisd meg: InstanceBaseEffect.cpp
Keres:
else if (IsEnemy())
{
return NAMECOLOR_MOB;
}
Add alá ezt:
else if (IsEnemy())
{
if (IsBoss())
return NAMECOLOR_BOSS;
return NAMECOLOR_MOB;
}
Nyisd meg: PythonCharacterManagerModule.cpp
Keres:
PyModule_AddIntConstant(poModule, "NAMECOLOR_WAYPOINT", CInstanceBase::NAMECOLOR_WAYPOINT);
Add alá ezt:
PyModule_AddIntConstant(poModule, "NAMECOLOR_BOSS", CInstanceBase::NAMECOLOR_BOSS);
Nyisd meg: PythonMiniMap.h
Keres:
TInstanceMarkPositionVector m_NPCPositionVector;
Add alá ezt:
TInstanceMarkPositionVector m_BossPositionVector;
Nyisd meg: PythonMiniMap.cpp
Keres:
m_NPCPositionVector.clear();
Add alá ezt:
m_BossPositionVector.clear();
Keres:
// NPC
STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, CInstanceBase::GetIndexedNameColor(CInstanceBase::NAMECOLOR_NPC));
aIterator = m_NPCPositionVector.begin();
while (aIterator != m_NPCPositionVector.end())
{
TMarkPosition & rPosition = *aIterator;
m_WhiteMark.SetPosition(rPosition.m_fX, rPosition.m_fY);
m_WhiteMark.Render();
++aIterator;
}
Add alá ezt:
// Boss
STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, CInstanceBase::GetIndexedNameColor(CInstanceBase::NAMECOLOR_BOSS));
aIterator = m_BossPositionVector.begin();
while (aIterator != m_BossPositionVector.end())
{
TMarkPosition & rPosition = *aIterator;
m_WhiteMark.SetPosition(rPosition.m_fX, rPosition.m_fY);
m_WhiteMark.Render();
++aIterator;
}
Keres:
else if (pkInstEach->IsEnemy())
{
aMarkPosition.m_fX = ( m_fWidth - (float)m_WhiteMark.GetWidth() ) / 2.0f + fDistanceFromCenterX + m_fScreenX;
aMarkPosition.m_fY = ( m_fHeight - (float)m_WhiteMark.GetHeight() ) / 2.0f + fDistanceFromCenterY + m_fScreenY;
m_MonsterPositionVector.push_back(aMarkPosition);
}
Add alá ezt:
else if (pkInstEach->IsBoss())
{
aMarkPosition.m_fX = ( m_fWidth - (float)m_WhiteMark.GetWidth() ) / 2.0f + fDistanceFromCenterX + m_fScreenX;
aMarkPosition.m_fY = ( m_fHeight - (float)m_WhiteMark.GetHeight() ) / 2.0f + fDistanceFromCenterY + m_fScreenY;
m_BossPositionVector.push_back(aMarkPosition);
}
A forrás részével meg is vagyunk. Jöhet a kliens rész (Python).
Nyisd meg: root/colorinfo.py
Keres:
CHAT_RGB_WHISPER = (74, 225, 74)
Add alá ezt:
CHR_NAME_RGB_BOSS = (9, 22, 255)
Nyisd meg: root/introloading.py
Keres:
chrmgr.NAMECOLOR_WAYPOINT : colorInfo.CHR_NAME_RGB_WAYPOINT,
Add alá ezt:
chrmgr.NAMECOLOR_BOSS : colorInfo.CHR_NAME_RGB_BOSS,
Ha mindent pontosan megcsináltál, tökéletesen működnie kell.
Figyelem: Ez a leírás más fórumon is megtalálható.