示例#1
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));
}
示例#2
0
/////////////////////////////////////////////////////////////////////////////
// COnStationApp construction
COnStationApp::COnStationApp()
{
#ifdef _DEBUG
	// TODO: add construction code here,
	// Place all significant initialization in InitInstance

	//Some static verifications of routines.  Check that all systems are
	//working.
	CJunctionBox::Test();
	ASSERT(GetAngleBetween(10.0f,70.0f)==40.0f);
	ASSERT(GetAngleBetween(350.0f,30.0f)==10.0f);
	ASSERT(GetAngleBetween(180.0f,40.0f)==110.0f);
	ASSERT(GetAngleBetween(40.0f,280.0f)==340.0f);
	ASSERT(GetAngleBetween(280.0f,40.0f)==340.0f);
	ASSERT(GetAngleBetween(190.0f,30.0f)==110.0f);
	ASSERT(WithinNDegrees(10.0f,20.0f,15.0f));
	ASSERT(WithinNDegrees(355.0f,5.0f,15.0f));
	ASSERT(WithinNDegrees(5.0f,355.0f,15.0f));
	ASSERT(!WithinNDegrees(5.0f,355.0f,9.0f));
	ASSERT(WithinNDegrees(90.0f,110.0f,21.0f));
	ASSERT(WithinNDegrees(110.0f,90.0f,21.0f));
	ASSERT(!WithinNDegrees(110.0f,90.0f,19.0f));
	ASSERT(!WithinNDegrees(90.0f,110.0f,19.0f));
	CQuery Q;
	Q.Verify();
#endif
}
示例#3
0
void EGAnsResetStoneInfo(LPMSG_REQ_RESET_EVENTCHIP lpMsg,int aIndex)
{
	char szQuery[256];
	char szAccount[MAX_IDSTRING+1] = {0};

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

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

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

	pMsg.bSUCCESS = FALSE;

	sprintf(szQuery,"UPDATE T_BLOOD_CASTLE SET Check_Code = 2 WHERE AccountID = '%s'",szAccount);

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

	g_EventDB.Clear();
	DataSend(aIndex,(LPBYTE)&pMsg,pMsg.h.size);
}
示例#4
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;
}
示例#5
0
void CustomQuest2ReqUser(PMSG_QUEST2_REQ_USER* lpMsg,int aIndex)
{
	char szName[MAX_IDSTRING+1];
	szName[MAX_IDSTRING] = '\0';

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

	PMSG_QUEST2_ANS_USER pMsg = {0};

	PHeadSubSetB((LPBYTE)&pMsg,0x65,0x11,sizeof(pMsg));

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

	char szQuery[256];
	sprintf(szQuery,"SELECT QUEST_DATA FROM T_CustomQuest2 WHERE CHAR_NAME = '%s'",szName);

	switch( g_MyEventDB.ReadBlob(szQuery,&pMsg.m_UserData) )
	{
	case 0:
		sprintf(szQuery,"INSERT INTO T_CustomQuest2 (CHAR_NAME,QUEST_DATA) VALUES ('%s',?)",szName);
		g_MyEventDB.WriteBlob(szQuery,&pMsg.m_UserData,sizeof(pMsg.m_UserData));
		break;
	case sizeof(pMsg.m_UserData):
		break;
	default:
		return;
	}

	DataSend(aIndex,(LPBYTE)&pMsg,sizeof(pMsg));
}
示例#6
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);
}
示例#7
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));
}
示例#8
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;
}
示例#9
0
void EGAnsPCBangUpdateUser(LPBYTE aRecv,int aIndex)
{
	PMSG_PCBANGUSER_SENDINFO* lpMsg = (PMSG_PCBANGUSER_SENDINFO*)aRecv;
	PMSG_PCBANGUSER_SENDINFO pMsg;

	char szAccountId[MAX_IDSTRING+1];

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

	PHeadSetB((LPBYTE)&pMsg,0x24,sizeof(pMsg));
	pMsg.aIndex = lpMsg->aIndex;
	pMsg.Point = lpMsg->Point;
	pMsg.btResult = 0;

	char szQuery[256];
	sprintf(szQuery,"UPDATE PCBANG_USER SET pcbang_points = %d WHERE pcbang_id = '%s'",
		lpMsg->Point,szAccountId);

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

	DataSend(aIndex,(LPBYTE)&pMsg,sizeof(pMsg));

}
示例#10
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));
}
示例#11
0
 virtual void* Main(void) {
     //for (int i = 0; i < 10; ++i) {
     for (;;) {
         try {
             CDatabase db("MSDEV");
             db.Connect();
             CQuery q = db.NewQuery("select serverproperty('servername')");
             q.Execute();
             LOG_POST("Thread " << m_Num << " connected to " << q.begin()[1].AsString());
             try {
                 q.SetSql("drop table #t");
                 q.Execute();
             }
             catch (CSDB_Exception&) {
                 //
             }
             q.SetSql("create table #t (tt varchar(100))");
             q.Execute();
             q.SetSql("insert into #t values (@tt)");
             for (int i = 0; i < 500; ++i) {
                 q.SetParameter("@tt", i, eSDB_String);
                 q.Execute();
             }
             SleepMilliSec(100);
         }
         catch (CSDB_Exception& ex) {
             LOG_POST("Error from SDBAPI in thread " << m_Num << ": " << ex);
         }
     }
     return NULL;
 }
示例#12
0
void EventServerInit()
{
g_bIsServer[ST_EVENTSERVER] = TRUE;

	g_ESInfo.TCPPort = GetPrivateProfileInt(ES_INISECTION,"TCPPort",44456,INI_FILE);
	GetPrivateProfileString(ES_INISECTION,"DSN","MU2003_EVENT_DB",g_ESInfo.dbDSN,sizeof(g_ESInfo.dbDSN),INI_FILE);
	GetPrivateProfileString(ES_INISECTION,"MyDSN","MuOnline",g_ESInfo.mydbDSN,sizeof(g_ESInfo.mydbDSN),INI_FILE);

	g_EventDB.S_TYPE = ST_EVENTSERVER;
	g_MyEventDB.S_TYPE = ST_EVENTSERVER;

	if( g_EventDB.Connect(3,g_ESInfo.dbDSN,SQLUser,SQLPass) == TRUE )
	{
		g_Window.LogAdd(Log::Info, "[ %s ] connection successful !",g_ESInfo.dbDSN);
	}

	if( g_MyEventDB.Connect(3,g_ESInfo.mydbDSN,SQLUser,SQLPass) == TRUE )
	{
		g_Window.LogAdd(Log::Info, "[ %s ] connection successful !",g_ESInfo.mydbDSN);
	}

	if(CreateGIocp(g_ESInfo.TCPPort,ST_EVENTSERVER) != TRUE)
	{
		g_Window.LogAdd(Log::Error, "Failed to start [ ST_EVENTSERVER ] on port [ %d ]",g_ESInfo.TCPPort);
	}
	else
	{
		g_Window.LogAdd(Log::Info, "[ EventServer ] created on port [ %d ]",g_ESInfo.TCPPort);
	}
}
void CSearchCommentsDialog::OnDisplayresults() 
{
	UpdateData(TRUE);
	CQuery typeQuery;
	CQuery bodyQuery;
	if (!typeQuery.SetQueryText(m_szTypeString))
	{
		return;
	}
	if (!bodyQuery.SetQueryText(m_szCommentText))
	{
		return;
	}
	CPtrArray resultArray;
	m_Folder->QuerySurveyComments(&resultArray,&typeQuery,&bodyQuery);
	if (resultArray.GetSize()==0)
	{
		AfxMessageBox(IDS_NOMATCHONSEARCH);
	}
	else
	{
		CSearchResultDialog SRD(m_pView,&resultArray);
		SRD.DoModal();
	}
}
示例#14
0
void DGPartyMatchRequestAnswer(PARTYMATCH_GDREQ_REQUESTANSWER* lpData, int aIndex)
{
	char Query[256];
	// ----
	PARTYMATCH_DGANS_REQUESTANSWER lpAnswer = { 0 };
	// ----
	lpAnswer.h.c = PMHC_BYTE;
	lpAnswer.h.headcode = 0xEF;
	lpAnswer.h.subcode = 0x05;
	lpAnswer.h.size = sizeof(PARTYMATCH_DGANS_REQUESTANSWER);
	lpAnswer.UserIndex = lpData->UserIndex;
	memcpy(lpAnswer.Character, lpData->Character, 10);
	lpAnswer.Type = lpData->Type;
	lpAnswer.Result = -1;
	// ----
	if( lpData->Type == 0 )
	{
		sprintf(Query, "DELETE FROM PartyMatching_List WHERE Name = '%s'", lpData->Character);
		// ----
		if( !g_PartyMatchDB.Exec(Query) )
		{
			g_PartyMatchDB.Clear();
			DataSend(aIndex, (LPBYTE)&lpAnswer, sizeof(PARTYMATCH_DGANS_REQUESTANSWER));
			return;
		}
		// ----
		g_PartyMatchDB.Clear();
		lpAnswer.Result = 1;
		DataSend(aIndex, (LPBYTE)&lpAnswer, sizeof(PARTYMATCH_DGANS_REQUESTANSWER));
	}
	// ----
	DataSend(aIndex, (LPBYTE)&lpAnswer, sizeof(PARTYMATCH_DGANS_REQUESTANSWER));
}
示例#15
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));
}
示例#16
0
void OlympResetPeriod(LPOLP_REQ_RESET lpMsg,int aIndex)
{
	char szQuery[512];
	sprintf(szQuery,"EXEC WZ_OG_ResetPeriod	%d",lpMsg->wMapSvrNum);

	g_MyEventDB.Exec(szQuery);
	g_MyEventDB.Clear();
}
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;
	}
}
示例#18
0
void CRainbowRaceDBCtrl::UpdateRanking( DWORD dwPlayerId, int nRanking )
{
	CQuery* pQuery = GetQueryObject();
	char szQuery[QUERY_SIZE] = {0,};

	// 완주한 유저를 랭킹 예약한다.
	sprintf( szQuery, "RAINBOWRACE_STR 'U1', '%02d', %d, '%07d', %d", g_appInfo.dwSys, m_nTimes, dwPlayerId, nRanking );
	if( pQuery->Exec( szQuery ) == FALSE )
	{ WriteLog( "%s, %d\t%s", __FILE__, __LINE__, szQuery ); return; }
}
示例#19
0
void CRainbowRaceDBCtrl::UpdateWinnersLosers()
{
	CQuery* pQuery = GetQueryObject();
	char szQuery[QUERY_SIZE] = {0,};

	// 랭킹예약자와 완주실패자를 저장한다.
	sprintf( szQuery, "RAINBOWRACE_STR 'U2', '%02d', %d, '0000000', 0", g_appInfo.dwSys, m_nTimes );
	if( pQuery->Exec( szQuery ) == FALSE )
	{ WriteLog( "%s, %d\t%s", __FILE__, __LINE__, szQuery ); return; }
}
示例#20
0
void CRainbowRaceDBCtrl::FailedUser( DWORD dwPlayerId )
{
	CQuery* pQuery = GetQueryObject();
	char szQuery[QUERY_SIZE] = {0,};

	// 레인보우레이스 시작시 접속안한 유저 실패처리
	sprintf( szQuery, "RAINBOWRACE_STR 'U3', '%02d', %d, '%07d', 0", g_appInfo.dwSys, m_nTimes, dwPlayerId );
	if( pQuery->Exec( szQuery ) == FALSE )
	{ WriteLog( "%s, %d\t%s", __FILE__, __LINE__, szQuery ); return; }
}
示例#21
0
void CRainbowRaceDBCtrl::Application( DWORD dwPlayerId )
{
	CQuery* pQuery = GetQueryObject();
	char szQuery[QUERY_SIZE] = {0,};

	// 등록한 신청자를 DB에 저장한다.
	sprintf( szQuery, "RAINBOWRACE_STR 'I1', '%02d', %d, '%07d', 0", g_appInfo.dwSys, m_nTimes, dwPlayerId );
	if( pQuery->Exec( szQuery ) == FALSE )
	{ WriteLog( "%s, %d\t%s", __FILE__, __LINE__, szQuery ); return; }
}
示例#22
0
文件: Page.cpp 项目: Yadoms/yadoms
   void CPage::updatePage(int pageId, const std::string& name, const int pageOrder)
   {
      CQuery qUpdate = m_databaseRequester->newQuery();
      qUpdate.Update(CPageTable::getTableName()).
         Set(CPageTable::getNameColumnName(), name, CPageTable::getPageOrderColumnName(), pageOrder).
         Where(CPageTable::getIdColumnName(), CQUERY_OP_EQUAL, pageId);

      if(m_databaseRequester->queryStatement(qUpdate) <= 0)
         throw shared::exception::CEmptyResult("No lines affected");
   }
示例#23
0
CQuery* CDbController::CreateQuery( void )
{
	CQuery* pQuery	= new CQuery;
	const char* pass	= CDbManager::GetInstance().DB_ADMIN_PASS_CHARACTER01;
	if( !pQuery->Connect( 3, DSN_NAME_CHARACTER01, DB_ADMIN_ID_CHARACTER01, pass ) )
	{
		::AfxMessageBox( "Can't connect db: CDbController.CreateQuery" );
		SAFE_DELETE( pQuery );
	}
	return pQuery;
}
示例#24
0
void ReqMarry(LPMSG_REQ_MARRYINFO lpMsg,int aIndex)
{
	char szQuery[256];
	char szName[MAX_IDSTRING+1] = {0};
	char szTargetName[MAX_IDSTRING+1] = {0};

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

	PMSG_ANS_MARRY pMsg;

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

	pMsg.Result = FALSE;

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

	sprintf(szQuery,"SELECT * FROM wedding WHERE husband = '%s' OR wife = '%s'",
		szName,szName);

	if( g_MyEventDB.Exec(szQuery) == TRUE )
	{
		if( g_MyEventDB.Fetch() != SQL_NO_DATA )
		{
			pMsg.Result = 2;
			char szWife[11] = {0};
			char szHusband[11] = {0};

			g_MyEventDB.GetStr("husband",szHusband);
			g_MyEventDB.GetStr("wife",szWife);

			if( strcmp(szWife,szName) == NULL)
			{
				memcpy(pMsg.MarriedName,szHusband,MAX_IDSTRING);
			}
			else
			{
				memcpy(pMsg.MarriedName,szWife,MAX_IDSTRING);
			}
		}
		else
		{
			pMsg.Result = 1;
		}
	}

	g_MyEventDB.Clear();

	DataSend(aIndex,(LPBYTE)&pMsg,sizeof( pMsg ));
}
void MembStat_Disconnect(char * AccountId)
{
	char szQuery[256];

	g_JoinServerConnectDB.Clear();
	sprintf(szQuery,"exec WZ_DISCONNECT_MEMB '%s'", AccountId);

	if( g_JoinServerConnectDB.Exec(szQuery) == FALSE )
	{
		g_Window.ServerLogAdd(ST_JOINSERVER,"error-L1 : %s", szQuery);
	}
}
示例#26
0
void UpdateConnectState(PMSG_UPDATE_CONNECT_STAT* lpMsg)
{
	char szName[MAX_IDSTRING+1];
	memcpy(szName,lpMsg->szAccount,MAX_IDSTRING);
	szName[MAX_IDSTRING] = '\0';

	char szQuery[512];

	wsprintf(szQuery,"UPDATE MEMB_STAT SET ConnectStat = 2 WHERE memb___id = '%s'",szName);
	g_MyEventDB.Exec(szQuery);
	g_MyEventDB.Clear();
}
示例#27
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));
}
示例#28
0
void SaveNoblessInfo(LPMSG_REQ_SAVENOBLESSINFO lpMsg)
{
	char szName[MAX_IDSTRING+1];
	memcpy(szName,lpMsg->szName,MAX_IDSTRING);
	szName[MAX_IDSTRING] = '\0';

	char szQuery[512];
	sprintf(szQuery,"UPDATE NoblessInfo SET NoblessRank = %d, NoblessPts = %d WHERE CHAR_NAME = '%s'",
		lpMsg->NoblessRank,lpMsg->NoblessPts,lpMsg->szName);

	g_MyEventDB.Exec(szQuery);
	g_MyEventDB.Clear();
}
示例#29
0
void ReqSellFullItem(LPMSG_REQ_SELLFULLOPT lpMsg,int aIndex)
{
	char szName[MAX_IDSTRING+1];
	memcpy(szName,lpMsg->szAccount,MAX_IDSTRING);
	szName[MAX_IDSTRING] = '\0';

	char szQuery[512];
	sprintf(szQuery,"exec WZ_SellFullItem '%s', '%08X'",
		szName,lpMsg->dwSerial);

	g_MyEventDB.Exec(szQuery);
	g_MyEventDB.Clear();
}
示例#30
0
void ReqSaveSummonInfo(LPBMSG_REQSAVESUMMON lpMsg)
{
char szQuery[256];
char szName[MAX_IDSTRING + 1] = {0};

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

	sprintf(szQuery,"UPDATE T_SummonPet_Info SET summon_level = %d, summon_exp = %I64d WHERE memb__char = '%s'",
		lpMsg->level,lpMsg->exp,szName);

	g_MyEventDB.Exec(szQuery);
	g_MyEventDB.Clear();
}