英语| 简体中文
Jamella的Diablo 2英雄编辑
Visual Studio 2019的完整源代码和解决方案和项目
当我还是个孩子的时候,我已经下载了JamellaD2E ,并用它来编辑角色和设备,直到现在,我找到了JD2E的完整源代码,这是一个巧合。
笔记
JD2E的源代码由此pdf文件发布:jamella–diablo-ii-source-code.pdf
我已经将其倾倒到CPP源代码文件中,并将其修复以在VS2019中进行编译。
这是Jamella的PDF的原始读物:
Jamella的暗黑破坏神2编辑器的源代码
2001-03-17
该源代码是我的知识产权。它是我自己写的。我已经发表了它,因此程序员和其他有兴趣的人可以查看我的编辑的内部。
如果您使用代码的一部分,请考虑我需要半年以上来构建此程序,并在您的信息框中提及我。
除此之外,您还会发现我在编辑编辑器3.0版后进行的一些修改,因此,如果您发现一些额外的功能和无用的代码,请不要感到惊讶。
而且请不要给我发送电子邮件,问我代码的工作原理,因为它确实如此,我没有时间教全世界面向对象的C ++。现在,首先读取标题文件来研究它。
杰梅拉
http://jamella.***cjb.net
jamella@gmx.net
收集源代码:
1. Use <Google Chrome> to open the PDF File. 2. Ctrl + C/V copy all into <pdf.txt>. 3. Remove the first page(readme part) from txt. 4. Use RegEx to get both <File Name> and <File Content>. 5. Save to source file.
正则步骤在此文件中:index.ts
它是用TypeScript编写的,由Nodejs运行,现在不再需要运行。
现在,源代码尚未编译,因为仍然有一些问题要解决。
线路休息问题
首先,在大多数文件中都存在一个断路问题,这些线路在错误的位置上破裂了,例如在字符串中间,此问题出现了,因为PDF文件已自动包裹在某些线路上,其宽度太长,因此我使用VS2019和VSCODE来格式化并修补所有代码文件,以确保所有代码文件在VS2019 i siff in Viff in just View of All Off in viss2019 iDIDIDE中都不会显示任何错误。
收集资源文件
我在#1中从tytannial中获得了JamellaD2E v3.0可执行文件,并且我从EXE中提取了所有缺少的资源文件,现在可以很好地工作。
编译
警告
编译时有很多警告,因为该项目最初是在VC98中编写的,因此我已经禁用了这些警告。
26451;6328;28183;6011;6386;4996;4552;4477;4554;4474;4258;
循环问题
源代码中有一件令人兴奋的事情,Jamella以这样的方式写循环:
for (int i = 0; i < 100; i++>) {
// code...
}
// some other code...
int a = i; // he was using variant \'i\' without defination, because it has been defined in the loop above.
这种习惯将在VS2019中导致错误,因此我修补了所有这些代码,这些代码在编译时显示出错误。
CRT警告
由于此项目是在VC6年龄编写的,因此C运行时有很大不同,因此我需要添加_CRT_SECURE_NO_WARNINGS宏,以确保不再显示CRT警告。
宏
JamellaD2E似乎有两个项目,您可以在JamellaD2E .H中看到它。
- Jamella的Diablo 2英雄编辑
- Jamella的com对象
他使用宏来控制源代码中的定义。
| 宏 | 项目 |
|---|---|
| Jamellaeditor | Jamella的Diablo 2英雄编辑 |
| Jamellacomserver | Jamella的com对象 |
我为这个项目添加了Jamellaeditor宏。
JamellaD2E .H中仍然有很多宏,您可以检查一下是否令人兴奋。
const字符串问题
回到VC6的年龄,您可以在没有警告和错误的情况下编写代码:
char* sz = \"Hello, World.\";
现在,在VS2019中,它将向您显示警告和错误,您必须这样写:
const char* sz = \"Hello, World.\";
为了解决此问题而无需修改源代码,我将允许模式更改为该项目的false。
而且我也禁用了SDL检查。
关联
现在,我们可以编译所有文件,但是在链接时缺少一些静态导入库文件。
- comctl32.lib使用Windows Common控件。
- winmm.lib播放声音。
我将其添加到项目配置中。
完毕
在所有这些工作之后,我们得到了JamellaD2E的可执行文件,这正是我想要的,我可以构建和调试它,看看它是如何工作的。
- Jamella书面和开源
- 通过ZhaoleimxD转换为VS2019解决方案
- 特别感谢Nedkali资源文件
- 特别感谢Tytannial提供的v3.0 EXE来提取资源文件
2021-10-09
