init
This commit is contained in:
58
game_server/handlers/GetSceneMapInfoCsReq.py
Normal file
58
game_server/handlers/GetSceneMapInfoCsReq.py
Normal file
@@ -0,0 +1,58 @@
|
||||
import betterproto
|
||||
from game_server.net.session import PlayerSession
|
||||
from game_server.resource import ResourceManager
|
||||
from game_server.resource.configdb.map_entrance import MapEntranceData
|
||||
from game_server.resource.configdb.map_default_entrance import MapDefaultEntranceData
|
||||
from rail_proto.lib import (
|
||||
GetSceneMapInfoCsReq,
|
||||
GetSceneMapInfoScRsp,
|
||||
SceneMapInfo,
|
||||
ChestInfo,
|
||||
ChestType,
|
||||
MazeGroup,
|
||||
MazePropState
|
||||
)
|
||||
|
||||
async def handle(session: PlayerSession, msg: GetSceneMapInfoCsReq) -> betterproto.Message:
|
||||
rsp = GetSceneMapInfoScRsp(retcode=0)
|
||||
for floor_id in msg.floor_id_list:
|
||||
map_default = ResourceManager.instance().find_by_index(MapDefaultEntranceData, floor_id)
|
||||
if not map_default:
|
||||
continue
|
||||
|
||||
data = ResourceManager.instance().find_by_index(MapEntranceData, map_default.EntranceID)
|
||||
|
||||
if not data:
|
||||
continue
|
||||
|
||||
map_info = SceneMapInfo(
|
||||
retcode=0,
|
||||
chest_list=[
|
||||
ChestInfo(chest_type=ChestType.MAP_INFO_CHEST_TYPE_NORMAL.value),
|
||||
ChestInfo(chest_type=ChestType.MAP_INFO_CHEST_TYPE_PUZZLE.value),
|
||||
ChestInfo(chest_type=ChestType.MAP_INFO_CHEST_TYPE_CHALLENGE.value)
|
||||
],
|
||||
floor_id=floor_id
|
||||
)
|
||||
for i in range(101):
|
||||
map_info.lighten_section_list.append(i)
|
||||
|
||||
level_group = data.floor_infos.get(map_default.EntranceID)
|
||||
if level_group:
|
||||
for group_id,group in level_group.groups.items():
|
||||
maze_group_list = MazeGroup(
|
||||
group_id=group_id
|
||||
)
|
||||
map_info.maze_group_list.append(maze_group_list)
|
||||
for prop in group.PropList:
|
||||
maze_prop = MazePropState(
|
||||
group_id=group_id,
|
||||
state=8 if prop.MappingInfoID > 0 else (1 if prop.State == 0 else prop.State),
|
||||
config_id=prop.ID
|
||||
)
|
||||
if prop.MappingInfoID > 0:
|
||||
map_info.unlock_teleport_list.append(prop.MappingInfoID)
|
||||
map_info.maze_prop_list.append(maze_prop)
|
||||
|
||||
rsp.scene_map_info.append(map_info)
|
||||
return rsp
|
||||
Reference in New Issue
Block a user