欢迎食用『主界面』~,这里是赵苦瓜的看板娘desu~

#
某游CBT1游玩记录 —— 一测版本怀旧
首页 > 点滴记录    作者:赵苦瓜   2022年12月24日 10:02 星期六   热度:10233°   百度已收录  
时间:2022-12-24 10:02   热度:10233° 

熊猫锅巴.jpg

最近看到有人在传CBT1的搭建教程,不过是英文的,这里记录一下我的搭建记录。

这个CBT1的私服是没有数据库的,也就是说每次登录进去都是最开始的状态,不过好在每次都是所有的东西都有,海星。

注:本教程仅适用于CBT1版本,如果需要搭建2.6 - 3.3版本的话可以参考这个:

GrassCutter的配置和使用记录 - 赵苦瓜のBlog (jixiaob.cn)


首先确保你已经安装了Python3,因为dispatch服务器是用py3写的。

没安装的话可以去python官网下一个https://www.python.org

windows系统下安装记得勾选add python to 'PATH',这样就省去自己添加环境变量了。


①下载CBT1的游戏本体。

是一个3.41G的压缩包。


可以在科学上网之后从这个地方下载:

https://archive.org/download/genshin-impact-cbt-1/Genshin%20Impact%20CBT1.rar


也可以用这个磁力链接:

magnet:?xt=urn:btih:91155B52125B25752485CB73868FC7484AB246AE


或者在yuuki网盘没炸的时候从她网盘下:

https://file.yuuki.me/0:/Project/GenshinImpact/Data/PC/1.0.0%20(CBT1)%20(138541_138541)/
https://file2.yuuki.me/GD1/Project/GenshinImpact/Data/PC/1.0.0%20(CBT1)%20(138541_138541) 


②下载服务端和res资源文件

服务端:https://github.com/LDAsuku/soggy

点code→download zip

res资源文件:https://codeberg.org/LDA_suku/soggy_resources
点下载按钮→下载zip


③自行编译服务端或者找个别人编译好的

这个私服的gameserver是拿cpp写的,所以不同平台需要自行编译,

这里有一个编译好的windows的版本可以直接下载打开使用(这个甚至连res资源文件都给你搞好了可以直接打开使用):

https://file.jixiaob.cn/zh-CN/Files/%E5%8E%9F%E7%A5%9E/CBT1/CBT1Server%E6%89%93%E5%8C%85by%E8%B5%B5%E8%8B%A6%E7%93%9C.7z


如果要自行编译:

我是用它推荐的方法2在win环境上编译的

首先下载安装MSYS2 

https://github.com/msys2/msys2-installer/releases/download/2022-10-28/msys2-x86_64-20221028.exe

然后打开MSYS2 MINGW64

注意:安装时路径不要有中文、空格或者特殊字符,否则安装依赖环境的时候可能会报错!

用cd命令切换到你刚刚下载解压的服务端的路径,比如cd "D:\Genshin\servers\soggy"

输入以下命令安装依赖环境

pacman -S ${MINGW_PACKAGE_PREFIX}-{toolchain,cmake,protobuf,lua}

然后

pacman -S make

做好编译准备

cmake -B build -G "Unix Makefiles"

编译

cmake --build build -j8

(该过程会大量消耗CPU,大概编译个十几分钟就好了)

完成之后,从你的mingw64的安装路径的bin文件夹(比如C:\msys64\mingw64\bin)复制几个文件到soggy/build文件夹(和soggy.exe放在同一个目录下)

libgcc_s_seh-1.dll
libprotobuf.dll
libstdc++-6.dll
libwinpthread-1.dll
lua54.dll
zlib1.dll


④最后的工作

把之前下载的资源文件soggy_resources重命名为resources然后把这个文件夹放在和soggy.exe放在同一个目录下。

在dispatch.py旁边新建一个启动脚本start dispatch.bat,里面写着:

python dispatch.py
pause


然后打开,看看会不会报错,如果报错说什么文件soggy_cat.png没找到可以把static文件夹里面的这个图片文件复制一份出来。

然后打开soggy.exe启动服务器,也有可能直接闪退,如果你能看见报错大概是因为缺少配置文件,从上级目录复制一个soggy.cfg进来大概就好了。

如果还是闪退可能是另一个很神奇的错误

terminate called after throwing an instance of ‘std::runtime_error’ what():

这个错误,这个错误很玄学,有时候就有然后闪退,有时候自己就好了

我的解决方案是写个bat让他自己失败之后重试,这样大概他自己重试三五次就能打开了

@echo off
 
FOR /L %%i IN (1,1,10) DO (
soggy.exe
cls
)
pause



⑤使用Fiddler代理并打开游戏。

又是我们熟悉的Fiddler代理。如果不清楚如何安装Fiddler或者如何设置Fiddler Script可以参考我的这一篇博客里的代理部分:https://blog.jixiaob.cn/?post=83

这里直接放上脚本(和之前不同的是这里会使用http而不是https

import System;
import System.Windows.Forms;
import Fiddler;
import System.Text.RegularExpressions;
class Handlers
{
    static function OnBeforeRequest(oS: Session) {
        if
        (
               oS.host.EndsWith(".yuanshen.com")
            || oS.host.EndsWith(".hoyoverse.com")
            || oS.host.EndsWith(".mihoyo.com")
            || oS.uriContains("http://overseauspider.yuanshen.com:8888/log")
            || oS.host.EndsWith(".yuanshen.com:12401")
        ) { 
            
            oS.host = "127.0.0.1";
            // Only for CBT-1
            oS.oRequest.headers.UriScheme = "http";
            oS.port = 8099;
        }
    }
};



代理成功后就可以启动游戏了。

老样子,账号密码随便输,然后直接进游戏。

开始.jpg

如果要切换队伍角色,可以到猫尾酒馆门口找那个冒险家艾尔菲切换,或者在控制台输入elfie吧艾尔菲召唤出来然后对话切换角色。

另外背包和角色面板的键位也改了,背包是I不是B,角色是K不是C,具体可以看游戏内设置。

切换队伍角色.jpg

地图自然也是只有蒙德地区的

蒙德地图.jpg

关于配置文件:

如果要放到服务器上:

如果要放在服务器上要怎么修改配置文件呢?

首先,dispatch.py中的前几行:

DISPATCH_LISTEN = "0.0.0.0"
DISPATCH_PORT = 8099    # dispatch服务的端口
DISPATCH_ROUTE_URL = "http://localhost:8099"  # 这里也记得改一下服务器的ip:端口

GAME_IP = "localhost"    # gameserver的ip,也就是服务器ip
GAME_PORT = 22102     # gameserver的端口

GAME_RES_CUR_VERSION = 138541
DESIGN_DATA_CUR_VERSION = 138541

如果要改开头选服的那个名称可以改REGION_TITLES


还有soggy.cfg(是和soggy.exe同路径的那个文件)

# soggy.cfg

[common]
game_res_version=138541
design_data_version=138541

[dispatch]
bind_addr=0.0.0.0
bind_port=8099    # 改成服务器的dispatch端口
route_url=http://localhost:8099     #  dispatch服务器ip:端口
game_addr=localhost    # gameserver服务器ip
game_port=22102       #  gameserver服务器端口
region_title=100% real cbt1 server
feedback_url=https://cdn.discordapp.com/attachments/441109559004889098/1043690740397641748/unknown.png
notices_url=https://cdn.discordapp.com/attachments/441109559004889098/1043690740397641748/unknown.png
guide_url=https://cdn.discordapp.com/attachments/441109559004889098/1043690740397641748/unknown.png

[game]
bind_addr=0.0.0.0
bind_port=22102    #  gameserver服务器端口
max_clients=16      # 可能是最大同时在线的玩家数,我没测试



本文作者:赵苦瓜      文章标题: 某游CBT1游玩记录 —— 一测版本怀旧
本文地址:https://blog.jixiaob.cn/?post=94
版权声明:若无注明,本文皆为“赵苦瓜のBlog~”原创,转载请保留文章出处。
萌萌meow2025-05-03 21:36
大佬打包的cbt1server好像链接挂了,可以补一下吗?谢谢!
@萌萌meow:已补  https://file.jixiaob.cn/zh-CN/Files/%E5%8E%9F%E7%A5%9E/CBT1/CBT1Server%E6%89%93%E5%8C%85by%E8%B5%B5%E8%8B%A6%E7%93%9C.7z
kazemoe2025-04-22 10:03
大佬大佬游戏登陆报错:Error:retJsonString IsNullOrEmpty
谢谢大佬
@kazemoe:登录的时候服务端的报错吗,是版本没对上还是启动失败了还是怎么回事,不太清楚qwq
神秘啊吧怪2025-06-14 02:55
@kazemoe:解决了,照大佬发的Fiddler代理教程从工具里面把解密流量打开,再改端口就行了,应该是8888端口不行
蓝略有2025-02-11 09:17
大佬 就是点完dispatch.py出现这个错误E:\CBT1Server>python dispatch.py

E:\CBT1Server>pause
请按任意键继续. . .
蓝略有2025-02-11 10:33
@蓝略有:打错了是点启动dispatch.bat出错
@蓝略有:估计你的Python环境变量有问题,自动跳转微软商店的python了,百度搜一下解决吧,改改环境变量什么的
CTCAKE2025-02-10 16:54
terminate called after throwing an instance of 'soggy > std::runtime_error'
  what():  write failed
这个怎么办啊 gameserver的报错
@CTCAKE:文中有写,多启动几次可能就好了
MEMZ-Chrome2024-07-17 15:53
大佬,进游戏后底下读条显示准备下载资源,一直卡在0%,过一会弹窗“地址获取失败,访问失败”是哪里没配置好吗?(报错截图:https://s21.ax1x.com/2024/07/17/pkop8lq.png)
@MEMZ-Chrome:代理出问题了?试试直接用浏览器访问dispatch服务器能不能打开?然后试试访问www.mihoyo.com试试Fiddler有没有正确拦截转发请求?
MEMZ-Chrome2024-07-26 21:56
@赵苦瓜:重装Fiddler解决了,感谢大佬
@MEMZ-Chrome:好
wen2024-05-28 23:28
有剧情吗
@wen:没有
原神职业哥2024-01-24 00:20
大佬可以再分享一个服务端吗,编译哪一步老是出错
@原神职业哥:https://file.jixiaob.cn/zh-CN/Files/%E5%8E%9F%E7%A5%9E/CBT1/CBT1Server%E6%89%93%E5%8C%85by%E8%B5%B5%E8%8B%A6%E7%93%9C.7z
原神职业哥2024-01-25 00:12
@赵苦瓜:感谢大佬,但是我进游戏好像unity引擎报错了(?)错误码:UnityEngine.Object.CheckNullArgument(System.Object arg,System.String message)

UnityEngine.Object.Instantiate[T](•T original)……
这个是我游戏问题吗
@原神职业哥:怪哦,服务端有报错吗?试试参考官方的常见问题重装一下运行库?https://www.miyoushe.com/ys/article/4004423
原神职业哥2024-01-25 21:40
@赵苦瓜:我把游戏本体重装了一下,然后正常了,估计是解压的时候出问题了
Protein2025-01-13 16:24
@赵苦瓜:大佬,打不开诶
@Protein:https://moeact-my.sharepoint.com/:f:/p/zkg/EtvM9Yc0JPxJvfOUtmQBpHEBXprT7mN3N780JVT1JhAWMg?e=W0xZ1l
damn2025-04-11 20:38
@赵苦瓜:无法打开
@damn:通过网盘分享的文件:CBT1Server打包by赵苦瓜.7z
链接: https://pan.baidu.com/s/1aqXcj3ZnXiiOueYTiqDXtQ?pwd=2333 提取码: 2333
慕容云野haya2023-10-30 21:38
大佬我报错是这个怎么解决呀
Google.Protobuf.JsonTokenizer+JsonTextT okenizer.Nextlmpl ()

Google.Protobuf.JsonParser.Merge (IMessage

message, Google.Protobuf.JsonTokenizer tokenizer)Google.Protobuf.JsonParser.Merge (IMessage

message, System.l0.TextReader jsonReader)Google.Protobuf.JsonParser.Parse[T]

(System.l0.TextReader jsonReader)

BOKAHKEOBDF MGNMBNHMIDO (System.String
CHFCLKCIGAN, System.Action BAEMLGCJDKN)BOKAHKEOBDF+KNLCFFPCHOF.MoveNext ()UnityEngine.SetupCoroutine.InvokeMoveNext

(IEnumerator enumerator, IntPtr returnValueAddress)
除此之外还报错Error: retjsonString IsNullOrEmpty!
@慕容云野haya:啊?启动不起来吗?我记得有的报错可以直接忽略
Farley2023-08-25 16:17
大佬,为什么我一开门进去加载一下又会回到显示开始游戏这四个字的界面
@Farley:看看服务端有没有报错?我也不清楚
chenxi2024-12-08 10:06
@Farley:可能没有启动游戏服务器
治九安2023-08-12 22:24
大佬,我登录时提示
Error: retjsonString IsNullOrEmpty!
@治九安:啊?看上去可能是服务端出错了导致返回错误的空数据?

返回顶部    首页    后花园  
版权所有:赵苦瓜のBlog~    站长: 赵苦瓜    程序:emlog   鲁ICP备20030743号-1   鲁公网安备37048102006726 萌ICP备20222268号    sitemap