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

|

|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
@@ -10,6 +11,7 @@ A Server emulator for version 7.9 of a certain adventure anime game
|
|||||||
- Superstring Dimension (Abyss)
|
- Superstring Dimension (Abyss)
|
||||||
- Universial Mirage
|
- Universial Mirage
|
||||||
- Story Chapter 1 - 42
|
- Story Chapter 1 - 42
|
||||||
|
- Character Tutorial
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
@@ -93,7 +95,7 @@ Join [Discord](https://discord.gg/MdHC4AJvec) for support
|
|||||||
|
|
||||||
- Part 2 Story & Open world
|
- Part 2 Story & Open world
|
||||||
|
|
||||||
- Character Tutorial
|
- ~~Character Tutorial~~
|
||||||
|
|
||||||
# Credits
|
# Credits
|
||||||
|
|
||||||
|
|||||||
@@ -1,22 +1,44 @@
|
|||||||
import betterproto
|
import betterproto
|
||||||
from game_server.net.session import Session
|
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 (
|
from lib.proto import (
|
||||||
GeneralActivityGetMainInfoReq,
|
GeneralActivityGetMainInfoReq,
|
||||||
GeneralActivityGetMainInfoRsp,
|
GeneralActivityGetMainInfoRsp,
|
||||||
GeneralActivity,
|
GeneralActivity,
|
||||||
GeneralActivityBasicInfo
|
GeneralActivityBasicInfo,
|
||||||
|
GeneralActivityStage,
|
||||||
|
GeneralActivityStageGroupScheduleInfo
|
||||||
)
|
)
|
||||||
|
|
||||||
async def handle(session: Session, msg: GeneralActivityGetMainInfoReq) -> betterproto.Message:
|
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(
|
return GeneralActivityGetMainInfoRsp(
|
||||||
retcode=0,
|
retcode=0,
|
||||||
activity_list=[
|
activity_list=activity_list
|
||||||
GeneralActivity(
|
|
||||||
general_basic_info=GeneralActivityBasicInfo(
|
|
||||||
activity_id=50000001,
|
|
||||||
schedule_id=412,
|
|
||||||
series_activity_id=[50000001]
|
|
||||||
)
|
|
||||||
)
|
|
||||||
]
|
|
||||||
)
|
)
|
||||||
|
|||||||
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