⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mhclient.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		else if( MAINGAME->GetCurStateNum() == eGAMESTATE_CHARSELECT ||
			MAINGAME->GetCurStateNum() == eGAMESTATE_CHARMAKE ||
			MAINGAME->GetCurStateNum() == eGAMESTATE_GAMEIN )
		{
			WINDOWMGR->MsgBox( MBI_EXIT, MBT_YESNO, CHATMGR->GetChatMsg( 280 ) );
			return 0;
		}
//		return 0;
*/
		break;

	case WM_SETFOCUS:
		{ 
			CURSOR->Process();
		}
		return 0;

//KES 030826
	case WM_SETCURSOR:
		{ 
			CURSOR->Process();			
		}
		break;	//DefWindowProc¢®¨¡¡Ë¢ç caption'¡Ë?¡Ë¢ç¡§u¢®¨ú default cursor¢®¢´I ¨ÏoU¨Ï¡ÀaA¡§¨£¡Ë¡ÍU.
		//return TRUE;

//KES 030826

	case WM_SYSKEYDOWN:		//Alt + F4 ¨Ïo¨Ï¢®Ao
		{
			if( wParam == VK_F4 )
			{
				if( MAINGAME->GetCurStateNum() == eGAMESTATE_TITLE )
				{
					break;		// ¢®¨¡OAO E¡ËcAI ¡§uE¢®¨¡i ~¢®¢´a
				}
				else if( MAINGAME->GetCurStateNum() == eGAMESTATE_CHARSELECT ||
					MAINGAME->GetCurStateNum() == eGAMESTATE_CHARMAKE ||
					MAINGAME->GetCurStateNum() == eGAMESTATE_GAMEIN )
				{
					WINDOWMGR->MsgBox( MBI_EXIT, MBT_YESNO, CHATMGR->GetChatMsg( 280 ) );
					return 0;
				}
			}
		}
		return 0;

	case WM_SYSCOMMAND:
		{
			if( wParam == SC_KEYMENU )
				return 0;
		}
		break;

	case WM_SYSKEYUP:		//AltA¢®¨¡, F10A¢®¨¡ ¡Ë¡þ¡§¨£A¨Ï¡þ¡Ë¡ÍA¢®¨¡I ¨Ïo¨Ï¢®Ao
		{
		}
		return 0;

	case MCIWNDM_NOTIFYMODE:
		switch(lParam)
		{
		case MCI_MODE_PLAY:
			//MessageBox( hWnd, "Play", "MCI", MB_OK );
			break;
		case MCI_MODE_STOP:
			//MessageBox( hWnd, "Stop", "MCI", MB_OK );
			SERVERCONNECT->EndShowLogoAVI();
			break;
		}
		return 0;

#ifdef _GMTOOL_
	case WM_MOVE:
		//xPos = (int)(short) LOWORD(lParam);   // horizontal position 
		//yPos = (int)(short) HIWORD(lParam);   // vertical position
		GMTOOLMGR->SetPositionByMainWindow();
		break;
#endif

	case WM_CREATE:
		{
#ifdef _GMTOOL_
			INITCOMMONCONTROLSEX icex;
			icex.dwSize = sizeof( icex );
			icex.dwICC	= ICC_DATE_CLASSES;
			InitCommonControlsEx( &icex );
#endif
/*
#ifdef TAIWAN_LOCAL
			HWND hWndIme = ImmGetDefaultIMEWnd( hWnd );
			SendMessage( hWndIme, WM_IME_CONTROL, IMC_CLOSESTATUSWINDOW, 0 );
			//HIMC hImc = ImmGetContext( hWnd );
			//DWORD dwConversion, dwSentence;
			//ImmGetConversionStatus( hImc, &dwConversion, &dwSentence );
			//dwConversion |= IME_CMODE_NOCONVERSION;
			//dwSentence |= IME_SMODE_SINGLECONVERT;
			//ImmSetConversionStatus( hImc, dwConversion, dwSentence );
			//ImmReleaseContext( hWnd, hImc );
#endif
*/
		}
		break;
	}
	
	return DefWindowProc(hWnd, message, wParam, lParam);
}



// Mesage handler for about box.
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
		case WM_INITDIALOG:
				return TRUE;

		case WM_COMMAND:
			if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) 
			{
				EndDialog(hDlg, LOWORD(wParam));
				return TRUE;
			}
			break;
	}
    return FALSE;
}


BOOL GetPatchVersion()
{
	CMHFile file;
	if(!file.Init("MHVerInfo.ver", "r"))
		return FALSE;
	strcpy(g_PATCHVERSION, file.GetString());

	return TRUE;
}

/*
BOOL CheckParameter(LPSTR parameter)
{
	char * token = strtok(parameter, " ");
	if(token == NULL) return FALSE;
	strcpy(g_DistributeAddr, token);
	token = strtok(NULL, " ");
	if(token == NULL) return FALSE;
	g_DistributePort = atoi(token);
	token = strtok(NULL, " ");
	if(token == NULL) return TRUE;
	GAMERESRCMNGR->m_GameDesc.dispInfo.bWindowed = atoi(token);
	
	return TRUE;
}
*/

BOOL EnterClientApplication()
{
//taiyo
    g_hMap = CreateFileMapping((HANDLE)0xFFFFFFFF, NULL, PAGE_READWRITE, 0, 1024, "MHOnline Client Application");
    if(g_hMap != NULL && GetLastError() == ERROR_ALREADY_EXISTS) 
    { 
		CloseHandle(g_hMap); 
		g_hMap = NULL;
		return FALSE;
    }

/*
	HANDLE hMutex = CreateMutex( NULL, FALSE, "MHOnline Client Application" );	<--- AI¢®¢´¡Ë¡þ¢®¨¡O CI¡Ë¡ÍA¢®¨¡IAI ¡Ë¡Ío ¢®¨¡¢®I¡Ë¡ÍUCIAo ¡§uE:¢®¨¡¡Ë¢ç? KES

	if( GetLastError() == ERROR_ALREADY_EXISTS )
		return FALSE;
*/

	
	return TRUE;
}


void LeaveClientApplication()
{//taiyo
	if(g_hMap)
	{
		CloseHandle(g_hMap);
		g_hMap = NULL;
	}	
}


//pjslocal
#ifdef TAIWAN_LOCAL
int is_big5(BYTE *str)
{
	if( str[0] & 0x80 )
	{
		if ( str[0] == 0xa2)
		{
			if( str[1]>= 0xaf && str[1]<= 0xb8 )
				return 1;
			else if( str[1] >= 0xcf && str[1] <= 0xff )
				return 1;
		} 
		if ( str[0] == 0xa3)
		{
			if( str[1]>=0x43 && str[1]<=0xff )
				return 1;
		}

		if ( str[0] == 0xa4)
		{
			if( str[1] >= 0x40 && str[1] <= 0xff )
				return 1;
		}

		if ( str[0] >= 0xa5 && str[0] <= 0xc5 )
			return 1;

		if ( str[0] == 0xc6 )
		{
			if( str[1] >= 0x00 && str[1] <= 0x7e )
				return 1;
		}
	}
	else
	{
		return 1;
	}
	return 0;
}
/*
#else
//////////////
int is_hangul(BYTE *str)
{
	if( str[0] & 0x80)// 1000 0000 //b0 = 1011 0000//c8=1100 1000// a1=1010 0001 // fe=1111 1110 //
	{
		if (str[0] >= 0xb0 && str[0] <= 0xc8 && str[1] >= 0xa1 && str[1] <= 0xfe)  
			return 1;
	}
	else
		return 1;

	return 0;
}
*/
#endif

////////////////////////////////////////////////////////////////////////////////////////
// resource ¡§¢®u¡Ë¡Ío¡§uEAC ¡§¢®AAI ¢®¨¡E¢®ic(jsd)
///////////////////////////////////////////////////////////////////////////////////////
BOOL CheckResourceFile()
{
	HANDLE hSrch;
	WIN32_FIND_DATA wfd;
	SYSTEMTIME time;
	char Dir[MAX_PATH];
	char filename[MAX_PATH];
	BOOL bResult = TRUE;
	CMHFile file;
	char temp[256];
	WORD year, month, day, hour, min;	

	GetWindowsDirectory( Dir, MAX_PATH );
	strcat( Dir, "\\mfl.dat" );
		
	GetCurrentDirectory( MAX_PATH, filename );
	strcat( filename, "\\Resource\\*.bin" );
	hSrch = FindFirstFile( filename, &wfd );
	while( bResult )
	{
		FileTimeToSystemTime( &wfd.ftLastWriteTime, &time );

		///
		if( !file.Init( Dir, "rt", MHFILE_FLAG_DONOTDISPLAY_NOTFOUNDERROR ) )
		{
			file.Release();
			goto filesave;
		}
		while( !file.IsEOF() )
		{
			file.GetString( temp );
			if( strcmp( wfd.cFileName, temp ) == 0 )
			{
				year = file.GetWord();
				month = file.GetWord();
				day = file.GetWord();
				hour = file.GetWord();
				min = file.GetWord();
				
				if( year != time.wYear || month != time.wMonth || day != time.wDay ||
					hour != time.wHour || min != time.wMinute )
				{
					file.Release();
					return FALSE;
				}
				else
					break;
			}
		}
		file.Release();
		///		

		bResult = FindNextFile( hSrch, &wfd );
	}

	bResult = TRUE;
	GetCurrentDirectory( MAX_PATH, filename );
	strcat( filename, "\\Resource\\SkillArea\\*.bsad" );
	hSrch = FindFirstFile( filename, &wfd );
	while( bResult )
	{
		FileTimeToSystemTime( &wfd.ftLastWriteTime, &time );

		///
		if( !file.Init( Dir, "rt", MHFILE_FLAG_DONOTDISPLAY_NOTFOUNDERROR ) )
		{
			file.Release();
			goto filesave;
		}
		while( !file.IsEOF() )
		{
			file.GetString( temp );
			if( strcmp( wfd.cFileName, temp ) == 0 )
			{
				year = file.GetWord();
				month = file.GetWord();
				day = file.GetWord();
				hour = file.GetWord();
				min = file.GetWord();
				
				if( year != time.wYear || month != time.wMonth || day != time.wDay ||
					hour != time.wHour || min != time.wMinute )
				{
					file.Release();
					return FALSE;
				}
				else
					break;
			}
		}
		file.Release();
		///		

		bResult = FindNextFile( hSrch, &wfd );
	}

	return TRUE;

filesave:
	SaveFileList();
	return TRUE;
}

void ChangeVerInfo()
{
	char temp[256];
	FILE* fp = fopen( "MHVerInfo.ver", "r" );
	if( fp == NULL )
		return;
	fscanf( fp, "%s", temp );
	fclose( fp );

	temp[10] = NULL;
	fp = fopen( "MHVerInfo.ver", "w" );
	if( fp == NULL )
		return;
	fprintf( fp, "%s%s", temp, "01" );
	fclose( fp );
}

BOOL SaveFileList()
{
	DWORD count = 1;
	HANDLE hSrch;
	WIN32_FIND_DATA wfd;
	SYSTEMTIME time;
	char Dir[MAX_PATH];
	char filename[MAX_PATH];
	BOOL bResult = TRUE;
	
	GetWindowsDirectory( Dir, MAX_PATH );
	strcat( Dir, "\\mfl.dat" );
	FILE* fp = fopen( Dir, "w" );
	if( fp == NULL )
	{
		fclose( fp );
		return FALSE;
	}

	GetCurrentDirectory( MAX_PATH, filename );
	strcat( filename, "\\Resource\\*.bin" );
	hSrch = FindFirstFile( filename, &wfd );
	while( bResult )
	{
		FileTimeToSystemTime( &wfd.ftLastWriteTime, &time );
		fprintf( fp, "%d %s\t", count, wfd.cFileName );
		fprintf( fp, "%4d %02d %02d %02d %02d\n", time.wYear, time.wMonth, time.wDay, time.wHour, time.wMinute );
		bResult = FindNextFile( hSrch, &wfd );
		++count;
	}
	
	bResult = TRUE;
	GetCurrentDirectory( MAX_PATH, filename );
	strcat( filename, "\\Resource\\SkillArea\\*.bsad" );
	hSrch = FindFirstFile( filename, &wfd );
	while( bResult )
	{
		FileTimeToSystemTime( &wfd.ftLastWriteTime, &time );
		fprintf( fp, "%d %s\t", count, wfd.cFileName );
		fprintf( fp, "%4d %02d %02d %02d %02d\n", time.wYear, time.wMonth, time.wDay, time.wHour, time.wMinute );
		bResult = FindNextFile( hSrch, &wfd );
		++count;
	}

	fclose( fp );

	return TRUE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -