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.

44 lines
1.6 KiB

using System;
using System.Net;
namespace ET
{
[ActorMessageHandler]
public class Actor_TransferHandler : AMActorLocationRpcHandler<Unit, Actor_TransferRequest, Actor_TransferResponse>
{
protected override async ETTask Run(Unit unit, Actor_TransferRequest request, Actor_TransferResponse response, Action reply)
{
//long unitId = unit.Id;
//
//// 先在location锁住unit的地址
//await Game.Scene.GetComponent<LocationProxyComponent>().Lock(unitId, unit.InstanceId);
//
//// 删除unit,让其它进程发送过来的消息找不到actor,重发
//Game.EventSystem.Remove(unitId);
//
//long instanceId = unit.InstanceId;
//
//int mapIndex = request.MapIndex;
//
//StartConfigComponent startConfigComponent = StartConfigComponent.Instance;
//
//// 传送到map
//StartConfig mapConfig = startConfigComponent.MapConfigs[mapIndex];
//IPEndPoint address = mapConfig.GetComponent<InnerConfig>().IPEndPoint;
//Session session = Game.Scene.GetComponent<NetInnerComponent>().Get(address);
//
//// 只删除不disponse否则M2M_TrasferUnitRequest无法序列化Unit
//Game.Scene.GetComponent<UnitComponent>().RemoveNoDispose(unitId);
//M2M_TrasferUnitResponse m2m_TrasferUnitResponse = (M2M_TrasferUnitResponse)await session.Call(new M2M_TrasferUnitRequest() { Unit = unit });
//unit.Dispose();
//
//// 解锁unit的地址,并且更新unit的instanceId
//await Game.Scene.GetComponent<LocationProxyComponent>().UnLock(unitId, instanceId, m2m_TrasferUnitResponse.InstanceId);
reply();
await ETTask.CompletedTask;
}
}
}