Exemplo n.º 1
0
void EGAns2AnivRegSerial(LPMSG_REQ_2ANIV_SERIAL lpMsg,int aIndex)
{
	char szQuery[256];
	char szAccount[MAX_IDSTRING+1] = {0};

	memcpy(szAccount,lpMsg->szUID,MAX_IDSTRING);
	PMSG_ANS_2ANIV_SERIAL pMsg;

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

	pMsg.iINDEX = lpMsg->iINDEX;
	strcpy(pMsg.szUID,szAccount);

	sprintf(szQuery,"EXEC SP_REG_SERIAL '%s', '%d', '%s', '%s', '%s'",
		szAccount,lpMsg->iMEMB_GUID,lpMsg->SERIAL1,lpMsg->SERIAL2,lpMsg->SERIAL3);

	pMsg.btIsRegistered = 4;

	if(g_EventDB.Exec(szQuery) && g_EventDB.Fetch() != SQL_NO_DATA)
	{
		pMsg.btIsRegistered = g_EventDB.GetInt("RegResult");
		pMsg.iGiftNumber = g_EventDB.GetInt("F_Register_Section");

		if(pMsg.iGiftNumber == -1)
		{
			pMsg.btIsRegistered = 4;
		}
	}
	g_EventDB.Clear();

	DataSend(aIndex,(LPBYTE)&pMsg,pMsg.h.size);
}
Exemplo n.º 2
0
void OlympRewardRequest(LPOLP_REQ_REWARD lpMsg,int aIndex)
{
	char szName[MAX_IDSTRING+1];
	memcpy(szName,lpMsg->szName,MAX_IDSTRING);
	szName[MAX_IDSTRING] = '\0';

	OLP_ANS_REWARD pMsg;
	pMsg.h.c = PMHC_BYTE;
	pMsg.h.headcode = 0x68;
	pMsg.h.size = sizeof( pMsg );
	pMsg.h.subcode = 0x05;

	pMsg.iIndex = lpMsg->iIndex;
	memcpy(pMsg.szName,szName,10);

	pMsg.btResult = 0;
	pMsg.btRank = 0;
	pMsg.btReward = 0;

	char szQuery[512];
	sprintf(szQuery,"EXEC WZ_OG_UserReward %d, '%s'",
		lpMsg->wMapSvrNum,szName);

	if( g_MyEventDB.Exec(szQuery) == TRUE && g_MyEventDB.Fetch() != SQL_NO_DATA )
	{
		pMsg.btResult = g_MyEventDB.GetInt("qResult");
		pMsg.btRank = g_MyEventDB.GetInt("USER_RANK");
		pMsg.btReward = g_MyEventDB.GetInt("IS_REWARDED");
	}

	g_MyEventDB.Clear();

	DataSend(aIndex,(LPBYTE)&pMsg,sizeof(pMsg));
}
Exemplo n.º 3
0
void OlympStatsRequest(LPOLP_REQ_STATS lpMsg,int aIndex)
{
	char szName[MAX_IDSTRING+1];
	memcpy(szName,lpMsg->szName,MAX_IDSTRING);
	szName[MAX_IDSTRING] = '\0';

	OLP_ANS_STATS pMsg;
	pMsg.h.c = PMHC_BYTE;
	pMsg.h.headcode = 0x68;
	pMsg.h.size = sizeof(pMsg);
	pMsg.h.subcode = 0x06;

	pMsg.iIndex = lpMsg->iIndex;
	memcpy(pMsg.szName,szName,MAX_IDSTRING);

	pMsg.btResult = FALSE;
	pMsg.iBattles = 0;
	pMsg.iPts = 0;
	

	char szQuery[512];
	sprintf(szQuery,"SELECT BATTLE_COUNT,BATTLE_POINTS FROM OLYMP_USERS WHERE CHAR_NAME = '%s' AND MAP_SVR_GROUP = %d",
		szName,lpMsg->wMapSvrNum);

	if( g_MyEventDB.Exec(szQuery) && g_MyEventDB.Fetch() != SQL_NO_DATA )
	{
		pMsg.btResult = TRUE;
		pMsg.iBattles = g_MyEventDB.GetInt("BATTLE_COUNT");
		pMsg.iPts = g_MyEventDB.GetInt("BATTLE_POINTS");
	}
	g_MyEventDB.Clear();

	DataSend(aIndex,(LPBYTE)&pMsg,sizeof(pMsg));
}
Exemplo n.º 4
0
void ReqRegOlymp(LPOLP_REQ_REGFIGHT lpMsg,int aIndex)
{
	char szName[MAX_IDSTRING+1];
	memcpy(szName,lpMsg->szName,MAX_IDSTRING);
	szName[MAX_IDSTRING] = '\0';

	OLP_ANS_REGFIGHT pMsg;
	pMsg.h.c = PMHC_BYTE;
	pMsg.h.size = sizeof( pMsg );
	pMsg.h.headcode = 0x68;
	pMsg.h.subcode = 0x02;
	pMsg.iIndex = lpMsg->iIndex;
	memcpy(pMsg.szName,szName,MAX_IDSTRING);

	pMsg.iBattleCount = 0;
	pMsg.iBattlePts = 0;
	pMsg.btResult = 0;

	char szQuery[512];
	sprintf(szQuery,"EXEC WZ_OG_UserInfo %d, '%s',%d",lpMsg->wMapSvrNum,szName,lpMsg->iClass);

	if( g_MyEventDB.Exec(szQuery) && g_MyEventDB.Fetch() != SQL_NO_DATA )
	{
		pMsg.btResult = TRUE;
		pMsg.iBattleCount = g_MyEventDB.GetInt("BATTLE_COUNT");
		pMsg.iBattlePts = g_MyEventDB.GetInt("BATTLE_POINTS");
		pMsg.iLastRegTime = g_MyEventDB.GetInt("LAST_REG");
	}
	g_MyEventDB.Clear();

	DataSend(aIndex,(LPBYTE)&pMsg,sizeof(pMsg));
}
Exemplo n.º 5
0
void EGAnsEventChipInfo(LPMSG_REQ_VIEW_EC_MN lpMsg,int aIndex)
{
	char szQuery[256];
	char szAccountID[MAX_IDSTRING+1] = {0};

	memcpy(szAccountID,lpMsg->szUID, MAX_IDSTRING);

	PMSG_ANS_VIEW_EC_MN pMsg;

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

	pMsg.iINDEX = lpMsg->iINDEX;
	strcpy(pMsg.szUID,szAccountID);
	pMsg.szUID[10] = 0;

	sprintf(szQuery,"SELECT EventChips, Check_Code, MuttoNumber FROM T_MU2003_EVENT WHERE AccountID='%s'",szAccountID);

	if(g_EventDB.Exec(szQuery) != TRUE)
	{
		pMsg.bSUCCESS = FALSE;
	}
	else
	{
		if(g_EventDB.Fetch() != SQL_NO_DATA)
		{
			if(g_EventDB.GetInt("Check_Code") != 0)
			{
				pMsg.nEVENT_CHIPS = 0;
			}
			else
			{
				pMsg.nEVENT_CHIPS = g_EventDB.GetInt("EventChips");
			}

			pMsg.iMUTO_NUM = g_EventDB.GetInt("MuttonNumber");
			pMsg.bSUCCESS = TRUE;
		}
		else
		{
			g_EventDB.Clear();
			sprintf(szQuery,"INSERT INTO T_MU2003_EVENT (AccountID) VALUES ('%s')",szAccountID);
			if(g_EventDB.Exec(szQuery) == FALSE)
			{
				pMsg.bSUCCESS = FALSE;
			}
			else
			{
				pMsg.nEVENT_CHIPS = 0;
				pMsg.iMUTO_NUM = 0;
				pMsg.bSUCCESS = TRUE;
			}
		}
	}
	g_EventDB.Clear();

	DataSend(aIndex,(LPBYTE)&pMsg,pMsg.h.size);
}
Exemplo n.º 6
0
void CustomQuestReqInfo(LPMSG_CUSTOMQUEST_REQUSER lpMsg,int aIndex)
{
	char szName[MAX_IDSTRING+1];
	szName[MAX_IDSTRING] = '\0';

	memcpy(szName,lpMsg->szUserName,MAX_IDSTRING);

	PMSG_CUSTOMQUEST_ANSUSER pMsg;

	pMsg.h.c = 0xC1;
	pMsg.h.size = sizeof(pMsg);
	pMsg.h.headcode = 0x65;
	pMsg.h.subcode = 0x01;

	pMsg.result = FALSE;
	pMsg.aIndex = lpMsg->aIndex;
	memcpy(pMsg.szUserName,lpMsg->szUserName,MAX_IDSTRING);

	pMsg.QuestGroup = -1;
	pMsg.QuestIndex = -1;
	pMsg.QuestItem[0] = 0;
	pMsg.QuestItem[1] = 0;
	pMsg.QuestItem[2] = 0;

	char szQuery[256];

	sprintf(szQuery,"SELECT QuestGroup,QuestIndex,QuestState,QuestItem_1,QuestItem_2,QuestItem_3 FROM T_CustomQuest WHERE CHAR_NAME = '%s'",szName);

	if( g_MyEventDB.Exec(szQuery) == TRUE )
	{
		if( g_MyEventDB.Fetch() == SQL_NO_DATA )
		{
			g_MyEventDB.Clear();

			sprintf(szQuery,"INSERT INTO T_CustomQuest (CHAR_NAME,QuestGroup,QuestIndex,QuestState,QuestItem_1,QuestItem_2,QuestItem_3) VALUES ('%s',-1,-1,0,0,0,0)",szName);

			if( g_MyEventDB.Exec(szQuery) == TRUE )
			{
				pMsg.result = TRUE;
			}
		}
		else
		{
			pMsg.result = TRUE;

			pMsg.QuestGroup = g_MyEventDB.GetInt("QuestGroup");
			pMsg.QuestIndex = g_MyEventDB.GetInt("QuestIndex");
			pMsg.QuestState = g_MyEventDB.GetInt("QuestState");
			pMsg.QuestItem[0] = g_MyEventDB.GetInt("QuestItem_1");
			pMsg.QuestItem[1] = g_MyEventDB.GetInt("QuestItem_2");
			pMsg.QuestItem[2] = g_MyEventDB.GetInt("QuestItem_3");
		}
	}

	g_MyEventDB.Clear();

	DataSend(aIndex,(LPBYTE)&pMsg,sizeof(pMsg));
}
void CAccountTimeLimitDBCtrl::Handler( LPDB_OVERLAPPED_PLUS pov, DWORD dwCompletionKey )
{
	CAr ar( pov->lpBuf, pov->uBufSize );

	switch( pov->nQueryMode )
	{
		case QUERY_TIMELIMIT_LOAD:
		{
			DWORD	dwPlayerId; 
			int		nPlayTime = -1;
			char	szAccount[MAX_ACCOUNT];

			ar >> dwPlayerId;
			ar.ReadString( szAccount, MAX_ACCOUNT );
			
			CQuery* pQuery = GetQueryObject();
			if( pQuery->Execute( "USP_AccountPlay_Select '%s'", szAccount ) )
			{
				if( pQuery->Fetch() )
				{
					nPlayTime = pQuery->GetInt( "PlayTime" ) * SEC( 1 );	// 초단위를 ms단위로 변환
					DWORD dwLastPlayDate	= static_cast<DWORD>( pQuery->GetInt( "PlayDate" ) );
					int nYear = dwLastPlayDate/10000;	dwLastPlayDate%=10000;
					int nMonth = dwLastPlayDate/100;	dwLastPlayDate%=100;
					int nDay = dwLastPlayDate;
					CTime time( nYear, nMonth, nDay+1, 0, 0, 0 );	// 하루를 더한 값이 더 작으면 초기화..
					if( time < CTime::GetCurrentTime() )
						nPlayTime = 0;
					
					if( !prj.m_EventLua.IsTimeLimit() )		// 루아이벤트 스크립트에 베트남 제한 여부 설정
						nPlayTime = 0;
				}
			}

			if( nPlayTime < 0 )
				Error( "PlayTime is wrong - PlayerId : %d, PlayTime : %d", dwPlayerId, nPlayTime );
			CDPTrans::GetInstance()->SendTimeLimitAck( dwPlayerId, nPlayTime, dwCompletionKey );
		}
		break;

		case QUERY_TIMELIMIT_UPDATE:
		{
			char	szAccount[MAX_ACCOUNT];
			int		nPlayTime;

			ar.ReadString( szAccount, MAX_ACCOUNT );
			ar >> nPlayTime;
			nPlayTime /= SEC( 1 );	// ms 단위를 초단위로 변환

			CTime time = CTime::GetCurrentTime();
			DWORD dwLastDate = (time.GetYear()*10000) + (time.GetMonth()*100) + time.GetDay();
			
			GetQueryObject()->Execute( "USP_AccountPlay_Update '%s', %d, %d", szAccount, dwLastDate, nPlayTime );
		}
		break;
	}
}
Exemplo n.º 8
0
void EGAnsEventStoneInfo(LPMSG_REQ_VIEW_EC_MN lpMsg,int aIndex)
{
	char szQuery[256];
	char szAccount[MAX_IDSTRING+1] = {0};

	memcpy(szAccount,lpMsg->szUID,MAX_IDSTRING);
	PMSG_ANS_VIEW_STONES pMsg;

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

	strcpy(pMsg.szUID,szAccount);

	pMsg.iINDEX = lpMsg->iINDEX;
	pMsg.szUID[10] = 0;

	sprintf(szQuery,"SELECT StoneCount, Check_Code FROM T_BLOOD_CASTLE WHERE AccountID='%s'",szAccount);

	pMsg.bSUCCESS = FALSE;

	if(g_EventDB.Exec(szQuery) == TRUE)
	{
		if(g_EventDB.Fetch() != SQL_NO_DATA)
		{
			if(g_EventDB.GetInt("Check_Code") != 0)
			{
				pMsg.iStoneCount = 0;
			}
			else
			{
				pMsg.iStoneCount = g_EventDB.GetInt("StoneCount");
			}
			pMsg.bSUCCESS = TRUE;
		}
		else
		{
			g_EventDB.Clear();

			sprintf(szQuery,"INSERT INTO T_BLOOD_CASTLE (AccountID) VALUES ('%s')",szAccount);

			if(g_EventDB.Exec(szQuery) == TRUE)
			{
				pMsg.bSUCCESS = TRUE;
				pMsg.iStoneCount = 0;
			}
		}
	}

	g_EventDB.Clear();

	DataSend(aIndex,(LPBYTE)&pMsg,pMsg.h.size);
}
Exemplo n.º 9
0
void LoadNoblessInfo(LPMSG_REQ_NOBLESSINFO lpMsg,int aIndex)
{
	char szName[MAX_IDSTRING+1];
	memcpy(szName,lpMsg->szName,MAX_IDSTRING);
	szName[MAX_IDSTRING] = '\0';

	PMSG_ANS_NOBLESSINFO pMsg;
	pMsg.h.c = 0xC1;
	pMsg.h.size = sizeof(pMsg);
	pMsg.h.headcode = 0x66;
	pMsg.h.subcode = 0x10;

	pMsg.aIndex = lpMsg->aIndex;
	memcpy(pMsg.szName,szName,MAX_IDSTRING);

	pMsg.btResult = TRUE;

	char szQuery[512];
	sprintf(szQuery,"SELECT NoblessRank,NoblessPts FROM NoblessInfo WHERE CHAR_NAME = '%s'",
		szName);

	if( !g_MyEventDB.Exec(szQuery) )
	{
		pMsg.btResult = FALSE;
	}
	else
	{
		if( g_MyEventDB.Fetch() == SQL_NO_DATA )
		{
			g_MyEventDB.Clear();

			sprintf(szQuery,"INSERT INTO NoblessInfo (CHAR_NAME,NoblessRank,NoblessPts) VALUES ('%s',0,0)",
				szName);

			g_MyEventDB.Exec(szQuery);

			pMsg.NoblessRank = 0;
			pMsg.NoblessPts = 0;
		}
		else
		{
			pMsg.NoblessRank = g_MyEventDB.GetInt("NoblessRank");
			pMsg.NoblessPts = g_MyEventDB.GetInt("NoblessPts");
		}
	}

	g_MyEventDB.Clear();

	DataSend(aIndex,(LPBYTE)&pMsg,sizeof(pMsg));
}
Exemplo n.º 10
0
int PartyMatchJoin(LPMSG_PARTYMATCHING_JOIN_REQ lpMsg)
{
	int iResult = 0;
	char szQuery[256];

#ifdef ZTEAMDB
	sprintf(szQuery,"EXEC PartyMatching_JoinRequest %d,%d,'%s','%s','%s',%d,%d,%d",
		lpMsg->RequestType,lpMsg->ServerCode,lpMsg->szPartyLeader,lpMsg->szPassword,
		lpMsg->szName,lpMsg->Level,lpMsg->Class,lpMsg->Gens);
#else
	sprintf(szQuery,"EXEC WZ_PM_JoinRequest %d,%d,'%s','%s','%s',%d,%d,%d",
		lpMsg->RequestType,lpMsg->ServerCode,lpMsg->szPartyLeader,lpMsg->szPassword,
		lpMsg->szName,lpMsg->Level,lpMsg->Class,lpMsg->Gens);
#endif

	if( !g_PartyMatchDB.Exec(szQuery) || g_PartyMatchDB.Fetch() == SQL_NO_DATA )
	{
		g_PartyMatchDB.Clear();
		return -8;
	}

	iResult = g_PartyMatchDB.GetInt("RequestResult");

	g_PartyMatchDB.Clear();
	return iResult;
}
Exemplo n.º 11
0
int PartyMatchRegister(LPMSG_PARTYMATCHING_REG_REQ lpMsg)
{
	char szQuery[256];
	int retCode = -1;

#ifdef ZTEAMDB
	sprintf(szQuery,"EXEC PartyMatching_Register %d, '%s', '%s', '%s', %d, %d, %d, %d, %d, %d",
		lpMsg->ServerCode,lpMsg->szName,lpMsg->szDesc,lpMsg->szPass,
		lpMsg->MinLevel,lpMsg->MaxLevel,lpMsg->MoveReqId,lpMsg->ClassInfo,lpMsg->btAutoAccept, lpMsg->Gens);
#else
	sprintf(szQuery,"EXEC WZ_PM_Register %d, '%s', '%s', '%s', %d, %d, %d, %d, %d",
		lpMsg->ServerCode,lpMsg->szName,lpMsg->szDesc,lpMsg->szPass,
		lpMsg->MinLevel,lpMsg->MaxLevel,lpMsg->MoveReqId,lpMsg->ClassInfo,lpMsg->btAutoAccept);
#endif

	if( !g_PartyMatchDB.Exec(szQuery) || g_PartyMatchDB.Fetch() == SQL_NO_DATA )
	{
		g_PartyMatchDB.Clear();
		return retCode;
	}

	retCode = g_PartyMatchDB.GetInt("RegResult");
	g_PartyMatchDB.Clear();
	return retCode;
}
Exemplo n.º 12
0
void ReqOlympChangeDate(LPOLP_REQ_SDEDCHANGE lpMsg,int aIndex)
{
	OLP_ANS_SDEDCHANGE pMsg;

	pMsg.h.c = PMHC_BYTE;
	pMsg.h.size = sizeof( pMsg );
	pMsg.h.headcode = 0x68;
	pMsg.h.subcode = 0x01;

	pMsg.iIndex = lpMsg->iIndex;
	pMsg.wMapSvrNum = lpMsg->wMapSvrNum;

	pMsg.wStartYear = lpMsg->wStartYear;
	pMsg.btStartMonth = lpMsg->btStartMonth;
	pMsg.btStartDay = lpMsg->btStartDay;
	pMsg.wEndYear = lpMsg->wEndYear;
	pMsg.btEndMonth = lpMsg->btEndMonth;
	pMsg.btEndDay = lpMsg->btEndDay;

	pMsg.iResult = FALSE;

	char szQuery[512];
	
	sprintf(szQuery,"EXEC WZ_OG_ModifyOlympSchedule %d, '%d-%d-%d 00:00:00', '%d-%d-%d 00:00:00'",
		lpMsg->wMapSvrNum,lpMsg->wStartYear,lpMsg->btStartMonth,lpMsg->btStartDay,
		lpMsg->wEndYear,lpMsg->btEndMonth,lpMsg->btEndDay);

	if( g_MyEventDB.Exec(szQuery) == TRUE && g_MyEventDB.Fetch() != SQL_NO_DATA )
	{
		pMsg.iResult = g_MyEventDB.GetInt("QueryResult");
	}
	g_MyEventDB.Clear();

	DataSend(aIndex,(LPBYTE)&pMsg,sizeof(pMsg));
}
Exemplo n.º 13
0
void EGAnsEnterDoubleGoer(LPBYTE aRecv,int aIndex)
{
	LPMSG_DOUBLEGOER_REQ_ENTER_EVENT lpMsg = (LPMSG_DOUBLEGOER_REQ_ENTER_EVENT)aRecv;


	PMSG_DOUBLEGOER_ANS_ENTER_EVENT pMsg;

	PHeadSetB((LPBYTE)&pMsg,0x40,sizeof(pMsg));
	pMsg.btPos = lpMsg->btPos;
	pMsg.aIndex = lpMsg->aIndex;
	pMsg.iResult = 0;

	char szQuery[512];

	wsprintf(szQuery,"SELECT DATEDIFF(mi,getdate(),NEXT_EVENT) as LeftHour FROM DG_ROOM WHERE CHAR_NAME = '%s' AND NEXT_EVENT > getdate()",lpMsg->szName);

	if( g_EventDB.Exec(szQuery) != FALSE )
	{
		if( g_EventDB.Fetch() != SQL_NO_DATA )
		{
			pMsg.iResult = g_EventDB.GetInt("LeftHour");
		}
	}
	else
	{
		pMsg.iResult = -1;
	}

	g_EventDB.Clear();


	DataSend(aIndex,(LPBYTE)&pMsg,sizeof(pMsg));
}
Exemplo n.º 14
0
void EGAnsPCBangUserConnect(LPBYTE aRecv,int aIndex)
{
	PMSG_PCBANGUSER_CONNECT* lpMsg = (PMSG_PCBANGUSER_CONNECT*)aRecv;

	char szAccountId[MAX_IDSTRING+1];
	szAccountId[MAX_IDSTRING] = '\0';
	memcpy(szAccountId,lpMsg->szAccountID,MAX_IDSTRING);

	char szQuery[256];
	sprintf(szQuery,"SELECT pcbang_id,pcbang_points FROM PCBANG_USER WHERE pcbang_id = '%s'",szAccountId);

	PMSG_PCBANG_USERDATA_GETINFO pMsg ={0};
	PHeadSetB((LPBYTE)&pMsg,0x23,sizeof(pMsg));
	pMsg.aIndex = lpMsg->aIndex;
	pMsg.Points = 0;

	if( g_EventDB.Exec(szQuery) == TRUE )
	{
		if( g_EventDB.Fetch() != SQL_NO_DATA )
		{
			pMsg.Points = g_EventDB.GetInt("pcbang_points");
		}
		else
		{
			g_EventDB.Clear();
			sprintf(szQuery,"INSERT INTO PCBANG_USER (pcbang_id,pcbang_points,reset_date) VALUES ('%s',0,getdate()+7)",szAccountId);
			g_EventDB.Exec(szQuery);
		}
	}

	g_EventDB.Clear();

	DataSend(aIndex,(LPBYTE)&pMsg,sizeof(pMsg));
}
Exemplo n.º 15
0
void LoadOlympInfo(LOLP_REQ_OLYMPINITDATA lpMsg,int aIndex)
{
	OLP_ANS_OLYMPINITDATA pMsg;

	pMsg.h.c = 0xC1;
	pMsg.h.size = sizeof(pMsg);
	pMsg.h.headcode = 0x68;
	pMsg.h.subcode = 0x00;

	pMsg.wMapSvrNum = lpMsg->wMapSvrNum;
	pMsg.iResult = FALSE;


	char szQuery[512];
	sprintf(szQuery,"EXEC WZ_OG_GetOlympTotalInfo %d, %d",
		lpMsg->wMapSvrNum,lpMsg->iOlympEventCycle);

	if( g_MyEventDB.Exec(szQuery) == TRUE && g_MyEventDB.Fetch() != SQL_NO_DATA )
	{
		pMsg.wStartYear = (WORD)g_MyEventDB.GetInt("SYEAR");
		pMsg.btStartMonth = (BYTE)g_MyEventDB.GetInt("SMONTH");
		pMsg.btStartDay = (BYTE)g_MyEventDB.GetInt("SDAY");
		pMsg.wEndYear = (WORD)g_MyEventDB.GetInt("EYEAR");
		pMsg.btEndMonth = (BYTE)g_MyEventDB.GetInt("EMONTH");
		pMsg.btEndDay = (BYTE)g_MyEventDB.GetInt("EDAY");
		pMsg.btFirstCreate = g_MyEventDB.GetInt("FIRST_CREATE");
		pMsg.iResult = TRUE;
	}

	g_MyEventDB.Clear();

	DataSend(aIndex,(LPBYTE)&pMsg,sizeof(pMsg));
}
Exemplo n.º 16
0
void CRainbowRaceDBCtrl::LoadRainbowRace( DPID dpId )
{
	CQuery* pQuery = GetQueryObject();
	char szQuery[QUERY_SIZE] = {0,};

	// m_nTimes 정보 가져오기.. 없으면 0
	sprintf( szQuery, "RAINBOWRACE_STR 'S1', '%02d', 0, '0000000', 0", g_appInfo.dwSys );
	if( pQuery->Exec( szQuery ) == FALSE )
	{ WriteLog( "%s, %d\t%s", __FILE__, __LINE__, szQuery ); return; }

	if( pQuery->Fetch() )
		m_nTimes = pQuery->GetInt( "nTimes" );
	if( m_nTimes == 0 )
	{
		m_nTimes = 1;
		return;
	}

	// 신청자 목록
	vector<DWORD> vec_dwNowPlayerId;
	sprintf( szQuery, "RAINBOWRACE_STR 'S2', '%02d', %d, '0000000', 0", g_appInfo.dwSys, m_nTimes );
	if( pQuery->Exec( szQuery ) == FALSE )
	{ WriteLog( "%s, %d\t%s", __FILE__, __LINE__, szQuery ); return; }

	while( pQuery->Fetch() )
		vec_dwNowPlayerId.push_back( static_cast<DWORD>( pQuery->GetInt( "m_idPlayer" ) ) );
	
	if( vec_dwNowPlayerId.size() == 0 )		// 현재 신청자가 없으면 다음 회 진행...
		m_nTimes++;

	// 이전 대회 랭킹
	vector<DWORD> vec_dwPrevRanking;
	if( m_nTimes > 1 )	// 현재가 2회 이상일때만..( 1회 이상 진행했을 경우 )
	{
		sprintf( szQuery, "RAINBOWRACE_STR 'S3', '%02d', %d, '0000000', 0", g_appInfo.dwSys, m_nTimes );
		if( pQuery->Exec( szQuery ) == FALSE )
		{ WriteLog( "%s, %d\t%s", __FILE__, __LINE__, szQuery ); return; }

		while( pQuery->Fetch() )
			vec_dwPrevRanking.push_back( static_cast<DWORD>( pQuery->GetInt( "m_idPlayer" ) ) );
	}

	CDPTrans::GetInstance()->SendRainbowRaceInfo( vec_dwNowPlayerId, vec_dwPrevRanking, dpId );
}
Exemplo n.º 17
0
int PartyMatchInfo(LPMSG_PARTYMATCHING_INFO_REQ lpMsg,PARTYMATCH_INFO* pBodyMsg,int& count,int& pages)
{
	char szQuery[256];
	long dwLen = 0;
	int TotalPages = 0;

#ifdef ZTEAMDB
	sprintf(szQuery,"EXEC PartyMatching_GetList ?,%d,%d,'%s',%d,%d,%d",
		lpMsg->RequestPage,lpMsg->ReqType,lpMsg->szSearch,
		lpMsg->Level,lpMsg->Class,lpMsg->Gens);
#else
	sprintf(szQuery,"EXEC WZ_PM_Listinfo ?,%d,%d,'%s',%d,%d,%d",
		lpMsg->RequestPage,lpMsg->ReqType,lpMsg->szSearch,
		lpMsg->Level,lpMsg->Class,lpMsg->Gens);
#endif

	g_PartyMatchDB.BindParameterIntOutput(1,&TotalPages,&dwLen);

	if( !g_PartyMatchDB.Exec(szQuery) )
	{
		g_PartyMatchDB.Clear();
		return -1;
	}

	count = 0;
	int fResult;

	while( (fResult = g_PartyMatchDB.Fetch()) != SQL_NO_DATA && fResult != SQL_ERROR )
	{
		pBodyMsg[count].btPartyCount = g_PartyMatchDB.GetInt("PartyCount");
		pBodyMsg[count].LeaderLevel = g_PartyMatchDB.GetInt("LeaderLevel");
		pBodyMsg[count].LeaderClass = g_PartyMatchDB.GetInt("LeaderClass");
		pBodyMsg[count].LeaderChannel = g_PartyMatchDB.GetInt("LeaderChannel");
		pBodyMsg[count].btClass = g_PartyMatchDB.GetInt("Class");
		pBodyMsg[count].MinLevel = g_PartyMatchDB.GetInt("MinLevel");
		pBodyMsg[count].MaxLevel = g_PartyMatchDB.GetInt("MaxLevel");
		pBodyMsg[count].MoveReqId = g_PartyMatchDB.GetInt("MoveReqId");
		pBodyMsg[count].Gens = g_PartyMatchDB.GetInt("Gens");

		char szTmpPassword[8] = {0};
		g_PartyMatchDB.GetStr("Password",szTmpPassword);
		pBodyMsg[count].btIsPassword = (strlen(szTmpPassword) > 1) ? TRUE : FALSE;

		g_PartyMatchDB.GetStr("PartyLeader",pBodyMsg[count].szLeader);
		g_PartyMatchDB.GetStr("Description",pBodyMsg[count].szDescription);
		count++;
	}

	while( g_PartyMatchDB.MoreResults() != SQL_NO_DATA )
	{

	}

	pages = TotalPages;
	g_PartyMatchDB.Clear();
	return 0;
}
Exemplo n.º 18
0
void CHousingDBCtrl::LoadHousingInfo( DWORD dwPlayerId, DPID dpId )
{
    CHousing* pHousing = CHousingMng::GetInstance()->GetHousing( dwPlayerId );
    if( !pHousing )
    {
        pHousing = CHousingMng::GetInstance()->CreateHousing( dwPlayerId );
        if( !pHousing )	// 생성 실패시 그냥 리턴..
            return;

        // DB 로딩...
        CQuery* pQuery = GetQueryObject();
        if( pQuery->Execute( "usp_Housing_Load '%02d', '%07d'", g_appInfo.dwSys, dwPlayerId ) )
        {
            while( pQuery->Fetch() )
            {
                HOUSINGINFO housingInfo;
                housingInfo.dwItemId = static_cast<DWORD>( pQuery->GetInt( "ItemIndex" ) );
                housingInfo.tKeepTime = static_cast<time_t>( pQuery->GetInt64( "tKeepTime" ) );
                housingInfo.bSetup = static_cast<BOOL>( pQuery->GetInt( "bSetup" ) );
                housingInfo.vPos.x = pQuery->GetFloat( "x_Pos" );
                housingInfo.vPos.y = pQuery->GetFloat( "y_Pos" );
                housingInfo.vPos.z = pQuery->GetFloat( "z_Pos" );
                housingInfo.fAngle = pQuery->GetFloat( "fAngle" );

                ItemProp* pItemProp = prj.GetItemProp( housingInfo.dwItemId );
                if( pItemProp && pItemProp->dwItemKind1 == IK1_HOUSING )
                    pHousing->SetFurnitureList( housingInfo, TRUE );
            }

            if( pQuery->MoreResults() )
            {
                while( pQuery->Fetch() )
                    pHousing->SetVisitAllow( pQuery->GetInt( "f_idPlayer" ), TRUE );
            }
        }
    }

    // 하우징 정보를 월드서버에 전달...
    CDPTrans::GetInstance()->SendHousingLoadInfo( dwPlayerId, pHousing, dpId );
}
Exemplo n.º 19
0
void DGPartyMatchReqList(PARTYMATCH_GDREQ_REQUESTLIST* lpData, int aIndex)
{
	const int MaxSize = sizeof(PARTYMATCH_DGANS_REQUESTLIST_COUNT) + sizeof(PARTYMATCH_DGANS_REQUESTLIST_INFO) * 80;
	BYTE Buffer[MaxSize + 1] = { 0 };
	int Offset = sizeof(PARTYMATCH_DGANS_REQUESTLIST_COUNT);
	// ----
	PARTYMATCH_DGANS_REQUESTLIST_COUNT* lpAnswerCount = (PARTYMATCH_DGANS_REQUESTLIST_COUNT*)Buffer;
	PARTYMATCH_DGANS_REQUESTLIST_INFO* lpAnswerInfo = (PARTYMATCH_DGANS_REQUESTLIST_INFO*)&Buffer[Offset];
	// ----
	lpAnswerCount->h.c = PMHC_WORD;
	lpAnswerCount->h.headcode = 0xEF;
	lpAnswerCount->h.subcode = 0x04;
	lpAnswerCount->h.sizeH = SET_NUMBERH(Offset);
	lpAnswerCount->h.sizeL = SET_NUMBERL(Offset);
	lpAnswerCount->UserIndex = lpData->UserIndex;
	// ----
	char Query[256];
	long Len = 0;
	// ----
	sprintf(Query, "EXEC PartyMatching_GetRequestList '%s'", lpData->PartyLeader);
	// ----
	if( !g_PartyMatchDB.Exec(Query) )
	{
		g_PartyMatchDB.Clear();
		DataSend(aIndex, (LPBYTE)lpAnswerCount, Offset);
		return;
	}
	// ----
	int Result, Count = 0;
	// ----
	while( (Result = g_PartyMatchDB.Fetch()) != SQL_NO_DATA && Result != SQL_ERROR )
	{
		g_PartyMatchDB.GetStr("Name", lpAnswerInfo[Count].Character);
		lpAnswerInfo[Count].Class = g_PartyMatchDB.GetInt("SenderClass");
		lpAnswerInfo[Count].Level = g_PartyMatchDB.GetInt("SenderLevel");
		Offset += sizeof(PARTYMATCH_DGANS_REQUESTLIST_INFO);
		Count++;
	}
	// ----
	while( g_PartyMatchDB.MoreResults() != SQL_NO_DATA )
	{
		
	}
	// ----
	g_PartyMatchDB.Clear();
	// ----
	lpAnswerCount->h.sizeH = SET_NUMBERH(Offset);
	lpAnswerCount->h.sizeL = SET_NUMBERL(Offset);
	lpAnswerCount->Count = Count;
	// ----
	DataSend(aIndex, (LPBYTE)Buffer, Offset);
}
Exemplo n.º 20
0
BOOL CCoupleController::Restore()
{
	CQuery* pQuery	= CreateQuery();
	if( !pQuery )
		return FALSE;
	if( !pQuery->Execute( "uspRestoreCouple %d", g_appInfo.dwSys ) )
	{
		Error( "couldn't execute uspRestoreCouple" );
		return FALSE;
	}
	while( pQuery->Fetch() )
	{
		int nExperience	= pQuery->GetInt( "nExperience" );
		u_long idFirst	= pQuery->GetInt( "idFirst" );
		u_long idSecond	= pQuery->GetInt( "idSecond" );
		CCouple* pCouple	= new CCouple( idFirst, idSecond );
		m_pHelper->Couple( pCouple );
		pCouple->AddExperience( nExperience );
	}

	pQuery->Clear();
	if( !pQuery->Execute( "uspRestorePropose %d", g_appInfo.dwSys ) )
	{
		Error( "couldn't execute uspRestorePropose" );
		return FALSE;
	}
	while( pQuery->Fetch() )
	{
		u_long idProposer	= pQuery->GetInt( "idProposer" );
		time_t tPropose	= pQuery->GetInt( "tPropose" );
		bool bResult	= m_pHelper->AddPropose( idProposer, tPropose );
		ASSERT( bResult );
	}
	
	SAFE_DELETE( pQuery );
	return FALSE;
}
Exemplo n.º 21
0
void ReqSummonPetInfo(LPBMSG_REQSUMMONINFO lpMsg,int aIndex)
{
char szQuery[256];
char szName[MAX_IDSTRING+1] = {0};

	memcpy(szName,lpMsg->szName,MAX_IDSTRING);

	g_Window.ServerLogAdd(ST_EVENTSERVER,"[SUMMON PET] Data request (%s)",szName);

	PBMSG_ANSSUMMONINFO pMsg;

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

	pMsg.aIndex = lpMsg->aIndex;
	strcpy(pMsg.szName,szName);

	pMsg.result = FALSE;

	sprintf(szQuery,"SELECT summon_level, summon_exp FROM T_SummonPet_Info WHERE memb__char = '%s'",szName);

	if( g_MyEventDB.Exec(szQuery) == TRUE )
	{
		pMsg.result = TRUE;

		pMsg.Level = 0;
		pMsg.Exp = 0;

		if( g_MyEventDB.Fetch() != SQL_NO_DATA )
		{
			pMsg.Level = g_MyEventDB.GetInt("summon_level");
			pMsg.Exp = g_MyEventDB.GetInt64("summon_exp");
		}
		else
		{
			g_MyEventDB.Clear();

			sprintf(szQuery,"INSERT INTO T_SummonPet_Info (memb__char,summon_level,summon_exp) VALUES ('%s',1,0)",szName);
			g_MyEventDB.Exec(szQuery);
		}
	}
	g_MyEventDB.Clear();

	DataSend(aIndex,(LPBYTE)&pMsg,sizeof( pMsg ));
}
Exemplo n.º 22
0
void EGAnsDeleteStones(LPMSG_REQ_DELETE_STONES lpMsg,int aIndex)
{
	char szQuery[256];
	char szAccount[MAX_IDSTRING+1] = {0};

	memcpy(szAccount,lpMsg->szUID,MAX_IDSTRING);
	PMSG_ANS_DELETE_STONES pMsg;

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

	strcpy(pMsg.szUID,szAccount);
	pMsg.szUID[10] = 0;

	pMsg.iINDEX = lpMsg->iINDEX;
	pMsg.bSUCCESS = FALSE;

	sprintf(szQuery,"SELECT StoneCount FROM T_BLOOD_CASTLE WHERE AccountID='%s'",szAccount);

	if( g_EventDB.Exec(szQuery) == TRUE && g_EventDB.Fetch() != SQL_NO_DATA )
	{
		int Stones = g_EventDB.GetInt("StoneCount");

		g_EventDB.Clear();

		if(Stones >= lpMsg->iStoneCount)
		{
			sprintf(szQuery,"UPDATE T_BLOOD_CASTLE SET StoneCount = StoneCount - %d WHERE AccountID='%s'",Stones,szAccount);

			if(g_EventDB.Exec(szQuery) == TRUE)
			{
				pMsg.bSUCCESS = TRUE;
				pMsg.iStoneCount = Stones;
			}
		}
	}

	g_EventDB.Clear();
	DataSend(aIndex,(LPBYTE)&pMsg,pMsg.h.size);
}
Exemplo n.º 23
0
int PartyMatchCancel(char* szName,int Type)
{
	int iResult = 0;
	char szQuery[256];

#ifdef ZTEAMDB
	sprintf(szQuery,"EXEC PartyMatching_Cancel '%s',%d",szName,Type);
#else
	sprintf(szQuery,"EXEC WZ_PM_Cancel '%s',%d",szName,Type);
#endif

	if( !g_PartyMatchDB.Exec(szQuery) || g_PartyMatchDB.Fetch() == SQL_NO_DATA )
	{
		g_PartyMatchDB.Clear();
		return 2;
	}

	iResult = g_PartyMatchDB.GetInt("CancelResult");
	g_PartyMatchDB.Clear();
	return iResult;
}
Exemplo n.º 24
0
int PartyMatchWaitInfo(char* szName,int& ServerCode,char* szPartyLeader)
{
	char szQuery[256];

#ifdef ZTEAMDB
	sprintf(szQuery,"EXEC PartyMatching_Waiting '%s'",szName);
#else
	sprintf(szQuery,"EXEC WZ_PM_Waiting '%s'",szName);
#endif

	if( !g_PartyMatchDB.Exec(szQuery) || g_PartyMatchDB.Fetch() == SQL_NO_DATA )
	{
		g_PartyMatchDB.Clear();
		return -1;
	}
	
	ServerCode = g_PartyMatchDB.GetInt("PartyChannel");
	g_PartyMatchDB.GetStr("PartyLeader",szPartyLeader);
	g_PartyMatchDB.Clear();
	return 0;
}
Exemplo n.º 25
0
void EGAnsRegEventChipInfo(LPMSG_REQ_REGISTER_EVENTCHIP lpMsg,int aIndex)
{
	char szQuery[256];
	char szAccount[MAX_IDSTRING+1] = {0};

	memcpy(szAccount,lpMsg->szUID,MAX_IDSTRING);

	PMSG_ANS_REGISTER_EVENTCHIP pMsg;

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

	pMsg.iINDEX = lpMsg->iINDEX;
	pMsg.Pos = lpMsg->Pos;

	strcpy(pMsg.szUID,szAccount);

	pMsg.szUID[10] = 0;
	pMsg.bSUCCESS = FALSE;

	sprintf(szQuery,"UPDATE T_MU2003_EVENT SET EventChips = EventChips + 1 WHERE AccountID = '%s'",szAccount);

	if(g_EventDB.Exec(szQuery) == TRUE)
	{
		g_EventDB.Clear();

		sprintf(szQuery,"SELECT EventChips FROM T_MU2003_EVENT WHERE AccountID='%s'",szAccount);

		if(g_EventDB.Exec(szQuery) == TRUE && g_EventDB.Fetch() != SQL_NO_DATA)
		{
			pMsg.bSUCCESS = TRUE;
			pMsg.nEVENT_CHIPS = g_EventDB.GetInt("EventChips");
		}
	}

	g_EventDB.Clear();

	DataSend(aIndex,(LPBYTE)&pMsg,pMsg.h.size);
}
Exemplo n.º 26
0
int IsUser(char *szId, char *pass, char * JoominNumber, char & Block, int & DBNumber)
{
	char szQuery[512];

	sprintf(szQuery,"SELECT memb_guid, memb___id, sno__numb, bloc_code from MEMB_INFO WHERE memb___id='%s'",
		szId);

	if(g_JoinServerDB.Exec(szQuery) == FALSE)
	{
		g_Window.ServerLogAdd(ST_JOINSERVER,"error-L3 : ID:'%s' PASS:'******'",szId, pass);
		g_JoinServerDB.Clear();
		return 2;
	}
	
	if(g_JoinServerDB.Fetch() == SQL_NO_DATA)
	{
		g_JoinServerDB.Clear();

		if( g_JSInfo.bAutoreg == TRUE && strlen(szId) >= g_JSInfo.AutoRegMinLength && strlen(pass) >= g_JSInfo.AutoRegMinLength )
		{
			if( g_JSInfo.bMD5 == TRUE )
			{
				sprintf(szQuery,"INSERT INTO MEMB_INFO (memb___id,memb__pwd,bloc_code,ctl1_code) VALUES ('%s',dbo.fn_md5('%s','%s'),0,0)",
					szId,pass,szId);
			}
			else
			{
				sprintf(szQuery,"INSERT INTO MEMB_INFO (memb___id,memb__pwd,bloc_code,ctl1_code) VALUES ('%s','%s',0,0)",
					szId,pass);
			}

			if( g_JoinServerDB.Exec(szQuery) == FALSE )
			{
				g_Window.ServerLogAdd(ST_JOINSERVER,"error-L3 : ID:'%s' PASS:'******'",szId, pass);
				g_JoinServerDB.Clear();
				return 2;
			}

			g_JoinServerDB.Clear();
	
			sprintf(szQuery,"SELECT memb_guid, memb___id, sno__numb, bloc_code from MEMB_INFO WHERE memb___id='%s'",szId);
	
			if(g_JoinServerDB.Exec(szQuery) == FALSE)
			{
				g_Window.ServerLogAdd(ST_JOINSERVER,"error-L3 : ID:'%s' PASS:'******'",szId, pass);
				g_JoinServerDB.Clear();
				return 2;
			}

			if(g_JoinServerDB.Fetch() == SQL_NO_DATA)
			{
				g_JoinServerDB.Clear();
				return 2;
			}
		}
		else
		{
			return 2;
		}
	}

	DBNumber = g_JoinServerDB.GetInt("memb_guid");

	char szBlock[2]="";

	g_JoinServerDB.GetStr("sno__numb", JoominNumber);
	g_JoinServerDB.GetStr("bloc_code", szBlock);

	Block = szBlock[0];	

	if(g_JSInfo.bMD5 == TRUE)
	{
		BYTE btPass[16]={0};
		g_JoinServerDB.Clear();

		sprintf(szQuery,"SELECT memb__pwd FROM MEMB_INFO WHERE memb___id = '%s'",szId);
		if(g_JoinServerDB.ReadBlob(szQuery,btPass) <= 0)
		{
			g_JoinServerDB.Clear();
			return 0;
		}

		DWORD dwAccKey = MakeAccountKey(szId);
		MD5 pMD5Hash;

		if( pMD5Hash.MD5_CheckValue(pass, (char*)btPass, dwAccKey) == FALSE )
		{
			g_JoinServerDB.Clear();
			return 0;
		}
	}
	else
	{
		char szPass[MAX_IDSTRING+1] = {0};
		g_JoinServerDB.Clear();

		sprintf(szQuery,"SELECT memb__pwd FROM MEMB_INFO WHERE memb___id = '%s'",szId);

		if(g_JoinServerDB.Exec(szQuery) == FALSE || g_JoinServerDB.Fetch() == SQL_NO_DATA)
		{
			g_JoinServerDB.Clear();
			return 0;
		}

		g_JoinServerDB.GetStr("memb__pwd",szPass);
		g_JoinServerDB.Clear();

		if(strlen(szPass) < 1)
		{
			return 0;
		}

		if(strcmp(szPass,pass) != NULL)
		{
			return 0;
		}
	}

	g_JoinServerDB.Clear();
	return TRUE;
}
Exemplo n.º 27
0
int GetBill(int number,char* szId,SDHP_BILLSEARCH_RESULT * lpMsg)
{
	char szQuery[512];

	int iIndex = gObjSearchUser(szId);

	if(iIndex < 0 || iIndex >= MAX_USEROBJECT)
		return FALSE;

	int PayCode = 0;
	int LeftTime = -1;
#ifdef ZTEAMDB
	sprintf(szQuery,"SELECT PayCode,DATEDIFF(mi,GETDATE(),ExpireDate) as LeftTime,DATEPART(year,ExpireDate) as EYEAR,DATEPART(month,ExpireDate) as EMONTH,DATEPART(day,ExpireDate) as EDAY,DATEPART(hour,ExpireDate) as EHOUR,DATEPART(minute,ExpireDate) as EMINUTE FROM PremiumData WHERE AccountID = '%s'",szId);
#else
	sprintf(szQuery,"SELECT pay_code,DATEDIFF(mi,GETDATE(),ExpireDate) as LeftTime,DATEPART(year,ExpireDate) as EYEAR,DATEPART(month,ExpireDate) as EMONTH,DATEPART(day,ExpireDate) as EDAY,DATEPART(hour,ExpireDate) as EHOUR,DATEPART(minute,ExpireDate) as EMINUTE FROM MEMB_PREMIUM WHERE memb___id = '%s'",szId);
#endif

	if( g_JoinServerConnectDB.Exec(szQuery) == TRUE && g_JoinServerConnectDB.Fetch() != SQL_NO_DATA)
	{
		LeftTime = g_JoinServerConnectDB.GetInt("LeftTime");
#ifdef ZTEAMDB
		PayCode = g_JoinServerConnectDB.GetInt("PayCode");
#else
		PayCode = g_JoinServerConnectDB.GetInt("pay_code");
#endif
		int end_year = g_JoinServerConnectDB.GetInt("EYEAR");
		int end_month = g_JoinServerConnectDB.GetInt("EMONTH");
		int end_day = g_JoinServerConnectDB.GetInt("EDAY");
		int end_hour = g_JoinServerConnectDB.GetInt("EHOUR");
		int end_minute = g_JoinServerConnectDB.GetInt("EMINUTE");

		g_JoinServerConnectDB.Clear();

		if(LeftTime <= 0)
		{
			PayCode = 0;
			RemoveBill(szId);
		}
		else
		{
			if( gObj[iIndex].lpBill != NULL )
				delete gObj[iIndex].lpBill;

			gObj[iIndex].lpBill = new BillStruct;
			gObj[iIndex].lpBill->number = number;
			gObj[iIndex].lpBill->PayCode = PayCode;
			gObj[iIndex].lpBill->EndTime = LeftTime;

			lpMsg->EndTime = LeftTime;
			sprintf(lpMsg->EndDays,"%04d%02d%02d%02d%02d",end_year,end_month,end_day,end_hour,end_minute);

			g_Window.ServerLogAdd(ST_JOINSERVER,"[PREMIUM] Bill user add [%s] PayCode[%d] Ends:(%04d-%02d-%02d %02d:%02d)",szId,PayCode,end_year,end_month,end_day,end_hour,end_minute);
		}
	}
	else
	{
		g_JoinServerConnectDB.Clear();
		if( g_JSInfo.bPremiumBlock == TRUE )
		{
			PayCode = 0;
			RemoveBill(szId);
		}
	}
	return PayCode;
}
Exemplo n.º 28
0
BOOL CDbManager::ConvItemStart( void )
{
	int nCount	= 0;
	int nStarted	= 0;
	DWORD dwMaxConv	= 0;
	char* szSQL	= new char[40960];
	char lpString[300];
	char lpString1[300];

	CQuery* pQueryChar	= new CQuery;
	CQuery* pQuerySave	= new CQuery;
	if( ConvItemConnectDB( pQueryChar, pQuerySave ) == FALSE )
		return FALSE;

	InitConvItemDialog();
	
	AfxMessageBox( "ConvItemStart", MB_OK );
//////////////////////////////////////// Inventory Start ////////////////////////////////////////
	if( ( dwMaxConv = GetMaxInventory( szSQL, pQueryChar, pQuerySave ) ) == 0 )
		return FALSE;

	sprintf( lpString, "%d / %d", 0, dwMaxConv );
	UpdateConvItemDialog( "Inventory, Bank", lpString, "0 %%", 0 );
	if( CreateInvenBankView( szSQL, pQueryChar, pQuerySave ) == FALSE )
		return FALSE;
	// Inven, Bank Item 가지고 오기
	if( GetInventoryBankView( szSQL, pQueryChar, pQuerySave ) == FALSE )
		return FALSE;
	while( pQueryChar->Fetch() )
	{
		++nStarted;
		sprintf( lpString, "%d / %d", nStarted, dwMaxConv );
		sprintf( lpString1, "%d %", int( float( (float)nStarted / (float)dwMaxConv ) * 100.0f ) );
		UpdateConvItemDialog( "Inventory, Bank", lpString, lpString1, (int( float( (float)nStarted / (float)dwMaxConv ) * 100.0f )) );
		
		CMover* pMover	= new CMover;
		//GetUserInventoryBank( pMover, pQueryChar );
		// mirchang_100416 VERIFYSTRING use return value
		if( GetUserInventoryBank( pMover, pQueryChar ) == FALSE )
		{
			safe_delete( pMover );
			return FALSE;
		}
		// mirchang_100416

		if( InventoryBankConv( szSQL, pMover, pQueryChar, pQuerySave ) ) // SaveItem
		{
			if( SaveUserInventoryBank( szSQL, pMover, pQueryChar, pQuerySave ) == FALSE )
			{
				safe_delete( pMover );
				return FALSE;
			}
		}
		safe_delete( pMover );
	}
	if( DeleteInvenBankView( szSQL, pQueryChar, pQuerySave ) == FALSE )
		return FALSE;

//////////////////////////////////////// GuildBank Start ////////////////////////////////////////
	nStarted = 0;
	if( ( dwMaxConv = GetMaxGuildBank( szSQL, pQueryChar, pQuerySave ) ) == 0 )
		return FALSE;
	
	sprintf( lpString, "%d / %d", 0, dwMaxConv );
	UpdateConvItemDialog( "GuildBank", lpString, "0 %%", 0 );
	if( CreateGuildBankView( szSQL, pQueryChar, pQuerySave ) == FALSE )
		return FALSE;
	// Inven, Bank Item 가지고 오기
	if( GetGuildBankView( szSQL, pQueryChar, pQuerySave ) == FALSE )
		return FALSE;
	
	while( pQueryChar->Fetch() )
	{
		++nStarted;

		sprintf( lpString, "%d / %d", nStarted, dwMaxConv );
		sprintf( lpString1, "%d %", int( float( (float)nStarted / (float)dwMaxConv ) * 100.0f ) );
		UpdateConvItemDialog( "GuildBank", lpString, lpString1, (int( float( (float)nStarted / (float)dwMaxConv ) * 100.0f )) );
			
		CItemContainer<CItemElem>	GuildBank;	// 길드 창고
		int							nGuildId	= 0;
	
		GuildBank.SetItemContainer( ITYPE_ITEM, MAX_GUILDBANK );
		nGuildId		= pQueryChar->GetInt( "m_idGuild" );
		GetGuildBank( &GuildBank, pQueryChar );
		
		if( GuildBankConv( szSQL, nGuildId, &GuildBank, pQueryChar, pQuerySave ) )
		{
			if( SaveConvGuildBank( szSQL, nGuildId, &GuildBank, pQueryChar, pQuerySave ) == FALSE )
				return FALSE;
		}
	}
	if( DeleteGuildBankView( szSQL, pQueryChar, pQuerySave ) == FALSE )
		return FALSE;
	
	SAFE_DELETE( pQueryChar ); SAFE_DELETE( pQuerySave );
	return TRUE;
}