You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
1.0 KiB
30 lines
1.0 KiB
3 years ago
|
using System;
|
||
|
|
||
|
namespace ET
|
||
|
{
|
||
|
public class G2M_RequestExitGameHandler: AMActorLocationRpcHandler<Unit, G2M_RequestExitGame, M2G_RequestExitGame>
|
||
|
{
|
||
|
protected override async ETTask Run(Unit unit, G2M_RequestExitGame request, M2G_RequestExitGame response, Action reply)
|
||
|
{
|
||
|
// TODO: 保存玩家数据到数据库,执行相关下线操作
|
||
|
var cuisine = unit.GetComponent<CuisineComponent>();
|
||
|
if (cuisine != null)
|
||
|
{
|
||
|
CuisineOperate.EndCuisine(unit, 0);
|
||
|
}
|
||
|
|
||
|
Log.Debug("开始下线保存玩家数据");
|
||
|
// unit.GetComponent<UnitDBSaveComponent>()?.SaveChange();
|
||
|
unit.GetComponent<UnitDBSaveComponent>()?.Save();
|
||
|
|
||
|
reply();
|
||
|
|
||
|
// 释放Unit
|
||
|
await unit.RemoveLocation();
|
||
|
UnitComponent unitComponent = unit.DomainScene().GetComponent<UnitComponent>();
|
||
|
unitComponent.Remove(unit.Id);
|
||
|
|
||
|
await ETTask.CompletedTask;
|
||
|
}
|
||
|
}
|
||
|
}
|