Пример #1
0
void CCrywolf::GiveRewardExp(int iUserIndex, int iRewardExp)
{
	if ( !gObjIsConnected(iUserIndex))
		return;

	if ( iRewardExp <= -1 )
		return;

	int iRET_EXP = 0;
	int iCAL_EXP = iRewardExp;
	int iMAX_LEVCOUNT = 0;

	if ( !gObjIsConnected(iUserIndex))
		return;

	iRET_EXP = iCAL_EXP;

	if ( gObj[iUserIndex].Type == OBJ_USER )
	{
		while ( iCAL_EXP > 0 )
		{
			if ( iCAL_EXP > 0 )
			{
				iCAL_EXP = UTIL.CrywolfMVPLevelUp(iUserIndex, iCAL_EXP);
			}

			iMAX_LEVCOUNT++;

			if ( iMAX_LEVCOUNT > 5 )
			{
				LogAdd("[ Crywolf ][GiveRewardExp] LevelUp Error [%s][%s]",
					gObj[iUserIndex].AccountID, gObj[iUserIndex].Name);

				break;
			}
		}

		PMSG_KILLPLAYER_EXT pMsg;

		PHeadSetBE((LPBYTE)&pMsg, 0x9C, sizeof(pMsg));
		pMsg.NumberH = -1;
		pMsg.NumberL = -1;
		pMsg.ExpH = SET_NUMBERHW(iRewardExp);
		pMsg.ExpL = SET_NUMBERLW(iRewardExp);
		pMsg.DamageH = 0;
		pMsg.DamageL = 0;

		DataSend(iUserIndex, (LPBYTE)&pMsg, pMsg.h.size);
	}
}
Пример #2
0
//00554540	-> 100%
void CMasterLevelSystem::GCMasterLevelInfo(LPOBJ lpObj)	//OK
{
	if( !lpObj->m_bMasterLevelDBLoad )
	{
		this->GDReqMasterLevelInfo(lpObj);
		return;
	}
	// ----
	PMSG_MASTERLEVEL_INFO pMsg;
	PHeadSubSetB(&pMsg.h.c, 0xF3, 0x50, sizeof(PMSG_MASTERLEVEL_INFO));
	// ----
	pMsg.nMLevel		= lpObj->m_nMasterLevel;
	// ----
	pMsg.btMLExp1		= SET_NUMBERH(SET_NUMBERHW(HIDWORD(lpObj->m_i64MasterLevelExp)));
	pMsg.btMLExp2		= SET_NUMBERL(SET_NUMBERHW(HIDWORD(lpObj->m_i64MasterLevelExp)));
	pMsg.btMLExp3		= SET_NUMBERH(SET_NUMBERLW(HIDWORD(lpObj->m_i64MasterLevelExp)));
	pMsg.btMLExp4		= SET_NUMBERL(SET_NUMBERLW(HIDWORD(lpObj->m_i64MasterLevelExp)));
	pMsg.btMLExp5		= SET_NUMBERH(SET_NUMBERHW(LODWORD(lpObj->m_i64MasterLevelExp)));
	pMsg.btMLExp6		= SET_NUMBERL(SET_NUMBERHW(LODWORD(lpObj->m_i64MasterLevelExp)));
	pMsg.btMLExp7		= SET_NUMBERH(SET_NUMBERLW(LODWORD(lpObj->m_i64MasterLevelExp)));
	pMsg.btMLExp8		= SET_NUMBERL(SET_NUMBERLW(LODWORD(lpObj->m_i64MasterLevelExp)));
	// ----
	pMsg.btMLNextExp1	= SET_NUMBERH(SET_NUMBERHW(HIDWORD(lpObj->m_i64NextMasterLevelExp)));
	pMsg.btMLNextExp2	= SET_NUMBERL(SET_NUMBERHW(HIDWORD(lpObj->m_i64NextMasterLevelExp)));
	pMsg.btMLNextExp3	= SET_NUMBERH(SET_NUMBERLW(HIDWORD(lpObj->m_i64NextMasterLevelExp)));
	pMsg.btMLNextExp4	= SET_NUMBERL(SET_NUMBERLW(HIDWORD(lpObj->m_i64NextMasterLevelExp)));
	pMsg.btMLNextExp5	= SET_NUMBERH(SET_NUMBERHW(LODWORD(lpObj->m_i64NextMasterLevelExp)));
	pMsg.btMLNextExp6	= SET_NUMBERL(SET_NUMBERHW(LODWORD(lpObj->m_i64NextMasterLevelExp)));
	pMsg.btMLNextExp7	= SET_NUMBERH(SET_NUMBERLW(LODWORD(lpObj->m_i64NextMasterLevelExp)));
	pMsg.btMLNextExp8	= SET_NUMBERL(SET_NUMBERLW(LODWORD(lpObj->m_i64NextMasterLevelExp)));
	// ----
	pMsg.nMLPoint		= LOWORD(lpObj->m_iMasterLevelPoint);
	pMsg.wMaxLife		= (double)lpObj->AddLife + lpObj->MaxLife;
	pMsg.wMaxMana		= (double)lpObj->AddMana + lpObj->MaxMana;
	pMsg.wMaxShield		= LOWORD(lpObj->iAddShield) + LOWORD(lpObj->iMaxShield);
	pMsg.wMaxBP			= LOWORD(lpObj->AddBP) + LOWORD(lpObj->MaxBP);
	// ----
	DataSend(lpObj->m_Index, (LPBYTE)&pMsg, pMsg.h.size);
}