feat: Implement Character Tutorial

This commit is contained in:
Naruse
2024-11-09 11:17:18 +08:00
parent ff0a1212d1
commit 4b9a4e171e
4 changed files with 59 additions and 11 deletions

View File

@@ -1,6 +1,7 @@
# MikuBH3
A Server emulator for version 7.9 of a certain adventure anime game
![screenshot](https://github.com/MikuLeaks/MikuBH3-PS/raw/main/screenshot.png)
## Features
@@ -10,6 +11,7 @@ A Server emulator for version 7.9 of a certain adventure anime game
- Superstring Dimension (Abyss)
- Universial Mirage
- Story Chapter 1 - 42
- Character Tutorial
## Requirements
@@ -93,7 +95,7 @@ Join [Discord](https://discord.gg/MdHC4AJvec) for support
- Part 2 Story & Open world
- Character Tutorial
- ~~Character Tutorial~~
# Credits

View File

@@ -1,22 +1,44 @@
import betterproto
from game_server.net.session import Session
from utils.time import get_unix_in_seconds
from game_server.resource import ResourceManager
from game_server.resource.configdb.general_activity_stage_group import GeneralActivityStageGroupData
from game_server.resource.configdb.general_activity import GeneralActivityData
from lib.proto import (
GeneralActivityGetMainInfoReq,
GeneralActivityGetMainInfoRsp,
GeneralActivity,
GeneralActivityBasicInfo
GeneralActivityBasicInfo,
GeneralActivityStage,
GeneralActivityStageGroupScheduleInfo
)
async def handle(session: Session, msg: GeneralActivityGetMainInfoReq) -> betterproto.Message:
activity_list = []
for activity_id in msg.activity_id_list:
series = ResourceManager.instance().find_by_index(GeneralActivityData, activity_id)
activity = GeneralActivity(
general_basic_info=GeneralActivityBasicInfo(
activity_id=activity_id,
schedule_id=series.Series if series else 0,
series_activity_id=[activity_id]
)
)
activity_stage = ResourceManager.instance().find_by_index(GeneralActivityStageGroupData, activity_id)
if activity_stage:
activity.activity_stage=GeneralActivityStage(
stage_group_schedule_list=[
GeneralActivityStageGroupScheduleInfo(
begin_time=1593223200,
end_time=1913140799,
stage_group_id=activity_stage.StageGroupID
)
]
)
activity_list.append(activity)
return GeneralActivityGetMainInfoRsp(
retcode=0,
activity_list=[
GeneralActivity(
general_basic_info=GeneralActivityBasicInfo(
activity_id=50000001,
schedule_id=412,
series_activity_id=[50000001]
)
)
]
activity_list=activity_list
)

View File

@@ -0,0 +1,12 @@
from dataclasses import dataclass
from game_server.resource.base_resource import BaseResource
from game_server.resource.decorators import GameResource
@dataclass
@GameResource("resources/ExcelOutputAsset/GeneralActivity.json")
class GeneralActivityData(BaseResource):
AcitivityID: int
Series: int
def get_index(self) -> str:
return str(self.AcitivityID)

View File

@@ -0,0 +1,12 @@
from dataclasses import dataclass
from game_server.resource.base_resource import BaseResource
from game_server.resource.decorators import GameResource
@dataclass
@GameResource("resources/ExcelOutputAsset/GeneralActivityStageGroup.json")
class GeneralActivityStageGroupData(BaseResource):
AcitivityID: int
StageGroupID: int
def get_index(self) -> str:
return str(self.AcitivityID)