2022-04-24 09:02:19 +00:00
|
|
|
RustySamovar
|
|
|
|
===============================
|
|
|
|
Custom server for YuanShen / Genshin Impact video game.
|
|
|
|
|
2023-03-05 22:51:33 +00:00
|
|
|
Supported game versions: 1.4.5x - 3.5.5x (depends on protocol definitions provided and keys used)
|
2022-04-24 09:02:19 +00:00
|
|
|
|
|
|
|
**Note**: Github repo is a mirror of the main repo located at [Invisible Internet Bublik](http://bublik.i2p).
|
|
|
|
In case Github mirror dies, use I2P to access the main site.
|
|
|
|
|
|
|
|
# Building
|
|
|
|
|
|
|
|
## Toolkit preparation
|
|
|
|
|
|
|
|
You'll need any C/C++ toolkit installed:
|
|
|
|
|
|
|
|
- On Windows, MS VS Community or MinGW will do the job;
|
|
|
|
- On *nix, you just need GCC / Clang
|
|
|
|
|
|
|
|
Also you'll need to install Rust.
|
|
|
|
|
|
|
|
- On Windows, refer to [official instructions](https://www.rust-lang.org/tools/install)
|
|
|
|
- On Linux, use system package manager to install `rustc` and `cargo`
|
|
|
|
|
|
|
|
## Preparing the workplace
|
|
|
|
|
2022-05-28 13:20:50 +00:00
|
|
|
Clone repository with `git clone --recurse-submodules <repo_url>`. This is required to initialize all submodules.
|
2022-04-24 09:02:19 +00:00
|
|
|
|
|
|
|
## Retrieving protocol definitions
|
|
|
|
|
|
|
|
Look at the instructions in the `proto` project on how to get the required file set.
|
|
|
|
|
2022-07-24 09:42:59 +00:00
|
|
|
## Retrieving traffic encryption keys
|
2022-04-24 09:02:19 +00:00
|
|
|
|
2022-07-24 09:42:59 +00:00
|
|
|
Refer to `Sapozhok`'s README about traffic encryption keys. Note that `RustySamovar` doesn't need SSL keys, only RSA and regional ones.
|
2022-04-24 09:02:19 +00:00
|
|
|
|
|
|
|
## Compiling
|
|
|
|
|
|
|
|
Just plain and simple `cargo build`.
|
|
|
|
|
|
|
|
# Running
|
|
|
|
|
|
|
|
## Preparation
|
|
|
|
|
2022-07-24 09:42:59 +00:00
|
|
|
To run the server, you'll need some of the game's files:
|
2022-04-24 09:02:19 +00:00
|
|
|
|
|
|
|
- [Lua scripts](https://github.com/14eyes/YSLua), grab them from `DecompiledLua/Lua` subdirectory and put into `data/lua/` subfolder of
|
|
|
|
the server
|
|
|
|
- [ExcelBinOutput configs](https://github.com/Dimbreath/GenshinData), grab them from `ExcelBinOutput` subdirectory and put into
|
|
|
|
`data/json/game/` subfolder of the server
|
|
|
|
- [BinOutput configs](https://github.com/radioegor146/gi-bin-output), grab them from `2.5.52/Data/_BinOutput` subdirectory and put into
|
|
|
|
`data/json/game/` subfolder of the server
|
|
|
|
|
|
|
|
Alternatively you can dump everything by yourself using tools available at Bublik.
|
|
|
|
|
|
|
|
## Starting the server
|
|
|
|
|
2022-07-24 09:42:59 +00:00
|
|
|
Just `cargo run` will do the trick.
|