Compare commits

..

No commits in common. "main" and "1.0.0" have entirely different histories.
main ... 1.0.0

19 changed files with 414873 additions and 441223 deletions

116
README.md
View file

@ -1,61 +1,57 @@
# 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) [Zig 0.13.0 x64](https://ziglang.org/download/0.13.0/zig-windows-x86_64-0.13.0.zip) and
[Proxy](https://git.xeondev.com/YYHEggEgg/FireflySR.Tool.Proxy/releases)
## Running
## Running
### Replacing mhypbase.dll ### From source
Replace [mhypbase.dll](https://git.xeondev.com/HonkaiSlopRail/jingliu-sr/raw/branch/main/mhypbase.dll) file in your game folder. Windows:
```
### From source git clone https://git.xeondev.com/HonkaiSlopRail/jingliu-sr
cd jingliu-sr
Windows: zig build run-dispatch
``` zig build run-
git clone https://git.xeondev.com/HonkaiSlopRail/jingliu-sr ```
cd jingliu-sr Then open Proxy then open client
zig build run-dispatch
zig build run-gameserver Linux:
``` ```
Then open your client. git clone https://git.xeondev.com/HonkaiSlopRail/jingliu-sr
cd jingliu-sr
Linux: zig build run-dispatch & zig build run-gameserver
``` ```
git clone https://git.xeondev.com/HonkaiSlopRail/jingliu-sr Then open Proxy then open client
cd jingliu-sr
zig build run-dispatch & zig build run-gameserver ### Using Pre-built Binaries
``` Navigate to the [Releases](https://git.xeondev.com/HonkaiSlopRail/jingliu-sr/releases)
Then open your client. page and download the latest release for your platform.
### Using Pre-built Binaries ## Connecting
Navigate to the [Releases](https://git.xeondev.com/HonkaiSlopRail/jingliu-sr/releases) [Get 3.3.51 client](https://gofile.io/d/tWhXrJ)
page and download the latest release for your platform.
## Functionality (work in progress)
## Connecting - Login and player spawn
[Get 3.3.51 client](https://gofile.io/d/tWhXrJ) - Test battle via calyx
- MOC/PF/AS simulator
## Functionality (work in progress) - Gacha simulator
- Login and player spawn - Support command for Sillyism (there are some bugs right now )
- Test battle via calyx
- MOC/PF/AS simulator ## Contributing
- Gacha simulator
- Support command for Sillyism Pull requests are welcome. For major changes, please open an issue first to discuss
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
what you would like to change, and why. 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.
## Bug Reports
Bad issues such as "This doesn't work" will be closed immediately, be _sure_ to
If you find a bug, please open an issue with as much detail as possible. If you provide exact detailed steps to reproduce your bug. If it's hard to reproduce, try
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,256 +1,328 @@
{ {
"avatar_config": [ "avatar_config": [
{ {
"name": "Saber", "name": "Jingliu",
"id": 1014, "id": 1212,
"hp": 100, "hp": 100,
"sp": 50, "sp": 50,
"level": 80, "level": 80,
"promotion": 6, "promotion": 6,
"rank": 0, "rank": 0,
"lightcone": { "lightcone": {
"id": 23045, "id": 23014,
"rank": 1, "rank": 1,
"level": 80, "level": 80,
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61261,15,1,4,6:4:4,3:3:3,11:1:1,2:1:1", "61041,15,1,4,5:1:0,6:3:5,8:1:1,9:4:4",
"61262,15,1,4,5:1:1,12:2:2,10:4:4,11:2:2", "61022,15,1,4,3:1:1,6:3:3,8:1:1,9:3:3",
"61263,15,5,4,8:2:2,6:2:2,5:2:2,10:3:3", "61043,15,5,4,6:1:1,8:3:3,10:3:3,12:2:1",
"61264,15,4,4,11:3:3,5:3:3,10:1:1,2:2:2", "61024,15,4,4,2:1:2,5:1:1,8:4:4,9:3:0",
"63095,15,8,4,11:2:2,12:3:3,10:3:3,5:1:1", "63095,15,6,4,2:1:0,3:3:4,8:2:3,11:2:4",
"63096,15,4,4,6:2:2,3:2:2,8:3:3,11:2:2" "63096,15,2,4,1:1:0,2:2:4,7:3:1,9:2:3"
], ],
"use_technique": true "use_technique": false
}, },
{ {
"name": "Hyacine", "name": "Silver Wolf",
"id": 1409, "id": 1006,
"hp": 100, "hp": 100,
"sp": 50, "sp": 50,
"level": 80, "level": 80,
"promotion": 6, "promotion": 6,
"rank": 0, "rank": 0,
"lightcone": { "lightcone": {
"id": 23042, "id": 23007,
"rank": 1, "rank": 1,
"level": 80, "level": 80,
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61251,15,1,4,12:3:3,6:4:4,5:1:1,4:1:1", "61141,15,1,4,2:3:2,4:2:3,7:2:1,11:1:2",
"61252,15,1,4,10:2:2,12:2:2,7:3:3,9:2:2", "61142,15,1,4,3:1:0,6:1:1,7:4:4,9:2:0",
"61253,15,6,4,1:1:1,5:3:3,3:4:4,6:1:1", "61113,15,7,4,2:1:2,6:3:2,7:3:1,11:1:0",
"61254,15,4,4,1:2:2,8:3:3,12:2:2,5:2:2", "61114,15,4,4,3:1:2,4:3:3,10:3:4,11:2:1",
"63205,15,1,4,8:3:3,5:2:2,7:2:2,12:2:2", "63125,15,1,4,2:2:4,7:3:1,11:2:2,12:2:3",
"63206,15,3,4,6:2:2,7:1:1,8:4:4,3:2:2" "63126,15,2,4,6:1:0,7:2:1,9:3:1,10:2:2"
], ],
"use_technique": true "use_technique": false
}, },
{ {
"name": "Tribbie", "name": "Kafka",
"id": 1403, "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": 23038, "id": 23006,
"rank": 1, "rank": 1,
"level": 80, "level": 80,
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61241,15,1,4,6:3:3,12:1:1,2:3:3,7:2:2", "61161,15,1,4,5:1:1,6:2:2,7:3:1,8:2:2",
"61242,15,1,4,8:2:2,5:2:2,10:1:1,9:4:4", "61162,15,1,4,1:2:2,5:2:2,9:2:2,10:2:3",
"61243,15,5,4,5:2:2,12:2:2,2:2:2,6:3:3", "61163,15,2,4,7:3:1,8:1:1,10:2:2,11:2:3",
"61244,15,1,4,11:2:2,7:3:3,12:2:2,8:2:2", "61164,15,4,4,1:1:0,8:2:0,9:2:1,11:3:4",
"63195,15,1,4,10:4:4,8:1:1,1:2:2,2:2:2", "63115,15,7,4,1:3:4,2:1:2,8:1:0,9:3:0",
"63196,15,2,4,5:3:3,12:2:2,3:3:3,7:1:1" "63116,15,4,4,1:2:2,8:3:0,11:1:2,12:2:4"
], ],
"use_technique": true "use_technique": false
}, },
{ {
"name": "Silver Wolf", "name": "Saber",
"id": 1006, "id": 1014,
"hp": 100, "hp": 100,
"sp": 50, "sp": 50,
"level": 80, "level": 80,
"promotion": 6, "promotion": 6,
"rank": 0, "rank": 6,
"lightcone": { "lightcone": {
"id": 23029, "id": 23045,
"rank": 5, "rank": 5,
"level": 80, "level": 80,
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61081,15,1,4,8:2:2,7:2:2,2:2:2,9:3:3", "61261,15,1,4,5:2:2,7:1:1,8:3:3,9:3:3",
"61082,15,1,4,10:3:3,1:3:3,11:1:1,6:2:2", "61262,15,1,4,9:1:1,7:3:3,5:3:3,8:2:2",
"61083,15,7,4,12:4:4,5:2:2,2:1:1,8:2:2", "61263,15,5,4,7:2:2,8:3:3,5:3:3,4:1:1",
"61084,15,4,4,5:1:1,9:1:1,8:3:3,10:4:4", "61264,15,4,4,8:2:2,9:3:3,5:2:2,4:2:2",
"63035,15,9,4,12:2:2,8:1:1,3:3:3,11:3:3", "63095,15,8,4,9:2:2,8:1:1,5:3:3,7:3:3",
"63036,15,2,4,5:1:1,3:2:2,10:3:3,7:3:3" "63096,15,4,4,9:2:2,8:2:2,7:3:3,4:2:2"
], ],
"use_technique": true "use_technique": true
}, },
{ {
"name": "Phainon", "name": "Archer",
"id": 1408, "id": 1015,
"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": 23046,
"rank": 1, "rank": 1,
"level": 80, "level": 80,
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61261,15,1,4,5:2:2,2:2:2,3:3:3,9:2:2", "61261,15,1,4,8:2:2,2:3:3,4:1:1,12:3:3",
"61262,15,1,4,12:3:3,1:3:3,5:1:1,8:2:2", "61262,15,1,4,10:2:2,11:3:3,12:3:3,6:1:1",
"61263,15,5,4,3:1:1,7:3:3,10:4:4,4:1:1", "61263,15,5,4,4:2:2,10:3:3,11:2:2,12:2:2",
"61264,15,4,4,8:1:1,12:1:1,1:5:5,3:2:2", "61264,15,2,4,10:2:2,6:2:2,9:4:4,2:1:1",
"63215,15,4,4,4:1:1,9:1:1,5:4:4,3:3:3", "63145,15,9,4,4:1:1,6:4:4,9:1:1,5:3:3",
"63216,15,4,4,10:3:3,7:2:2,9:3:3,6:1:1" "63146,15,4,4,1:3:3,10:3:3,9:1:1,11:2:2"
], ],
"use_technique": true "use_technique": true
}, },
{ {
"name": "Kafka", "name": "Phainon",
"id": 1005, "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": 23006, "id": 23044,
"rank": 1, "rank": 1,
"level": 80, "level": 80,
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61161,15,1,4,2:2:2,8:3:3,9:2:2,6:2:2", "61261,15,1,4,6:1:1,9:3:3,12:3:3,4:2:2",
"61162,15,1,4,4:2:2,5:2:2,7:3:3,6:2:2", "61262,15,1,4,9:4:4,11:1:1,5:2:2,8:2:2",
"61163,15,2,4,10:3:3,11:1:1,8:3:3,9:2:2", "61263,15,5,4,3:2:2,2:2:2,5:4:4,6:1:1",
"61164,15,4,4,10:2:2,1:1:1,8:4:4,6:2:2", "61264,15,2,4,10:1:1,12:3:3,8:1:1,4:4:4",
"63225,15,7,4,5:2:2,10:2:2,2:3:3,3:2:2", "63225,15,4,4,9:1:1,4:2:2,6:2:2,3:4:4",
"63226,15,4,4,2:4:4,7:3:3,3:1:1,1:1:1" "63226,15,4,4,1:3:3,8:2:2,2:2:2,3:2:2"
], ],
"use_technique": true "use_technique": false
}, },
{ {
"name": "Jingliu", "name": "Hyacine",
"id": 1212, "id": 1409,
"hp": 100, "hp": 100,
"sp": 50, "sp": 50,
"level": 80, "level": 80,
"promotion": 6, "promotion": 6,
"rank": 6, "rank": 0,
"lightcone": { "lightcone": {
"id": 23014, "id": 23042,
"rank": 5, "rank": 1,
"level": 80, "level": 80,
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61261,15,1,4,11:3:3,7:1:1,3:3:3,12:2:2", "61251,15,1,4,3:1:2,4:3:1,7:1:0,9:3:2",
"61262,15,1,4,5:3:3,4:2:2,6:3:3,7:1:1", "61252,15,1,4,1:2:4,7:3:1,9:2:0,12:1:2",
"61263,15,5,4,8:2:2,6:3:3,7:1:1,10:3:3", "61253,15,6,4,6:2:2,7:3:1,9:1:2,11:2:3",
"61264,15,4,4,10:1:1,4:4:4,5:2:2,12:2:2", "61254,15,4,4,1:3:2,5:1:1,9:2:2,11:2:2",
"63195,15,6,4,6:3:3,12:1:1,9:2:2,8:3:3", "63205,15,1,4,1:1:0,6:1:2,7:3:1,9:3:2",
"63196,15,3,4,10:3:3,8:3:3,7:2:2,6:1:1" "63206,15,3,4,3:1:0,6:2:2,7:4:4,9:1:0"
], ],
"use_technique": true "use_technique": false
}, },
{ {
"name": "Acheron", "name": "Castorice",
"id": 1308, "id": 1407,
"hp": 100, "hp": 100,
"sp": 50, "sp": 50,
"level": 80, "level": 80,
"promotion": 6, "promotion": 6,
"rank": 6, "rank": 0,
"lightcone": { "lightcone": {
"id": 23024, "id": 23040,
"rank": 5, "rank": 1,
"level": 80, "level": 80,
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61261,15,1,4,7:4:4,12:3:3,4:1:1,9:1:1", "61241,15,1,4,5:2:3,8:2:1,9:3:3,12:1:0",
"61262,15,1,4,1:3:3,4:2:2,7:2:2,9:2:2", "61242,15,1,4,4:3:2,5:1:2,6:1:0,9:3:2",
"61263,15,5,4,4:1:1,6:2:2,2:3:3,8:3:3", "61243,15,5,4,1:1:0,4:1:0,8:3:3,10:3:3",
"61264,15,2,4,11:4:4,8:2:2,4:1:1,10:2:2", "61244,15,1,4,1:1:1,2:2:3,8:2:0,9:3:5",
"63145,15,7,4,9:5:5,8:2:2,1:1:1,2:1:1", "63195,15,1,4,1:3:6,2:1:0,8:2:2,9:2:1",
"63146,15,4,4,2:4:4,10:1:1,8:1:1,12:3:3" "63196,15,3,4,3:1:1,8:4:5,9:3:1,10:1:1"
], ],
"use_technique": true "use_technique": false
}, },
{ {
"name": "Anaxa", "name": "Traiblazer",
"id": 1405, "id": 8008,
"hp": 100, "hp": 100,
"sp": 50, "sp": 50,
"level": 80, "level": 80,
"promotion": 6, "promotion": 6,
"rank": 0, "rank": 6,
"lightcone": { "lightcone": {
"id": 23041, "id": 24005,
"rank": 1, "rank": 5,
"level": 80, "level": 80,
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61221,15,1,4,11:1:1,5:2:2,9:3:3,10:3:3", "61231,15,1,4,3:1:0,7:2:4,9:2:4,10:3:1",
"61222,15,1,4,12:1:1,9:4:4,3:2:2,5:2:2", "61232,15,1,4,7:2:1,9:4:2,10:1:1,11:1:2",
"61223,15,5,4,11:2:2,2:2:2,1:4:4,5:1:1", "61233,15,5,4,4:2:2,7:4:1,10:1:1,12:2:1",
"61224,15,4,4,10:3:3,8:3:3,4:2:2,9:1:1", "61234,15,4,4,3:1:8,4:2:2,9:3:2,11:2:1",
"63175,15,8,4,7:2:2,9:2:2,4:1:1,8:4:4", "63085,15,1,4,1:1:2,5:3:1,7:2:1,9:2:2",
"63176,15,4,4,7:3:3,8:2:2,3:2:2,4:2:2" "63086,15,2,4,1:3:4,2:2:2,9:1:1,10:2:3"
], ],
"use_technique": false "use_technique": false
}, },
{ {
"name": "Castorice", "name": "March 7th",
"id": 1407, "id": 1224,
"hp": 100, "hp": 100,
"sp": 50, "sp": 50,
"level": 80, "level": 80,
"promotion": 6, "promotion": 6,
"rank": 0, "rank": 6,
"lightcone": { "lightcone": {
"id": 23040, "id": 24001,
"rank": 1, "rank": 5,
"level": 80, "level": 80,
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61241,15,1,4,4:2:2,9:3:3,12:1:1,8:3:3", "61021,15,1,4,5:1:0,8:2:4,9:4:6,10:2:2",
"61242,15,1,4,5:2:2,1:2:2,6:3:3,8:2:2", "61202,15,1,4,5:3:3,8:2:4,9:1:1,11:2:3",
"61243,15,5,4,10:2:2,3:2:2,1:2:2,6:3:3", "61023,15,5,4,2:1:1,7:1:0,8:4:4,10:3:4",
"61244,15,1,4,3:2:2,6:2:2,2:4:4,5:1:1", "61204,15,2,4,3:1:0,6:1:0,8:5:2,9:2:1",
"63195,15,1,4,11:1:1,8:2:2,6:3:3,10:3:3", "63095,15,2,4,1:2:3,8:2:2,9:2:3,11:3:3",
"63196,15,3,4,2:2:2,8:3:3,7:1:1,3:3:3" "63096,15,2,4,5:3:3,6:2:4,9:2:0,11:2:3"
], ],
"use_technique": false "use_technique": false
} },
], {
"battle_config": { "name": "Huohuo",
"battle_id": 1, "id": 1217,
"stage_id": 201012311, "hp": 100,
"cycle_count": 30, "sp": 50,
"monster_wave": [ "level": 80,
[ "promotion": 6,
4015011 "rank": 0,
] "lightcone": {
], "id": 23017,
"monster_level": 95, "rank": 1,
"blessings": [] "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

@ -6,7 +6,6 @@ const Packet = @import("../Packet.zig");
const Config = @import("../services/config.zig"); const Config = @import("../services/config.zig");
const Item = @import("../services/item.zig"); const Item = @import("../services/item.zig");
const Data = @import("../data.zig"); const Data = @import("../data.zig");
const LineupData = @import("../manager/lineup_mgr.zig");
const ArrayList = std.ArrayList; const ArrayList = std.ArrayList;
const Allocator = std.mem.Allocator; const Allocator = std.mem.Allocator;
@ -24,7 +23,6 @@ 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();
@ -63,10 +61,6 @@ 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);
} }
@ -147,12 +141,6 @@ pub fn onSyncAvatar(session: *Session, _: []const u8, allocator: Allocator) Erro
} }
try char.avatar_list.append(avatar); try char.avatar_list.append(avatar);
const avatarType: protocol.MultiPathAvatarType = @enumFromInt(avatarConf.id); const avatarType: protocol.MultiPathAvatarType = @enumFromInt(avatarConf.id);
if (avatarConf.id >= 8001 and avatarConf.id <= 8008) {
LineupData.mc_id = avatarConf.id;
}
if (avatarConf.id == 1001 or avatarConf.id == 1224) {
LineupData.m7th = avatarConf.id;
}
if (@intFromEnum(avatarType) > 1) { if (@intFromEnum(avatarType) > 1) {
try session.send(CmdID.CmdSetAvatarPathScRsp, protocol.SetAvatarPathScRsp{ try session.send(CmdID.CmdSetAvatarPathScRsp, protocol.SetAvatarPathScRsp{
.retcode = 0, .retcode = 0,
@ -244,7 +232,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(initial_uid); global_uid_gen = UidGenerator.init(0);
} }
pub fn nextGlobalId() u32 { pub fn nextGlobalId() u32 {

View file

@ -6,8 +6,6 @@ pub const McTracing = [_]u32{
8002, 8004, 8006, 8008, 8002, 8004, 8006, 8008,
}; };
pub const EnhanceAvatarID = [_]u32{ 1005, 1006, 1205, 1212 }; pub const EnhanceAvatarID = [_]u32{ 1005, 1006, 1205, 1212 };
pub const IgnoreBattle = [_]u32{ 1405, 1404, 1225, 1314, 1312, 1305, 1302, 1217 };
pub const SkipBattle = [_]u32{ 1408, 1308 };
pub const skills = [_]u32{ 1, 2, 3, 4, 7, 101, 102, 103, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 301, 302 }; pub const skills = [_]u32{ 1, 2, 3, 4, 7, 101, 102, 103, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 301, 302 };
pub const skills_old = [_]u32{ 1, 2, 3, 4, 7, 101, 102, 103, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210 }; pub const skills_old = [_]u32{ 1, 2, 3, 4, 7, 101, 102, 103, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210 };

View file

@ -88,7 +88,6 @@ 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,7 +5,6 @@ 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;
@ -226,27 +225,19 @@ 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) };
if (ChallengeData.on_challenge == true) { try pfTargetHead.battle_target_list.append(.{ .id = 10002, .progress = 0, .total_progress = 0 });
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 = 2000, .total_progress = 0 }); try asTargetHead.battle_target_list.append(.{ .id = 90005, .progress = 0, .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..4) |i| { for (2..5) |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,20 +13,6 @@ 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 var mc_id: u32 = 8008;
pub var m7th: u32 = 1224;
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 {
@ -46,10 +32,6 @@ 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;
@ -87,10 +69,6 @@ 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;
@ -118,10 +96,7 @@ pub fn getSelectedAvatarID(allocator: std.mem.Allocator, input: []const u32) !vo
try tempList.appendSlice(input); try tempList.appendSlice(input);
for (tempList.items) |*item| { for (tempList.items) |*item| {
if (item.* == 8001) { if (item.* == 8001) {
item.* = mc_id; item.* = 8008;
}
if (item.* == 1001) {
item.* = m7th;
} }
} }
var i: usize = 0; var i: usize = 0;

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 = config.avatar_config.items[0].id + 100000; scene_info.leader_entity_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) |avatarConf| { for (config.avatar_config.items, 0..) |avatarConf, idx| {
try scene_group.entity_list.append(.{ try scene_group.entity_list.append(.{
.InstId = 1, .InstId = 1,
.EntityId = @intCast(avatarConf.id + 100000), .EntityId = @intCast(idx + 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 = 1000 + generator.nextId(), .EntityId = 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 },
@ -90,7 +90,7 @@ pub const SceneManager = struct {
.entityCase_ = .{ .NpcMonster = monster_info }, .entityCase_ = .{ .NpcMonster = monster_info },
.GroupId = scene_group.group_id, .GroupId = scene_group.group_id,
.InstId = monsConf.instId, .InstId = monsConf.instId,
.EntityId = if ((monsConf.monsterId / 1000) % 10 == 3) monster_info.monster_id else generator.nextId(), .EntityId = generator.nextId(),
.Motion = .{ .Motion = .{
.pos = .{ .x = monsConf.pos.x, .y = monsConf.pos.y, .z = monsConf.pos.z }, .pos = .{ .x = monsConf.pos.x, .y = monsConf.pos.y, .z = monsConf.pos.z },
.rot = .{ .x = monsConf.rot.x, .y = monsConf.rot.y, .z = monsConf.rot.z }, .rot = .{ .x = monsConf.rot.x, .y = monsConf.rot.y, .z = monsConf.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 = avatar_list.items[0]; scene_info.leader_entity_id = 1;
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,10 +172,11 @@ 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) |avatarConf| { for (avatar_list.items, 0..) |avatarConf, idx| {
const newidx = idx + 100000;
try scene_group.entity_list.append(.{ try scene_group.entity_list.append(.{
.InstId = 1, .InstId = 1,
.EntityId = @intCast(avatarConf + 100000), .EntityId = @intCast(newidx),
.entityCase_ = .{ .entityCase_ = .{
.Actor = .{ .Actor = .{
.base_avatar_id = avatarConf, .base_avatar_id = avatarConf,

View file

@ -4,7 +4,6 @@ const Session = @import("../Session.zig");
const Packet = @import("../Packet.zig"); const Packet = @import("../Packet.zig");
const Config = @import("config.zig"); const Config = @import("config.zig");
const Data = @import("../data.zig"); const Data = @import("../data.zig");
const LineupData = @import("../manager/lineup_mgr.zig");
const UidGenerator = @import("item.zig").UidGenerator; const UidGenerator = @import("item.zig").UidGenerator;
const ArrayList = std.ArrayList; const ArrayList = std.ArrayList;
@ -184,12 +183,6 @@ pub fn onGetAvatarData(session: *Session, packet: *const Packet, allocator: Allo
} }
try rsp.avatar_list.append(avatar); try rsp.avatar_list.append(avatar);
const avatarType: protocol.MultiPathAvatarType = @enumFromInt(avatarConf.id); const avatarType: protocol.MultiPathAvatarType = @enumFromInt(avatarConf.id);
if (avatarConf.id >= 8001 and avatarConf.id <= 8008) {
LineupData.mc_id = avatarConf.id;
}
if (avatarConf.id == 1001 or avatarConf.id == 1224) {
LineupData.m7th = avatarConf.id;
}
if (@intFromEnum(avatarType) > 1) { if (@intFromEnum(avatarType) > 1) {
try session.send(CmdID.CmdSetAvatarPathScRsp, protocol.SetAvatarPathScRsp{ try session.send(CmdID.CmdSetAvatarPathScRsp, protocol.SetAvatarPathScRsp{
.retcode = 0, .retcode = 0,

View file

@ -13,18 +13,6 @@ const ArrayList = std.ArrayList;
const Allocator = std.mem.Allocator; const Allocator = std.mem.Allocator;
const CmdID = protocol.CmdID; const CmdID = protocol.CmdID;
const log = std.log.scoped(.scene_service);
// Function to check if an ID is in a list
fn isInList(id: u32, list: []const u32) bool {
for (list) |item| {
if (item == id) {
return true;
}
}
return false;
}
pub var on_battle: bool = false; pub var on_battle: bool = false;
pub fn onStartCocoonStage(session: *Session, packet: *const Packet, allocator: Allocator) !void { pub fn onStartCocoonStage(session: *Session, packet: *const Packet, allocator: Allocator) !void {
@ -81,40 +69,27 @@ 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 battle_info: ?protocol.SceneBattleInfo = null;
var monster_battle_info_list = ArrayList(protocol.HitMonsterBattleInfo).init(allocator); var monster_battle_info_list = ArrayList(protocol.HitMonsterBattleInfo).init(allocator);
Highlight("SKILL INDEX: {}", .{req.skill_index}); try monster_battle_info_list.appendSlice(&[_]protocol.HitMonsterBattleInfo{
Highlight("ATTACKED BY ENTITY ID: {}", .{req.attacked_by_entity_id}); .{
const is_challenge = ChallengeData.on_challenge; .target_monster_entity_id = 0,
for (req.assist_monster_entity_id_list.items) |id| { .monster_battle_type = protocol.MonsterBattleType.MONSTER_BATTLE_TYPE_TRIGGER_BATTLE,
const attacker_id = req.attacked_by_entity_id; },
const skill_index = req.skill_index; });
const bt = getBattleType(id, attacker_id, skill_index, is_challenge);
if (is_challenge) { var battle_info: ?protocol.SceneBattleInfo = null;
if ((attacker_id <= 1000) or (id < 1000)) {
Highlight("CHALLENGE, MONSTER ENTITY ID: {} -> {}", .{ id, bt }); if (req.assist_monster_entity_id_list.items.len > 0 or
try monster_battle_info_list.append(.{ (req.attacked_by_entity_id >= 1 and req.attacked_by_entity_id <= 99))
.target_monster_entity_id = id, {
.monster_battle_type = bt, if (ChallengeData.on_challenge) {
}); battle_info = challenge;
if (bt == protocol.MonsterBattleType.MONSTER_BATTLE_TYPE_TRIGGER_BATTLE) {
battle_info = challenge;
}
}
} else { } else {
if ((attacker_id <= 1000 or attacker_id > 1000000) or (id < 1000 or id > 1000000)) { battle_info = battle;
Highlight("BATTLE, MONSTER ENTITY ID: {} -> {}", .{ id, bt }); on_battle = true;
try monster_battle_info_list.append(.{
.target_monster_entity_id = id,
.monster_battle_type = bt,
});
if (bt == protocol.MonsterBattleType.MONSTER_BATTLE_TYPE_TRIGGER_BATTLE) {
battle_info = battle;
on_battle = true;
}
}
} }
} }
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,
@ -161,35 +136,3 @@ pub fn onSyncClientResVersion(session: *Session, packet: *const Packet, allocato
.client_res_version = req.client_res_version, .client_res_version = req.client_res_version,
}); });
} }
fn Highlight(comptime msg: []const u8, args: anytype) void {
std.debug.print("\x1b[33m", .{});
std.debug.print(msg, args);
std.debug.print("\x1b[0m\n", .{});
}
fn getBattleType(id: u32, attacker_id: u32, skill_index: u32, is_challenge: bool) protocol.MonsterBattleType {
if (skill_index != 1) {
return protocol.MonsterBattleType.MONSTER_BATTLE_TYPE_TRIGGER_BATTLE;
}
if (attacker_id >= 1 and attacker_id <= 1000) {
return protocol.MonsterBattleType.MONSTER_BATTLE_TYPE_TRIGGER_BATTLE;
}
if (attacker_id >= 100000) {
const attacker_offset = attacker_id - 100000;
if (isInList(attacker_offset, &Data.IgnoreBattle)) {
return protocol.MonsterBattleType.MONSTER_BATTLE_TYPE_NO_BATTLE;
}
if (isInList(attacker_offset, &Data.SkipBattle)) {
if (is_challenge) {
return protocol.MonsterBattleType.MONSTER_BATTLE_TYPE_TRIGGER_BATTLE;
} else {
if (id > 1000000) {
return protocol.MonsterBattleType.MONSTER_BATTLE_TYPE_TRIGGER_BATTLE;
} else {
return protocol.MonsterBattleType.MONSTER_BATTLE_TYPE_DIRECT_DIE_SKIP_BATTLE;
}
}
}
}
return protocol.MonsterBattleType.MONSTER_BATTLE_TYPE_TRIGGER_BATTLE;
}

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 = "Use https://relic-builder.vercel.app/ to setup config" }, .content = .{ .Const = "/sync command is having some issues right now. In order to change gear setup, you need to re-login" },
.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,10 +41,6 @@ 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,15 +45,7 @@ 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

@ -26,7 +26,7 @@ pub fn onSceneEntityMove(session: *Session, packet: *const Packet, allocator: Al
const req = try packet.getProto(protocol.SceneEntityMoveCsReq, allocator); const req = try packet.getProto(protocol.SceneEntityMoveCsReq, allocator);
for (req.entity_motion_list.items) |entity_motion| { for (req.entity_motion_list.items) |entity_motion| {
if (entity_motion.motion) |motion| { if (entity_motion.motion) |motion| {
if (entity_motion.entity_id > 99999 and entity_motion.entity_id < 1000000 or entity_motion.entity_id == 0) if (entity_motion.entity_id > 99999 or entity_motion.entity_id == 0)
log.debug("[POSITION] entity_id: {}, motion: {}", .{ entity_motion.entity_id, motion }); log.debug("[POSITION] entity_id: {}, motion: {}", .{ entity_motion.entity_id, motion });
} }
} }
@ -69,6 +69,7 @@ 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");
@ -232,15 +233,6 @@ pub fn onDeactivateFarmElement(session: *Session, packet: *const Packet, allocat
.entity_id = req.entity_id, .entity_id = req.entity_id,
}); });
} }
pub fn onActivateFarmElement(session: *Session, packet: *const Packet, allocator: Allocator) !void {
const req = try packet.getProto(protocol.ActivateFarmElementCsReq, allocator);
std.debug.print("ACTIVATE FARM ELEMENT ENTITY ID: {}\n", .{req.entity_id});
try session.send(CmdID.CmdActivateFarmElementScRsp, protocol.ActivateFarmElementScRsp{
.retcode = 0,
.world_level = req.world_level,
.entity_id = req.entity_id,
});
}
pub fn onSetGroupCustomSaveData(session: *Session, packet: *const Packet, allocator: Allocator) !void { pub fn onSetGroupCustomSaveData(session: *Session, packet: *const Packet, allocator: Allocator) !void {
const req = try packet.getProto(protocol.SetGroupCustomSaveDataCsReq, allocator); const req = try packet.getProto(protocol.SetGroupCustomSaveDataCsReq, allocator);
//switch (req.AAMHHECOCOI) { //switch (req.AAMHHECOCOI) {

View file

@ -1,4 +1,28 @@
{ {
"OSBETAWin3.2.51": {
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_9961450_404865fc6856_fbf8b526e6b08c",
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_9984498_2b39fa0086e4_1f081bc40d1782",
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253",
"ifix_version": "0",
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_9961575_227d4559d8e3_cd27ed7ca2bbfd",
"lua_version": ""
},
"OSBETAWin3.2.52": {
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_10025177_f10d2880371c_719811bc00424c",
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_10037027_be14d3e01696_5aa1cd3547cbdb",
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4",
"ifix_version": "0",
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_10025298_1dc728a6c8ee_1128f068b506d4",
"lua_version": ""
},
"OSBETAWin3.2.53": {
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_10104345_a5535dc0c779_a36b870100988f",
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_10128229_1abd7f8c3047_3cb3e1bffdb636",
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4",
"ifix_version": "0",
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_10104505_31a450a7e7a3_0793e9a5426e39",
"lua_version": ""
},
"CNBETAWin3.3.51": { "CNBETAWin3.3.51": {
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_10451237_a3aa836fce75_f560b891c0d21e", "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_10451237_a3aa836fce75_f560b891c0d21e",
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_10459782_ced8509d61c9_cdbde1049f2207", "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_10459782_ced8509d61c9_cdbde1049f2207",
@ -6,21 +30,5 @@
"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": ""
},
"CNBETAWin3.3.53": {
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_10553897_658616122c5e_1311a7ab7701f7",
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_10564145_db8507c78423_dc92dd047d442d",
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885",
"ifix_version": "0",
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_10554126_56a3036b1f8c_6dab2038cb17c3",
"lua_version": ""
} }
} }

Binary file not shown.

View file

@ -1,697 +0,0 @@
[
{
"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": 6, "MazeGroupID2": 7,
"ConfigList2": [ "ConfigList2": [
200001 200001
], ],
@ -28146,7 +28146,7 @@
"EventIDList1": [ "EventIDList1": [
420262 420262
], ],
"MazeGroupID2": 6, "MazeGroupID2": 7,
"ConfigList2": [ "ConfigList2": [
200001 200001
], ],
@ -28200,7 +28200,7 @@
"EventIDList1": [ "EventIDList1": [
420263 420263
], ],
"MazeGroupID2": 6, "MazeGroupID2": 7,
"ConfigList2": [ "ConfigList2": [
200001 200001
], ],
@ -28254,7 +28254,7 @@
"EventIDList1": [ "EventIDList1": [
420264 420264
], ],
"MazeGroupID2": 6, "MazeGroupID2": 7,
"ConfigList2": [ "ConfigList2": [
200001 200001
], ],

File diff suppressed because it is too large Load diff