Page 1 of 1

[code] bCheckLevelUp

Posted: Tue Jan 01, 2019 7:48 pm
by Centuu.-
Algo muy "molesto" en la mayoria de los servidores es cuando llegas a level max y al querer subir majestics, solamente podes hacerlo DE A UN PUNTO, a pesar de adquirir mucha cantidad de exp, siempre subis de a uno.

Con esta funcion que edite, tendras la posibilidad de que, al adquirir mucha exp, puedas subir de a varios majestics.

Code: Select all

BOOL CGame::bCheckLevelUp(int iClientH)
{
	if (m_pClientList[iClientH] == NULL) return FALSE;
	if (m_pClientList[iClientH]->m_iExp < m_pClientList[iClientH]->m_iNextLevelExp) return FALSE;
	while (m_pClientList[iClientH]->m_iExp >= m_pClientList[iClientH]->m_iNextLevelExp) { 
		if (m_pClientList[iClientH]->m_iLevel < m_iPlayerMaxLevel) {
			m_pClientList[iClientH]->m_iLevel++;
			m_pClientList[iClientH]->m_iLU_Pool += 3;	
			if (m_pClientList[iClientH]->m_iLevel > 100) {
				if (m_pClientList[iClientH]->m_bIsPlayerCivil) {
					ForceChangePlayMode(iClientH, TRUE);
				}
			}
			SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_LEVELUP, NULL, NULL, NULL, NULL);
			m_pClientList[iClientH]->m_iNextLevelExp = m_iLevelExpTable[m_pClientList[iClientH]->m_iLevel + 1];
			SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_EXP, NULL, NULL, NULL, NULL);
			CalcTotalItemEffect(iClientH, -1, FALSE);
		}
		else {
			m_pClientList[iClientH]->m_iGizonItemUpgradeLeft++;
			m_pClientList[iClientH]->m_iNextLevelExp = m_iLevelExpTable[m_iPlayerMaxLevel + 1];
			m_pClientList[iClientH]->m_iExp = m_iLevelExpTable[m_iPlayerMaxLevel];
			SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_EXP, NULL, NULL, NULL, NULL);
			SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_GIZONITEMUPGRADELEFT, m_pClientList[iClientH]->m_iGizonItemUpgradeLeft, 1, NULL, NULL, NULL);
		}
	}
	return TRUE;
}