Rename project to XilonenImpact
This commit is contained in:
parent
f300d523ca
commit
6dbf7088ed
8 changed files with 22 additions and 16 deletions
2
LICENSE
2
LICENSE
|
@ -219,7 +219,7 @@ If you develop a new program, and you want it to be of the greatest possible use
|
||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
|
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
MualaniImpact
|
XilonenImpact
|
||||||
Copyright (C) 2024 reversedrooms
|
Copyright (C) 2024 reversedrooms
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||||
|
|
12
README.md
12
README.md
|
@ -1,10 +1,10 @@
|
||||||
# MualaniImpact
|
# XilonenImpact
|
||||||
### Current game version: 5.0.50
|
### Current game version: 5.0.50
|
||||||
|
|
||||||
![screenshot](https://git.xeondev.com/ReversedRooms/MualaniImpact/raw/branch/master/screenshot.png)
|
![screenshot](https://git.xeondev.com/ReversedRooms/XilonenImpact/raw/branch/master/screenshot.png)
|
||||||
|
|
||||||
## What
|
## What
|
||||||
**MualaniImpact** is an **open-source project reverse-engineering Genshin Impact server binaries**. This means that all logic and architecture code is being reimplemented according to decompiled pseudocode of official servers.
|
**XilonenImpact** is an **open-source project reverse-engineering Genshin Impact server binaries**. This means that all logic and architecture code is being reimplemented according to decompiled pseudocode of official servers.
|
||||||
|
|
||||||
## How
|
## How
|
||||||
The original server binaries are written in C++. This project aims to rewrite them in rust. Because of that, some implementation details may be different (due to rust ownership model and so on).<br>We also use PostgreSQL instead of MySQL that is used by miHoYo.
|
The original server binaries are written in C++. This project aims to rewrite them in rust. Because of that, some implementation details may be different (due to rust ownership model and so on).<br>We also use PostgreSQL instead of MySQL that is used by miHoYo.
|
||||||
|
@ -27,8 +27,8 @@ The original server binaries are written in C++. This project aims to rewrite th
|
||||||
#### Server
|
#### Server
|
||||||
##### a) building from sources
|
##### a) building from sources
|
||||||
```
|
```
|
||||||
git clone https://git.xeondev.com/ReversedRooms/MualaniImpact.git
|
git clone https://git.xeondev.com/ReversedRooms/XilonenImpact.git
|
||||||
cd MualaniImpact
|
cd XilonenImpact
|
||||||
cargo run --bin sdkserver
|
cargo run --bin sdkserver
|
||||||
cargo run --bin dispatch
|
cargo run --bin dispatch
|
||||||
cargo run --bin dbgate
|
cargo run --bin dbgate
|
||||||
|
@ -37,7 +37,7 @@ cargo run --bin gameserver
|
||||||
```
|
```
|
||||||
|
|
||||||
##### b) using pre-built binaries
|
##### b) using pre-built binaries
|
||||||
Navigate to the [Releases](https://git.xeondev.com/ReversedRooms/MualaniImpact/releases)
|
Navigate to the [Releases](https://git.xeondev.com/ReversedRooms/XilonenImpact/releases)
|
||||||
page and download the latest release for your platform.<br>
|
page and download the latest release for your platform.<br>
|
||||||
Launch all services: `sdkserver`, `dispatch`, `dbgate`, `gateserver`, `gameserver`
|
Launch all services: `sdkserver`, `dispatch`, `dbgate`, `gateserver`, `gameserver`
|
||||||
##### NOTE: you don't have to install Rust if you're going to use pre-built binaries, although the preferred way is building from sources.<br>We don't provide support for pre-built binaries.
|
##### NOTE: you don't have to install Rust if you're going to use pre-built binaries, although the preferred way is building from sources.<br>We don't provide support for pre-built binaries.
|
||||||
|
|
|
@ -17,7 +17,7 @@ app_id = 4
|
||||||
inner_ip = "127.0.0.1:22004"
|
inner_ip = "127.0.0.1:22004"
|
||||||
|
|
||||||
[region]
|
[region]
|
||||||
name = "dev_mualani"
|
name = "dev_xilonen"
|
||||||
dev_sdk_account = true
|
dev_sdk_account = true
|
||||||
|
|
||||||
[database]
|
[database]
|
||||||
|
|
|
@ -18,7 +18,7 @@ app_id = 4
|
||||||
inner_ip = "127.0.0.1:22004"
|
inner_ip = "127.0.0.1:22004"
|
||||||
|
|
||||||
[region]
|
[region]
|
||||||
name = "dev_mualani"
|
name = "dev_xilonen"
|
||||||
dev_sdk_account = true
|
dev_sdk_account = true
|
||||||
|
|
||||||
[net.http]
|
[net.http]
|
||||||
|
|
|
@ -44,7 +44,7 @@ CREATE TABLE t_region_config (
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO t_region_config VALUES
|
INSERT INTO t_region_config VALUES
|
||||||
(1, 'dev_mualani', 'dev_mualani', 'DEV_PUBLIC', 'global', 'http://127.0.0.1:21041/query_cur_region', 2, decode('456332621000000083FD4642C3298A7CBB33E0A04332058300080000BBFA992CD5433217198CB083995F29C7DD0CF0E30414DD89E70A3716B9EACB3935ADD70A8C6777E6BA31CEB50BDDDA259E8E104A8BBB0EE900DA167628EA277BE0365354C5F211051301202DA77ADBF26B792B3601E2E191E26B2EE31860EF8C7230373628A0CD0BA3AAA5FA6BA5BC78C46A7AD671287D64BDE6098CE62108D74D3C12C27F2F03495D60A6F7A55179FF0ED710EC708C225F0BB15F17C0D16FA990BEB3D08C35DE2E457685ACBE2FE1E32A73872DE59345E31623B3192AD0EC365D8A6F111EBC7374DA167FD7374952952738677F00D2E7D622A6718AAF647F461C27636F21E46D932C27CC148B1206E3A306A882A3B66288F96C5B3DBDB78A0699CEA20153CD494EB617C5FB04521E389338B6075EAE179368502EFF0FAF7FC57A5832266151D68129295E2C4B6476A8744BD8F066BB825DE45301DA8189CA956F89CA166D14DD3A6C2F75B91990B3201CDADA86BDE390632DA8633BCC301E28F60F60C71C0397CD4093DDDA51F0AD6C666B5EE7E7CD789260CED2941CD701296003E2926281472EAA56EA9256387A365A9171DBDA10BBB428DE396371E24F620A2656C0026B96E49C872DB31A9FDA82FA5082A3B9B1B94BEA2DBD6A4ECC94821A8C63D6181FFD733261A8A73902BF68EB8A5E9F87DEDD7C65EA3E521E04008B2C40FE138C9D1E1C61E376E9051DC4651ED94B2B91C330DDA6F816CAABE12E0A87F9748DBDCDA66E6DA7307CB8894EBF77B346D5F9543D45F5A21CD5966E6426B2DCB20F2D796079C86F881C5EB5A612068C1C04AEB87775D2A33F4862AA94CD26DBB66846972F3C2B41552D46ED18514FE0F0FA83473A024D0B2561417D4A6FDBB68F6F09FA130057A3048ADDCB745FB108AF6A9091F5A6872E668FF83F5C68445EB99B28F1AF515F8BD9365683AB819B275151F969BC15BA33C16B0714F15B19EE08540C971979A122BF2D598BDC5A8CAADDEEBFE9DA4EB15B16940213E38D79E1AB952E76A627647DD5ECED8C638D717BD05858DD377FFD62558DE398E2975286E73873AB32E94E65231B3C42DEF1D661D466E162DE5CA2FA82FB13379AA2587D723005C7FAF9DE64CE1D9ADC705BB62603591B1C3ACA8DE407827D1AC61B0414BBC660B13E8AC948623B061E154AA8FBC7EDAAC00FDB99289F6F000B50C70F4E4969AE40FA0EBDF202427EBB55119A3131DB0758DF3BE956CE7838DB638CA4E1224546EFA34466017652E96E20DD76EEE8C96793EE96426785E9D219096CB91F2521DDF125007A2DB3DD2B784BBA1653B0F590A29F12C467A7595D203971F80C1BF92E517EA648383D34468FD40CCC5A207FB33A03869E884F878C997BDEC8DA2805C823D2F56505B70A7813F48AC177D780D70CD810938F9B41346F8379DF9073B23342CE38940730D5EAB1E7C43464B387EFAB49BE5AD6FFA4C44014D4128DCB74E4A2A6F1C13C5F3C4F79767203C8B8AED90AF270BA64A4BF83A5B172C3E01C7BC00126F0B19DA32D159602D77019B51959ABB7A588822896BD9AC54D7E4EE00601792FDF2D4AE0F18EDF99D45BC73400CB541D70690776EB676ED14F88228FB908059D45EC75F203AEC210B6E8A529874387CED25F384C2A9489FAAF0DB23813799EBC2DFA8EDEE42C70AD36D7919FBD5299927264EF36973C3FCCBBFF26B28C51F872E6C28BC4BA5B6DC0BD907C3E3A4F07F4201612E696144A19A9FF329A15390DD975D5C6723EF4EE0F7627BD5DDEE7AF819DB1D4A65D3233D6DF7D55F2A7952FF2DC4761CAD105047B41DB7845BBCFA7A291190F528409028A78F813E96C80E943CD4A6036513171D0ACEADE80C1A68E68112F8841F94D1CB01D0E6678EBD844E73D3066B9D53AD66F0B2381CB25A8F8676C7443C8A729C668861E62B6BB130B574853F2B4B2B7D73521C1D0FF16C1DAF6A4C42B143F4A3C3AF5FD819D49A70ED918C159C572A9A1C56E23F7945FD76FEAF95EA882A438C5197934BAF26DD5E2C702C14AA3556181B61240CF6001F37D62A40FC97721BC777A73E79FAAB902B29337E6A97DD60DFD402DAEC9C0D109A5985DA86DE967F35BDF2A6D35487D7557EA70C08403009D4E3C70C6266D6D909C7DD63A64D3FABC8FA067CB768746A90FC1078EE26F94BEFC1FA8639CF9CA02A171D4FAA8FFA3E1FB41727045DC6AC36DD28C1816B376C18D9FC2D766A2997F2A4802B7557D5228A89BA830F251C01B16E072F60F8E48CE613F495B130C322A692F22C1A653C6CA8650A96384F53D86427F47A84C56BC88F69812BFB23B332DD97E7B9F200FCAFFA4FC8E56B047239B5510679C8A51ACB95A2165CECFD18883868710A68D1CA7B07BC221534D356986F383C094582C8FC4326FA84DB89989A15F4320232D6F2936F8F06DC9D512993888D818EC4EFD30D77D27721572BD53082BFCD20DDCAEC50B8AA66457F0A00F283835F8D732DA4E3FEF7AB5204E8241A6FBE176E655456AEEAC5ACEDF24BC98FE84BBB13D224B407A44137A2F5D0832A46202D390A840BC89B16D282E8B0B4485F2E02CF62F82D71FAE36BE921C1D8DFEFB60BA3D774985D23D8F6476A8B4E92AD15E1E9054BA139D7B3C0B8C2DCE59F13E4A134F0BAFAE8EDBDC4613C22F95C5AC54811D54DF44717B29F64204229BA73BB9E8703ADF8363688B24F45BEDD266DE6EE71597B79A1A644E57C5CA4BBB4A04AA78817566E790875AF6C171A164ED955581329006AAEC6EE08B3172F193C8BDDC14743F538320AAAC74EF8AFE92B1FB117A581758F01EC0A9F050885820B50C88DEB4A8037ADA2D64B48E09F0C785BDAB98DF6D5193C08110508D2C6353A6617B31084BEC5D026459CF747B245A27FD77EB7E8C5FB89876A9EF58C452D3AB90A411B2E8239AFCEB56B3', 'hex'), '4,5');
|
(1, 'dev_xilonen', 'XilonenImpact', 'DEV_PUBLIC', 'global', 'http://127.0.0.1:21041/query_cur_region', 2, decode('456332621000000083FD4642C3298A7CBB33E0A04332058300080000BBFA992CD5433217198CB083995F29C7DD0CF0E30414DD89E70A3716B9EACB3935ADD70A8C6777E6BA31CEB50BDDDA259E8E104A8BBB0EE900DA167628EA277BE0365354C5F211051301202DA77ADBF26B792B3601E2E191E26B2EE31860EF8C7230373628A0CD0BA3AAA5FA6BA5BC78C46A7AD671287D64BDE6098CE62108D74D3C12C27F2F03495D60A6F7A55179FF0ED710EC708C225F0BB15F17C0D16FA990BEB3D08C35DE2E457685ACBE2FE1E32A73872DE59345E31623B3192AD0EC365D8A6F111EBC7374DA167FD7374952952738677F00D2E7D622A6718AAF647F461C27636F21E46D932C27CC148B1206E3A306A882A3B66288F96C5B3DBDB78A0699CEA20153CD494EB617C5FB04521E389338B6075EAE179368502EFF0FAF7FC57A5832266151D68129295E2C4B6476A8744BD8F066BB825DE45301DA8189CA956F89CA166D14DD3A6C2F75B91990B3201CDADA86BDE390632DA8633BCC301E28F60F60C71C0397CD4093DDDA51F0AD6C666B5EE7E7CD789260CED2941CD701296003E2926281472EAA56EA9256387A365A9171DBDA10BBB428DE396371E24F620A2656C0026B96E49C872DB31A9FDA82FA5082A3B9B1B94BEA2DBD6A4ECC94821A8C63D6181FFD733261A8A73902BF68EB8A5E9F87DEDD7C65EA3E521E04008B2C40FE138C9D1E1C61E376E9051DC4651ED94B2B91C330DDA6F816CAABE12E0A87F9748DBDCDA66E6DA7307CB8894EBF77B346D5F9543D45F5A21CD5966E6426B2DCB20F2D796079C86F881C5EB5A612068C1C04AEB87775D2A33F4862AA94CD26DBB66846972F3C2B41552D46ED18514FE0F0FA83473A024D0B2561417D4A6FDBB68F6F09FA130057A3048ADDCB745FB108AF6A9091F5A6872E668FF83F5C68445EB99B28F1AF515F8BD9365683AB819B275151F969BC15BA33C16B0714F15B19EE08540C971979A122BF2D598BDC5A8CAADDEEBFE9DA4EB15B16940213E38D79E1AB952E76A627647DD5ECED8C638D717BD05858DD377FFD62558DE398E2975286E73873AB32E94E65231B3C42DEF1D661D466E162DE5CA2FA82FB13379AA2587D723005C7FAF9DE64CE1D9ADC705BB62603591B1C3ACA8DE407827D1AC61B0414BBC660B13E8AC948623B061E154AA8FBC7EDAAC00FDB99289F6F000B50C70F4E4969AE40FA0EBDF202427EBB55119A3131DB0758DF3BE956CE7838DB638CA4E1224546EFA34466017652E96E20DD76EEE8C96793EE96426785E9D219096CB91F2521DDF125007A2DB3DD2B784BBA1653B0F590A29F12C467A7595D203971F80C1BF92E517EA648383D34468FD40CCC5A207FB33A03869E884F878C997BDEC8DA2805C823D2F56505B70A7813F48AC177D780D70CD810938F9B41346F8379DF9073B23342CE38940730D5EAB1E7C43464B387EFAB49BE5AD6FFA4C44014D4128DCB74E4A2A6F1C13C5F3C4F79767203C8B8AED90AF270BA64A4BF83A5B172C3E01C7BC00126F0B19DA32D159602D77019B51959ABB7A588822896BD9AC54D7E4EE00601792FDF2D4AE0F18EDF99D45BC73400CB541D70690776EB676ED14F88228FB908059D45EC75F203AEC210B6E8A529874387CED25F384C2A9489FAAF0DB23813799EBC2DFA8EDEE42C70AD36D7919FBD5299927264EF36973C3FCCBBFF26B28C51F872E6C28BC4BA5B6DC0BD907C3E3A4F07F4201612E696144A19A9FF329A15390DD975D5C6723EF4EE0F7627BD5DDEE7AF819DB1D4A65D3233D6DF7D55F2A7952FF2DC4761CAD105047B41DB7845BBCFA7A291190F528409028A78F813E96C80E943CD4A6036513171D0ACEADE80C1A68E68112F8841F94D1CB01D0E6678EBD844E73D3066B9D53AD66F0B2381CB25A8F8676C7443C8A729C668861E62B6BB130B574853F2B4B2B7D73521C1D0FF16C1DAF6A4C42B143F4A3C3AF5FD819D49A70ED918C159C572A9A1C56E23F7945FD76FEAF95EA882A438C5197934BAF26DD5E2C702C14AA3556181B61240CF6001F37D62A40FC97721BC777A73E79FAAB902B29337E6A97DD60DFD402DAEC9C0D109A5985DA86DE967F35BDF2A6D35487D7557EA70C08403009D4E3C70C6266D6D909C7DD63A64D3FABC8FA067CB768746A90FC1078EE26F94BEFC1FA8639CF9CA02A171D4FAA8FFA3E1FB41727045DC6AC36DD28C1816B376C18D9FC2D766A2997F2A4802B7557D5228A89BA830F251C01B16E072F60F8E48CE613F495B130C322A692F22C1A653C6CA8650A96384F53D86427F47A84C56BC88F69812BFB23B332DD97E7B9F200FCAFFA4FC8E56B047239B5510679C8A51ACB95A2165CECFD18883868710A68D1CA7B07BC221534D356986F383C094582C8FC4326FA84DB89989A15F4320232D6F2936F8F06DC9D512993888D818EC4EFD30D77D27721572BD53082BFCD20DDCAEC50B8AA66457F0A00F283835F8D732DA4E3FEF7AB5204E8241A6FBE176E655456AEEAC5ACEDF24BC98FE84BBB13D224B407A44137A2F5D0832A46202D390A840BC89B16D282E8B0B4485F2E02CF62F82D71FAE36BE921C1D8DFEFB60BA3D774985D23D8F6476A8B4E92AD15E1E9054BA139D7B3C0B8C2DCE59F13E4A134F0BAFAE8EDBDC4613C22F95C5AC54811D54DF44717B29F64204229BA73BB9E8703ADF8363688B24F45BEDD266DE6EE71597B79A1A644E57C5CA4BBB4A04AA78817566E790875AF6C171A164ED955581329006AAEC6EE08B3172F193C8BDDC14743F538320AAAC74EF8AFE92B1FB117A581758F01EC0A9F050885820B50C88DEB4A8037ADA2D64B48E09F0C785BDAB98DF6D5193C08110508D2C6353A6617B31084BEC5D026459CF747B245A27FD77EB7E8C5FB89876A9EF58C452D3AB90A411B2E8239AFCEB56B3', 'hex'), '4,5');
|
||||||
|
|
||||||
CREATE TABLE t_bind_config (
|
CREATE TABLE t_bind_config (
|
||||||
id bigint primary key,
|
id bigint primary key,
|
||||||
|
@ -54,7 +54,7 @@ CREATE TABLE t_bind_config (
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO t_bind_config VALUES
|
INSERT INTO t_bind_config VALUES
|
||||||
(1, 'CNCBWin5.0.50', 'dev_mualani', 1);
|
(1, 'CNCBWin5.0.50', 'dev_xilonen', 1);
|
||||||
|
|
||||||
CREATE TABLE t_channel_id_config (
|
CREATE TABLE t_channel_id_config (
|
||||||
id bigint primary key,
|
id bigint primary key,
|
||||||
|
@ -73,7 +73,7 @@ CREATE TABLE t_client_region_config (
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO t_client_region_config VALUES
|
INSERT INTO t_client_region_config VALUES
|
||||||
(1, 'CNCBWin5.0.50', 'dev_mualani', '');
|
(1, 'CNCBWin5.0.50', 'dev_xilonen', '');
|
||||||
|
|
||||||
CREATE TABLE t_rsakey_config (
|
CREATE TABLE t_rsakey_config (
|
||||||
id bigint primary key,
|
id bigint primary key,
|
||||||
|
|
|
@ -17,7 +17,7 @@ app_id = 4
|
||||||
inner_ip = "127.0.0.1:22004"
|
inner_ip = "127.0.0.1:22004"
|
||||||
|
|
||||||
[region]
|
[region]
|
||||||
name = "dev_mualani"
|
name = "dev_xilonen"
|
||||||
dev_sdk_account = true
|
dev_sdk_account = true
|
||||||
|
|
||||||
[database]
|
[database]
|
||||||
|
|
|
@ -23,8 +23,8 @@ use proto::{
|
||||||
EnterSceneDoneReq, EnterSceneDoneRsp, EnterScenePeerNotify, EnterSceneReadyReq, EnterType,
|
EnterSceneDoneReq, EnterSceneDoneRsp, EnterScenePeerNotify, EnterSceneReadyReq, EnterType,
|
||||||
MpLevelEntityInfo, PacketHead, PingReq, PingRsp, PlayerData, PlayerDataBin, PlayerDataNotify,
|
MpLevelEntityInfo, PacketHead, PingReq, PingRsp, PlayerData, PlayerDataBin, PlayerDataNotify,
|
||||||
PlayerEnterSceneInfoNotify, PlayerEnterSceneNotify, PlayerLoginRsp, PostEnterSceneReq,
|
PlayerEnterSceneInfoNotify, PlayerEnterSceneNotify, PlayerLoginRsp, PostEnterSceneReq,
|
||||||
PostEnterSceneRsp, Retcode, SavePlayerDataReq, SceneInitFinishReq, SetPlayerBornDataReq,
|
PostEnterSceneRsp, ResVersionConfig, Retcode, SavePlayerDataReq, SceneInitFinishReq,
|
||||||
TeamEnterSceneInfo, VisionType, YSMessage,
|
SetPlayerBornDataReq, TeamEnterSceneInfo, VisionType, YSMessage,
|
||||||
};
|
};
|
||||||
use rand::RngCore;
|
use rand::RngCore;
|
||||||
|
|
||||||
|
@ -146,6 +146,12 @@ impl Player {
|
||||||
player.init();
|
player.init();
|
||||||
|
|
||||||
player.login(rsp.is_new_player, false, 0, 0, false);
|
player.login(rsp.is_new_player, false, 0, 0, false);
|
||||||
|
|
||||||
|
let rsp = PlayerLoginRsp {
|
||||||
|
player_data: Vec::with_capacity(0),
|
||||||
|
..rsp
|
||||||
|
};
|
||||||
|
|
||||||
player.send_proto(rsp);
|
player.send_proto(rsp);
|
||||||
|
|
||||||
// First post-login save
|
// First post-login save
|
||||||
|
|
|
@ -17,7 +17,7 @@ app_id = 4
|
||||||
inner_ip = "127.0.0.1:22004"
|
inner_ip = "127.0.0.1:22004"
|
||||||
|
|
||||||
[region]
|
[region]
|
||||||
name = "dev_mualani"
|
name = "dev_xilonen"
|
||||||
dev_sdk_account = true
|
dev_sdk_account = true
|
||||||
|
|
||||||
[net.player_server]
|
[net.player_server]
|
||||||
|
|
Loading…
Reference in a new issue