【关于RA3新平台】一个可喜的进度以及一个隐形的屏障

player_4645 12天前 783

这是一只咕了一年的鸽子

但是咕咕一年也是有好处的

这不就给你们带来一个新平台(半成品)

(好吧其实是我三个星期做的)(我们至今仍未知道RAT平台的下落)


好了,下面是它的试用情况(alpha):


用的方法是局域网方式,而非五角星形式(旁边躲着的就是主程序,不过啥也没写不用看了,后期再补UI)

不过可惜,可喜的也就到这里就结束了,这个链接超时是我一直一直难以理解的情况

是哒,这就是传说中的半成品(聊个天)哈哈哈哈


咳,好吧,其实这个贴是求助帖,以上是我画的花里胡哨的流程图(谁看得懂啊喂)


测试数据:

*用wpe抓包得RA3纯sendto/recvfrom组成,无TCP/WSA链接

*用自制的小工具测试得包头去除正常,而且RA3的聊天系统正常也说明转发正常

*在内外网条件(不计延迟)的情况下均反应灵敏,无明显卡顿现象,应该不是延迟问题

*多次测试均无法加入房间,均为连接超时

*在加入房间(未显示超时)时,无论是房主发言还是访客发言,对方均不能收到

*加入房间时,客户端数据正常(甚至贼多,半秒钟十多条数据)


额外测试:(因为这个东西理论上是可以去搞任意游戏的)

*DuckGame+SmartSteam:Smartsteam直接注入未响应,把我客户端都带蹦了,duckgame注入之后找不到房间

*CS1.6:数据发送正常,找不到房间,wpe测试纯sento/recvfrom

(这玩意有点玄学:如A-游戏(9000)向8000(均指端口)发送请求,B-客户端收到这条请求后,向8000转发请求,此时wpe没抓到这个包,指cs没收到,而RA3是收到了也当成没收到,大雾,这两怎么回事)

*MC1.8:当场。。。。注入失败(雾)

最新回复 (17)
  • player_4645 12天前
    0 引用 2
    总之,主要是想吸引来研究过RA3局域网机制的大佬解答一下()
  • 0 引用 3
    研究是好的,不过如果机制还是使用局域网的方式的话,那应该是竞争不过浩方平台的
  • player_4645 11天前
    0 引用 4
    陵点捌伍 研究是好的,不过如果机制还是使用局域网的方式的话,那应该是竞争不过浩方平台的
    你不还是用着“竞争不过RA3吧”的RAT么
    只要局域网联机出来了,包括rank评级、小房间联机、mod地图传输、创意工坊一系列都可以挂载在上面,不过前提的核心就在这个问题上,先保证联机()
  • 1212 11天前
    0 引用 5
    太棒了!支持,真的受够浩方折磨了
  • player_4645 11天前
    0 引用 6


    新的测试数据:

    *使用【服务器分配的客户ID】作为虚拟IP的最后一位(也就是,如果服务器分配你的客户ID为2,那你的IP就是192.168.1.2),进不去房间(这是昨天的测试)

    *使用【对方内网IP】作为虚拟IP,还是一样的进不去房间(我还想着RA3会不会验证IP是否正确来着)

    *用wpe抓包,发现RA3的数据【全部】都是向整个局域网广播的,这条情况也符合了我软件的记录(我原本还以为我搞错了)

    *用了点神奇的操作:客户端每收到个包,客户端主动卡住0.5秒,模拟ping500的情况(别问怎么不搞个3秒,那是因为RA3收包的时候客户端阻塞,一个延迟居然把操作界面都卡死了,房间都加不进去,大雾),在局域网内进行联机测试,连接成功,说明RA3对延迟的要求并不算高,而且没有时间戳验证(或许吧)(甚至还可以开游戏,不过开起来的时候那个读条我实在看不下去,直接关了游戏,于是就没有截图了。)

    *另一平台虎克联机进房成功(没开游戏,懒得测了,能进房就行,不过听说这个不能传图来着),正在试图加作者好友,不过希望渺茫,2012年的平台,而且没有直接开源(雾)

  • player_4645 11天前
    0 引用 7
    player_4645 新的测试数据:*使用【服务器分配的客户ID】作为虚拟IP的最后一位(也就是,如果服务器分配你的客户ID为2,那你的IP就是192.168.1.2),进不去房间(这是昨天的测试)*使用【对方内网IP】作 ...
    雾,超链接炸了,补上“神奇的操作”的连接:https://gchat.qpic.cn/gchatpic_new//--98B53C372A0DA79DB33ED926C0A14848/0
  • 北城 11天前
    0 引用 8
    好,支持下~
  • 青灵 9天前
    0 引用 9
    支持
  • Myn 7天前
    0 引用 10
    不太理解, 如果是局域网的话, 理论上说只要让所有用户都能互相通信就可以了。
    所以说你只要在用户发包的时候外面加一层, 收包的时候把外面那层脱掉, 局域网就能实现吧

    “用wpe抓包得RA3纯sendto/recvfrom组成,无TCP/WSA链接”
    好奇 以我对ra3的猜测 这个应该是tcp协议才对 大家都有因为对面卡导致自己游戏进行不下去的情况 这个应该是典型的tcp吧 游戏在丢包的状态下在等待对方重发
    WSA我实在不知道是什么东西 或许是我孤陋寡闻

    你的愿景是要做到 rank评级、小房间联机、mod地图传输、创意工坊
    rank评级:如果不是自动匹配的话rank没太大意义 就算像新官网那样每盘局域网都存结果自己搞天梯 玩家还是可以避战 可以虐菜刷分。做自动匹配的话必须能让平台自己建房间然后匹配玩家然后自动开始 我觉得这个比局域网难多了。。。尤其是在代码不开源的情况下
    小房间联机:和现在的hf有什么区别呢
    mod地图传输、创意工坊:开发者太少了不觉得搞个平台有什么意义

    我自己是对这个很感兴趣的 如果作者可以开源现在的代码的话大家或许可以交流
  • Myn 7天前
    0 引用 11
    查了查 你的意思是说这个是用的IPX协议?
  • player_4645 6天前
    0 引用 12
    Myn 查了查 你的意思是说这个是用的IPX协议?
    好多。。。先回复这个吧,后来我也查了,发现红警用的听说是IPX协议,但是我百度了一圈,找到的结果是IPX还是使用sendto/recvfrom函数,所以我的hook应该仍然生效才对,但对方没有加进房间就很奇怪。。。。(查了一圈都没明白IPX协议专用的API函数是什么。。。模模糊糊查出来个应该还是sendto)
  • player_4645 6天前
    0 引用 13
    Myn 不太理解, 如果是局域网的话, 理论上说只要让所有用户都能互相通信就可以了。 所以说你只要在用户发包的时候外面加一层, 收包的时候把外面那层脱掉, 局域网就能实现吧 “用wpe抓包得RA3纯s ...
    我发包收包的时候在数据包头添加数据是为了确认来源与目标(好吧其实没怎么听懂你的意思)

    估计游戏不使用TCP的方式,因为TCP数据包太大了,不适合RA3这种一秒钟传一百个数据包(抓包的时候我都蒙了,而且那个时候我还没在建造东西,只是为了保持两个玩家的互相连接居然每秒钟要传输一百个数据包)
    然后对面卡自己进行不下去的话。。或许是由RA3自行进行了阻塞?(反正我用WPE没抓到TCP包,注入也没弹出信息框提示,如果大佬你抓得到还请告诉我)
    WSA的话按照下面的说法(网上找的)
    winsock1版的函数  无WSA前缀
    winsock2版的函数  加了WSA 前缀
    大概是说winsock的版本不同使用的函数不同,而我没有HOOK WSA的那两个,因为同样没抓到这种数据包。。
  • player_4645 6天前
    0 引用 14
    ~rank评级其实是分为录像自动上传和游戏内显示,并不是像“排位赛”那样(如果可以的话也不是不能做),只是在游戏一开始给玩家一个了解对手实力的依据(虽说改个ID就能避免,这些功能以后再细细思索)
    ~小房间联机是给群P的玩家一个隔离空间,作为一个附加功能而非主要功能,实现起来不算复杂,只是先做好联机才有资格说这些。
    ~mod地图传输和创意工坊呢,则是有了平台才会有地图的存在,我是打算将一切地图全部收集,避免某些地图只在某个群才有,无法广泛传播的情况,然后玩家可以一键式下载,并且房主可以选择mod地图,然后传输给玩家(利用平台),这样的话,地图将拥有更大的可变性(我就是因为mod地图不能传输而不做mod地图的一类)
  • player_4645 6天前
    0 引用 15

    这里是源码,易语言编写(之前没有发出来也是因为觉得这个语言太小众了的原因)

    程序没有做多少注释,而且代码逻辑也是非常混乱,如果要实现我这个软件的功能,直接参照上面的思路自己动手就好

    程序主软件:

    客户端DLL.e(TD-LINK-DLL.dll)
    客户端.e(TD-LINK.exe)
    服务器.e(服务器.exe)
    --------------------
    其他的东西一些是易语言编译残留和源码备份,另一些是测试用软件以及旧版保留
    首次运行请到 客户端.e-连接服务器 函数修改服务器IP。
    (因为软件处于Alpha状态,许多地方存在非人性化设计,而我打算以联机实现为主,不修,咕)

    使用的一些知识如下,还希望帮助各位想搭建新平台的:

    APIHOOK
    DLL注入
    网络位置与IP+端口的转换(这一点我被坑了老久,因为sendto使用的不是IP+端口的方式,还得先转换一遍)


    上传的附件:
  • Myn 5天前
    0 引用 16

    好奇去抓了个包 确实是局域网广播 但是是udp啊


  • player_4645 5天前
    0 引用 17
    Myn 好奇去抓了个包 确实是局域网广播 但是是udp啊
    雾,我说的就是udp广播,udp使用sendto函数,因此我hook了sendto函数,没什么问题的亚子
  • 0 引用 18
    player_4645 你不还是用着“竞争不过RA3吧”的RAT么 只要局域网联机出来了,包括rank评级、小房间联机、mod地图传输、创意工坊一系列都可以挂载在上面,不过前提的核心就在这个问题上,先保证联机()
    RAT和RA3吧又不冲突,可以同时用,作为交流平台来说,我还用B站和QQ群呢
    平台这个你总不可能说你浩方平台和新平台同时在线吧,想进谁进谁吧
    你的竞争力体现在你后面说的评级与地图传输等浩方所没有的功能上
    而不是说你一个能联机就马上去干碎浩方这样
    我去浩方贴吧发帖浩方怎么还不倒闭被吧务封了10天
    • RAT红警社区
      19
        登录 注册 QQ登录(不可用)
返回