2012-07-21 98 views
-2

我目前正在使用一个Tile Engine的教程系列,它使用XML文件来存储NPC之间的对话。它似乎没有涉及到的一个话题(我只是快速浏览了后续的视频)是如何通过使用通用文本轻松打开XML文件来防止用户改变或者事先知道NPC会说些什么编辑。用XML编写数据不能通过文本编辑器编辑

的能够阅读的未来对话的第二点是不是一个真正的问题,但我想做的思考,所以如果这是很难实现我不是在这一点上过于大惊小怪。

我怎么会去使XML不可编辑?我隐约知道CRC32的可以检查文件的完整性,这可能是有用的,我也认为可能是是更好的方式去做(即不与CRC32)。

最极端的行动,我能想到的是创建自己的任意编码为通话数据,但XML文件的有效性从阻止我咯,并与教程,我下面教了我很多东西我不知道,我不想让他们离得太远!

只是在寻找一个真正的方向,谢谢!

+0

使用RSA加密加密您的文件? – 2012-07-21 10:45:30

+0

那么数据的二进制序列化呢? – 2012-07-21 11:33:12

回答

0

从历史上看,很多游戏包多的资源投入到一个单一的二进制文件。

你可以把它放在一个ZIP文件(可能更改文件扩展名)。这将允许您避免将具有明显名称的XML文件作为用户的诱惑:)。

最后,你问类似DRM问题的东西。我不知道你的平台是否有答案。 (例如,“使用RSA加密”不是安全原样;您的程序仍然需要使用适当的密钥等在某个点解密数据)。

+0

这可能更符合我想要的内容,你将如何去做这类内容文件?我需要制作一个内容导入器吗?我将如何能够从VS内单独访问文件? – 2012-07-21 11:21:03

+0

ZIP将作为构建过程的一部分生成。 – sourcejedi 2012-07-22 08:47:31

+0

因此,您只需编辑单个源文件即可。 XNA可能已经整合了对这类东西的支持(不一定是ZIP),但那是我的知识结束的地方,对不起。 – sourcejedi 2012-07-22 09:05:36

1

XML是在其基础的开放的格式,所以我的意思是没有办法如何使XML编辑。

但是你可以在你的服务器上(或者在NPC会话的端点上)有一个xml文档(或者一些xml的指纹)的副本,然后你可以比较xml文档是否被编辑或者没有。

如果文档编辑,你中科院与备份版本来替换它,或者说在端点,即XML文档被破坏......