找回密码
 点一下
查看: 2434|回复: 1

怎么保存一些数据 下次打这个地图的时候还能调用啊?

[复制链接]
发表于 2011-2-11 15:01:00 | 显示全部楼层 |阅读模式
我需要每间隔一段时间保存一些整数,如果游戏重新开局了以后,这些保存的数据也能够重新读取加载
这样的东西该如何去制作?不是很懂,请各位高手尽量能够说的详细一些!
发表于 2011-2-12 16:55:55 | 显示全部楼层
使用Bank系统。它可以把指定的数据存到指定玩家的电脑上。

以下是一个例子。
[trigger]
Bank Init&Read
    Events
        Game - Map initialization
    Local Variables
    Conditions
    Actions
        Bank - Open bank "TestBank" for player 1
        Variable - Set Bank = (Last opened bank)
        Variable - Set i = (Load "data" of section "section1" from bank Bank as integer value)
        Debug - Display (Text(i)) as debug output using Type 1, and Do display it in the game window
[/trigger]

这几句是尝试从玩家1的电脑上打开名为TestBank的这样一个bank(也就是本地保存的文件)。并读取这个bank的section1\\data下保存的整数值。

最后一句是把它显示在屏幕上。当什么都没保存的时候当然显示的是0

[trigger]
Set Int
    Events
        Game - Player Any Player types a chat message containing "", matching Partially
    Local Variables
    Conditions
    Actions
        Variable - Set i = (Integer((Entered chat string)))
[/trigger]

这里是个测试用的触发,用聊天信息输入数字,输入多少就把i这个全局变量设为多少。



[trigger]
Save
    Events
        Timer - Every 2.0 seconds of Game Time
    Local Variables
    Conditions
    Actions
        Bank - Store integer i as "data" of section "section1" in bank Bank
        Bank - Save bank Bank
        Debug - Display (Combine ("已保存 ", (Text(i)))) as debug output using Type 1, and Do display it in the game window
[/trigger]

这几句就是关键的保存用的触发了,每经过2秒钟就保存一次i的值,第一句是将其保存到Bank的section1\\data。注意这时候还没正式保存在硬盘上,而是只是写入了内存而已。

第二句是正式将它保存到硬盘上。这里要明确的一点是,当有很多人联机的时候,究竟是保存到谁的硬盘上呢?这是由第一个触发器所决定的。第一个触发打开的是玩家1硬盘上的bank,所以当它保存的时候也是保存在玩家1的电脑上的。实际保存位置是在我的文档的sc2目录下。

第三句就是在保存完以后显示下提示信息,已保存XXX。


这就是一个最普通的Bank系统演示了,和war3的game cache基本一样,区别在于sc2的Bank系统可以支持多人联机而已。

要注意的是,其实由于Bank是明文保存的,所以要修改存档很简单。所以实际应用的时候最好做一些加密措施,不过这就是比较高级的应用了,楼主还是先从最基础的演示入手吧。

BankTest.SC2Map

15 KB, 下载次数: 45

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-23 22:08 , Processed in 0.188119 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表