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
44 lines
1.6 KiB
3 years ago
|
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;
|
||
|
}
|
||
|
}
|
||
|
}
|