Ubuntuが原神3.7バージョンサーバーを構築

この記事には知識ポイントが含まれています
Linux 基本コマンド | mongoDB サーバーの構築と手順 | Java 環境構築
原神のプライベートサーバーを使用して、自分用のカードを引くことができます. そのタスクの多くは、自分で発行するにはコンソールにログインする必要があります。プライベートサーバーでのプレイは推奨されません. 完璧な原神を体験したい場合は、公式サーバーにアクセスしてください. この記事では、LINUX MongoDB Java の教育例のみを提供します。

前に書いてある

常識的な質問

一部の読者より、3.6のダウンロードアドレスがGitHubからのものであるため開けないとの報告があった件について。あなたが Genshin Impact の単なるプレイヤーで、GitHub を開けないことに気付いた場合は、私の記事 https://mp.csdn.net/mp_blog/creation/editor/127619574 を参照してください。
もしあなたが同僚で、なぜ Github が開けないのか尋ねてきたら、自分の普段の行いを振り返ってみる必要がありますが、それはこの業界では常識的な問題です。

データベースのセキュリティ (特別な注意)

私のデータベースは、この原神のために特別にインストールされました。パスワードを設定していなかったので、子供がデータベースを削除しました。なぜデータベースが消え続けるのか尋ねました。パスワードを忘れずに設定してください。ということで、原神を入れました。彼がそれを削除できるなら、それは問題ではありません。具体的に対処するのがめんどくさいので、このままにしておきます。
MongoDB のパスワードは MySQL とは異なり、独立したアカウントとパスワードを持つ別のデータベースなので、
特別に改造してパスワードを設定しました。
@Yolan_133 の追加に感謝します。
パスワードを設定した後のリンク データベースの形式は次のようになります。

"databaseInfo": {
    
    
    "server": {
    
    
      "connectionUri": "mongodb://username:password@localhost:27017",
      "collection": "grasscutter"
    },
    "game": {
    
    
      "connectionUri": "mongodb://username:password@localhost:27017",
      "collection": "grasscutter"
    }
  }

https://github.com/Grasscutters/Grasscutter/issues/1241
ここに画像の説明を挿入します

ここに画像の説明を挿入します
ここに画像の説明を挿入します

材料の準備

構築方法

ssh でサーバーにログインします。
ディレクトリを入力して、サーバーを保存するフォルダーを作成します。Home を推奨します。

sudo cd home
sudo mkdir Grasscutter

サーバーを配置します (サーバーの最後に提供されます)。図は、tree コマンドによって生成されたディレクトリ ファイル ツリーを示しています。

完全なカタログ
Java環境を構築する ここでJavaを直接ダウンロードし、起動時にダウンロードしたJavaを使用することで、環境内での修復困難な問題を防ぐことができます
Javaを置くフォルダを作成します 私はホームフォルダに置きます。

mkdir /home/java 

このディレクトリを入力してください

cd /home/java

Javaをダウンロードして解凍します

wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz

tar -zxvf jdk-17_linux-x64_bin.tar.gz 

この時点で、ディレクトリ内に jdk フォルダが作成され、
ここに画像の説明を挿入します
その中に Java 実行可能ファイル (具体的には jdk-17.0.6/bin) が存在します。

/home/java/jdk-17.0.6/bin

MongoDB をインストールするには、apt を直接使用します。

sudo apt-get install mongodb

インストール後、mongodプログラムが自動的に実行されるので、コマンドを使用してプロセスが開始されているかどうかを確認できます。

pgrep mongo -l

すでに開始
mongo と入力してデータベース操作インターフェイスに入り、root ユーザーを作成します。管理者アカウントを作成するコマンドは次のとおりです。

db.createUser({
    
    user: "root",pwd: "114514", roles: [ {
    
     role: "root", db: "admin" } ]})

作成が成功したかどうかを確認する

db.auth("root", "114514") #返回1,则表示成功

構成ファイルを変更して外部ネットワーク アクセスを有効にします (この手順は重要ではありません。主な目的は、他のマシンを使用してこのデータベースに接続する方法を教えることです。そうでない場合は、自分のマシンからのみ 127.0.0.1 に接続できます)。

 nano /etc/mongodb.conf

bindingip を 0.0.0.0 に変更し、ctrl+o で保存し、ctrl+x で nano エディタを終了します。
これでサーバー環境の構成は完了です。
次のコマンドを入力してデータベースを再起動し、変更した構成を適用します。

sudo service mongodb restart


ここに画像の説明を挿入します
このフォルダーに移動すると、リソース ファイルの内容がその中にあることがわかります
ここに画像の説明を挿入します

構成ファイルで、リソース ファイルのパスを指定したパスに変更します。

怠惰になる方法

このリソース ファイルを Git する場所を見つけて、それを Genshin Impact サーバー フォルダーに置き
、リポジトリをプルします。

git clone https://gitlab.com/YuukiPS/GC-Resources

サーバーディレクトリに置くので相対パスを記入しました。

{
    
    
  "folderStructure": {
    
    
    "resources": "./GC-Resources/Resources",
    "data": "./data/",
    "packets": "./packets/",
    "scripts": "resources:Scripts/",
    "plugins": "./plugins/"
  },

この倉庫に入ってみたら、アップデートされていました。常にアップデートされているはずですよね?
バージョンを更新するときにリソース ファイルを更新します。GC
-Resources ディレクトリに入り、最新バージョンをプルします。

git pull

ここに画像の説明を挿入します
怠け者になることを学びましょう

サーバーの起動方法

サーバーディレクトリを入力してください

cd /home/Grasscutter

サーバー ファイルを実行し、以前にダウンロードした java17 を使用します。

/home/java/jdk-17.0.6/bin/java -jar grasscutter-1.4.6.jar

レンダリング

サーバー設定ファイル(ディレクトリ内のconfig.json)の変更

{
    
    
  "folderStructure": {
    
    
    "resources": "./resources/", //这里可以自定义resources路径,末尾会提到更方便的更新资源文件
    "data": "./data/",
    "packets": "./packets/",
    "scripts": "resources:Scripts/",
    "plugins": "./plugins/"
  },
  "databaseInfo": {
    
    
    "server": {
    
    
      "connectionUri": "mongodb://服务器ip:27017",//如果有设置密码参考引言
      "collection": "grasscutter"
    },
    "game": {
    
    
      "connectionUri": "mongodb://服务器ip:27017",
      "collection": "grasscutter"
    }
  },
  "language": {
    
    
    "language": "zh_CN",
    "fallback": "en_US",
    "document": "EN"
  },
  "account": {
    
    
    "autoCreate": true, 
    "EXPERIMENTAL_RealPassword": false,
    "defaultPermissions": [],
    "maxPlayer": -1
  },
  "server": {
    
    
    "debugWhitelist": [],
    "debugBlacklist": [],
    "runMode": "HYBRID",
    "logCommands": false,
    "http": {
    
    
      "bindAddress": "0.0.0.0",
      "bindPort": 连接端口我这里填的是是6443,
      "accessAddress": "你的服务器ip",
      "accessPort": 0,
      "encryption": {
    
    
        "useEncryption": true,
        "useInRouting": true,
        "keystore": "./keystore.p12",
        "keystorePassword": "123456"
      },
      "policies": {
    
    
        "cors": {
    
    
          "enabled": false,
          "allowedOrigins": [
            "*"
          ]
        }
      },
      "files": {
    
    
        "indexFile": "./index.html",
        "errorFile": "./404.html"
      }
    },
    "game": {
    
    
      "bindAddress": "0.0.0.0",
      "bindPort": 22102,
      "accessAddress": "你的服务器ip",
      "accessPort": 0,
      "loadEntitiesForPlayerRange": 100,
      "enableScriptInBigWorld": false,
      "enableConsole": true,
      "kcpInterval": 20,
      "logPackets": "NONE",
      "isShowPacketPayload": false,
      "isShowLoopPackets": false,
      "gameOptions": {
    
    
        "inventoryLimits": {
    
    
          "weapons": 2000,
          "relics": 2000,
          "materials": 2000,
          "furniture": 2000,
          "all": 30000
        },
        "avatarLimits": {
    
    
          "singlePlayerTeam": 40,
          "multiplayerTeam": 4
        },
        "sceneEntityLimit": 1000,
        "watchGachaConfig": false,
        "enableShopItems": true,
        "staminaUsage": true,
        "energyUsage": true,
        "fishhookTeleport": true,
        "resinOptions": {
    
    
          "resinUsage": false,
          "cap": 160,
          "rechargeTime": 480
        },
        "rates": {
    
    
          "adventureExp": 1.0,
          "mora": 1.0,
          "leyLines": 1.0
        }
      },
      "joinOptions": {
    
    
        "welcomeEmotes": [
          2007,
          1002,
          4010
        ],
        "welcomeMessage": "欢迎来到天理的世界",
        "welcomeMail": {
    
    
          "title": "欢迎来到hewei2723的私服!",
          "content": "Hi there!\r\nFirst of all, welcome to Grasscutter. If you have any issues, please let us know so that Lawnmower can help you! \r\n\r\nCheck out our:\r\n\u003ctype\u003d\"browser\" text\u003d\"Discord\" href\u003d\"https://discord.gg/T5vZU6UyeG\"/\u003e\n",
          "sender": "Lawnmower",
          "items": [
            {
    
    
              "itemId": 13509,
              "itemCount": 1,
              "itemLevel": 1
            },
            {
    
    
              "itemId": 201,
              "itemCount": 99999,
              "itemLevel": 1
            }
          ]
        }
      },
      "serverAccount": {
    
    
        "avatarId": 10000007,
        "nameCardId": 210001,
        "adventureRank": 1,
        "worldLevel": 0,
        "nickName": "Server",
        "signature": "Welcome to Grasscutter!"
      }
    },
    "dispatch": {
    
    
      "regions": [],
      "defaultName": "Grasscutter",
      "logRequests": "NONE"
    },
    "debugMode": {
    
    
      "serverLoggerLevel": {
    
    
        "levelInt": 10000,
        "levelStr": "DEBUG"
      },
      "servicesLoggersLevel": {
    
    
        "levelInt": 20000,
        "levelStr": "INFO"
      },
      "logPackets": "ALL",
      "isShowPacketPayload": false,
      "isShowLoopPackets": false,
      "logRequests": "ALL"
    }
  },
  "version": 4
}

私の設定に従う場合、
MongoDB 管理者アカウントは root、パスワードは 114514、接続ポートは 27017 です。
ダウンロードした Java17 はこのディレクトリ /home/java/jdk-17.0.6 にあります
。サーバーは /home./Grasscutter にあり、プライベート サーバーがサーバーに接続するポートは 6443 です。

原神クライアント接続、PC版、モバイル版は持ち運べないためありません

事前操作: まずパッチを適用し、このディレクトリ内のファイル C:\Genshin Impact\Genshin Impact Game\mhypbase.dll を、私が指定したのと同じ名前のファイルに置き換えます。

方法 1

これをどのグループで見たのか思い出せません。ご存知の場合は、プロジェクトのアドレスを添えてプライベート メッセージを送ってください。追加します。
ここに画像の説明を挿入します
ダウンロードアドレスGenshin Impact Agent Diversion
Project アドレス: まだ見つかりません

方法 2

Fiddler プロキシ ソフトウェアを開き、 [ツール] をクリックし
ここに画像の説明を挿入します
、 [オプション] をクリックし
ここに画像の説明を挿入します
、 [https] をクリックして、私の図に示されているように確認します
ここに画像の説明を挿入します
. メイン ページに戻り、右側の図の位置をクリックし、
ここに画像の説明を挿入します
その中のすべてを削除して、そこに私のものをコピーします。

/* Original script by NicknameGG, modified for Grasscutter by contributors. */
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.host = "ip:6443"; // This can also be replaced with another IP address.(输入域名也可)
        }
        if(oS.uriContains("http://uspider.yuanshen.com:8888/log")){
    
    
            oS.oRequest.FailSession(200, "Blocked", "haha");
        }
    }
};

「スクリプトを保存」をクリックして保存すると、この時点でエージェントが自動的に実行されます。「ここに画像の説明を挿入します
C:\Genshin Impact\Genshin Impact Game」と入力します。下に「yuanshen.exe」があり、これを介して直接起動できます。サーバーに正常に入力します。ゲーム、インターフェースはこれですここに画像の説明を挿入します

私の設定ファイルによれば、ユーザー名とパスワードを入力するだけで登録が完了します。UID は 10001 から順に並んでいます。これであなたは王様です。ここに画像の説明を挿入します

  • 言及されたファイル
    • 置換ファイル、エージェント、サーバー管理ファイル
      https://caowater.lanzouw.com/b0bhpfy4h パスワード: cbjr
    • 3.4 サーバー
      https://www.aliyundrive.com/s/iTUMtCd1Hvd
    • アップデートサーバー 3.5 アドレス https://github.com/Grasscutters/Grasscutter/releases/download/v1.4.7/grasscutter-1.4.7.jar
    • アップデート 3.6 サーバー
      https://github.com/Grasscutters/Grasscutter/suites/12202277918/artifacts/644710117
    • アップデート 3.7 サーバー
      https://github.com/Grasscutters/Grasscutter/suites/13107749441/artifacts/711806262
    • リソースファイルのアドレスを更新します
      https://gitlab.com/YuukiPS/GC-Resources

問題を特定する

これが私が設定したもので、バージョンは 3.7 です。接続できない場合は、ローカルに問題があることを意味します。ただ、サーバーの電源を落としてパスワードを設定していなかったためか、頻繁にデータが消えてしまうので、テスト用に使うのがベストです。

サーバーがダウンしました

アドレス www.cwh2o.xyz ポート 6443
コンソールが勝手に表示される問題(3.5で発生)については、
https://github.com/jie65535/gc-opencommand-plugin/issues/27を参照して
解決してください。

おすすめ

転載: blog.csdn.net/qq_40634537/article/details/129095224#comments_27568926