1.4 Walking simulator, rest of features incoming during weekend.

Any question from anyone trying to run from this commit will be ignored and blocked.
This commit is contained in:
xavo95 2024-10-19 14:57:25 +02:00
parent 395f249207
commit 85fbc933ba
Signed by: xavo95
GPG key ID: CBF8ADED6DEBB783
51 changed files with 4705067 additions and 181971 deletions

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
.idea
/target
/hotpatch.toml
/configserver.toml

View file

@ -2,5 +2,5 @@ FROM alpine:3.20
ARG MICROSERVICE
WORKDIR /app
COPY --from=shorekeeper-builder:1.3.0-SNAPSHOT /app/target/release/$MICROSERVICE ./service
COPY --from=camellya-builder:1.3.0-SNAPSHOT /app/target/release/$MICROSERVICE ./service
CMD ["./service"]

View file

@ -2,8 +2,16 @@
"default": {
"CdnUrl": [
{
"url": "http://127.0.0.1:10002/prod/client/",
"url": "https://cdn-huoshan-cn-mc.aki-game.com/prod/client/",
"weight": "2323"
},
{
"url": "https://cdn-qiniu-cn-mc.aki-game.com/prod/client/",
"weight": "1"
},
{
"url": "https://cdn-qcloud-cn-mc.aki-game.com/prod/client/",
"weight": "5443"
}
],
"SecondaryUrl": [],
@ -32,13 +40,13 @@
"GmOpen": false,
"IosAuditFirstDownloadTip": false,
"NoticeUrl": "http://127.0.0.1:10001/notice",
"MixUri": "rODM5DcqOhYsIOtsEuZWNGFa2guZgl57",
"ResUri": "rODM5DcqOhYsIOtsEuZWNGFa2guZgl57",
"MixUri": "fcQrWOPC2RkghpzsAE2kyGWD37QTm2mR",
"ResUri": "fcQrWOPC2RkghpzsAE2kyGWD37QTm2mR",
"LoginServers": [
{
"id": "f9e0fc655c1931bc03ad976e9fc14473",
"ip": "http://127.0.0.1:5500",
"name": "Shorekeeper"
"name": "Camellya"
}
],
"PrivateServers": {

View file

@ -1,60 +1,44 @@
{
"PackageVersion": "1.3.0",
"LauncherVersion": "1.3.9",
"ResourceVersion": "1.3.9",
"LauncherIndexSha1": {
"1.3.1": "90FDF17EA0B4015D43C344CB7229E76AB32549DD",
"1.3.2": "C9A587AB1FA6CA57CD23E0FB3F0103BFDCAA8E37",
"1.3.3": "1C7AF02F13DBE69637DB43039E2FFB8C9AD9A04B",
"1.3.4": "DA50F315041E216568A7713074C6475F6AB4530E",
"1.3.5": "EA9C6F6D5E920F47F96D8F8BC366A4CED62A0346",
"1.3.6": "8CA7E6573A52B16CFAA29E996D389918B6829E7A",
"1.3.7": "FCAAED58E5983027A82F52C350418CCE7BD531D2",
"1.3.8": "91D6231B3F4C9A6605B79E23D0C02F9790DD6BCF",
"1.3.9": "B36BD648AB2A637A4E087B7B115A6CCBDAEBDF9A"
},
"PackageVersion": "1.4.0",
"LauncherVersion": "1.4.0",
"ResourceVersion": "1.4.3",
"LauncherIndexSha1": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"ResourceIndexSha1": {
"1.3.1": "2D635E549EB6F99659571D72741B62249473A77A",
"1.3.2": "C5814A80EA3E7D80D4CFBCD884D1FD158BF0AD9D",
"1.3.3": "1E0F05333B09A9215B4AA5C437BFC7DC4014E348",
"1.3.4": "6155D492540A99ECF0DA06D2B7EEBFE36231FBC2",
"1.3.5": "1E60C8F60CA1AAA9955441B4F4265C8288B95F33",
"1.3.6": "AA10A8DD1025D5033E291060C686B816513ADCAD",
"1.3.7": "A9881305EBD3DC5A6892D49BDAF540F56EE56232",
"1.3.8": "261CA25DAD6877DF3C57DA39947130867FCC09CE",
"1.3.9": "88A9E40631FC1C11A91A61CB3F4BE8C13C5E2BD3"
"1.4.1": "0C747E444EC6DBA11D0C57B34E2638DE5182029F",
"1.4.2": "41751A94DBD406653DB52262E85BB716E45D9864",
"1.4.3": "424EDFD97BA8699CBC2CB9E27D3FCBB6F7C70806"
},
"ChangeList": "2333675",
"ChangeList": "2585778",
"CompatibleChangeLists": [],
"Versions": [
{
"Name": "en",
"Version": "1.3.0",
"Version": "1.4.0",
"IndexSha1": {
"1.3.0": "6FB5B66EF8B3EECBBBEBE74A82BC23E3FC35450B"
"1.4.0": "34F9AC326B3E81E972B93094E43751967A6A3396"
}
},
{
"Name": "ja",
"Version": "1.3.0",
"Version": "1.4.0",
"IndexSha1": {
"1.3.0": "E4DA1960DB36CE8166C042AD8B9AF98C1A9119F3"
"1.4.0": "3233223428D586FBC0A2EC817F4E94DDD10C646F"
}
},
{
"Name": "ko",
"Version": "1.3.0",
"Version": "1.4.0",
"IndexSha1": {
"1.3.0": "498B379E95FC617385CCD832B8C359FA5AC220CE"
"1.4.0": "3CC0312BDFFF5FA4D3F5256E2618D0EF6AA84912"
}
},
{
"Name": "zh",
"Version": "1.3.0",
"Version": "1.4.0",
"IndexSha1": {
"1.3.0": "CC58C357A80E7B3846264918197FC3ECAA1FE190"
"1.4.0": "2F3AD1412C6991FE0E146C5E2F6F86D8D9F44A5D"
}
}
],
"UpdateTime": 1725869509
"UpdateTime": 1729243476
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,246 @@
[
{
"PhantomSkillId": 1004,
"Name": "ExploreTools_1004_Name",
"SkillType": 1,
"CurrentSkillInfo": "ExploreTools_1004_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT3.SP_IconT3",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT3.SP_IconT3",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT3.SP_IconT3",
"SortId": 3,
"AutoFill": true,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1001,
"Name": "ExploreTools_1001_Name",
"SkillType": 1,
"CurrentSkillInfo": "ExploreTools_1001_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT6.SP_IconT6",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT6.SP_IconT6",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT6.SP_IconT6",
"SortId": 1,
"AutoFill": true,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1003,
"Name": "ExploreTools_1003_Name",
"SkillType": 1,
"CurrentSkillInfo": "ExploreTools_1003_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT1.SP_IconT1",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT1.SP_IconT1",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT1.SP_IconT1",
"SortId": 4,
"AutoFill": true,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1005,
"Name": "ExploreTools_1005_Name",
"SkillType": 2,
"CurrentSkillInfo": "ExploreTools_1005_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT2.SP_IconT2",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT2.SP_IconT2",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT2.SP_IconT2",
"SortId": 5,
"AutoFill": false,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1006,
"Name": "ExploreTools_1006_Name",
"SkillType": 2,
"CurrentSkillInfo": "ExploreTools_1006_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT5.SP_IconT5",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT5.SP_IconT5",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT5.SP_IconT5",
"SortId": 6,
"AutoFill": false,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1007,
"Name": "ExploreTools_1007_Name",
"SkillType": 1,
"CurrentSkillInfo": "ExploreTools_1007_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT29.SP_IconT29",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT29.SP_IconT29",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT29.SP_IconT29",
"SortId": 7,
"AutoFill": false,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1009,
"Name": "ExploreTools_1009_Name",
"SkillType": 1,
"CurrentSkillInfo": "ExploreTools_1009_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT9.SP_IconT9",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT9.SP_IconT9",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT9.SP_IconT9",
"SortId": 9,
"AutoFill": false,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": true,
"Cost": {},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 3001,
"Name": "ExploreTools_1009_Name",
"SkillType": 3,
"CurrentSkillInfo": "ExploreTools_1009_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT9.SP_IconT9",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT9.SP_IconT9",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT9.SP_IconT9",
"SortId": 10,
"AutoFill": false,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 3002,
"Name": "ExploreTools_1009_Name",
"SkillType": 3,
"CurrentSkillInfo": "ExploreTools_1009_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT9.SP_IconT9",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT9.SP_IconT9",
"BattleViewIcon": "/Game/Aki/UI/UIResources/UiSkillswitching/Atlas/SP_SkillswitchingItemNone.SP_SkillswitchingItemNone",
"SortId": 10,
"AutoFill": false,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1010,
"Name": "ExploreTools_1010_Name",
"SkillType": 1,
"CurrentSkillInfo": "ExploreTools_1010_CurrentSkillInfo",
"HelpId": 30,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT30.SP_IconT30",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT30.SP_IconT30",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT30.SP_IconT30",
"SortId": 11,
"AutoFill": true,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {
"10808": 1
},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1011,
"Name": "ExploreTools_1011_Name",
"SkillType": 1,
"CurrentSkillInfo": "ExploreTools_1011_CurrentSkillInfo",
"HelpId": 28,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT32.SP_IconT32",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT32.SP_IconT32",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT32.SP_IconT32",
"SortId": 12,
"AutoFill": true,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {
"10807": 1
},
"Authorization": {
"1": 10805,
"900": 10805
},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1012,
"Name": "ExploreTools_1012_Name",
"SkillType": 1,
"CurrentSkillInfo": "ExploreTools_1012_CurrentSkillInfo",
"HelpId": 29,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT31.SP_IconT31",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT31.SP_IconT31",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT31.SP_IconT31",
"SortId": 13,
"AutoFill": true,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {
"1": 10806,
"900": 10806
},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1013,
"Name": "ExploreTools_1013_Name",
"SkillType": 1,
"CurrentSkillInfo": "ExploreTools_1013_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT34.SP_IconT34",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT34.SP_IconT34",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT34.SP_IconT34",
"SortId": 14,
"AutoFill": true,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {},
"SummonConfigId": 24000022
}
]

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

View file

@ -1,246 +0,0 @@
[
{
"PhantomSkillId": 1004,
"Name": "ExploreTools_1004_Name",
"SkillType": 1,
"CurrentSkillInfo": "ExploreTools_1004_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT3.SP_IconT3",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT3.SP_IconT3",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT3.SP_IconT3",
"SortId": 3,
"AutoFill": true,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1001,
"Name": "ExploreTools_1001_Name",
"SkillType": 1,
"CurrentSkillInfo": "ExploreTools_1001_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT6.SP_IconT6",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT6.SP_IconT6",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT6.SP_IconT6",
"SortId": 1,
"AutoFill": true,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1003,
"Name": "ExploreTools_1003_Name",
"SkillType": 1,
"CurrentSkillInfo": "ExploreTools_1003_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT1.SP_IconT1",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT1.SP_IconT1",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT1.SP_IconT1",
"SortId": 4,
"AutoFill": true,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1005,
"Name": "ExploreTools_1005_Name",
"SkillType": 2,
"CurrentSkillInfo": "ExploreTools_1005_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT2.SP_IconT2",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT2.SP_IconT2",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT2.SP_IconT2",
"SortId": 5,
"AutoFill": false,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1006,
"Name": "ExploreTools_1006_Name",
"SkillType": 2,
"CurrentSkillInfo": "ExploreTools_1006_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT5.SP_IconT5",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT5.SP_IconT5",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT5.SP_IconT5",
"SortId": 6,
"AutoFill": false,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1007,
"Name": "ExploreTools_1007_Name",
"SkillType": 1,
"CurrentSkillInfo": "ExploreTools_1007_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT29.SP_IconT29",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT29.SP_IconT29",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT29.SP_IconT29",
"SortId": 7,
"AutoFill": false,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1009,
"Name": "ExploreTools_1009_Name",
"SkillType": 1,
"CurrentSkillInfo": "ExploreTools_1009_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT9.SP_IconT9",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT9.SP_IconT9",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT9.SP_IconT9",
"SortId": 9,
"AutoFill": false,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": true,
"Cost": {},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 3001,
"Name": "ExploreTools_1009_Name",
"SkillType": 3,
"CurrentSkillInfo": "ExploreTools_1009_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT9.SP_IconT9",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT9.SP_IconT9",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT9.SP_IconT9",
"SortId": 10,
"AutoFill": false,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 3002,
"Name": "ExploreTools_1009_Name",
"SkillType": 3,
"CurrentSkillInfo": "ExploreTools_1009_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT9.SP_IconT9",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT9.SP_IconT9",
"BattleViewIcon": "/Game/Aki/UI/UIResources/UiSkillswitching/Atlas/SP_SkillswitchingItemNone.SP_SkillswitchingItemNone",
"SortId": 10,
"AutoFill": false,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1010,
"Name": "ExploreTools_1010_Name",
"SkillType": 1,
"CurrentSkillInfo": "ExploreTools_1010_CurrentSkillInfo",
"HelpId": 30,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT30.SP_IconT30",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT30.SP_IconT30",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT30.SP_IconT30",
"SortId": 11,
"AutoFill": true,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {
"10808": 1
},
"Authorization": {},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1011,
"Name": "ExploreTools_1011_Name",
"SkillType": 1,
"CurrentSkillInfo": "ExploreTools_1011_CurrentSkillInfo",
"HelpId": 28,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT32.SP_IconT32",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT32.SP_IconT32",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT32.SP_IconT32",
"SortId": 12,
"AutoFill": true,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {
"10807": 1
},
"Authorization": {
"1": 10805,
"900": 10805
},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1012,
"Name": "ExploreTools_1012_Name",
"SkillType": 1,
"CurrentSkillInfo": "ExploreTools_1012_CurrentSkillInfo",
"HelpId": 29,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT31.SP_IconT31",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT31.SP_IconT31",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT31.SP_IconT31",
"SortId": 13,
"AutoFill": true,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {
"1": 10806,
"900": 10806
},
"SummonConfigId": 0
},
{
"PhantomSkillId": 1013,
"Name": "ExploreTools_1013_Name",
"SkillType": 1,
"CurrentSkillInfo": "ExploreTools_1013_CurrentSkillInfo",
"HelpId": 0,
"Icon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT34.SP_IconT34",
"BackGround": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT34.SP_IconT34",
"BattleViewIcon": "/Game/Aki/UI/UIResources/Common/Atlas/SkillIcon/SkillIconNor/SP_IconT34.SP_IconT34",
"SortId": 14,
"AutoFill": true,
"ShowUnlock": false,
"SkillGroupId": 1,
"IsUseInPhantomTeam": false,
"Cost": {},
"Authorization": {},
"SummonConfigId": 24000022
}
]

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,12 +1,12 @@
docker build -t shorekeeper-builder:1.3.0-SNAPSHOT -f Dockerfile-builder .
docker build -t camellya-builder:1.3.0-SNAPSHOT -f Dockerfile-builder .
docker build -t shorekeeper-config-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=config-server -f Dockerfile-service .
docker build -t shorekeeper-hotpatch-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=hotpatch-server -f Dockerfile-service .
docker build -t shorekeeper-login-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=login-server -f Dockerfile-service .
docker build -t shorekeeper-gateway-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=gateway-server -f Dockerfile-service .
docker build -t shorekeeper-game-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=game-server -f Dockerfile-service .
docker build -t camellya-config-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=config-server -f Dockerfile-service .
docker build -t camellya-hotpatch-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=hotpatch-server -f Dockerfile-service .
docker build -t camellya-login-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=login-server -f Dockerfile-service .
docker build -t camellya-gateway-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=gateway-server -f Dockerfile-service .
docker build -t camellya-game-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=game-server -f Dockerfile-service .
docker rmi shorekeeper-builder:1.3.0-SNAPSHOT
docker rmi camellya-builder:1.3.0-SNAPSHOT
: Persistence for the application
docker volume create shorekeeper-postgres-vol
docker volume create camellya-postgres-vol

View file

@ -1,12 +1,12 @@
docker build -t shorekeeper-builder:1.3.0-SNAPSHOT -f Dockerfile-builder .
docker build -t camellya-builder:1.3.0-SNAPSHOT -f Dockerfile-builder .
docker build -t shorekeeper-config-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=config-server -f Dockerfile-service .
docker build -t shorekeeper-hotpatch-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=hotpatch-server -f Dockerfile-service .
docker build -t shorekeeper-login-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=login-server -f Dockerfile-service .
docker build -t shorekeeper-gateway-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=gateway-server -f Dockerfile-service .
docker build -t shorekeeper-game-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=game-server -f Dockerfile-service .
docker build -t camellya-config-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=config-server -f Dockerfile-service .
docker build -t camellya-hotpatch-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=hotpatch-server -f Dockerfile-service .
docker build -t camellya-login-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=login-server -f Dockerfile-service .
docker build -t camellya-gateway-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=gateway-server -f Dockerfile-service .
docker build -t camellya-game-server:1.3.0-SNAPSHOT --build-arg MICROSERVICE=game-server -f Dockerfile-service .
docker rmi shorekeeper-builder:1.3.0-SNAPSHOT
docker rmi camellya-builder:1.3.0-SNAPSHOT
# Persistence for the application
docker volume create shorekeeper-postgres-vol
docker volume create camellya-postgres-vol

View file

@ -0,0 +1,13 @@
name: camellya-ps
services:
camellya-hotpatch-server:
image: camellya-hotpatch-server:1.3.0-SNAPSHOT
depends_on:
camellya-postgres:
condition: service_healthy
ports:
- '10002:10002'
volumes:
- "./docker/hotpatch.toml:/app/hotpatch.toml"
- "./assets/hotpatch:/app/assets/hotpatch"

View file

@ -1,39 +1,29 @@
name: shorekeeper-ps
name: camellya-ps
services:
shorekeeper-config-server:
image: shorekeeper-config-server:1.3.0-SNAPSHOT
camellya-config-server:
image: camellya-config-server:1.3.0-SNAPSHOT
depends_on:
shorekeeper-postgres:
camellya-postgres:
condition: service_healthy
ports:
- '10001:10001'
volumes:
- "./docker/configserver.toml:/app/configserver.toml"
- "./assets/config:/app/assets/config"
shorekeeper-hotpatch-server:
image: shorekeeper-hotpatch-server:1.3.0-SNAPSHOT
camellya-login-server:
image: camellya-login-server:1.3.0-SNAPSHOT
depends_on:
shorekeeper-postgres:
condition: service_healthy
ports:
- '10002:10002'
volumes:
- "./docker/hotpatch.toml:/app/hotpatch.toml"
- "./assets/hotpatch:/app/assets/hotpatch"
shorekeeper-login-server:
image: shorekeeper-login-server:1.3.0-SNAPSHOT
depends_on:
shorekeeper-postgres:
camellya-postgres:
condition: service_healthy
ports:
- '5500:5500'
volumes:
- "./docker/loginserver.toml:/app/loginserver.toml"
shorekeeper-gateway-server:
image: shorekeeper-gateway-server:1.3.0-SNAPSHOT
camellya-gateway-server:
image: camellya-gateway-server:1.3.0-SNAPSHOT
depends_on:
shorekeeper-postgres:
camellya-postgres:
condition: service_healthy
ports:
# Uncomment this if you want to have manual access
@ -41,10 +31,10 @@ services:
- '7777:7777/udp'
volumes:
- "./docker/gateway.toml:/app/gateway.toml"
shorekeeper-game-server:
image: shorekeeper-game-server:1.3.0-SNAPSHOT
camellya-game-server:
image: camellya-game-server:1.3.0-SNAPSHOT
depends_on:
shorekeeper-postgres:
camellya-postgres:
condition: service_healthy
# Uncomment this if you want to have manual access
# ports:
@ -52,12 +42,12 @@ services:
volumes:
- "./docker/gameserver.toml:/app/gameserver.toml"
- "./assets/logic:/app/assets/logic"
shorekeeper-postgres:
camellya-postgres:
image: postgres:16.4-alpine3.20
user: postgres
# Uncomment this if you want to have manual access
# ports:
# - '5432:5432'
ports:
- '5432:5432'
healthcheck:
test: ["CMD-SHELL", "pg_isready"]
interval: 10s
@ -67,7 +57,7 @@ services:
- "POSTGRES_PASSWORD=toor"
volumes:
- "./docker/postgres/scripts:/docker-entrypoint-initdb.d"
- shorekeeper-postgres-vol:/var/lib/postgresql/data
- camellya-postgres-vol:/var/lib/postgresql/data
volumes:
shorekeeper-postgres-vol:
camellya-postgres-vol:
external: true

View file

@ -1,3 +1,3 @@
CREATE DATABASE shorekeeper_db;
CREATE USER shorekeeper_user WITH encrypted password 'shorekeeper_pass';
GRANT ALL PRIVILEGES ON DATABASE shorekeeper_db to shorekeeper_user;
CREATE DATABASE camellya_db;
CREATE USER camellya_user WITH encrypted password 'camellya_pass';
GRANT ALL PRIVILEGES ON DATABASE camellya_db to camellya_user;

View file

@ -1,2 +1,2 @@
\c shorekeeper_db;
GRANT ALL ON SCHEMA public TO shorekeeper_user;
\c camellya_db;
GRANT ALL ON SCHEMA public TO camellya_user;

View file

@ -70,7 +70,7 @@ impl Attribute {
def,
energy_efficiency,
cd_reduse,
reaction_efficiency,
element_efficiency,
damage_change_normal_skill,
damage_change,
damage_reduce,

View file

@ -0,0 +1,14 @@
use shorekeeper_protocol::combat_message::{CombatSendPackRequest, CombatSendPackResponse};
use shorekeeper_protocol::ErrorCode;
use crate::logic::player::Player;
pub fn on_combat_message_combat_send_pack_request(
_player: &Player,
request: CombatSendPackRequest,
response: &mut CombatSendPackResponse,
) {
tracing::debug!("CombatSendPackRequest: for {:?}", request);
// TODO: Implement this
response.error_code = ErrorCode::Success.into();
}

View file

@ -0,0 +1,88 @@
use shorekeeper_protocol::{EntityActiveRequest, EntityActiveResponse, EntityLoadCompleteRequest,
EntityLoadCompleteResponse, EntityOnLandedRequest,
EntityOnLandedResponse, EntityPositionRequest, EntityPositionResponse,
ErrorCode, MovePackagePush,
};
use crate::{logic::ecs::component::ComponentContainer, logic::player::Player, query_components};
pub fn on_entity_active_request(
player: &Player,
request: EntityActiveRequest,
response: &mut EntityActiveResponse,
) {
let world = player.world.borrow();
if !world.is_in_world(request.entity_id) {
tracing::debug!(
"EntityActiveRequest: entity with id {} doesn't exist, player_id: {}",
request.entity_id,
player.basic_info.id
);
return;
};
if let Some(position) = query_components!(world, request.entity_id, Position).0 {
// TODO: proper entity "activation" logic
response.pos = Some(position.0.get_position_protobuf());
response.rot = Some(position.0.get_rotation_protobuf());
}
response.component_pbs = Vec::new(); // not implemented
response.error_code = ErrorCode::Success.into();
}
pub fn on_entity_on_landed_request(
_: &Player,
request: EntityOnLandedRequest,
_: &mut EntityOnLandedResponse,
) {
// TODO: More implementation?
tracing::debug!("EntityOnLandedRequest: entity with id {} landed", request.entity_id);
}
pub fn on_entity_position_request(_: &Player,
request: EntityPositionRequest,
_: &mut EntityPositionResponse,
) {
// TODO: Implement this
tracing::debug!(
"EntityPositionRequest: config with id {} for map {} position requested",
request.config_id, request.map_id
);
}
pub fn on_entity_load_complete_request(_: &Player,
request: EntityLoadCompleteRequest,
_: &mut EntityLoadCompleteResponse,
) {
// TODO: Implement this
tracing::debug!("EntityLoadCompleteRequest: for ids {:?}", request.entity_ids);
}
pub fn on_move_package_push(player: &mut Player, push: MovePackagePush) {
let world = player.world.borrow();
for moving_entity in push.moving_entities {
if !world.is_in_world(moving_entity.entity_id) {
tracing::debug!(
"MovePackage: entity with id {} doesn't exist",
moving_entity.entity_id
);
continue;
}
let Some(mut movement) = query_components!(world, moving_entity.entity_id, Movement).0
else {
tracing::warn!(
"MovePackage: entity {} doesn't have movement component",
moving_entity.entity_id
);
continue;
};
movement
.pending_movement_vec
.extend(moving_entity.move_infos);
}
}

View file

@ -0,0 +1,12 @@
use shorekeeper_protocol::{GuideInfoRequest, GuideInfoResponse};
use crate::logic::player::Player;
pub fn on_guide_info_request(
player: &Player,
request: GuideInfoRequest,
response: &mut GuideInfoResponse,
) {
// TODO: Implement this
response.guide_group_finish_list = Vec::new();
}

View file

@ -0,0 +1,16 @@
use shorekeeper_protocol::{MailBind, MailBindInfoRequest, MailBindInfoResponse};
use crate::logic::player::Player;
pub fn on_mail_bind_info_request(
_: &Player,
_: MailBindInfoRequest,
response: &mut MailBindInfoResponse,
) {
// TODO: Implement this
response.mail_bind = Some(MailBind {
is_bind: true,
is_reward: true,
close_time: -1,
});
}

View file

@ -1,4 +1,4 @@
use shorekeeper_protocol::{IYa, InputSettingRequest, InputSettingResponse};
use shorekeeper_protocol::{ErrorCode, Hih, InputSettingRequest, InputSettingResponse, InputSettingUpdateRequest, InputSettingUpdateResponse, LanguageSettingUpdateRequest, LanguageSettingUpdateResponse, ServerPlayStationPlayOnlyStateRequest, ServerPlayStationPlayOnlyStateResponse, VersionInfoPush};
use crate::logic::player::Player;
@ -7,5 +7,39 @@ pub fn on_input_setting_request(
_: InputSettingRequest,
response: &mut InputSettingResponse,
) {
response.i_ya = Some(IYa::default());
response.hih = Some(Hih::default());
}
pub fn on_input_setting_update_request(
_: &Player,
_: InputSettingUpdateRequest,
response: &mut InputSettingUpdateResponse,
) {
response.error_code = ErrorCode::Success.into();
}
pub fn on_language_setting_update_request(
_: &Player,
_: LanguageSettingUpdateRequest,
response: &mut LanguageSettingUpdateResponse,
) {
response.error_code = ErrorCode::Success.into();
}
pub fn on_server_play_station_play_only_state_request(
_: &Player,
_: ServerPlayStationPlayOnlyStateRequest,
response: &mut ServerPlayStationPlayOnlyStateResponse,
) {
response.play_station_play_only_state = false;
}
pub fn on_version_info_push(player: &Player, push: VersionInfoPush) {
// TODO: Shall we do safety check and ensure we have compatible versions?
tracing::debug!(
"Client versions: launcher: {}, app: {}, resources: {}",
push.launcher_version,
push.app_version,
push.resource_version
);
}

View file

@ -1,6 +1,15 @@
mod combat;
mod entity;
mod guide;
mod mail;
mod misc;
mod scene;
mod skill;
pub use combat::*;
pub use entity::*;
pub use guide::*;
pub use mail::*;
pub use misc::*;
pub use scene::*;
pub use skill::*;
@ -29,7 +38,14 @@ macro_rules! handle_request {
player.respond(response, msg.get_rpc_id());
},
)*
unhandled => ::tracing::warn!("can't find handler for request with message_id={unhandled}")
unhandled => {
::tracing::warn!("can't find handler for request with message_id={unhandled}");
let tmp = &*msg.remove_payload();
let (name, value) = shorekeeper_protocol::proto_dumper::get_debug_info(
unhandled, tmp,
).unwrap_or_else(|err| ("Error", err.to_string()));
tracing::debug!("trying to log unhandled data for message {name} with:\n{value}")
}
}
}
}
@ -55,7 +71,14 @@ macro_rules! handle_push {
[<on_ $($inner_package:snake _)? $name:snake _push>](player, push);
},
)*
unhandled => ::tracing::warn!("can't find handler for push with message_id={unhandled}")
unhandled => {
::tracing::warn!("can't find handler for push with message_id={unhandled}");
let tmp = &*msg.remove_payload();
let (name, value) = shorekeeper_protocol::proto_dumper::get_debug_info(
unhandled, tmp,
).unwrap_or_else(|err| ("Error", err.to_string()));
tracing::debug!("trying to log unhandled data for message {name} with:\n{value}")
}
}
}
}
@ -63,21 +86,42 @@ macro_rules! handle_push {
}
handle_request! {
// Scene
UpdateSceneDate;
EntityActive;
EntityOnLanded;
// Combat
CombatSendPack, combat_message;
// Skill
VisionExploreSkillSet;
// Entity
EntityActive;
EntityOnLanded;
EntityPosition;
EntityLoadComplete;
// Guide
GuideInfo;
// Mail
MailBindInfo;
// Misc
InputSetting;
InputSettingUpdate;
LanguageSettingUpdate;
ServerPlayStationPlayOnlyState;
// Scene
SceneTrace;
SceneLoadingFinish;
UpdateSceneDate;
// Skill
VisionExploreSkillSet;
}
handle_push! {
// Entity
MovePackage;
// Misc
VersionInfo;
}
pub fn handle_logic_message(player: &mut super::player::Player, msg: Message) {

View file

@ -1,10 +1,26 @@
use shorekeeper_protocol::combat_message::{CombatSendPackRequest, CombatSendPackResponse};
use shorekeeper_protocol::{
EntityActiveRequest, EntityActiveResponse, EntityOnLandedRequest, EntityOnLandedResponse,
ErrorCode, MovePackagePush, UpdateSceneDateRequest, UpdateSceneDateResponse,
use shorekeeper_protocol::{ErrorCode, SceneLoadingFinishRequest, SceneLoadingFinishResponse,
SceneTraceRequest, SceneTraceResponse, UpdateSceneDateRequest,
UpdateSceneDateResponse,
};
use crate::{logic::ecs::component::ComponentContainer, logic::player::Player, query_components};
use crate::logic::player::Player;
pub fn on_scene_trace_request(
_player: &Player,
request: SceneTraceRequest,
_: &mut SceneTraceResponse,
) {
tracing::debug!("SceneTraceRequest: trace id {}", request.scene_trace_id);
}
pub fn on_scene_loading_finish_request(
_player: &Player,
request: SceneLoadingFinishRequest,
response: &mut SceneLoadingFinishResponse,
) {
// TODO: Implement this if needed
response.error_code = ErrorCode::Success.into();
}
pub fn on_update_scene_date_request(
_player: &Player,
@ -13,75 +29,3 @@ pub fn on_update_scene_date_request(
) {
response.error_code = ErrorCode::Success.into();
}
pub fn on_combat_message_combat_send_pack_request(
_player: &Player,
_request: CombatSendPackRequest,
response: &mut CombatSendPackResponse,
) {
response.error_code = ErrorCode::Success.into();
}
pub fn on_entity_active_request(
player: &Player,
request: EntityActiveRequest,
response: &mut EntityActiveResponse,
) {
let world = player.world.borrow();
if !world.is_in_world(request.entity_id) {
tracing::debug!(
"EntityActiveRequest: entity with id {} doesn't exist, player_id: {}",
request.entity_id,
player.basic_info.id
);
return;
};
if let Some(position) = query_components!(world, request.entity_id, Position).0 {
// TODO: proper entity "activation" logic
response.pos = Some(position.0.get_position_protobuf());
response.rot = Some(position.0.get_rotation_protobuf());
}
response.component_pbs = Vec::new(); // not implemented
response.error_code = ErrorCode::Success.into();
}
pub fn on_entity_on_landed_request(
_: &Player,
request: EntityOnLandedRequest,
_: &mut EntityOnLandedResponse,
) {
tracing::debug!(
"EntityOnLandedRequest: entity with id {} landed",
request.entity_id
);
}
pub fn on_move_package_push(player: &mut Player, push: MovePackagePush) {
let world = player.world.borrow();
for moving_entity in push.moving_entities {
if !world.is_in_world(moving_entity.entity_id) {
tracing::debug!(
"MovePackage: entity with id {} doesn't exist",
moving_entity.entity_id
);
continue;
}
let Some(mut movement) = query_components!(world, moving_entity.entity_id, Movement).0
else {
tracing::warn!(
"MovePackage: entity {} doesn't have movement component",
moving_entity.entity_id
);
continue;
};
movement
.pending_movement_vec
.extend(moving_entity.move_infos);
}
}

View file

@ -47,17 +47,17 @@ impl Player {
// we need shorekeeper
// TODO: remove this part after implementing team switch
if !self.role_list.iter().any(|r| r.role_id == 1505) {
let mut shorekeeper = Role::new(1505);
shorekeeper.equip_weapon = 21050036;
self.role_list.push(shorekeeper);
if !self.role_list.iter().any(|r| r.role_id == 1603) {
let mut camellya = Role::new(1603);
camellya.equip_weapon = 21020026;
self.role_list.push(camellya);
}
self.formation_list.clear();
self.formation_list.push(RoleFormation {
id: 1,
cur_role: 1505,
role_id_set: HashSet::from([1505]),
cur_role: 1603,
role_id_set: HashSet::from([1603]),
is_current: true,
});
// End shorekeeper hardcode part
@ -258,7 +258,7 @@ impl Player {
name,
sex,
level: 1,
head_photo: 1505,
head_photo: 1603,
head_frame: 80060009,
..Default::default()
}),

View file

@ -24,7 +24,7 @@ use crate::{
use super::{ecs::world::World, player::Player, utils::world_util};
const WATER_MASK: &str = include_str!("../../watermask.js");
const WATER_MASK: &str = include_str!("../../watermask-rr.js");
const UID_FIX: &str = include_str!("../../uidfix.js");
const CENSORSHIP_FIX: &str = include_str!("../../censorshipfix.js");
@ -176,6 +176,7 @@ fn handle_logic_input(state: &mut LogicState, input: LogicInput) {
// TODO: maybe move somewhere else?
player.notify(JsPatchNotify {
// TODO: Add the possibility to customize size and text from options
content: WATER_MASK.to_string(),
});
player.notify(JsPatchNotify {

View file

@ -20,7 +20,7 @@ async fn main() -> Result<()> {
::common::splash::print_splash();
::common::logging::init(::tracing::Level::DEBUG);
shorekeeper_data::load_json_data("assets/logic/json")?;
shorekeeper_data::load_json_data("assets/logic/BinData")?;
let database = Arc::new(shorekeeper_database::connect_to(&CONFIG.database).await?);
shorekeeper_database::run_migrations(database.as_ref()).await?;

View file

@ -8,6 +8,9 @@ const UE = require("ue"),
UiLayer_1 = require("../../Ui/UiLayer");
var _a = require('../Module/WaterMask/WaterMaskController').WaterMaskView;
_a.LOo = 0.15;
_a.yOo = 700;
_a.IOo = 700;
_a.vOo = function () {
void 0 !== _a.SOo && _a.EOo();
var e = UiLayer_1.UiLayer.GetLayerRootUiItem(UiLayerType_1.ELayerType.WaterMask),
@ -21,7 +24,7 @@ _a.vOo = function () {
_ = e.widget.height / 2,
s = Math.ceil(e.widget.width / _a.yOo),
o = Math.ceil(e.widget.height / _a.IOo),
v = "discord.gg/reversedrooms";
v = "NCSO @ discord.gg/reversedrooms";
for (let a = 0; a < s; a++)
for (let e = 0; e < o; e++) {
var E = UE.KuroActorManager.SpawnActor(Info_1.Info.World, UE.UITextActor.StaticClass(), MathUtils_1

View file

@ -86,7 +86,7 @@ async fn on_login_request(
.flatten()
else {
tracing::debug!("login: account '{}' not found", &request.account);
response.code = ErrorCode::InvalidUserId.into();
response.error_code = ErrorCode::InvalidUserId.into();
return;
};
@ -100,7 +100,7 @@ async fn on_login_request(
&request.login_trace_id,
&account.user_id
);
response.code = ErrorCode::LoginRetry.into();
response.error_code = ErrorCode::LoginRetry.into();
return;
}
@ -113,7 +113,7 @@ async fn on_login_request(
ban_time_stamp,
ban_time_stamp - cur_time_stamp
);
response.code = ErrorCode::AccountIsBlocked.into();
response.error_code = ErrorCode::AccountIsBlocked.into();
return;
}
}
@ -134,12 +134,12 @@ async fn on_login_request(
"login: first login on account {}, awaiting create character request",
&account.user_id
);
response.code = ErrorCode::HaveNoCharacter.into();
response.error_code = ErrorCode::HaveNoCharacter.into();
return;
};
session.player_id = Some(player_id);
response.code = ErrorCode::Success.into();
response.error_code = ErrorCode::Success.into();
response.timestamp = time_util::unix_timestamp_ms() as i64;
tracing::info!(

View file

@ -16,7 +16,6 @@ pub struct BasePropertyData {
pub def: i32,
pub energy_efficiency: i32,
pub cd_reduse: i32,
pub reaction_efficiency: i32,
pub damage_change_normal_skill: i32,
pub damage_change: i32,
pub damage_reduce: i32,
@ -140,4 +139,5 @@ pub struct BasePropertyData {
pub paralysis_time_recover: i32,
pub element_energy_max: i32,
pub element_energy: i32,
pub element_efficiency: i32,
}

View file

@ -26,6 +26,7 @@ pub fn main() {
prost_build::Config::new()
.out_dir(CODEGEN_OUT_DIR)
.default_package_filename("shorekeeper")
.type_attribute(".", "#[derive(shorekeeper_protocol_derive::MessageID)]")
.type_attribute(".", "#[derive(serde::Serialize, serde::Deserialize)]")
.compile_protos(&[proto_file], &["shorekeeper"])

File diff suppressed because it is too large Load diff