Open Locale_inc.h and add:
Code:
#define BOSS_MARK_SYSTEM // show boss on minimap
Code:
BOOL CInstanceBase::IsStone()
{
return m_GraphicThingInstance.IsStone();
}
Code:
#ifdef BOSS_MARK_SYSTEM
BOOL CInstanceBase::IsBoss()
{
if (GetRace() == 691)
return TRUE;
if (GetRace() == 692)
return TRUE;
if (GetRace() == 693)
return TRUE;
if (GetRace() == 791)
return TRUE;
if (GetRace() == 991)
return TRUE;
if (GetRace() == 992)
return TRUE;
if (GetRace() == 993)
return TRUE;
if (GetRace() == 1091)
return TRUE;
if (GetRace() == 1092)
return TRUE;
if (GetRace() == 1093)
return TRUE;
if (GetRace() == 1094)
return TRUE;
if (GetRace() == 1095)
return TRUE;
if (GetRace() == 2191)
return TRUE;
if (GetRace() == 1191)
return TRUE;
if (GetRace() == 1192)
return TRUE;
if (GetRace() == 1304)
return TRUE;
if (GetRace() == 1306)
return TRUE;
if (GetRace() == 1307)
return TRUE;
if (GetRace() == 1901)
return TRUE;
if (GetRace() == 1902)
return TRUE;
if (GetRace() == 1903)
return TRUE;
if (GetRace() == 2206)
return TRUE;
if (GetRace() == 2207)
return TRUE;
if (GetRace() == 2291)
return TRUE;
if (GetRace() == 2306)
return TRUE;
if (GetRace() == 2307)
return TRUE;
if (GetRace() == 2492)
return TRUE;
if (GetRace() == 2493)
return TRUE;
if (GetRace() == 2494)
return TRUE;
if (GetRace() == 2598)
return TRUE;
if (GetRace() == 3090)
return TRUE;
if (GetRace() == 3091)
return TRUE;
if (GetRace() == 3190)
return TRUE;
if (GetRace() == 3191)
return TRUE;
if (GetRace() == 3290)
return TRUE;
if (GetRace() == 3291)
return TRUE;
if (GetRace() == 3390)
return TRUE;
if (GetRace() == 3391)
return TRUE;
if (GetRace() == 3490)
return TRUE;
if (GetRace() == 3491)
return TRUE;
if (GetRace() == 3590)
return TRUE;
if (GetRace() == 3591)
return TRUE;
if (GetRace() == 3690)
return TRUE;
if (GetRace() == 3691)
return TRUE;
if (GetRace() == 3790)
return TRUE;
if (GetRace() == 3791)
return TRUE;
if (GetRace() == 3890)
return TRUE;
if (GetRace() == 3891)
return TRUE;
if (GetRace() == 5001)
return TRUE;
if (GetRace() == 5004)
return TRUE;
if (GetRace() == 5002)
return TRUE;
if (GetRace() == 5161)
return TRUE;
if (GetRace() == 5162)
return TRUE;
if (GetRace() == 5163)
return TRUE;
if (GetRace() == 6091)
return TRUE;
if (GetRace() == 6191)
return TRUE;
return FALSE;
}
#endif
InstanceBase.h opens and the following line is searched.
Code:
NAMECOLOR_WAYPOINT
add to the bottom
Code:
#ifdef BOSS_MARK_SYSTEM
NAMECOLOR_BOSS,
#endif
Search again;
Code:
BOOL IsStone();
Code:
#ifdef BOSS_MARK_SYSTEM
BOOL IsBoss();
#endif
Code:
else if (IsEnemy())
{
return NAMECOLOR_MOB;
}
It is changed in this way;
Code:
else if (IsEnemy())
{
#ifdef BOSS_MARK_SYSTEM
if (IsBoss())
return NAMECOLOR_BOSS;
#endif
return NAMECOLOR_MOB;
}
PythonCharacterManagerModule.cpp opens and the following line is searched.
Code:
PyModule_AddIntConstant(poModule, "NAMECOLOR_WAYPOINT", CInstanceBase::NAMECOLOR_WAYPOINT);
Code:
#ifdef BOSS_MARK_SYSTEM
PyModule_AddIntConstant(poModule, "NAMECOLOR_BOSS", CInstanceBase::NAMECOLOR_BOSS);
#endif
Code:
m_NPCPositionVector.clear();
Code:
#ifdef BOSS_MARK_SYSTEM
m_BossPositionVector.clear();
#endif
Code:
if (pkInstEach->IsPC() && !pkInstEach->IsInvisibility())
{
if (pkInstEach == CPythonCharacterManager::Instance().GetMainInstancePtr())
continue;
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;
aMarkPosition.m_eNameColor=pkInstEach->GetNameColorIndex();
if (aMarkPosition.m_eNameColor==CInstanceBase::NAMECOLOR_PARTY)
m_PartyPCPositionVector.push_back(aMarkPosition);
else
m_OtherPCPositionVector.push_back(aMarkPosition);
}
Code:
#ifdef BOSS_MARK_SYSTEM
else if (pkInstEach->IsBoss())
{
aMarkPosition.m_fX = (m_fWidth - (float)m_BossMark.GetWidth()) / 2.0f + fDistanceFromCenterX + m_fScreenX;
aMarkPosition.m_fY = (m_fHeight - (float)m_BossMark.GetHeight()) / 2.0f + fDistanceFromCenterY + m_fScreenY;
m_BossPositionVector.push_back(aMarkPosition);
}
#endif
Code:
if (m_fScale >= 2.0f)
{
// Monster
STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, CInstanceBase::GetIndexedNameColor(CInstanceBase::NAMECOLOR_MOB));//m_MarkTypeToColorMap[TYPE_MONSTER]);
aIterator = m_MonsterPositionVector.begin();
while (aIterator != m_MonsterPositionVector.end())
{
TMarkPosition & rPosition = *aIterator;
m_WhiteMark.SetPosition(rPosition.m_fX, rPosition.m_fY);
m_WhiteMark.Render();
++aIterator;
}
Code:
#ifdef BOSS_MARK_SYSTEM
STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, CInstanceBase::GetIndexedNameColor(CInstanceBase::NAMECOLOR_BOSS));
aIterator = m_BossPositionVector.begin();
while (aIterator != m_BossPositionVector.end())
{
TMarkPosition & rPosition = *aIterator;
m_BossMark.SetPosition(rPosition.m_fX, rPosition.m_fY);
m_BossMark.Render();
++aIterator;
}
#endif
Code:
const std::string strWhiteMark = strImageRoot + "minimap/whitemark.sub";
Code:
#ifdef BOSS_MARK_SYSTEM
const std::string strBossMark = strImageRoot + "bossmark.tga";
#endif
Searched;
Code:
m_WhiteMark.SetImagePointer(pSubImage);
Code:
#ifdef BOSS_MARK_SYSTEM
pSubImage = (CGraphicSubImage *)CResourceManager::Instance().GetResourcePointer(strBossMark.c_str());
m_BossMark.SetImagePointer(pSubImage);
#endif
Code:
m_PlayerMark.Destroy();
Code:
#ifdef BOSS_MARK_SYSTEM
m_BossMark.Destroy();
#endif
Code:
CGraphicImageInstance m_WhiteMark;
Code:
#ifdef BOSS_MARK_SYSTEM
CGraphicExpandedImageInstance m_BossMark;
#endif
Code:
TInstanceMarkPositionVector m_NPCPositionVector;
Code:
#ifdef BOSS_MARK_SYSTEM
TInstanceMarkPositionVector m_BossPositionVector;
#endif
We're done with the SRC.
Let's get to the phyton part .. The
colorinfo.py in root is opened and searched.
Code:
_NAME_RGB_EMPIRE_PC_C = (23, 30, 138)
Code:
CHR_NAME_RGB_BOSS = (255, 255, 255)
Code:
chrmgr.NAMECOLOR_WAYPOINT : colorInfo.CHR_NAME_RGB_WAYPOINT,
Code:
chrmgr.NAMECOLOR_BOSS : colorInfo.CHR_NAME_RGB_BOSS,