铁血丹心

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

[技巧心得] [共享]基于苍炎开源版的战斗录像与战斗回放(附源代码与录像文件)

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

战斗回放就是把玩家操纵的一整场战斗记录下来,并以不停顿的方式播放一遍。战斗回放的主要好处有两个:其一,战斗回放过程中并没有任何玩家输入,不会因为等待用户输入而暂停,因此整个战斗节奏流畅,看起来就像战斗双方都是”自动战斗“一样。试想与东方不败大战三百回合之后,通过战斗回放来重新回味一下刚刚的一场血战,岂不痛快。其二,如果能够进一步把战斗记录转存到文件中,玩家之间就可以共享传看这些战斗。这在苍炎系列对战斗技巧的要求逐渐变高的今天,可以方便大家上传战报,交流经验。

我基于苍炎905开源版实现了战斗录像与回放功能,实现原理见达摩堂http://www.txdx.net/forum.php?mod=viewthread&tid=517893&fromuid=431088。下面附件里是相关的更新文件,只需要直接覆盖运行即可,经初步测试没啥问题。和视频战报相比我的代码生成的录像文件非常小(除非特别长的战斗,一般不超过100KB,用zip打包之后文件更小),而且不需要使用第三方工具,直接内置在游戏里,同时由于去掉了用户输入的停顿,整个战斗过程比较流畅和激烈。


使用方法
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

评分

参与人数 2声望 +20 收起 理由
xiaoyaojx + 10 奖励
tsmdsyp + 10 好帖奖励

查看全部评分

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-4-14 22:23 | 显示全部楼层
赞! 俺相信这一定会成为一个非常重要的功能!
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-4-14 22:30 | 显示全部楼层
好东西~~版主快来加分啊!!!
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-4-14 22:47 | 显示全部楼层
这真是碉堡了!
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-4-14 23:03 | 显示全部楼层
支持哦!厉害!
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-4-14 23:25 | 显示全部楼层
很不错的一个功能
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-4-14 23:29 | 显示全部楼层
回复 幽草芃狐 的帖子

上面的哪位给传个NB点的录像上来啊?我传的这个啥都没有,就罗汉拳vs平沙落雁式...

点评

如果战斗操作系统都改了那确实是不行了...  发表于 2012-4-15 00:13
我的源码版让我改的面目全非了...我录的战斗估计你都没有...我都是家里放个小星星直接战斗的 = =  发表于 2012-4-15 00:03
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-4-14 23:44 | 显示全部楼层
本帖最后由 点滴 于 2012-4-14 23:55 编辑

非常牛啊...测试了几个战斗完全没问题

随机数、键盘记录这样做个到处录像文件也不会大到哪去

稍微完善下导出功能就完美了,去掉战前询问,改成战斗后询问是否保存录像什么的...

楼主威武!!!这是一大进步啊

点评

战前询问不能少吧,否则程序怎么知道你是要真打还是要看录像。“录像另存为”功能确实有用!  发表于 2012-4-15 00:30
快快,发个录像上来,让我也尝尝鲜。之前都是看自己的录像...  发表于 2012-4-14 23:57
data.zip会覆盖你已有的游戏存档,千万别忘了把相关文件先备份一下~  发表于 2012-4-14 23:51
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-4-15 00:41 | 显示全部楼层
本帖最后由 点滴 于 2012-4-15 00:45 编辑
点滴 发表于 2012-4-14 23:44
非常牛啊...测试了几个战斗完全没问题

随机数、键盘记录这样做个到处录像文件也不会大到哪去


不需要让程序知道是否录像啊

简单看了下你的代码,我的想法是

每次战斗都是记录键盘操作和存储随机数在你的W1.WRP文件

然后战斗后询问是否保存录像,如果保存录像则让玩家重命名W1文件

如果不保存的话清空或者删除W1文件,下次战斗重新生成W1

PS:w1.wrp文件名改成replay.wrp是否更专业呢?

点评

重命名确实有用,这个没有问题。战前询问是另一个问题,是录像与回放的开关,跟重命名无关。另外我以为wrp里的rp就是replay的意思了,w1代表第一场战斗的wrp,呵呵  发表于 2012-4-15 01:28
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-4-15 13:08 | 显示全部楼层
在保存资料时把本次战斗编号也保存进去
下次再开时战斗前检测录像文件是否和本次战斗编号相同,如相同则询问是否观看回放
这样就不用每次战斗开始前都要选择了
(有一个记录文件其实够了)

如果玩家有一些误操作,没有用原来的匹配存档来观看回放
有可能导致记录按键使用完毕后战斗还没有结束的情况,这样就会卡住
所以可以在这种情况下把按键输入转回手动输入或直接判定战斗结束

这个回放功能的思路很不错
下个版本我准备加进去
虽然新版有些界面操作没有用WaitKey这函数
但这些是小问题了
感谢楼主分享

点评

嗯,可以直接用warid做文件名。另外我看底下有人问其他的苍炎版本(比如国庆版)能不能用这个呢... 请问syp大大能用吗? :P  发表于 2012-4-15 13:54
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-4-15 13:26 | 显示全部楼层
弱弱问句,武林至尊能用吗?

点评

这个需要改源码的,跟至尊作者联系一下加入就能用了  发表于 2012-4-15 14:43
也弱弱问下,武林至尊是啥...是和开源版并列的另一个版本吗?(我对苍炎了解还不多)  发表于 2012-4-15 13:47
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-4-15 14:53 | 显示全部楼层
回复 majorc 的帖子

国庆版是源码版的升级版本,至尊版是苍炎DIY的版本,想加此功能的话让作者修改下源码就能实现了

对于去掉战前询问...我的意思是比如在菜单选项里加入  “观看录像” 选项

作为回放的开关

如果选择了此选项就读取存档、读取W1文件实现回放功能

这样玩家和玩家的录像互相传递变的很简单了,不用去找专门的战斗去实现回放了

而录像的开关一直让它开着好了,然后战斗完事后询问玩家是否保存录像数据

点评

嗯,有道理,“观看录像”的callback函数直接就是WarMain,这样省得玩家还得到处跑  发表于 2012-4-15 21:19
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-4-15 16:15 | 显示全部楼层
录像开关,感觉在config.lua上设置开关与否更好。
默认开着,每次战斗结束后都询问一遍会很烦人的。
在config上设置,喜欢的话就一直开着,不喜欢的话就默认关闭。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-4-15 17:33 | 显示全部楼层
造福苍生
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

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

GMT+8, 2024-11-15 14:43

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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