Rename project to XilonenImpact

This commit is contained in:
xeon 2024-08-30 17:44:38 +03:00
parent f300d523ca
commit 6dbf7088ed
8 changed files with 22 additions and 16 deletions

View file

@ -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.

View file

@ -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.

View file

@ -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]

View file

@ -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]

View file

@ -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,

View file

@ -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]

View file

@ -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

View file

@ -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]