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

📄 param_mapserver.h

📁 韩国英雄王座倒闭后流出来部分源代码
💻 H
字号:
//////////////////////////////////////////////////////////////////////////
//	2004. 7. 19 by kuma
//	2004. 08. 05 changed by jason
//	For Server Parameter into Registry - CHINA
//
//	-GAMEDB GAMEDBID GAMEDBPWD						<= Game DB
//	-DBIP GAMEDBIP									<= Game DB IP
//	-MAXUSER COUNT
//////////////////////////////////////////////////////////////////////////
#ifndef __PARAM_MAPSERVER_H__
#define __PARAM_MAPSERVER_H__

#include "command.h"
#include "RegCrypt.h"
#include "XRegKey.h"

#ifndef		ENCDLG_KEY
#define		ENCDLG_KEY				"zemi_travia"
#endif

///////// - 2004.7.19 by kuma - ///////////////////////////////
//	for read registry db parameter
///////////////////////////////////////////////////////////////

inline bool ReadParam_MapServer()
{
	////////////////////////////////////////////////////////////////////////
	//	角青 颇老 疙阑 掘澜
	////////////////////////////////////////////////////////////////////////
	TCHAR mfilename[MAX_PATH];
	TCHAR drv[MAX_PATH];
	TCHAR path[MAX_PATH];
	TCHAR fname[MAX_PATH];
	TCHAR ext[MAX_PATH];

	GetModuleFileName(NULL, mfilename, sizeof mfilename);
	_splitpath(mfilename, drv, path, fname, ext);
	char strRegName[512] = "SOFTWARE\\Zemi Interactive, Inc.\\";
	strcat( strRegName, fname );
	
	char szBuffer[MAX_PATH] = {0, };

	CRegCrypt crypt;
	
	//
	//	CHINA-DUKE 荐沥 2004.08.08
	//
	int nLen = sizeof(szBuffer);
	crypt.RegDecrypt(strRegName, "ACCOUNT DB ID", szBuffer, &nLen, ENCDLG_KEY);
	if(szBuffer[0] != '\0')
	{
		strcpy(_Module.m_szDBID, szBuffer);
	}
	//AfxMessageBox(_Module.m_szDBID);//TEST

	//
	//	CHINA-DUKE 荐沥 2004.08.08
	//
	memset(szBuffer, 0x00, sizeof(szBuffer));
	nLen = sizeof(szBuffer);
	crypt.RegDecrypt(strRegName, "ACCOUNT DB PWD", szBuffer, &nLen, ENCDLG_KEY);
	if(szBuffer[0] != '\0')
	{
		strcpy(_Module.m_szDBPWD, szBuffer);
	}
	//AfxMessageBox(_Module.m_szDBPWD);//TEST

	CXRegKey keySetting;

    LONG lRes = keySetting.Open(HKEY_LOCAL_MACHINE, strRegName, KEY_READ);
    if (lRes != ERROR_SUCCESS)
	{
		MessageBox( NULL, "registry open error", "Map Server", MB_OK );
        return false;
	}	

	// Get Allow Max User
	unsigned long dwMaxUser;	
	lRes = keySetting.QueryValue( dwMaxUser, _T("ALLOW MAX USER") ); 
    if (lRes == ERROR_SUCCESS)	
	{
		// 角力 蜡历荐甫 嘎眠扁 困秦 + 30阑 沁促. 
		_Module.m_dwMaxUser = dwMaxUser + 30 ;
	}

	
	//DEF_MAPINOUT_REGISTRY 
	unsigned long dwSaveAccountDB;	
	lRes = keySetting.QueryValue( dwSaveAccountDB, _T("SAVE ACCOUNTDB") ); 
    if (lRes == ERROR_SUCCESS)	
	{		
		_Module.m_dwSaveAccountDB = dwSaveAccountDB ;
	}
	
	keySetting.Close();

	return true;
}


///////// - 2004.7.19 by kuma - ///////////////////////////////
//	for write registry parameter
//
///////////////////////////////////////////////////////////////
inline bool SaveParam_MapServer( LPCTSTR lpszToken, LPCTSTR fname)
{	
	char strRegName[512] = "SOFTWARE\\Zemi Interactive, Inc.\\";
	strcat( strRegName, fname );

	char *delim	= " /";
	char *token	    = strtok((char *)(LPCTSTR)lpszToken, delim);

	if ( token )
	{
		//	GAME DB ID / PWD
		//	CHINA-DUKE 2004.08.08 函版
		if ( !strcmpi( token, _T( "-ACCOUNTDB" ) ) )
		{
			token = strtok( NULL, delim );
			if ( token )
			{
				CRegCrypt crypt;

				char* next = strtok( NULL, delim );
				if ( next )
				{
					if(!crypt.RegEncrypt(strRegName, "ACCOUNT DB PWD", next, strlen(next), ENCDLG_KEY))
						return false;
				}

				if(!crypt.RegEncrypt(strRegName, "ACCOUNT DB ID", token, next - token - 1, ENCDLG_KEY))
					return false;
			}

			return true;
		}

		// DB IP 
		if ( !strcmpi( token, _T( "-DBIP" ) ) )
		{
			token = strtok( NULL, delim );
			if ( token )
			{
				CXRegKey keySetting;

				LONG lRes = keySetting.Open(HKEY_LOCAL_MACHINE, strRegName, KEY_READ | KEY_WRITE);

				if (lRes != ERROR_SUCCESS)
				{
					MessageBox( NULL, "registry key open error", "Map Server", MB_OK );							
				}						

				lRes = keySetting.SetValue( token, _T("DB_IP") );
				if (lRes != ERROR_SUCCESS)
				{
					MessageBox( NULL, "Write Registry Error - DB IP", "Map Server", MB_OK );							
				}

				keySetting.Close();
			}

			return true;
		}

		// MAX USER
		else if ( !strcmpi( token, _T( "-MAXUSER" ) ) )
		{
			token = strtok( NULL, delim );
			if ( token )
			{
				DWORD dwMax = atoi( token );

				CXRegKey keySetting;

				LONG lRes = keySetting.Open(HKEY_LOCAL_MACHINE, strRegName, KEY_READ | KEY_WRITE);

				if (lRes != ERROR_SUCCESS)
				{
					MessageBox( NULL, "registry key open error", "Game Server", MB_OK );							
				}						

				lRes = keySetting.SetValue( dwMax, _T("ALLOW MAX USER") );
				if (lRes != ERROR_SUCCESS)
				{
					MessageBox( NULL, "Write Registry Error - MAX USER", "Game Server", MB_OK );							
				}

				keySetting.Close();
			}

			return true;
		}
		//DEF_MAPINOUT_REGISTRY
		else if ( !strcmpi( token, _T( "-SAVEACCOUNTDB" ) ) )
		{
			token = strtok( NULL, delim );
			if ( token )
			{
				DWORD dwBool = atoi( token );

				CXRegKey keySetting;

				LONG lRes = keySetting.Open(HKEY_LOCAL_MACHINE, strRegName, KEY_READ | KEY_WRITE);

				if (lRes != ERROR_SUCCESS)
				{
					MessageBox( NULL, "registry key open error", "Game Server", MB_OK );							
				}						

				lRes = keySetting.SetValue( dwBool, _T("SAVE ACCOUNTDB") );
				if (lRes != ERROR_SUCCESS)
				{
					MessageBox( NULL, "Write Registry Error - MAX USER", "Game Server", MB_OK );							
				}

				keySetting.Close();
			}

			return true;
		}
	}

	return false;
}





#endif

⌨️ 快捷键说明

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