Example #1
0
        /// <summary>
        /// 传入角色单元的ID  得到服务器的ID
        /// </summary>
        /// <param name="self"></param>
        /// <param name="key"></param>
        /// <returns></returns>
        public static async Task <long> Get(this LocationProxyComponent self, long key)
        {
            Session           session  = Game.Scene.GetComponent <NetInnerComponent>().Get(self.LocationAddress);
            ObjectGetResponse response = (ObjectGetResponse)await session.Call(new ObjectGetRequest()
            {
                Key = key
            });

            return(response.InstanceId);
        }
        public static async ETTask <long> Get(this LocationProxyComponent self, long key)
        {
            if (key == 0)
            {
                throw new Exception($"get location key 0");
            }
            ObjectGetResponse response =
                (ObjectGetResponse)await MessageHelper.CallActor(
                    StartSceneConfigCategory.Instance.LocationConfig.SceneId,
                    new ObjectGetRequest()
            {
                Key = key
            });

            return(response.InstanceId);
        }
        public override async ETTask ObjectGetRequestHandler(Scene scene, ObjectGetRequest request, ObjectGetResponse response, Action reply)
        {
            long instanceId = await scene.GetComponent <LocationComponent>().Get(request.Key);

            if (instanceId == 0)
            {
                response.Error = ErrorCode.ERR_ActorLocationNotFound;
            }
            response.InstanceId = instanceId;
            reply();
        }
Example #4
0
 public virtual async ETTask ObjectGetRequestHandler(Scene scene, ObjectGetRequest request, ObjectGetResponse response, Action reply)
 {
 }