📄 datacovertdlg1.cpp
字号:
{
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 + -