#include "SunClientPrecompiledHeader.h" #include "uiLottoMan.h" #include "InterfaceManager.h" #include "uiLottoWindow/uiLottoWindow.h" #include "uiLottoNumInput/uiLottoNumInput.h" #ifdef _DEV_VER #include "GlobalFunc.h" #endif//_DEV_VER #ifdef _NA_0_20100115_HEIM_LOTTO_TICKET_PURCHASE #include "Hero.h" #endif//_NA_0_20100115_HEIM_LOTTO_TICKET_PURCHASE //------------------------------------------------------------------------------ /** */ void uiLottoMan::NetworkProc( MSG_BASE * pMsg ) { } //------------------------------------------------------------------------------ /** */ void uiLottoMan::NetworkProcWorld(MSG_BASE * pMsg ) { //·Î¶ÇÆÐŶ¸¸ ó¸®ÇÑ´Ù if(pMsg->m_byCategory!=CW_LOTTO) return; TCHAR szTemp[INTERFACE_STRING_LENGTH]; TCHAR szMessage[INTERFACE_STRING_LENGTH]; switch (pMsg->m_byProtocol) { case CW_LOTTO_INFO_NAK: { // (³») ÇÏÀÓ ·Î¶Ç Á¤º¸ ÀÀ´ä MSG_CW_LOTTO_INFO_NAK *pRecvPacket = (MSG_CW_LOTTO_INFO_NAK *)pMsg; #ifdef _DEV_VER GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, _T("MSG_CW_LOTTO_INFO_NAK:%d"),pRecvPacket->bReason); #endif switch(pRecvPacket->bReason) { case MSG_CW_LOTTO_INFO_NAK::NOT_READY: { //5288: ´ç÷ÀÚ Ãß÷Áß¿¡´Â ÀÀ¸ðÇÒ¼ö¾ø½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(5288,szMessage); LottoMessage(szMessage,FALSE); } break; default: { //¾Ë¼ö¾ø´Â ¿¡·¯ÄÚµå _asm nop; } break; } } break; case CW_LOTTO_INFO_ACK: { #ifdef _DEV_VER GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, _T("MSG_CW_LOTTO_INFO_ACK")); #endif // (³») ÇÏÀÓ ·Î¶Ç Á¤º¸ ÀÀ´ä MSG_CW_LOTTO_INFO_ACK *pRecvPacket = (MSG_CW_LOTTO_INFO_ACK *)pMsg; uiLottoWindow* pLottoWindow= GET_CAST_DIALOG( uiLottoWindow, IM_LOTTO_MANAGER::LOTTO_WINDOW_DLG ); SetWaitPacket(FALSE); if(!pLottoWindow) break; //ÀÎÅÍÆäÀ̽º ¿­¾îÁØ´Ù.(´Ü¼ø¼ýÀÚÁ¤º¸¿äûÀ϶§´Â ¿­Áö¸»ÀÚ) if(pRecvPacket->bFlag) { pLottoWindow->ShowInterface(TRUE); //Ãß÷ÁßÀ϶§´Â ¹öưºñȰ¼º pLottoWindow->SetEnableWindow(pRecvPacket->bStatus ? (true):(false)); } SetLottoActive(pRecvPacket->bStatus); // ·Î¶ÇȰ¼ººñȰ¼º(Ãß÷Áß¿¡´ÂºñȰ¼º) SetLottoNumber(pRecvPacket->i64TotalAccum); // µ¿±âÈ­¸¦À§ÇØ ·Î¶ÇNPCµµ °»½Å //bFlag==falseÀϰæ¿ì ³ª¸ÓÁö ³»¿ëä¿ïÇÊ¿ä¾ø´Ù(â¾È¿­±â¶§¹®) if(!pRecvPacket->bFlag) break; m_LottoInfo.m_bNumTickets = pRecvPacket->bNumTickets; // ÇöÀç ¼ÒÁöÇϰí ÀÖ´Â º¹±Ç ¿ëÁö ¼ö pLottoWindow->SetItemNum(m_LottoInfo.m_bNumTickets); m_LottoInfo.m_i64TotalAccum = pRecvPacket->i64TotalAccum; // ÇöÀç ÃÑ Àû¸³¾× m_LottoInfo.m_wLottoDrawNum = pRecvPacket->wCurrentDrawNum; // ÇöÀç ȸÂ÷ //-------------------------------- // Áö³­È¸Â÷Á¤º¸°¡ÀÖÀ»¶§(±âº»Á¤º¸) //-------------------------------- // 1ȸÂ÷ ÀÀ¸ð¶§´Â Áö³­È¸ÀÚ Á¤º¸°¡ ¾ø±â¶§¹®¿¡ Àû¸³±Ý󸮺κÐÀÌ Ã³¸®¾ÈµÇ°í SetLottoBaseInfo()µµ È£Ãâ¾ÈµÊ, ÇöÀçÀÇ Àû¸³±Ý¾×ÀÌ UIâ¿¡ Ç¥½Ã µÇÁö ¸øÇÔ // ÇØ´ç ºÎºÐÀ» ó¸®Çϱâ À§ÇØ Àû¸³±Ý󸮺κаú SetLottoBaseInfo()È£Ãâ À§Ä¡¸¦ º¯°æÇÔ. ±×¸®°í if(pRecvPacket->bNumResultRecords>0) ÁÖ¼®Ã³¸®ÇÔ LOTTO_BASE_INFO baseinfo; memset(&baseinfo,0,sizeof(baseinfo)); //´ç÷¹øÈ£(UI´Â Çϳª¹Û¿¡ ¾øÀ½) if(pRecvPacket->bNumResultRecords>0) { memcpy(baseinfo.arLuckyNum,&pRecvPacket->results[0].bWinningNum,sizeof(baseinfo.arLuckyNum)); baseinfo.wDrawNum = pRecvPacket->results[0].wDrawNum; // ¸îȸÂ÷ baseinfo.WinnerHeim = pRecvPacket->results[0].i64Jackpot; // 1µî ´ç÷±Ý baseinfo.dwWinnerNum = pRecvPacket->results[0].bNumWinners; // 1µî ´ç÷ÀÚ¼ö } baseinfo.LottoHeim = m_LottoInfo.m_i64TotalAccum; // Àû¸³±Ý¾× pLottoWindow->SetLottoBaseInfo(baseinfo); //-------------------------------- // ³ªÀÇ ÀÀ¸ðÁ¤º¸°¡ ÀÖÀ»¶§ // ¼­¹ö¿¡¼­´Â ³»¸²Â÷¼øÀÇ·Î Á¤ÀÇµÇ // ¾îÁ®¼­ ¿È 2ȸÂ÷-1ȸÂ÷ ÀÌ·±½Ä //-------------------------------- if(pRecvPacket->bNumEntryRecords>0) { //LOTTO_APPLY_DATA Çϳª¿¡ °°ÀºÈ¸Â÷(wDrawNum)Á¤º¸ ÃÖ´ë5°³¾¿µé¾î°¥¼öÀÖ´Ù //¾Æ·¡±¸¹®Àº ¼­¹ö¿¡¼­ bNumEntryRecords°¹¼ö¸¸Å­ µ¥ÀÌÅͰ¡ ³¯¶ó¿À´Âµ¥ À̰͵éÀ» //ȸÂ÷º°·Î ±¸ºÐ»ðÀÔÇϱâÀ§ÇÑ ±¸¹®ÀÌ´Ù LOTTO_APPLY_DATA ApplyData; memset(&ApplyData,0,sizeof(ApplyData)); int nIndexCnt=0; int nDrawNum = pRecvPacket->entries[0].wDrawNum; for(int i=0;ibNumEntryRecords;++i) { //ȸÂ÷°¡ °°À»¶§´Â °°Àº°÷¿¡ Áý¾î³Ö´Â´Ù if(nDrawNum==pRecvPacket->entries[i].wDrawNum) { //nIndexCntÀÇ ÃÖ´ë°ªÀº 5°³ÀÌ´Ù ApplyData.wDrawNum = nDrawNum; if(nIndexCntentries[i].bPickedNum[0],sizeof(pRecvPacket->entries[i].bPickedNum)); ++nIndexCnt; ++ApplyData.byEntryCnt; } } else { //ȸÂ÷°¡ ¹Ù²î¾ú´Ù¸é ±âÁ¸±âÀԵȰŻðÀÔÇØÁÖ°í(InsertApplyInfo) //Áö±Ý À̵¥ÀÌÅÍ´Â ¾ÕºÎºÐ¿¡ »ðÀÔÇÑ´Ù pLottoWindow->InsertApplyInfo(ApplyData,TRUE); memset(&ApplyData,0,sizeof(ApplyData)); //¹øÈ£¸¦ °»½Å + À̰ǻðÀÔÇÑ´Ù nDrawNum = pRecvPacket->entries[i].wDrawNum; ApplyData.wDrawNum = nDrawNum; memcpy(&ApplyData.arNumInfo[0][0],&pRecvPacket->entries[i].bPickedNum[0],sizeof(pRecvPacket->entries[i].bPickedNum)); nIndexCnt=ApplyData.byEntryCnt =1; } } pLottoWindow->InsertApplyInfo(ApplyData,TRUE); } pLottoWindow->SetApplyInfo(); } break; case CW_LOTTO_TICKET_NTF: { //5291 º¹±Ç¿ëÁö¸¦ ȹµæ ÇÏ¿´½À´Ï´Ù. MSG_CW_LOTTO_TICKET_NTF *pRecvPacket = (MSG_CW_LOTTO_TICKET_NTF *)pMsg; m_LottoInfo.m_bNumTickets = pRecvPacket->bNumTickets; g_InterfaceManager.GetInterfaceString(5291,szMessage); LottoMessage(szMessage,FALSE); } break; case CW_LOTTO_ENTRY_ACK: { MSG_CW_LOTTO_ENTRY_ACK *pRecvPacket = (MSG_CW_LOTTO_ENTRY_ACK *)pMsg; //5295 ÀÀ¸ð¿¡ ¼º°øÇÏ¿´½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(5295,szMessage); LottoMessage(szMessage); uiLottoWindow* pLottoWindow= GET_CAST_DIALOG( uiLottoWindow, IM_LOTTO_MANAGER::LOTTO_WINDOW_DLG ); if(pLottoWindow) { //·Î¶Çâ¿¡ Á¤º¸¸¦ °»½ÅÇØÁØ´Ù. pLottoWindow->InsertLastApply(pRecvPacket->wDrawNum,pRecvPacket->bPickedNum); pLottoWindow->SetItemNum(pRecvPacket->bNumTickets); m_LottoInfo.m_bNumTickets =pRecvPacket->bNumTickets; #ifdef _NA_0_20100115_HEIM_LOTTO_TICKET_PURCHASE g_pHero->SetMoney( g_pHero->GetMoney() - pRecvPacket->i64TicketPrice ); #endif//_NA_0_20100115_HEIM_LOTTO_TICKET_PURCHASE } } break; case CW_LOTTO_ENTRY_NAK: { MSG_CW_LOTTO_ENTRY_NAK *pRecvPacket = (MSG_CW_LOTTO_ENTRY_NAK *)pMsg; #ifdef _DEV_VER GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, _T("CW_LOTTO_ENTRY_NAK:%d"),pRecvPacket->bReason); #endif //5296 ÀÀ¸ð°¡ ½ÇÆÐ ÇÏ¿´½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(5296,szMessage); LottoMessage(szMessage); switch(pRecvPacket->bReason) { case MSG_CW_LOTTO_ENTRY_NAK::NOT_READY:// ÇÏÀÓ ·Î¶Ç°¡ ÁøÇà ÁßÀÌ ¾Æ´Ô { //5288: ´ç÷ÀÚ Ãß÷Áß¿¡´Â ÀÀ¸ðÇÒ¼ö¾ø½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(5288,szMessage); LottoMessage(szMessage,FALSE); _asm nop; } break; case MSG_CW_LOTTO_ENTRY_NAK::OUT_OF_TICKET: // ÇÏÀÓ ·Î¶Ç ¿ëÁö ¾øÀ½ { //5289: º¹±Ç¿ëÁö°¡ ¾ø½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(5289,szMessage); LottoMessage(szMessage,FALSE); _asm nop; } break; case MSG_CW_LOTTO_ENTRY_NAK::NOT_ENOUGH_MONEY:// ±¸¸Å ±Ý¾× ºÎÁ·ÇÕ´Ï´Ù. { //551: ÇÏÀÓÀÌ ºÎÁ·ÇÕ´Ï´Ù. g_InterfaceManager.GetInterfaceString(eST_NOT_ENOUGH_MONEY,szMessage); LottoMessage(szMessage,FALSE); } break; default: { _asm nop; } break; } } break; case CW_LOTTO_ACCUM_BRD: { // ÇÏÀÓ ·Î¶Ç Àû¸³¾× °»½Å °øÁö(·Î¶Ç NPC±âÀÔ) MSG_CW_LOTTO_ACCUM_BRD *pRecvPacket = (MSG_CW_LOTTO_ACCUM_BRD *)pMsg; SetLottoNumber(pRecvPacket->i64TotalAccum); } break; case CW_LOTTO_COUNTDOWN_BRD: // ÇÏÀÓ ·Î¶Ç Ãß÷ Ä«¿îÆ®´Ù¿î °øÁö { MSG_CW_LOTTO_COUNTDOWN_BRD *pRecvPacket = (MSG_CW_LOTTO_COUNTDOWN_BRD *)pMsg; //5292 %dºÐ ÈÄ %dȸ ÇÏÀÓ ·Î¶Ç ´ç÷¹øÈ£¸¦ Ãß÷ÇÕ´Ï´Ù. g_InterfaceManager.GetInterfaceString(5292,szTemp); int nMin = pRecvPacket->wSeconds/60; Snprintf(szMessage, INTERFACE_STRING_LENGTH, szTemp, nMin, pRecvPacket->wDrawNum); LottoMessage(szMessage); } break; case CW_LOTTO_START_BRD: { // ÇÏÀÓ ·Î¶Ç Ãß÷/½ÃÀÛ °øÁö MSG_CW_LOTTO_START_BRD*pRecvPacket = (MSG_CW_LOTTO_START_BRD *)pMsg; //·Î¶Çâ¸ðµÎ´Ý±â SetLottoActive(TRUE); //·Î¶Çâ¸ðµÎ´Ý±â closeAllLottoDlg(); //5287 %dȸ ·Î¶Ç Ãß÷ÀÌ ½ÃÀ۵Ǿú½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(5287,szTemp); Snprintf(szMessage, INTERFACE_STRING_LENGTH, szTemp,pRecvPacket->wDrawNum); LottoMessage(szMessage); } break; case CW_LOTTO_FINISH_BRD: { // ÇÏÀÓ ·Î¶Ç Ãß÷/Á¾·á °øÁö MSG_CW_LOTTO_FINISH_BRD *pRecvPacket = (MSG_CW_LOTTO_FINISH_BRD *)pMsg; SetLottoActive(FALSE); //·Î¶Çâ¸ðµÎ´Ý±â closeAllLottoDlg(); //5293 %dȸ ÇÏÀÓ ·Î¶Ç ´ç÷¹øÈ£´Â %02d-%02d-%02d-%02d¹øÀÔ´Ï´Ù. g_InterfaceManager.GetInterfaceString(5293,szTemp); Snprintf(szMessage, INTERFACE_STRING_LENGTH, szTemp, pRecvPacket->wDrawNum, //¸îȸ pRecvPacket->bWinningNum[0], //ù¹øÂ° pRecvPacket->bWinningNum[1], //µÎ¹øÂ° pRecvPacket->bWinningNum[2], //¼¼¹øÂ° pRecvPacket->bWinningNum[3]); //³×¹øÂ° LottoMessage(szMessage); } break; } }