Add this in Project.h
Code:
#ifdef __MONSTER_BUFFS
struct MonsterBuffData
{
int m_BuffId;
int m_Chance;
};
#endif
Then change the corresponding code:
Code:
#ifdef __MONSTER_BUFFS
map<int, MonsterBuffData> m_mapMonsterBuffs;
BOOL LoadMonsterBuffs(LPCTSTR lpszFilename);
#endif // __MONSTER_BUFFS
Code:
#ifdef __MONSTER_BUFFS
BOOL CProject::LoadMonsterBuffs(LPCTSTR lpszFilename)
{
CScript script;
if (script.Load(lpszFilename) == FALSE)
{
Error("Failed to load: %s", lpszFilename);
return FALSE;
}
int monsterID = script.GetNumber();
while (script.tok != FINISHED)
{
MonsterBuffData data;
data.m_BuffId = script.GetNumber();
data.m_Chance = script.GetNumber();
m_mapMonsterBuffs.insert(make_pair(monsterID, data));
monsterID = script.GetNumber();
}
return TRUE;
}
#endif // __MONSTER_BUFFS
Code:
#ifdef __MONSTER_BUFFS
map< int, MonsterBuffData >::iterator it = prj.m_mapMonsterBuffs.find(m_pDefender->m_dwIndex);
if (prj.m_mapMonsterBuffs.end() != it)
{
MonsterBuffData data = it->second;
if ((int)xRandom(1000) < data.m_Chance)
{
ItemProp* pProp = prj.GetItemProp(data.m_BuffId);
if (pProp)
m_pAttacker->DoApplySkill(m_pAttacker, pProp, NULL);
}
}
#endif // __MONSTER_BUFFS
Now you cann add another column in your MonsterBuffs.inc:
Code:
MI_AIBATT1 II_SYS_SYS_LS_LOVE 500
MI_AIBATT2 II_SYS_SYS_LS_BLESSING 100
10 = 1%