曹操传吧 关注:91,222贴子:1,344,981
  • 11回复贴,共1

【测试】原版曹操传PVP联机对战

取消只看楼主收藏回复

引子:
过年的时候无聊就在盘算在今年还有什么东西可以玩。当时感觉曹操传补丁这方面似乎没什么新东西能够继续进行下去的了——除了联机对战!虽然在补丁的发布贴里从没人提过这个功能,但是相信不少老玩家应该都有想过希望试试曹操传PVP是什么感觉。继而花了几天时间先查看和调试原版代码分析可行性和实现的复杂程度,最终得到的结论是:有点麻烦但也不是不能做。
说做就做吧,首先还是要整理一下代码和完善一些将来可能会用到的细节,算是为1.0版本的做一个最终版。毕竟,接下来2.0的版本,一开始肯定是不会那么稳定的。有心的玩家或许也能在1.61版本更新说明里看出点端倪,当时那几项改动对于单机版来说是意义不大的,其实都是在提前为2.0PVP的发布做准备。经过这几天的修改和测试,总算是完成了一些基本的功能。
好了,开场白结束,接下来是正文。
首先声明,这里只针对原版讨论,如需玩mod请自行测试恕不提供技术支持。
原因一:联机测试比单机测试过程要繁琐很多,需要的测试量完全就不是一个数量级的,即使有心也是无力。
原因二:mod作者大概也不愿意自己精心设计过的作品被随意应用到对战当中。
原因三:原版不少战场地图设计十分巧妙,攻防方面跟mod相比也相对均衡,不需要做太多变动即可使用。
目前的设定/规则有:
【轮流指令系统】必须开启
【固定物理伤害】自动开启但【残血必杀】禁用
【以命换命】和【待机蓄力】还有【手动双暴】禁用
禁用命令:道具,围攻,交换(后两项是原版本来就没有的,道具这块由于仓库共享敌军要吃的话有点麻烦)
禁止策略:沙暴(主要出于是规则上建议,程序里并没有做任何限制)
禁止装备:绝影,方天画戟等(还有其他特殊装备需要进一步测试验证是否支持)
禁止经验获取(打一局应该也升不了几级吧)
友军不可控(【轮流指令系统】暂不支持友军指令数)
扳手无用(友情提醒:因为对战时双方只同步操作命令并不同步内部数据,所以修改的只能是本机数据丝毫影响不了对方)
全剧情剧本自动禁止(某些道具可能也会因此而失效)
操作步骤:
1. 双方预先使用同一【新存档】记录进入战场。当前补丁压缩包【SaveEx】里附有某关对战地图示例,大家可以先采用它进行快速测试。
2. 在主窗口菜单里选【CczHelper】->【网络】->【建立连接】,
同一个局域网内两人玩的话,只需一人设为【TCP Server】,另一人设为【TCP Client】,把做为服务端的IP填好,再点OK就可以了。切记服务端需先开,客户端才能连接上。
3. 两人都建立好连接后,可以先试试发送【发送消息】,打一句话看看对方能否收到。此步骤通常可跳过。
4. 确定双方通信无碍后,由其中一方【发起挑战】,等待另一方确定应战即可。
5. 对战中双方按指令数交替控制(先手每轮指令数可在【战场配置】期间预先设定)。
6. 右键结束指令操作。
7. Ctrl+Enter 发送即时聊天消息。
胜负:
先手方主将被杀或回合耗尽则判定失败。
后手方主营被占或全员被杀则判定失败。
注:主营位置可在【战场配置】期间到【轮流指令系统】菜单项下自定义。
将来可能会实现的一些想法:
每轮固定等待时间超时自动结束
双方战前准备,整理装备和一定区域内自由移动以布阵,即正式开局前不知道对方具体位置和装备。
支持敌我友三方混战(这个非常麻烦,估计最终不会去弄,姑且记下)。
前面也说了,现在发布的版本绝对不可能是稳定的,不少的地方实现起来都很粗糙。直接下载打开很可能会无从下手,需要对补丁以前的拓展功能有一定了解才行。要到简单下载就能玩的程度估计还得等个大半年吧,到时候大家再上来看看好了。
总而言之,发这个贴的目的主要是:
1. 召集几个愿意帮忙测试的小伙伴。以前在补丁发布贴里有反馈/建议过的吧友优先考虑,因为目前测试使用的是免费的R云IM接口,提供的服务相当有限,它的免费服务器对于多人在线后的稳定性怎么样我完全不了解。所以不敢给大家提供太多的账号进行测试。自认为有查bug能力想提前体验的朋友,可把希望在游戏里登陆用的ID私信给我,我会为你的ID注册一个AppToken,只要使用它登陆游戏建立连接就能实现PVP网络对战了。(Tips: 其实如果你是公网IP的话,可以直接使用TCP方式联机,不需要再找我要什么Token。或者局域网内两人玩也可以直接使用TCP方式,我单独本机调试的时候就是程序多开再TCP建网来测)
2. 向广大爱好者征集制作好的适合对战用的地图,只需上传分享【新存档】文件即可。在【建立连接】的情况下保存新存档即可显示为【Map V.S.】标志。
3. 目前网络通信是写在另外一个新的CczSvr.dll,里面仅简单实现了点对点通信,只是为了满足测试需要而已。不少应该有的功能(如查看全部在线用户,查看战绩等)都未实现,将来真要建立战网的话,这个dll是必须要重写的。dll对外接口也就几个(补丁打包里有说明),不知是否有哪位在这方面有余力且感兴趣的朋友,愿意帮忙改成cs构架并自建服务器为大家提供平台。
4. 想了解一下大家对于PVP有什么好的想法和建议。其实我感觉可能只是看上去跟人打比较新鲜,真正玩起来或许也没那么有意思。不过没关系,反正我写这个也是用来消磨时间的,即使最后没人玩我也不会特别在意。
5. 我在做分析可行性时,曾搜索到一篇强文《从曹操传分析战棋类游戏的精神 》(相关链接就不贴了百度一下就有了),里面 @胖史来姆@无敌神鸟人 之间的讨论十分精彩。看过后真的很想见识一下这两位不同理念的高人之间的对决,因此这里冒昧地@一下邀请试试,不晓得胖史来姆是不是这个百度ID现在还有没有在玩呢。
补丁链接在二楼发吧,发了后估计又会被系统删还得再去申诉才能看到,不过熟悉的吧友应该都知道到哪下吧。
然后三楼会留来专门发直*播预告,以后条件允许的话可能会跟吧友联机测试时候进行直*播。觉得有点意思但是又懒得下载尝试的朋友,届时不妨顺道去瞧瞧。
最后,希望大家不要在此贴里发一些没讨论价值的回复,如“顶”“支持”“圣小白”“字多不看”之类。主要是考虑到如果此楼含水量太大就有可能令后来的人“只看楼主”,这样一来中间那些吧友提出有价值的回复就很难被后来的人注意到了。谢谢合作,如删莫怪。


IP属地:广西1楼2016-02-28 11:31回复
    不知有没有哪位熟悉 补丁的热心吧友有空帮忙在 本地联机测一下[血量加成系 统]和[火攻增强系统]在对战 时是否能用,如果能正常使 用的话会增加不少变数,使 得对战更有趣些。目前太多 东西要改,而且下周可能也 没太多时间弄,要等我自己 去验证的话估计还要过些日 子才行。当然主要也还是想 先提一下有这么两个功能, 是在联机需要支持的计划里 的,让不了解的朋友可以先 有个概念。


    IP属地:广西来自手机贴吧32楼2016-02-28 19:16
    回复
      2026-04-18 01:51:06
      广告
      不感兴趣
      开通SVIP免广告
      很多朋友对于【轮流指令系统】不甚了解,说到底这个还是怪我,当初发布v1.56的时候就没有详细说清楚。也不全是因为我懒,只是要描述起来真的不太容易。下面我就举例说明看看能否说明白吧:
      就拿汜水关来说,当前回合我军存活7人,敌军18人,【最少指令】设定数为3.
      因为7<18,所以我军每轮(注是【轮】而非【回合】)只能获得最少指令数3.
      然后7/3=2.33,也就是说我军要完成当前回合,必须得经过3(2.33)轮才行。
      这样敌军每轮所获得的指令数也就可以算出来了:18/3=6,也就是敌军每轮能动6人。
      注:如果手头上有剩余的指令数而没有执行完就结束回合的话,系统会帮你自动待机灰掉未行动的相应数目人员。
      通常的战旗游戏不是每回合全部动一遍人物就是根据速度排时序,这个系统初看上去是有点难理解。但是,这不是我一拍脑门突然想出来的新东西,完全是模仿了ps2上《贝尔维克传说》(Berwick Saga)的战斗系统。它的系统还稍微更复杂些,先手只能控一子。此游戏在我心目中地位绝对是能排进前三的,因此我先前以为不用介绍大家应该都玩过的,也懒得再对此系统多做说明了。现在看来似乎这里玩过这个游戏的吧友并不多,可惜了。我当年玩的时候还是日文,现在汉化都有了而且模拟器也能十分顺畅地玩了,还是推荐大家有空的话玩一玩吧。难度可是很高的!
      言归正传,在我看来这个系统有几点好处:
      1. 把先手的优势减小;
      2. 让中途等待的时间可以分割成一小段一小段,心理容忍程度相对会好些;
      3. 每回合先走后走哪个棋子需要做的战略考虑更多。
      当然,如果是觉得这样轮来轮去实在搞不懂,老子就是想回到原版这样每回合动完所有人。也很简单,只需将【最少指令】的值设为16(原版其实是15但是有的mod是16,考虑到兼容程序里是取16),就能够保证我方回合可以获得足够的指令来把人物执行完再交出控制权了,如此一来相当于得到没有【轮指系统】的效果。这也符合我的一贯宗旨,不会去强迫用户接受任何设定,尽量让用户有选择权。因为我相信即使你认为是最好的东西,也未必会人人喜欢,没必要强求也无须争论。


      IP属地:广西38楼2016-02-29 09:01
      收起回复
        非常感谢 @瞎子五竹酱 下午能抽出时间来一起联机测试!
        经过一个半小时的两局对战,一次是【集气系统】下,另外一次是传统的随机方式。发现现在网络通讯方面比第一次测试的时候要好很多了,而且死机崩溃现象似乎也得到了解决。不过中途还是遇到过一次由于点【结束回合】太快导致发送失败而使得双方都处于等待的状态。可能需要增加一条手动重发【结束回合】的菜单临时解决一下。
        然后中途断开后再读取同一回合存档不知何故总是校验失败,此问题待确认。
        中间 @瞎子五竹酱 提出了在非可控的等待时间里,可以点人物查看伤害。这个确实是会很实用,只是实现起来可能会跟接收命令发生冲突。我得想想看有没有什么好的解决方案。
        最后,由于水平太差第二局被 @瞎子五竹酱 逼入绝境,最后想到一个赖皮的招式:敌军也可以偷袭我军阵营啊!虽然结果还是差了一步,但是我突然又想到另外一个新规则:先手权需要交换!也就是说,这个回合是我军先手,那么下个回合就轮到敌军先手以示公平。那么在新规则下,就有可能偷鸡了。不过这个实现起来可能有的麻烦,姑且记录下来吧。
        再次感谢 @瞎子五竹酱 非常耐心跟我一起测试。期间有好几次因为在想有什么漏洞或奇招,却忘记点【结束回合】了,多亏数次不厌其烦的提醒,真是不好意思。


        IP属地:广西55楼2016-03-05 17:42
        收起回复
          刚刚突发奇想,或许可以添加一个掠夺命令,攻击伤害减半,但是杀死对方会自动穿上对方的装备。


          IP属地:广西来自手机贴吧66楼2016-03-06 17:03
          收起回复

            发个截图吧。
            如图,有指令经过时间显示,武将职能显示,和非可控下辅助显示伤害值。
            注:请大家别回复此层,因为只是简单给个画面看看而已,今后有改动大概就会把这层删了。


            IP属地:广西74楼2016-03-12 10:42
            收起回复
              这里给出十个测试ID和token,其中双引号中内容就是了。毕竟有时候邮件我也不一定会那么及时收发,可能我在回复的时候大家当时的劲头早就没了。如果已找到好机友想快速体验一下的话,不妨使用下面的id和token先试试。必须要注意的是,如果有两人使用同一id同时登陆的话,前面那个人会被服务器踢掉的。
              {"userId":"test0","token":"I+lbzhyfVTn8QkDcFlOde2kUH6Zl5zNK8pucH84Vq6DApM46R/qApYvYqU1ylO+GlFTlWLobbC00QGRR5AgsNw=="}
              {"userId":"test1","token":"yPth+KW+sBbhYaocNjCNLw49GMflMs0cB+uHpIKxxbkR6nIR6G4WQEyeP9ucrhqEuHGNerkgEwnb+UDWCwxpPg=="}
              {"userId":"test2","token":"qlx1e0AptuduS/y2JwBSImkUH6Zl5zNK8pucH84Vq6DApM46R/qApchODgu3ioQtaYzRc2H8DZNh4R5LUHlMrw=="}
              {"userId":"test3","token":"5hh5TYQ+QE4/iOK3mcp+4A49GMflMs0cB+uHpIKxxbkR6nIR6G4WQCFdLeYZ86hBuHGNerkgEwk4WX/LbCVblg=="}
              {"userId":"test4","token":"3Ltk+M9dP7GPuAdhad9wLGkUH6Zl5zNK8pucH84Vq6DApM46R/qApVX8/5Te3DEbcxyuGXsaNHXoaRqO9BtQUA=="}
              {"userId":"test5","token":"5TYRJyPFJS8DlI53RLYr+WkUH6Zl5zNK8pucH84Vq6DApM46R/qApVQeaR429veB4qBsQyo5+JerCKPxITqqCA=="}
              {"userId":"test6","token":"NdgglV102pW5Cn/PhIrMQGkUH6Zl5zNK8pucH84Vq6DApM46R/qApXqbfPaqLbGwlxnJ+jXiQuL8AUqGHixSgA=="}
              {"userId":"test7","token":"2zl4tksUzii/PuT5ga6WkTncu1Hcq4wRB9hSOiYmKpB0ecYEEx4Sw/QiLWQuOhw/MSRR1ZPM6wLQIJSx+abHQw=="}
              {"userId":"test8","token":"ZAvLbewDzvStSRQb80DYdQ49GMflMs0cB+uHpIKxxbkR6nIR6G4WQEX2Xi1mrdb5uHGNerkgEwlbNLkxrjyyCA=="}
              {"userId":"test9","token":"r/nx62PZU77hDXA1EI55OA49GMflMs0cB+uHpIKxxbkR6nIR6G4WQOdBAvGsxp2KuHGNerkgEwl5F5iK2JB35g=="}


              IP属地:广西79楼2016-03-14 07:18
              回复
                突然想到五种武将职能光环刚好可以跟五围的基本能力值对应结合起来,最终的点将效果值计算应该再加上武将相关的五围值进行修正。
                比如【阵型减伤】设为10%,曹操的统帅是98,那么作为主将提供的修正值就是10%X98=9.8%
                又如【粮草恢复】设为25%,曹洪的运气是70,那么作为押粮提供的每回合恢复量25%X70=17.5%
                显然此时曹洪已经不适合做押粮了,换为运气有86的乐进会更有利。
                阵型减伤与统帅值对应,这个应该没什么问题。但是,或许有人要问:为什么粮草恢复是运气值呢?由于运气是跟士气挂钩,感觉士气再跟粮草有关联还是说得过去的。不过,如果是换做提供恢复量为押粮官HP上限的25%,似乎又会更好一些。
                不管怎样,这样点将的时候就都需要好好选择才行,不像现在那样谁来做都无所谓了。当然,现在军师因为已经是替代精神力进行策略防御,似乎也就不需要再进行修正了。下个版本或许还要添加光环范围格数可设置,效果值根据与光环中心的距离递减。


                IP属地:广西80楼2016-03-14 09:11
                收起回复
                  2026-04-18 01:45:06
                  广告
                  不感兴趣
                  开通SVIP免广告
                  首日发布测试的时候, @瞎子五竹酱 曾帮忙确认了XP上使用R云通讯的问题。因为是第三方的接口,所以我虽然是觉得很遗憾但是也无能为力。
                  今天意外发现,R云Win接口更新修复了XP不支持的问题,赶紧拿来到XP虚拟机上快速测了下,似乎是能够正常运行了。
                  相信还在玩曹操传的玩家里一定还有不少在使用XP的,其实就是半年前,我也都还是一直在用XP。因此这应该算得上是一个不大不小的福音。
                  刚好XP测试到最后发现一个昨天发布版本计算实时指令数的严重bug,看来这个更新是必须的了。
                  2016-03-17 v2.03b
                  1. 修复当人数足够少导致实时指令数为零的bug。
                  2. 【军师策略恢复】和【军师传授火计】光环范围限制为十字一格。
                  【军师代替策防】光环范围可自定义,默认十字三格,即大没羽箭。
                  附注: CzzSvr.dll更新为v1.02,配合RCloud接口的调整做出相应改动。
                  RCloud官网升级rcsdk.dll至0.97_beta,支持XP运行。
                  另注: 暴击杀死不能掠夺装备。
                  最后给大家分享一下我在测试时候突然领会的一个我方交换道具和确保宝物不落敌军的方法,说出来也很简单:
                  就是在还剩残血准备要死的时候,去攻击对方一个需要两下攻击才能被砍死的部队,利用反击自杀死掉后,另外那个希望继承宝物的我方武将再去攻击先前对方部队,将宝物夺回。
                  有的时候即使不能立刻夺回,对于强力的宝物如玉玺,在确定当前人物已经保不住的情况下,或许也可以考虑及时自杀把宝物主动送上给对方一个攻击相对较弱的人物,以减少对方下一轮的伤害。然后下轮再伺机夺回。


                  IP属地:广西89楼2016-03-17 17:33
                  回复
                    之前被系统自动删申诉一周后发现没能恢复,转繁体重发试试:
                    首日發布測試的時候, @瞎子五竹酱 曾幫忙確認了XP上使用R雲通訊的問題。因為是第三方的接口,所以我雖然是覺得很遺憾但是也無能為力。
                    今天意外發現,R雲Win接口更新修復了XP不支持的問題,趕緊拿來到XP虛擬機上快速測了下,似乎是能夠正常運行了。
                    相信還在玩曹操傳的玩家裏壹定還有不少在使用XP的,其實就是半年前,我也都還是壹直在用XP。因此這應該算得上是壹個不大不小的福音。
                    剛好XP測試到最後發現壹個昨天發布版本計算實時指令數的嚴重bug,看來這個更新是必須的了。
                    2016-03-17 v2.03b
                    1. 修復當人數足夠少導致實時指令數為零的bug。
                    2. 【軍師策略恢復】和【軍師傳授火計】光環範圍限制為十字壹格。
                    【軍師代替策防】光環範圍可自定義,默認十字三格,即大沒羽箭。
                    附註: CzzSvr.dll更新為v1.02,配合RCloud接口的調整做出相應改動。
                    RCloud官網升級rcsdk.dll至0.97_beta,支持XP運行。
                    另註: 暴擊殺死不能掠奪裝備。


                    IP属地:广西91楼2016-03-25 17:14
                    收起回复
                      再做一个更新,主要是添加了【操作委任】的功能,同时支持单机和对战。
                      现在一个人进行对战测试就比较方便了,再也不用像原先那样两边都必须手控操作一遍。而且,之前一直在讨论的需要找两个水平接近的人来验证地图,或许也可以通过两边都让电脑控制来做近似模拟验证。
                      2016-03-25 v2.04
                      1. 新存档中写入当前补丁版本号。
                      2. 不同版本的程序之间不允许进行对战。
                      3. 在原配置对话框不再额外添加补丁配置按钮。
                      4. 【轮流指令系统】单机下结束全部指令的默认按键改为Shift+右键。注:对战不支持。
                      5. 【光环效果限制】下添加【伤重愈缓】项,【当前HP】<【恢复HP】时,只能恢复【当前HP】的值。即伤愈重愈愈缓。
                      例:武将【当前HP】为3,【最大HP】为80,【粮草恢复】百分比为25%。
                      按公式计算的回复量为80*25%=20,但是【当前HP3】<【回复量20】,所以只能恢复3点HP,即最终HP=3+3=6。
                      6. 【点将光环系统】下添加【AI行动价值】,为AI计算攻击走位时额外加上的各种光环行动价值。
                      7. 对战也支持【操作委任】功能,可使用十种委任方针。主要是便于测试,同时亦可作为快速对战模式。
                      8. 当执行委任操作遇到目标位置被自己人占据的情况,先跳过此武将执行下一个AI顺序武将。
                      9. 【双暴集气系统】下添加【AI预双暴】项,当100%双暴或100%回避时候,AI预测伤害利用系数进行修正。
                      10.【光标信息】下添加【100%时修正伤害】,当100%双暴或100%回避时候,我方预览伤害也可显示修正值。
                      注:预览双暴伤害修正系数同【AI预双暴】子项设置。


                      IP属地:广西92楼2016-03-25 17:15
                      收起回复
                        今天发布一个重要更新,实现了【随机地图开局】功能(同时支持对战和单机)。
                        这样之前一直困扰着我们的如何判断一个地图是否公平的问题就显得不是那么重要了,因为在随机生成部队的情况下,只要部队数相等,双方兵力能力的差距应该不会特别大。而且熟练运用全兵种也是实力的一种体现。再者随机以后重复玩相同的地图也不至于特别烦闷,要更换地图也很简单,重新载入另一关的存档就是了。
                        原本还打算把地图上的地形也弄成随机的,后来考虑到如果是不采用任何算法纯随机生成的话可能会显得比较凌乱,还是别弄了。
                        另外为了配合随机地图,还添加了【自动点将】的功能,使得【点将光环】不至于在随机后被废掉。
                        对于人品极佳随机出了特别强的部队,我有个想法就是接下来可能会弄一个【暗-杀】属性,由一方物攻最低的非文官攻击对方物攻最高的非文官,可以达到100%一击必杀的效果。有点像斗兽棋的小老鼠吃大象。
                        当前版本具体更新如下:
                        2016-03-30 v2.05
                        1. 更改【双暴系数】为可随时设定,且可设为0。
                        2. 当Ctrl和Alt同时按下时不强制显示全部光环作用范围。
                        3. 在原配置对话框恢复显示额外补丁配置按钮。
                        4. 【拓展系统】下添加【随机地图开局】,在完成【战场配置】后会自动按设定加载随机项。
                        各个随机项设定依次为:【等级随机】、【部队随机】、【位置随机】和【宝物随机】。
                        5. 【点将光环系统】的【其他设定】下添加【自动点将】项,选中后会忽略设定编号自动按五围基础数值高低分派将领。
                        释:自动点将与五围对应关系:主将-统率;军师-智力;副将-武力;先锋-敏捷;押粮-运气。
                        6. 取消主将不能兼任先锋和押粮的限制,即主将可集全部光环于一身。


                        IP属地:广西93楼2016-03-30 19:48
                        回复