Skilled Illusionist
- Joined
- Jun 22, 2017
- Messages
- 363
- Reaction score
- 557
this is small code used for edit CWScriptxx.cws
may struct not correct 100% but work!
Download:
GUI version:
may struct not correct 100% but work!
Download:
You must be registered to see links
GUI version:
You must be registered to see links
// DecryptCws.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include "stdafx.h"
#include <Windows.h>
#include <iostream>
#include "MemScript.h"
#include <vector>
#pragma pack(push, 1)
struct CWS_INFO
{
BYTE c1;
BYTE c2;
WORD c3;
float c4;
float c6;
float c7;
float c8;
float c9;
float c10;
};
#pragma pack(pop)
std::vector<CWS_INFO> m_CwsInfo;
bool LoadTxt(const char * path)
{
CMemScript * lpMemScript = new CMemScript;
if (!lpMemScript)
{
return false;
}
if (lpMemScript->SetBuffer((char*)path) == 0)
{
char aaaa[MAX_PATH] = { 0 };
wsprintfA(aaaa, "Could not find %s", path);
MessageBoxA(0, aaaa, 0, 0);
return false;
}
try
{
while (true)
{
if (lpMemScript->GetToken() == TOKEN_END)
{
break;
}
if (strcmp("end", lpMemScript->GetString()) == 0)
{
break;
}
CWS_INFO info;
memset(&info, 0, sizeof(info));
info.c1 = lpMemScript->GetNumber();
info.c2 = lpMemScript->GetAsNumber();
info.c3 = lpMemScript->GetAsNumber();
info.c4 = lpMemScript->GetAsFloatNumber();
info.c6 = lpMemScript->GetAsFloatNumber();
info.c7 = lpMemScript->GetAsFloatNumber();
info.c8 = lpMemScript->GetAsFloatNumber();
info.c9 = lpMemScript->GetAsFloatNumber();
info.c10 = lpMemScript->GetAsFloatNumber();
m_CwsInfo.push_back(info);
}
}
catch (...)
{
}
delete lpMemScript;
return true;
}
int main(int argc, char *argv[], char *envp[])
{
#if(TOOL_TYPE == 1)
if (LoadTxt("CWScript74.txt") == false)
{
return 0;
}
FILE *fileOut;
fopen_s(&fileOut, "CWScript74.cws", "wb");
if (!fileOut)
{
return 0;
}
int blocksize = sizeof(CWS_INFO);
fwrite("CWS", 4, 1, fileOut);
int Count = m_CwsInfo.size();
fwrite(&Count, 4, 1, fileOut);
for (std::vector<CWS_INFO>::iterator it = m_CwsInfo.begin(); it != m_CwsInfo.end(); it++)
{
fwrite(&it[0], blocksize, 1, fileOut);
}
fclose(fileOut);
#else
FILE *file;
fopen_s(&file, "CWScript74.cws", "rb");
if (!file)
{
MessageBoxA(0, "Could not find CWScript74.cws", 0, 0);
return 0;
}
char FileType[4];
int Count = 0;
fread(FileType, 4, 1, file);
fread(&Count, 4, 1, file);
int blocksize = sizeof(CWS_INFO);
for (int n = 0; n < Count; n++)
{
unsigned char * Buffer = new unsigned char[blocksize];
fread(Buffer, blocksize, 1, file);
m_CwsInfo.push_back(*(CWS_INFO*)Buffer);
delete[] Buffer;
}
fclose(file);
FILE *fileOut;
fopen_s(&fileOut, "CWScript74.txt", "wb");
if (!fileOut)
{
MessageBoxA(0, "Could not Save CWScript74.txt", 0, 0);
return 0;
}
for (std::vector<CWS_INFO>::iterator it = m_CwsInfo.begin(); it != m_CwsInfo.end(); it++)
{
fprintf(fileOut, "%d %d %d %g %g %g %g %g %g\n",
it->c1,
it->c2,
it->c3,
it->c4,
it->c6,
it->c7,
it->c8,
it->c9,
it->c10
);
}
fprintf(fileOut, "end\n");
fclose(fileOut);
#endif
return 0;
}
//
#include "stdafx.h"
#include <Windows.h>
#include <iostream>
#include "MemScript.h"
#include <vector>
#pragma pack(push, 1)
struct CWS_INFO
{
BYTE c1;
BYTE c2;
WORD c3;
float c4;
float c6;
float c7;
float c8;
float c9;
float c10;
};
#pragma pack(pop)
std::vector<CWS_INFO> m_CwsInfo;
bool LoadTxt(const char * path)
{
CMemScript * lpMemScript = new CMemScript;
if (!lpMemScript)
{
return false;
}
if (lpMemScript->SetBuffer((char*)path) == 0)
{
char aaaa[MAX_PATH] = { 0 };
wsprintfA(aaaa, "Could not find %s", path);
MessageBoxA(0, aaaa, 0, 0);
return false;
}
try
{
while (true)
{
if (lpMemScript->GetToken() == TOKEN_END)
{
break;
}
if (strcmp("end", lpMemScript->GetString()) == 0)
{
break;
}
CWS_INFO info;
memset(&info, 0, sizeof(info));
info.c1 = lpMemScript->GetNumber();
info.c2 = lpMemScript->GetAsNumber();
info.c3 = lpMemScript->GetAsNumber();
info.c4 = lpMemScript->GetAsFloatNumber();
info.c6 = lpMemScript->GetAsFloatNumber();
info.c7 = lpMemScript->GetAsFloatNumber();
info.c8 = lpMemScript->GetAsFloatNumber();
info.c9 = lpMemScript->GetAsFloatNumber();
info.c10 = lpMemScript->GetAsFloatNumber();
m_CwsInfo.push_back(info);
}
}
catch (...)
{
}
delete lpMemScript;
return true;
}
int main(int argc, char *argv[], char *envp[])
{
#if(TOOL_TYPE == 1)
if (LoadTxt("CWScript74.txt") == false)
{
return 0;
}
FILE *fileOut;
fopen_s(&fileOut, "CWScript74.cws", "wb");
if (!fileOut)
{
return 0;
}
int blocksize = sizeof(CWS_INFO);
fwrite("CWS", 4, 1, fileOut);
int Count = m_CwsInfo.size();
fwrite(&Count, 4, 1, fileOut);
for (std::vector<CWS_INFO>::iterator it = m_CwsInfo.begin(); it != m_CwsInfo.end(); it++)
{
fwrite(&it[0], blocksize, 1, fileOut);
}
fclose(fileOut);
#else
FILE *file;
fopen_s(&file, "CWScript74.cws", "rb");
if (!file)
{
MessageBoxA(0, "Could not find CWScript74.cws", 0, 0);
return 0;
}
char FileType[4];
int Count = 0;
fread(FileType, 4, 1, file);
fread(&Count, 4, 1, file);
int blocksize = sizeof(CWS_INFO);
for (int n = 0; n < Count; n++)
{
unsigned char * Buffer = new unsigned char[blocksize];
fread(Buffer, blocksize, 1, file);
m_CwsInfo.push_back(*(CWS_INFO*)Buffer);
delete[] Buffer;
}
fclose(file);
FILE *fileOut;
fopen_s(&fileOut, "CWScript74.txt", "wb");
if (!fileOut)
{
MessageBoxA(0, "Could not Save CWScript74.txt", 0, 0);
return 0;
}
for (std::vector<CWS_INFO>::iterator it = m_CwsInfo.begin(); it != m_CwsInfo.end(); it++)
{
fprintf(fileOut, "%d %d %d %g %g %g %g %g %g\n",
it->c1,
it->c2,
it->c3,
it->c4,
it->c6,
it->c7,
it->c8,
it->c9,
it->c10
);
}
fprintf(fileOut, "end\n");
fclose(fileOut);
#endif
return 0;
}
Last edited: