mirror of
https://github.com/MikuLeaks/KianaBH3.git
synced 2025-12-12 21:04:41 +01:00
feat: Implement Character Tutorial
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
# MikuBH3
|
||||
|
||||
A Server emulator for version 7.9 of a certain adventure anime game
|
||||
|
||||

|
||||
|
||||
## 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
|
||||
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
12
game_server/resource/configdb/general_activity.py
Normal file
12
game_server/resource/configdb/general_activity.py
Normal 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)
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user