站点图标 Ayumi Moe

Grasscutter配置教程

注意

Grasscutter是一款二次元游戏的服务端,仅方便想要游玩本地游戏的玩家。

本教程提供一个简单的方法,便于没有编程基础的人也能免费游玩。


准备工作

先简单了解一下什么是grasscutter,也就是割草机。

简述一下,它的工作原理是:

实际上就是抓包拦截了官方游戏的网络请求,然后分析请求和返回值,然后模拟这些请求返回写了一个服务端,通过代理工具转发并接受本地客户端所发送的请求,以实现本地游玩。

你需要准备的东西有

环境需求


1.在Window上部署

一.自行构建编译

Grasscutter 使用 Gradle 来处理依赖及编译。

前置依赖:

克隆仓库并编译。

git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # 建立开发环境
.\gradlew jar # 编译

完成编译后会出现一些文件,包括一个grasscutter.jar,可以直接双击展开文件目录。

配合一个bat脚本方便打开。

java -jar grasscutter.jar

二.下载已经编译好的grasscutter.jar

从GitHub的 actions 或releases下载。

第一次运行服务端

在启动服务端之前,还需要下载一个Resources文件,是包含”BinOutput” 和“ ExcelBinOutput“的GC资源文件。可以使用YuukiPS大佬提供的GC资源。

输入以下代码,启动服务端

java -jar .\grasscutter-<version>.jar.jar

<version>填写对应版本号。如:grasscutter-1.4.7.jar

服务端成功运行,如图

如果一切顺利,服务端的安装启动已经完成。


2.客户端使用

安装补丁

在使用服务端之前,客户端需要打补丁,即添加RSA文件到游戏根目录。

一般来说就是下载这个补丁,放在游戏目录,更名为version.dll即可。

如果还是无法进入,那么请把PublicKey.txt文件也放入游戏根目录。

PublicKey.txt

<RSAKeyValue><Modulus>xbbx2m1feHyrQ7jP+8mtDF/pyYLrJWKWAdEv3wZrOtjOZzeLGPzsmkcgncgoRhX4dT+1itSMR9j9m0/OwsH2UoF6U32LxCOQWQD1AMgIZjAkJeJvFTrtn8fMQ1701CkbaLTVIjRMlTw8kNXvNA/A9UatoiDmi4TFG6mrxTKZpIcTInvPEpkK2A7Qsp1E4skFK8jmysy7uRhMaYHtPTsBvxP0zn3lhKB3W+HTqpneewXWHjCDfL7Nbby91jbz5EKPZXWLuhXIvR1Cu4tiruorwXJxmXaP1HQZonytECNU/UOzP6GNLdq0eFDE4b04Wjp396551G99YiFP2nqHVJ5OMQ==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>
https://github.com/34736384/RSAPatch

在MHY更换RSA密钥之前,都是能够正常使用的。

直接使用第三方的启动器

下载第三方原神启动器。(GrassCutter-ToolGrassClipper,Cultivation)任选其一

目前都使用过,能稳定运行。

使用Cultivation(推荐)

根据官方教程,选择jar和游戏客户端即可。

可以使用中文语言,然后根据提示设定路径,还可以一键下载服务端,对小白友好,而且十分稳定。

GrassCutter-Tool

按照官方提供的教程填入启动项管理的路径,安装证书,点击启动即可。

不过亲测,有时候会出现错误码无法进入游戏或者无法连接到服务端,不知道如何解决。

GrassClipper

接受浏览器接管,填入127.0.0.1,端口留空(默认是443端口),启动私人服务器即可


使用代理软件连接

比如:Fiddler Classic JScript

运行Fiddler Classic,打开“工具”->“选项”->“HTTPS”,勾选“解密HTTPS流量”选项,并在“连接”中将默认端口(Tools -> Options -> Connections)更改为除8888之外的其他端口,比如8181。

然后,在FiddlerScript选项卡中加载该脚本(复制并粘贴),并单击“保存脚本”按钮。

脚本:

import System;
import System.Windows.Forms;
import Fiddler;
import System.Text.RegularExpressions;

class Handlers
{
    static function OnBeforeRequest(oS: Session) {
        if (oS.host.Equals("overseauspider.yuanshen.com:8888")) {
            oS.oRequest.FailSession(404, "Not Found", "Not Found");
        }
        else if(oS.host.EndsWith(".yuanshen.com") || oS.host.EndsWith(".hoyoverse.com") || oS.host.EndsWith(".mihoyo.com")) {
            oS.host = "localhost"; // This can also be replaced with another IP address.
        }
    }
};

打开游戏后会出现弹窗,说明代理流量成功,全部点击“yes”同意证书即可。


关于IOS

有趣的是,我尝试了使用IOS客户端测试登录自建的Grasscutter服务端,但意料之外出现了报错。

而且再找了许多网上的教程,都不能正常的运行,再折腾下去也是浪费时间,所以想要折腾IOS的建议果断放弃吧。


就目前来说,以上这几种方式都能够代理并进入游戏。

版本更新也只需要更新服务端和客户端即可,方法是不变的。