36 lines
1.3 KiB
Go
36 lines
1.3 KiB
Go
package gameserver
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"gac-hkrpg-go/internal/common"
|
|
pb "gac-hkrpg-go/protocol/proto"
|
|
"google.golang.org/protobuf/proto"
|
|
)
|
|
|
|
func init() {
|
|
// Current command-table names remain obfuscated. Current .54 native evidence:
|
|
// _OnGetDataSuccess d4dbc60 reads response+3c -> _SetUpProgress; FNIAAEAFGDE
|
|
// getter 1fc3dcd0 reads +3c. That path calls Progress.EIBHHOPHJCK at
|
|
// 16c8dab0, which writes +18; get_CurrentCycleId at 16c8d980 reads +18.
|
|
// HNOCFELOAFJ (+10) supplies the completed-level collection. See the
|
|
// comic-*-consumer/current getter disassemblies and ComicDessertCatalog.
|
|
rawNamed("MGCJKEEOPEC", func(s *Session, body []byte) error {
|
|
rsp := &pb.LPLCFFGANFC{Retcode: uint32(pb.Retcode_RET_FAIL)}
|
|
if err := proto.Unmarshal(body, new(pb.MGCJKEEOPEC)); err != nil {
|
|
return s.Send(rsp)
|
|
}
|
|
catalog, err := common.LoadComicDessertCatalog()
|
|
if err != nil {
|
|
PacketLog("COMIC_DESSERT_DATA rejected: " + err.Error())
|
|
return s.Send(rsp)
|
|
}
|
|
// Preview starts at the resource's first cycle. No finished levels,
|
|
// upgrades, currency, claimed rewards or saved completion are fabricated.
|
|
rsp.FNIAAEAFGDE = catalog.InitialCycle().ID
|
|
rsp.Retcode = 0
|
|
PacketLog(fmt.Sprintf("COMIC_DESSERT_DATA preview_cycle=%d cycles=%d levels=%d", rsp.FNIAAEAFGDE, len(catalog.Cycles), len(catalog.Levels)))
|
|
return s.Send(rsp)
|
|
})
|
|
}
|