Compare commits

...

8 commits
1.0.0 ... main

17 changed files with 450468 additions and 424259 deletions

116
README.md
View file

@ -1,57 +1,61 @@
# JingliuSR # JingliuSR
#### Honkai: Star Rail server emulator (3.4 beta) written in Zig. #### Honkai: Star Rail server emulator (3.4 beta) written in Zig.
# Saber who??? trash bin who??? # Saber who??? trash bin who???
![Screenshot](Screenshot.png) ![Screenshot](Screenshot.png)
## Requirements ## Requirements
[Zig 0.13.0 x64](https://ziglang.org/download/0.13.0/zig-windows-x86_64-0.13.0.zip) and [Zig 0.13.0 x64](https://ziglang.org/download/0.13.0/zig-windows-x86_64-0.13.0.zip)
[Proxy](https://git.xeondev.com/YYHEggEgg/FireflySR.Tool.Proxy/releases)
## Running
## Running
### From source ### Replacing mhypbase.dll
Windows: Replace [mhypbase.dll](https://git.xeondev.com/HonkaiSlopRail/jingliu-sr/raw/branch/main/mhypbase.dll) file in your game folder.
```
git clone https://git.xeondev.com/HonkaiSlopRail/jingliu-sr ### From source
cd jingliu-sr
zig build run-dispatch Windows:
zig build run- ```
``` git clone https://git.xeondev.com/HonkaiSlopRail/jingliu-sr
Then open Proxy then open client cd jingliu-sr
zig build run-dispatch
Linux: zig build run-gameserver
``` ```
git clone https://git.xeondev.com/HonkaiSlopRail/jingliu-sr Then open your client.
cd jingliu-sr
zig build run-dispatch & zig build run-gameserver Linux:
``` ```
Then open Proxy then open client git clone https://git.xeondev.com/HonkaiSlopRail/jingliu-sr
cd jingliu-sr
### Using Pre-built Binaries zig build run-dispatch & zig build run-gameserver
Navigate to the [Releases](https://git.xeondev.com/HonkaiSlopRail/jingliu-sr/releases) ```
page and download the latest release for your platform. Then open your client.
## Connecting ### Using Pre-built Binaries
[Get 3.3.51 client](https://gofile.io/d/tWhXrJ) Navigate to the [Releases](https://git.xeondev.com/HonkaiSlopRail/jingliu-sr/releases)
page and download the latest release for your platform.
## Functionality (work in progress)
- Login and player spawn ## Connecting
- Test battle via calyx [Get 3.3.51 client](https://gofile.io/d/tWhXrJ)
- MOC/PF/AS simulator
- Gacha simulator ## Functionality (work in progress)
- Support command for Sillyism (there are some bugs right now ) - Login and player spawn
- Test battle via calyx
## Contributing - MOC/PF/AS simulator
- Gacha simulator
Pull requests are welcome. For major changes, please open an issue first to discuss - Support command for Sillyism (there are some bugs right now )
what you would like to change, and why.
## Contributing
## Bug Reports
Pull requests are welcome. For major changes, please open an issue first to discuss
If you find a bug, please open an issue with as much detail as possible. If you what you would like to change, and why.
can, please include steps to reproduce the bug.
## Bug Reports
Bad issues such as "This doesn't work" will be closed immediately, be _sure_ to
provide exact detailed steps to reproduce your bug. If it's hard to reproduce, try If you find a bug, please open an issue with as much detail as possible. If you
can, please include steps to reproduce the bug.
Bad issues such as "This doesn't work" will be closed immediately, be _sure_ to
provide exact detailed steps to reproduce your bug. If it's hard to reproduce, try
to explain it and write a reproducer as best as you can. to explain it and write a reproducer as best as you can.

View file

@ -1,328 +1,184 @@
{ {
"avatar_config": [ "avatar_config": [
{ {
"name": "Jingliu", "name": "Saber",
"id": 1212, "id": 1014,
"hp": 100, "hp": 100,
"sp": 50, "sp": 0,
"level": 80, "level": 80,
"promotion": 6, "promotion": 6,
"rank": 0, "rank": 6,
"lightcone": { "lightcone": {
"id": 23014, "id": 23045,
"rank": 1, "rank": 1,
"level": 80, "level": 80,
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61041,15,1,4,5:1:0,6:3:5,8:1:1,9:4:4", "61261,15,1,4,6:4:4,3:3:3,11:1:1,2:1:1",
"61022,15,1,4,3:1:1,6:3:3,8:1:1,9:3:3", "61262,15,1,4,5:1:1,12:2:2,10:4:4,11:2:2",
"61043,15,5,4,6:1:1,8:3:3,10:3:3,12:2:1", "61263,15,5,4,8:2:2,6:2:2,5:2:2,10:3:3",
"61024,15,4,4,2:1:2,5:1:1,8:4:4,9:3:0", "61264,15,4,4,11:3:3,5:3:3,10:1:1,2:2:2",
"63095,15,6,4,2:1:0,3:3:4,8:2:3,11:2:4", "63095,15,8,4,11:2:2,12:3:3,10:3:3,5:1:1",
"63096,15,2,4,1:1:0,2:2:4,7:3:1,9:2:3" "63096,15,4,4,6:2:2,3:2:2,8:3:3,11:2:2"
], ],
"use_technique": false "use_technique": true
}, },
{ {
"name": "Silver Wolf", "name": "Hyacine",
"id": 1006, "id": 1409,
"hp": 100, "hp": 100,
"sp": 50, "sp": 50,
"level": 80, "level": 80,
"promotion": 6, "promotion": 6,
"rank": 0, "rank": 6,
"lightcone": { "lightcone": {
"id": 23007, "id": 23042,
"rank": 1, "rank": 1,
"level": 80, "level": 80,
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61141,15,1,4,2:3:2,4:2:3,7:2:1,11:1:2", "61251,15,1,4,12:3:3,6:4:4,5:1:1,4:1:1",
"61142,15,1,4,3:1:0,6:1:1,7:4:4,9:2:0", "61252,15,1,4,10:2:2,12:2:2,7:3:3,9:2:2",
"61113,15,7,4,2:1:2,6:3:2,7:3:1,11:1:0", "61253,15,6,4,1:1:1,5:3:3,3:4:4,6:1:1",
"61114,15,4,4,3:1:2,4:3:3,10:3:4,11:2:1", "61254,15,4,4,1:2:2,8:3:3,12:2:2,5:2:2",
"63125,15,1,4,2:2:4,7:3:1,11:2:2,12:2:3", "63205,15,1,4,8:3:3,5:2:2,7:2:2,12:2:2",
"63126,15,2,4,6:1:0,7:2:1,9:3:1,10:2:2" "63206,15,3,4,6:2:2,7:1:1,8:4:4,3:2:2"
], ],
"use_technique": false "use_technique": true
}, },
{ {
"name": "Kafka", "name": "Tribbie",
"id": 1005, "id": 1403,
"hp": 100, "hp": 100,
"sp": 50, "sp": 50,
"level": 80, "level": 80,
"promotion": 6, "promotion": 6,
"rank": 0, "rank": 6,
"lightcone": { "lightcone": {
"id": 23006, "id": 23038,
"rank": 1, "rank": 1,
"level": 80, "level": 80,
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61161,15,1,4,5:1:1,6:2:2,7:3:1,8:2:2", "61241,15,1,4,6:3:3,12:1:1,2:3:3,7:2:2",
"61162,15,1,4,1:2:2,5:2:2,9:2:2,10:2:3", "61242,15,1,4,8:2:2,5:2:2,10:1:1,9:4:4",
"61163,15,2,4,7:3:1,8:1:1,10:2:2,11:2:3", "61243,15,5,4,5:2:2,12:2:2,2:2:2,6:3:3",
"61164,15,4,4,1:1:0,8:2:0,9:2:1,11:3:4", "61244,15,1,4,11:2:2,7:3:3,12:2:2,8:2:2",
"63115,15,7,4,1:3:4,2:1:2,8:1:0,9:3:0", "63195,15,1,4,10:4:4,8:1:1,1:2:2,2:2:2",
"63116,15,4,4,1:2:2,8:3:0,11:1:2,12:2:4" "63196,15,2,4,5:3:3,12:2:2,3:3:3,7:1:1"
], ],
"use_technique": false "use_technique": true
}, },
{ {
"name": "Saber", "name": "Silver Wolf",
"id": 1014, "id": 1006,
"hp": 100, "hp": 100,
"sp": 50, "sp": 50,
"level": 80, "level": 80,
"promotion": 6, "promotion": 6,
"rank": 6, "rank": 6,
"lightcone": { "lightcone": {
"id": 23045, "id": 23029,
"rank": 5, "rank": 5,
"level": 80, "level": 80,
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61261,15,1,4,5:2:2,7:1:1,8:3:3,9:3:3", "61081,15,1,4,8:2:2,7:2:2,2:2:2,9:3:3",
"61262,15,1,4,9:1:1,7:3:3,5:3:3,8:2:2", "61082,15,1,4,10:3:3,1:3:3,11:1:1,6:2:2",
"61263,15,5,4,7:2:2,8:3:3,5:3:3,4:1:1", "61083,15,7,4,12:4:4,5:2:2,2:1:1,8:2:2",
"61264,15,4,4,8:2:2,9:3:3,5:2:2,4:2:2", "61084,15,4,4,5:1:1,9:1:1,8:3:3,10:4:4",
"63095,15,8,4,9:2:2,8:1:1,5:3:3,7:3:3", "63035,15,9,4,12:2:2,8:1:1,3:3:3,11:3:3",
"63096,15,4,4,9:2:2,8:2:2,7:3:3,4:2:2" "63036,15,2,4,5:1:1,3:2:2,10:3:3,7:3:3"
], ],
"use_technique": true "use_technique": true
}, },
{ {
"name": "Archer", "name": "Phainon",
"id": 1015, "id": 1408,
"hp": 100, "hp": 100,
"sp": 50, "sp": 50,
"level": 80, "level": 80,
"promotion": 6, "promotion": 6,
"rank": 0, "rank": 0,
"lightcone": { "lightcone": {
"id": 23046, "id": 23044,
"rank": 1, "rank": 1,
"level": 80, "level": 80,
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61261,15,1,4,8:2:2,2:3:3,4:1:1,12:3:3", "61261,15,1,4,5:2:2,2:2:2,3:3:3,9:2:2",
"61262,15,1,4,10:2:2,11:3:3,12:3:3,6:1:1", "61262,15,1,4,12:3:3,1:3:3,5:1:1,8:2:2",
"61263,15,5,4,4:2:2,10:3:3,11:2:2,12:2:2", "61263,15,5,4,3:1:1,7:3:3,10:4:4,4:1:1",
"61264,15,2,4,10:2:2,6:2:2,9:4:4,2:1:1", "61264,15,4,4,8:1:1,12:1:1,1:5:5,3:2:2",
"63145,15,9,4,4:1:1,6:4:4,9:1:1,5:3:3", "63215,15,4,4,4:1:1,9:1:1,5:4:4,3:3:3",
"63146,15,4,4,1:3:3,10:3:3,9:1:1,11:2:2" "63216,15,4,4,10:3:3,7:2:2,9:3:3,6:1:1"
], ],
"use_technique": true "use_technique": true
}, },
{ {
"name": "Phainon", "name": "Kafka",
"id": 1408, "id": 1005,
"hp": 100, "hp": 100,
"sp": 50, "sp": 50,
"level": 80, "level": 80,
"promotion": 6, "promotion": 6,
"rank": 0, "rank": 0,
"lightcone": { "lightcone": {
"id": 23044, "id": 23006,
"rank": 1, "rank": 1,
"level": 80, "level": 80,
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61261,15,1,4,6:1:1,9:3:3,12:3:3,4:2:2", "61161,15,1,4,2:2:2,8:3:3,9:2:2,6:2:2",
"61262,15,1,4,9:4:4,11:1:1,5:2:2,8:2:2", "61162,15,1,4,4:2:2,5:2:2,7:3:3,6:2:2",
"61263,15,5,4,3:2:2,2:2:2,5:4:4,6:1:1", "61163,15,2,4,10:3:3,11:1:1,8:3:3,9:2:2",
"61264,15,2,4,10:1:1,12:3:3,8:1:1,4:4:4", "61164,15,4,4,10:2:2,1:1:1,8:4:4,6:2:2",
"63225,15,4,4,9:1:1,4:2:2,6:2:2,3:4:4", "63225,15,7,4,5:2:2,10:2:2,2:3:3,3:2:2",
"63226,15,4,4,1:3:3,8:2:2,2:2:2,3:2:2" "63226,15,4,4,2:4:4,7:3:3,3:1:1,1:1:1"
], ],
"use_technique": false "use_technique": true
}, },
{ {
"name": "Hyacine", "name": "Jingliu",
"id": 1409, "id": 1212,
"hp": 100, "hp": 100,
"sp": 50, "sp": 50,
"level": 80, "level": 80,
"promotion": 6, "promotion": 6,
"rank": 0, "rank": 6,
"lightcone": { "lightcone": {
"id": 23042, "id": 23014,
"rank": 1, "rank": 5,
"level": 80, "level": 80,
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61251,15,1,4,3:1:2,4:3:1,7:1:0,9:3:2", "61261,15,1,4,11:3:3,7:1:1,3:3:3,12:2:2",
"61252,15,1,4,1:2:4,7:3:1,9:2:0,12:1:2", "61262,15,1,4,5:3:3,4:2:2,6:3:3,7:1:1",
"61253,15,6,4,6:2:2,7:3:1,9:1:2,11:2:3", "61263,15,5,4,8:2:2,6:3:3,7:1:1,10:3:3",
"61254,15,4,4,1:3:2,5:1:1,9:2:2,11:2:2", "61264,15,4,4,10:1:1,4:4:4,5:2:2,12:2:2",
"63205,15,1,4,1:1:0,6:1:2,7:3:1,9:3:2", "63195,15,6,4,6:3:3,12:1:1,9:2:2,8:3:3",
"63206,15,3,4,3:1:0,6:2:2,7:4:4,9:1:0" "63196,15,3,4,10:3:3,8:3:3,7:2:2,6:1:1"
], ],
"use_technique": false "use_technique": true
}, }
{ ],
"name": "Castorice", "battle_config": {
"id": 1407, "battle_id": 1,
"hp": 100, "stage_id": 201012311,
"sp": 50, "cycle_count": 30,
"level": 80, "monster_wave": [
"promotion": 6, [
"rank": 0, 4015011
"lightcone": { ]
"id": 23040, ],
"rank": 1, "monster_level": 95,
"level": 80, "blessings": []
"promotion": 6 }
},
"relics": [
"61241,15,1,4,5:2:3,8:2:1,9:3:3,12:1:0",
"61242,15,1,4,4:3:2,5:1:2,6:1:0,9:3:2",
"61243,15,5,4,1:1:0,4:1:0,8:3:3,10:3:3",
"61244,15,1,4,1:1:1,2:2:3,8:2:0,9:3:5",
"63195,15,1,4,1:3:6,2:1:0,8:2:2,9:2:1",
"63196,15,3,4,3:1:1,8:4:5,9:3:1,10:1:1"
],
"use_technique": false
},
{
"name": "Traiblazer",
"id": 8008,
"hp": 100,
"sp": 50,
"level": 80,
"promotion": 6,
"rank": 6,
"lightcone": {
"id": 24005,
"rank": 5,
"level": 80,
"promotion": 6
},
"relics": [
"61231,15,1,4,3:1:0,7:2:4,9:2:4,10:3:1",
"61232,15,1,4,7:2:1,9:4:2,10:1:1,11:1:2",
"61233,15,5,4,4:2:2,7:4:1,10:1:1,12:2:1",
"61234,15,4,4,3:1:8,4:2:2,9:3:2,11:2:1",
"63085,15,1,4,1:1:2,5:3:1,7:2:1,9:2:2",
"63086,15,2,4,1:3:4,2:2:2,9:1:1,10:2:3"
],
"use_technique": false
},
{
"name": "March 7th",
"id": 1224,
"hp": 100,
"sp": 50,
"level": 80,
"promotion": 6,
"rank": 6,
"lightcone": {
"id": 24001,
"rank": 5,
"level": 80,
"promotion": 6
},
"relics": [
"61021,15,1,4,5:1:0,8:2:4,9:4:6,10:2:2",
"61202,15,1,4,5:3:3,8:2:4,9:1:1,11:2:3",
"61023,15,5,4,2:1:1,7:1:0,8:4:4,10:3:4",
"61204,15,2,4,3:1:0,6:1:0,8:5:2,9:2:1",
"63095,15,2,4,1:2:3,8:2:2,9:2:3,11:3:3",
"63096,15,2,4,5:3:3,6:2:4,9:2:0,11:2:3"
],
"use_technique": false
},
{
"name": "Huohuo",
"id": 1217,
"hp": 100,
"sp": 50,
"level": 80,
"promotion": 6,
"rank": 0,
"lightcone": {
"id": 23017,
"rank": 1,
"level": 80,
"promotion": 6
},
"relics": [
"61141,15,1,4,4:2:3,8:3:1,10:1:1,12:2:2",
"61142,15,1,4,1:2:0,4:1:2,7:3:3,11:2:3",
"61143,15,6,4,1:2:3,4:2:2,9:1:2,10:3:5",
"61144,15,4,4,1:1:1,4:3:4,6:1:0,11:3:2",
"63085,15,1,4,1:3:4,7:2:1,11:3:3,12:1:0",
"63086,15,2,4,2:1:2,3:3:5,11:2:3,12:2:2"
],
"use_technique": false
},
{
"name": "Sunday",
"id": 1313,
"hp": 100,
"sp": 50,
"level": 80,
"promotion": 6,
"rank": 0,
"lightcone": {
"id": 23034,
"rank": 1,
"level": 80,
"promotion": 6
},
"relics": [
"61211,15,1,4,5:3:3,7:3:3,8:1:1,9:2:2",
"61212,15,1,4,9:4:4,7:2:2,5:2:2,8:1:1",
"61213,15,5,4,7:2:2,8:1:1,5:4:4,4:2:2",
"61214,15,4,4,8:3:3,9:2:2,5:2:2,4:2:2",
"63175,15,1,4,9:2:2,8:1:1,5:3:3,7:3:3",
"63176,15,2,4,9:4:4,8:1:1,7:2:2,4:2:2"
],
"use_technique": true
},
{
"name": "Tribbie",
"id": 1403,
"hp": 100,
"sp": 50,
"level": 80,
"promotion": 6,
"rank": 0,
"lightcone": {
"id": 23038,
"rank": 1,
"level": 80,
"promotion": 6
},
"relics": [
"61241,15,1,4,8:2:1,9:2:4,11:2:2,12:2:2",
"61242,15,1,4,3:1:0,4:2:0,6:1:8,9:3:2",
"61243,15,5,4,3:2:4,8:3:2,10:1:0,11:2:3",
"61244,15,1,4,1:2:3,3:2:2,8:2:2,9:2:2",
"63195,15,1,4,1:2:4,5:1:1,8:4:4,9:1:1",
"63196,15,2,4,4:1:1,8:3:5,9:1:2,12:3:3"
],
"use_technique": true
}
],
"battle_config": {
"battle_id": 1,
"stage_id": 201012311,
"cycle_count": 30,
"monster_wave": [
[
4015011
]
],
"monster_level": 95,
"blessings": []
}
} }

View file

@ -23,6 +23,7 @@ fn isInList(id: u32, list: []const u32) bool {
} }
pub var max_avatar_list: u32 = 0; pub var max_avatar_list: u32 = 0;
pub var initial_uid: u32 = 0;
fn syncItems(session: *Session, allocator: Allocator, equip_avatar: bool) !void { fn syncItems(session: *Session, allocator: Allocator, equip_avatar: bool) !void {
resetGlobalUidGens(); resetGlobalUidGens();
@ -61,6 +62,10 @@ fn syncItems(session: *Session, allocator: Allocator, equip_avatar: bool) !void
try sync.relic_list.append(r); try sync.relic_list.append(r);
} }
} }
if (!equip_avatar) {
const getcurrent_uid = getCurrentGlobalId();
initial_uid = getcurrent_uid;
}
try session.send(CmdID.CmdPlayerSyncScNotify, sync); try session.send(CmdID.CmdPlayerSyncScNotify, sync);
} }
@ -232,7 +237,7 @@ pub fn onSyncMultiPath(session: *Session, _: []const u8, allocator: Allocator) E
pub var global_uid_gen: UidGenerator = undefined; pub var global_uid_gen: UidGenerator = undefined;
fn resetGlobalUidGens() void { fn resetGlobalUidGens() void {
global_uid_gen = UidGenerator.init(0); global_uid_gen = UidGenerator.init(initial_uid);
} }
pub fn nextGlobalId() u32 { pub fn nextGlobalId() u32 {

View file

@ -88,6 +88,7 @@ const HandlerList = [_]struct { CmdID, Action }{
.{ CmdID.CmdGetTutorialCsReq, mission.onGetTutorialStatus }, .{ CmdID.CmdGetTutorialCsReq, mission.onGetTutorialStatus },
.{ CmdID.CmdUnlockTutorialGuideCsReq, mission.onUnlockTutorialGuide }, .{ CmdID.CmdUnlockTutorialGuideCsReq, mission.onUnlockTutorialGuide },
.{ CmdID.CmdUnlockTutorialCsReq, mission.onUnlockTutorial }, .{ CmdID.CmdUnlockTutorialCsReq, mission.onUnlockTutorial },
.{ CmdID.CmdFinishTalkMissionCsReq, mission.onFinishTalkMission },
//chat //chat
.{ CmdID.CmdGetFriendListInfoCsReq, chat.onGetFriendListInfo }, .{ CmdID.CmdGetFriendListInfoCsReq, chat.onGetFriendListInfo },
.{ CmdID.CmdGetPrivateChatHistoryCsReq, chat.onPrivateChatHistory }, .{ CmdID.CmdGetPrivateChatHistoryCsReq, chat.onPrivateChatHistory },

View file

@ -5,6 +5,7 @@ const Packet = @import("../Packet.zig");
const Config = @import("../services/config.zig"); const Config = @import("../services/config.zig");
const Data = @import("../data.zig"); const Data = @import("../data.zig");
const ChallengeData = @import("../services/challenge.zig"); const ChallengeData = @import("../services/challenge.zig");
const NodeCheck = @import("../commands/value.zig");
const ArrayList = std.ArrayList; const ArrayList = std.ArrayList;
const Allocator = std.mem.Allocator; const Allocator = std.mem.Allocator;
@ -225,19 +226,27 @@ fn addBattleTargets(allocator: Allocator, battle: *protocol.SceneBattleInfo) !vo
// target hardcode // target hardcode
var pfTargetHead = protocol.BattleTargetList{ .battle_target_list = ArrayList(protocol.BattleTarget).init(allocator) }; var pfTargetHead = protocol.BattleTargetList{ .battle_target_list = ArrayList(protocol.BattleTarget).init(allocator) };
try pfTargetHead.battle_target_list.append(.{ .id = 10002, .progress = 0, .total_progress = 0 }); if (ChallengeData.on_challenge == true) {
if (NodeCheck.challenge_node == 0) {
try pfTargetHead.battle_target_list.append(.{ .id = 10003, .progress = 0, .total_progress = 80000 });
} else {
try pfTargetHead.battle_target_list.append(.{ .id = 10003, .progress = 40000, .total_progress = 80000 });
}
} else {
try pfTargetHead.battle_target_list.append(.{ .id = 10002, .progress = 0, .total_progress = 80000 });
}
var pfTargetTail = protocol.BattleTargetList{ .battle_target_list = ArrayList(protocol.BattleTarget).init(allocator) }; var pfTargetTail = protocol.BattleTargetList{ .battle_target_list = ArrayList(protocol.BattleTarget).init(allocator) };
try pfTargetTail.battle_target_list.append(.{ .id = 2001, .progress = 0, .total_progress = 0 }); try pfTargetTail.battle_target_list.append(.{ .id = 2001, .progress = 0, .total_progress = 0 });
try pfTargetTail.battle_target_list.append(.{ .id = 2002, .progress = 0, .total_progress = 0 }); try pfTargetTail.battle_target_list.append(.{ .id = 2002, .progress = 0, .total_progress = 0 });
var asTargetHead = protocol.BattleTargetList{ .battle_target_list = ArrayList(protocol.BattleTarget).init(allocator) }; var asTargetHead = protocol.BattleTargetList{ .battle_target_list = ArrayList(protocol.BattleTarget).init(allocator) };
try asTargetHead.battle_target_list.append(.{ .id = 90005, .progress = 0, .total_progress = 0 }); try asTargetHead.battle_target_list.append(.{ .id = 90005, .progress = 2000, .total_progress = 0 });
switch (battle.stage_id) { switch (battle.stage_id) {
// PF // PF
30019000...30019100, 30021000...30021100, 30301000...30319000 => { 30019000...30019100, 30021000...30021100, 30301000...30319000 => {
try battle.battle_target_info.append(.{ .key = 1, .value = pfTargetHead }); try battle.battle_target_info.append(.{ .key = 1, .value = pfTargetHead });
// fill blank target // fill blank target
for (2..5) |i| { for (2..4) |i| {
try battle.battle_target_info.append(.{ .key = @intCast(i) }); try battle.battle_target_info.append(.{ .key = @intCast(i) });
} }
try battle.battle_target_info.append(.{ .key = 5, .value = pfTargetTail }); try battle.battle_target_info.append(.{ .key = 5, .value = pfTargetTail });

View file

@ -13,6 +13,18 @@ const ArrayList = std.ArrayList;
const Allocator = std.mem.Allocator; const Allocator = std.mem.Allocator;
const CmdID = protocol.CmdID; const CmdID = protocol.CmdID;
// Function to check if a list contatin an ID
fn containsAny(list: []const u32, ids: []const u32) bool {
for (ids) |id| {
for (list) |item| {
if (item == id) {
return true;
}
}
}
return false;
}
pub const LineupManager = struct { pub const LineupManager = struct {
allocator: std.mem.Allocator, allocator: std.mem.Allocator,
pub fn init(allocator: std.mem.Allocator) LineupManager { pub fn init(allocator: std.mem.Allocator) LineupManager {
@ -32,6 +44,10 @@ pub const LineupManager = struct {
} }
var avatar = protocol.LineupAvatar.init(self.allocator); var avatar = protocol.LineupAvatar.init(self.allocator);
avatar.id = avatarConf.id; avatar.id = avatarConf.id;
if (avatarConf.id == 1408) {
lineup.mp = 7;
lineup.max_mp = 7;
}
avatar.slot = @intCast(idx); avatar.slot = @intCast(idx);
avatar.satiety = 0; avatar.satiety = 0;
avatar.hp = avatarConf.hp * 100; avatar.hp = avatarConf.hp * 100;
@ -69,6 +85,10 @@ pub const ChallengeLineupManager = struct {
for (avatar_list.items, 0..) |avatarlist, idx| { for (avatar_list.items, 0..) |avatarlist, idx| {
var avatar = protocol.LineupAvatar.init(self.allocator); var avatar = protocol.LineupAvatar.init(self.allocator);
avatar.id = avatarlist; avatar.id = avatarlist;
if (avatarlist == 1408) {
lineup.mp = 7;
lineup.max_mp = 7;
}
avatar.slot = @intCast(idx); avatar.slot = @intCast(idx);
avatar.satiety = 0; avatar.satiety = 0;
avatar.hp = 10000; avatar.hp = 10000;

View file

@ -33,7 +33,7 @@ pub const SceneManager = struct {
scene_info.plane_id = plane_id; scene_info.plane_id = plane_id;
scene_info.floor_id = floor_id; scene_info.floor_id = floor_id;
scene_info.entry_id = entry_id; scene_info.entry_id = entry_id;
scene_info.leader_entity_id = 100000; scene_info.leader_entity_id = config.avatar_config.items[0].id + 100000;
scene_info.world_id = 501; scene_info.world_id = 501;
scene_info.client_pos_version = 1; scene_info.client_pos_version = 1;
var group_map = std.AutoHashMap(u32, protocol.SceneEntityGroupInfo).init(self.allocator); var group_map = std.AutoHashMap(u32, protocol.SceneEntityGroupInfo).init(self.allocator);
@ -44,10 +44,10 @@ pub const SceneManager = struct {
if (teleConf.teleportId == teleport_id) { if (teleConf.teleportId == teleport_id) {
var scene_group = protocol.SceneEntityGroupInfo.init(self.allocator); var scene_group = protocol.SceneEntityGroupInfo.init(self.allocator);
scene_group.state = 1; scene_group.state = 1;
for (config.avatar_config.items, 0..) |avatarConf, idx| { for (config.avatar_config.items) |avatarConf| {
try scene_group.entity_list.append(.{ try scene_group.entity_list.append(.{
.InstId = 1, .InstId = 1,
.EntityId = @intCast(idx + 100000), .EntityId = @intCast(avatarConf.id + 100000),
.entityCase_ = .{ .Actor = .{ .entityCase_ = .{ .Actor = .{
.base_avatar_id = avatarConf.id, .base_avatar_id = avatarConf.id,
.avatar_type = .AVATAR_FORMAL_TYPE, .avatar_type = .AVATAR_FORMAL_TYPE,
@ -73,7 +73,7 @@ pub const SceneManager = struct {
.entityCase_ = .{ .Prop = prop_info }, .entityCase_ = .{ .Prop = prop_info },
.GroupId = scene_group.group_id, .GroupId = scene_group.group_id,
.InstId = propConf.instId, .InstId = propConf.instId,
.EntityId = generator.nextId(), .EntityId = 1000 + generator.nextId(),
.Motion = .{ .Motion = .{
.pos = .{ .x = propConf.pos.x, .y = propConf.pos.y, .z = propConf.pos.z }, .pos = .{ .x = propConf.pos.x, .y = propConf.pos.y, .z = propConf.pos.z },
.rot = .{ .x = propConf.rot.x, .y = propConf.rot.y, .z = propConf.rot.z }, .rot = .{ .x = propConf.rot.x, .y = propConf.rot.y, .z = propConf.rot.z },
@ -162,7 +162,7 @@ pub const ChallengeSceneManager = struct {
scene_info.plane_id = plane_id; scene_info.plane_id = plane_id;
scene_info.floor_id = floor_id; scene_info.floor_id = floor_id;
scene_info.entry_id = entry_id; scene_info.entry_id = entry_id;
scene_info.leader_entity_id = 1; scene_info.leader_entity_id = avatar_list.items[0];
scene_info.world_id = world_id; scene_info.world_id = world_id;
try scene_info.group_state_list.append(protocol.SceneGroupState{ try scene_info.group_state_list.append(protocol.SceneGroupState{
.group_id = maze_group_id, .group_id = maze_group_id,
@ -172,11 +172,10 @@ pub const ChallengeSceneManager = struct {
var scene_group = protocol.SceneEntityGroupInfo.init(self.allocator); var scene_group = protocol.SceneEntityGroupInfo.init(self.allocator);
scene_group.state = 1; scene_group.state = 1;
scene_group.group_id = 0; scene_group.group_id = 0;
for (avatar_list.items, 0..) |avatarConf, idx| { for (avatar_list.items) |avatarConf| {
const newidx = idx + 100000;
try scene_group.entity_list.append(.{ try scene_group.entity_list.append(.{
.InstId = 1, .InstId = 1,
.EntityId = @intCast(newidx), .EntityId = @intCast(avatarConf + 100000),
.entityCase_ = .{ .entityCase_ = .{
.Actor = .{ .Actor = .{
.base_avatar_id = avatarConf, .base_avatar_id = avatarConf,

View file

@ -69,27 +69,29 @@ pub fn onSceneCastSkill(session: *Session, packet: *const Packet, allocator: All
var challege_mgr = ChallegeStageManager.init(allocator); var challege_mgr = ChallegeStageManager.init(allocator);
const challenge = try challege_mgr.createChallegeStage(); const challenge = try challege_mgr.createChallegeStage();
const req = try packet.getProto(protocol.SceneCastSkillCsReq, allocator); const req = try packet.getProto(protocol.SceneCastSkillCsReq, allocator);
var monster_battle_info_list = ArrayList(protocol.HitMonsterBattleInfo).init(allocator);
try monster_battle_info_list.appendSlice(&[_]protocol.HitMonsterBattleInfo{
.{
.target_monster_entity_id = 0,
.monster_battle_type = protocol.MonsterBattleType.MONSTER_BATTLE_TYPE_TRIGGER_BATTLE,
},
});
var battle_info: ?protocol.SceneBattleInfo = null; var battle_info: ?protocol.SceneBattleInfo = null;
var monster_battle_info_list = ArrayList(protocol.HitMonsterBattleInfo).init(allocator);
std.debug.print("SKILL INDEX: {}\n", .{req.skill_index});
for (req.assist_monster_entity_id_list.items) |id| {
std.debug.print("ASSIST ID: {}\n", .{id});
if ((req.attacked_by_entity_id >= 1 and req.attacked_by_entity_id <= 1000) or
(req.assist_monster_entity_id_list.items.len > 0 and id < 1000))
{
const list = protocol.HitMonsterBattleInfo{
.target_monster_entity_id = id,
.monster_battle_type = protocol.MonsterBattleType.MONSTER_BATTLE_TYPE_TRIGGER_BATTLE,
};
try monster_battle_info_list.append(list);
if (req.assist_monster_entity_id_list.items.len > 0 or if (ChallengeData.on_challenge) {
(req.attacked_by_entity_id >= 1 and req.attacked_by_entity_id <= 99)) battle_info = challenge;
{ } else {
if (ChallengeData.on_challenge) { battle_info = battle;
battle_info = challenge; on_battle = true;
} else { }
battle_info = battle;
on_battle = true;
} }
//TODO: DO IGNORE BATTLE AND SKIP BATTLE
} }
try session.send(CmdID.CmdSceneCastSkillScRsp, protocol.SceneCastSkillScRsp{ try session.send(CmdID.CmdSceneCastSkillScRsp, protocol.SceneCastSkillScRsp{
.retcode = 0, .retcode = 0,
.cast_entity_id = req.cast_entity_id, .cast_entity_id = req.cast_entity_id,

View file

@ -59,7 +59,7 @@ pub fn onPrivateChatHistory(session: *Session, _: *const Packet, allocator: Allo
rsp.contact_side = 2000; rsp.contact_side = 2000;
try rsp.chat_message_list.appendSlice(&[_]protocol.ChatMessageData{ try rsp.chat_message_list.appendSlice(&[_]protocol.ChatMessageData{
.{ .{
.content = .{ .Const = "/sync command is having some issues right now. In order to change gear setup, you need to re-login" }, .content = .{ .Const = "Use https://relic-builder.vercel.app/ to setup config" },
.message_type = .MSG_TYPE_CUSTOM_TEXT, .message_type = .MSG_TYPE_CUSTOM_TEXT,
.create_time = 0, .create_time = 0,
.sender_id = 2000, .sender_id = 2000,

View file

@ -41,6 +41,10 @@ pub fn onReplaceLineup(session: *Session, packet: *const Packet, allocator: Allo
.avatar_type = protocol.AvatarType.AVATAR_FORMAL_TYPE, .avatar_type = protocol.AvatarType.AVATAR_FORMAL_TYPE,
.sp_bar = .{ .sp_cur = 10000, .sp_max = 10000 }, .sp_bar = .{ .sp_cur = 10000, .sp_max = 10000 },
}; };
if (ok.id == 1408) {
lineup.mp = 7;
lineup.max_mp = 7;
}
try lineup.avatar_list.append(avatar); try lineup.avatar_list.append(avatar);
} }

View file

@ -45,7 +45,15 @@ pub fn onGetTutorialStatus(session: *Session, _: *const Packet, allocator: Alloc
} }
try session.send(CmdID.CmdGetTutorialScRsp, rsp); try session.send(CmdID.CmdGetTutorialScRsp, rsp);
} }
pub fn onFinishTalkMission(session: *Session, packet: *const Packet, allocator: Allocator) !void {
const req = try packet.getProto(protocol.FinishTalkMissionCsReq, allocator);
var rsp = protocol.FinishTalkMissionScRsp.init(allocator);
rsp.sub_mission_id = req.sub_mission_id;
rsp.custom_value_list = req.custom_value_list;
rsp.talk_str = req.talk_str;
rsp.retcode = 0;
try session.send(CmdID.CmdFinishTalkMissionScRsp, rsp);
}
// added this to auto detect new tutorial guide id // added this to auto detect new tutorial guide id
pub fn onUnlockTutorialGuide(session: *Session, packet: *const Packet, allocator: Allocator) !void { pub fn onUnlockTutorialGuide(session: *Session, packet: *const Packet, allocator: Allocator) !void {
const req = try packet.getProto(protocol.UnlockTutorialGuideCsReq, allocator); const req = try packet.getProto(protocol.UnlockTutorialGuideCsReq, allocator);

View file

@ -69,7 +69,6 @@ pub fn onEnterScene(session: *Session, packet: *const Packet, allocator: Allocat
}); });
} }
//TODO FIX CURRENT SCENE MAP DISPLAY
pub fn onGetSceneMapInfo(session: *Session, packet: *const Packet, allocator: Allocator) !void { pub fn onGetSceneMapInfo(session: *Session, packet: *const Packet, allocator: Allocator) !void {
const req = try packet.getProto(protocol.GetSceneMapInfoCsReq, allocator); const req = try packet.getProto(protocol.GetSceneMapInfoCsReq, allocator);
const res_config = try Res_config.anchorLoader(allocator, "resources/res.json"); const res_config = try Res_config.anchorLoader(allocator, "resources/res.json");

View file

@ -30,5 +30,13 @@
"ifix_version": "0", "ifix_version": "0",
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_10434495_6bff50432edd_1641e3e19f1244", "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_10434495_6bff50432edd_1641e3e19f1244",
"lua_version": "" "lua_version": ""
},
"CNBETAWin3.3.52": {
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_10478982_243ce40577bf_000895ae562404",
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_10508366_85ea4f1c9748_5776e81f3bf4f2",
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_10489293_ba258955cec6_d8347bc2994eab",
"ifix_version": "0",
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_10506685_892409531f16_67592aefeb2f2b",
"lua_version": ""
} }
} }

BIN
mhypbase.dll Normal file

Binary file not shown.

View file

@ -0,0 +1,697 @@
[
{
"GroupID": 100,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBg_01.png"
},
{
"GroupID": 900,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBg_02.png"
},
{
"GroupID": 101,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 102,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 103,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 104,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 105,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 106,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 107,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 108,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 109,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 116,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 117,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 118,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 113,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 114,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 115,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 119,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 110,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 111,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 112,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 1001,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 1002,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 1003,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 1004,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 1005,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 1006,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 1007,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 1008,
"ThemePosterBgPicPath": ""
},
{
"GroupID": 1009,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBgl_Red_00.png"
},
{
"GroupID": 1010,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBgl_Red_01.png"
},
{
"GroupID": 1011,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBgl_Red_03_02.png"
},
{
"GroupID": 1012,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBgl_Red_03_01.png"
},
{
"GroupID": 1013,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBgl_Red_03_03.png"
},
{
"GroupID": 1014,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBgl_Red_03_01.png"
},
{
"GroupID": 1015,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBgl_Red_05.png"
},
{
"GroupID": 1016,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBgl_Red_03_02.png"
},
{
"GroupID": 1017,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBgl_Red_03_01.png"
},
{
"GroupID": 1018,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBgl_Red_06.png"
},
{
"GroupID": 1019,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBgl_Red_07.png"
},
{
"GroupID": 1020,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBgl_Red_08.png"
},
{
"GroupID": 1021,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBgl_Red_09.png"
},
{
"GroupID": 1022,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBgl_Red_10.png"
},
{
"GroupID": 1023,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBgl_Red_11.png"
},
{
"GroupID": 1024,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBgl_Red_08.png"
},
{
"GroupID": 1025,
"ThemePosterBgPicPath": "SpriteOutput/Abyss/2D_SceneBg/AbyssSenceBgl_Red_03_03.png"
},
{
"GroupID": 2001,
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2001.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeTheme/ThemeIcon/ChallengeThemeIcon_2001.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2001.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2001.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeStoryAlternation_2001.png",
"ThemeID": 1,
"SubMazeBuffList": [],
"StoryType": "Normal",
"BuffList": [
3031301,
3031302,
3031303
]
},
{
"GroupID": 2002,
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2002.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeTheme/ThemeIcon/ChallengeThemeIcon_2002.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2002.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2002.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeStoryAlternation_2002.png",
"ThemeID": 2,
"SubMazeBuffList": [],
"StoryType": "Normal",
"BuffList": [
3031304,
3031305,
3031306
]
},
{
"GroupID": 2003,
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2003.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeTheme/ThemeIcon/ChallengeThemeIcon_2003.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2003.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2003.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeStoryAlternation_2003.png",
"ThemeID": 3,
"SubMazeBuffList": [],
"StoryType": "Normal",
"BuffList": [
3031307,
3031308,
3031309
]
},
{
"GroupID": 2004,
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2004.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeTheme/ThemeIcon/ChallengeThemeIcon_2001.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2004.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2004.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeStoryAlternation_2004.png",
"ThemeID": 1,
"SubMazeBuffList": [],
"StoryType": "Normal",
"BuffList": [
3031310,
3031311,
3031312
]
},
{
"GroupID": 2005,
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2005.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeTheme/ThemeIcon/ChallengeThemeIcon_2004.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2005.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2005.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeStoryAlternation_2005.png",
"ThemeID": 2,
"SubMazeBuffList": [],
"StoryType": "Normal",
"BuffList": [
3031313,
3031314,
3031315
]
},
{
"GroupID": 2006,
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2006.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeTheme/ThemeIcon/ChallengeThemeIcon_2005.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2005.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2006.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeStoryAlternation_2006.png",
"ThemeID": 1,
"SubMazeBuffList": [],
"StoryType": "Normal",
"BuffList": [
3031316,
3031317,
3031318
]
},
{
"GroupID": 2007,
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2007.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeTheme/ThemeIcon/ChallengeThemeIcon_2006.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2007.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2007.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeStoryAlternation_2007.png",
"ThemeID": 3,
"SubMazeBuffList": [],
"StoryType": "Normal",
"BuffList": [
3031319,
3031320,
3031321
]
},
{
"GroupID": 2008,
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2004.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeTheme/ThemeIcon/ChallengeThemeIcon_2001.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2004.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2004.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeStoryAlternation_2004.png",
"ThemeID": 1,
"SubMazeBuffList": [],
"StoryType": "Normal",
"BuffList": [
3031303,
3031322,
3031323
]
},
{
"GroupID": 2009,
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2008.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeTheme/ThemeIcon/ChallengeThemeIcon_2007.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2004.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2008.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeStoryAlternation_2008.png",
"ThemeID": 1,
"SubMazeBuffList": [],
"StoryType": "Normal",
"BuffList": [
3031324,
3031325,
3031326
]
},
{
"GroupID": 2010,
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2009.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeTheme/ThemeIcon/ChallengeThemeIcon_2008.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2004.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2009.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeStoryAlternation_2009.png",
"ThemeID": 1,
"SubMazeBuffList": [],
"StoryType": "Normal",
"BuffList": [
3031330,
3031331,
3031305
]
},
{
"GroupID": 2011,
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2010.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeTheme/ThemeIcon/ChallengeThemeIcon_2006.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2004.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2010.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeStoryAlternation_2010.png",
"ThemeID": 4,
"SubMazeBuffList": [
3031202,
3031203,
3031204
],
"StoryType": "Fever",
"BuffList": [
3031327,
3031328,
3031329
]
},
{
"GroupID": 2012,
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2011.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeTheme/ThemeIcon/ChallengeThemeIcon_2009.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2002.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2011.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeStoryAlternation_2011.png",
"ThemeID": 5,
"SubMazeBuffList": [
3031207,
3031208,
3031209
],
"StoryType": "Fever",
"BuffList": [
3031333,
3031332,
3031334
]
},
{
"GroupID": 2013,
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2012.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeTheme/ThemeIcon/ChallengeThemeIcon_2010.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2004.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2012.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeStoryAlternation_2012.png",
"ThemeID": 4,
"SubMazeBuffList": [
3031212,
3031213,
3031214
],
"StoryType": "Fever",
"BuffList": [
3031335,
3031336,
3031337
]
},
{
"GroupID": 2014,
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2013.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeTheme/ThemeIcon/ChallengeThemeIcon_2011.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2002.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2013.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeStoryAlternation_2013.png",
"ThemeID": 5,
"SubMazeBuffList": [
3031202,
3031203,
3031204
],
"StoryType": "Fever",
"BuffList": [
3031327,
3031338,
3031329
]
},
{
"GroupID": 2015,
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2014.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeTheme/ThemeIcon/ChallengeThemeIcon_2012.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2004.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2014.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeStoryAlternation_2014.png",
"ThemeID": 4,
"SubMazeBuffList": [
3031207,
3031208,
3031209
],
"StoryType": "Fever",
"BuffList": [
3031333,
3031343,
3031339
]
},
{
"GroupID": 2016,
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2015.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeTheme/ThemeIcon/ChallengeThemeIcon_2013.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2004.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2015.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeStoryAlternation_2015.png",
"ThemeID": 6,
"SubMazeBuffList": [
3031217,
3031218,
3031219
],
"StoryType": "Fever",
"BuffList": [
3031340,
3031341,
3031342
]
},
{
"GroupID": 3001,
"BuffList1": [
3111008,
3111010,
3111011
],
"BuffList2": [
3111008,
3111009,
3111012
],
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2001.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeBoss/ChallengeBossIcon_3001.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2001.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2001.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeBoss.png",
"BossPatternPrefabPath": "UI/UI3D/ChallengeBoss/UI3D_ChallengeBossMainEntrStage_2.3.prefab",
"BossPositionPrefabPath1": "UI/UI3D/ChallengeBoss/Widget/CB_SmallBoss_W1_Cocolia_Left.prefab",
"BossPositionPrefabPath2": "UI/UI3D/ChallengeBoss/Widget/CB_SmallBoss_W2_Argenti_Right.prefab"
},
{
"GroupID": 3002,
"BuffList1": [
3111015,
3111013,
3111014
],
"BuffList2": [
3111015,
3111016,
3111017
],
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2001.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeBoss/ChallengeBossIcon_3002.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2001.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2001.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeBoss.png",
"BossPatternPrefabPath": "UI/UI3D/ChallengeBoss/UI3D_ChallengeBossMainEntrStage_2.4.prefab",
"BossPositionPrefabPath1": "UI/UI3D/ChallengeBoss/Widget/CB_SmallBoss_W2_Kafka_Left.prefab",
"BossPositionPrefabPath2": "UI/UI3D/ChallengeBoss/Widget/CB_LargeBoss_AML_Boss_Right.prefab"
},
{
"GroupID": 3003,
"BuffList1": [
3111021,
3111022,
3111023
],
"BuffList2": [
3111018,
3111019,
3111020
],
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2001.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeBoss/ChallengeBossIcon_3003.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2001.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2001.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeBoss.png",
"BossPatternPrefabPath": "UI/UI3D/ChallengeBoss/UI3D_ChallengeBossMainEntrStage_2.5.prefab",
"BossPositionPrefabPath1": "UI/UI3D/ChallengeBoss/Widget/CB_SmallBoss_W3_Aventurine_Left.prefab",
"BossPositionPrefabPath2": "UI/UI3D/ChallengeBoss/Widget/CB_LargeBoss_W2_Huanlong_Right.prefab"
},
{
"GroupID": 3004,
"BuffList1": [
3111028,
3111027,
3111021
],
"BuffList2": [
3111024,
3111025,
3111026
],
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2001.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeBoss/ChallengeBossIcon_3004.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2001.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2001.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeBoss.png",
"BossPatternPrefabPath": "UI/UI3D/ChallengeBoss/UI3D_ChallengeBossMainEntrStage_2.6.prefab",
"BossPositionPrefabPath1": "UI/UI3D/ChallengeBoss/Widget/CB_SmallBoss_W2_Kafka_Left.prefab",
"BossPositionPrefabPath2": "UI/UI3D/ChallengeBoss/Widget/CB_SmallBoss_W3_Sunday_Right.prefab"
},
{
"GroupID": 3005,
"BuffList1": [
3111030,
3111033,
3111034
],
"BuffList2": [
3111029,
3111032,
3111031
],
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2001.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeBoss/ChallengeBossIcon_3005.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2001.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2001.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeBoss.png",
"BossPatternPrefabPath": "UI/UI3D/ChallengeBoss/UI3D_ChallengeBossMainEntrStage_2.7.prefab",
"BossPositionPrefabPath1": "UI/UI3D/ChallengeBoss/Widget/CB_SmallBoss_W1_Cocolia_Left.prefab",
"BossPositionPrefabPath2": "UI/UI3D/ChallengeBoss/Widget/CB_SmallBoss_W3_Theater_Right.prefab"
},
{
"GroupID": 3006,
"BuffList1": [
3111035,
3111036,
3111037
],
"BuffList2": [
3111038,
3111039,
3111040
],
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2001.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeBoss/ChallengeBossIcon_3006.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2001.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2001.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeBoss.png",
"BossPatternPrefabPath": "UI/UI3D/ChallengeBoss/UI3D_ChallengeBossMainEntrStage_3.0.prefab",
"BossPositionPrefabPath1": "UI/UI3D/ChallengeBoss/Widget/CB_SmallBoss_SW_Boss_01_Left.prefab",
"BossPositionPrefabPath2": "UI/UI3D/ChallengeBoss/Widget/CB_LargeBoss_W2_Huanlong_Right.prefab"
},
{
"GroupID": 3007,
"BuffList1": [
3111041,
3111042,
3111043
],
"BuffList2": [
3111044,
3111045,
3111046
],
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2001.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeBoss/ChallengeBossIcon_3007.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2001.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2001.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeBoss.png",
"BossPatternPrefabPath": "UI/UI3D/ChallengeBoss/UI3D_ChallengeBossMainEntrStage_2.7.prefab",
"BossPositionPrefabPath1": "UI/UI3D/ChallengeBoss/Widget/CB_SmallBoss_W3_Aventurine_Left.prefab",
"BossPositionPrefabPath2": "UI/UI3D/ChallengeBoss/Widget/CB_SmallBoss_W3_Theater_Right.prefab"
},
{
"GroupID": 3008,
"BuffList1": [
3111047,
3111048,
3111049
],
"BuffList2": [
3111050,
3111051,
3111052
],
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2001.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeBoss/ChallengeBossIcon_3008.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2001.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2001.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeBoss.png",
"BossPatternPrefabPath": "UI/UI3D/ChallengeBoss/UI3D_ChallengeBossMainEntrStage_3.2.prefab",
"BossPositionPrefabPath1": "UI/UI3D/ChallengeBoss/Widget/CB_SmallBoss_SW_Boss_01_Left.prefab",
"BossPositionPrefabPath2": "UI/UI3D/ChallengeBoss/Widget/CB_LargeBoss_W2_LycanKing_Right.prefab"
},
{
"GroupID": 3009,
"BuffList1": [
3111053,
3111018,
3111020
],
"BuffList2": [
3111055,
3111021,
3111030
],
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2001.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeBoss/ChallengeBossIcon_3009.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2001.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2001.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeBoss.png",
"BossPatternPrefabPath": "UI/UI3D/ChallengeBoss/UI3D_ChallengeBossMainEntrStage_3.3.prefab",
"BossPositionPrefabPath1": "UI/UI3D/ChallengeBoss/Widget/CB_SmallBoss_W1_Cocolia_Left.prefab",
"BossPositionPrefabPath2": "UI/UI3D/ChallengeBoss/Widget/CB_SmallBoss_W2_Kafka_Right.prefab"
},
{
"GroupID": 3010,
"BuffList1": [
3111056,
3111057,
3111058
],
"BuffList2": [
3111046,
3111014,
3111021
],
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2001.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeBoss/ChallengeBossIcon_3010.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2001.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2001.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeBoss.png",
"BossPatternPrefabPath": "UI/UI3D/ChallengeBoss/UI3D_ChallengeBossMainEntrStage_3.4.prefab",
"BossPositionPrefabPath1": "UI/UI3D/ChallengeBoss/Widget/CB_SmallBoss_W4_FireProwler_Left.prefab",
"BossPositionPrefabPath2": "UI/UI3D/ChallengeBoss/Widget/CB_LargeBoss_AML_Boss_Right.prefab"
},
{
"GroupID": 3011,
"BuffList1": [
3111056,
3111057,
3111058
],
"BuffList2": [
3111046,
3111014,
3111021
],
"ThemeToastPicPath": "SpriteOutput/ChallengeTheme/ThemePic/ChallengeThemePic_2001.png",
"ThemeIconPicPath": "SpriteOutput/ChallengeBoss/ChallengeBossIcon_3010.png",
"ThemePosterEffectPrefabPath": "UI/Abyss/ChallengeStoryPosterEffThemePanel/ChallengeStoryAlternationPanelEff_2001.prefab",
"ThemePosterBgPicPath": "SpriteOutput/ChallengeTheme/ThemeBg/ChallengeThemeBg_2001.png",
"ThemePosterTabPicPath": "SpriteOutput/Quest/TabIcon/BtnChallengeBoss.png",
"BossPatternPrefabPath": "UI/UI3D/ChallengeBoss/UI3D_ChallengeBossMainEntrStage_3.4.prefab",
"BossPositionPrefabPath1": "UI/UI3D/ChallengeBoss/Widget/CB_SmallBoss_W4_FireProwler_Left.prefab",
"BossPositionPrefabPath2": "UI/UI3D/ChallengeBoss/Widget/CB_LargeBoss_AML_Boss_Right.prefab"
}
]

View file

@ -28092,7 +28092,7 @@
"EventIDList1": [ "EventIDList1": [
420261 420261
], ],
"MazeGroupID2": 7, "MazeGroupID2": 6,
"ConfigList2": [ "ConfigList2": [
200001 200001
], ],
@ -28146,7 +28146,7 @@
"EventIDList1": [ "EventIDList1": [
420262 420262
], ],
"MazeGroupID2": 7, "MazeGroupID2": 6,
"ConfigList2": [ "ConfigList2": [
200001 200001
], ],
@ -28200,7 +28200,7 @@
"EventIDList1": [ "EventIDList1": [
420263 420263
], ],
"MazeGroupID2": 7, "MazeGroupID2": 6,
"ConfigList2": [ "ConfigList2": [
200001 200001
], ],
@ -28254,7 +28254,7 @@
"EventIDList1": [ "EventIDList1": [
420264 420264
], ],
"MazeGroupID2": 7, "MazeGroupID2": 6,
"ConfigList2": [ "ConfigList2": [
200001 200001
], ],

File diff suppressed because it is too large Load diff