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

📄 datacovertdlg1.cpp

📁 网络游戏魔域源代码 测试可以完整变异
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		{
			sprintf("打开%s->%s->%s错误,程序退出!", szIniFile, szTitle, szSubTitle);
			this->AddMsg(szMsg);
			fclose(fp);
			return;
		}
		DWORD dwTimeInterval;
		int nData;
		sprintf(szSubTitle, "TimeInterval");
		if(!::IniDataGet(szIniFile, szTitle, szSubTitle, nData))
		{
			sprintf("打开%s->%s->%s错误,程序退出!", szIniFile, szTitle, szSubTitle);
			this->AddMsg(szMsg);
			fclose(fp);
			return;
		}
		dwTimeInterval = nData;
		DWORD dwCheck1 = nActionIndex * 2 + dwTimeInterval + i;
		DWORD dwCheck2 = i*dwCheck1 + nActionIndex*dwTimeInterval - i;
		DWORD dwCheck3 = dwCheck1*nActionIndex + dwCheck2*7 + dwTimeInterval*i;
		ActionFileImage.nActionIndex = nActionIndex;
		ActionFileImage.dwTimeInterval = dwTimeInterval;
		ActionFileImage.dwCheck1 = dwCheck1;
		ActionFileImage.dwCheck2 = dwCheck2;
		ActionFileImage.dwCheck3 = dwCheck3;
		fwrite(&ActionFileImage, sizeof(ActionFileImage), 1, fp);
	}
	fclose(fp);
*/
	sprintf(szMsg, "成功转换%s,共有动作%d个,生成文件位于%s!", szIniFile, dwAmount, szDataFile);
	this->AddMsg(szMsg);
}


void CDataCovertDlg::OnMenuitemUserhelpinfoC() 
{
	// TODO: Add your command handler code here
	this->AddMsg("UserHelpInfo.ini>>>>UserHelpInfo.dat");
	const char szIniFile[] = "ini/UserHelpInfo.ini";
	char	szTitle[64];
	char	szSubTitle[64];
	char	szStr[512];
	int		nData;
	int		i;
	string	str;
	//Part1: header ...
	DWORD dwInfoAmount = 0;
	strcpy(szTitle, "Header");
	strcpy(szSubTitle, "HelpInfoAmount");
	::IniDataGet(szIniFile, szTitle, szSubTitle, nData);
	dwInfoAmount = nData;

	//Part2: default info ...
	UserHelpInfo* pInfo = new UserHelpInfo;
	MYASSERT(pInfo);
	DWORD dwStrAmount = 0;
	strcpy(szTitle, "DefaultInfo");
	strcpy(szSubTitle, "HelpLineAmount");
	::IniDataGet(szIniFile, szTitle, szSubTitle, nData);
	dwStrAmount = nData;
	for(i = 0; i < dwStrAmount; i ++)
	{
		sprintf(szSubTitle, "Line%d", i);
		::IniStrGet(szIniFile, szTitle, szSubTitle, szStr);
		str = szStr;
		pInfo->m_setStr.push_back(str);
	}
	m_setUserHelpInfo.push_back(pInfo);

	//Part3: text ...
	for(i = 0; i < dwInfoAmount; i ++)
	{
		UserHelpInfo* pInfo = new UserHelpInfo;
		MYASSERT(pInfo);

		sprintf(szTitle, "HelpInfo%d", i);

		strcpy(szSubTitle, "Profession");
		::IniDataGet(szIniFile, szTitle, szSubTitle, nData);
		pInfo->nProfession = nData;

		strcpy(szSubTitle, "MinLevel");
		::IniDataGet(szIniFile, szTitle, szSubTitle, nData);
		pInfo->nMinLevel = nData;

		strcpy(szSubTitle, "MaxLevel");
		::IniDataGet(szIniFile, szTitle, szSubTitle, nData);
		pInfo->nMaxLevel = nData;

		strcpy(szSubTitle,"Sex");
		::IniDataGet(szIniFile,szTitle,szSubTitle,nData);
		pInfo->nSex = nData;
		
		strcpy(szSubTitle,"MapId");
		::IniDataGet(szIniFile,szTitle,szSubTitle,nData);
		pInfo->nMapId = nData;

		strcpy(szSubTitle,"Status");
		::IniDataGet(szIniFile,szTitle,szSubTitle,nData);
		pInfo->nStatus = nData;

		strcpy(szSubTitle,"StatusLevel");
		::IniDataGet(szIniFile,szTitle,szSubTitle,nData);
		pInfo->nStatusLevel = nData;

		strcpy(szSubTitle,"ItemTypeId");
		::IniDataGet(szIniFile,szTitle,szSubTitle,nData);
		pInfo->nItemType = nData;

		strcpy(szSubTitle,"MagicId");
		::IniDataGet(szIniFile,szTitle,szSubTitle,nData);
		pInfo->nMagicId = nData;

		strcpy(szSubTitle,"MagicLevel");
		::IniDataGet(szIniFile,szTitle,szSubTitle,nData);
		pInfo->nMagicLevel = nData;

		strcpy(szSubTitle, "HelpLineAmount");
		::IniDataGet(szIniFile, szTitle, szSubTitle, nData);
		dwStrAmount = nData;

		for(int j = 0; j < dwStrAmount; j ++)
		{
			sprintf(szSubTitle, "Line%d", j);
			::IniStrGet(szIniFile, szTitle, szSubTitle, szStr);
			str = szStr;
			pInfo->m_setStr.push_back(str);
		}
		m_setUserHelpInfo.push_back(pInfo);
	}
	
	// write ...
	const char szDataFile[] = "ini/UserHelpInfo.dat";
	FILE* fp = fopen(szDataFile, "wb");
	if(!fp)
		this->AddMsg("打开文件 ini/UserHelpInfo.dat 写错误");
	// header
	char szHeader[32]="UserHelpInfo";
	fwrite(szHeader, sizeof(char), 32, fp);
	// version
	DWORD dwVersion = 1000;
	fwrite(&dwVersion, sizeof(DWORD), 1, fp);
	// amount ...
	DWORD dwRecordAmount = m_setUserHelpInfo.size();
	fwrite(&dwRecordAmount, sizeof(DWORD), 1, fp);
	for(DWORD dwCounter = 0; dwCounter < dwRecordAmount; dwCounter++)
	{
		UserHelpInfo* pInfo = m_setUserHelpInfo[dwCounter];
		if(pInfo)
		{
			fwrite(&pInfo->nMaxLevel, sizeof(int), 1, fp);
			fwrite(&pInfo->nMinLevel, sizeof(int), 1, fp);
			fwrite(&pInfo->nProfession, sizeof(int), 1, fp);
			fwrite(&pInfo->nSex,sizeof(int),1,fp);
			fwrite(&pInfo->nMapId,sizeof(int),1,fp);
			fwrite(&pInfo->nStatus,sizeof(int),1,fp);
			fwrite(&pInfo->nStatusLevel,sizeof(int),1,fp);
			fwrite(&pInfo->nItemType,sizeof(int),1,fp);
			fwrite(&pInfo->nMagicId,sizeof(int),1,fp);
			fwrite(&pInfo->nMagicLevel,sizeof(int),1,fp);
			
			// record Help string ...
			DWORD dwStrAmount = pInfo->m_setStr.size();
			fwrite(&dwStrAmount, sizeof(DWORD), 1, fp);
			for(DWORD dwStrCounter = 0; dwStrCounter < dwStrAmount; dwStrCounter++)
			{
				// write length
				DWORD dwLength = pInfo->m_setStr[dwStrCounter].length()+1;
				fwrite(&dwLength, sizeof(DWORD), 1, fp);

				// write str
				fwrite(pInfo->m_setStr[dwStrCounter].c_str(), sizeof(char), dwLength, fp);
			}
		}
		SAFE_DELETE(pInfo);
	}
	m_setUserHelpInfo.clear();
	this->AddMsg("完成 ini/UserHelpInfo.dat");
	fclose(fp);
}

void CDataCovertDlg::OnMenuitemTipsC() 
{
	// TODO: Add your command handler code here
	this->AddMsg("Tips.ini>>>>Tips.dat");
	const char szIniFile[] = "ini/Tips.ini";
	char	szTitle[64];
	char	szSubTitle[64];
	char	szStr[512];
	int		nData;
	int		i;
	string	str;

	//Part1: header ...
	DWORD dwInfoAmount = 0;
	strcpy(szTitle, "Header");
	strcpy(szSubTitle, "Amount");
	::IniDataGet(szIniFile, szTitle, szSubTitle, nData);
	dwInfoAmount = nData;

	//Part2: text ...
	for(i = 0; i < dwInfoAmount; i ++)
	{
		TipInfo* pInfo = new TipInfo;
		MYASSERT(pInfo);
		//int nLineAmount;
		sprintf(szTitle, "Tip%d", i);
		sprintf(szSubTitle, "Amount");
		::IniDataGet(szIniFile, szTitle, szSubTitle, nData);
		for(int j = 0; j < nData; j ++)
		{
			sprintf(szSubTitle, "Line%d", j);
			::IniStrGet(szIniFile, szTitle, szSubTitle, szStr);
			pInfo->m_setStr.push_back(string(szStr));
		}
		m_setTipInfo.push_back(pInfo);
	}
	
	// write ...
	const char szDataFile[] = "ini/Tips.dat";
	FILE* fp = fopen(szDataFile, "wb");
	if(!fp)
		this->AddMsg("打开文件 ini/Tips.dat 写错误");
	// header
	char szHeader[32]="Tips";
	fwrite(szHeader, sizeof(char), 32, fp);
	// version
	DWORD dwVersion = 1000;
	fwrite(&dwVersion, sizeof(DWORD), 1, fp);
	// amount ...
	DWORD dwRecordAmount = m_setTipInfo.size();
	fwrite(&dwRecordAmount, sizeof(DWORD), 1, fp);

	for(DWORD dwCounter = 0; dwCounter < dwRecordAmount; dwCounter++)
	{
		TipInfo* pInfo = m_setTipInfo[dwCounter];
		if(pInfo)
		{
			// record string ...
			DWORD dwStrAmount = pInfo->m_setStr.size();
			fwrite(&dwStrAmount, sizeof(DWORD), 1, fp);
			for(DWORD dwStrCounter = 0; dwStrCounter < dwStrAmount; dwStrCounter++)
			{
				// write length
				DWORD dwLength = pInfo->m_setStr[dwStrCounter].length()+1;
				fwrite(&dwLength, sizeof(DWORD), 1, fp);

				// write str
				fwrite(pInfo->m_setStr[dwStrCounter].c_str(), sizeof(char), dwLength, fp);
			}
		}
		SAFE_DELETE(pInfo);
	}
	m_setTipInfo.clear();
	this->AddMsg("完成 ini/Tips.dat");
	fclose(fp);	
}

void CDataCovertDlg::OnMenuitemPetc() 
{
	// TODO: Add your command handler code here
	// ini/pet.ini
	this->AddMsg("Pet.ini>>>>Pet.dat");
	const char szIniFile[] = "ini/Pet.Ini";
	
	// load ini to buffer ...
	// buffer define ...

	vector<PetInfo> setPetInfo;
	
	// prepare...
	char szTitle[256];
	char szSubTitle[256];
	int i, j;
	// read header...
	int nAmount = 0;
	strcpy(szTitle, "Header");
	strcpy(szSubTitle, "Amount");
	if(!::IniDataGet(szIniFile, szTitle, szSubTitle, nAmount))
	{
		this->AddMsg("Header错误");
		return;
	}

	// read record...
	for(i = 0; i < nAmount; i ++)	
	{
		PetInfo infoPet;
		sprintf(szTitle, "Type%d", i);
		strcpy(szSubTitle, "LocateTargetMethodAmount");
		int nLocateTargetMethodAmount = 0;
		if(!::IniDataGet(szIniFile, szTitle, szSubTitle, nLocateTargetMethodAmount))
		{
			this->AddMsg("LocateTargetMethodAmount错误");
			return;
		}
		for(j = 0; j < nLocateTargetMethodAmount; j ++)
		{
			int nData;
			sprintf(szSubTitle, "LocateTargetMethod%d", j);
			if(!::IniDataGet(szIniFile, szTitle, szSubTitle, nData))
			{
				this->AddMsg("LocateTargetMethod错误");
				return;
			}
			infoPet.setLocateTargetMethod.push_back(nData);
		}
		int nData;
		strcpy(szSubTitle, "EnvMethod");
		if(!::IniDataGet(szIniFile, szTitle, szSubTitle, nData))
		{
			this->AddMsg("EnvMethod错误");
			return;
		}
		infoPet.nEnvMethod = nData;

		strcpy(szSubTitle, "Scale");
		if(!::IniDataGet(szIniFile, szTitle, szSubTitle, nData))
		{
			this->AddMsg("Scale错误");
			return;
		}
		infoPet.nScale = nData;

		strcpy(szSubTitle, "AttackRange");
		if(!::IniDataGet(szIniFile, szTitle, szSubTitle, nData))
		{
			this->AddMsg("AttackRange错误");
			return;
		}
		infoPet.nAttackRange = nData;

		strcpy(szSubTitle, "AttackInterval");
		if(!::IniDataGet(szIniFile, szTitle, szSubTitle, nData))
		{
			this->AddMsg("AttackInterval错误");
			return;
		}
		infoPet.dwAttackInterval = nData;

		strcpy(szSubTitle, "AddSize");
		if(!::IniDataGet(szIniFile, szTitle, szSubTitle, nData))
		{
			this->AddMsg("AddSize错误");
			return;
		}
		infoPet.nAddSize = nData;

		setPetInfo.push_back(infoPet);
		infoPet.setLocateTargetMethod.clear();
	}
	

	const char szDataFile[] = "ini/Pet.Dat";
	FILE* fData = fopen(szDataFile, "wb");
	if(!fData)
	{
		this->AddMsg("打开Pet.Dat错误");
		return;
	}

	// write amount ...
	nAmount = setPetInfo.size();
	fwrite(&nAmount, sizeof(int), 1, fData);
	for(i = 0; i < nAmount; i ++)
	{
		DWORD dwCheck = 0;
		int nData;
		PetInfo infoPet = setPetInfo[i];
		
		// write Method Amount ...
		DWORD dwSize = infoPet.setLocateTargetMethod.size();
		fwrite(&dwSize, sizeof(int), 1, fData);
		
		// write Method
		for(j = 0; j < infoPet.setLocateTargetMethod.size(); j++)
		{
			int nMethod = infoPet.setLocateTargetMethod[j];
			fwrite(&nMethod, sizeof(int), 1, fData);
			dwCheck += nMethod;
		}

		// others ...
		fwrite(&infoPet.nEnvMethod, sizeof(int), 1, fData);	
		fwrite(&infoPet.nAddSize, sizeof(int), 1, fData);	
		fwrite(&infoPet.nScale, sizeof(int), 1, fData);	
		fwrite(&infoPet.nAttackRange, sizeof(int), 1, fData);	
		fwrite(&infoPet.dwAttackInterval, sizeof(DWORD), 1, fData);	
		dwCheck = dwSize*dwCheck;
		dwCheck += infoPet.nEnvMethod + infoPet.setLocateTargetMethod.size() * 2 
						+ infoPet.nAddSize + infoPet.nAttackRange * infoPet.dwAttackInterval;
		fwrite(&dwCheck, sizeof(DWORD), 1, fData);	
	}
	fclose(fData);
	this->AddMsg("完成");
}

⌨️ 快捷键说明

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