void CDevilSquareGround::SendRankingInfo(LPOBJ lpObj)
{	
	if(ReadConfig.SCFRSON == FALSE)
	{
		if ( lpObj->m_nEventScore <= 0 )
		{
			return;
		}

		PMSG_ANS_EVENTUSERSCORE pMsg;

		pMsg.h.c = 0xC1;
		pMsg.h.headcode = 0x01;
		pMsg.h.size = sizeof(pMsg);
		pMsg.Score = lpObj->m_nEventScore;
		pMsg.SquareNum = lpObj->m_bDevilSquareIndex;
		pMsg.Class = lpObj->Class;
		pMsg.ServerCode = gGameServerCode;
		memcpy(pMsg.AccountID, lpObj->AccountID, MAX_ACCOUNT_LEN);
		memcpy(pMsg.GameID, lpObj->Name, MAX_ACCOUNT_LEN);

		DataSendRank((char *)&pMsg, pMsg.h.size);
	}else
	{
		DS_SendRankingInfo(lpObj->m_Index);
	}
}
void CDevilSquare::SendLiveCall()
{
    PMSG_ANS_EVENTLIVE pMsg;

    pMsg.h.c = 0xC1;
    pMsg.h.headcode = 0x03;
    pMsg.h.size = sizeof(pMsg);

    DataSendRank((char *)&pMsg, pMsg.h.size);
}
void CIllusionTempleEvent::GEReqIllusionTempleIncEnterCount(LPOBJECTSTRUCT lpObj)
{
	PMSG_REQ_ILLUSION_TEMPLE_INC_COUNT pMsg;	
	PHeadSetB((LPBYTE)&pMsg, 0x13, sizeof(pMsg));
	
	memcpy(pMsg.AccountID, lpObj->AccountID, MAX_IDSTRING);
	memcpy(pMsg.GameID, lpObj->Name, MAX_IDSTRING);
	pMsg.ServerCode = gGameServerCode;
	
	DataSendRank((char *)&pMsg, pMsg.h.size);
}
Exemple #4
0
void CDevilSquare::DieProcDevilSquare(LPOBJ lpObj)
{
	char msg[255];

	wsprintf(msg, "Failed. Your score is %d. Try again next time.", lpObj->m_nEventScore);
	GCServerMsgStringSend(msg, lpObj->m_Index, 1);

	if ( lpObj->m_nEventScore <= 0 )
		return;

	PMSG_ANS_EVENTUSERSCORE pMsg;

	pMsg.h.c = 0xC1;
	pMsg.h.headcode = 0x01;
	pMsg.h.size = sizeof(pMsg);
	pMsg.SquareNum = lpObj->m_bDevilSquareIndex;
	pMsg.Class = lpObj->Class;
	pMsg.h.subcode = 0x01;

	if ( lpObj->Class == 1 )
	{
		if ( lpObj->Class >= 0 && lpObj->Class < MAX_TYPE_PLAYER )
		{
			if ( DS_LEVEL_RANGE(lpObj->m_bDevilSquareIndex) != FALSE )
			{
				lpObj->m_nEventScore+= this->m_BonusScoreTable[lpObj->Class][lpObj->m_bDevilSquareIndex]/100;
				
			}
		}

		pMsg.Score = lpObj->m_nEventScore;
	}
	else
	{
		pMsg.Score = lpObj->m_nEventScore;
	}

	pMsg.ServerCode = gGameServerCode;
	memcpy(pMsg.AccountID, lpObj->AccountID, sizeof(pMsg.AccountID));
	memcpy(pMsg.GameID, lpObj->Name, sizeof(pMsg.GameID));

	DataSendRank((char *)&pMsg, pMsg.h.size);

	LogAdd("[DevilSquare] Dead [%s][%s][%d][%d]",
		lpObj->AccountID, lpObj->Name, 
		lpObj->m_nEventExp, lpObj->m_nEventScore);

	lpObj->m_nEventScore = 0;
	lpObj->m_nEventMoney = 0;
	lpObj->m_nEventExp = 0;

}
void CIllusionTempleEvent::EGReqIllusionTempleEnterCount(int iIndex)
{
	PMSG_REQ_ILLUSIONTEMPLE_ENTERCOUNT pMsg; // [sp+4Ch] [bp-24h]@2

  if ( gObjIsConnected(iIndex) )
  {
    pMsg.h.c = -63;
    pMsg.h.headcode = 20;
    memcpy(pMsg.AccountID, gObj[iIndex].AccountID, 0xAu);
    memcpy(pMsg.GameID, gObj[iIndex].Name, 0xAu);
    pMsg.ServerCode = gGameServerCode / 20;
    pMsg.iObjIndex = iIndex;
    DataSendRank((char*)&pMsg, pMsg.h.size);
  }
}
BOOL CIllusionTempleEvent::GEReqIllusionTempleEnterCountCheck(int aIndex, BYTE btTempleIndex, BYTE btItemPos, int nItemLevel)
{
	if(DevilSquareEventConnect) return FALSE;
	
	PMSG_REQ_ILLUSION_TMPLE_ENTERCOUNTCHECK pMsg;	
	PHeadSetB((LPBYTE)&pMsg, 0x12, sizeof(pMsg));
	
	memcpy(pMsg.AccountID, gObj[aIndex].AccountID, MAX_IDSTRING);
	memcpy(pMsg.GameID, gObj[aIndex].Name, MAX_IDSTRING);
	
	pMsg.ServerCode = gGameServerCode;
	pMsg.iObjIndex = aIndex;
	pMsg.iItemPos = btItemPos;
	pMsg.iItemLevel = nItemLevel;
	pMsg.iTempleNumber = btTempleIndex;
	
	DataSendRank((char *)&pMsg, pMsg.h.size);
	return TRUE;
}