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)); }
///////////////////////////////////////////////////////////////////////////// // 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 }
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); }
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; }
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)); }
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); }
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)); }
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; }
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)); }
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)); }
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; }
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(); } }
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)); }
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)); }
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; } }
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; } }
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; } }
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; } }
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; } }
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"); }
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; }
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); } }
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(); }
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 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(); }
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(); }
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(); }