init
This commit is contained in:
38
game_server/handlers/DressAvatarCsReq.py
Normal file
38
game_server/handlers/DressAvatarCsReq.py
Normal file
@@ -0,0 +1,38 @@
|
||||
import betterproto
|
||||
from game_server.net.session import PlayerSession
|
||||
from rail_proto.lib import (
|
||||
DressAvatarCsReq,
|
||||
DressAvatarScRsp
|
||||
)
|
||||
|
||||
async def handle(session: PlayerSession, msg: DressAvatarCsReq) -> betterproto.Message:
|
||||
equipment = session.player.inventory_manager.get(msg.equipment_unique_id)
|
||||
target_avatar = session.player.avatar_mananger.get(msg.avatar_id)
|
||||
|
||||
if not equipment or not target_avatar:
|
||||
return DressAvatarScRsp()
|
||||
|
||||
previous_avatar = session.player.avatar_mananger.get(equipment.equip_avatar)
|
||||
if previous_avatar:
|
||||
if previous_avatar.lightcone_id > 0 and target_avatar.lightcone_id > 0:
|
||||
target_equipment = session.player.inventory_manager.get(target_avatar.lightcone_id)
|
||||
target_avatar.lightcone_id, previous_avatar.lightcone_id = previous_avatar.lightcone_id, target_avatar.lightcone_id
|
||||
target_equipment.equip_avatar, equipment.equip_avatar = previous_avatar.avatar_id, target_avatar.avatar_id
|
||||
#target_equipment.save_item()
|
||||
else:
|
||||
previous_avatar.lightcone_id = 0
|
||||
equipment.equip_avatar = target_avatar.avatar_id
|
||||
target_avatar.lightcone_id = equipment.unique_id
|
||||
#previous_avatar.save_avatar()
|
||||
else:
|
||||
if target_avatar.lightcone_id > 0:
|
||||
previous_equipment = session.player.inventory_manager.get(target_avatar.lightcone_id)
|
||||
previous_equipment.equip_avatar = 0
|
||||
#previous_equipment.save_item()
|
||||
equipment.equip_avatar = target_avatar.avatar_id
|
||||
target_avatar.lightcone_id = equipment.unique_id
|
||||
|
||||
#equipment.save_item()
|
||||
#target_avatar.save_avatar()
|
||||
await session.notify(session.player.PlayerSyncProto())
|
||||
return DressAvatarScRsp(retcode=0)
|
||||
Reference in New Issue
Block a user