铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 3269|回复: 2

[通用] 战斗录像与战斗回放在苍炎开源版中的实现(附源代码与录像文件)

[复制链接]
发表于 2012-4-14 22:02 | 显示全部楼层 |阅读模式
本帖最后由 majorc 于 2012-4-15 00:05 编辑

半年前我在达摩堂写了一个帖子介绍如何在原版苍龙逐日里内置战斗录像功能。这种方法的好处是方便易用(直接内置在游戏里),同时实现很简单(只需要几十行代码改动),而且录像文件也很小(因为并不是通过视频实现,所以录像文件一般只有几KB),可以极大方便玩家在网上共享战报。具体实现原理见 http://www.txdx.net/forum.php?mod=viewthread&tid=517893&fromuid=431088。帖子里附有基于苍龙原版修改的源代码。

半年之后故地重游,我发现人气很高的苍炎在1月份的时候开源了。由于引入了半回合制和特效,再加上玩家众多,我猜战斗录像功能也许对于苍炎会更有用。因此今天抽空在苍炎的代码上实现了一把。主要原理不变,苍炎里面遇到的新问题是鼠标输入。如果玩家使用鼠标操作战斗的话,仅仅是移动鼠标也会产生输入信号(看样子keypress值像是坐标),这样整体上录像文件的大小会比纯键盘操作大一点。另外因为鼠标移动的操作会产生比较密集的信号(每20ms一个),这样会使得录像产生一些停顿。

使用方法
1. 更新程序:直接用附件中script.zip里的lua文件覆盖你原有的程序文件即可(最好提前备份一下,以防万一...)。

2. 生成录像:玩家需要做的只是在进入一场战斗之前先“保存游戏”就可以了。每一场战斗过程中程序会自动录像,并在战斗结束后在data文件夹里自动生成一个w1.wrp文件,这个文件就是录像文件了。对于时间不太长的战斗,比如持续二十分钟以内,一般这个录像文件不会超过100KB。注意在我现在的实现里,每一场战斗都会用w1.wrp这个文件来保存录像,也就是说当前战斗的录像会直接覆盖上一场的。

3. 战斗回放:读取你在战斗之前保存的那个存档,再一次进入你刚才的战斗。在战斗一开始时程序会问你要不要看录像,按Y键就开始自动播放啦。录像效果对于纯键盘操作的战斗尤其好,因为回放过程中没有用户输入的停顿,战斗比较流畅。(鼠标操作的战斗也可以100%重现,只是用户的输入停顿也会记录下来)

4. 共享录像: 想和别人共享你的录像的话,你只需要(a)提供战斗前你保存的那个游戏存档文件以及w1.wrp这个录像文件(b)告诉他要读取哪一个游戏存档,以及你录的是哪一场战斗。当然对方想看你的录像的话他的苍炎程序也必须是更新过的。苍炎的游戏存档文件位置见http://www.txdx.net/forum.php?mod=viewthread&tid=525204&fromuid=431088。下面附件里data.zip是我打包好的一个战斗录像的例子,录的是游戏一开始时在河洛客栈遇令狐冲、林平之以及青城派的那出戏。解压缩之后覆盖原有的data目录下的相关存档文件(重要提醒:这会覆盖你已有的游戏存档和战斗录像,所以记得事先备份!)进入游戏之后读取进度一,然后直接进河洛客栈就可以开始看录像了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x

评分

参与人数 1声望 +10 收起 理由
winson7891 + 10 好贴奖励

查看全部评分

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-4-15 03:15 | 显示全部楼层
给点建议:
1,这样的录像模式有点麻烦,应该说相当麻烦,要保留录像就要整个存档保留,不是每个玩家都知道把存档“整个”拿出来的,毕竟存档文件不止1个
2,Lua版本来就建立在改脚本的基础上,与其说把script文件覆盖,不如仔细说明改了哪里吧
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-4-15 13:07 | 显示全部楼层
本帖最后由 majorc 于 2012-4-15 13:50 编辑
winson7891 发表于 2012-4-15 03:15
给点建议:
1,这样的录像模式有点麻烦,应该说相当麻烦,要保留录像就要整个存档保留,不是每个玩家都知道 ...

1. “另存为”功能是有用,关于这个我在苍半版的帖子里http://www.txdx.net/forum.php?mod=viewthread&tid=543492&fromuid=431088已经有了相关讨论。这个东西做仔细了的话不但可以让程序自动打包相关文件,而且还可以做个对话框让玩家自定义文件名一类的。不过这些都属于接口性质的东西了,在达摩堂的话主要关心基本原理吧。

现在原理方面的主要缺陷是,录像无法过滤玩家的鼠标移动操作,从而导致一些停顿,对录像的流畅性有些影响。

2. 所有改动的地方都用 --hbj 标注了(一共代码改动才几十行... )。描述原理的帖子见 http://www.txdx.net/forum.php?mod=viewthread&tid=517893&fromuid=431088



点评

事实上在苍炎里鼠标移动事件很重要...现在的程序根据鼠标位置确定你点左键的时候要不要响应  发表于 2012-4-15 22:07
仅当鼠标点击时(或者释放时)记录,那就行了,MOD里面没什么鼠标移动带操作效果的,有,也就是显示状态  发表于 2012-4-15 20:13
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-11-15 12:10

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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