Compare commits

..

9 commits
1.0.0 ... main

Author SHA1 Message Date
4bd91c5a2f update v3, fix: Can not use ability in technique,
skip battle when using Acheron/Trashbin's technique
on normall mobs, added cosmetic gameserver log
2025-06-03 11:54:12 +07:00
5f9ba04784 Added some random stuffs in and fix some issues 2025-05-30 01:22:24 +07:00
3f78d81604 update and fix bug 2025-05-27 23:25:56 +07:00
3af20a7dfa update v2, fix /sync and some bugs 2025-05-27 23:19:15 +07:00
2d777dc487 update update update update README for real 2025-05-25 06:04:07 +00:00
bddd05a7c3 added mhybase.dll 2025-05-25 12:58:10 +07:00
a349fd57d3 added mhybase.dll 2025-05-25 12:55:39 +07:00
003a6c6bf0 Update README.md 2025-05-25 05:54:45 +00:00
359715a600 Update README.md 2025-05-23 17:52:03 +00:00
19 changed files with 450636 additions and 424286 deletions

View file

@ -5,10 +5,14 @@
![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
### Replacing mhypbase.dll
Replace [mhypbase.dll](https://git.xeondev.com/HonkaiSlopRail/jingliu-sr/raw/branch/main/mhypbase.dll) file in your game folder.
### From source ### From source
Windows: Windows:
@ -16,9 +20,9 @@ Windows:
git clone https://git.xeondev.com/HonkaiSlopRail/jingliu-sr git clone https://git.xeondev.com/HonkaiSlopRail/jingliu-sr
cd jingliu-sr cd jingliu-sr
zig build run-dispatch zig build run-dispatch
zig build run- zig build run-gameserver
``` ```
Then open Proxy then open client Then open your client.
Linux: Linux:
``` ```
@ -26,7 +30,7 @@ git clone https://git.xeondev.com/HonkaiSlopRail/jingliu-sr
cd jingliu-sr cd jingliu-sr
zig build run-dispatch & zig build run-gameserver zig build run-dispatch & zig build run-gameserver
``` ```
Then open Proxy then open client Then open your client.
### Using Pre-built Binaries ### Using Pre-built Binaries
Navigate to the [Releases](https://git.xeondev.com/HonkaiSlopRail/jingliu-sr/releases) Navigate to the [Releases](https://git.xeondev.com/HonkaiSlopRail/jingliu-sr/releases)
@ -40,7 +44,7 @@ page and download the latest release for your platform.
- Test battle via calyx - Test battle via calyx
- MOC/PF/AS simulator - MOC/PF/AS simulator
- Gacha simulator - Gacha simulator
- Support command for Sillyism (there are some bugs right now ) - Support command for Sillyism
## Contributing ## Contributing

View file

@ -1,77 +1,5 @@
{ {
"avatar_config": [ "avatar_config": [
{
"name": "Jingliu",
"id": 1212,
"hp": 100,
"sp": 50,
"level": 80,
"promotion": 6,
"rank": 0,
"lightcone": {
"id": 23014,
"rank": 1,
"level": 80,
"promotion": 6
},
"relics": [
"61041,15,1,4,5:1:0,6:3:5,8:1:1,9:4:4",
"61022,15,1,4,3:1:1,6:3:3,8:1:1,9:3:3",
"61043,15,5,4,6:1:1,8:3:3,10:3:3,12:2:1",
"61024,15,4,4,2:1:2,5:1:1,8:4:4,9:3:0",
"63095,15,6,4,2:1:0,3:3:4,8:2:3,11:2:4",
"63096,15,2,4,1:1:0,2:2:4,7:3:1,9:2:3"
],
"use_technique": false
},
{
"name": "Silver Wolf",
"id": 1006,
"hp": 100,
"sp": 50,
"level": 80,
"promotion": 6,
"rank": 0,
"lightcone": {
"id": 23007,
"rank": 1,
"level": 80,
"promotion": 6
},
"relics": [
"61141,15,1,4,2:3:2,4:2:3,7:2:1,11:1:2",
"61142,15,1,4,3:1:0,6:1:1,7:4:4,9:2:0",
"61113,15,7,4,2:1:2,6:3:2,7:3:1,11:1:0",
"61114,15,4,4,3:1:2,4:3:3,10:3:4,11:2:1",
"63125,15,1,4,2:2:4,7:3:1,11:2:2,12:2:3",
"63126,15,2,4,6:1:0,7:2:1,9:3:1,10:2:2"
],
"use_technique": false
},
{
"name": "Kafka",
"id": 1005,
"hp": 100,
"sp": 50,
"level": 80,
"promotion": 6,
"rank": 0,
"lightcone": {
"id": 23006,
"rank": 1,
"level": 80,
"promotion": 6
},
"relics": [
"61161,15,1,4,5:1:1,6:2:2,7:3:1,8:2:2",
"61162,15,1,4,1:2:2,5:2:2,9:2:2,10:2:3",
"61163,15,2,4,7:3:1,8:1:1,10:2:2,11:2:3",
"61164,15,4,4,1:1:0,8:2:0,9:2:1,11:3:4",
"63115,15,7,4,1:3:4,2:1:2,8:1:0,9:3:0",
"63116,15,4,4,1:2:2,8:3:0,11:1:2,12:2:4"
],
"use_technique": false
},
{ {
"name": "Saber", "name": "Saber",
"id": 1014, "id": 1014,
@ -79,71 +7,23 @@
"sp": 50, "sp": 50,
"level": 80, "level": 80,
"promotion": 6, "promotion": 6,
"rank": 6, "rank": 0,
"lightcone": { "lightcone": {
"id": 23045, "id": 23045,
"rank": 5,
"level": 80,
"promotion": 6
},
"relics": [
"61261,15,1,4,5:2:2,7:1:1,8:3:3,9:3:3",
"61262,15,1,4,9:1:1,7:3:3,5:3:3,8:2:2",
"61263,15,5,4,7:2:2,8:3:3,5:3:3,4:1:1",
"61264,15,4,4,8:2:2,9:3:3,5:2:2,4:2:2",
"63095,15,8,4,9:2:2,8:1:1,5:3:3,7:3:3",
"63096,15,4,4,9:2:2,8:2:2,7:3:3,4:2:2"
],
"use_technique": true
},
{
"name": "Archer",
"id": 1015,
"hp": 100,
"sp": 50,
"level": 80,
"promotion": 6,
"rank": 0,
"lightcone": {
"id": 23046,
"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,6:4:4,3:3:3,11:1:1,2:1:1",
"61262,15,1,4,10:2:2,11:3:3,12:3:3,6:1:1", "61262,15,1,4,5:1:1,12:2:2,10:4:4,11:2:2",
"61263,15,5,4,4:2:2,10:3:3,11:2:2,12:2:2", "61263,15,5,4,8:2:2,6:2:2,5:2:2,10:3:3",
"61264,15,2,4,10:2:2,6:2:2,9:4:4,2:1:1", "61264,15,4,4,11:3:3,5:3:3,10:1:1,2:2:2",
"63145,15,9,4,4:1:1,6:4:4,9:1:1,5:3:3", "63095,15,8,4,11:2:2,12:3:3,10:3:3,5:1:1",
"63146,15,4,4,1:3:3,10:3:3,9:1:1,11:2:2" "63096,15,4,4,6:2:2,3:2:2,8:3:3,11:2:2"
], ],
"use_technique": true "use_technique": true
}, },
{
"name": "Phainon",
"id": 1408,
"hp": 100,
"sp": 50,
"level": 80,
"promotion": 6,
"rank": 0,
"lightcone": {
"id": 23044,
"rank": 1,
"level": 80,
"promotion": 6
},
"relics": [
"61261,15,1,4,6:1:1,9:3:3,12:3:3,4:2:2",
"61262,15,1,4,9:4:4,11:1:1,5:2:2,8:2:2",
"61263,15,5,4,3:2:2,2:2:2,5:4:4,6:1:1",
"61264,15,2,4,10:1:1,12:3:3,8:1:1,4:4:4",
"63225,15,4,4,9:1:1,4:2:2,6:2:2,3:4:4",
"63226,15,4,4,1:3:3,8:2:2,2:2:2,3:2:2"
],
"use_technique": false
},
{ {
"name": "Hyacine", "name": "Hyacine",
"id": 1409, "id": 1409,
@ -159,132 +39,12 @@
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61251,15,1,4,3:1:2,4:3:1,7:1:0,9:3:2", "61251,15,1,4,12:3:3,6:4:4,5:1:1,4:1:1",
"61252,15,1,4,1:2:4,7:3:1,9:2:0,12:1:2", "61252,15,1,4,10:2:2,12:2:2,7:3:3,9:2:2",
"61253,15,6,4,6:2:2,7:3:1,9:1:2,11:2:3", "61253,15,6,4,1:1:1,5:3:3,3:4:4,6:1:1",
"61254,15,4,4,1:3:2,5:1:1,9:2:2,11:2:2", "61254,15,4,4,1:2:2,8:3:3,12:2:2,5:2:2",
"63205,15,1,4,1:1:0,6:1:2,7:3:1,9:3:2", "63205,15,1,4,8:3:3,5:2:2,7:2:2,12:2:2",
"63206,15,3,4,3:1:0,6:2:2,7:4:4,9:1:0" "63206,15,3,4,6:2:2,7:1:1,8:4:4,3:2:2"
],
"use_technique": false
},
{
"name": "Castorice",
"id": 1407,
"hp": 100,
"sp": 50,
"level": 80,
"promotion": 6,
"rank": 0,
"lightcone": {
"id": 23040,
"rank": 1,
"level": 80,
"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 "use_technique": true
}, },
@ -303,14 +63,182 @@
"promotion": 6 "promotion": 6
}, },
"relics": [ "relics": [
"61241,15,1,4,8:2:1,9:2:4,11:2:2,12:2:2", "61241,15,1,4,6:3:3,12:1:1,2:3:3,7:2:2",
"61242,15,1,4,3:1:0,4:2:0,6:1:8,9:3:2", "61242,15,1,4,8:2:2,5:2:2,10:1:1,9:4:4",
"61243,15,5,4,3:2:4,8:3:2,10:1:0,11:2:3", "61243,15,5,4,5:2:2,12:2:2,2:2:2,6:3:3",
"61244,15,1,4,1:2:3,3:2:2,8:2:2,9:2:2", "61244,15,1,4,11:2:2,7:3:3,12:2:2,8:2:2",
"63195,15,1,4,1:2:4,5:1:1,8:4:4,9:1:1", "63195,15,1,4,10:4:4,8:1:1,1:2:2,2:2:2",
"63196,15,2,4,4:1:1,8:3:5,9:1:2,12:3:3" "63196,15,2,4,5:3:3,12:2:2,3:3:3,7:1:1"
], ],
"use_technique": true "use_technique": true
},
{
"name": "Silver Wolf",
"id": 1006,
"hp": 100,
"sp": 50,
"level": 80,
"promotion": 6,
"rank": 0,
"lightcone": {
"id": 23029,
"rank": 5,
"level": 80,
"promotion": 6
},
"relics": [
"61081,15,1,4,8:2:2,7:2:2,2:2:2,9:3:3",
"61082,15,1,4,10:3:3,1:3:3,11:1:1,6:2:2",
"61083,15,7,4,12:4:4,5:2:2,2:1:1,8:2:2",
"61084,15,4,4,5:1:1,9:1:1,8:3:3,10:4:4",
"63035,15,9,4,12:2:2,8:1:1,3:3:3,11:3:3",
"63036,15,2,4,5:1:1,3:2:2,10:3:3,7:3:3"
],
"use_technique": true
},
{
"name": "Phainon",
"id": 1408,
"hp": 100,
"sp": 50,
"level": 80,
"promotion": 6,
"rank": 0,
"lightcone": {
"id": 23044,
"rank": 1,
"level": 80,
"promotion": 6
},
"relics": [
"61261,15,1,4,5:2:2,2:2:2,3:3:3,9:2:2",
"61262,15,1,4,12:3:3,1:3:3,5:1:1,8:2:2",
"61263,15,5,4,3:1:1,7:3:3,10:4:4,4:1:1",
"61264,15,4,4,8:1:1,12:1:1,1:5:5,3:2:2",
"63215,15,4,4,4:1:1,9:1:1,5:4:4,3:3:3",
"63216,15,4,4,10:3:3,7:2:2,9:3:3,6:1:1"
],
"use_technique": true
},
{
"name": "Kafka",
"id": 1005,
"hp": 100,
"sp": 50,
"level": 80,
"promotion": 6,
"rank": 0,
"lightcone": {
"id": 23006,
"rank": 1,
"level": 80,
"promotion": 6
},
"relics": [
"61161,15,1,4,2:2:2,8:3:3,9:2:2,6:2:2",
"61162,15,1,4,4:2:2,5:2:2,7:3:3,6:2:2",
"61163,15,2,4,10:3:3,11:1:1,8:3:3,9:2:2",
"61164,15,4,4,10:2:2,1:1:1,8:4:4,6:2:2",
"63225,15,7,4,5:2:2,10:2:2,2:3:3,3:2:2",
"63226,15,4,4,2:4:4,7:3:3,3:1:1,1:1:1"
],
"use_technique": true
},
{
"name": "Jingliu",
"id": 1212,
"hp": 100,
"sp": 50,
"level": 80,
"promotion": 6,
"rank": 6,
"lightcone": {
"id": 23014,
"rank": 5,
"level": 80,
"promotion": 6
},
"relics": [
"61261,15,1,4,11:3:3,7:1:1,3:3:3,12:2:2",
"61262,15,1,4,5:3:3,4:2:2,6:3:3,7:1:1",
"61263,15,5,4,8:2:2,6:3:3,7:1:1,10:3:3",
"61264,15,4,4,10:1:1,4:4:4,5:2:2,12:2:2",
"63195,15,6,4,6:3:3,12:1:1,9:2:2,8:3:3",
"63196,15,3,4,10:3:3,8:3:3,7:2:2,6:1:1"
],
"use_technique": true
},
{
"name": "Acheron",
"id": 1308,
"hp": 100,
"sp": 50,
"level": 80,
"promotion": 6,
"rank": 6,
"lightcone": {
"id": 23024,
"rank": 5,
"level": 80,
"promotion": 6
},
"relics": [
"61261,15,1,4,7:4:4,12:3:3,4:1:1,9:1:1",
"61262,15,1,4,1:3:3,4:2:2,7:2:2,9:2:2",
"61263,15,5,4,4:1:1,6:2:2,2:3:3,8:3:3",
"61264,15,2,4,11:4:4,8:2:2,4:1:1,10:2:2",
"63145,15,7,4,9:5:5,8:2:2,1:1:1,2:1:1",
"63146,15,4,4,2:4:4,10:1:1,8:1:1,12:3:3"
],
"use_technique": true
},
{
"name": "Anaxa",
"id": 1405,
"hp": 100,
"sp": 50,
"level": 80,
"promotion": 6,
"rank": 0,
"lightcone": {
"id": 23041,
"rank": 1,
"level": 80,
"promotion": 6
},
"relics": [
"61221,15,1,4,11:1:1,5:2:2,9:3:3,10:3:3",
"61222,15,1,4,12:1:1,9:4:4,3:2:2,5:2:2",
"61223,15,5,4,11:2:2,2:2:2,1:4:4,5:1:1",
"61224,15,4,4,10:3:3,8:3:3,4:2:2,9:1:1",
"63175,15,8,4,7:2:2,9:2:2,4:1:1,8:4:4",
"63176,15,4,4,7:3:3,8:2:2,3:2:2,4:2:2"
],
"use_technique": false
},
{
"name": "Castorice",
"id": 1407,
"hp": 100,
"sp": 50,
"level": 80,
"promotion": 6,
"rank": 0,
"lightcone": {
"id": 23040,
"rank": 1,
"level": 80,
"promotion": 6
},
"relics": [
"61241,15,1,4,4:2:2,9:3:3,12:1:1,8:3:3",
"61242,15,1,4,5:2:2,1:2:2,6:3:3,8:2:2",
"61243,15,5,4,10:2:2,3:2:2,1:2:2,6:3:3",
"61244,15,1,4,3:2:2,6:2:2,2:4:4,5:1:1",
"63195,15,1,4,11:1:1,8:2:2,6:3:3,10:3:3",
"63196,15,3,4,2:2:2,8:3:3,7:1:1,3:3:3"
],
"use_technique": false
} }
], ],
"battle_config": { "battle_config": {

View file

@ -6,6 +6,7 @@ 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;
@ -23,6 +24,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 +63,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);
} }
@ -141,6 +147,12 @@ 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,
@ -232,7 +244,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

@ -6,6 +6,8 @@ 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,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,20 @@ 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 {
@ -32,6 +46,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 +87,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;
@ -96,7 +118,10 @@ 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.* = 8008; item.* = mc_id;
}
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 = 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 },
@ -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 = generator.nextId(), .EntityId = if ((monsConf.monsterId / 1000) % 10 == 3) monster_info.monster_id else 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 = 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

@ -4,6 +4,7 @@ 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;
@ -183,6 +184,12 @@ 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,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;
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 {
@ -69,27 +81,40 @@ 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);
if (req.assist_monster_entity_id_list.items.len > 0 or Highlight("SKILL INDEX: {}", .{req.skill_index});
(req.attacked_by_entity_id >= 1 and req.attacked_by_entity_id <= 99)) Highlight("ATTACKED BY ENTITY ID: {}", .{req.attacked_by_entity_id});
{ const is_challenge = ChallengeData.on_challenge;
if (ChallengeData.on_challenge) { for (req.assist_monster_entity_id_list.items) |id| {
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) {
if ((attacker_id <= 1000) or (id < 1000)) {
Highlight("CHALLENGE, MONSTER ENTITY ID: {} -> {}", .{ id, bt });
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 = challenge; battle_info = challenge;
}
}
} else { } else {
if ((attacker_id <= 1000 or attacker_id > 1000000) or (id < 1000 or id > 1000000)) {
Highlight("BATTLE, MONSTER ENTITY ID: {} -> {}", .{ id, bt });
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; battle_info = battle;
on_battle = true; 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,
@ -136,3 +161,35 @@ 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 = "/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

@ -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 or entity_motion.entity_id == 0) if (entity_motion.entity_id > 99999 and entity_motion.entity_id < 1000000 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,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");
@ -233,6 +232,15 @@ 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,28 +1,4 @@
{ {
"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",
@ -30,5 +6,21 @@
"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": ""
} }
} }

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