it is also a nice failsafe in case you missed something and a bug like this still exists
in InitPlayerData
look for
Code: Select all
if (m_pClientList[iClientH] == NULL) {
wsprintf(cTxt, "<%d> InitPlayerData error - Socket error! Disconnected.", iClientH);
PutLogList(cTxt);
return;
}
Code: Select all
if (m_pClientList[iClientH]->m_iStr > m_sCharStatLimit) { //XenX restore if you go above max stats
m_pClientList[iClientH]->m_iStr = m_sCharStatLimit;
}
if (m_pClientList[iClientH]->m_iVit > m_sCharStatLimit) { //XenX restore if you go above max stats
m_pClientList[iClientH]->m_iVit = m_sCharStatLimit;
}
if (m_pClientList[iClientH]->m_iDex > m_sCharStatLimit) { //XenX restore if you go above max stats
m_pClientList[iClientH]->m_iDex = m_sCharStatLimit;
}
if (m_pClientList[iClientH]->m_iMag > m_sCharStatLimit) { //XenX restore if you go above max stats
m_pClientList[iClientH]->m_iMag = m_sCharStatLimit;
}
if (m_pClientList[iClientH]->m_iInt > m_sCharStatLimit) { //XenX restore if you go above max stats
m_pClientList[iClientH]->m_iInt = m_sCharStatLimit;
}
if (m_pClientList[iClientH]->m_iCharisma >m_sCharStatLimit) { //XenX restore if you go above max stats
m_pClientList[iClientH]->m_iCharisma = m_sCharStatLimit;
}
if (m_pClientList[iClientH]->m_iAdminUserLevel < 1){ //added by XenX code to restore character after going over max level
if (m_pClientList[iClientH]->m_iLevel > m_iPlayerMaxLevel) {
m_pClientList[iClientH]->m_iLevel = m_iPlayerMaxLevel;
}
}
if (m_pClientList[iClientH]->m_iAdminUserLevel < 1){
if (m_pClientList[iClientH]->m_iExp > m_iLevelExpTable[m_iPlayerMaxLevel+1]) {
m_pClientList[iClientH]->m_iExp = m_iLevelExpTable[m_iPlayerMaxLevel];
}
}
nice huh
![Smile :)](./images/smilies/icon_smile.gif)
oh PS. this will not affect getting magestic points per level above max, however it will mean that instead of getting the next level exp you just need max level +1 exp for each majestic, i dont think i can fix that but if u want u dont need the max exp one.